// JavaScript Document
var Demo = {
	IsValid: false
	, Form: null
	, PopupTimeout: 0
	, UsingPost: false
	
	, ValidateDemoLogin : function(FormID)
	{
		var oUName = $get(FormID).Username;
		var oPwd = $get(FormID).Password;
		Demo.Form = $get(FormID);
		
		if (!Helper.ValidateField(oUName, "You have not entered a username.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField(oPwd, "You have not entered a password.")) {
			IsValid = false;
			return false;
		}
		
		
		// Ajax validate:
		AtayeAJAX.RequestURL = '/_inc/DemoFunctions.asp';
		AtayeAJAX.OnComplete = function(Status, Response) {
			// If good response, do login, else dont!
			if (Status.Status != 200)
				return;
			
			if (Response == "0") {
				// all good, do login:
				Demo.IsValid = true;
				FormsHelper.SubmitFormAction(Demo.Form.id, "Login", "/pages/request_a_demonstration/")
				return;
			}
			if (Response == "1") {
				// Invalid login, show error:
				// Calc left:
				iLeft = (document.body.clientWidth - 276) / 2;
				
				var oLay = document.createElement('div');
				oLay.setAttribute("id", "dvDemoLoginError");
				oLay.setAttribute("class", "popupContainer");
				oLay.setAttribute("style", "top:300px; width:276px; left:" + iLeft + "px;");
				oLay.setAttribute("onclick", "window.clearTimeout(Demo.PopupTimeout); document.body.removeChild(this);");
				oLay.innerHTML = "<img src='/images/popup_LoginError.gif' />";
				
				document.body.appendChild(oLay);
				Demo.PopupTimeout = window.setTimeout("document.body.removeChild($get('dvDemoLoginError'));", 3000);
			}
		}
		AtayeAJAX.OnError = function(Err) {
			alert("There was an error validating your login.");
		}
		var sParams = "action=ValidateLogin&Username=" + oUName.value + "&Password=" + oPwd.value;
		AtayeAJAX.GetURL(sParams);
		
		return false;
		//IsValid = true;
		//return true;
	}
	
	, ValidateDemoForm: function(FormID)
	{
		Demo.Form = $get(FormID);
		
		if (!Helper.ValidateField($get('txtFName'), "You must enter your first name.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtSName'), "You must enter your surname.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtCName'), "You must enter your company name.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtPhone'), "You must enter your contact phone.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtEmail'), "You must enter your email address, use this for logging in.")) {
			IsValid = false;
			return false;
		}
		
		// Add an iframe to post to:
		var oFme = $get('fmPost');
		if (oFme == undefined) {
			var oFme = document.createElement('iframe');
			oFme.setAttribute("id", "fmPost");
			oFme.setAttribute("name", "fmPost");
			oFme.setAttribute("style", "visibility:hidden;height:0px;");
			oFme.setAttribute("frameborder", "no");
			oFme.setAttribute("onload", "Demo._RequestComplete(this);");
			document.body.appendChild(oFme);
		}
		
		// Post to fme:
		Demo.Form.target = "fmPost";
		Demo.UsingPost = true;
		FormsHelper.SubmitFormAction(Demo.Form.id, "Request", "");
	}
	, _RequestComplete: function(Frame) 
	{
		if (!Demo.UsingPost)
			return;
		//var sContent = Frame.contentWindow.document.body.innerHTML;
		var error = Frame.contentDocument.getElementsByTagName("error");
		if (error.length > 0)
		{
			alert(error[0].innerHTML);
			return;
		}
		var result = Frame.contentDocument.getElementsByTagName("result");
		if (result.length > 0)
		{
			if (result[0].innerHTML == "0")
			{
				// done, go to login page
				Helper.ShowImagePopup("/images/7-thankyou-popup.png", 0, 287);
				//document.location.href = "/pages/request_a_demonstration/login/";
				
				//$get('dvResponse').innerHTML = "Thank you. An email has been sent to your registered email address with your username and password.";
			}
		}
	}
}

var Downloads = {
	IsValid: false
	, Form: null
	, PopupTimeout: 0
	, UsingPost: false
	
	, ValidateLogin : function(FormID)
	{
		var oUName = $get(FormID).Username;
		var oPwd = $get(FormID).Password;
		Demo.Form = $get(FormID);
		
		if (!Helper.ValidateField(oUName, "You have not entered a username.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField(oPwd, "You have not entered a password.")) {
			IsValid = false;
			return false;
		}
		
		
		// Ajax validate:
		AtayeAJAX.RequestURL = '/_inc/DemoFunctions.asp';
		AtayeAJAX.OnComplete = function(Status, Response) {
			// If good response, do login, else dont!
			if (Status.Status != 200)
				return;
			
			if (Response == "0") {
				// all good, do login:
				Demo.IsValid = true;
				FormsHelper.SubmitFormAction(Demo.Form.id, "Login", "/pages/forms__downloads/customer_downloads/")
				return;
			}
			if (Response == "1") {
				// Invalid login, show error:
				// Calc left:
				iLeft = (document.body.clientWidth - 276) / 2;
				
				var oLay = document.createElement('div');
				oLay.setAttribute("id", "dvDemoLoginError");
				oLay.setAttribute("class", "popupContainer");
				oLay.setAttribute("style", "top:300px; width:276px; left:" + iLeft + "px;");
				oLay.setAttribute("onclick", "window.clearTimeout(Demo.PopupTimeout); document.body.removeChild(this);");
				oLay.innerHTML = "<img src='/images/popup_LoginError.gif' />";
				
				document.body.appendChild(oLay);
				Demo.PopupTimeout = window.setTimeout("document.body.removeChild($get('dvDemoLoginError'));", 3000);
			}
		}
		AtayeAJAX.OnError = function(Err) {
			alert("There was an error validating your login.");
		}
		var sParams = "action=ValidateLogin&Username=" + oUName.value + "&Password=" + oPwd.value;
		AtayeAJAX.GetURL(sParams);
		
		return false;
	}
	
	, ForgotPwd: function(CtrlUsername, CtrlPassword) {
		// Do forgot password:
		
		if (!confirm("Are you sure you want to reset your password?"))
			return;
		
		// Validate:
		if (CtrlUsername.value == "")
		{
			alert("Please enter your email address.");
			CtrlUsername.focus();
			return;
		}
		
		if (!FormsHelper.ValidateEmail(CtrlUsername.value))
			return;
		
		AtayeAJAX.RequestURL = '/_inc/DownloadFunctions.asp';
		AtayeAJAX.OnComplete = function(Status, Response) {
			// If good response, do login, else dont!
			if (Status.Status != 200)
				return;
				
			
			if (Response == "-1") {
				// Error:
				alert("The email address you provided is invalid.");
				return;
			}
			
			if (Response = "0") {
				alert("Your password has been emailed to your email address.");
			}
			
//			if (Response == "1") {
//				// Invalid login, show error:
//				// Calc left:
//				iLeft = (document.body.clientWidth - 276) / 2;
//				
//				var oLay = document.createElement('div');
//				oLay.setAttribute("id", "dvDemoLoginError");
//				oLay.setAttribute("class", "popupContainer");
//				oLay.setAttribute("style", "top:300px; width:276px; left:" + iLeft + "px;");
//				oLay.setAttribute("onclick", "window.clearTimeout(Demo.PopupTimeout); document.body.removeChild(this);");
//				oLay.innerHTML = "<img src='/images/popup_LoginError.gif' />";
//				
//				document.body.appendChild(oLay);
//				Demo.PopupTimeout = window.setTimeout("document.body.removeChild($get('dvDemoLoginError'));", 3000);
//			}
		}
		AtayeAJAX.OnError = function(Err) {
			alert("There was an error validating your login.");
		}
		var sParams = "action=ResetPwd&Username=" + CtrlUsername.value;
		AtayeAJAX.GetURL(sParams);
	}
}

var Dist = {
	IsValid: false
	, Form: null
	, PopupTimeout: 0
	, UsingPost: false
		
	, ValidateForm: function(FormID)
	{
		Dist.Form = $get(FormID);
		
		if (!Helper.ValidateField($get('txtFName'), "You must enter your first name.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtSName'), "You must enter your surname.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtPosition'), "You must enter your position title.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtCName'), "You must enter your company name.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtPhone'), "You must enter your contact phone.")) {
			IsValid = false;
			return false;
		}
		if (!Helper.ValidateField($get('txtEmail'), "You must enter your email address, use this for logging in.")) {
			IsValid = false;
			return false;
		}
		
		// Add an iframe to post to:
		var oFme = $get('fmPost');
		if (oFme == undefined) {
			var oFme = document.createElement('iframe');
			oFme.setAttribute("id", "fmPost");
			oFme.setAttribute("name", "fmPost");
			oFme.setAttribute("style", "visibility:hidden;height:0px;");
			oFme.setAttribute("frameborder", "no");
			oFme.setAttribute("onload", "Dist._RequestComplete(this);");
			document.body.appendChild(oFme);
		}
		
		// Post to fme:
		Dist.Form.target = "fmPost";
		Dist.UsingPost = true;
		FormsHelper.SubmitFormAction(Dist.Form.id, "Request", "");
		return true;
	}
	, _RequestComplete: function(Frame) 
	{
		if (!Dist.UsingPost)
			return;
			
		var sRtn = Frame.contentDocument.body.innerHTML
		if (sRtn != "0")
		{
			alert(sRtn);
			return;
		}
		Helper.ShowImagePopup("/images/7-thankyou-popup.png", 0, 287);
	}
	
	, _RequestCompleteX: function(Frame) 
	{
		if (!Dist.UsingPost)
			return;
			alert(Frame.contentDocument.body.innerHTML);
		//var sContent = Frame.contentWindow.document.body.innerHTML;
		var error = Frame.contentDocument.getElementsByTagName("error");
		if (error.length > 0)
		{
			alert(error[0].innerHTML);
			return;
		}
		var result = Frame.contentDocument.getElementsByTagName("result");
		if (result.length > 0)
		{
			if (result[0].innerHTML == "0")
			{
				// done:
				alert('done');
				Helper.ShowImagePopup("/images/7-thankyou-popup.png", 0, 287);
				//$get('dvResponse').innerHTML = "Thank you. An email has been sent to your registered email address with your username and password.";
			}
		}
	}
}

var Helper = {
	PopupTimeout: null
	
	, ValidateField: function(TextField, Message)
	{
		if (TextField.value == '')
		{
			alert(Message);
			TextField.focus();
			return false;
		}
		return true;
	}
	
	, ShowImagePopup: function(URL, Expire, Width, Top, Container)
	{
		var iExpire = (Expire==undefined?0:Expire);
		var iTop = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		iTop += (Top == undefined)? 300 : Top;
		
		// Remove if already showing:
		if ($get('dvImgPopup') != null)
			document.body.removeChild($get('dvImgPopup'));
		
		// Container:
		var oLay = document.createElement('div');
		if (Container != undefined)
		{
			if ($get('imgDyn') != null)
				Container.removeChild($get('imgDyn'));
			
			var img = document.createElement('img');
			img.src = URL;
			img.id = "imgDyn";
			img.setAttribute("onclick", "window.clearTimeout(Helper.PopupTimeout); this.parentNode.removeChild(this);");
			Container.appendChild(img);
		}
		else
		{
			// Create and show:
			oLay.setAttribute("id", "dvImgPopup");
			oLay.setAttribute("class", "popupContainer");
			oLay.setAttribute("style", "top:" + iTop + "px; ");//width:276px; left:" + iLeft + "px;");
			oLay.setAttribute("onclick", "window.clearTimeout(Helper.PopupTimeout); document.body.removeChild(this);");
			oLay.innerHTML = "<img src='" + URL + " ' />";
			document.body.appendChild(oLay);
			
			var iWidth = Width == undefined ? $get('dvImgPopup').clientWidth : Width;
			window.setTimeout(function(){ $get('dvImgPopup').style.left = ((document.body.clientWidth - iWidth) / 2) + "px" }, 0);
		}
		
		// Position horiz centre:
		//var iWidth = Width == undefined ? $get('dvImgPopup').clientWidth : Width;
		//window.setTimeout(function(){ oLay.style.left = ((document.body.clientWidth - iWidth) / 2) + "px" }, 0);
		
		
		// Will it expire??
		if (iExpire > 0)
			Helper.PopupTimeout = window.setTimeout("document.body.removeChild($get('dvImgPopup'));", iExpire);
	}
	
	, RenderMap: function() {
		alert('show map');
	}
}

var Expando = {
    RegisterExpandoBlock: function(HeaderID, BodyID) {
        var dvHead = $(HeaderID);
        var dvBody = $(BodyID);
        //alert(dvBody.style.display);
        dvBody.style.display = "none";

        // Add click event:
        dvHead.onclick = function() { Expando.ToggleBody(HeaderID, BodyID); }
    }

	, LoadResearchPage: function() {
	    // Register research page specific blocks:
	    try {
	        Expando.RegisterExpandoBlock("dvHead1", "dvBody1");
	        Expando.RegisterExpandoBlock("dvHead2", "dvBody2");
	        Expando.RegisterExpandoBlock("dvHead3", "dvBody3");
	        Expando.RegisterExpandoBlock("dvHead4", "dvBody4");
	        Expando.RegisterExpandoBlock("dvHead5", "dvBody5");
	    }
	    catch (e) { }
	}
    , LoadFAQ: function() {
        // Register research page specific blocks:
        Expando.RegisterExpandoBlock("Q1", "A1");
        Expando.RegisterExpandoBlock("Q2", "A2");
        Expando.RegisterExpandoBlock("Q3", "A3");
        Expando.RegisterExpandoBlock("Q4", "A4");
        Expando.RegisterExpandoBlock("Q5", "A5");
        Expando.RegisterExpandoBlock("Q6", "A6");
        Expando.RegisterExpandoBlock("Q7", "A7");
        Expando.RegisterExpandoBlock("Q8", "A8");
        Expando.RegisterExpandoBlock("Q9", "A9");
        Expando.RegisterExpandoBlock("Q10", "A10");
        Expando.RegisterExpandoBlock("Q11", "A11");
        Expando.RegisterExpandoBlock("Q12", "A12");
        Expando.RegisterExpandoBlock("Q13", "A13");
        Expando.RegisterExpandoBlock("Q14", "A14");
        Expando.RegisterExpandoBlock("Q15", "A15");
        Expando.RegisterExpandoBlock("Q16", "A16");
        Expando.RegisterExpandoBlock("Q17", "A17");
        Expando.RegisterExpandoBlock("Q18", "A18");
    }
	, ToggleBody: function(HeaderID, BodyID) {
	    var dvHead = $(HeaderID);
	    var dvBody = $(BodyID);

	    // Toggle body:
	    dvBody.style.display = (dvBody.style.display == 'block') ? 'none' : 'block';

	    // Toggle head:
	    dvHead.className = (dvHead.className == "ExpandoHeader") ? "ExpandoHeader_Open" : "ExpandoHeader";
	}
}

