//WHEN MAKING CHANGES TO THIS FILE, PLEASE ENSURE surl is = 'http://www.directorymaximizer.com/validation.php?gotype=ajax' WHEN UPLOADING AND '/dm/validation.php?gotype=ajax' WHEN LOCAL

var gErrors=1;
http = getHTTPObject();//don't worry about this
var cache = "";
var page_url = location.href;
//alert(page_url);
//var sUrl = "http://192.168.1.60/dm/validation.php?gotype=ajax";//url is the page which will be 
var sUrl = "validation.php?gotype=ajax&page_url=" + page_url;//url is the page which will be 
var horizontal_offset="6px" //horizontal offset of hint box from anchor link
var vertical_offset="-10px" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all;
var ns6=document.getElementById&&!document.all;
var gform="";

function  handleHttpResponse() {


frmname = gform.name;
	
	//if the process is completed, decide to do with the returned data
	var status = "";
		try{
  			status = http.status;
    }
	catch(e){
 	 status = "Trouble accessing it";
	}
		if(http.readyState == 4  && status==200) 
  		{
		clearTimeout(timeoutId);

	  // 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");
				//alert(error_messages[i]);			
						
			if(document.getElementById(error_messages[i]))
			{
				var error_id = document.getElementById(error_messages[i]);
				//alert(error_id);
				error_id.style.display = 'block';
				error_id.style.color = 'red';
				error_id.innerHTML =  "<img src='images/error_button.jpg' width='20' height='20' align='absbottom'> "+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')
						{
							if(document.getElementById('saving'))
								document.getElementById('saving').style.display='none';
							if(document.getElementById('processing'))
							document.getElementById('processing').style.display='none';
																					
							if(document.getElementById('main_error_msg'))
				document.getElementById('main_error_msg').innerHTML = "<p class='NoteRed'>ERRORS: Please correct the errors below. They are highlighted in red.</p>";
				
							/*if(document.getElementById('hide_table'))
								document.getElementById('hide_table').style.display='';*/
				
				
				
				
					if(document.getElementById(frmname+'ajax-process'))
					{
	document.getElementById(frmname+'ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Please correct the errors above.</em>";
					}
					else
					{
						
							if(document.getElementById('ajax-process'))
							document.getElementById('ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Please correct the errors above.</em>";
					}
			
							alert ("Please make sure all fields are properly completed. Errors are marked in red!");
							window.location.href='#top';
							next();
						}
						else 
						{
						
				
							if(document.getElementById(frmname+'ajax-process'))
							{
								document.getElementById(frmname+'ajax-process').innerHTML = "";
							}
							else
							{
								if(document.getElementById('ajax-process'))
								document.getElementById('ajax-process').innerHTML = "";
							}
				
						//	alert("NEXT FAIL");
						next('fail');
						}
						return false;
					}
			
			
				//if there are any errors give a message
			if(document.getElementById(frmname+'ajax-process'))	
		    {
	document.getElementById(frmname+'ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Please correct the errors above.</em>";
			}
			else
			{
				if(document.getElementById('ajax-process'))	   
					document.getElementById('ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Please correct the errors above.</em>";
			}
						
		if(document.getElementById('main_error_msg'))
				document.getElementById('main_error_msg').innerHTML = "<p class='NoteRed'>ERRORS: Please correct the errors below. They are highlighted in red.</p>";
			alert ("Please make sure all fields are properly completed. Errors are marked in red!");

			if(document.getElementById('hide_table'))
								document.getElementById('hide_table').style.display='';
			//gErrors = 0;// reset errors to 0
			var form = document.getElementById(formid);
			
			
			form.gotype.value = "false";
			window.location.href='#top';
			return false;
			
			//alert(gotype.value);
			//validate();
			//setTimeout(validate(),500);
			
						
		}
		if(gErrors==0)
		{
			
					//alert("I AM HERE!!!"+formid);
					if(document.getElementById(frmname+'ajax-process'))
					{
						document.getElementById(frmname+'ajax-process').innerHTML = "";
					}
					else
					{
						if(document.getElementById('ajax-process'))
						document.getElementById('ajax-process').innerHTML = "";
					}
			
				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");
 
	//http.abort();
	//alert("3");
	}	//close if(http.readyState == 4) 
}


function validate(d, formaction)
{  
	
	//alert("in validate");
	//alert(d.gotype.value);
	//alert("HERE");
	gform = d;

	if(typeof http=='boolean')
	{
	if(http==false) { return true; }
	}
	

	d.gotype.value = 'ajax';
	cache="formid="+d.id+"&";
	
	//alert(cache);
	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+"&";
			 			
	 }

	 callAjax(cache,d);
	 return false;
	
}

function callInProgress(xmlhttp) {
//alert(xmlhttp.readyState);
switch (xmlhttp.readyState ) {
case 1: case 2: case 3:
return true;
break;

// Case 4 and 0
default:
return false;
break;


}
} 

function callAjax(cache,d)
{ 

//alert(cache);
//alert(d.name);
//alert(d.processing.value);


	/*if(http.readyState==4)//only for OPERA && necessary for firefox on certain occassions
	{
			
			alert("Aborting");
			http.abort();
			http = getHTTPObject();
	}*/

frmname = d.name;

if(document.getElementById(frmname+'ajax-process'))
{
	document.getElementById(frmname+'ajax-process').innerHTML = "<em style='color:black;font-size:11px;'><img src=\"images/ajax-loader.gif\" width=\"16\" height=\"16\">Processing...please wait</em>";	
}
else
{
	
	if(document.getElementById('ajax-process'))
	document.getElementById('ajax-process').innerHTML = "<em style='color:black;font-size:11px;'><img src=\"images/load.gif\" width=\"16\" height=\"16\">Processing...please wait</em>";
}


	

	

if(document.getElementById('saving'))
		document.getElementById('saving').innerHTML = "<img src=\"images/load.gif\" width=\"16\" height=\"16\">Saving...please wait";

timeoutId = setTimeout(
	function() {
	if ( callInProgress(http) ) {
	
		//alert("HERE");
		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';
		}
		
		if(document.getElementById(frmname+'ajax-process'))
		{
			document.getElementById(frmname+'ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Network Error: Please try again.</em>";
		}
		else
		{
			if(document.getElementById('ajax-process'))
			document.getElementById('ajax-process').innerHTML = "<em style='color:#990000;font-size:11px;'>Network Error: Please try again.</em>";
		}
			
		
		
			
			
	if(document.getElementById('saving'))
		document.getElementById('saving').innerHTML = "Network Error: Please try again.";
		alert("There was a problem in connecting. Please try again.");
		http.abort();
		return false;
	//alert("TIMEDOUT");
	}
	},
	20000 // 20 seconds
	);	 
 
/*if(http.readyState==4)//only for OPERA
			{
					http.abort();
					http = getHTTPObject();
			}

*/		
	 //alert(cache);
	 if ( !callInProgress(http) ) {
		// alert("GOING TO CALL");
		try
		{
				
			//	alert(sUrl);
			http.open("POST", sUrl, true);
	  http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		//alert(http.readyState);
		http.onreadystatechange = handleHttpResponse;
	 	http.send(cache); 
		}
		catch(e) { d.gotype.value = 'php'; d.submit();};
		//alert("SENT");
	} else {
	
		
			if(document.getElementById(frmname+'ajax-process'))
			{
	document.getElementById(frmname+'ajax-process').innerHTML = "<em style='color:black;font-size:11px;'><img src=\"images/load.gif\" width=\"16\" height=\"16\">Processing...please wait</em>";
			}
			else
			{
			if(document.getElementById('ajax-process'))	
	document.getElementById('ajax-process').innerHTML = "<em style='color:black;font-size:11px;'><img src=\"images/load.gif\" width=\"16\" height=\"16\">Processing...please wait</em>";
			}
	
	
	
	if(document.getElementById('saving'))
		document.getElementById('saving').innerHTML = "<img src=\"images/load.gif\" width=\"16\" height=\"16\">Saving...please wait";
	
	}
	
	
	
	//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;
}

function comment(variable, display,type)
{
	var commenting = "on";
	if(document.getElementById(variable.id+'-i'))
	{
		if(commenting=="on")
		{
			if(type=='below') //show hint below the field
			{
				if(document.getElementById(variable.id))
				{
					var comment_field=document.getElementById(variable.id+'-i');
					if(comment_field.innerHTML!="")
					{
						if(display=='show')
							comment_field.style.display='';
						else
							comment_field.style.display='none';
					}
				}
			}
			else //by default, show hint to the right side in a colored dialog box
			{
				var comment_field=document.getElementById(variable.id+'-i');
				if(comment_field.innerHTML!="")
				{
					showhint(comment_field.innerHTML,variable);
				}
			}
		} //close commenting=on
	}//close if getelementbyid
}

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;}
return totaloffset;
}

function showhint(menucontents, obj){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox");
menucontents="<div id='hint' style='width:180px;'>"+ menucontents +"</div>";
//alert(menucontents)
dropmenuobj.innerHTML=menucontents;
//alert(dropmenuobj.innerHTML)
dropmenuobj.style.left=dropmenuobj.style.top=-500;
dropmenuobj.x=getposOffset(obj, "left");
dropmenuobj.y=getposOffset(obj, "top");
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px";
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
//alert(dropmenuobj.x+" "+dropmenuobj.y+" "+clearbrowseredge(obj, "rightedge")+" "+clearbrowseredge(obj, "bottomedge")+" "+obj.offsetWidth);
dropmenuobj.style.display="";
obj.onblur=hidetip;
}
}

function hidetip(){
dropmenuobj=document.getElementById("hintbox");
dropmenuobj.style.display="none";
dropmenuobj.style.left="-500px";
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1;
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40;
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth;
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset);
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight;
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight;
}
return edgeoffset;
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
