var lastpageid = 3;
var http,http2,http3,http6,http8,http9;
var emailfailed = false;
var nickfailed = false;
var dup="";
var option="";
var requiredfields = "firstname;lastname;city;location;emailaddress;password";
var yourprofile=urprofile;
document.getElementById("step"+pageid).style.background="#d36420";
HideShowButtons();
document.getElementById("page"+pageid).style.display='inline';
function Nav (button) {

	if (button =='prev'){
		if (pageid != minid){
			document.getElementById("step"+pageid).style.background="#999999";
			pageid--;
			document.getElementById("page"+(pageid+1)).style.display='none';
			document.location = "#";
		}
	}
	if (button =='next'){
		pageid++;
		document.getElementById("step"+pageid).style.background="#d36420";
		document.getElementById("page"+pageid).style.display='inline';
		document.getElementById("page"+(pageid-1)).style.display='none';
		document.location = "#";
	}
	document.getElementById("page"+pageid).style.display='inline';
	HideShowButtons();
}
function HideShowButtons(){
	if (pageid == 1){
		document.getElementById("prev").disabled=true;
		document.getElementById("prev2").disabled=true;
	}else{
		document.getElementById("prev").disabled=false;
		document.getElementById("prev2").disabled=false;
	}
	if (pageid==lastpageid){
		document.getElementById("next").disabled=true;
		document.getElementById("next2").disabled=true;
	}else{
		document.getElementById("next").disabled=false;
		document.getElementById("next2").disabled=false;
	}
}
function Clear (){
	for (var i=1; i < lastpageid+1; i++){
		document.getElementById("step"+i).style.background="#ffffff";
	}
}
function CheckReqFields(){
	var field=""
	for (field in requiredfields.split(";")){
		field=requiredfields.split(";")[field];
		if (document.getElementById(field)){
			if (document.getElementById(field).value.replace(/^\s+|\s+$/g,"") == ""){
				document.getElementById("saveit").disabled=false;
				document.getElementById("saveit2").disabled=false;
				return field;
			}else{
				document.getElementById(field).className="";
			}
			document.getElementById(field).value = trim(document.getElementById(field).value);
		}
	}
	document.getElementById("saveit").disabled=false;
	document.getElementById("saveit2").disabled=false;
	return "";
}
function GoTo(page){
	if (page <= lastpageid && page >0){
		document.getElementById("step"+pageid).style.background="#999999";
		document.getElementById("page"+pageid).style.display='none';
		pageid=page;
		for (var i=1;i<= lastpageid;i++){
			document.getElementById("step"+i).style.background="#999999";
		}
		for (var i=pageid;i> 0;i--){
			document.getElementById("step"+i).style.background="#d36420";
		}
		document.getElementById("page"+pageid).style.display='inline';
		document.location = "#";
		HideShowButtons();
	}
}
var currsaving=0;
function SaveForm(alias){
	if (alias !=""){
		option="&opt=details";
	}
	if (currsaving == 0){
		currsaving=1;
		//if (alias == ""){

			document.getElementById("saveit").disabled =true;
			document.getElementById("saveit2").disabled =true;
			var field=""
			field = CheckReqFields();
			if (field != ""){
				GoTo(FindDiv(field));
				document.getElementById(field).className ="errtextbox";
				document.getElementById(field).focus();
				currsaving=0;
				return false;
			}
			if (document.getElementById("postalcode")){
				if (document.getElementById("postalcode").value.length!=0 && ValidatePSTZIP() == false){
					GoTo(FindDiv("postalcode"));
					document.getElementById("postalcode").className ="errtextbox";
					document.getElementById("postalcode").focus();
					alert(invalidpostalcode);
					currsaving=0;
					return false;
				}else{
					document.getElementById("postalcode").className="";
				}
			}
			if (document.getElementById("phonenumber1")){
				var pn1 = document.getElementById("phonenumber1").value;
				var pn2 = document.getElementById("phonenumber2").value;
				var pn3 = document.getElementById("phonenumber3").value;
				if ((pn1.length > 0 || pn2.length > 0 || pn3.length > 0) && CheckPhoneNumber() == false){
					GoTo(FindDiv("phonenumber1"));
					document.getElementById("phonenumber1").className ="errtextbox";
					document.getElementById("phonenumber2").className ="errtextbox";
					document.getElementById("phonenumber3").className ="errtextbox";
					document.getElementById("phonenumber1").focus();
					alert(invalidphonenumber);
					currsaving=0;
					return false;
				}else{
					document.getElementById("phonenumber1").className ="";
					document.getElementById("phonenumber2").className ="";
					document.getElementById("phonenumber3").className ="";
					document.getElementById("phonenumber").value = document.getElementById("phonenumber1").value + document.getElementById("phonenumber2").value+document.getElementById("phonenumber3").value;
				}
			}
			if (document.getElementById("password")){
				if(document.getElementById("password").value != document.getElementById("hpassword").value){
					if(document.getElementById("password").value != document.getElementById("repassword").value){
						GoTo(FindDiv("password"));
						document.getElementById("repassword").className ="errtextbox";
						document.getElementById("repassword").focus();
						alert(yourpassword);
						currsaving=0;
						return false;
					}else{
						document.getElementById("hpassword").value = document.getElementById("repassword").value;
						document.getElementById("repassword").className ="";
					}
				}
			}

			if (CheckEmailFormat() == false){

				if (document.getElementById("emailaddress")){
					GoTo(FindDiv("emailaddress"));
					document.getElementById("emailaddress").className ="errtextbox";
					document.getElementById("emailaddress").focus();
				}
				return false;
			}else{

				if (document.getElementById("emailaddress")){
					document.getElementById("emailaddress").className ="";

					CheckEmail(alias);
				}else{
					Finalize("&opt=details");
				}
				if (emailfailed == true){
					currsaving=0;
					return false;
				}
			}
		//}else{
			document.getElementById("loadingimg").style.display="inline";
			emailfailed=false;

			//
		//}
	}
	currsaving=0;
	return true;
}
function Load(s){
	dup=s;
	http3 = CreateRequestObject();
	http3.onreadystatechange=HandleResponse3;
	http3.open("GET","/profile/util.asp?do=load&alias="+aliasid);
	http3.send(null);
}
function GetRadioValues(radio){
	var values="";
	for (i=0;i<radio.length;i++) {
		if (radio[i].checked) {
			values += radio[i].value + ",";
		}
	}
	return values;
}

function Finalize(o){
	if (nickfailed==false && emailfailed == false){
	var form="";
if (o !="&opt=details"){
		form = "firstname=" + document.getElementById("firstname").value +"&" +
			"lastname=" + document.getElementById("lastname").value +"&" +
			"address=" + document.getElementById("address").value +"&" +
			"city=" + document.getElementById("city").value +"&" +
			"Province=" + document.getElementById("location").value +"&" +
			"postalcode=" + document.getElementById("postalcode").value +"&" +
			"phonenumber=" + document.getElementById("phonenumber").value +"&" +
			"emailaddress=" + document.getElementById("emailaddress").value +"&" +
			"nickname=" + document.getElementById("nickname").value +"&" +
			"password=" + document.getElementById("password").value +"&"
		if (document.getElementById("heardabout")){
			form = form +"heardabout=" + document.getElementById("heardabout").value + document.getElementById("heardabouttext").value+"&";
		}
}

if (document.getElementById("receiveemail").checked) 
    receiveEmailFlag = 1;
else
    receiveEmailFlag = 0;

	form = form+ "ReceiveEmail=" + receiveEmailFlag +"&" +
		"StartAirport=" + GetRadioValues(document.segmentation.startairport) +"&" +
		"UsuallyTravel=" + GetRadioValues(document.segmentation.usuallytravel) +"&" +
		"AverageStay=" + GetRadioValues(document.segmentation.averagestay) +"&" +
		"PlanHoliday=" + GetRadioValues(document.segmentation.planholiday) +"&" +
		"BookHoliday=" + GetRadioValues(document.segmentation.bookholiday) +"&" +
		"NextVacation=" + GetRadioValues(document.segmentation.nextvacation)+"&" +
		"HolidayType=" + GetCheckboxValues(document.segmentation.holidaytype) +"&" +
		"NextHoliday=" + GetCheckboxValues(document.segmentation.nextholiday) +"&" +
		"MStatus=" + GetRadioValues(document.segmentation.mstatus) +"&" +
		"Gender=" + GetRadioValues(document.segmentation.gender) +"&" +
		"Age=" + GetRadioValues(document.segmentation.age) +"&" +
		"PromoID=" + document.segmentation.promoid.value +"&" +
		"Income=" + GetRadioValues(document.segmentation.income);
	http2 = CreateRequestObject();
	http2.onreadystatechange=HandleResponse2;
	var temp="/profile/util.asp?do=save&alias="+aliasid+option;
	http2.open("POST",temp,true);

	http2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	http2.send(encodeURI(form));
}
}
function HandleResponse2(){

	var msg="";
	if (http2.readyState==4 || http2.readyState=="complete"){
		msg = http2.responseText;

		//document.getElementById("titlette").innerHTML = yourprofile;
		ShowStatus(msg);
	}
}
function ReChecker(result, group){
	for (i=0; i < group.length; i++){
		for (j=0; j < result.split(",").length; j++){
			if (result.split(",")[j] == group[i].value ){
				group[i].checked = true;
			}
		}
	}
}
function HandleResponse3(){
	var msg="";
	if (http3.readyState==4 || http3.readyState=="complete"){
		msg = http3.responseText;
		//document.getElementById("titlette").innerHTML = yourprofile;
		if (dup == "y"){
			document.getElementById("promoid").value = document.getElementById("temppromoid").value;
		}
		for (var i=0; i < msg.split("####").length;i++){
			if (document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase())){
				if (document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "text" || document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "select-one"|| document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "password" || document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "hidden"){
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "phonenumber"){
						if (msg.split("####")[i].split(":=")[1].length == 10){
							document.getElementById("phonenumber1").value =msg.split("####")[i].split(":=")[1].charAt(0)+""+msg.split("####")[i].split(":=")[1].charAt(1)+""+msg.split("####")[i].split(":=")[1].charAt(2)+"";
							document.getElementById("phonenumber2").value =msg.split("####")[i].split(":=")[1].charAt(3)+""+msg.split("####")[i].split(":=")[1].charAt(4)+""+msg.split("####")[i].split(":=")[1].charAt(5)+"";
							document.getElementById("phonenumber3").value =msg.split("####")[i].split(":=")[1].charAt(6)+""+msg.split("####")[i].split(":=")[1].charAt(7)+""+msg.split("####")[i].split(":=")[1].charAt(8)+""+msg.split("####")[i].split(":=")[1].charAt(9);
							document.getElementById("phonenumber").value = document.getElementById("phonenumber1").value +""+document.getElementById("phonenumber2").value +""+document.getElementById("phonenumber3").value
						}
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "password"){
						document.getElementById("hpassword").value =msg.split("####")[i].split(":=")[1];
						document.getElementById("password").value =msg.split("####")[i].split(":=")[1];
					}
					document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).value=msg.split("####")[i].split(":=")[1];
				}

				if (document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "checkbox" || document.getElementById(msg.split("####")[i].split(":=")[0].toLowerCase()).type == "radio"){
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "receiveemail" ){

						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.receiveemail);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "startairport" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.startairport);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "usuallytravel" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.usuallytravel);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "averagestay" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.averagestay);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "planholiday" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.planholiday);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "bookholiday" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.bookholiday);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "nextvacation" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.nextvacation);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "holidaytype" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.holidaytype);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "nextholiday" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.nextholiday);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "mstatus" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.mstatus);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "gender" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.gender);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "age" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.age);
					}
					if (msg.split("####")[i].split(":=")[0].toLowerCase() == "income" ){
						ReChecker(msg.split("####")[i].split(":=")[1],document.segmentation.income);
					}
				}
			}
		}
		/*
		document.getElementById("firstname").value
		document.getElementById("lastname").value
		document.getElementById("address").value
		document.getElementById("city").value
		document.getElementById("location").value
		document.getElementById("postalcode").value
		document.getElementById("phonenumber").value
		document.getElementById("emailaddress").value
		document.getElementById("password").value
		document.getElementById("ReceiveEmail").checked
		document.getElementById("StartAirport").value
		document.getElementById("UsuallyTravel").value
		document.getElementById("AverageStay").value
		document.getElementById("PlanHoliday").value
		document.getElementById("BookHoliday").value
		document.getElementById("NextVacation").value
		GetCheckboxValues(document.segmentation.HolidayType)
		GetCheckboxValues(document.segmentation.NextHoliday)
		document.getElementById("MStatus").value
		document.getElementById("Gender").value
		document.getElementById("Age").value
		document.getElementById("Income").value;
		*/
	}
}
function FindDiv(field){
	var node = document.getElementById(field);
	while (node.id.indexOf("page") == -1){
		node = node.parentNode;
	}
	return node.id.replace(/page/g,"");
}
function CreateRequestObject() {
     var obj = null;
     if(window.ActiveXObject){
          obj = new ActiveXObject("Microsoft.XMLHTTP");
     }else{
          obj = new XMLHttpRequest();
     }
     return obj;
}

function CheckEmail(alias)
{
	http = CreateRequestObject();
	http.open("get", "/profile/availability.asp?value=" + document.getElementById("emailaddress").value + "|" + alias);

	http.onreadystatechange = HandleResponse;
	http.send(null);
}
function HandleResponse() {
	if(http.readyState == 4 || http.readyState=="complete"){
		if (http.responseText.replace(/ /g,"").length !=0){
			emailfailed = true;
			GoTo(FindDiv("emailaddress"));
			document.getElementById("emailaddress").className ="errtextbox";
			document.getElementById("emailaddress").focus();
			document.getElementById("loadingimg").style.display="none";
			alert(http.responseText);
		}else{
			emailfailed=false;
			Finalize();
		}
	}
}
function Nick(){
				if (document.getElementById("nickname").value != ""){

				CheckNick();
				if (nickfailed == true){
					currsaving=0;
					return false;
				}
			}
}
function CheckNick()
{

	http9 = CreateRequestObject();
	http9.open("get", "/profile/nickname.asp?nickname=" + document.getElementById("nickname").value+"&email=" + document.getElementById("emailaddress").value);
	http9.onreadystatechange = HandleResponse9;
	http9.send(null);
}
function HandleResponse9() {
	if(http9.readyState == 4 || http9.readyState=="complete"){
		if (http9.responseText.replace(/ /g,"").length !=0){
			nickfailed = true;
			GoTo(FindDiv("nickname"));
			document.getElementById("nickname").className ="errtextbox";
			setTimeout(function() {document.getElementById("nickname").focus();}, 0)
			document.getElementById("loadingimg").style.display="none";
			alert(http9.responseText);

		}else{
			nickfailed=false;
			document.getElementById("nickname").className ="";
			//Finalize('');
		}
	}
}

function trim(s){
	return rtrim(ltrim(s));
	return s;
}

function ltrim(s){
	var l=0;
	while(l < s.length && s[l] == ' '){
		l++;
	}
	return s.substring(l, s.length);
}
function rtrim(s){
	var r=s.length -1;
	while(r > 0 && s[r] == ' ')
	{
		r-=1;
	}
	return s.substring(0, r+1);
}
function ValidatePSTZIP() {
	var code = document.getElementById("postalcode").value;
	var RegExp = /(^\d{5}$)|(^\D{1}\d{1}\D{1}\s*\d{1}\D{1}\d{1}$)/;
	return RegExp.test(code);
}
function CheckEmailFormat() {
	if (document.getElementById("emailaddress")){
		var str= document.getElementById("emailaddress").value;
		var lat=str.indexOf("@");
		var lstr=str.length;
		var ldot=str.indexOf(".");
		var errmsg = invalidemail;
		if (str.indexOf("@")==-1){
			alert(errmsg);
			return false;
		}
		if (str.indexOf("@")==-1 || str.indexOf("@")==0 || str.indexOf("@")==lstr){
			alert(errmsg);
			return false;
		}
		if (str.indexOf(".")==-1 || str.indexOf(".")==0 || str.indexOf(".")==lstr){
			alert(errmsg);
			return false;
		}
		if (str.indexOf("@",(lat+1))!=-1){
			alert(errmsg);
			return false;
		}
		if (str.substring(lat-1,lat)=="." || str.substring(lat+1,lat+2)=="."){
			alert(errmsg);
			return false;
		}
		if (str.indexOf(".",(lat+2))==-1){
			alert(errmsg);
			return false;
		}
		if (str.indexOf(" ")!=-1){
			alert(errmsg);
			return false;
		}
	}
	return true
}
function CheckPhoneNumber(){
	var pn1 = document.getElementById("phonenumber1").value;
	var pn2 = document.getElementById("phonenumber2").value;
	var pn3 = document.getElementById("phonenumber3").value;
	return (IsInteger(pn1) && IsInteger(pn2) && IsInteger(pn3) && pn1.length == 3 && pn2.length == 3 && pn3.length == 4);
}
function IsInteger(value){
	var i;
	for (i = 0; i < value.length; i++){
		var c = value.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	return true;
}
function GetCheckboxValues(cb){
	var rc = "";
	for (var i=0; i < cb.length; i++){
		if (cb[i].checked){
			rc = rc + cb[i].value+ ",";
		}
	}
	return rc;
}

function ShowStatus(s){

	if (gotopage != "" && (s=="completed" || s=="updated")){
		location.href=gotopage;
	}else{
		if (s=="completed"){

			document.getElementById("Nav").style.display='none';
			document.getElementById("Nav2").style.display='none';
			document.getElementById("container").style.display='none';
			document.getElementById("star").style.display='none';
			document.getElementById("completed").style.display='block';
			document.getElementById("saveit").disabled=false;
			document.getElementById("saveit2").disabled=false;
			loggedin=true;
		}else if(s=="failed"){
			document.getElementById("Nav").style.display='none';
			document.getElementById("Nav2").style.display='none';
			document.getElementById("container").style.display='none';
			document.getElementById("star").style.display='none';
			document.getElementById("failed").style.display='block';
			document.getElementById("saveit").disabled=false;
			document.getElementById("saveit2").disabled=false;
		}else if(s=="updated"){
			document.getElementById("Nav").style.display='none';
			document.getElementById("Nav2").style.display='none';
			document.getElementById("container").style.display='none';
			document.getElementById("star").style.display='none';
			document.getElementById("updated").style.display='block';
			document.getElementById("saveit").disabled=false;
			document.getElementById("saveit2").disabled=false;
			loggedin=true;
		}else{
			document.getElementById("failed").style.display='none';
			document.getElementById("updated").style.display='none';
			document.getElementById("completed").style.display='none';
			document.getElementById("Nav").style.display='block';
			document.getElementById("Nav2").style.display='block';
			document.getElementById("container").style.display='block';
			document.getElementById("star").style.display='block';
			document.getElementById("saveit").disabled=false;
			document.getElementById("saveit2").disabled=false;
			document.getElementById("regpanel").style.display='block';

		}
		document.getElementById("loadingimg").style.display="none";
	}
}
