var INPUTTYPES=new Array("input","textarea","select");

function initApp() {
  showdialogdiv('messagediv');
  showconf('Change Password');
  document.getElementById('msgnow').checked=true;
  showSubs(['NO_CACHE'],['subsdiv']);
  setmsgtimenow();
}

function showcalendar(inputid) { 
  setmsgtimeother();
  var cal = new Calendar(0, null, selectedate, closeHandler);
  cal.weekNumbers = false;
  cal.showsTime = true;
  cal.time24 = false;
  cal.showsOtherMonths = true;
  cal.create(); 
  cal.setDateFormat("%s");
  var el=document.getElementById(inputid);
  cal.sel = el;
  cal.showAtElement(el);
  return false;
}

function selectedate(cal, datestr) {
  cal.sel.value = time2date(datestr*1000);
  if(cal.dateClicked) cal.callCloseHandler();
}

function closeHandler(cal) {
  cal.hide();
  cal.destroy();
}

function time2date(timestr) {
  var d = new Date();
  if(timestr) d.setTime(timestr);
  var month = d.getMonth() + 1;
  var day = d.getDate();
  var year = d.getFullYear();
  var hour   = d.getHours();
  var minute = d.getMinutes();
  var ap="am";

  if (hour   > 11) { ap = "pm";             }
  if (hour   > 12) { hour = hour - 12;      }
  if (hour   == 0) { hour = 12;             }
  if (minute < 10) { minute = "0" + minute; }
  var datetimestr=month+"/"+day+"/"+year+" "+hour+":"+minute+ap; 
  return datetimestr;
}

function date2time(datetimestr) {
  var dtArr = new Array();
  dtArr = datetimestr.match(/(\d+)\/(\d+)\/(\d+) (\d+):(\d+)(\w+)/);
  if(!dtArr) return 'nan';
  dtArr[1] = 1*dtArr[1]-1;
  if(dtArr[4] == '12' && dtArr[6] == 'am'){ dtArr[4] = 0 }
  if(dtArr[4] != '12' && dtArr[6] == 'pm'){ dtArr[4] = 1*dtArr[4] + 12 }
  var d = new Date(dtArr[3],dtArr[1],dtArr[2],dtArr[4],dtArr[5]);
  return Math.floor(d.getTime()/1000);
  if(isNaN(document.forms[0]["appttime"].value) == true){
    errmsg=errmsg+"Date or Time format is incorrect.  ";
  }
}

function togglenow() {
  if(document.getElementById('msgnow').checked) setmsgtimenow();
  else setmsgtimeother();
}

function setmsgtimenow() {
  document.getElementById('msgwhen').value=time2date();     
  document.getElementById('msgwhen').style.border="1px solid #999";
  document.getElementById('msgwhen').style.color="#888";
}

function setmsgtimeother() {
  document.getElementById('msgwhen').style.border="1px solid #99e";
  document.getElementById('msgwhen').style.color="#000";
  document.getElementById('msgnow').checked=false;
}

function showdialogdiv(dialogdiv) {
  var appdialogs=document.getElementById('apptd').getElementsByTagName("div");
  for(n=0; n < appdialogs.length; n++){
    var appdiv=appdialogs[n];
    if(appdiv.id == dialogdiv) appdiv.style.display='block';
    else appdiv.style.display='none';
  }
  return false;
}

function showconf(selconf){
 var confbtns=document.getElementById('confbtns').getElementsByTagName("input");
  for(n=0; n < confbtns.length; n++){
    if(confbtns[n].value == selconf){
      confbtns[n].style.backgroundColor='#fff';
    }
    else{
      confbtns[n].style.backgroundColor='#eeeef5';
    }
  }
  document.forms[0]["selconf"].value=selconf;
  document.getElementById(selconf).blur();
  showConf(['selconf','NO_CACHE'],['confcontenttd']);
}

function saveconf() {
  var errmsg="";
  if(document.forms[0]["selconf"].value == 'Change Password'){
    if(document.forms[0]["newpasswd"].value.length < 6){
      document.forms[0]["newpasswd"].style.borderColor="#F99";
      errmsg=errmsg+'Password must be at least 6 characters.  ';
      document.forms[0]["confpasswd"].style.borderColor="#F99";
    }
    if(document.forms[0]["newpasswd"].value != document.forms[0]["confpasswd"].value){
      document.forms[0]["newpasswd"].style.borderColor="#F99";
      document.forms[0]["confpasswd"].style.borderColor="#F99";
      errmsg=errmsg+"Passwords do not match.";
    }
  }
  if(errmsg != ""){
    document.getElementById('conferrdiv').innerHTML=errmsg;
    return false;
  }
  document.getElementById('saveconfbtn').value="Saving...";
  document.getElementById('saveconfbtn').style.color='#777';   
  saveConf(getdivinputs('configdiv'),['confcontenttd']);
}

function getdivinputs(inputdiv){
  var idsArr=new Array;
  var divInput=document.getElementById(inputdiv);
  for(var n=0; n < INPUTTYPES.length;n++){
    var divInputs=divInput.getElementsByTagName(INPUTTYPES[n]);
    for(var m=0; m < divInputs.length; m++){
      if(divInputs[m].id) idsArr[idsArr.length]=divInputs[m].id;
    }
  }
  idsArr[idsArr.length]='NO_CACHE';
  return idsArr; 
}

function submitmessage() {
  var errmsg="";
  var msgtime=date2time(document.getElementById('msgwhen').value);
   
  if(isNaN(msgtime) == true){
    errmsg=errmsg+"Date and Time format is incorrect.  ";
  }
  if(document.getElementById('msgbody').value == '')
    errmsg=errmsg+"Message body can not be empty. ";
  if(errmsg != ""){
    document.getElementById('apperr').innerHTML=
      "<font color='#ff5555'>"+errmsg+"</font>";
    return false;
  }
  document.getElementById('msgtime').value=msgtime;
  document.getElementById('msgsend').value="Sending...";
  submitMessage(getdivinputs('messagediv'),[submittedmessage]);
}

function submittedmessage() {
  document.getElementById('apperr').innerHTML="Message queued for delivery.";
  document.getElementById('msgsend').value="Send";
  document.getElementById('msgbody').value="";

  //document.getElementById('msgsend').disabled=true;
  //document.getElementById('msgsend').style.color='#888';
}

function doSavesub(subid) {
  if(document.getElementById('addr'+subid).value == ''){
    document.getElementById('addr'+subid).style.border="1px solid red";
    alert("Cell / Email is required");
  }
  else {
    document.getElementById('savesub').value = subid;
    document.getElementById('procimg').style.display='block';
    showSubs(['name'+subid,'addr'+subid,'category'+subid,'savesub','NO_CACHE'],['subsdiv']);
  }
}

function doDelsub(subid) {
  if(confirm("Are you sure?")){
    document.getElementById('delsub').value = subid;
    document.getElementById('procimg').style.display='block'; 
    showSubs(['delsub','NO_CACHE'],['subsdiv']);
  }
}

function charcount(s) {
  max = 160;
  if(s.value.length > max) s.value = s.value.substr(0,max);
  document.getElementById('charcounter').innerHTML = s.value.length + "/" + max;
}


