/*-----------------------CONSTANTS-------------------------*/
var VirtualRoot2 = "/RichardHugoHouse";
/*---------------------------------------------------------*/
var iSendDebug = false;
//var g_oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
var requestComplete = 4;
var requestSuccessful = 200;


function iSend(sFormName, sSubmitterName, sURL, bUseXmlHttp, bAsync, sSuccessCallback, sFailureCallback){
	
	var str = "<?xml version=\"1.0\"?><form name=\"" + sFormName + "\" submitter=\"" + sSubmitterName + "\">";
	
	var els = document.forms[sFormName].elements;
	//var els = document.all[sFormName].elements;
	var dataType = "";
	if(bAsync == null) bAsync = false;
	for(i = 0; i < els.length; i++){
		var el = els[i];
		var tagName = el.iSend_TagName;
		if(tagName == null){
			tagName = "element";
		}
		switch(el.type){
			case "submit":
			case "image":
			case "reset":
			case "file":
				str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + escape(el.value) + "\"" + AddCustomAttributes(el.attributes) + "></" + tagName + ">";
				break;
			case "button":
				break;
			case "checkbox":
				str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + el.checked.toString() + "\"" + AddCustomAttributes(el.attributes) + "></" + tagName + ">";
				break;
			case "radio":
				if(el.checked)str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + el.value + "\"" + AddCustomAttributes(el.attributes) + "></" + tagName + ">";
				break;
			case "text":
				str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + escape(el.value) + "\"" + AddCustomAttributes(el.attributes) + "></" + tagName + ">";
				break;
			case "hidden":
				str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + escape(el.value) + "\"" + AddCustomAttributes(el.attributes) + "></" + tagName + ">";
				break;
			default:
				if(el.name != "__VIEWSTATE") str += "<" + tagName + " name=\"" + el.name + "\" type=\"" + el.type + "\" value=\"" + escape(el.value) + "\"" +  AddCustomAttributes(el.attributes) + "></" + tagName + ">";
		}
	}
	str += "</form>";

	if(iSendDebug) alert(str);
	if(bUseXmlHttp){
		g_oXMLHTTP.open("POST", sURL, bAsync);
		
		try{
			g_oXMLHTTP.send(str);
		}catch(noLanguagesXmlHttpError){
			if(TopFrame != null){
				TopFrame.location.href = VirtualRoot + "/NoLanguages.aspx";
			}else{
				window.location.href =  VirtualRoot + "/NoLanguages.aspx";
			}
			
			return false;
		}
		
		if(bAsync){
			CheckForResponse(sSuccessCallback, sFailureCallback);
		}else{
			HandleResponse(g_oXMLHTTP.responseXML);
		}
	}else{
		try{
			var frmISend = document.forms["frmISend"];
		}
		catch (exception){
			var frmISend = top.Toc.document.forms["frmISend"];
		}
		frmISend.iSendXML.value = str;
		frmISend.action = sURL;
		frmISend.submit()
	}
}

function CheckForResponse(sSuccessCallback, sFailureCallback){
	if (g_oXMLHTTP.readyState != requestComplete) {
		var successCB = "\"" + sSuccessCallback + "\"";
		if(sSuccessCallback == null){
			successCB = null;
		}
		window.setTimeout("CheckForResponse(" + successCB + ", \"" + sFailureCallback + "\")", 500);
	}else{
		if(g_oXMLHTTP.status == requestSuccessful){
			HandleResponse(g_oXMLHTTP.responseXML);
			if(sSuccessCallback != null) eval(sSuccessCallback + "();");
		}else{
			eval(sFailureCallback + "(" + g_oXMLHTTP.status.toString() + ");");
		}
	}
}

function AddCustomAttributes(attributes){
	var str = " ";
	if(attributes.length > 0){
		for (var j = 0; j < attributes.length; j++)
		{
			var thisAttribute = attributes[j];
			if(thisAttribute.nodeName.substring(0,6) == "iSend_" && thisAttribute.nodeName != "iSend_TagName") {
				var nodeValue = thisAttribute.nodeValue;
				if(nodeValue == null) nodeValue = "";
				str += " " + thisAttribute.nodeName.substring(6) + "=\"" + nodeValue + "\""; 
			}
		}
	}
	return str;
}

function HandleResponse(oXmlResponse){
	if(iSendDebug) alert(oXmlResponse.xml);
	vActionNodes = oXmlResponse.selectNodes("//Action");
	for(i = 0; i < vActionNodes.length; i++){
		var node = vActionNodes[i];
		sActionType = node.getAttribute("type");
		sElement = node.getAttribute("element");
		switch(sActionType){
			case "ShowClientAlert":
				alert(unescape(node.text));
				break;
			case "ChangeClientTagInnerHtml":
			
				document.all[sElement].innerHTML = unescape(node.text);
				break;
			case "ChangeClientTagStyle":
				var sTagName = node.getAttribute("tagName");
				var sStyleName = node.getAttribute("styleName");
				var sStyleValue = node.getAttribute("styleValue");
				alert(document.all[sTagName + ".style." + sStyleName]);
				document.all[sTagName + ".style." + sStyleName] = sStyleValue;
				break;
			case "ChangeClientInnerText":
				document.all[sElement].innerText = unescape(node.text);
				break;
			case "RunClientFunction":
				sParameterList = node.getAttribute("parameterList");
				sParameterList = sParameterList.replace(/\n/g, " ");
				sParameterList = sParameterList.replace(/\r/g, " ");
				sParameterList = sParameterList.replace(/\t/g, " ");
				//sParameterList = sParameterList.replace("(", " ");
				//sParameterList = sParameterList.replace(")", " ");
//				sParameterList = sParameterList.replace("'", "\\'");
//				alert(sElement + "(" + sParameterList + ");");
				eval(sElement + "(" + sParameterList + ");");
				break;
			case "ReloadClientFrame":
				location.reload();
				break;
			case "RedirectClientFrame":
				var sURL = node.getAttribute("url");
				location.href = sURL;
				break;
			case "ReplaceClientFrame":
				var sURL = node.getAttribute("url");
				location.replace(sURL);
				break;
			case "EnableClientTag":
				document.all[sElement].disabled = false;
				break;
			case "ClickClientTag":
				document.all[sElement].click();
				break;
			case "DisableClientTag":
				document.all[sElement].disabled = true;
				break;
			case "ChangeClientTagClassName":
				document.all[sElement].className = node.text;
				break;
		}
	}

}
/*-----------------------FOCUS-----------------------------*/
function initFocus(sFormName, sFieldName) //Set the focus
{
	//document.myForm.elements["EmailAddress"].focus();
	var de = document.forms[sFormName].elements;
	for(var i=0; i<de.length; i++)
	{
		if(de[i].name == sFieldName)
		{
			de[i].focus();
			break;
		}
	}
}
/*----------------------SET DEFAULT ENTER KEY---------------------------*/
function CaptureFormKeyPress2( globalSearchFieldName, iSendForm, iSendSubmitter, iSendJumptoPage, biSendReal)	
{
	if(window.event == null) return;

	var conEnter = 13;

	var keyCode = window.event.keyCode;
	var sourceElement;
	
	
	if(window.navigator.appVersion.indexOf("IE") != -1)
	{
		sourceElement = window.event.srcElement;
	}
	else
	{
		sourceElement = window.event.target;
	}
	if(globalSearchFieldName != "")
	{
		if(keyCode == conEnter && sourceElement.name == globalSearchFieldName)
		{
			iSend('myFormSearch', 'btnSearch', VirtualRoot2 + '/Content/SearchResults.aspx', false);
			return false;
		}
	}
	if(iSendForm != "")
	{
		if(keyCode == conEnter && (sourceElement.tagName == "INPUT" || sourceElement.tagName == "SELECT")){
			
			iSend(iSendForm, iSendSubmitter, iSendJumptoPage, biSendReal);
			return false;
		}
	}
}
/*-----------------------CHECKEDSTATE-----------------------------*/
function GetCheckedState(sFormName, sFieldName) 
{
	//document.myForm.elements["EmailAddress"].focus();
	var de = document.forms[sFormName].elements;
	for(var i=0; i<de.length; i++)
	{
		if(de[i].name == sFieldName)
		{
			return de[i].checked;
			break;
		}
	}
}




