/// <reference path="jquery-1.4.1-vsdoc.js" />

/*
>  &Aring;= Å
>  &aring;= å
>  &Auml; = Ä
>  &auml; = ä
>  &Ouml; = Ö
>  &ouml; = ö

*/
var minTkn;
var maxContact
var datePicker;
var isOkToHide = true;
var selectedContacts = new Array();
var sortBy;
var sortReverse;

function Contact(n, l, f, c)
{
    this.number=n;
    this.lastname=l;
    this.firstname=f;
    this.company=c;
}
function PassEvent(o,c)
{
    this.contact=c;
    this.obj=o;
    this.obj2;
}

function Error(res)
{
    if (res && res.value && res.value.exception)
    {
        document.getElementById('errorOuterDiv').style.display='block';
        document.getElementById('errorDiv').innerHTML=res.value.exception;
    }
}
//The sort depth cant be more then 10, this will prevent stack overflow
var sortCounter = 0;
         
function sortByCompany(c1, c2) 
{
    sortCounter++;
    var x = c1.company.toLowerCase();
    var y = c2.company.toLowerCase();
    
    if((x < y))
        return -1;
    else if(x > y)
        return 1
    else if(sortCounter>10)
        return 0;
    else
    {
        var retValue = sortByLastName(c1, c2);
        if(retValue==0)
            return sortByFirstName(c1, c2); 
        else
            return retValue;
    }
}
function sortByLastName(c1, c2) 
{
    sortCounter++;
    var x = c1.lastname.toLowerCase();
    var y = c2.lastname.toLowerCase();
    
    if(x < y)
        return -1;
    else if(x > y)
        return 1;
    else if(sortCounter>10)
        return 0;
    else
    {
        var retValue = sortByFirstName(c1, c2);
        if(retValue==0)
            return sortByCompany(c1, c2); 
        else
            return retValue;    
    }    
}
function sortByFirstName(c1, c2) 
{
    sortCounter++;
    var x = c1.firstname.toLowerCase();
    var y = c2.firstname.toLowerCase();
    
    if(x < y)
        return -1;
    else if(x > y)
        return 1;
    else if(sortCounter>10)
        return 0;        
    else
    {
        var retValue = sortByCompany(c1, c2);
        if(retValue==0)
            return sortByLastName(c1, c2); 
        else
            return retValue;    
    }    
}
function sortByNumber(c1, c2) 
{
    var x = c1.number.toLowerCase();
    var y = c2.number.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortArray(column, reverse)
{
    sortCounter=0;
    if(column=='company')
        contacts.sort(sortByCompany);
    else if(column=='firstname')
        contacts.sort(sortByFirstName);
    else if(column=='lastname')
        contacts.sort(sortByLastName);
        
    if(reverse)
        contacts.reverse();
        
    addContactsToContactList();
}
function sort()
{
    sortArray(sortBy, sortReverse);
}
function setSort(sb)
{
    if(sb==sortBy)
        sortReverse=!sortReverse;
    else
    {
        sortReverse=false;
        sortBy=sb;
    }
    sort();    
        
    Ip1SMS.Pages.Units.Contacts.SaveSort(sortBy, sortReverse,setSort_CallBack);  
}

function setSort_CallBack(res)
{
    Error(res);
}

/*Adds functon to send from comma (,) sepererad string*/
function addCommaFunctions(text, suggestionDiv)
{
    var cA = document.createElement("a");
    cA.className="team";

    var passEvent = new PassEvent(suggestionDiv,null);
    passEvent.obj2=text;

    YAHOO.util.Event.addListener(cA, "click", addCommaToSendList, passEvent);
    
    var cDiv = document.createElement("div");
    cDiv.innerHTML ='Lista';
    
    var  cDiv2  = document.createElement('div');
    cDiv2.innerHTML='Skicka till alla i listan';
    
    cA.appendChild (cDiv);
    cA.appendChild (cDiv2);
    
    suggestionDiv.appendChild(cA);
}

function addCommaToSendList(e, passEvent)
{
 //addToSendList   
 var ns = passEvent.obj2.split(',');
 for(var i=0;i<ns.length;i++)
 {
    addToSendList(null,new PassEvent(null, new Contact(ns[i],'',ns[i],'')));   
 }
 closeSuggestionDivEvent(null,passEvent);
}

/*Adds function to handel new number or send to number*/
function addNoContactFunctions(number,suggestionDiv)
{
    var infoDiv= document.createElement("div");
    infoDiv.innerHTML ='Nummret finns inte, vill du:';
    
    
    
    /*Save*/
    var saveA = document.createElement("a");
    saveA.className="new";
    YAHOO.util.Event.addListener(saveA, "click", showCreateNewMode, new PassEvent(suggestionDiv, new Contact(number, '', '', '')));
    YAHOO.util.Event.addListener(saveA, "click", addToSendList, new PassEvent(suggestionDiv, new Contact(number, '', number, '')));
    
    var saveDiv = document.createElement("div");
    saveDiv.className="new";
    saveDiv.innerHTML ='Spara';
    
    var  saveDiv2  = document.createElement('div');
    saveDiv2.innerHTML='Spara nummret som en ny kontakt';
    
    saveA.appendChild (saveDiv);
    saveA.appendChild (saveDiv2);
    
    
    /*Send*/
    var sendA = document.createElement("a");
    sendA.className='sms';
    YAHOO.util.Event.addListener(sendA, "click", addToSendList, new PassEvent(suggestionDiv, new Contact(number, '', number, '')));
    

    var sendDiv = document.createElement("div");
    sendDiv.className="new";
    sendDiv.innerHTML ='Skicka';
    
    var  sendDiv2  = document.createElement('div');
    sendDiv2.innerHTML='Skicka utan att spara nummret';
    
    sendA.appendChild (sendDiv);
    sendA.appendChild (sendDiv2);
    
    
    
    suggestionDiv.appendChild(infoDiv);
    suggestionDiv.appendChild(saveA);
    suggestionDiv.appendChild(sendA);
}

/*Adds a group to suggestionDiv*/
function addGroup(group,suggestionDiv)
{
   var itemA = document.createElement("a");
   itemA.className="group";
   
   YAHOO.util.Event.addListener(itemA, "click", addToSendList, new PassEvent(suggestionDiv, new Contact('[G]'+group, '', group, '')));

   var nameDiv = document.createElement("div");
   nameDiv.innerHTML =group;
   
   var numberDiv = document.createElement("div");
   numberDiv.innerHTML='Grupp';

   itemA.appendChild (nameDiv);
   itemA.appendChild (numberDiv);

    
   suggestionDiv.appendChild (itemA);
}
/*Adds a contact to suggestionDiv*/
function addContact(contact,suggestionDiv,isGroup)
{
   var itemA = document.createElement("a");
   itemA.className="user";
   
   var passEvent = new PassEvent(suggestionDiv, contact);
   
   if(isGroup)
    YAHOO.util.Event.addListener(itemA, "click", AddContactToGroup, passEvent);
   else
    YAHOO.util.Event.addListener(itemA, "click", addToSendList, passEvent);

   
   var nameDiv = document.createElement("div");
   nameDiv.innerHTML =contact.company+" "+contact.lastname+" "+contact.firstname;
   
   var numberDiv = document.createElement("div");
   numberDiv.innerHTML=contact. number;

   itemA.appendChild (nameDiv);
   itemA.appendChild (numberDiv);
    
   suggestionDiv.appendChild (itemA);
}
/*Adds a contact to send list*/
function addToSendList(e, passEvent)
{
    var isOkToAdd=true;
    sendlist = document.getElementById('sendList');
    
    for(var i=0;i<sendlist.length;i++)
    {
        if( sendlist[i].value==passEvent.contact.number)
        {
            isOkToAdd=false;
            break;
        }
    }
    //isOkToAdd
    if(true )
    {
        sendlist[sendlist.length]= new Option(passEvent.contact.company+" "+passEvent.contact.lastname+" "+passEvent.contact.firstname,passEvent.contact.number);
    }
    if(passEvent && passEvent.obj)
        closeSuggestionDiv(passEvent.obj);
    
    
}
/*Finds all contact that match a string, and place thos contacts in the suggestionDiv*/
function findContact(text, suggestionDivID, isGroup)
{
    var suggestionDiv = document.getElementById(suggestionDivID);
    
    if(text=='')
    {
        suggestionDiv.style.display='none';
    }
    else if(text.indexOf(',')>0 && text.search('[a-zA-Z]')==-1)
    {
        suggestionDiv.innerHTML ='';
        suggestionDiv.style.display='block';
        
        addCommaFunctions(text,suggestionDiv);
    }
    else if(text.length> minTkn || contacts.length> maxContact)
    {
        suggestionDiv.innerHTML ='';
        suggestionDiv.style.display='block';
        
        //If the user has done a search on 07 it will always be a null result sins this is converted to 46, so we fix this for the user
        //But do this only if that is the first letters
        if(text.length>1 && text.startsWith('07'))
            text='46'+text.substring(1);
        
        for(i=0;i<contacts.length ;i++)
        {
            var searchText = contacts[i].company+" "+contacts[i].lastname+" "+contacts[i].firstname+" "+contacts[i].number
            if(searchText.toLowerCase().indexOf(text.toLowerCase())>=0)
                addContact(contacts[i],suggestionDiv,isGroup);
        }
        //If this is not the group search div, then we add some more functions
        if(!isGroup)
        {
            for(i=0;i<groups.length;i++)
            {
                if(groups[i].toLowerCase().indexOf(text.toLowerCase())>=0)
                    addGroup(groups[i],suggestionDiv);
            }
            
              //no groups or contacts was found, if the entred text is a number add some functions to send to this number or storit
             if(suggestionDiv.innerHTML =='' && text.search('[a-zA-Z]')==-1)
                 addNoContactFunctions(text,suggestionDiv);
            
            
            
            
        }
    }
    
    if(suggestionDiv.innerHTML =='')
    {
        var noA = document.createElement("a");
        noA.className="nohitt";


        YAHOO.util.Event.addListener(noA, "click", closeSuggestionDivEvent, new PassEvent(suggestionDiv,null));
        
        var noDiv = document.createElement("div");
        noDiv.innerHTML ='Ingen tr&auml;ff';
        
        var  noDiv2  = document.createElement('div');
        noDiv2.innerHTML='Ingen kontakt eller grupp hittades';
        
        noA.appendChild (noDiv);
        noA.appendChild (noDiv2);
        
        suggestionDiv.appendChild(noA);
    }   
}
function closeSuggestionDivEvent(e, passEvent)
{
    closeSuggestionDiv(passEvent.obj);
}
/*Removes all contact from suggestionDiv and hide it*/
function closeSuggestionDiv(suggestionDiv)
{
 
    suggestionDiv.innerHTML ='';
    suggestionDiv.style.display='none';
    
    var searchBox = document.getElementById('searchBox');
    searchBox.value='';
    searchBox.focus();
    
    var groupMenuButton = document.getElementById('menuButton');
    groupMenuButton.className="";
    
}
/*Remove selected item from sendlist*/
function removeFromSendList(select)
{
    if(select.length>0)
        select[select.selectedIndex]=null;
}
/*Adds all contacts to contactlist*/
function addContactsToContactList()
{
    if(document.getElementById('contactsDIV'))
    {
        document.getElementById('contactsDIV').innerHTML='';
        for(i=0;i<contacts.length ;i++)
        {
            if(contacts[i].number)
                addContactToList(contacts[i]);
        }
    }
}
/*Adds a contact to contactlist*/
function addContactToList(contact)
{
   var contactList = document.getElementById('contactsDIV');

   var itemA = document.createElement("a");
   itemA.className="contactItemDiv";
   YAHOO.util.Event.addListener(itemA, "click", showEditMode,new PassEvent(itemA, contact)); 
   
   var nameDiv = document.createElement("div");
   nameDiv.innerHTML ="<div class='contactItem'>"+  contact.company+"&nbsp;</div><div class='contactItem'>"+contact.lastname+"&nbsp;</div><div class='contactItem'>"+contact.firstname+"&nbsp;</div><div class='clear'></div>";
   var numberDiv = document.createElement("div");
   numberDiv.innerHTML = "<div style='margin-top:3px;'>"+ contact.number +"</div>";


   itemA.appendChild(nameDiv);
   itemA.appendChild(numberDiv);

    
   contactList.appendChild (itemA);
 }

/*Hide all tabbs and show edit*/
function setActive(id)
{
    if(id=='tabInnummer')
        isOkToHide =true;
    else
        hideNewSms();
    

   var topTab = document.getElementById('topTabb');
   
   for(var i=0; i<topTab.childNodes.length;i++)
   {
        if(topTab.childNodes[i].id==id)
           topTab.childNodes[i].className='selected'; 
        else
           topTab.childNodes[i].className=''; 
   }
}
function showContactMode()
{   
   setActive('tabContacts');
   document.getElementById('conatactContainerDiv').style.display='block';
   document.getElementById('editContactDiv').style.display='none';  
   document.getElementById('editGroups').style.display='none';
   document.getElementById('handelInSmsDiv').style.display='none';   
   addContactsToContactList();
}
function showEditMode(e, passEvent)
{
   setActive('');
   document.getElementById('conatactContainerDiv').style.display='none';
   document.getElementById('editContactDiv').style.display='block';  
   document.getElementById('deleteContact').style.display='block'; 
   document.getElementById('saveButtonMore').style.display='none';  
   document.getElementById('editGroups').style.display='none';
   document.getElementById('handelInSmsDiv').style.display='none';   
   document.getElementById('inGroups').disabled=false;  
  
   fillEditMode(passEvent.contact);
}
function showCreateNewMode()
{
   setActive('tabNewContact');
   document.getElementById('conatactContainerDiv').style.display='none';
   document.getElementById('editContactDiv').style.display='block';  
   document.getElementById('saveButtonMore').style.display='block';  
   document.getElementById('deleteContact').style.display='none'; 
   document.getElementById('editGroups').style.display='none';
   document.getElementById('handelInSmsDiv').style.display='none';   
   document.getElementById('inGroups').disabled=true;  
   
   var c;
    if(arguments.length>0)
        c= arguments[1].contact;
    else
        c= new Contact('','','','');
        
    contacts[contacts.length]=c; 
   
   fillEditMode(c);
}
function showGroupMode()
{
   setActive('tabGroups');
   document.getElementById('conatactContainerDiv').style.display='none';
   document.getElementById('editContactDiv').style.display='none';  
   document.getElementById('editGroups').style.display='block';  
   document.getElementById('handelInSmsDiv').style.display='none';   
   fillGroupMode(); 
}
function showGroupInnummer()
{
   setActive('tabInnummer');
   document.getElementById('conatactContainerDiv').style.display='none';
   document.getElementById('editContactDiv').style.display='none';  
   document.getElementById('editGroups').style.display='none';  
   document.getElementById('handelInSmsDiv').style.display='block';  
   
}
/*Fills edit mode with a contact*/
function fillEditMode(contact)
{
    var company = document.getElementById('companyBox');
    var firstname = document.getElementById('firstNameBox');
    var lastname = document.getElementById('lastNameBox');
    var number = document.getElementById('numberBox');
    var button = document.getElementById('saveButton');
    var inGroups = document.getElementById('inGroups');
    var deleteButton = document.getElementById('deleteContact');
    var saveMore = document.getElementById('saveButtonMore');
    
    
    YAHOO.util.Event.removeListener(button, "click"); 
    YAHOO.util.Event.removeListener(inGroups, "click");
    YAHOO.util.Event.removeListener(deleteButton, "click"); 
    YAHOO.util.Event.removeListener(saveMore, "click"); 
    
    YAHOO.util.Event.addListener(button, "click", saveContact,new PassEvent(button, contact));
    YAHOO.util.Event.addListener(saveMore, "click", saveContact,new PassEvent(saveMore, contact));
    
    YAHOO.util.Event.addListener(deleteButton, "click", deleteContact,contact);
    YAHOO.util.Event.addListener(inGroups, "click", deleteGroupNumber, new PassEvent(inGroups, contact));
    
    company.value= contact.company;   
    firstname.value= contact.firstname;
    lastname.value= contact.lastname;
    number.value= contact.number;
    

    Ip1SMS.Pages.Units.Contacts.GetGroups(contact.number,fillGruopBoxes);    
}

function fillGruopBoxes(res)
{
    Error(res);
    var groups = document.getElementById('groups');
    var inGroups = document.getElementById('inGroups');
    
    while(inGroups.options.length>0)
    {
        inGroups.options[0]=null;
    }
    while(groups.options.length>0)
    {
        groups.options[0]=null;
    }
    
    groups.options[0]=new Option('','');
    for(var i=0; i<res.value.withOut.length;i++)
    {
        groups.options[groups.options.length]=new Option(res.value.withOut[i].GroupName,res.value.withOut[i].GroupName);
    }
    groups.options[0].selected = true;
    
    for(var i=0; i<res.value.withIn.length;i++)
    {
        inGroups.options[inGroups.options.length]=new Option(res.value.withIn[i].GroupName,res.value.withIn[i].GroupName);
    }
}
function saveContact(e, passEvent)
{
    var company = document.getElementById('companyBox');
    var firstname = document.getElementById('firstNameBox');
    var lastname = document.getElementById('lastNameBox');
    var number = document.getElementById('numberBox');
    var groups = document.getElementById('groups');
    var selectedGroup='';
    
    if(groups.selectedIndex>0)
        selectedGroup= groups[groups.selectedIndex].value
    
    passEvent.contact.company = company.value;
    passEvent.contact.firstname =firstname.value;
    passEvent.contact.lastname=lastname.value;
    passEvent.contact.number=number.value;
    
    
    if(passEvent.obj.value!='Spara')
        Ip1SMS.Pages.Units.Contacts.SaveContact(company.value,firstname.value,lastname.value,number.value, selectedGroup,saveContactMore_callback);
    else
        Ip1SMS.Pages.Units.Contacts.SaveContact(company.value,firstname.value,lastname.value,number.value, selectedGroup,saveContact_callback);
    
}
function saveContact_callback(res)
{
    Error(res);
 
     for(var i=0;i<contacts.length;i++)
     {
        if(contacts[i].number==res.value.number)
            contacts[i].number=res.value.newNumber;
     }
    
    sort(); 
    showContactMode();    
}
function saveContactMore_callback(res)
{
    Error(res);
 
     for(var i=0;i<contacts.length;i++)
     {
        if(contacts[i].number==res.value.number)
            contacts[i].number=res.value.newNumber;
     }
    sort(); 
   var c = new Contact('','','','');
   contacts[contacts.length]=c; 
   fillEditMode(c);
}


function deleteContact(e, contact)
{
    var number = contact.number;
    contact.number='';
    contact=null;
    Ip1SMS.Pages.Units.Contacts.DeleteContact(number,deleteContact_callback);
}
function deleteContact_callback(res)
{
    Error(res);   
    showContactMode();
}
function deleteGroupNumber(e, pasEvent)
{
    if(pasEvent.obj.selectedIndex>-1)
    {
        var value = pasEvent.obj[pasEvent.obj.selectedIndex].value;
        pasEvent.obj[pasEvent.obj.selectedIndex]=null;
        Ip1SMS.Pages.Units.Contacts.DeleteNumberFromGroup(value,pasEvent.contact.number,deleteGroupNumber_callback);        
    }

    
}
function deleteGroupNumber_callback(res)
{
    Error(res);   
    Ip1SMS.Pages.Units.Contacts.GetGroups(res.value.number,fillGruopBoxes);
}



/*Group Mode*/
function fillGroupMode()
{
    var group =document.getElementById('contactsInGroup');
    
    while(group.options.length>0)
    {
        group.options[0]=null;
    }
    
    Ip1SMS.Pages.Units.Group.GetGroups(FillGroupDropDown_CallBack);
    
}


function FillGroupDropDown_CallBack(res)
{
    Error(res);
    var addGroupContact =document.getElementById('addGroupContact');
    var contactsInGroup =document.getElementById('contactsInGroup');
    var delateButtonGrupp =document.getElementById('delateButtonGrupp');
    document.getElementById('selGroup').style.display='block';
    
    addGroupContact.disabled = true
    contactsInGroup.disabled = true;
    delateButtonGrupp.disabled = true;
    
    
    
    var group =document.getElementById('contactsInGroup');
    while(group.options.length>0)
    {
        group.options[0]=null;
    }
    
    var groupsDropDown = document.getElementById('groupsDropDown');   
    while(groupsDropDown.options.length>0)
    {
        groupsDropDown.options[0]=null;
    }
    
    groupsDropDown.options[0]=new Option('Grupper','');
    for(i=0; i<res.value.groups.length;i++)
    {
        groupsDropDown.options[i+1]=new Option(res.value.groups[i].GroupName,res.value.groups[i].GroupName);
    }
}
function AddContactArrayToGroup(names, numbers)
{
    var group =document.getElementById('groupsDropDown');
    Ip1SMS.Pages.Units.Group.AddArrayToGroup(group[group.selectedIndex].value,names,numbers , AddContactToGroup_CallBack);    
}
function AddContactToGroup(e, passEvent)
{
    var group =document.getElementById('groupsDropDown');
    var searchBox = document.getElementById('addGroupContact');
    
    passEvent.obj.innerHTML ='';
    passEvent.obj.style.display='none';
    
    searchBox.value='';
    searchBox.focus();
    Ip1SMS.Pages.Units.Group.AddGroup(group[group.selectedIndex].value, (passEvent.contact.lastname ? passEvent.contact.lastname : '') + (passEvent.contact.firstname ? ' ' + passEvent.contact.firstname : ''), passEvent.contact.number, AddContactToGroup_CallBack);    
    
}
function AddContactToGroup_CallBack(res)
{
    Error(res);
    var group =document.getElementById('groupsDropDown');
    FillContactListForGroup(group[group.selectedIndex].value);
}
function FillContactListForGroup(group)
{
    var addGroupContact =document.getElementById('addGroupContact');
    var contactsInGroup =document.getElementById('contactsInGroup');
    var delateButtonGrupp =document.getElementById('delateButtonGrupp');
    document.getElementById('selGroup').style.display=(group=='')?'block':'none'; 
    addGroupContact.disabled = (group=='');
    contactsInGroup.disabled = (group=='');
    delateButtonGrupp.disabled = (group=='');


    Ip1SMS.Pages.Units.Group.GetContactsForGroup(group,FillContactListForGroup_CallBack);
}
function FillContactListForGroup_CallBack(res)
{
    Error(res);
    var group =document.getElementById('contactsInGroup');
    
    while(group.options.length>0)
    {
        group.options[0]=null;
    }
    
    for(i=0; i<res.value.groups.length;i++)
    {
        group.options[i]=new Option(res.value.groups[i].Name,res.value.groups[i].Number);
    }    
}

function DeleteContactForGroup()
{
    var group =document.getElementById('groupsDropDown');
    var contacts =document.getElementById('contactsInGroup');
    
    if(contacts[contacts.selectedIndex])
        Ip1SMS.Pages.Units.Group.DeleteContactFromGroup(group[group.selectedIndex].value,contacts[contacts.selectedIndex].value,DeleteContactForGroup_CallBack);
}
function DeleteContactForGroup_CallBack(res)
{
    Error(res);
    var group =document.getElementById('groupsDropDown');
    FillContactListForGroup(group[group.selectedIndex].value);
}

function SaveNewGrupp()
{
    var text = document.getElementById('createNewGroup');
    if(text.value)
        groups[groups.length]=text.value;
    Ip1SMS.Pages.Units.Group.CreateNewGroup(text.value,SaveNewGrupp_CallBack);
    
}
function SaveNewGrupp_CallBack(res)
{
    Error(res);
    var text = document.getElementById('createNewGroup');
    text.value='';
    Ip1SMS.Pages.Units.Group.GetGroups(FillGroupDropDown_CallBack);
}

function DeleteGroup()
{
    var group =document.getElementById('groupsDropDown');
    
    if(group.selectedIndex>0)
        Ip1SMS.Pages.Units.Group.DeleteGroup(group[group.selectedIndex].value,DeleteGroup_CallBack);
}
function DeleteGroup_CallBack(res)
{
    Error(res);
    Ip1SMS.Pages.Units.Group.GetGroups(FillGroupDropDown_CallBack);   
    
}


/*Insms*/
function DeleteSms(id)
{
    var fieldset = document.getElementById('fieldset_'+id);
    if(fieldset)
        fieldset.style.display='none';
    
    
    Ip1SMS.Pages.Units.InNumber.DeleteSms(id,DeleteSms_CallBack);
}
function DeleteSms_CallBack(res)
{
    Error(res);
}

function ToogleSettings(noSettingsID, settingsID)
{
    var settings = document.getElementById(settingsID);
    var noSettings = document.getElementById(noSettingsID);
    
    if(settings.style.display!='none')
    {
        settings.style.display='none';
        noSettings.style.display='block';
    }
    else
    {
        settings.style.display='block';
        noSettings.style.display='none';
    }
}

function setNewSms(count)
{
    var newDiv = document.getElementById('iconNewSms');
    newDiv.style.display='block';
    newDiv.innerHTML=count;
    isOkToHide=false;
}
function hideNewSms()
{
    if(isOkToHide)
    {
        document.getElementById('iconNewSms').style.display='none';
        
        var newSMSIcons = getElementsByName_iefix('div','iconNew');
        
        for(var i=0;i<newSMSIcons;i++)
        {
            newSMSIcons[i].style.display='none';
        }
    }
}

function getElementsByName_iefix(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

/*Send sms*/
function SendSMS()
{


    var sendList = document.getElementById('sendList');
    var prio = document.getElementById('prio').value;
    var message=document.getElementById('message').value;
    var from=document.getElementById('from').value;
    var sendat= document.getElementById('sendat').value;

    if (sendList.options.length > 0) {
        
        document.getElementById('sendSms').style.display = 'block';
        document.getElementById('sendSmsSending').style.display = 'block';
        document.getElementById('sendSmsDone').style.display = 'none';
        document.getElementById('sendSmsCloseDiv').style.display = 'none';    
        
        var to = "";
        for (i = 0; i < sendList.options.length; i++) {
            to += sendList[i].value;
            if (i < sendList.options.length - 1)
                to += ',';
        }

        Ip1SMS.Pages.Units.SendSMS.SendSms(to, from, message, prio, sendat, SendSMS_CallBack);
    }
    else {
        alert("Mobil nummer saknas, var god och skriv in minst ett nummer och Skicka igen.");
    }
}
function SendSMS_CallBack(res)
{
    document.getElementById('sendSmsSending').style.display='none';
    document.getElementById('sendSmsDone').style.display='block';
    document.getElementById('sendSmsCloseDiv').style.display='block';
    document.getElementById('sendat').value='';
    
    var doneQueueDiv = document.getElementById('sendSmsDoneStatusQueue');    
    var doneDiv = document.getElementById('sendSmsDoneStatus');

    if (res.value.name.length > 0) {
        doneDiv.style.display = 'block';
        doneQueueDiv.style.display = 'none';
    }
    else {
        doneQueueDiv.style.display = 'block';
        doneDiv.style.display = 'none';
    }
        
    doneDiv.innerHTML='';    
    for(i=0;i<res.value.name.length;i++)
    {
    
        var row = document.createElement("div");
         
        var left = document.createElement("div");
        left.className='left';
        left.innerHTML=res.value.name[i];
        var right = document.createElement("div");
        right.className='right';
        right.innerHTML=res.value.status[i];        
        
        var clear = document.createElement("div");
        clear.className='clear';  
          
        row.appendChild(left);
        row.appendChild(right); 
        row.appendChild(clear);        
        doneDiv.appendChild(row);
    
    }
   
    UppdateCredits();   
}
function CloseSendDialog(val)
{
    if(val)
    {
        document.getElementById('sendat').value='';
        document.getElementById('sendAtDisp').innerHTML= '';    
        
        document.getElementById('message').value='';
        document.getElementById('message').focus();
    }

    var sendList = document.getElementById('sendList');
    while (sendList.options.length > 0)
        sendList[0] = null;
    
    document.getElementById('sendSms').style.display='none';
    
}

function UppdateCredits()
{
    Ip1SMS.Pages.Master.master.Balans(UppdateCredits_CallBack);
}
function UppdateCredits_CallBack(res)
{
    document.getElementById('ctl00_credits').innerHTML=res.value;
}

function selectPrio()
{
    var selectDiv = document.getElementById('selectPrio');
    selectDiv.style.display='block';
}

function setPrio(value)
{
    var prioFlag = document.getElementById('currentPrioFlag');
    var prio = document.getElementById('prio');
    var selectDiv = document.getElementById('selectPrio');

    
    selectDiv.style.display='none';
    prio.value = value;
    
    prioFlag.src='/images/flag_'+value+'.png';
    
    if(value==1)
        prioFlag.title='L&#229;g prio'.replace("&#229;",String.fromCharCode(229));
    else if(value==2)
        prioFlag.title='Normal prio'
    else if(value==3)
        prioFlag.title='H&#246;g prio'.replace("&#246;",String.fromCharCode(246));
}


function countTkn(obj,tknID,smss)
{
    var tkn = obj.value.length;
    var tknSpan = document.getElementById(tknID);
    var smssSpan = document.getElementById(smss);
    
    tknSpan.innerHTML=tkn;
    if(tkn>0)
    {
        smssSpan.innerHTML= parseInt((tkn/160)+1);
    }
    
    else
        smssSpan.innerHTML=1;
}


function setText(obj, txt)
{
     if(obj.value=='')
    {
        obj.value=txt;
        obj.style.color='#B4B4B4';
    }
}
function removeText(obj, txt)
{
    if(obj.value==txt)
    {
        obj.style.color='#000000';
        obj.value='';
    }
}

function openCalander()
{
    document.getElementById('calender').style.display='block';
    if(!datePicker)
    {      
        datePicker = new YAHOO.widget.Calendar("datePicker"); 
        datePicker.render(); 
    }
}
function calenderCencel()
{
    document.getElementById('calender').style.display='none';
    document.getElementById('sendat').value='';
    document.getElementById('sendAtDisp').innerHTML= '';
}
function calenderOk()
{
    var now = new Date();
    
    var hh = document.getElementById('sendAtHour');
    var mm = document.getElementById('sendAtMinute');

    if (datePicker.getSelectedDates().length > 0) {
        var date = datePicker.getSelectedDates()[0];
                
        if (new Date(date.getFullYear(),date.getMonth() , date.getDate(), hh.options[hh.selectedIndex].text, mm.options[mm.selectedIndex].text,0) >= now) {
            document.getElementById('sendAtDisp').innerHTML = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + hh.options[hh.selectedIndex].text + ':' + mm.options[mm.selectedIndex].text;
            document.getElementById('sendat').value = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + hh.options[hh.selectedIndex].text + ':' + mm.options[mm.selectedIndex].text+':00';
            document.getElementById('calender').style.display = 'none';
        }
        else
            document.getElementById('wrongTime').style.display = 'block';

    }
    else {
        document.getElementById('calender').style.display = 'none';
        var min = "";
        var hour = "";
        if (hh.options[hh.selectedIndex].text < now.getHours()) {
            hour = now.getHours();
            min = now.getMinutes();

        }
        else {
            if (mm.options[mm.selectedIndex].text < now.getMinutes())
                min = now.getMinutes();
            else
                min = mm.options[mm.selectedIndex].text;

            hour = hh.options[hh.selectedIndex].text;

        }
        document.getElementById('sendAtDisp').innerHTML = document.getElementById('sendat').value = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' ' + hour + ':' + min;
    }
}


function CheckMaxTeken(obj)
{
    if(obj.value.length>=15)
        document.getElementById('sendFromMax').style.display='';
    else
        document.getElementById('sendFromMax').style.display='none';
}

function SetSText(obj)
{
        var stext = obj.options[obj.selectedIndex].text;
        if(stext!='Standard texter')
        {
            var messBox = document.getElementById('message');
             messBox.focus();
             messBox.value= stext;
            messBox.style.color='#000000';
           
            obj.selectedIndex=0;
        }
}

/*Multi select*/
function showMultiSelect(isGroup)
{
    document.getElementById('multiSelectTop').style.display = 'block';
    document.getElementById('sendMultiSelectMode').style.display = isGroup?'none':'block';
    document.getElementById('groupMultiSelectMode').style.display = isGroup?'block':'none';
    loadContacts();
}
function closeMultiSelect()
{
    document.getElementById('multiSelectTop').style.display = 'none';
    selectedContacts = new Array();
}
function loadContacts()
{
    var contactList = document.getElementById('multiContacts');
    contactList.innerHTML=''; 
    for(var i=0;i<contacts.length;i++)
    {
        if(contacts[i].number!='')
            addContactToMultiSelect(contacts[i]);
    }
}
function addContactToMultiSelect(contact)
{
   var contactList = document.getElementById('multiContacts');

   var itemA = document.createElement("a");
    for(var i=0;i<selectedContacts.length;i++)
    {
        if(selectedContacts[i]==contact)
        {
            itemA.className='contactItemDiv sel';
            break;
        }
    }
    if(itemA.className=='')
        itemA.className='contactItemDiv';
   
   
   YAHOO.util.Event.addListener(itemA, "click", selectDeselectContact,new PassEvent(itemA, contact)); 
   
   var nameDiv = document.createElement("div");
   nameDiv.innerHTML = "<div class='contactIcon'></div><div class='contactItem'>" + contact.company + "&nbsp;</div><div class='contactItem'>" + contact.lastname + "&nbsp;</div><div class='contactItem'>" + contact.firstname + "&nbsp;</div><div class='clear'></div>";


   itemA.appendChild (nameDiv);

    
   contactList.appendChild (itemA);
}
function selectDeselectContact(e, passEvent)
{
    if(passEvent.obj.className=='contactItemDiv') {
    
        passEvent.obj.className='contactItemDiv sel';
        selectedContacts[selectedContacts.length]=passEvent.contact;
    }
    else
    {
        passEvent.obj.className='contactItemDiv';
        
        for(var i=0;i<selectedContacts.length;i++)
        {
            if(selectedContacts[i]==passEvent.contact)
            {
                selectedContacts[i]=null;
            }
        }
    }
} 

function getSelectedContacts()
{
    var tempArray = new Array();   
    for(var i=0;i<selectedContacts.length;i++)
    {
        if(selectedContacts[i]!=null)
        {
            tempArray[tempArray.length]=selectedContacts[i];
        }
    }
    return tempArray;
}

function fillSendListFromMultiSelect()
{
    var tArray = getSelectedContacts();
    
    for(var i=0;i<tArray.length;i++)
    {
        addToSendList(null,new PassEvent(null,tArray[i]));
    }
    closeMultiSelect();    
}

function fillGroupFromMultiSelect()
{
    var names = new Array();
    var numbers = new Array();
    
    var tArray = getSelectedContacts();
    
    for(var i=0;i<tArray.length;i++)
    {
        names[names.length]=tArray[i].lastname+' '+tArray[i].firstname;
        numbers[numbers.length]=tArray[i].number;
    }
    closeMultiSelect();
    AddContactArrayToGroup(names,numbers);

    
}
function CloseGroupMenu()
{
    document.getElementById('groupMenu').style.display='none';
    var groupMenuButton = document.getElementById('menuButton');
    groupMenuButton.className="";
}

function SelectAll(select) {

    if(select){
        $("#multiContacts").children().addClass('sel');
        for (var i = 0; i < contacts.length; i++)
            selectedContacts[selectedContacts.length] = contacts[i];
    }
    else{
        $("#multiContacts").children().removeClass('sel');
        selectedContacts = new Array();
    }
}

/*Add group to send box*/
function ShowGroupMenu()
{

    var groupMenuButton = document.getElementById('menuButton');
    groupMenuButton.className="menuButtonSelected";
    
    var groupMenu = document.getElementById('groupMenu');
    groupMenu.innerHTML='';
    groupMenu.style.display='block';
    
    var top = document.createElement("div");
    var clear = document.createElement("div");
    clear.style.clear='both';  
      
    var gInfo = document.createElement("div");
    gInfo.innerHTML ='Skicka till grupp';
    gInfo.className='infoGroupMenu';
    
    var close = document.createElement("a");
    close.className='closeGroup';
    close.innerHTML='Avbryt';
    
    YAHOO.util.Event.addListener(close, "click", CloseGroupMenu, null);
    
    
    top.appendChild (gInfo);
    top.appendChild (close);
     top.appendChild (clear);
    
    
    groupMenu.appendChild (top);
    for(var i =0;i<groups.length;i++)
    {
        addMenuGroupItem(groups[i],groupMenu);
    }    
}

/*Adds a group to suggestionDiv*/
function addMenuGroupItem(group,suggestionDiv)
{
    
   var itemA = document.createElement("a");
   itemA.className="group";
  

   var getNamesDiv = document.createElement('div');
   getNamesDiv.innerHTML = 'H&auml;mta namn';
   getNamesDiv.className = 'GetName';
   YAHOO.util.Event.addListener(getNamesDiv, "click", getNamesFromGroup, group);
    
   var nameDiv = document.createElement("div");
   nameDiv.innerHTML = group;
   YAHOO.util.Event.addListener(nameDiv, "click", addToSendList, new PassEvent(suggestionDiv, new Contact('[G]' + group, '', group, '')));

   var clear = document.createElement('div');
   clear.className = "clear";

   itemA.appendChild(nameDiv);
   itemA.appendChild(getNamesDiv);
   itemA.appendChild(clear);
    
   suggestionDiv.appendChild (itemA);
}
function getNamesFromGroup(e,group) {
    Ip1SMS.Pages.Units.Group.GetContactsForGroup(group, getNamesFromGroup_CallBack);
}
function getNamesFromGroup_CallBack(res) {
    Error(res);
    var groupMenu = document.getElementById('groupMenu');

    for (i = 0; i < res.value.groups.length; i++) {
        addToSendList(null, new PassEvent(groupMenu, new Contact(res.value.groups[i].Number, '', res.value.groups[i].Name, '')));
    }
}
 
function DeleteHistoryItem(obj, id)
{
       var row = obj.parentNode.parentNode;
       row.parentNode.removeChild(row);
       Ip1SMS.Pages.History.DeleteById(id,DeleteHistoryItem_CallBack);
}

function DeleteHistoryItem_CallBack(res)
{
    Error(res);
}

function postbackOnEnter(evt, obj) {
    var keyCode = (typeof window.event == 'object') ? window.event.keyCode : evt.keyCode;

    if (keyCode == 13) {
        __doPostBack(obj.id, '');
        return false;
    }
    else {
        return true;
    }
}


/*Contancts*/
function ConSave() 
{


}

function ConSarch() {
    var searchBox =$('#conSearch')
    if (searchBox.val().length > 0)
        searchBox.css('background-image', 'none');
    else
        searchBox.css('background-image', 'url(/images/searchCon.png)');
        
        
        
    Ip1SMS.Pages.Units.ContactsAdvance.GetContacts(searchBox.val(), ConSarch_CallBack);
}
function ConSarch_CallBack(res) {
    $('.conItems').empty();
    var alter = false;
    for(var i=0;i<res.value.length;i++){
        var row = $('<div></div>');
        row.appendTo($('.conItems'));
        
        if (alter)
            row.css('background-color', '#E3E3E3');
            
        conCreateRow(res.value[i],row);
        alter = !alter;
    }
}
function conCreateRow(con, row) {


    var number = $('<div class="conNumber">' + con.Phonenumber + '&nbsp;</div>');
    var company = $('<div class="conCompany">' + con.Company + '&nbsp;</div>');
    var lastName = $('<div class="conLastName">' + con.Lastname + '&nbsp;</div>');
    var firstName = $('<div class="conName">' + con.Firstname + '&nbsp;</div>');
    var groups = $('<div class="conGroups"></div>');

    var group = '&nbsp;';
    for (var g = 0; g < con.MemberOfGroups.length; g++) {
        group += con.MemberOfGroups[g].GroupName;
        if (g < con.MemberOfGroups.length - 1)
            group + ', ';
    }
    groups.append(group);

    var editCol = $('<div class="conEdit"></div>');
    var edit = $('<img src="/images/EditInformationHS.png"/>');
    edit.bind('click', { Row: row, Con: con }, conEdit);
    var del = $('<img src="/images/delete.png"/>');
    var clear = $('<div class="clear"></div>');


    edit.appendTo(editCol);
    del.appendTo(editCol);

    row.append(number);
    row.append(company);
    row.append(lastName);
    row.append(firstName);
    row.append(groups);
    row.append(editCol);
    row.append(clear);
    
}
function conEdit(e) {//contenteditable
    $(e.data.Row).addClass('conEditRow');
    $(e.data.Row).css('background-color','');
    $(e.data.Row).find('.conNumber').attr('contenteditable', true);
    $(e.data.Row).find('.conCompany').attr('contenteditable', true);
    $(e.data.Row).find('.conLastName').attr('contenteditable', true);
    $(e.data.Row).find('.conName').attr('contenteditable', true);

    $(e.data.Row).find('.conNumber').css('border', 'solid 1px #E3E3E3');
    $(e.data.Row).find('.conCompany').css('border', 'solid 1px #E3E3E3');
    $(e.data.Row).find('.conLastName').css('border', 'solid 1px #E3E3E3');
    $(e.data.Row).find('.conName').css('border', 'solid 1px #E3E3E3');
    
    $(e.data.Row).find('.conEdit').empty();
    var save = $('<img src="/images/checkmark.png" />');
    save.bind('click', e.data, function(e) {
        Ip1SMS.Pages.Units.ContactsAdvance.SaveContancts($(e.data.Row).find('.conNumber').text(), $(e.data.Row).find('.conCompany').text(), $(e.data.Row).find('.conLastName').text(), $(e.data.Row).find('.conName').text());
        ConSarch();
    });
    
    var cencel = $('<img src="/images/305_Close_16x16_72.png" />');
    cencel.bind('click', e.data, function(e) { 
        e.data.Row.empty();
        conCreateRow(e.data.Con, e.data.Row);
    });

    $(e.data.Row).find('.conEdit').append(save);
    $(e.data.Row).find('.conEdit').append(cencel);


}
var hideCounter=0;
var startFeatchFrom=null;


function hideSmsStatus() {
    hideCounter = 0;
    startFeatchFrom = null;
    $('.smsStatusContent').empty();
    $('.smsStatus').hide();
}
function showSmsStatus() {
    $('.smsStatus').show(1, function (e) {
        if (!startFeatchFrom) {
            startFeatchFrom = new Date().getTime();
            featchPandingSMSStatus();
        }
    });

}
function featchPandingSMSStatus() 
{
    Ip1SMS.Pages.Units.SMSSendStatus.GetHitstory(startFeatchFrom, featchPandingSMSStatus_callback);
}
function featchPandingSMSStatus_callback(res) {
    var smsContent = $('.smsStatusContent');
    smsContent.empty();
    if (res.value.Items.length > 0) {
        for (var i = 0; i < res.value.Items.length; i++) {
            var row = $('<li>' + res.value.Items[i].Title +'</li>');
            if (res.value.Items[i].Status == '22')
                row.append('<span></span>');
            else if (res.value.Items[i].Status == '50')
                row.append('<span class="red"></span>');
            else
                row.append('<span class="orange"></span>');
            row.appendTo(smsContent);
        }
    }
    else {
        $('<li>Inga sms v&auml;ntar p&aring; att levereras</li>').appendTo(smsContent);
     }

    
    if (!res.value.FeatchMore) {
        hideCounter++;
    }
    if (hideCounter > 5)
        hideSmsStatus();
    else
        window.setTimeout('featchPandingSMSStatus();', 2500);
}

/*
<div class="conNumber">46702617396</div>
                        <div class="conCompany">DataVäxt AB</div>
                        <div class="conLastName">Ahlberg</div>
                        <div class="conName">Viktor</div>
                        <div class="conGroups">Inga</div>
                        <div class="conEdit">
                            <img src="/images/EditInformationHS.png"/>
                            <img src="/images/delete.png"/>
                        </div>     
                        <div class="clear"></div> 
*/
