//By: Chris Campbell
//Created: May 20, 2005
//Last Modified: June 27th, 2005
//www.particletree.com
var gErrors=1;
http = getHTTPObject();//don't worry about this
var cache = "";
var sUrl = "http://www.linksmaximizer.com/validation.php?gotype=ajax";//url is the page which will be 

//alert("1");

function  handleHttpResponse() {

	//if the process is completed, decide to do with the returned data
		if(http.readyState == 4) 
  	{
		//if(http.status==200) alert("HELLO!");
	//alert(http.responseText);
		var div_elements = document.getElementsByTagName('div');
		for(var i=0; i<div_elements.length; i++)
		{
			//alert("HERE !!!");
			if(div_elements[i].className == 'rules')
				div_elements[i].style.display = 'none';
		}
		//alert("HERE !ASD");
		/*var ase = document.getElementById('ase');	
		ase.innerHTML = http.responseText;*/
		var error_messages = http.responseText.split('|');
			var formid = error_messages[1];
		for(var i=2; i<error_messages.length; i++)
		{
			//alert("INSIDER FOR");
						
			if(document.getElementById(error_messages[i]))
			{
				var error_id = document.getElementById(error_messages[i]);
				error_id.style.display = 'block';
				error_id.style.color = 'red';
				error_id.innerHTML =  error_messages[i+1];
				//alert("HELP _ INSIDE HERE");
					//gErrors = error_messages[error_messages.length-1];
			}
			
			
			if(i==error_messages.length-1)
							gErrors= error_messages[i];
		
		}
		//alert("GERRORS IS "+gErrors);
		
		if (gErrors > 0)
		{  
		
			if(action=='next')
					{
						//alert("FOUND NEXT");
						if(testing=='all_fields')
						{
							alert ("Please make sure all fields are properly completed.  Errors are marked in red!");
							next();
						}
						else 
						{
						//	alert("NEXT FAIL");
						next('fail');
						}
						return false;
					}
			//if there are any errors give a message
			alert ("Please make sure all fields are properly completed.  Errors are marked in red!");
			//gErrors = 0;// reset errors to 0
			var form = document.getElementById(formid);
			
			form.gotype.value = "false";
			return false;
			//alert(gotype.value);
			//validate();
			//setTimeout(validate(),500);
			
						
		}
		if(gErrors==0)
		{
				//alert("I AM HERE!!!"+formid);
				var form = document.getElementById(formid);
				//alert(form.length);
				//el = form.elements;
				/*for(var i=0; i<el.length; i++)
	 			{
					alert(el[i].name+" "+el[i].id);
				}*/
				form.gotype.value = "pass";
				
				if(action)
				{
					//alert("ACTION NOT BLANK!!!!!!!!!!!! ACTION IS "+action);
					if(action=='next')
					{
					//alert("FOUND NEXT");
						next();
					}
					
				
				}
				else
				{
				//alert("GOING TO SUBMIT FORM: "+form.action);
				form.submit();
				}
			//alert("HERE");
			return true;
		}
		//alert("2");
  	}
	
	//alert("3");
}


function validate(d, formaction)
{   //alert("in validate");
	//alert(d.gotype.value);
	d.gotype.value = 'ajax';
	cache="formid="+d.id+"&";
	var all_elements = d.elements;
	action = formaction;
	//alert("ELEMENTS: "+all_elements.length);
	 for(var i=0; i<all_elements.length; i++)
	 {
	
		//alert(all_elements[i].name+": "+all_elements[i].type);
		if(all_elements[i].type=="checkbox" || all_elements[i].type=="radio")
		{
		
			if(all_elements[i].checked)
			{
				inputValue = encodeURIComponent(all_elements[i].name);
				Value = encodeURIComponent(all_elements[i].value);
			}
			else //VERY NECESSARY FOR FORMS WITH CHECKBOXES AS THE ONLY ELEMENT.
			{
				inputValue='';
				Value='';
			}
				
		
		}
		else
		{
		
			inputValue = encodeURIComponent(all_elements[i].name);
		
		Value = encodeURIComponent(all_elements[i].value);
		}
			
		if(inputValue!='')	//NECESSARY TO AVOID BLANK VALUES FROM BEING PARSED BY THE VALIDATION FILE.
			cache +=inputValue+"="+Value+"&";	
				
	 }
 //alert(cache);
	 callAjax(cache);
	 return false;
	
}

function callAjax(cache)
{ 
//alert("ajax");
http.open("POST", sUrl, true);
	  http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	  http.onreadystatechange = handleHttpResponse;
	// alert(cache);
	  http.send(cache);
	//return false;
}


function getHTTPObject() {
	var xmlhttp;
	//alert("use");
	/*@cc_on
	@if (@_jscript_version >= 5)
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try 
		{
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
		xmlhttp = false;
		}
	}
	return xmlhttp;
}

