function refreshPage() {
	location.reload(true);
}
//
function errFunc(t) {
    alert('Error ' + t.status + ' -- ' + t.statusText);
    alert(t.responseText);
}

function writeError(sHeadline, sText) {
	Shadowbox.open({
		   player: 'html',
		   content: '<div class="cntError"><h1>'+sHeadline+'</h1><p>'+sText+' If the problem persits, please contact <a href="mailto:support@thefreshairechoice.com">support@thefreshairechoice.com</a></p></div>',
		   height:400,
		   width:500
	    });	
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/,"");
}

function switchImage(imgName, imgSrc) 
{
  if (document.images)
  {
    if (imgSrc != "none")
    {
      document.images[imgName].src = imgSrc;
    }
  }
}

function switchImageObj(oImg, imgSrc) {
	try {
		oImg.src = imgSrc;
	} catch (e) {
		//
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])?args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) { img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr) for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height)
{
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}
//
function showPrivacyPolicy() {
	popUpWindow("../../PrivacyPolicy.html", 0, 0, 740, 650);
}
//
function showTermsOfUse() {
	popUpWindow("../../PrivacyPolicy.html", 0, 0, 740, 650);
}
//
// SHADOWBOX SHARED FORMS
//
function showRegistration(sDestination) {
	if (sDestination != "palette") {
		Shadowbox.open({
			player: 'iframe',
			modal: false,
			content: 'ajax/SbRegistrationAjax.html?destination='+sDestination,
			height: 560,
			width: 770,
			title: '',
			options:{enableKeys:false, displayNav:true, onClose:refreshPage } });
	} else {
		Shadowbox.open({
			player: 'iframe',
			modal: false,
			content: 'ajax/SbRegistrationAjax.html?destination='+sDestination,
			height: 560,
			width: 770,
			title: '',
			options:{enableKeys:false, displayNav:true } });
	}
}
//
function validateRegistration() {
	$("cntFormError").style.display = "none";
	var bValid = true;
	var bError = false;
	var sRegFname,sRegLname,sRegEmail,sRegZip,sRegPassword,sRegPasswordConfirm,sRegTerms;
	try { sRegFname = $F("fldRegisterFirstName"); } catch(e) { bError = true; };
	try { sRegLname = $F("fldRegisterLastName"); } catch(e) { bError = true; };
	try { sRegEmail = $F("fldRegisterEmail"); } catch(e) { bError = true; };
	try { sRegZip = $F("fldRegisterZipCode"); } catch(e) { bError = true; };
	try { sRegPassword = $F("fldRegisterPassword"); } catch(e) { bError = true; };
	try { sRegPasswordConfirm = $F("fldRegisterPasswordConfirm"); } catch(e) { bError = true; };
	try { sRegTerms = $("fldRegisterTermsOfUse").checked; } catch(e) { bError = true; };
	if (!validate('t',true,sRegFname,'fldRegisterFirstName','lblRegisterFirstName')) { bValid = false; }
	if (!validate('t',true,sRegLname,'fldRegisterLastName','lblRegisterLastName')) { bValid = false; }
	if (!validate('e',true,sRegEmail,'fldRegisterEmail','lblRegisterEmail')) { bValid = false; }
	if (!validate('z',true,sRegZip,'fldRegisterZipCode','lblRegisterZipCode')) { bValid = false; }
	if (!validate('t',true,sRegPassword,'fldRegisterPassword','lblRegisterPassword')) { bValid = false; }
	if (!validateMatch('fldRegisterPassword','fldRegisterPasswordConfirm','lblRegisterPasswordConfirm')) { alert("The passwords you entered did not match. Please enter then again."); return false; }
	if (sRegTerms!=true) {
		$("cntFormError").innerHTML = "<p>You must agree to the terms of use agreement to become a member of our community.</p>";
		$("cntFormError").style.display ="block";
		return false;
	}
	//
	if (bError) {
		parent.writeError("An error has occurred.", "Please try again.");
	} else if (bValid) {
		saveRegistration();
	} else {
		$("cntFormError").innerHTML = "<p>Unable to submit your request.<br/>Please review the fields in red.</p>";
		$("cntFormError").style.display ="block";
	}
}
//
function saveRegistration() {
	var url = "../ajax/PutRegistrationAjax.html";
	var data="fName="+encodeURIComponent($F("fldRegisterFirstName"));
	data+="&lName="+encodeURIComponent($F("fldRegisterLastName"));
	data+="&email="+encodeURIComponent($F("fldRegisterEmail"));
	data+="&zip="+encodeURIComponent($F("fldRegisterZipCode"));
	data+="&pwd="+encodeURIComponent($F("fldRegisterPassword"));
	data+="&keep="+encodeURIComponent($("fldRegisterLoggedIn").checked);
	data+="&list="+encodeURIComponent($("fldRegisterSignUp").checked);
	data+="&r="+Math.random();
	var myAjax = new Ajax.Request(url,{asynchronous:true, method:'post',parameters:data, onSuccess:saveRegistrationSC, onFailure:errFunc});
}
//
function saveRegistrationSC(r) {
	// Handled Errors:
	// - - - - - - - - - - - - - - -
	// UserExists - If we try to create a new account and the email exists.
	//
	if (r.responseText.indexOf("success") > 0) {
		$("sbRegistration").style.display = 'none';
		$("cntSuccess").style.display = 'block';
		switch ($F("fldDestination").toLowerCase()) {
			case "inspiration":
				$("cntSuccess").innerHTML += "<p><a href=\"javascript:parent.saveAsInspiration('" + parent.document.getElementById('fldProjectID').value + "')\">Save this project as inspiration</a></p>";
				break;
			case "review":
				$("cntSuccess").innerHTML += "<p><a href=\"javascript:parent.showYourReview()\">Create your review</a></p>";
				break;
			case "myrooms":
				$("cntSuccess").innerHTML += "<p><a href=\"javascript:parent.goToMyRooms()\">View My Rooms</a></p>";
				break;
			case "palette":
				parent.saveNewUserPaletteData(r);
				break;
		}
	} else if (r.responseText.indexOf("UserExists") > 0) {
		$("cntFormError").innerHTML = "<p>A user with your email address is already registered.</p>";
		$("cntFormError").style.display ="block";
	} else {
		parent.writeError("An error has occurred when attempting to register. Please try again. If the problem persits, please contact support@thefreshairechoice.com");
	}
}
//
function validateLogin() {
	$("cntLoginError").style.display = "none";
	var bValid = true;
	var bError = false;
	var sLogin,sPassword,bKeep;
	try { sLogin = $F("fldLoginEmail"); } catch(e) { bError = true; };
	try { sPassword = $F("fldLoginPassword"); } catch(e) { bError = true; };
	if (!validate('e',true,sLogin,'fldLoginEmail','lblLoginEmail')) { bValid = false; }
	if (!validate('t',true,sPassword,'fldLoginPassword','lblLoginPassword')) { bValid = false; }
	//
	if (bError) {
		parent.writeError("An error has occurred.", "Please try again.");
	} else if (bValid) {
		saveLogin();
	} else {
		$("cntLoginError").innerHTML = "<p>Unable to submit your request.<br/>Please review the fields in red.</p>";
		$("cntLoginError").style.display ="block";
	}
}
//
function saveLogin() {
	var url = "../ajax/PutLoginAjax.html";
	var data="email="+encodeURIComponent($F("fldLoginEmail"));
	data+="&pwd="+encodeURIComponent($F("fldLoginPassword"));
	data+="&keep="+encodeURIComponent($("fldLoginKeep").checked);
	data+="&r="+Math.random();
	var myAjax = new Ajax.Request(url,{asynchronous:true, method:'post',parameters:data, onSuccess:saveLoginSC, onFailure:errFunc});
}
//
function saveLoginSC(r) {
	if (r.responseText.indexOf("success") > 0) {
		switch ($F("fldDestination").toLowerCase()) {
			case "inspiration":
				parent.saveAsInspiration(parent.document.getElementById('fldProjectID').value);
				break;
			case "review":
				parent.showYourReview();
				break;
			case "myrooms":
				parent.goToMyRooms();
				break;
			case "palette":
				parent.saveNewUserPaletteData(r);
				break;
			default:
				parent.refreshPage();
				break;
		}
		
		
	} else {
		if (r.responseText.indexOf("InvalidLogin") >= 0) {
			$("cntLoginError").innerHTML = "<p>The login information you provided is not valid. Please try again.</p>";
			$("cntLoginError").style.display ="block";
		} else {
			parent.writeError("An error has occurred when attempting to login.", "Please try again.");
		}
	}
}
//
function showForgotPassword() {
	$("sbRegistration").style.display = 'none';
	$("cntSuccess").style.display = 'none';
	$("cntSuccessForgot").style.display = 'none';
	$("sbForgotPassword").style.display = 'block';
}
//
function validateForgotPassword() {
	var bValid = true;
	var bError = false;
	var sLogin;
	try { sLogin = $F("fldForgotEmail"); } catch(e) { bError = true; };
	if (!validate('e',true,sLogin,'fldForgotEmail','lblForgotEmail')) { bValid = false; }
	//
	if (bError) {
		parent.writeError("An error has occurred.", "Please try again.");
	} else if (bValid) {
		saveForgotPassword();
	} else {
		$("cntForgotError").innerHTML = "<p>Unable to submit your request. Please review the fields in red.</p>";
		$("cntForgotError").style.display ="block";
	}
}
//
function saveForgotPassword() {
	var url = "../ajax/PutForgotPasswordAjax.html";
	var data="email="+encodeURIComponent($F("fldForgotEmail"));
	data+="&r="+Math.random();
	var myAjax = new Ajax.Request(url,{asynchronous:true, method:'post',parameters:data, onSuccess:saveForgotPasswordSC, onFailure:errFunc});
}
//
function saveForgotPasswordSC(r) {
	if (r.responseText.indexOf("success") > 0) {
		$("sbRegistration").style.display = 'none';
		$("cntSuccess").style.display = 'none';
		$("sbForgotPassword").style.display = 'none';
		$("cntSuccessForgot").style.display = 'block';
	} else {
		if (r.responseText.indexOf("InvalidLogin") >= 0) {
			$("cntForgotError").innerHTML = "<p>No account was found using the provided email address. Please try again.</p>";
			$("cntForgotError").style.display ="block";
		} else {
			parent.writeError("An error has occurred when attempting to retrieve your password.", "Please try again.");
		}
	}
}
