function isNotEmpty(elem) {
    var str = elem.value;
    if(str == null || str.length == 0) {
        alert("Please fill in the required field.");
        return false;
    } else {
        return true;
    }
}
	

function ValidateZipCode(str, CountryCode)
{
	var re;

	switch (CountryCode)
	{
		case 'ca':
			re = new RegExp("(^\s*$)|(^[a-ceghj-npr-vxy][0-9][a-ceghj-npr-z][- ]?[0-9][a-ceghj-npr-z][0-9]$)", "i");
			break;
		case 'us':
			re = new RegExp("(^\s*$)|(^[0-9]{5}([- /]?[0-9]{4})?$)", "i");
			break;
		default:
			re = new RegExp("^.*$", "i");
			break;
	}

	if (!str.match(re))	{
		return false;
	} else {
		return true;
	}
}

function Navigate(id,url)
{
	document.getElementById(id).innerHTML = GetRequestBody(url);
	return null;
}

function GetXmlHttpRequest()
{
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
		xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.4.0");
		} catch (e) {
			try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	/*@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function IsNewEmail(str, id)
{
	var req = GetXmlHttpRequest();
	var url = '/CirqueDuSoleil/commonLsa/asp/IsExistsEmail.asp' + '?' + 'email=' + str
	var IsNewEmailResult = null;
	
	req.open("GET", url, false);
	req.setRequestHeader('Accept','message/x-jl-formresult');
	req.send(null);
	if (req.responseText == 'true')
	{
		IsNewEmailResult = false;
	} else {
		IsNewEmailResult = true;
	}
	return IsNewEmailResult;
}

function IsPageValid()
{
	var elems = document.getElementsByTagName("SPAN");
	var str = "";
	var sumary = ""; 
	var isPageValid = true;
	var oldCtrl = "";
	
	for (var i = 0; i < elems.length; i++) {
		if (elems[i].getAttribute("controltovalidate"))
		{
			var validator = elems[i];
			var ctrlToValidate = document.getElementById(validator.getAttribute("ControlToValidate"));
			if (!ctrlToValidate) {
				ctrlToValidate = document.getElementsByName(validator.getAttribute("ControlToValidate"))[0];
			}
			var validations = validator.getAttribute("validation").split(";");
			
			if (validator.getAttribute("ControlToValidate") != oldCtrl)
			{
				oldCtrl = validator.getAttribute("ControlToValidate");
				ctrlToValidate.setAttribute("valid", "true");
			}
				
			
			var isValid = true;
			
			if (!ctrlToValidate.disabled) 
			{
			
				for (var j = 0; j < validations.length; j++)
				{
					if (isValid && ctrlToValidate.getAttribute("valid") == "true")
					{
						var Pair = validations[j].split("=");
						if (Pair.length == 1)
						{
							var key = Pair[0];
							
							switch (key.toLowerCase())
							{
								case "required":
									if (ctrlToValidate.type == "checkbox")
									{
										if (ctrlToValidate.checked == false)
										{
											isValid = false;
										}
									}
									else if (ctrlToValidate.type == "radio")
									{
										var radio = document.getElementsByName(validator.getAttribute("ControlToValidate"));
										var radioValue = "";
										for (var ind = 0; ind < radio.length; ind++)
										{
											if (radio[ind].checked) radioValue = radio[ind].value;
										}
										if ( (new String(radioValue)).match(/^\s*$/) )
										{
											isValid = false;
										}
									}
									else
									{
										if (new String(ctrlToValidate.value).match(/^\s*$/))
										{
											
											isValid = false;
										}
									}
									break;
							}
						}
						else
						{
							var key = Pair[0];
							var value = Pair[1];
							
							switch (key.toLowerCase())
							{
								case "regex":
									if (!(new String(ctrlToValidate.value).match(new RegExp(value))))
									{
										isValid = false;
									}
									break;
									
								case "zip":
									var source = document.getElementById(value).value;
									if (!ValidateZipCode(ctrlToValidate.value, source))
									{
										isValid = false;
									}
									break;
								case "function":
									if (!eval(value))
									{
										isValid = false;
									}
									break;
							}
						}
					}
				}
			}
			if (!isValid) 
			{
				isPageValid = false;
				ctrlToValidate.setAttribute("valid", "false")
				validator.style.display = "inline";
				validator.style.visibility = "visible";
				if (validator.innerHTML.length == 0)
				{
					validator.innerHTML = "<img src=\"../../images/alert.gif\">";
				}
				sumary += "<span id=\"Sumary_\"" + ctrlToValidate.id + ">" + validator.getAttribute("Message") + "<br></span>";
			}
			else
			{
				validator.style.display = "none";
				validator.style.visibility = "hidden";
			}
		}
	}
	
	if (!isPageValid)
	{
		var o = document.getElementById('ValidationSumary');
		if (o)
		{
			o.innerHTML = o.getAttribute("message") + sumary;
			o.style.display = "block";
			o.style.visibility = "";
			document.location.hash = "ValidationSumaryA";
		}
	}
	
	try
	{
		event.returnValue = isPageValid;
	}
	catch (e)
	{
	}

	return isPageValid;
}

function PageReset()
{
	var elems = document.getElementsByTagName("SPAN");
	var str = "";
	
	for (var i = 0; i < elems.length; i++) {
		if (elems[i].getAttribute("controltovalidate") != "")
		{
			var validator = elems[i];
			var ctrlToValidate = document.getElementById(validator.getAttribute("ControlToValidate"));
			if (!ctrlToValidate) {
				ctrlToValidate = document.getElementsByName(validator.getAttribute("ControlToValidate"))[0];
			}

			if (ctrlToValidate)
			{
				ctrlToValidate.setAttribute("valid", "true");
				validator.style.display = "none";
				validator.style.visibility = "hidden";
			}
		}
	}
	
	var valsum = document.getElementById("ValidationSumary");
	if (valsum) {
		valsum.innerHTML = "";
		valsum.style.display = "none";
		valsum.style.visibility = "hidden";
	}
}

function SetElementValue(name, value)
{
	elem = document.getElementById(name);
	if (elem) {
		if (elem.type == "hidden") {
		} else if (elem.type == "checkbox") {
			elem.checked = (value == "on");
		} else if (elem.type == "radio") {
			elemName = document.getElementsByName(name);
			for (var i = 0; i < elemName.length; i++)
			{
				elemName[i].checked = (elemName[i].value == value);
			}
		} else {
			elem.value = value;
		}
	}
}