// JavaScript Document
var siteRoot="";
var tSource='';
var compCounter=0;
var list;
var stepText='';
document.write('<'+'scrip'+'t'+' src='+siteRoot+'/Competitions/Scripts/Json.js'+' >'+'<'+'/s'+'cript'+'>'); 
function getkey(e){
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
}
function loadStepText(){
	document.write(stepText);
}
function getActivatedObject(e) {
  var obj;
  if (!e) {
    // early version of IE
    obj = window.event.srcElement;
  } else if (e.srcElement) {
    // IE 7 or later
    obj = e.srcElement;
  } else {
    // DOM Level 2 browser
    obj = e.target;
  }
  return obj;
}
function onlyalpha(event){
	//var elem=getActivatedObject(event);
	return goodchars(event, "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ");
}
function checkPostCode (toCheck) {
  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();
  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  // Overseas Territories
  pcexp.push (/^([A-Z]{4})(\s*)(1ZZ)$/i);
  // Load up the string to check
  var postCode = toCheck;
  // Assume we're not going to find a valid postcode
  var valid = false;
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      // Load new postcode back into the form element
      valid = true;
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  // Return with either the reformatted valid postcode or the original invalid
  // postcode
  if (valid) {return postCode;} else return false;
}
function goodchars(e, goods){
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;
		keychar = String.fromCharCode(key);
	if (goods.indexOf(keychar) != -1)
		return true;
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;
	return false;
}
function emailcheck(txtfld, mes){
	var str;
	var string1=txtfld.value;
	str = "";
	if (string1.indexOf("@")==-1){
		str = "NO";}
	else if (string1.indexOf("@")==0){
		str = "NO";}
	else if (string1.indexOf(".")==-1){
		str = "NO";}
	else if (string1.indexOf(".")==0){
		str = "NO";}
	else if (string1.indexOf("@") + 1 == string1.indexOf(".")){
		str = "NO";}
	else if (string1.indexOf("@") + 1== string1.length){
		str = "NO";}
	else if(string1.lastIndexOf(".") + 1== string1.length){
		str = "NO";}
	else if(string1.indexOf("@") != string1.lastIndexOf("@")){
		str = "NO";}
	else{
		str = "YES";}
	if (str=="NO"){
		alert(mes);
		txtfld.select();
		txtfld.focus();
		return true;
	}
	else{
		return false;
	}
}
function onlyNumbers(e){
	var key, keychar;
	var goods="0123456789";
	key = getkey(e);
	if (key == null) return true;
		keychar = String.fromCharCode(key);
	if (goods.indexOf(keychar) != -1)
		return true;
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;
	return false;
}
function checkphone(fld,mes)
{
	var x = fld;
	var filter  = /^\d{11}$/;
	var filter =/0\d{10}/
	if (!filter.test(x.value)) 
	{
		alert(mes);
		x.select();
		x.focus();
		return true;
	}else{
		return false;
	}
	
	
}
function addEventHandler(obj, eventName, handler) {
  if (document.attachEvent) {
	obj.attachEvent("on" + eventName, handler);
  } else if (document.addEventListener) {
    obj.addEventListener(eventName, handler, false);
  }
}
function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (tryMS) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (otherMS) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }	
  return request;
}
var prefs = {
    data: {},
    load: function () {
        var the_cookie = document.cookie.split(';');
        if (the_cookie[0]) {
            this.data = unescape(the_cookie[0]).parseJSON();
        }
        return this.data;
    },
    save: function (expires, path) {
        var d = expires || new Date(2020, 02, 02);
        var p = path || '/';
        document.cookie = 'user='+this.data.toJSONString()
                          + ';path=' + p
                          + ';expires=' + d.toUTCString();
    }
}
function get_cookie(cookie_name){
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}
var createOption=function(text,value){
		var temp=document.createElement("option");
		temp.text=text;
		temp.value=value;
		return temp;
};
var addOption=function(src,destn){
		try{
			src.add(destn);
		}catch(ex){
			src.add(destn,null);
		}
};
var enquiryForm=function(fName){
	var frm=document.getElementById(fName);
	frm.action=siteRoot+"/actions/getLeads.asp";
	var user=eval("("+unescape(get_cookie("dUserJ"))+")");//.toJSONString();
	var compId=Competition.id;
	var nCompId=Competition.next;
	var compName=Competition.name;
	var nextComp=0;
	var nextURL='';
	var cctr=document.createElement("input");
	cctr.name="current";
	cctr.type="hidden";
	cctr.value=compId;		
	frm.appendChild(cctr);
	var ctr=document.createElement("input");
	ctr.name="next";
	ctr.type="hidden";
	ctr.value=nCompId;
	frm.appendChild(ctr);
	if(nCompId >0){
		nextURL=siteRoot+"/Competitions/"+Competition.cSlug+'/'+Competition.nSlug+'.asp';
		var ctr1=document.createElement("input");
		ctr1.name="nextURL";
		ctr1.value=nextURL;
		ctr1.type="hidden";
		frm.appendChild(ctr1);
	}else{
		nextURL=siteRoot+"/Congratulations.asp";
	}
	var elements=frm.elements;
	var tot=elements.length;
	var inArray=function(arr,str){
		var tempArr=arr;
		var foundAt=-1;
		for(var k=0;k<tempArr.length;k++){
			if(str!="sDOBDD" && str!="sDOBMM" && str!="sDOBYYYY"){
				if(tempArr[k].indexOf(str.substring(1)) > -1 ){
					foundAt=k;
					return foundAt;
					break;
				}
			}else{
				if(str.indexOf(tempArr[k].substring(1)) > -1 ){
					foundAt=k;
					return foundAt;
					break;
				}
			}
		}
		return foundAt;
	};
	this.addAttribute=function(){
		for(eleCtr=0;eleCtr<tot;eleCtr++){
			if(elements[eleCtr].type=="hidden"){
				var attr=document.createAttribute("data");
				attr.nodeValue="Personal";
				elements[eleCtr].setAttributeNode(attr);
			}
		}
	}();
	this.pcLookup=function(){
		eval('document.'+fName+'.'+'cAddress1').value='';
		var poControl=eval('document.'+fName+'.'+'cPostCode');
		if(poControl.value!="")
			if(!checkPostCode(poControl.value)){
				alert('Please Enter Valid Post Code');
				poControl.focus();
				return false;
			}else
			{
				eval('document.'+fName+'.'+'cPostCode').value = checkPostCode (poControl.value)
			}
		var req = createRequest();
		if (req == null)
			alert("Unable to create request");
		else {
			req.onreadystatechange = function(){
				if (req.readyState == 4) {
					if (req.status == 200) {
						list=eval("("+req.responseText+")");
						document.getElementById("poList").style.display='inline';
						var selector=document.getElementById("poSelector");
						selector.style.display='inline';
						for(var cd=selector.length-1;cd>-1;cd--){
								 selector.remove(selector.options[cd].index);
						}
						if(list.length > 0)	{
							for(var ab=0;ab<list.length;ab++){
								var opt=createOption(list[ab].premise,list[ab].id);
								addOption(selector,opt);
							}
						}else{
							var opt=createOption("No Suggestions","0.0");
							addOption(selector,opt);
						}
					}
				}
			};
			req.open("POST", siteRoot+"/actions/POCheck.asp", true);
			req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			req.send("po="+escape(poControl.value)+"&x="+Math.random());
		}
	};
	this.pcFetch=function(val){
		if(val=="0.0"){
		document.getElementById("poList").style.display='none';
		var selector=document.getElementById("poSelector");
		selector.style.display='none';
		}else{
			//alert(val);
			var PODetails=list[val];
			document.getElementById("poList").style.display='none';
			var selector=document.getElementById("poSelector");
			selector.style.display='none';
			eval('document.'+fName+'.'+'cAddress1').value=PODetails.line1;
			eval('document.'+fName+'.'+'cAddress1').readOnly=true
			eval('document.'+fName+'.'+'cAddress2').value=PODetails.line2;
			eval('document.'+fName+'.'+'cAddress3').value=PODetails.line3;
			eval('document.'+fName+'.'+'cTown').value=PODetails.post_town;
			eval('document.'+fName+'.'+'cCounty').value=PODetails.county;
			eval('document.'+fName+'.'+'cCountry').value="GB";
		}
	};
	this.updateUser=function(){
		for(var z=0;z<tot;z++){
			if(elements[z].getAttribute("data")=="Personal"){
				//check if this data is available with us
				var indice=inArray(user.keys,elements[z].name);
				if(indice>-1){ //means present
					if(elements[z].type !="select-one" && elements[z].type !="radio"){
						if(unescape(user.vals[indice].replace(/\+/," "))){
							elements[z].value=unescape(user.vals[indice].replace(/\+/," "));
							elements[z].readOnly=true;
						}
					}
					else{
						var control=eval('document.'+fName+'.'+elements[z].name);
						if(elements[z].name =="sTitle"){
							for(var j=0;j<control.options.length;j++){
								if(control.options[j].value==unescape(user.vals[indice]) && unescape(user.vals[indice])!=""){
									control.options[j].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="sDOBDD"){
							for(var a=0;a<control.options.length;a++){
								if(control.options[a].value==unescape(user.vals[indice].split('/')[0]) && unescape(user.vals[indice].split('/')[0])!=""){
									control.options[a].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="sDOBMM"){
							for(var b=0;b<control.options.length;b++){
								if(control.options[b].value==unescape(user.vals[indice].split('/')[1]) && unescape(user.vals[indice].split('/')[1])!=""){
									control.options[b].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="sDOBYYYY"){
							for(var c=0;c<control.options.length;c++){
								if(control.options[c].value==unescape(user.vals[indice].split('/')[2]) && unescape(user.vals[indice].split('/')[2])!=""){
									control.options[c].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="sMaritalStatus"){
							for(var d=0;d<control.options.length;d++){
								if(control.options[d].value==unescape(user.vals[indice]) && unescape(user.vals[indice])!=""){
									control.options[d].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="sCountry"){
							for(var e=0;e<control.options.length;e++){
								if(control.options[e].value==unescape(user.vals[indice].replace(/\+/," ")) && unescape(user.vals[indice])!=""){
									control.options[e].selected=true;
									control.disabled=true;
									break;
								}
							}
						}
						if(elements[z].name =="cGender"){
							var sel=false;
							for(var f=0;f<control.length;f++){
								if(control[f].value==unescape(user.vals[indice].replace(/\+/," ")) && unescape(user.vals[indice])!=""){
									control[f].checked=true;
									sel=true;
									break;
								}
							}
							if(sel==true){
								for(var f=0;f<control.length;f++){
									control[f].disabled=true;
								}
							}
						}
					}
				}
			}
		}
	};
	if(unescape(get_cookie("dUserJ"))!="null" )this.updateUser();
	this.setAction=function(aUrl){
		frm.action=aUrl;
	};
	this.validateForm=function(){
		for(var i=0;i<tot;i++){
			if(elements[i].type=="text" || elements[i].type=="password" || elements[i].type=="textarea" || elements[i].type=="select-one" || elements[i].type=="select-multiple"){
				if(elements[i].getAttribute("validate")=="true"){
					if(elements[i].value == ""){
						alert(elements[i].getAttribute("errMsg"));
						elements[i].focus();
						return false;
						break;
					}
					if(elements[i].name.toLowerCase().indexOf('mail') > -1){
						if(emailcheck(elements[i],'Please Enter Valid Email')){
							return false;
							break;
						}
					}
					if(elements[i].name.toLowerCase().indexOf('phone') > -1){
						if(checkphone(elements[i],'Please Enter Valid Phone Number')){
							return false;
							break;
						}
					}
					if(elements[i].name.toLowerCase().indexOf('postcode') > -1){
						if(!checkPostCode(elements[i].value)){
							alert('Please Enter Valid Post Code');
							elements[i].focus();
							return false;
							break;
						}
					}
				}
			}else if(elements[i].type=="radio" || elements[i].type=="checkbox" ){
				var control=eval('document.'+fName+'.'+elements[i].name);
				if(elements[i].getAttribute("validate")=="true"){
					var tempType=elements[i].type;
					var index=-1;
					if(control.length !=undefined){
						for(j=control.length-1;j>-1;j--){
							if(control[j].checked){
								index=j;
								j=-1;
							}
						}
						i=i+(control.length-1);
					}else{
						if(control.checked){
							index=0;
						}
					}
					if(index==-1){
							if(control.length>1){
							alert(control[0].getAttribute("errMsg"));
							control[0].focus();
							}else{
								alert(control.getAttribute("errMsg"));
								control.focus();
							}
							return false;
							break;
					}
					
				}
			}
		}
		if(document.getElementById('step2')){
			if(document.getElementById('step2').style.display=="none"){
				Effect.Fade('step1');
				Effect.Appear('step2'); 
				document.eForm1.sTitle.value=document.eForm.sTitle.value;
				document.eForm1.cFName.value=document.eForm.cFName.value;
				document.eForm1.cSName.value=document.eForm.cSName.value;
				document.eForm1.cPostCode.value=document.eForm.cPostCode.value;
				document.eForm1.cTelePhone.value=document.eForm.cTelePhone.value;
				document.eForm1.cEmail.value=document.eForm.cEmail.value;
				document.eForm1.sDOBDD.value=document.eForm.sDOBDD.value;
				document.eForm1.sDOBMM.value=document.eForm.sDOBMM.value;
				document.eForm1.sDOBYYYY.value=document.eForm.sDOBYYYY.value;
				document.eForm1.cAddress1.value=document.eForm.cAddress1.value;
				document.eForm1.cAddress2.value=document.eForm.cAddress2.value;
				document.eForm1.cAddress3.value=document.eForm.cAddress3.value;
				document.eForm1.cTown.value=document.eForm.cTown.value;
				document.eForm1.cCounty.value=document.eForm.cCounty.value;
				document.eForm1.cCountry.value=document.eForm.cCountry.value;
				return false;
			}else if(document.getElementById('step2').style.display!="none"){
				return true;
			}
		}
	};
	this.clear=function(){
			window.location.href=nextURL;
			return false;
	};
	this.createOption=function(text,value){
		var temp=document.createElement("option");
		temp.text=text;
		temp.value=value;
		return temp;
	};
	this.addOption=function(src,destn){
		try{
			src.add(destn);
		}catch(ex){
			src.add(destn,null);
		}
	};
	this.populateDOB=function(ctrlDD,ctrlMM,ctrlYY,age){
		var DDCtrl=eval('document.'+fName+'.'+ctrlDD);
		var MMCtrl=eval('document.'+fName+'.'+ctrlMM);
		var tempOption=this.createOption("DD","");
		this.addOption(DDCtrl,tempOption);
		for(i=1;i<=31;i++){
			var tempOption1=this.createOption(i,i);
			this.addOption(DDCtrl,tempOption1);
			tempOption1=null;
		}
		tempOption=null;
		var tempOption=this.createOption("MM","");
		this.addOption(MMCtrl,tempOption);
		for(i=1;i<=12;i++){
			var tempOption1=this.createOption(i,i);
			this.addOption(MMCtrl,tempOption1);
			tempOption1=null;
		}
		if(ctrlYY!=""){
			var YYCtrl=eval('document.'+fName+'.'+ctrlYY);
			tempOption=null;
			var tempOption=this.createOption("YYYY","");
			this.addOption(YYCtrl,tempOption);
			for(i=(new Date().getUTCFullYear()-age);i>=(new Date().getUTCFullYear()-(age+90));i--){
				var tempOption1=this.createOption(i,i);
				this.addOption(YYCtrl,tempOption1);
				tempOption1=null;
			}
		}
		if(unescape(get_cookie("dUserJ"))!= "" && unescape(get_cookie("dUserJ"))!="null" )this.updateUser();
	};
	this.recentYears=function(ctrlYY,yrs){
		var YYCtrl=eval('document.'+fName+'.'+ctrlYY);
		tempOption=null;
		var tempOption=this.createOption("YYYY","");
		this.addOption(YYCtrl,tempOption);
		for(i=(new Date().getUTCFullYear());i>=(new Date().getUTCFullYear()-(yrs));i--){
			var tempOption1=this.createOption(i,i);
			this.addOption(YYCtrl,tempOption1);
			tempOption1=null;
		}
	};
};
function loadFirst(){
	window.location.href=siteRoot+"/Competitions/Top/Luxury.asp";
}
var registrationForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	var tot=elements.length;
	var frmContainer=frm.parentNode;
	var userValid=false;
	this.showLoading=function(){
		document.getElementById("contactSpan").innerHTML="<p>Please Wait While We Register You...!!!</p>";
	};
	this.showThanks=function(){
		if (request.readyState == 4) {
			if (request.status == 200) {
				if(request.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else{
					document.getElementById("contactSpan").innerHTML="<p>"+request.responseText+"</p>";
					setTimeout("loadFirst()",5000)
				}
			}
		}
	};
	this.checkEmail=function(obj){
		if(emailcheck(obj,'Please Enter Valid Email'))
			return false;
		else{
			var req = createRequest();
			if (req == null)
				alert("Unable to create request");
			else {
				obj.className="thinking";
				data='';
				data+='email='+escape(obj.value);
				req.onreadystatechange = function(){
					if (req.readyState == 4) {
						if (req.status == 200) {
							if(req.responseText=="okay"){
								obj.className="approved";
								userValid=true;
							}
							else{
								obj.className="denied";
								userValid=false;
							}
						}
					}
				};
				req.open("POST", siteRoot+"/actions/checkEmail.asp", true);
				req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				req.send(data);
			}
		}
	};
	this.showUpdateThanks=function(){
		if (request.readyState == 4) {
			if (request.status == 200) {
				if(request.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else{
					document.getElementById("contactSpan").innerHTML="<p>"+request.responseText+"</p>";
				}
			}
		}
	};
	this.changeValidateForm=function(){
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
				if(elements[i].name.toLowerCase().indexOf('postcode') > -1){
					if(!checkPostCode(elements[i].value)){
						alert('Please Enter Valid Post Code');
						elements[i].focus();
						return false;
						break;
					}
				}
				if(elements[i].name.toLowerCase().indexOf('terms') > -1){
					var control=eval('document.'+fName+'.'+elements[i].name);
					if(!control.checked){
						alert(control.getAttribute("errMsg"));
						control.focus();
						return false;
						break;
					}
				}
			}
		}
		if(document.getElementById("pwd1").value != document.getElementById("pwd2").value){
			alert('Please Check Your Passwords. It doesn\'t match.');
			return false;
		}
		
			var request = createRequest();
			if (request == null)
				alert("Unable to create request");
			else {
				data='';
				for(i=0;i<elements.length;i++){
					if(i==(elements.length-1))
						data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"));
					else
						data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"))+'&';
				}
				document.getElementById("contactSpan").innerHTML="<p>Please Wait While We are Updating your profile ...!!!</p>";
				request.onreadystatechange = this.showUpdateThanks;
				request.open("POST", frm.action, true);
				request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				request.send(data);
			}
			return false;
		
		
	};
	this.validateForm=function(){
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
				if(elements[i].name.toLowerCase().indexOf('postcode') > -1){
					if(!checkPostCode(elements[i].value)){
						alert('Please Enter Valid Post Code');
						elements[i].focus();
						return false;
						break;
					}
				}
				if(elements[i].name.toLowerCase().indexOf('terms') > -1){
					var control=eval('document.'+fName+'.'+elements[i].name);
					if(!control.checked){
						alert(control.getAttribute("errMsg"));
						control.focus();
						return false;
						break;
					}
				}
			}
		}
		if(document.getElementById("pwd1").value != document.getElementById("pwd2").value){
			alert('Please Check Your Passwords. It doesn\'t match.');
			return false;
		}
		if(userValid==true){
			var request = createRequest();
			if (request == null)
				alert("Unable to create request");
			else {
				data='';
				for(i=0;i<elements.length;i++){
					if(i==(elements.length-1))
						data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"));
					else
						data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"))+'&';
				}
				this.showLoading();
				request.onreadystatechange = this.showThanks;
				request.open("POST", frm.action, true);
				request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				request.send(data);
			}
			return false;
		}else{
			alert('We have this Email Address associated with another User.\n Please Try another Email Address');
		}
		return false;
	};
	this.createOption=function(text,value){
		var temp=document.createElement("option");
		temp.text=text;
		temp.value=value;
		return temp;
	};
	this.addOption=function(src,destn){
		try{
			src.add(destn);
		}catch(ex){
			src.add(destn,null);
		}
	};
	this.pcLookup=function(){
		eval('document.'+fName+'.'+'cAddress1').value='';
		var poControl=eval('document.'+fName+'.'+'cPostCode');
		if(!checkPostCode(poControl.value)){
			alert('Please Enter Valid Post Code');
			poControl.focus();
			return false;
		}
		var req = createRequest();
		if (req == null)
			alert("Unable to create request");
		else {
			req.onreadystatechange = function(){
				if (req.readyState == 4) {
					if (req.status == 200) {
						list=eval("("+req.responseText+")");
						document.getElementById("poList").style.display='inline';
						var selector=document.getElementById("poSelector");
						selector.style.display='inline';
						for(var cd=selector.length-1;cd>-1;cd--){
								 selector.remove(selector.options[cd].index);
						}
						if(list.length > 0)	{
							for(var ab=0;ab<list.length;ab++){
								var opt=createOption(list[ab].premise,list[ab].id);
								addOption(selector,opt);
							}
						}else{
							var opt=createOption("No Suggestions","0.0");
							addOption(selector,opt);
						}
					}
				}
			};
			req.open("POST", siteRoot+"/actions/POCheck.asp", true);
			req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			req.send("po="+escape(poControl.value)+"&x="+Math.random());
		}
	};
	this.pcFetch=function(val){
		if(val=="0.0"){
		document.getElementById("poList").style.display='none';
		var selector=document.getElementById("poSelector");
		selector.style.display='none';
		}else{
			var PODetails=list[val];
			document.getElementById("poList").style.display='none';
			var selector=document.getElementById("poSelector");
			selector.style.display='none';
			eval('document.'+fName+'.'+'cAddress1').value=PODetails.line1;
			eval('document.'+fName+'.'+'cAddress2').value=PODetails.line2;
			eval('document.'+fName+'.'+'cAddress3').value=PODetails.line3;
			eval('document.'+fName+'.'+'cTown').value=PODetails.post_town;
			eval('document.'+fName+'.'+'cCounty').value=PODetails.county;
			eval('document.'+fName+'.'+'cCountry').value="GB";
		}
	};
	this.populateDOB=function(ctrlDD,ctrlMM,ctrlYY,age){
		var DDCtrl=eval('document.'+fName+'.'+ctrlDD);
		var MMCtrl=eval('document.'+fName+'.'+ctrlMM);
		var YYCtrl=eval('document.'+fName+'.'+ctrlYY);
		var tempOption=this.createOption("DD","");
		this.addOption(DDCtrl,tempOption);
		for(i=1;i<=31;i++){
			var tempOption1=this.createOption(i,i);
			this.addOption(DDCtrl,tempOption1);
			tempOption1=null;
		}
		tempOption=null;
		var tempOption=this.createOption("MM","");
		this.addOption(MMCtrl,tempOption);
		for(i=1;i<=12;i++){
			var tempOption1=this.createOption(i,i);
			this.addOption(MMCtrl,tempOption1);
			tempOption1=null;
		}
		tempOption=null;
		var tempOption=this.createOption("YYYY","");
		this.addOption(YYCtrl,tempOption);
		for(i=(new Date().getUTCFullYear()-age);i>=(new Date().getUTCFullYear()-(age+90));i--){
			var tempOption1=this.createOption(i,i);
			this.addOption(YYCtrl,tempOption1);
			tempOption1=null;
		}
	};
};
var accessForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	this.showLoading=function(){
		document.getElementById("error").style.display="inline";	
		document.getElementById("error").innerHTML="Please Wait ...!!!";
	};
	this.showThanks=function(){
		if (request.readyState == 4) {
			if (request.status == 200) {
				if(request.responseText=="")
					document.getElementById("error").innerHTML="Login Failed";
				else{
					window.location.reload();
				}
			}
		}
	};
	this.validateForm=function(){
		var tot=elements.length;
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
			}
		}
		var request = createRequest();
		if (request == null)
			alert("Unable to create request");
		else {
			this.showLoading();
			data='';
			for(i=0;i<elements.length;i++){
				if(i==(elements.length-1))
					data+=elements[i].name+'='+escape(elements[i].value);
				else
					data+=elements[i].name+'='+escape(elements[i].value)+'&';
			}
			request.onreadystatechange = this.showThanks;
			request.open("POST", frm.action, true);
			request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			request.send(data);
		}
		return false;
	};
};
var subscriptionForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	this.showLoading=function(){
		document.getElementById("contactSpan").innerHTML="<p>Please Wait While We Receive Your Request...!!!</p>";
	};
	this.showThanks=function(){
		if (subRequest.readyState == 4) {
			if (subRequest.status == 200) {
				if(subRequest.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else
					document.getElementById("contactSpan").innerHTML="<p>"+subRequest.responseText+"</p>";
			}
		}
	};
	this.validateForm=function(){
		var tot=elements.length;
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
			}
		}
		subRequest = createRequest();
		if (subRequest == null)
			alert("Unable to create request");
		else {
			data='';
			for(i=0;i<elements.length;i++){
				if(i==(elements.length-1))
					data+=elements[i].name+'='+escape(elements[i].value);
				else
					data+=elements[i].name+'='+escape(elements[i].value)+'&';
			}
			this.showLoading();
			subRequest.onreadystatechange = this.showThanks;
			subRequest.open("POST", frm.action, true);
			subRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			subRequest.send(data);
		}
		return false;
	};
};
var unsubscriptionForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	var frmContainer=frm.parentNode;
	this.showLoading=function(){
		document.getElementById("contactSpan").innerHTML="<p>Please Wait While We Receive Your Request...!!!</p>";
	};
	this.showThanks=function(){
		if (requesta.readyState == 4) {
			if (requesta.status == 200) {
				if(requesta.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else
					document.getElementById("contactSpan").innerHTML="<p>"+requesta.responseText+"</p>";
			}
		}
	};
	this.validateForm=function(){
		var tot=elements.length;
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
			}
		}
		requesta = createRequest();
		if (requesta == null)
			alert("Unable to create request");
		else {
			data='';
			for(i=0;i<elements.length;i++){
				if(i==(elements.length-1))
					data+=elements[i].name+'='+escape(elements[i].value);
				else
					data+=elements[i].name+'='+escape(elements[i].value)+'&';
			}
			this.showLoading();
			requesta.onreadystatechange = this.showThanks;
			requesta.open("POST", frm.action, true);
			requesta.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			requesta.send(data);
		}
		return false;
	};
};
var passwordForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	var frmContainer=frm.parentNode;
	this.showLoading=function(){
		document.getElementById("contactSpan").innerHTML="<p>Please Wait While We Receive Your Request...!!!</p>";
	};
	this.showThanks=function(){
		if (requesta.readyState == 4) {
			if (requesta.status == 200) {
				if(requesta.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else
					document.getElementById("contactSpan").innerHTML="<p>"+requesta.responseText+"</p>";
			}
		}
	};
	this.validateForm=function(){
		var tot=elements.length;
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
			}
		}
		requesta = createRequest();
		if (requesta == null)
			alert("Unable to create request");
		else {
			data='';
			for(i=0;i<elements.length;i++){
				if(i==(elements.length-1))
					data+=elements[i].name+'='+escape(elements[i].value);
				else
					data+=elements[i].name+'='+escape(elements[i].value)+'&';
			}
			this.showLoading();
			requesta.onreadystatechange = this.showThanks;
			requesta.open("POST", frm.action, true);
			requesta.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			requesta.send(data);
		}
		return false;
	};
};
var contactForm=function(fName){
	var frm=document.getElementById(fName);
	var elements=frm.elements;
	var frmContainer=frm.parentNode;
	this.showLoading=function(){
		document.getElementById("contactSpan").innerHTML="<p>Please Wait While We Receive Your Request...!!!</p>";
	};
	this.showThanks=function(){
		if (request.readyState == 4) {
			if (request.status == 200) {
				if(request.responseText=="")
					document.getElementById("contactSpan").innerHTML="<p>We are Sorry!!! <br/> <br/> Our Server Encountered an Error.Please Try After Some Time</p>";
				else
					document.getElementById("contactSpan").innerHTML="<p>"+request.responseText+"</p>";
			}
		}
	};
	this.validateForm=function(){
		var tot=elements.length;
		for(var i=0;i<tot;i++){
			if(elements[i].getAttribute("validate")=="true"){
				if(elements[i].value == ""){
					alert(elements[i].getAttribute("errMsg"));
					elements[i].focus();
					return false;
					break;
				}
				if(elements[i].name.toLowerCase().indexOf('mail') > -1){
					if(emailcheck(elements[i],'Please Enter Valid Email')){
						return false;
						break;
					}
				}
			}
		}
		var request = createRequest();
		if (request == null)
			alert("Unable to create request");
		else {
			data='';
			for(i=0;i<elements.length;i++){
				if(i==(elements.length-1))
					data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"));
				else
					data+=elements[i].name+'='+escape(elements[i].value.replace(/\n/g,"<br/>"))+'&';
			}
			this.showLoading();
			request.onreadystatechange = this.showThanks;
			request.open("POST", frm.action, true);
			request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			request.send(data);
		}
		return false;
	};
};