
var FORM_VALIDATION_URL = '/global_engine/validate_form.asp';

function defaultBadBrowserHandler()
{
	alert('This interface requires features which your browser does not supprt. \n\n'+
		'You will now be redirected to the Client Services Support Center, \n'+
		'where you will find additional information on browser requirements. ');
	location.href = '/admin/client_services/backend_technical_requirements.asp';
	return null;
}

function ignoreBadBrowser()
{
	return null;
}

function DisableToolbarButton(DomId)
{
	var btn = document.getElementById(DomId);
	btn.className = 'disabled';
	btn.onclick = function(){return false;};
}

function EnableToolbarButton(DomId)
{
	var btn = document.getElementById(DomId);
	btn.className = '';
	btn.onclick = eval(DomId +'_OnClick');
}

function newXmlDoc()
{
	var xmldoc = null;
	if(window.ActiveXObject) {
		// browser is IE
		xmldoc = new ActiveXObject('Microsoft.XMLDOM');
	} else if(document.implementation && document.implementation.createDocument) {
		// browser is Mozilla, Firefox, Opera, etc.
		xmldoc = document.implementation.createDocument('','',null);
	} else {
		return null;
	}
	xmldoc.async = false;
	return xmldoc;
}

function newXmlHttp(BadBrowserHandler)
{
	var xmlhttp = null;
	if(window.ActiveXObject) {
		// browser is IE
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if(window.XMLHttpRequest) {
		// browser is Mozilla, Firefox, Opera, etc.
		xmlhttp = new XMLHttpRequest();
	} else {
		if(BadBrowserHandler && typeof(BadBrowserHandler)!='undefined') {
			return BadBrowserHandler();
		} else {
			return defaultBadBrowserHandler();
		}
	}
	return xmlhttp;
}

function getXml(xmlNode)
{
	if(xmlNode==null) return null;
	if(xmlNode.xml) {
		return xmlNode.xml;
	} else {
		var s = new XMLSerializer();
		return s.serializeToString(xmlNode);
	}
}

function loadNewXml(sXml)
{
	var xmlDoc;
	if(window.ActiveXObject) {
		// browser is IE
		xmlDoc = newXmlDoc();
		xmlDoc.loadXML(sXml);
	} else {
		// browser is Mozilla, Firefox, Opera, etc.
		xmlDoc = (new DOMParser()).parseFromString(sXml,'text/xml');
	}
	return xmlDoc;
}

function ValidateForm(FormData, ErrorListDomId, ValidateCaptchaCode)
{
	try {
		var xmlhttp = newXmlHttp(ignoreBadBrowser);
		
		var sUrl = FORM_VALIDATION_URL;
		if(ValidateCaptchaCode) sUrl += "?captcha=1"
		
		xmlhttp.open("POST", sUrl, false);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
		xmlhttp.send(FormData);
		
		if(xmlhttp.status==200) {
			var xmlDoc;
			if(xmlhttp.responseXml) {
				xmlDoc = xmlhttp.responseXml;
			} else {
				xmlDoc = (new DOMParser()).parseFromString(xmlhttp.responseText,'text/xml');
			}
			var n =  xmlDoc.documentElement;
			
			var iErrCount = parseInt(n.getElementsByTagName('ErrCount')[0].childNodes[0].nodeValue);
			if(iErrCount==0) return true;
			
			var sErrorList = n.getElementsByTagName('ErrorList')[0].childNodes[0].nodeValue;
			document.getElementById(ErrorListDomId).innerHTML = sErrorList;	
		}
	} catch(e) {}
	
	return false;
}
