var xmlHttp		= RequestObject();
var xmlHttp_Del = RequestObject();
var cache = new Array();
var cachedel = new Array();
var Err_user_id = '';
var Err_Age = '';
var counter = 1;
var timerID = -1;
var timerID_del = -1;
function RequestObject()
{
var xmlHttp;
	if(window.ActiveXObject)
	{
		var tryPossibleVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
		
		for(i=0;i<tryPossibleVersions.length;i++) {
			try
			{
				xmlHttp = new ActiveXObject(tryPossibleVersions[i]);
				break;
			}
			catch (e)
			{
			xmlHttp = false;
			}
		}
	}
	else
	{
		try
		{
		xmlHttp = new XMLHttpRequest();
		}
		catch (e)
		{
		xmlHttp = false;
		}
	}
	if (!xmlHttp)
	alert("Error creating the XMLHttpRequest object.");
	else
	return xmlHttp;
}


//####################################### you can modify it ################################
function process()
{
	var error=0;

	var obj_name = document.getElementById("id_txtName");
	var obj_email = document.getElementById("id_txtEmail");
	var obj_project = document.getElementById("id_txtProject");
	
	// validate the fields
	if(obj_name.value == '') {
		obj_name.style.backgroundColor='silver';
		error = 1;
	}
	if(obj_email.value == '' || !isValidEmail(obj_email.value)) {
		obj_email.style.backgroundColor='silver';
		error = 1;
	}
	if(obj_project.value == '') {
		obj_project.style.backgroundColor='silver';
		error = 1;
	}
    if(error == 1) {
		return false;
	}
	// end of validations
	
	if(xmlHttp) {
		
		
		try
		{
			// Finaly accept all vars in variavle
			var name = encodeURIComponent(obj_name.value);
			var email = encodeURIComponent(obj_email.value);
			var project = encodeURIComponent(obj_project.value);

			var querystring = "page=index"+"&name="+name+"&email="+email+"&project="+project;
			
			cache[cache.length] = querystring;
			if(timerID ==-1) {
			readProcess();
			}
		}
		catch (e)
		{
			alert(e.toString());
		}
	
	}
}
function readProcess()
{

if(xmlHttp)
	{
		myvar="";
		var CountElm = cache.length;
		
		try
		{
			if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
			{
				
				show_processing_image();
				if(cache.length>0) {
					var cachentry = cache.shift();
					var myvar=cachentry;
					if(cachentry.length>0)
					{
					xmlHttp.open("POST", "ajax_process.php",true);
					xmlHttp.setRequestHeader ("Content-Type","application/x-www-form-urlencoded");
					xmlHttp.onreadystatechange = handleServerResponse;
					xmlHttp.send(myvar);
					
					}
				}
				
			}
		}
		catch(e)
		{
			alert(e.toString());
		}
		
	}
		if(timerID==-1) {
		timerID=setInterval("readProcess()",200);
		}
		if(cache.length==0) {
			clearInterval(timerID);
			timerID = -1;
		}
}
function handleServerResponse()
{
try
{
		
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			readResponse();
					
		}
		else
		{
		alert("There was a problem accessing the server: " +
		xmlHttp.statusText);
		}
	}
}
catch(e)
{
alert("Error in server response pls try after some time"+e.toString());
}
}
function readResponse()
{
	try
	{
	xmlResponse = xmlHttp.responseText;
		
		hide_processing_image();
		sucess_status_value = xmlResponse;
		
		var obj_proposal = document.getElementById("proposal");
		var obj_proposal_submited = document.getElementById("proposal_submited");

		if(sucess_status_value == 1) {
			// ok
			obj_proposal.style.display='none';
			obj_proposal_submited.style.display='inline';
		}
		else {
			//error
			alert('There is an error while submitting the request');
		}

	}
	catch(e) {
		alert("Error in reading server response"+e.toString());
	}

	
}
function rollback() {
	
		var obj_proposal = document.getElementById("proposal");
		var obj_proposal_submited = document.getElementById("proposal_submited");
		

		obj_proposal.style.display='inline';
		obj_proposal_submited.style.display='none';
		
		var obj_name = document.getElementById("id_txtName");
		var obj_email = document.getElementById("id_txtEmail");
		var obj_project = document.getElementById("id_txtProject");
		
		obj_name.value='';
		obj_email.value='';
		obj_project.value='';

}

function isValidEmail(str) {

		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
 
}
function show_processing_image() 
{
	var o_proc_image_div = document.getElementById('waiting_image');
	o_proc_image_div.style.display="inline";
}
function hide_processing_image() 
{
	var o_proc_image_div = document.getElementById('waiting_image');
	o_proc_image_div.style.display="none";
}
// ###########################################################################################
