services = new Array();
contentObj = new Object();
globFile = '';

function loadPage(file, placeObj)
{
placeObj.innerHTML = "<p style='text-align: center;'><img style='text-align: center;' src='images/ajax-loader.gif /></p>";
var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  return true;
  }
  
xmlhttp.onreadystatechange=function()
{

/*
readyStates ==
0	The request is not initialized
1	The request has been set up
2	The request has been sent
3	The request is in process
4	The request is complete
*/

if(xmlhttp.readyState==4)
  {
  placeObj.innerHTML=xmlhttp.responseText;
  }
}

xmlhttp.open("GET",file,true);
xmlhttp.send(null);
return false;
}

function post(url, data, placeObj) {

var http = new XMLHttpRequest();
var tmpData = '';
for (i in data) {
  if(i>0) tmpData+='&';
  tmpData += 'data'+i+'='+data[i];
}

http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", tmpData.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
	if(http.readyState == 4 && http.status == 200) {
		//alert(http.responseText);
		placeObj.innerHTML=http.responseText;
	}
}
http.send(tmpData);


}

function serviceAdmin(srvArr,obj,file) {

  for (x in srvArr) {
  srvArr[x] = srvArr[x].split('|');
  }
  
  if (file != undefined) globFile = file;
  else globFile = 'services/services.txt'
  
  services = srvArr;
  
  contentObj = obj;
  
  generatePage();

}

function generatePage() {

  var pageSrc = '<table cellspacing="5" cellpadding="5"><tbody>';
  
  for (x in services) {
    
    date = new Array (services[x][0].substr(0,2),
                  services[x][0].substr(2,2),
                  services[x][0].substr(4,2),
                  services[x][0].substr(6,2),
                  services[x][0].substr(8,2)
                  );
    
    switch (date[1]) {
      case '01':
        date[1] = 'January';
        break;
      case '02':
        date[1] = 'February';
        break;
      case '03':
        date[1] = 'March';
        break;
      case '04':
        date[1] = 'April';
        break;
      case '05':
        date[1] = 'May';
        break;
      case '06':
        date[1] = 'June';
        break;
      case '07':
        date[1] = 'July';
        break;
      case '08':
        date[1] = 'August';
        break;
      case '09':
        date[1] = 'September';
        break;
      case '10':
        date[1] = 'October';
        break;
      case '11':
        date[1] = 'November';
        break;
      case '12':
        date[1] = 'December';
        break;
    }

    switch (date[4]) {
      case 'Su':
        date[4] = 'Sunday';
        break;
      case 'Mo':
        date[4] = 'Monday';
        break;
      case 'Tu':
        date[4] = 'Tuesday';
        break;
      case 'We':
        date[4] = 'Wednesday';
        break;
      case 'Th':
        date[4] = 'Thursday';
        break;
      case 'Fr':
        date[4] = 'Friday';
        break;
      case 'Sa':
        date[4] = 'Saturday';
        break;
    }

    switch (date[3]) {
      case '01':
        date[3] = 'Sunday School';
        break;
      case '02':
        date[3] = 'Morning Service';
        break;
      case '03':
        date[3] = 'Afternoon Service';
        break;
      case '04':
        date[3] = 'Afternoon Service';
        break;
      case '05':
        date[3] = 'Evening Service';
        break;
      case '06':
        date[3] = 'Evening Service';
        break;
      default:
        break;
    }
    
    if (date[2].substr(0,1) == '0') date[2] = date[2].substr(1,1);
    
    dateStr = date[4]+ ', '+ date[1]+ ' '+ date[2]+ ', 20'+ date[0]+ ' - '+ date[3];
    if (globFile == 'services/services.txt') {
        pageSrc += '<tr class="servicedate">';
        
        pageSrc += '<td colspan="3"><a href="#" onclick="selectDate('+ x+ ')">'+ dateStr + '</a></td>';
        
        pageSrc += '</tr>';
    }
    
    pageSrc += '<tr>';
    
    pageSrc += '<td colspan="3"><a href="#" onclick="selectText('+ x+ ')">'+ services[x][1] + '</a></td>';
    
    pageSrc += '<td><button onclick="deleteEntry('+ x+ ')">Delete</button></td>';
    
    pageSrc += '</tr>';

    pageSrc += '<tr>';
    
    if (globFile == 'services/services.txt') pageSrc += '<td><a href="#" onclick="selectFile('+ x+ ',2)">'+ services[x][2] + '</a></td>';

    pageSrc += '<td><a href="#" onclick="selectFile('+ x+ ',3)">'+ services[x][3] + '</a></td>';

    if (globFile == 'services/services.txt') pageSrc += '<td><a href="#" onclick="selectFile('+ x+ ',4)">'+ services[x][4] + '</a></td>';
    
    pageSrc += '</tr>';
    
  }

  pageSrc += '</tbody></table><button onclick="addEntry()">Add</button><button onclick="saveData()">Save</button><div id="issaved"></div>';
  
  contentObj.innerHTML =  pageSrc;

}

function selectDate(which) {

showPopWin('srvedit.php?date='+services[which][0]+ '&which='+ which,500,500,changeDate);

}


function changeDate(dateArr) {

services[dateArr[0]][0] = dateArr[1];

generatePage();

}

function selectText(which) {

showPopWin('srvedit.php?text='+services[which][1]+ '&which='+ which,500,500,changeText);

}


function changeText(textArr) {

if (textArr[1].replace(/^\s+|\s+$/g,"").length<1) textArr[1] = "Description";

services[textArr[0]][1] = textArr[1];

generatePage();

}

function selectFile(which,what) {

switch (globFile) {
    case 'services/services.txt':
        showPopWin('srvedit.php?file='+services[which][what]+ '&which='+ which+ '&what='+ what,500,500,changeFile);
        break;
    case 'helps/helps.txt':
        showPopWin('helpsedit.php?file='+services[which][what]+ '&which='+ which+ '&what='+ what,500,500,changeFile);
        break;
    }
}


function changeFile(fileArr) {

services[fileArr[0]][fileArr[1]] = fileArr[2];

generatePage();

}


function saveData() {

  if (confirm("Save data?")) {
    
    var tmpsrv = new Array();
    
    for (x in services) {
      tmpsrv[x] = services[x].join('|');
    }
    switch(globFile) {
    case 'services/services.txt':
        post('srvedit.php', [tmpsrv.join('{{|}}')], document.getElementById('issaved'));
        break;
    case 'helps/helps.txt':
        post('helpsedit.php', [tmpsrv.join('{{|}}')], document.getElementById('issaved'));
        break;
    }
    

  }

}

function deleteEntry(which) {

  if (confirm("Really delete entry?")) {
  
    services.splice(which,1);
    
    generatePage();
  
  }

}

function addEntry() {

  services.push(new Array("01010101Su",
                          "Description",
                          "none",
                          "none",
                          "none"                          
                          ));
                          
  generatePage();

}











