/*

	/global/global.js
	
*/

// Global Events

window.onload = Window_load;

// Global Constants

var vbCrLf = "\r\n";
var vbTab = "\t";
var keyEnter = 13;
var keyEsc = 27;

// Global Functions

function Window_load() {
	try { Global_load(); } catch(e) {}
	try { Template_load(); } catch(e) {}
	try { Page_load(); } catch(e) {}
}

function ShowImage(strUrl, strTitle, strAlt) {
	if (strUrl.length > 0) {
		var intHeight = 200;
		var intWidth = 200;
		var intTop;
		var intLeft;
		var ImageViewer;
		var strImageViewerProperties;

		intTop = window.screen.height;
		intLeft = window.screen.width;
		strImageViewerProperties = "channelmode=no,directories=no,fullscreen=no,location=no,menubar=no,resizable=yes,scrollbars=no,status=no,titlebar=yes,toolbar=no,top="+intTop+",left="+intLeft+",height="+intHeight+",width="+intWidth;

		ImageViewer = window.open("/picture.asp?url="+strUrl+"&title="+strTitle+"&alt="+strAlt, "ImageViewer", strImageViewerProperties);
		intTop = (window.screen.availHeight - intHeight)/2;
		intLeft = (window.screen.availWidth - intWidth)/2;

		ImageViewer.resizeTo(intWidth, intHeight);
		ImageViewer.moveTo(intLeft, intTop);
	}
}


function CreateAjax() {
	var ajax;
	try {
		ajax = new XMLHttpRequest();
	} catch (e) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				return false;
			}
		}
	}
	return ajax;
}


function SendAjaxRequest(strUrl, strMethod, fnCallback, blnAsync) {
	var ajax = CreateAjax();
	blnAsync = (blnAsync) ? true : false;
	if (!ajax) return false;
	if (strMethod && strMethod.toLowerCase() == "post") {
		var strParams = "";
		if (strUrl.indexOf("?")) {
			strParams = strUrl.split("?")[1];
			strUrl = strUrl.split("?")[0];
		}
		ajax.open("POST", strUrl, blnAsync); // asynchronous request
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length", strParams.length);
		ajax.setRequestHeader("Connection", "close");

		if (fnCallback) {
			ajax.onreadystatechange = function () {
				if (ajax.readyState == 4) { // message loaded
					fnCallback(ajax);
					// ajax.status; 200 = success, 500 = failure
					// ajax.responseText
				}
			};
		}
		ajax.send(strParams);
	} else {
		//ajax.async = blnAsync;

		if (fnCallback) {
			ajax.onreadystatechange = function () {
				if (ajax.readyState == 4) { // message loaded
					fnCallback(ajax);
					// ajax.status; 200 = success, 500 = failure
					// ajax.responseText
				}
			};
		}

		ajax.open("GET", strUrl, blnAsync); // synchronous request
		ajax.send(null);
		return ajax;
	}
}

// m_fnCallback stores the callback function used in AjaxUpload
var m_fnCallback;

function AjaxUpload(strHref, arrParams, arrFiles, strFrameId, fnCallback) {
	if (arrFiles.length == 0) {
		alert("No file(s) selected.");
		return false;
	}
	var objForm = document.createElement("form");
	objForm.action = strHref;
	objForm.target = strFrameId;
	objForm.method = "post";
	objForm.enctype = "multipart/form-data";
	objForm.encoding = "multipart/form-data";
	for (var i = 0; i < arrFiles.length; i++) {
		arrFiles[i].style.display = "none";
		objForm.appendChild(arrFiles[i]);
	}
	for (var i = 0; i < arrParams.length; i++) {
		var objInput = document.createElement("input");
		objInput.type = "hidden"
		objInput.name = arrParams[i][0];
		objInput.value = arrParams[i][1];
		objForm.appendChild(objInput);
	}
	var objTarget = document.getElementById(strFrameId);
	if (fnCallback) {
		m_fnCallback = function () {
			fnCallback(objTarget, objForm);
		};
	}
	document.getElementsByTagName("body")[0].appendChild(objForm);
	objForm.submit();
}

// This function is called from the iframe (body.onload)
function AjaxCallback() {
	m_fnCallback();
}

function GetCookie(strCookieName) {
	var objCookie = document.cookie;
	var posStart = objCookie.indexOf(strCookieName);
	if (posStart < 0) return null;
	var posEquals = objCookie.indexOf("=", posStart);
	var posEnd = objCookie.indexOf(";", posStart);
	if (posEnd < posEquals) posEnd = objCookie.length;
	var strCookieValue = unescape(objCookie.substring(posEquals + 1, posEnd));
	return strCookieValue;
}

function SetCookie(strCookieName, strCookieValue) {
	var intYearMs = 365 * 24 * 60 * 60 * 1000;
	var datToday = new Date();
	var datExpiration = new Date(datToday.getTime() + intYearMs);
	datExpiration = datExpiration.toGMTString();
	document.cookie = strCookieName + "=" + escape(strCookieValue) + ";expires=" + datExpiration + ";path=/;";
}

function GetFormValue(input) {
	var strType = (input.length > 0) ? input[0].type : input.type;
	switch (strType) {
		case "radio":
			for (var i = 0; i < input.length; i++) {
				if (input[i].checked) {
					return input[i].value;
				}
			}
			return null;
			break;
		case "checkbox":
			if (input.checked) {
				return input.value;
			} else {
				return null;
			}
			break;
		default:
			if (input.value.length > 0) {
				return input.value;
			} else {
				return null;
			}
	}
}

function RequiredFieldValidate(frm, scope) {
	if (scope == "all") {
		scope = frm.elements;
	} else {
		for (var i = 0; i < scope.length; i++) {
			scope[i] = frm[scope[i]];
		}
	}
	for (var i = 0; i < scope.length; i++) {
		var item = scope[i];
		var strLabel = (item.getAttribute("label") && item.getAttribute("label").length > 0) ? item.getAttribute("label") : item.name;
		if (item.name != "recaptcha_response_field") {
			if (item.options) {
				if (item.options.selectedIndex == 0) {
					alert("The " + strLabel + " field is required.");
					item.focus();
					return false
				}
			} else if (item.type == "radio") {
				var len = document.frmEmail[item.name].length;
				var blnSelected = false;
				for (var j = 0; j < len; j++) {
					if (document.frmEmail[item.name][j].checked) {
						blnSelected = true;
					}
				}
				if (!blnSelected) {
					alert("The " + strLabel + " field is required.");
					return false;
				}
			} else {
				if (item.value.length < 1) {
					alert("The " + strLabel + " field is required.");
					item.focus();
					return false;
				}
			}
		}
	}
	return true;
}

