﻿var http_request = false;

function makerequest(act, view, secs, type) {
    var pars = '?ajax&';
    var tspan;
    http_request = false;
    numon = 0;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      document.getElementById('customisepanel').innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    if(type == 'eventcats') {
      for(var i=0;i<eventcats.length;i++) {
        if(document.getElementById(eventcats[i]).checked) {
          pars += eventcats[i]+'=on&';
          numon++;
        } else {
          pars += eventcats[i]+'=off&';
        }
      }
      if(numon == eventcats.length) {
        document.getElementById('eventall').checked = true;
      } else {
        document.getElementById('eventall').checked = false;
      }
      if(document.getElementById('eventall').checked) {
        eventall = 'eventall=all&';
      } else {
        eventall = '';
      }
      http_request.onreadystatechange = function() {
          if (http_request.readyState == 4) {
              if (http_request.status == 200) {
                  document.getElementById('calbody').innerHTML = http_request.responseText;
              } else {
                  document.getElementById('calbody').innerHTML = 'Error connecting to server';
              }
          } else {
              document.getElementById('calbody').innerHTML = '<div id="ajaxload"><p>Loading...</p></div>';
          }
      }
      pars += act+'&events&'+eventall+'view='+view+'&secs='+secs;
      http_request.open('GET', url+pars, true);
      http_request.send(null);
   } else if((type == 'todocats') || (type == 'todospan')) {
      for(var i=0;i<todocats.length;i++) {
        if(document.getElementById(todocats[i]).checked) {
          pars += todocats[i]+'=on&';
          numon++;
        } else {
          pars += todocats[i]+'=off&';
        }
      }
      if(numon == todocats.length) {
        document.getElementById('todoall').checked = true;
      } else {
        document.getElementById('todoall').checked = false;
      }
      if(document.getElementById('todoall').checked) {
        todoall = 'todoall=all&';
      } else {
        todoall = '';
      }
      var spanform = document.forms['todolist'];
      if(spanform.todospan[0].checked) {
        tspan = spanform.todospan[0].value;
      } else if(spanform.todospan[1].checked) {
        tspan = spanform.todospan[1].value;
      } else if(spanform.todospan[2].checked) {
        tspan = spanform.todospan[2].value;
      } else if(spanform.todospan[3].checked) {
        tspan = spanform.todospan[3].value;
      } else if(spanform.todospan[4].checked) {
        tspan = spanform.todospan[4].value;
      }
      if(document.getElementById('includecompleted').checked) {
        includecompleted = '1';
      } else {
        includecompleted = '0';
      }
      if(document.getElementById('taskstodo').innerHTML == '') {
        var newid = 'taskstodo';
        var oldid = 'taskstodo1';
      } else {
        var newid = 'taskstodo1';
        var oldid = 'taskstodo'
      }
      http_request.onreadystatechange = function() {
          if (http_request.readyState == 4) {
              if (http_request.status == 200) {
                  if(document.getElementById('taskstodo1') == null) {
                    document.getElementById('taskscontainer').innerHTML += '<div class="popupcontainer" style="display: none;" id="taskstodo1"></div>';
                  }
                  document.getElementById(newid).innerHTML = http_request.responseText;
                  new Effect.PhaseOut(oldid, {duration:0.8} );
                  new Effect.PhaseIn(newid, {duration:0.8} );
                  setTimeout('killoldid()',1000);
              } else {
                  document.getElementById(oldid).innerHTML = 'Error connecting to server';
              }
          }
      }
   
      pars += act+'&todo&'+todoall+'secs='+secs+'&todospan='+tspan+'&includecompleted='+includecompleted;
      http_request.open('GET', url+pars, true);
      http_request.send(null);   
   }
}
function getcustpanel(fromloc) {
    http_request = false;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      document.getElementById('customisepanel').innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
	      document.getElementById('customisepanel').innerHTML = http_request.responseText;
	      document.getElementById('fromloc').value = fromloc;              
          } else {
              document.getElementById('customisepanel').innerHTML = 'Error connecting to server';
          }
      } else {
          document.getElementById('customisepanel').innerHTML = '<div id="ajaxload"><p>Loading...</p></div>';
      }    
    }
    http_request.open('GET', url+'?ajax&customisepanel', true);
    http_request.send(null);   
}
function doupdate(k1, v1, k2, v2, k3, v3, k4, v4) {
    http_request = false;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      document.getElementById(oldid).innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
	      if(document.getElementById('taskstodo').innerHTML == '') {
	        var newid = 'taskstodo';
	        var oldid = 'taskstodo1';
	      } else {
	        var newid = 'taskstodo1';
	        var oldid = 'taskstodo'
	      }
	      if(document.getElementById('taskstodo1') == null) {
	        document.getElementById('taskscontainer').innerHTML += '<div class="popupcontainer" style="display: none;" id="taskstodo1"></div>';
	      }
	      document.getElementById(newid).innerHTML = http_request.responseText;
     	      new Effect.PhaseOut(oldid, {duration:0.8} );
	      new Effect.PhaseIn(newid, {duration:0.8} );
	      setTimeout('killoldid()',1000);
//	      document.getElementById(oldid).parentNode.removeChild(document.getElementById(oldid));

          } else {
              document.getElementById(oldid).innerHTML = 'Error connecting to server';
          }
      }
    }
    http_request.open('GET', url+'?ajax&'+k1+'='+v1+'&'+k2+'='+v2+'&'+k3+'='+v3+'&'+k4+'='+v4, true);
    http_request.send(null);   
}
function showedit(id, update) {
    http_request = false;
    tododiv = document.getElementById('todo'+id);
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      tododiv.innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
            editform = document.createElement('div');
            editform.id='edit'+id;
            editform.className = 'tododiv';
            editform.style.display = 'none';
            tododiv.parentNode.insertBefore(editform,tododiv.nextSibling);
    	    document.getElementById('edit'+id).innerHTML = http_request.responseText;
   	    new Effect.PhaseOut(tododiv, {duration:0.8} );
            new Effect.PhaseIn(editform, {duration:0.8} );
          } else {
              document.getElementById(oldid).innerHTML = 'Error connecting to server';
          }
      }
    }
    http_request.open('GET', url+'?ajax&todo=showedit&id='+id, true);
    http_request.send(null);   	
}
function delitem(id,file,type) {
    http_request = false;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      document.getElementById('id').innerHTML = 'Error connecting to server '+http_request.responseText;
    }
    new Effect.PhaseOut(id, {duration:0.8} );
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
	      return false;
          } else {
              document.getElementById('id').innerHTML = 'Error connecting to server '+http_request.responseText;
          }
      }
    }
    http_request.open('GET', url+'?ajax&act=delete&id='+id+'&file='+file+'&type='+type, true);
    http_request.send(null);
}
function massdelete() {
    http_request = false;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      tododiv.innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    var names = '';
    var t2 = 0;    
    var eventtable = document.getElementById('listtable');
    var inputseventtable = eventtable.getElementsByTagName('input');    
    if(document.getElementById('todotable') != null) {
      var todotable = document.getElementById('todotable');
      var inputstodotable = todotable.getElementsByTagName('input');
      for(var t = names.length;t < inputstodotable.length;t++) {
        if((inputstodotable[t].type == "checkbox") && (inputstodotable[t].checked == true)) {
          if(names.length == 0) {
            names += 't'+inputstodotable[t].value;
          } else {
            names += '-t'+inputstodotable[t].value;
          }
          fadeTableRow('row'+inputstodotable[t].value);
        }
      }
    }
    for(var t = names.length;t < inputseventtable.length;t++) {
      if((inputseventtable[t2].type == "checkbox") && (inputseventtable[t2].checked == true)) {
        if(names.length == 0) {
          names += 'e'+inputseventtable[t2].value;
        } else {
          names += '-e'+inputseventtable[t2].value;
        }
	fadeTableRow('row'+inputseventtable[t2].value);
      }
      t2++;
    }
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
	      return false;
          } else {
              alert('Error connecting to server '+http_request.responseText);
          }
      }
    }
    http_request.open('GET', url+'?ajax&mass=delete&ids='+names, true);
    http_request.send(null);
}
function edittodo(taskid) {
var valid = true;
  document.getElementById(taskid+'error_taskname').style.display = 'none';
    if(document.getElementById(taskid+'taskname').value == "") {
      document.getElementById(taskid+'error_taskname').innerHTML = JS_TASKNAME;
      document.getElementById(taskid+'error_taskname').style.display = 'block';
      valid = false;
    }
  document.getElementById(taskid+'error_datedue').style.display = 'none';
  if((document.getElementById(taskid+'datedue').value != "") && (!document.getElementById(taskid+'datedue').value.match(/^(?:(?:(?:0?[1-9]|1\d|2[0-8])\/(?:0?[1-9]|1[0-2]))\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$|^(?:(?:(?:31\/(0?[13578]|1?[02]))|(?:(?:29|30)\/(?:0?[1,3-9]|1[0-2])))\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$|^(?:29\/0?2\/(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26]))))$/))) {
      document.getElementById(taskid+'error_datedue').innerHTML = JS_DATEDUE;
      document.getElementById(taskid+'error_datedue').style.display = 'block';
      valid = false;
  }
  if(valid == true) {        
    http_request = false;
    evtitle = document.getElementById(taskid+'taskname').value;
    evdue = document.getElementById(taskid+'datedue').value;
    evtask = document.getElementById(taskid+'task').value.replace(/\n/g, '__NL__\n');
    evcategory = document.getElementById(taskid+'category').value;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
      tododiv.innerHTML = 'Error: Cannot create an XMLHTTP instance (AJAX)';
      return false;
    }
    http_request.onreadystatechange = function() {
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
	      if(document.getElementById('taskstodo').innerHTML == '') {
	        var newid = 'taskstodo';
	        var oldid = 'taskstodo1';
	      } else {
	        var newid = 'taskstodo1';
	        var oldid = 'taskstodo'
	      }
	      if(document.getElementById('taskstodo1') == null) {
	        document.getElementById('taskscontainer').innerHTML += '<div class="popupcontainer" style="display: none;" id="taskstodo1"></div>';
	      }
	      document.getElementById(newid).innerHTML = http_request.responseText;
     	      new Effect.PhaseOut(oldid, {duration:0.8} );
	      new Effect.PhaseIn(newid, {duration:0.8} );
	      setTimeout('killoldid()',1000);
	      return false;
//	      document.getElementById(oldid).parentNode.removeChild(document.getElementById(oldid));
          } else {
              tododiv.innerHTML = 'Error connecting to server';
          }
      }
    }
    http_request.open('GET', url+'?ajax&todo=edit&id='+taskid+'&taskname='+evtitle+'&datedue='+evdue+'&task='+evtask+'&category='+evcategory, true);
    http_request.send(null);
    return false;
  }
}
function killoldid() {
    if(document.getElementById('taskstodo').style.display == 'none') {
      document.getElementById('taskstodo').innerHTML = '';
    } else if(document.getElementById('taskstodo1').style.display == 'none') {
      document.getElementById('taskstodo1').innerHTML = '';
    }
}
function savepref(pref, prefval) {
    var pars = '?';
    http_request = false;
    if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
    if (!http_request) {
        alert('Error: Cannot create an XMLHTTP instance (AJAX)');
        return false;
    }

    pars += 'ajax&savepref&pref='+pref+'&val='+prefval;
    http_request.open('GET', url+pars, true);
    http_request.send(null);
}
