// JavaScript Documentvar xmlHttp;
var xmlHTTP_VERSIONS = new Array('MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHttp');
var ajax_path = "http://yourlinkweb.com/time/";

var record;
var cur_record_css;
var last_record_css;

var last_id = 0;
var cur_id = 0;

var temp_record = new Array();
var editmode = false;
var msg;
var dest;
var ADD_MODE;

var IMG_EDIT = '<img src="../images/edit.gif" border=0 title="Edit" >';
var IMG_SAVE = '<img src="../images/save.gif" border=0 title="Save" >';
var IMG_APPROVE = '<img src="../images/approve.gif" border=0 title="Approve" alt="Approve" />';
var IMG_UNDO = '<img src="../images/undo.gif" border=0 title="Undo" alt="Undo" />';


var ERROR_ON_PAGE = false;
// Initializes XMLHttpRequest Object ###################################################################################################
function GetXmlHttpObject()
{
	try
	 {
	        xmlHttp = new XMLHttpRequest();
	 }

	catch(e)
	 {
	        for(var i=0; i<xmlHTTP_VERSIONS.length && !xmlHttp; ++i)
		 {
		        try
		        {
		        	xmlHttp = new ActiveXObject(xmlHTTP_VERSIONS[i]);
		        }
                        catch(e) {}
		 }
	 }

	 if(!xmlHttp)
	  {
	        alert('Error creating the XMLHttpRequest Object');
	        return;
	  }
	 else
	  {
	        return xmlHttp;
	  }
}

function jsf_EditRow(_id, _row_rate)
{
	if(editmode == false)
	 {
		record = document.getElementById(_id).cells;

		// Save values into temp_record array for later retrival
		temp_record[0] = record[2].innerHTML;
		temp_record[1] = record[3].innerHTML;
		temp_record[2] = record[5].innerHTML;


		record[2].innerHTML = '<input type="text" size="15" id="edit_description" value="' + record[2].innerHTML + '">';
		record[3].innerHTML = '<input type="text" size="30" id="edit_notes" value="' + record[3].innerHTML + '">';
		record[5].innerHTML = '<input type="text" size="5" id="edit_minutes" value="' + record[5].innerHTML + '">';
		record[11].innerHTML = '<a href="javascript: ajax_UpdateRow(' + "'" + _id + "','" + _row_rate + "'" + ');">' + IMG_SAVE + '</a> | <a href="javascript: jsf_UndoEdit(' + "'" +  _id + "','" + _row_rate + "'" + ');">' + IMG_UNDO + '</a>';

		// Turn edit mode indicator on
		editmode = true;

	 }
	else
	 {
	        alert('Only one row can be edited at a time.');
	        return;
	 }

}

function jsf_UndoEdit(_id, _row_rate)
{

        record = document.getElementById(_id).cells;

		record[2].innerHTML = temp_record[0];
		record[3].innerHTML = temp_record[1];
		record[5].innerHTML = temp_record[2];

		var APPROVE_LINK = "<a href=\"javascript: ajax_UpdateRow('" + _id + "')\">" + IMG_APPROVE + "</a>";
  		var EDIT_LINK = "<a href=\"javascript: jsf_EditRow('" + _id + "','" + _row_rate + "')\">" + IMG_EDIT + "</a>";


		record[11].innerHTML = APPROVE_LINK + " | " + EDIT_LINK;

		editmode = false;
		//ajax_ListClass();
}
// ####################################################################################################################################
function ajax_UpdateRow(_id, _row_rate)
 {
 		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}

		var _row_minutes = document.getElementById('edit_minutes').value;
		var _row_description = document.getElementById('edit_description').value;
		var _row_notes = document.getElementById('edit_notes').value;
		var url = "php_UpdateRow.php?row_id=" + _id + "&row_minutes=" + _row_minutes + "&row_rate=" + _row_rate + "&mode=edit&row_notes=" + _row_notes + "&row_description=" + _row_description;

		xmlHttp.onreadystatechange=state_UpdateRow;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);

}

function state_UpdateRow()
{
	switch(xmlHttp.readyState)
	 {
		 case 1:
		 case 2:
		 case 3:
		 	//document.getElementById('div_ServiceDetails').innerHTML = "Loading (GetServiceProfile)... ";
		 break;

		 case 4:
		 	var xml_text = xmlHttp.responseText;
		 	if(xml_text == "OK")
			 {
			        window.location.reload(true);
			 }
			else
			 {
			        alert('Error occured while updating ...');
			 }
		 break;

	 }

}
// ####################################################################################################################################
function ajax_ApproveRow(_id)
 {
 		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}

		if(!confirm('Are you sure you want to approve Log ID ' + _id))
		 {
		        return;
		 }

		var url = "php_UpdateRow.php?row_id=" + _id + "&mode=approve";

		xmlHttp.onreadystatechange=state_ApproveRow;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);

}

function state_ApproveRow()
{
	switch(xmlHttp.readyState)
	 {
		 case 1:
		 case 2:
		 case 3:
		 	//document.getElementById('div_ServiceDetails').innerHTML = "Loading (GetServiceProfile)... ";
		 break;

		 case 4:
		 	var xml_text = xmlHttp.responseText;
		 	if(xml_text == "OK")
			 {
			        window.location.reload(true);
			 }
			else
			 {
			        alert('Error occured while updating ... \n' + xml_text);
			 }
		 break;

	 }

}
// ####################################################################################################################################
function ajax_ApproveAll(_query)
 {
 		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}

		if(!confirm('Are you sure you want to approve all listed records ?'))
		 {
		        return;
		 }

		var url = "php_UpdateRows.php?query_string=" + _query;

		xmlHttp.onreadystatechange=state_ApproveAll;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);

}

function state_ApproveAll()
{
	switch(xmlHttp.readyState)
	 {
		 case 1:
		 case 2:
		 case 3:
		 	//document.getElementById('div_ServiceDetails').innerHTML = "Loading (GetServiceProfile)... ";
		 break;

		 case 4:
		 	var xml_text = xmlHttp.responseText;
		 	if(xml_text == "OK")
			 {
			        window.location.reload(true);
			 }
			else
			 {
			        alert('Error occured while updating ... \n' + xml_text);
			 }
		 break;

	 }

}
