
function nocache(url){
  if(url.indexOf('?')>=0) {
    return url + '&garbage='+ Math.random();
  }else{
    return url + '?garbage='+ Math.random();
  }
}

function freeSmsChars(){
  var freesmschar = '120';
  var chars = document.freesender.message.value.length;
  var el = document.getElementById('smsCharacters');
  if(chars > freesmschar){
    replaceText(el,"-"+(chars-freesmschar));
    document.getElementById('sendActive').className='btnHide';
    document.getElementById('sendInactive').className='btnShow';
  }else{
    replaceText(el,(freesmschar-chars));
    if(validRecipient() && chars != "0"){
      document.getElementById('sendActive').className='btnShow';
      document.getElementById('sendInactive').className='btnHide';
    }else{
      document.getElementById('sendActive').className='btnHide';
      document.getElementById('sendInactive').className='btnShow';
    }
  }
}

function disableSelection(target){
  if (typeof target.onselectstart!="undefined") //IE route
      target.onselectstart=function(){return false}
      else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
          target.style.MozUserSelect="none"
          else //All other route (ie: Opera)
              target.onmousedown=function(){return false}
              target.style.cursor = "default"
}

var activerec;
function sendTo(rec){
  rec = this.id;
  if(rec != 'na'){
    if(rec == activerec){
      document.getElementById(activerec).className='recipient';
      activerec = '';
      document.freesender.recipient.value='';
    }else if(rec != activerec){
      if(document.getElementById(activerec)){
        document.getElementById(activerec).className='recipient';
      }
      document.getElementById(rec).className='recipientactive';
      document.freesender.recipient.value='+' + rec;
      activerec = rec;
    }
  }
  freeSmsChars();
}
function validRecipient(){
  var rec = document.freesender.recipient.value;
  var match = /^(\+45)/;
  if(rec.search(match)==-1 && rec != ""){
    rec = "+45" + rec;
  }
  securerec = rec.replace("+","");
  if(securerec != activerec){
    if(document.getElementById(activerec)){
      document.getElementById(activerec).className='recipient';
    }
  }
  if(document.getElementById(securerec)){
    document.getElementById(securerec).className='recipientactive';
  }
  activerec = securerec;
  var match = /^((\+45)?(\d){8})$/;
  if(rec.search(match)==-1) {
    return false;
  }else{
    return true;
  }
}

function createRequest(){
  var request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        alert('Din browser er ikke understøttet. Opdater venligst din browser.');
      }
    }
  }
  if(request != null){
    return request;
  }
}
var sendRequest;
var statusRequest;
var checkmsgid;
function SendMSG(){
  sendRequest = createRequest();
  replaceText(document.getElementById("status"),"Beskeden afsendes...");
  clearText(document.getElementById("contactadd"));
  document.getElementById('sendActive').className='btnHide';
  document.getElementById('sendInactive').className='btnShow';
  sendRequest.onreadystatechange = sentMSG;
  sendRequest.open("POST",'http://www.coolsms.dk/ajax/sendGratisSMS.php',true);
  sendRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  var recipient = document.freesender.recipient.value;
  var match = /^(\+45)/;
  if(recipient.search(match)==-1){

    recipient = "+45" + recipient;
  }
  sendRequest.send('recipient=' + escape(recipient).replace(/\+/g,"%2B") + '&msg=' + encodeURI(document.freesender.message.value).replace(/\+/g,"%2B").replace(/\&/g,"%26"));
}

function sentMSG(){
  if(sendRequest.readyState == 4){
    if(sendRequest.status == 200){
      document.freesender.message.value='';
			validRecipient();
      freeSmsChars();
      var resultrows = eval(sendRequest.responseText);
      for(index in resultrows){
        if(resultrows[index].status == "succes"){
          replaceText(document.getElementById("status"), resultrows[index].reason);
          Spry.Effect.Slide('reklame', {duration: 2500, from:  '0px', to:  '255px', toggle: false});
	        mover = false;
          msgid = resultrows[index].msgid;
          checkmsgid = msgid;
					tries = 0;
      	  setTimeout('delayCheck(\'' + msgid + '\')', 7000);
          document.getElementById('sendActive').className='btnHide';
          document.getElementById('sendInactive').className='btnShow';
        }else{
          replaceText(document.getElementById("status"), "Fejl: " + resultrows[index].reason);
        }
      }
    }
  }
}

function delayCheck(msgid){
	if(mover == false){
    checkStatus(msgid);
	}else{
		setTimeout('delayCheck(\'' + msgid + '\')', 1000);
	}
}

function checkStatus(msgid){
  statusRequest = createRequest();
  statusRequest.onreadystatechange = updateStatus;
  statusRequest.open("POST",'http://www.coolsms.dk/ajax/checkStatus.php',true);
  statusRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  statusRequest.send('msgid=' + encodeURI(msgid));
}

var tries;
function updateStatus(){
  if(statusRequest.readyState == 4){
    if(statusRequest.status == 200){
      var resultrows = eval(statusRequest.responseText);
      for(index in resultrows){
        if(resultrows[index].msgid == checkmsgid){ 
          if(document.getElementById("reklame").style.height > "254px"){ 
            Spry.Effect.Slide('reklame', {duration: 2000, from:  '80%', to:  '0px', toggle: false});
          }
          clearText(document.getElementById("contactadd"));
          if(resultrows[index].contact == "no"){
            replaceText(document.getElementById("contactadd"),"+" + resultrows[index].to + " eksisterer ikke i din telefonbog, vil du ");
            var anode = document.createElement('a');
            anode.setAttribute('href','javascript:addContact(\''+ resultrows[index].to + '\')');
            var txt = document.createTextNode("tilføje");
            anode.appendChild(txt);
            document.getElementById("contactadd").appendChild(anode);
            txt = document.createTextNode(" kontakten?");
            document.getElementById("contactadd").appendChild(txt);
          }
					if(tries == 15){
			     	var textEl = document.createTextNode("Telefonen er slukket eller udenfor radiodækning. Beskeden forsøges leveret senere.");
	    		  clearText(document.getElementById("status"));
	     			document.getElementById("status").appendChild(textEl);
            document.getElementById("afd197ee").src = document.getElementById("afd197ee").src;
            document.getElementById("a3974f5c").src = document.getElementById("a3974f5c").src;
					}else{
	          if(resultrows[index].time == "0000-00-00 00:00:00"){
  	          setTimeout('checkStatus(\'' + msgid + '\')',2000);
							tries++;
	    		  	clearText(document.getElementById("status"));
			     		var textEl = document.createTextNode("Beskeden er ");
	    		 		var textEl2 = document.createTextNode("sendt");
		     			var textEl3 = document.createTextNode(" til +" + resultrows[index].to + ", ");
		     			var textEl4 = document.createTextNode("afventer");
		     			var textEl5 = document.createTextNode(" status rapport.");
				      var spanEl1 = document.createElement("span");
				      var spanEl2 = document.createElement("span");
	     				document.getElementById("status").appendChild(textEl);
							spanEl1.className='stateGreen';
							spanEl1.appendChild(textEl2);
	     				document.getElementById("status").appendChild(spanEl1);
	     				document.getElementById("status").appendChild(textEl3);
							spanEl2.className='stateYellow';
							spanEl2.appendChild(textEl4);
	     				document.getElementById("status").appendChild(spanEl2);
	     				document.getElementById("status").appendChild(textEl5);
      	    }else if(resultrows[index].state == "received"){
	    		  	clearText(document.getElementById("status"));
			     		var textEl = document.createTextNode("Beskeden er ");
	    		 		var textEl2 = document.createTextNode("modtaget");
		     			var textEl3 = document.createTextNode(" " + resultrows[index].time);
				      var spanEl1 = document.createElement("span");
	     				document.getElementById("status").appendChild(textEl);
							spanEl1.className='stateGreen';
							spanEl1.appendChild(textEl2);
	     				document.getElementById("status").appendChild(spanEl1);
	     				document.getElementById("status").appendChild(textEl3);
              document.getElementById("afd197ee").src = document.getElementById("afd197ee").src;
              document.getElementById("a3974f5c").src = document.getElementById("a3974f5c").src;
          	}else if(resultrows[index].state == "rejected"){
	    		  	clearText(document.getElementById("status"));
			     		var textEl = document.createTextNode("Beskeden er ");
	    		 		var textEl2 = document.createTextNode("afvist");
		     			var textEl3 = document.createTextNode(" " + resultrows[index].time);
				      var spanEl1 = document.createElement("span");
	     				document.getElementById("status").appendChild(textEl);
							spanEl1.className='stateRed';
							spanEl1.appendChild(textEl2);
	     				document.getElementById("status").appendChild(spanEl1);
	     				document.getElementById("status").appendChild(textEl3);
              document.getElementById("afd197ee").src = document.getElementById("afd197ee").src;
              document.getElementById("a3974f5c").src = document.getElementById("a3974f5c").src;
	          }else{
  	          setTimeout('checkStatus(\'' + resultrows[index].msgid + '\')',2000);
						}
					}
        }
      }
    }
  }
}

var contactRequest;
function getContact(prefix){
  contactRequest = createRequest();
  contactRequest.onreadystatechange = updateContacts;
  contactRequest.open("GET",nocache('http://www.coolsms.dk/ajax/getFreeContacts.php?prefix=' + prefix),true);
  contactRequest.send(null);
}
function updateContacts(){
  var contactEl;
  var appendEl;
  var appendText;
  if(contactRequest.readyState == 4){
    if(contactRequest.status == 200){
      contactEl = document.getElementById("phonebook");
      var resultrows = eval(contactRequest.responseText);
      if(resultrows == null){
        clearText(contactEl);
        appendEl = document.createElement('div');
        appendEl.className='recipient';
        appendEl.id='na';
        appendText = document.createTextNode('-- Ingen kontaktpersoner --');
        appendEl.appendChild(appendText);
        contactEl.appendChild(appendEl);
      }else{
        clearText(contactEl);
        for(index in resultrows){
          appendEl = document.createElement('div');
          if(resultrows[index].mobile == activerec){
            appendEl.className='recipientactive';
          }else{
            appendEl.className='recipient';
          }
          appendEl.id=resultrows[index].mobile;
          appendText = document.createTextNode(resultrows[index].name);
          appendEl.appendChild(appendText);
          appendEl.onmouseup=sendTo;
          contactEl.appendChild(appendEl);
          disableSelection(document.getElementById(resultrows[index].mobile));
        }
      }
    }
  }
}

function DelContact(){
  if(activerec){
    rec = activerec;
    if(rec != 'na'){
      DeleteContact(rec);
    }else{
      replaceText(document.getElementById("contactStatus"),"Du har ingen kontakter du kan slette.");
    }
  }else{
    replaceText(document.getElementById("contactStatus"),"Du skal vælge en kontakt.");
  }
}

function DeleteContact(rec){
  contactRequest = createRequest();
  contactRequest.onreadystatechange = updateDelContacts;
  contactRequest.open("GET",nocache('http://www.coolsms.dk/ajax/delContact.php?phone=' + rec),true);
  contactRequest.send(null);
}
function updateDelContacts(){
  if(contactRequest.readyState == 4){
    if(contactRequest.status == 200){
      getContact('45');
      replaceText(document.getElementById("contactStatus"),"Kontaktpersonen er slettet.");
      document.getElementById('recipientInputField').value = '';
    }
  }
}

function EdContact(){
  if(activerec){
    rec = activerec;
    if(rec != 'na'){
      EditContact(rec);
    }else{
      replaceText(document.getElementById("contactStatus"),"Du har ingen kontakter du kan rette.");
    }
  }else{
    replaceText(document.getElementById("contactStatus"),"Du skal vælge en kontakt.");
  }
}

function EditContact(rec){
  contactRequest = createRequest();
  contactRequest.onreadystatechange = updateEditContacts;
  contactRequest.open("GET",nocache('http://www.coolsms.dk/ajax/getContact.php?phone=' + rec),true);
  contactRequest.send(null);
}
function updateEditContacts(){
  if(contactRequest.readyState == 4){
    if(contactRequest.status == 200){
      var resultrows = eval(contactRequest.responseText);
      for(index in resultrows){
        if(resultrows[index].exists == "no"){
          replaceText(document.getElementById("contactStatus"),"Kontaktpersonen eksisterer ikke.");
        }else{
          document.contact.name.value=resultrows[index].name;
          document.contact.number.value=resultrows[index].mobile;
          document.contact.id.value=resultrows[index].id;
          for (var i = 0; i < document.contact.country.length; ++i) {
            if(document.contact.country[i].value == resultrows[index].prefix){
              document.contact.country.selectedIndex=i;
            }
          }
          document.getElementById("sideContent").className='hide';
          document.getElementById("sideContent2").className='show';
          document.getElementById("contactSave").src="/gfx//DK/all_button_ret.gif";
          document.getElementById("contactEditImg").src = '/gfx//DK/all_ret_modtager.gif';
        }
      }
    }
  }
}

function addContact(rec){
  document.getElementById("sideContent").className='hide';
  document.getElementById("sideContent2").className='show';
  document.getElementById("contactSave").src='/gfx//DK/all_button_opret.gif';
  document.getElementById("contactEditImg").src = '/gfx//DK/all_opret_modtager.gif';
  if(rec == 0){
    rec = document.getElementById("countrycode").value;
  }
  for (var i = 0; i < document.contact.country.length; ++i) {
    if(document.contact.country[i].value == rec.substr(0,document.contact.country[i].value.length)){
      document.contact.country.selectedIndex=i;
      rec = rec.substr(document.contact.country[i].value.length,rec.length);
    }
  }
  document.contact.number.value=rec;
  document.contact.id.value='';
}
function showContact(){
  document.contact.id.value='';
  document.contact.name.value='';
  document.contact.number.value='';
  document.getElementById("sideContent").className='show';
  document.getElementById("sideContent2").className='hide';
  getContact(document.getElementById("countrycode").value);

}

var saveRequest;
function saveContact(){
  var name = document.contact.name.value;
  var id = document.contact.id.value;
  var mobile = document.contact.number.value;
  var prefix = document.contact.country[document.contact.country.selectedIndex].value;
  if(prefix == 45 || prefix == 47){
    var match = /^\d{8}$/;
  }else if(prefix == 46){
    var match = /^\d{9}$/;
  }
  if(name == ""){
    replaceText(document.getElementById("contactSaveStatus"), "Du skal udfylde navn.");
  }else if(mobile == ""){
    replaceText(document.getElementById("contactSaveStatus"), "Du skal udfylde nummer.");
  }else if(mobile.search(match)==-1) {
    replaceText(document.getElementById("contactSaveStatus"), "Du skal udfylde  et korrekt nummer.");
  }else{
    saveRequest = createRequest();
    saveRequest.onreadystatechange = updateSaveContact;
    saveRequest.open("POST",'http://www.coolsms.dk/ajax/saveContact.php',true);
    saveRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    saveRequest.send("name=" + escape(name) + "&mobile=" + encodeURI(mobile) + "&prefix=" + encodeURI(prefix) + "&id=" + encodeURI(id));
  }
}

function updateSaveContact(){
  if(saveRequest.readyState == 4){
    if(saveRequest.status == 200){
      var resultrows = eval(saveRequest.responseText);
      if(resultrows[0].action == "insert"){
        replaceText(document.getElementById("contactStatus"), "Kontaktpersonen er oprettet.");
        showContact();
      }else if(resultrows[0].action == "update"){
        replaceText(document.getElementById("contactStatus"), "Kontaktpersonen er rettet.");
        showContact();
      }else{
        replaceText(document.getElementById("contactSaveStatus"), "Der opstod en fejl.");
      }
    }
  }
}

var highlight;
function highLight(id){
  if(highlight != id){
    if(highlight){
      document.getElementById(highlight).style.background='#ffffff';
      document.getElementById(highlight).style.cursor='default';
    }
    document.getElementById(id).style.background='#e6e7e7';
    document.getElementById(id).style.cursor='pointer';
    highlight = id;
  }
}



