function createXMLHttpRequest() {
	var ua;
	if(window.XMLHttpRequest) {
	    try {
	    ua = new XMLHttpRequest();
	    } catch(e) {
	    ua = false;
	    }
	}else if(window.ActiveXObject) {
	    try {
	    ua = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch(e) {
	    ua = false;
	    }
	}
	return ua;
}

function sendmeresult(ts){
	ts.disabled=true;
	var currentuserid = document.getElementById("currentuserid").value;
	
	if (document.getElementById("accept").checked){
			var rannum=randomString();
			var req=createXMLHttpRequest();
			req.open('get', 'cmd.php?cmd=sendmeresult'+'&currentuserid='+currentuserid+'&rannum='+rannum);
			req.onreadystatechange = function(){
				if(req.readyState == 4 && req.status == 200){
				    var response = req.responseText;
				    var update = new Array();
				    if(response.indexOf('||') != -1) {
					    update = response.split('||');
					    alert("A PDF of your savings results has now been emailed to you.");
				    }
				    ts.disabled=false;
				}else{
					//ts.disabled=false;
				}
			}
			req.send(null);
	}else{
		alert("Please read and accept our terms & conditions, so that we can send you the savings results.");
		ts.disabled=false;
	}

}

function loadcustomerdetail(){
	var currentuserid = document.getElementById("currentuserid").value;
			var rannum=randomString();
			var req=createXMLHttpRequest();
			req.open('get', 'cmd.php?cmd=loadcustomerdetail'+'&currentuserid='+currentuserid+'&rannum='+rannum);
			req.onreadystatechange = function(){
				if(req.readyState == 4 && req.status == 200){
				    var response = req.responseText;
				    var update = new Array();
				    if(response.indexOf('||') != -1) {
					    update = response.split('||');
					    if (update[0]=="yes" || update[0]=="y"){
					    		
						    	
						    	document.getElementById('Img1').src=update[1];
									document.getElementById("product_title").innerHTML=update[2]; 
									document.getElementById("product_heading").innerHTML=update[3]; 
									
									document.getElementById("lamplife").value=update[4]; 
									document.getElementById("lampcost").value="\u00a3 " + update[5]; 
									document.getElementById("labourcost").value="\u00a3 " +  update[6]; 
									document.getElementById("colourwheellife").value=update[7]; 
									document.getElementById("colourwheelprice").value="\u00a3 " +  update[8]; 
									document.getElementById("colourwheelcost").value="\u00a3 " +  update[9]; 
									document.getElementById("poweruse").value=update[10]; 
							
									document.getElementById("productidForm").value=update[11]; 
									document.getElementById("youremail").value=update[12]; 
									document.getElementById("numberyear").value=update[13]; 
									$(".left_box_overlay").fadeOut('slow');
									$(".bottom_box_overlay").fadeOut('slow');
									document.getElementById("clicktosaving").style.display="block";
					    }else{
					    }
				    }
				}else{
				}
			}
			req.send(null);
	
}


function contactmesubmit(){
	var currentuserid = document.getElementById("currentuserid").value;
	var email = "";
	var fullname = document.getElementById("fullname").value;
	
	var telephone = document.getElementById("telephone").value;
	var company = document.getElementById("company").value;
	
	var none = "n";
	if (document.getElementById("none").checked){
		none = "y";
	}
	if (fullname!=""){
		
			var rannum=randomString();
			var req=createXMLHttpRequest();
			req.open('get', 'cmd.php?cmd=contactmesubmit'+'&telephone='+telephone+'&company='+company+'&currentuserid='+currentuserid+'&none='+none+'&fullname='+fullname+'&email='+email+'&rannum='+rannum);
			req.onreadystatechange = function(){
				if(req.readyState == 4 && req.status == 200){
				    var response = req.responseText;
				    var update = new Array();
				    if(response.indexOf('||') != -1) {
					    update = response.split('||');
					    if (update[0]=="yes" || update[0]=="y"){
								alert("Thank you. Your request has been submited");
					    }else{
					    }
				    }
				}else{
				}
			}
			req.send(null);
	}else{
		alert("Full name required");
	}
	
}

function yoursaving(){
	var currentuserid = document.getElementById("currentuserid").value;
	var youremail = document.getElementById("youremail").value;
	var rannum=randomString();
	var req=createXMLHttpRequest();
	req.open('get', 'cmd.php?cmd=yoursaving'+'&currentuserid='+currentuserid+'&youremail='+youremail+'&rannum='+rannum);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
		    var response = req.responseText;
		    var update = new Array();
		    if(response.indexOf('||') != -1) {
			    update = response.split('||');
			    if (update[0]=="yes" || update[0]=="y"){
			    	document.getElementById("fullname").value=update[1]; 
			    	document.getElementById("email").value=update[2]; 
			    	if (update[3]=="y"){
			    		document.getElementById("none").checked=true; 
			    	}else{
			    		document.getElementById("none").checked=false; 
			    	}
			    }else{
			    }
		    }
		}else{
		}
	}
	req.send(null);

}

function yoursaving_bm(){
	var currentuserid = document.getElementById("currentuserid").value;
	var youremail = document.getElementById("youremail").value;
	document.bm_form.email.value = youremail;	// setup bettermail form to include email
	var rannum=randomString();
	var req=createXMLHttpRequest();
	req.open('get', 'cmd.php?cmd=yoursaving'+'&currentuserid='+currentuserid+'&youremail='+youremail+'&rannum='+rannum);
	req.onreadystatechange = function(){
		if(req.readyState == 4 && req.status == 200){
		    var response = req.responseText;
		    var update = new Array();
		    if(response.indexOf('||') != -1) {
			    update = response.split('||');
			    if (update[0]=="yes" || update[0]=="y"){
			    	document.getElementById("fullname").value=update[1]; 
			    	document.getElementById("email").value=update[2]; 
			    	if (update[3]=="y"){
			    		document.getElementById("none").checked=true; 
			    	}else{
			    		document.getElementById("none").checked=false; 
			    	}
			    }else{
			    }
		    }
		}else{
		}
	}
	req.send(null);
	
	nvkSubmit(document.getElementById("bm_form")) ;

	// Create fake window for BM form, send and close window
	fakeWindow = window.open("loading.html", "fakewindow", "width=50,height=50,toolbar=0,left=3000");
	document.bm_form.submit();
	var temp = setTimeout("fakeWindow.close();",5000);
}

function youremailchange(){
	if (checkValid (document.getElementById("youremail"))){
		document.getElementById("clicktosaving").style.display="block"; 
	}else{
		document.getElementById("clicktosaving").style.display="none"; 
	}
}

function numberyearchange(){
	if (!isNaN(document.getElementById("numberyear").value)){
		$(".bottom_box_overlay").fadeOut('slow');
		var productid		= document.getElementById("productidForm").value;
		var numberyear	= document.getElementById("numberyear").value;
		//alert(productid);
		if (productid>0 && numberyear>0){
				var rannum=randomString();
				var req=createXMLHttpRequest();
				req.open('get', 'cmd.php?cmd=numberyearchange'+'&productid='+productid+'&numberyear='+numberyear+'&rannum='+rannum);
				req.onreadystatechange = function(){
					if(req.readyState == 4 && req.status == 200){
					    var response = req.responseText;
					    var update = new Array();
					    if(response.indexOf('||') != -1) {
						    update = response.split('||');
						    if (update[0]=="yes" || update[0]=="y"){
						    	//alert(update[1]);
						    	document.getElementById("currentuserid").value=update[1]; 
						    	//document.getElementById("panel3Text").innerHTML = "";
						    	document.getElementById("panel3Saving").innerHTML=update[2]; 
						    	document.getElementById("panel3Text").innerHTML=update[3]; 
						    	
						    	document.getElementById("panel3Entero").src = update[4]; 
						    	//document.getElementById("panel3Product").src = update[5]; 
						    	document.getElementById("productnameform").innerHTML=update[6]; 
						    }else{
						    }
					    }
					}else{
					}
				}
				req.send(null);
		}
	}else{
		$(".bottom_box_overlay").fadeIn('slow');
	}
}

function productSelected(ts){
	var productid	= ts.value;
	if (productid>0){
		$(".left_box_overlay").fadeOut('slow');
		
		var numberyear	= document.getElementById("numberyear").value;
		
		var rannum=randomString();
		var req=createXMLHttpRequest();
		req.open('get', 'cmd.php?cmd=productSelected'+'&productid='+productid+'&numberyear='+numberyear+'&rannum='+rannum);
		req.onreadystatechange = function(){
			if(req.readyState == 4 && req.status == 200){
			    var response = req.responseText;
			    var update = new Array();
			    if(response.indexOf('||') != -1) {
				    update = response.split('||');
				    if (update[0]=="yes" || update[0]=="y"){
				    	
				    	document.getElementById('Img1').src=update[1];
							document.getElementById("product_title").innerHTML=update[2]; 
							document.getElementById("product_heading").innerHTML=update[3]; 
							
							document.getElementById("lamplife").value=update[4]; 
							document.getElementById("lampcost").value="\u00a3 " + update[5]; 
							document.getElementById("labourcost").value="\u00a3 " +  update[6]; 
							document.getElementById("colourwheellife").value=update[7]; 
							document.getElementById("colourwheelprice").value="\u00a3 " +  update[8]; 
							document.getElementById("colourwheelcost").value="\u00a3 " +  update[9]; 
							document.getElementById("poweruse").value=update[10]; 
							//alert("test");
							numberyearchange();
							
				    }else{
				    }
			    }
			}else{
			}
		}
		req.send(null);
		
	}else{
		document.getElementById("product_title").innerHTML="Select your CRDS Display System to continue to the next step."; 
		document.getElementById("product_heading").innerHTML="Please select a product"; 
		document.getElementById("youremail").value=""; 
		document.getElementById("clicktosaving").style.display="none"; 
		document.getElementById("numberyear").value="Enter Years Here"; 
		
		document.getElementById("lamplife").value=""; 
		document.getElementById("lampcost").value=""; 
		document.getElementById("labourcost").value=""; 
		document.getElementById("colourwheellife").value=""; 
		document.getElementById("colourwheelprice").value=""; 
		document.getElementById("colourwheelcost").value=""; 
		document.getElementById("poweruse").value=""; 
		
		$(".left_box_overlay").fadeIn('slow');
		$(".bottom_box_overlay").fadeIn('slow');
	}
}

function randomString() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

function checkValidation(formInput) {
    var message;
    if (stringEmpty(formInput.value)) {
        message = "Error! There is no input value entered.";
    } else if (noAtSign( formInput.value )) {
        message = "Error! The address \"" + formInput.value + "\" does not contain an '@' character.";
    } else if (nothingBeforeAt(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" must contain at least one character before the '@' character";
    } else if (noLeftBracket(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['.";
    } else if (noRightBracket(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'.";
    } else if (noValidPeriod(formInput.value)) {
        message = "Error! The address \"" + formInput.value + "\" must contain a period ('.') character.";
    } else if (noValidSuffix(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" must contain a two, three or four character suffix.";
    } else if (formInput.value.indexOf("@.")>0){
    	 message = "Error! The address \"" + formInput.value;
    } else {
        message = "";
    }

    return message;
}

function checkValid (formField) {
    if (  checkValidation ( formField )=="" ) {
    	return true;
    }else{
    	return false;
    }
}

function stringEmpty (formField) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( formField.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign (formField) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if (formField.indexOf ('@', 0) == -1) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt (formField) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( formField.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']')
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if (formField.indexOf ( '.', 0 ) == -1)
        return ( true );

    return ( false );
}

function noValidSuffix(formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = formField.length;
    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}
