﻿var Advocar_Ajax_FieldDelimiter = "#@#";
var Advocar_Ajax_FieldEqual = "===";

function Advocar_Ajax_Start(){
    var object = null;
    
    if (window.XMLHttpRequest){
        object = new XMLHttpRequest();
        
    } else if (window.ActiveXObject){
        try {object = new ActiveXObject("Msxml2.XMLHTTP");} catch(e){}
        if (object == null){try {object = new ActiveXObject("Microsoft.XMLHTTP");} catch(e){}}
    }
       
    if (object == null){alert("Sorry! Your browser does not support XmlHttp Posts."); return;}
    return object;
}

function Advocar_Ajax_ValuePair(fieldName, fieldValue){
	this.fieldName = fieldName;
	this.fieldValue = fieldValue;
}

function Advocar_Ajax_Dictionary(valuePairs){
	var myValuePairs = valuePairs.split(Advocar_Ajax_FieldDelimiter);
	this.dict = new Array();
	this.Advocar_Ajax_GetIndex = Advocar_Ajax_GetIndex;

	for (var index = 0; myValuePairs.length > index; index++){
		var myRow = myValuePairs[index].split(Advocar_Ajax_FieldEqual);
		var myValuePair = new Advocar_Ajax_ValuePair(myRow[0].toLowerCase(), myRow[1]);
		this.dict[index] = myValuePair;
	}
}

function Advocar_Ajax_GetIndex(fieldName){
	var myReturn = -1;

	for (var index = 0; document.forms[0].elements.length > index; index++){
		if (document.forms[0].elements[index].name.toLowerCase() == fieldName.toLowerCase()){
			myReturn = index;
			break;
		}
	}

	return myReturn;	
}

function Advocar_Ajax_SetFormValues(valuePairs){
	var myForm = new Advocar_Ajax_Dictionary(valuePairs);
	
	for (var index = 0; myForm.dict.length > index; index++){
		var indexVP = myForm.Advocar_Ajax_GetIndex(myForm.dict[index].fieldName);
		
		if (indexVP < 0){continue;}
		if (document.forms[0].elements[indexVP].type == 'button'){continue;}
		if (document.forms[0].elements[indexVP].type == 'file'){continue;}
		if (document.forms[0].elements[indexVP].type == 'image'){continue;}
		if (document.forms[0].elements[indexVP].type == 'submit'){continue;}
		if (document.forms[0].elements[indexVP].type == 'reset'){continue;}
		
		if (document.forms[0].elements[indexVP].type == 'radio'){
			var id = myForm.dict[index].fieldName + myForm.dict[index].fieldValue;
			try {document.forms[0].elements[id].checked = true;} catch (e){}
			continue;
		}

		if (document.forms[0].elements[indexVP].type == 'checkbox'){
			document.forms[0].elements[indexVP].checked = true;
			continue;
		}

		try {document.forms[0].elements(myForm.dict[index].fieldName).value = myForm.dict[index].fieldValue;} catch(e){}
	}
}

function Advocar_Ajax_GetFormValues(){
	var valuePairs = "";
	var delimiter = Advocar_Ajax_FieldDelimiter;

	for (var index = 0; document.forms[0].elements.length > index; index++){
		if (document.forms[0].elements[index].type == 'button'){continue;}
		if (document.forms[0].elements[index].type == 'file'){continue;}
		if (document.forms[0].elements[index].type == 'image'){continue;}
		if (document.forms[0].elements[index].type == 'submit'){continue;}
		if (document.forms[0].elements[index].type == 'reset'){continue;}
		if (document.forms[0].elements[index].type == 'radio' && document.forms[0].elements[index].checked == false){continue;}
		if (document.forms[0].elements[index].type == 'checkbox' && document.forms[0].elements[index].checked == false){continue;}
		
		if (valuePairs == ""){delimiter = "";} else {delimiter = Advocar_Ajax_FieldDelimiter;}
		valuePairs = valuePairs + delimiter + document.forms[0].elements[index].name + Advocar_Ajax_FieldEqual + document.forms[0].elements[index].value;
	}

	return "##VALUEPAIRSTART##" + valuePairs + "##VALUEPAIREND##";
}
