var pField;
var iField;
var dField;
var lField;
var eField = new Array();
var eField2 = new Array();
var doConfirmCheck = new Array();
var tmpval = new Array();
var tmpval2 = new Array();
var tmpfield = new Array();
var sCount=0;
var eCount=0;

function fillDropDown(parentField,independantField,table,limitField,displayField,selectedValue){
	if(selectedValue!=0){
		pField = parentField;
		iField = document.getElementById(independantField);
		dField = displayField;
		lField = limitField;
		changeMain("fillDropDown.inc.php?table="+table+"&limitField="+limitField+"&limitValue="+selectedValue);
	}
}
function fillDropDown2(pipeString){
		iField.options.length=0;
		iField.options[iField.options.length] = new Option("Please select an option","");
		var rows = pipeString.split("||||");
		var selectVal;
		for(i=0;i<(rows.length-1);i++){
			var fields = rows[i].split(",,,,");
			for(n=0;n<(fields.length-1);n++){
				var val = fields[n].split("::::");
				if(val[0]==lField){
					selectVal=val[1];
				}
				if(val[0]==dField){
					iField.options[iField.options.length] = new Option(val[1],selectVal);
				}
			}
		}
		
}


function validateThis(type,field,date){
	var rand=Math.floor((Math.random()*30000000));
	if(date==1){
		eField[rand]=document.getElementById(field+'Error');
		eField2[rand]=document.getElementById(field+'ErrorDescription');

		validate("validateField.inc.php?type="+type+"&dvalue="+document.getElementById(field+"[day]").value+"&mvalue="+document.getElementById(field+"[month]").value+"&yvalue="+document.getElementById(field+"[year]").value+"&date="+date,rand);
	}else{

		var val2="";
		eField[rand]=document.getElementById(field+'Error');
		eField2[rand]=document.getElementById(field+'ErrorDescription');
		eField2[rand].innerHTML="Waiting for validation...";
		eField2[rand].style.background='url(images/validFormBlue.gif)';
		eField[rand].style.background='url(images/validBlue.gif)';
		if(field.search("_rdo")!=-1){
			var val = valRadio(form.elements[field]);
		}else if(field.search("_chk")!=-1){
			if(document.getElementById(field).checked==true){
				var val = 1;
			}
		}else if(field.search("_pwd")!=-1 && field.search("_confirm")!=-1){
			var val = document.getElementById(field).value;
			val2=document.getElementById(field.replace("_confirm", "")).value;
		}else{
			var val = document.getElementById(field).value;
		}
							

		validate("validateField.inc.php?type="+type+"&value="+val+"&value2="+val2+"&date="+date,rand);
		if(field.search("_pwd")!=-1 && field.search("_confirm")==-1){
			tmpfield[rand]=field;
			tmpval[rand] = document.getElementById(field).value;
			var field2=field.replace("_pwd","_pwd_confirm");
			
			tmpval2[rand]=document.getElementById(field2).value;

			doConfirmCheck[rand]=true;
			
		}else{
			doConfirmCheck[rand]=false;	
		}
	}
}
function valRadio(rad) {
    var cnt = -1;
    for (var i=rad.length-1; i > -1; i--) {
        if (rad[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) return rad[cnt].value;
    else return null;
}
function validate(str,rand){ 


	with (new Date()){
	var url=str+"&sid="+getTime();
	}
	x[rand] = GetXmlHttpObject();
	if(x[rand]){
		x[rand].onreadystatechange = function(){
			if(x[rand].readyState == 4 && (x[rand].status == 200 || (x[rand].responseText==null && x[rand].status==undefined))){
				changeField(x[rand].responseText,rand);
				x[rand]=null;
			}
		}
	}
	//sCount++;

	x[rand].open("GET", url , true)
	x[rand].send(null)
} 
function changeField(error,rand){

	if(error=="" || error==null){

		eField2[rand].innerHTML="This field has no errors!";
		eField2[rand].style.background='url(images/validFormGreen.gif)';
		eField[rand].style.background='url(images/validGreen.gif)';

	}else{
		eField2[rand].innerHTML=error;

		eField2[rand].style.background='url(images/validFormRed.gif)';
		eField[rand].style.background='url(images/validRed.gif)';

	}
	
		if(doConfirmCheck[rand]==true){
			var newrand=Math.floor((Math.random()*30000000));
			var field2=tmpfield[rand].replace("_pwd","_pwd_confirm");

			eField[newrand]=document.getElementById(field2+'Error');
			eField2[newrand]=document.getElementById(field2+'ErrorDescription');
			doConfirmCheck[rand]=false;	
			validate("validateField.inc.php?type=passwordMatch&value="+tmpval[rand]+"&value2="+tmpval2[rand],newrand);
		}

}




var xmlHttpM
var xmlHttpV
var xmlHttpF
var x = new Array()
//Drop Down Change
function changeMain(str)
{ 
	with (new Date()){
	var url=str+"&sid="+getTime();
	}
	xmlHttpM=GetXmlHttpObject(stateChanged_Main)
	xmlHttpM.open("GET", url , true)
	xmlHttpM.send(null)
} 

function stateChanged_Main() 
{ 
	if (xmlHttpM.readyState==4 || xmlHttpM.readyState=="complete")
	{ 
		fillDropDown2(xmlHttpM.responseText);
	} 
} 


 
var successRedirect;
var failRedirect;
var buttonText;
var disableForm;

//Form Validation
function submitForm(f,success,fail){

	if(disableForm==true){
		return;	
	}
	buttonText=document.getElementById('buttonText').innerHTML;
	document.getElementById('buttonText').innerHTML="Please Wait...";
	document.getElementById('button').style.cursor="none";
	disableForm=true;
	
	successRedirect=success;
	
	failRedirect=fail;
	var params=getFormValues(f);
	validateForm(f.action,params,f);
}

function getFormValues(fobj) { 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
      switch(fobj.elements[i].type) 
       { 
           case "text": 

                 str += fobj.elements[i].name +  "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "file": 
                 str += fobj.elements[i].name+  "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "textarea": 
                 str += fobj.elements[i].name +  "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "password": 
                str += fobj.elements[i].name +  "=" + escape(fobj.elements[i].value) + "&"; 
                 break;
           case "hidden": 
                str += fobj.elements[i].name +  "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "radio": 
		   		if(fobj.elements[i].checked==1){
					str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
				}
                break; 
           case "checkbox": 
		   		if(fobj.elements[i].checked==1){
					str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
				}
                break; 
           case "submit": 
                str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                break; 
           case "button": 
                str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&"; 
                break; 
           case "select-one": 
                str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                break; 
       } 

   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}


function validateForm(pageUrl,str,fobj){
	var rand=Math.floor((Math.random()*30000000));

	with (new Date()){
	var url=pageUrl+"?"+str+"&validateForm="+getTime();
	}
	x[rand] = GetXmlHttpObject();
	if(x[rand]){
		x[rand].onreadystatechange = function(){
			if(x[rand].readyState == 4 && (x[rand].status == 200 || (x[rand].responseText==null && x[rand].status==undefined))){
				if(x[rand].responseText=="" || x[rand].responseText==null){
					if(successRedirect!="" && successRedirect!=undefined){
						document.location.href=successRedirect;
					}else{
						document.getElementById('formError').style.display="block";
						document.getElementById('formErrorTitle').innerHTML="Success:";
						var yr;
						var Today = new Date();
						hrs = numFormat(Today.getHours());
						mins = numFormat(Today.getMinutes());
						secs = numFormat(Today.getSeconds());
						
						
						document.getElementById('formErrorText').innerHTML="Processed @ "+hrs+":"+mins+" (+ "+secs+" seconds)";
						document.getElementById('formError').style.background='url(images/validFormGreen.gif)';
					}
				}else{
					if(failRedirect!="" && failRedirect!=undefined){
						document.location.href=failRedirect;
					}else{
						document.getElementById('formError').style.display="block";
						document.getElementById('formError').style.background='url(images/validFormRed.gif)';
						document.getElementById('formErrorTitle').innerHTML="Error:";
						document.getElementById('formErrorText').innerHTML=x[rand].responseText;
					}
				}
				document.getElementById('buttonText').innerHTML=buttonText;
				document.getElementById('button').style.cursor="pointer";
				disableForm=false;
				x[rand]=null;
			}
		}
	}
	x[rand].open("GET", url , true)
	x[rand].send(null)
} 


function numFormat(num){
	if(String(num).length==1){
		num="0"+num;	
	}
	return num;
}