// <![CDATA[
function submitCoupon(couponForm)
{
    trimFormElements(couponForm);
    if (isNotEmpty(couponForm.submit_code_name.value) && isNotEmpty(couponForm.submit_code_code.value)) {
        var url = "/submit_coupons.php?aa=submitCode" + "&submit_code_name=" + couponForm.submit_code_name.value + "&submit_code_code=" + couponForm.submit_code_code.value + "&submit_code_description=" + couponForm.submit_code_description.value+ "&submit_code_url=" + couponForm.submit_code_url.value+ "&submit_code_expiration=" + couponForm.submit_code_expiration.value;
		$.post(url,function(data){
  //alert(data);
			if (stristr(data,'err')) {
		document.getElementById("submit_code_message").innerHTML=getAuthError("-4");
			}  else if (stristr(data,'ok')) {
		document.getElementById("submit_code_message").innerHTML="Voucher/coupon was successfully added to our database!";
			}
});
    } else {
		alert('Please fill in the fields.');
    }
}

function saveAgency(progid,userid,type,agency,category,product,price,img,destination)
{
	 thediv=".saveddiv-"+progid

    if (isNotEmpty(progid) && isNotEmpty(userid)) {
        var url = "/user/?aa=saveagenzy" + "&id=" + userid + "&program=" + progid +"&rowtype="+type+"&agency="+agency+"&category="+category+"&product="+product+"&price="+price+"&img="+img+"&destination="+escape(destination);
		$.post(url,function(data){
//  alert(data);
		//	$(thediv).fadeIn(500, function() {
		//		setTimeout('$(thediv).fadeOut(300)',500);}
		//		);
		if (stristr(data,'ok')) {

			if (type=='1')
			{
			progidtosave=progid;
			$.cookie("progidtosave",progidtosave, { expires: 1, path: '/', domain: COOKIE_HOST_URL, secure: false });
			$("#totalagencies").html(parseInt($("#totalagencies").html())+1);
			$("#totalagencies").effect("highlight", {}, 1000);
			} else if (type=='2'||type=='3')
			{
			$("#totalproducts").html(parseInt($("#totalproducts").html())+1);
			$("#totalproducts").effect("highlight", {}, 1000);
			}

		}
});
    } else {
		if (!userid)
		{
		//	showPopupRegister();
		loadPopup();
		return false;
		} else {
		alert('Please fill in the fields.');
		}
    }
}

function delAgency(progid,userid,type,wrapid)
{
	if (type=='1')
	{
	 thediv="#gridwrap-"+progid
	}else{
	thediv="#gridwrap-"+wrapid
	}
    if (isNotEmpty(progid) && isNotEmpty(userid)) {
        var url = "/user/?aa=delagenzy" + "&id=" + userid + "&program=" + progid+ "&type=" + type+ "&wrapid=" + wrapid ;
		$.post(url,function(data){
			$(thediv).hide(1000);
});
    } else {
		if (!userid)
		{
			showPopupRegister();
		} else {
		alert('Please fill in the fields.');
		}
    }
}

function populateUsername(email,type)
{
    if(isValidEmail(email)){
        var suggestedUsername = email.substring(0,email.indexOf('@'));
		if (type==1) {
        var joinUser = document.getElementById("joinUser").value;
        if(suggestedUsername.length <= 14 && (undefined==joinUser||null==joinUser||joinUser==''))
            document.getElementById("joinUser").value=suggestedUsername;
		}
    }
if (type==0)	return suggestedUsername;
}


function showPopupRegister()
{
    var rand_no = Math.random();    rand_no = rand_no*10000;    rand_no = Math.ceil(rand_no );
    
    closePanel('authPopup','authPopupHide');showPanel('joinPopup','authPopupShow');
    document.joinForm.email.focus();
	var name = "#joinPopup";
	var menuYloc = null;
			$(window).scroll(function () { 
				offset = menuYloc+$(document).scrollTop()+100+"px";
				$(name).css("top",offset);
			});
    return false; 
}

function showPopupRegisterThanks(){ 
	closePanel('joinPopup','authPopupHide');showPanel('joinThanksPopup','authPopupShow');
	var name = "#joinThanksPopup";
	var menuYloc = null;
			$(window).scroll(function () { 
				offset = menuYloc+$(document).scrollTop()+100+"px";
				$(name).css("top",offset);
			});

			window.scrollTo(0,0);return false; 
}


function showPopupLogin(){ 
	var progidtosave=$.cookie("progidtosave");
	closePanel('joinPopup','authPopupHide');showPanel('authPopup','authPopupShow');
	document.loginForm.login.focus();window.scrollTo(0,0);
	var name = "#authPopup";
	var menuYloc = null;
			$(window).scroll(function () { 
				offset = menuYloc+$(document).scrollTop()+100+"px";
				$(name).css("top",offset);
			});

return false;
}
function showPopupLostPassword() { closePanel('authPopup','authPopupHide');showPanel('lostPasswordPopup','authPopupShow');document.lostPasswordForm.lostPasswordEmail.focus();return false; }
function showPopupChangeMktg() { showPanel('changeMktgPopup','authPopupShow');window.scrollTo(0,0);return false; }
function showPopupChangeEmail() { showPanel('changeEmailPopup','authPopupShow');document.changeEmailForm.newEmail.focus();return false; }
function showPopupChangePwd() { showPanel('changePasswordPopup','authPopupShow');document.changePasswordForm.oldPass.focus();return false; }
function showPopupChangeUser() { showPanel('changeUserPopup','authPopupShow');document.changeUserForm.newUser.innerHTML=populateUsername(document.changeUserForm.memberName.value,1);document.changeUserForm.newUser.focus();return false; }
function showFlaggingPanel(target) {
    var panelElement = document.getElementById(target);
    if (panelElement.className == 'panelShow') {
        panelElement.className='panelHide';
    } else {
        panelElement.className='panelShow';
    }
}

function closePanel(target,cssHide) {
    $('.authPopupShow').css( { top: '75px' });
    document.getElementById(target).className=cssHide;
    document.getElementById("overlay").className="hiddenBG";
	if (target=="ratingPopup")
	{
		$('#container-1 > ul').tabs('load',0);
	}
}

function showPanel(target,cssShow)
{
    document.getElementById(target).className=cssShow;
    document.getElementById("overlay").className="greyedOutBG";
    var docheight = $(document).height();
    var docwidth = $(document).width();
    document.getElementById("overlay").style.width= docwidth + 'px';
    document.getElementById("overlay").style.height= docheight + 'px';
}

function resetPanel(formId) {
    document.getElementById(formId).reset();
    var errorArray = document.getElementsByClassNameWithinId('invalidMsg',formId);
    for (var i=0; i<errorArray.length; i++){
        errorArray[i].innerHTML = '';
    }
    var inputErrorArray = document.getElementsByClassNameWithinId('invalid',formId);
    for (var j=0; j<inputErrorArray.length; j++){
        inputErrorArray[j].className = 'normal';
    }
}

function closeAndResetPanel(formId,target){
    resetPanel(formId);
    closePanel(target,'authPopupHide');
}

function toggleInputTag(fieldElement,errmsgElement,errorCode,isValid)
{
    if (isValid) {
        resetInputTag(fieldElement,errmsgElement);
        return true;
    } else {
        if (fieldElement != undefined) fieldElement.className = "invalid";
        if (errmsgElement != undefined) document.getElementById(errmsgElement).innerHTML = getAuthError(errorCode);
        return false;
    }
}

function resetInputTag(fieldElement,errmsgElement)
{
    if (fieldElement != undefined) fieldElement.className = "normal";
    if (errmsgElement != undefined) document.getElementById(errmsgElement).innerHTML="";
}
document.getElementsByClassNameWithinId = function(clsName, parentId, tagName){
    if (undefined == tagName || null == tagName || tagName == '') tagName = '*';
    var retVal = new Array();
    var elements = document.getElementById(parentId).getElementsByTagName(tagName);
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}
function isAuthenticated(errorMsg){return((errorMsg=="AUTH_REQUIRED" || errorMsg=="TOKENEXP")?false : true);}
function isValidToken(errorMsg){return((errorMsg=="TOKENEXP")?false : true);}
function hideRegisterLink(){document.getElementById("registerLink").innerHTML="";}
function enterSubmit(ev,funcPointer){var e=ev||window.event;var unicode=e.keyCode?e.keyCode : e.which?e.which : e.charCode;if(unicode==13){funcPointer();}}
function loginSubmit(){$("#loading-login1").show();loginRequest(document.loginForm);window.scrollTo(0,0);}
function commentSubmit(){$("#loading-comment").show();$("#commentsMsg2").show();$("#commentTable").hide();commentsRequest(document.commentsForm);window.scrollTo(0,0);}
function regSubmit(){registrationRequest(document.joinForm);window.scrollTo(0,0);}
function lostPwdSubmit(){$("#loading-login2").show();lostPasswordRequest(document.lostPasswordForm);window.scrollTo(0,0);}
 function noenter() { return !(window.event && window.event.keyCode == 13); }
function loginResponse(request)
{
    var doc =  parseJSON(request.responseText);
    if (doc != undefined && doc.response_code == "1") {
        if (null != authFollowUpFunc) {
            authFollowUpFunc();
        } else {
            // reload the page so the cookies will be set
            window.location.reload(true);
        }
    } else {
      if (doc != undefined && doc.errors != undefined) {
        for(var i=0; i<doc.errors.length; i++) {
            var error = doc.errors[i];
            if (error.code == "-6" || error.code == "-2") {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-2");
            } else {
                document.getElementById("loginErrMsg").innerHTML=error.propertymessage;
            }
        }
      } else {
        document.getElementById("loginErrMsg").innerHTML=getAuthError("svcDown");
      }        
    }
}

function commentsClosePopup()
{
$("#loading-comment").hide();
$("#commentTable").show();
$("#commentsMsg2").hide();
$("#commentsFormBox").show();
$("#commentsFormSuccess").hide();
closePanel('commentsPopup','authPopupHide');
$('#container-1 > ul').tabs('load',0);
return false;
}
function commentsRequest(commentsForm)
{
				$("#loading-comment").show();
				$("#commentsMsg2").show();
    trimFormElements(commentsForm);
    document.getElementById("commentsErrMsg").innerHTML="";
    var sid=$("#reviewId").val();
    if (isNotEmpty(commentsForm.comment.value)) {
        var url = "/submit_reviews?add_com=add_com&sid="+sid + "&comment=" + nl2br(commentsForm.comment.value);
		$.post(url,function(data){
 // alert(data);
			if (stristr(data,'err')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-2");
				$("#loading-comment").hide();
				$("#commentTable").show();
				$("#commentsMsg2").hide();

			} else if (stristr(data,'err2')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-3");
				$("#loading-comment").hide();
				$("#commentTable").show();
				$("#commentsMsg2").hide();
			} else if (stristr(data,'ok')) {
  //         window.location.reload(true);
			setTimeout('$("#commentsFormBox").hide()',1000);
			setTimeout('$("#commentsFormSuccess").show()',1001);
			}
});
    } else {
        document.getElementById("commentsErrMsg").innerHTML=getAuthError("-2210");
 				$("#loading-comment").hide();
				$("#commentTable").show();
				$("#commentsMsg2").hide();
   }
}

function loginRequest(loginForm)
{
	var progidtosave=$.cookie("progidtosave");
    trimFormElements(loginForm);
    document.getElementById("loginErrMsg").innerHTML="";

    if (isNotEmpty(loginForm.loginUser.value) && isNotEmpty(loginForm.loginPwd.value)) {
        var shapwd = SHA256(loginForm.loginPwd.value);
        var url = "/user/login?" + "email=" + loginForm.loginUser.value + "&password=" + loginForm.loginPwd.value + "&persist=" + loginForm.persistUser.checked;
		$.post(url,function(data){
			if (stristr(data,'err')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-2");
				$("#loading-login1").hide();
			} else if (stristr(data,'err2')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-3");
				$("#loading-login1").hide();
			} else if (stristr(data,'ok')) {
 //alert(data);
var data2=explode(" ",data);
userid=data2[2];
//           document.location.href="/member/"+loginForm.loginUser.value;
			//alert(progidtosave+' '+userid);
	if (isNotEmpty(progidtosave) && isNotEmpty(userid) )
	{
		saveAgency(progidtosave,userid,1);
	}		
			$('#loading-login1').hide();
			$('#accept-login1').show();
			setTimeout("document.location.reload();",1000);
			}
});
    } else {
		if ($('#authPopup:hidden'))
		{
		showPanel('authPopup','authPopupShow');
		}


        document.getElementById("loginErrMsg").innerHTML=getAuthError("-2210");
 		$("#loading-login1").hide();
   }
}


function loginRequestLeft(loginForm)
{
    trimFormElements(loginForm);
    document.getElementById("loginErrMsg").innerHTML="";

    if (isNotEmpty(loginForm.loginUserLeft.value) && isNotEmpty(loginForm.loginPwdLeft.value)) {
		var leftUser=loginForm.loginUserLeft.value;
		var leftPwd=loginForm.loginPwdLeft.value;
        var url = "/user/login?" + "email=" + leftUser + "&password=" + leftPwd;
		if ($('#authPopup:hidden'))
		{
		showPanel('authPopup','authPopupShow');
		}
		$("#loading-login1").show();
		$('#loginUser').val(leftUser);
		$('#loginPwd').val(leftUser);
		$.post(url,function(data){
//			alert(data);
			if (stristr(data,'err')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-2");
				$("#loading-login1").hide();
			} else if (stristr(data,'err2')) {
                document.getElementById("loginErrMsg").innerHTML=getAuthError("-3");
				$("#loading-login1").hide();
			} else if (stristr(data,'ok')) {
				if ($('#authPopup:hidden'))
				{
				showPanel('authPopup','authPopupShow');
				}
//           document.location.href="/member/"+loginForm.loginUser.value;
			$('#loading-login1').hide();
			$('#accept-login1').show();
			setTimeout("document.location.reload();",1000);
			}
});
    } else {
		if ($('#authPopup:hidden'))
		{
		showPanel('authPopup','authPopupShow');
		}
        document.getElementById("loginErrMsg").innerHTML=getAuthError("-2210");
 		$("#loading-login1").hide();
   }
}


function cnt(w,x){
var y=w.value;
var r = 0;
a=y.replace(/\s/g,' ');
a=a.split(' ');
for (z=0; z<a.length; z++) {if (a[z].length > 0) r++;}
x.value=r;

if (r<50) {
$("#review-img").html("<img src='/images/review-x.png' width='25'>");
//alert("small");
} else {
$("#review-img").html("<img src='/images/v.png' width='25'>");
//alert("ok!");
}
} 
function submitReview(submit_review)
{
    var isValid = true;
    var overall;
	var goods_cost;
	var delivery;
	var customer_service;
	var website_quality;
	var money_value;
    var confirmOwn;
    var recommend;
    var review_text;
    var sid=$("#sid").val();
	var name = "#reviewPopup";
	var menuYloc = null;
	var scrolltowin;
	
	if (submit_review.confirm_own_work.checked == true) { confirmOwn = "1" } else { confirmOwn = "0" };
    
    if (isNotEmpty($("input[name=overall]:checked").val())) {
		resetInputTag($("input[name=overall]:checked").val(), "overallErrMsg") ;
		overall=$("input[name=overall]:checked").val();
	} else {
        isValid = (toggleInputTag($("input[name=overall]:checked").val(), "overallErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#wrap-ratings";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
   }
    if (isNotEmpty(submit_review.goods_cost.value)) {
   		resetInputTag($("#goods_cost"), "goods_costErrMsg") ;
		goods_cost=submit_review.goods_cost.value;
    } else {
        isValid = (toggleInputTag(submit_review.goods_cost,"goods_costErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#star-rating-overall";
 	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
   }
    if (isNotEmpty($("#delivery :selected").val())) {
  		resetInputTag($("#delivery :selected").val(), "deliveryErrMsg") ;
		delivery=$("#delivery :selected").val();
    } else {
        isValid = (toggleInputTag(submit_review.delivery, "deliveryErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#goods_cost";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
    }
    if (isNotEmpty($("input[name=customer_service]:checked").val())) {
 		resetInputTag($("input[name=customer_service]:checked").val(), "customer_serviceErrMsg") ;
		customer_service=$("input[name=customer_service]:checked").val();
    } else {
        isValid = (toggleInputTag(submit_review.customer_service, "customer_serviceErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#delivery";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
    }
    if (isNotEmpty($("input[name=website_quality]:checked").val())) {
 		resetInputTag($("input[name=website_quality]:checked").val(), "website_qualityErrMsg") ;
		website_quality=$("input[name=website_quality]:checked").val();
    } else {
        isValid = (toggleInputTag(submit_review.website_quality, "website_qualityErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#customer_services";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
    }
    if (isNotEmpty($("input[name=money_value]:checked").val())) {
		resetInputTag($("input[name=money_value]:checked").val(), "money_valueErrMsg") ;
		 money_value=$("input[name=money_value]:checked").val();
    } else {
        isValid = (toggleInputTag(submit_review.money_value, "money_valueErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#website_qualitys";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
    }
    if (isNotEmpty($("input[name=recommend]:checked").val())) {
		resetInputTag($("input[name=recommend]:checked").val(), "recommendErrMsg") ;
		 recommend=$("input[name=recommend]:checked").val();
    } else {
        isValid = (toggleInputTag(submit_review.recommend, "recommendErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#money_values";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
    }
    if (isNotEmpty(submit_review.review_text.value)) {
		var words=submit_review.c.value;
		if (words<50) {
        isValid = (toggleInputTag(submit_review.review_text, "review_textErrMsg","reqd50", false  )) ? isValid : false ;
		scrolltowin="#recommends";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
		}
   		resetInputTag($("#review_text"), "review_textErrMsg") ;
		 review_text=submit_review.review_text.value;
    } else {
        isValid = (toggleInputTag(submit_review.review_text, "review_textErrMsg","reqd", false  )) ? isValid : false ;
		scrolltowin="#recommends";
	 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
		return false;
   }
    if (isValid) {
				offset = menuYloc+$(document).scrollTop()+100+"px";
				$(name).css("top",offset);
			$(window).scroll(function () { 
				offset = menuYloc+$(document).scrollTop()+100+"px";
				$(name).css("top",offset);
			});
	showPanel('reviewPopup','authPopupShow');
        var url = "/submit_reviews?add_rev=add_rev&sid="+sid + "&overall=" + overall + "&goods_cost=" + goods_cost+"&delivery=" + delivery+"&customer_service=" + customer_service+"&website_quality=" + website_quality+"&money_value=" + money_value+"&recommend=" + recommend+"&review_text=" + nl2br(review_text)+"&confirmOwn=" + confirmOwn;
		$.post(url,function(data){
		//alert(data);
			if (stristr(data,'err1')) {
                document.getElementById("joinErrMsg").innerHTML=getAuthError("-113");
			//	Recaptcha.reload();
			} else if (stristr(data,'err')) {
                document.getElementById("joinErrMsg").innerHTML=getAuthError("-90");
			} else if (stristr(data,'ok')) {
			setTimeout('document.getElementById("reviewFormBox").className = "contentHide"',1000);
			setTimeout('document.getElementById("reviewFormSuccess").className = "contentShow"',1001);
			}
});

    } else {
// 	$.scrollTo('#'+scrolltowin,800,{duration:1000});
   }
}




function registrationRequest(joinForm)
{
    trimFormElements(joinForm);
    var isValid = true;
    var joinEmailList;
 
    if (joinForm.joinEmailList.checked == true) { joinEmailList = "1" } else { joinEmailList = "0" };
    
    if (isNotEmpty(joinForm.joinEmail.value)) {
        isValid = (toggleInputTag(joinForm.joinEmail, "joinEmailErrMsg","-2160", isValidEmail(joinForm.joinEmail.value) )) ? isValid : false ;
    } else {
        isValid = (toggleInputTag(joinForm.joinEmail, "joinEmailErrMsg","reqd", false  )) ? isValid : false ;
    }
    if (isNotEmpty(joinForm.joinUser.value)) {
        isValid = (toggleInputTag(joinForm.joinUser,"joinUserErrMsg","-2150",isValidUsername(joinForm.joinUser.value))) ? isValid : false ;
    } else {
        isValid = (toggleInputTag(joinForm.joinUser,"joinUserErrMsg","reqd", false  )) ? isValid : false ;
    }
    if (isNotEmpty(joinForm.joinPwd.value)) {
        isValid = (toggleInputTag(joinForm.joinPwd, "joinPwdErrMsg","-2200",isValidPassword(joinForm.joinPwd.value, joinForm.joinUser.value) )) ? isValid : false ;
    } else {
        isValid = (toggleInputTag(joinForm.joinPwd, "joinPwdErrMsg","reqd", false  )) ? isValid : false ;
    }
    if (isNotEmpty(joinForm.verifyPwd.value)) {
        isValid = (toggleInputTag(joinForm.verifyPwd, "verifyPwdErrMsg","-114", isValidVerifyPassword(joinForm.joinPwd.value,joinForm.verifyPwd.value) )) ? isValid : false ;
    } else {
        isValid = (toggleInputTag(joinForm.verifyPwd, "verifyPwdErrMsg","reqd", false  )) ? isValid : false ;
    }

    if (isValid) {
        var shapwd = SHA256(joinForm.joinPwd.value);
        //alert ("Hashed passwd = " + shapwd);
        var url = "/user/registration?" + "email=" + joinForm.joinEmail.value + "&username=" + joinForm.joinUser.value + "&password=" + joinForm.joinPwd.value + "&cid2="  + joinForm.reviewSubmit.value + "&joinEmailList=" + joinEmailList;
		$.post(url,function(data){
//  //alert(data);
			if (stristr(data,'err1')) {
                document.getElementById("joinErrMsg").innerHTML=getAuthError("-113");
				Recaptcha.reload();
			} else if (stristr(data,'err')) {
                document.getElementById("joinErrMsg").innerHTML=getAuthError("-90");
			} else if (stristr(data,'ok')) {
				showPopupRegisterThanks();
				document.getElementById("joinThanksEmail").innerHTML=document.joinForm.joinEmail.value;
			}
});

    } else {
        // clear out password and captcha fields so user can re-enter them
        joinForm.joinPwd.value = '';
        joinForm.verifyPwd.value = ''; 
    }
}



function registrationRequestEmail(email)
{

if (email=='Email address'||email=='')
{
		loadPopup();
} else {
    if (isValidEmail(email)) {
		var userip = $('#user_ip').val();
	//	alert(userip);
		var url = "/user/registration?aa=shortReg" + "&email=" + email+ "&username=" + populateUsername(email,0)+"&userip="+userip;
		$.post(url,function(data){
//alert(data);
			 if (stristr(data,'err')) {
				 showPopupRegister();
                document.getElementById("joinErrMsg").innerHTML=getAuthError("-90");
			} else if (stristr(data,'ok')) {


				showPopupRegisterThanks();
				document.getElementById("joinThanksEmail").innerHTML=email;
			}
});
	} else {

		//showPopupRegister();
		if ($("#popupContact:visible"))
		{
		showPopupRegister();
        document.getElementById("joinErrMsg").innerHTML=getAuthError("-2160");
		}else{
		loadPopup();
		}
	}

}
}




function logOutResponse(request)
{
    /*redirect to homepage if user signs out, regardless of the page they are on*/
    window.location = "/";
}

function logOutRequest()
{
  /* Check whether User is on Write Review or Reviw Edit Page */
  if ((window.location.href != null) &&
      ((window.location.href.indexOf("/PER-") != -1) || (window.location.href.indexOf("/WR-") != -1) || ((window.location.href.indexOf("/WRWL") != -1) && (document.submit_review != null)) )){
      var answer = confirm("Are you sure you want to navigate away from this page?\nYou will lose any unsaved work.");
      if (answer){
         continueLogOutResquest();
      }
   } else{
      continueLogOutResquest();
   }
}

function continueLogOutResquest()
{
   var url = "/logout";
}

function lostPasswordRequest(lostPasswordForm)
{
    var isValid = (toggleInputTag(lostPasswordForm.lostPasswordEmail, "lostPasswordErrMsg","-2160", isValidEmail(lostPasswordForm.lostPasswordEmail.value) )) ? true : false ;
    if (isValid) {
        var url = "/user/lostPassword?" + "email=" + lostPasswordForm.lostPasswordEmail.value;
		$.post(url,function(data){
		  //alert(data);
			if (stristr(data,'err')) {
                document.getElementById("lostPasswordErrMsg").innerHTML=getAuthError("-110");
				$("#loading-login2").hide();
			} else if (stristr(data,'ok')) {
        document.getElementById("lostPasswordFormSuccess").className = "contentShow";
        document.getElementById("lostPasswordFormBox").className = "contentHide";
				$("#loading-login2").hide();
			}
		});
    } else {
						$("#loading-login2").hide();
	}
}


function hideConfirmMessage(panelName) {
    document.getElementById(panelName + "FormSuccess").className = "contentHide";
    document.getElementById(panelName + "FormBox").className = "contentShow";
}

function resendLostPasswordRequest()
{
        var url = "/user/lostPassword?" + "email=" + document.lostPasswordForm.lostPasswordEmail.value;
		$.post(url,function(data){
		  //alert(data);
		 if (stristr(data,'ok')) {
        document.getElementById("lostPwdEmailMsg").className = "contentShow";
			}
		});
}


function resendActivationEmailRequest()
{
		email=document.getElementById('regemail').value;
		if (!isValidEmail(email))
		{
		email=document.getElementById('regemailpop').value;
		}
		if (!isValidEmail(email))
		{
		email=document.joinForm.joinEmail.value;
		}
		if (isValidEmail(email))
	{
        var url = "/user/registration?aa=resendActivation" + "&email=" + email;
		$.post(url,function(data){
  //alert(data);
 if (stristr(data,'ok')) {
        document.getElementById("activationEmailMsg2").className = "contentShow";
        document.getElementById("activationEmailMsg").className = "contentShow";
			}
});
	} else {
		//alert('error');
	}
}


var authFollowUpFunc = null;
var isAuthFollowUp = false;
var strCompareAlphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

function parseJSON(json){ try { if(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(json)){ var j = eval('(' + json + ')'); return j; } }catch(e){ throw new SyntaxError("parseJSON"); } }
function trimString(str) { return str.replace(/^\s+/, '').replace(/\s+$/, ''); }
function trimFormElements(myForm) { for(i=0; i < myForm.elements.length; i++) {	myForm.elements[i].value = trimString(myForm.elements[i].value); } return; }
function isNotEmpty(value) { return (undefined != value && value != '' && null != value) ? true : false; }
function isAlphaNumeric(str){ return isStringMatch(str,strCompareAlphaNumeric);}
function isStringMatch(strData,strCompare){var bFlag=true;var iDataLen=strData.length;if(iDataLen>0){for(var iCount=0;iCount<iDataLen;iCount++){var cData=strData.charAt(iCount);if(strCompare.indexOf(cData)<0){return false;}}return true;}else{return false;}}

function isValidUsername(user){var strCompare=strCompareAlphaNumeric+".-_";return((user.length>=4&&user.length<=14&&isStringMatch(user,strCompare))?true : false);}
function isValidPassword(pwd, user) {
    var strCompare=strCompareAlphaNumeric+".-_";
    return( pwd != user &&
            pwd.length >=7 &&
            pwd.length<=64 );}
function isValidVerifyPassword(pwd, verifypwd) { return (pwd == verifypwd); }
function isValidEmail(email) { var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; return re.test(email); }
function getAuthError(errorCode) {
var errMsg;
switch (errorCode) {
case "reqd": errMsg = 'Please enter a value for this field.'; break;
case "reqd50": errMsg = 'Please enter atleast 50 words for this text field.'; break;
case "svcDown": errMsg = 'The service is temporarily unavailable. Please try again later.'; break;
case "-2": errMsg = 'You have entered an invalid username/password. Please try again.'; break;
case "-3": errMsg = 'This account has not been confirmed and activated yet. Please <a href="#" onclick="resendActivationEmailRequest(document.loginForm.loginUser.value); return false;"><strong>Click here</strong></a> to resend activation email.'; break;
case "-4": errMsg = 'There was an error with the voucher information. Please check for errors and try again.'; break;
case "-90": errMsg = '<font style="font-color:#f00;">This email address is already registered. Please <a href="javascript:void(0)" rel="nofollow" onclick="showPopupLogin();" class="surveyLink">click here</a> to Sign In.</font>'; break;
case "-91": errMsg = 'This email address is already registered in the system. Please enter a different email address.'; break;
case "-110": errMsg = 'We could not find a user with that email address.'; break;
case "-111": errMsg = 'The current password entered does not match the password in the database. <br/>Please enter the correct password again.'; break;
case "-113": errMsg = 'Verification code does not match the image.'; break;
case "-114": errMsg = 'The passwords do not match.'; break;
case "-115": errMsg = 'The emails do not match.'; break;
case "-2150": errMsg = 'Please enter a valid username.'; break;
case "-2160": errMsg = 'Please enter a valid email address.'; break;
case "-2200": errMsg = 'Please enter a valid password.'; break;
case "-2210": errMsg = 'Please fill in all required fields.'; break;
case "-2800": errMsg = '<br/>Please select a reason for flagging this review.'; break;
case "-2810": errMsg = '<br/>Please enter a comment.'; break;
case "-2820": errMsg = 'Please login to enter feedback.'; break;
case "-2830": errMsg = '<br/>Please limit your comments to 1000 characters.'; break;
default:	errMsg = 'An error occurred. Please try again later.';
}
return errMsg;
}
function SHA256(s){
 
	var chrsz   = 8;
	var hexcase = 0;
 
	function safe_add (x, y) {
		var lsw = (x & 0xFFFF) + (y & 0xFFFF);
		var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
		return (msw << 16) | (lsw & 0xFFFF);
	}
 
	function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }
	function R (X, n) { return ( X >>> n ); }
	function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }
	function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }
	function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }
	function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }
	function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }
	function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }
 
	function core_sha256 (m, l) {
		var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);
		var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);
		var W = new Array(64);
		var a, b, c, d, e, f, g, h, i, j;
		var T1, T2;
 
		m[l >> 5] |= 0x80 << (24 - l % 32);
		m[((l + 64 >> 9) << 4) + 15] = l;
 
		for ( var i = 0; i<m.length; i+=16 ) {
			a = HASH[0];
			b = HASH[1];
			c = HASH[2];
			d = HASH[3];
			e = HASH[4];
			f = HASH[5];
			g = HASH[6];
			h = HASH[7];
 
			for ( var j = 0; j<64; j++) {
				if (j < 16) W[j] = m[j + i];
				else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);
 
				T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);
				T2 = safe_add(Sigma0256(a), Maj(a, b, c));
 
				h = g;
				g = f;
				f = e;
				e = safe_add(d, T1);
				d = c;
				c = b;
				b = a;
				a = safe_add(T1, T2);
			}
 
			HASH[0] = safe_add(a, HASH[0]);
			HASH[1] = safe_add(b, HASH[1]);
			HASH[2] = safe_add(c, HASH[2]);
			HASH[3] = safe_add(d, HASH[3]);
			HASH[4] = safe_add(e, HASH[4]);
			HASH[5] = safe_add(f, HASH[5]);
			HASH[6] = safe_add(g, HASH[6]);
			HASH[7] = safe_add(h, HASH[7]);
		}
		return HASH;
	}
 
	function str2binb (str) {
		var bin = Array();
		var mask = (1 << chrsz) - 1;
		for(var i = 0; i < str.length * chrsz; i += chrsz) {
			bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);
		}
		return bin;
	}
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	}
 
	function binb2hex (binarray) {
		var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
		var str = "";
		for(var i = 0; i < binarray.length * 4; i++) {
			str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
			hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8  )) & 0xF);
		}
		return str;
	}
 
	s = Utf8Encode(s);
	return binb2hex(core_sha256(str2binb(s), s.length * chrsz));

}
// ]]>

