function CheckProductEmail() {
    var sMsg = '';
    if (document.getElementById("txtYourEmail").value == '') { sMsg = sMsg + 'Please enter your email address.\n'; }
    if (document.getElementById("txtFriendsName").value == '') { sMsg = sMsg + 'Please enter your friends name.\n'; }
    if (document.getElementById("txtFriendsEmail").value == '') { sMsg = sMsg + 'Please enter your friends email address.\n'; }
    if (document.getElementById("txtMessage").value == '') { sMsg = sMsg + 'Please enter your message.\n'; }
    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

function CheckProductReview() {
    var sMsg = '';
    if (document.getElementById("txtName").value == '') { sMsg = sMsg + 'Please enter your name.\n'; }
    if (isValidEmail(document.getElementById("txtEmail").value) == false) { sMsg = sMsg + 'Please enter a valid Email address.\n'; }
    if (document.getElementById("txtComment").value == '') { sMsg = sMsg + 'Please enter your message.\n'; }
    if (document.getElementById("txtCaptcha").value == '') { sMsg = sMsg + 'Please enter the code in the box.\n'; }
    if (document.getElementById("cboRating").value == '') { sMsg = sMsg + 'Please select a rating.\n'; }
    if (document.getElementById("txtCaptcha").value != 'A8EFG3') { sMsg = sMsg + 'Please enter the correct code in the box. Please note this is case sensitive\n'; }
    if (sMsg == '') { return true; } else { alert(sMsg); return false; }
}

/*--------------------------------------------------------------------------------------------*/
/*Tabs (Description | Colours | Technical Spec*/
function hidetabs(){
	document.getElementById("colours").style.display='none';
	document.getElementById("proddescription").style.display='none';
	document.getElementById("accessories").style.display='none';
	document.getElementById("techspec").style.display='none';	
	document.getElementById("tab_colours").className = '';
	document.getElementById("tab_description").className = '';
	document.getElementById("tab_accessories").className = '';
	document.getElementById("tab_techspec").className = '';
}

function SaveDetails() {
    var sMsg = "";
    if (document.getElementById("txtcaptcha").value != 'AR97CT') {sMsg = sMsg + 'Please fill in the capture text.\n';}
    if (document.getElementById("CustomerName").value == '') {sMsg = sMsg + 'Please enter your name.\n';}
    if (document.getElementById("CustomerEmail").value == '') {sMsg = sMsg + 'Please enter your email.\n';}
    if (sMsg == ''){
        try {
            document.getElementById("frmData").submit();
        } catch (e) { }
        return true;

    } else {

         alert(sMsg); return false;
      }
}

function colours(){
	document.getElementById("colours").style.display='';
	document.getElementById("tab_colours").className = 'selected';
}

function description(){
	document.getElementById("proddescription").style.display='';
	document.getElementById("tab_description").className = 'selected';
}

function accessories(){
	document.getElementById("accessories").style.display='';
	document.getElementById("tab_accessories").className = 'selected';
}

function techspec(){
	document.getElementById("techspec").style.display='';
	document.getElementById("tab_techspec").className = 'selected';
}

/*Top tabs (information | e-mail a friend | reviews)*/
function hidetoptabs(){
	document.getElementById("proddesc").style.display='none';
	document.getElementById("email_form").style.display='none';
	document.getElementById("review_form").style.display='none';
}

function info(){document.getElementById("proddesc").style.display='';}
function email(){document.getElementById("email_form").style.display='';}
function reviews(){document.getElementById("review_form").style.display='';}

/*Technical Spec*/
function hidetechspecs(){
	document.getElementById("hdo").style.display='none';
	document.getElementById("polarized").style.display='none';
	document.getElementById("lens").style.display='none';
	document.getElementById("photochromic").style.display='none';
	document.getElementById("uv").style.display='none';
	document.getElementById("impact").style.display='none';
	document.getElementById("prescription").style.display='none';
	document.getElementById("hydrophobic").style.display='none';
	document.getElementById("frame").style.display='none';
}

function hdo(){document.getElementById("hdo").style.display='';}
function polarized(){document.getElementById("polarized").style.display='';}
function lens(){document.getElementById("lens").style.display='';}
function photochromic(){document.getElementById("photochromic").style.display='';}
function uv(){document.getElementById("uv").style.display='';}
function impact(){document.getElementById("impact").style.display='';}
function prescription(){document.getElementById("prescription").style.display='';}
function hydrophobic(){document.getElementById("hydrophobic").style.display='';}
function frame(){document.getElementById("frame").style.display='';}

function swapImage(varPath){document.getElementById("imgMain").src=varPath;}
/*--------------------------------------------------------------------------------------------*/

function openReviewForm(){
		document.getElementById("review_form").style.display="block";
		document.getElementById("reviews").style.display="block";
		try{
			document.getElementById("colours").style.display="none";
		}catch(e){}
		document.getElementById("email_form").style.display="none";
		document.getElementById("product_desc").style.display="none";
}

function closeReviewForm(){
		document.getElementById("reviews").style.display="none";
}

function openEmailForm(){
		document.getElementById("email_form").style.display="block";
		try{
			document.getElementById("colours").style.display="none";
		}catch(e){}
		document.getElementById("review_form").style.display="none";
		document.getElementById("reviews").style.display="none";
		document.getElementById("product_desc").style.display="none";
}

function closeEmailForm(){
		document.getElementById("email_form").style.display="none";
}

function openInfo(){
		document.getElementById("product_desc").style.display="block";
		try{
			document.getElementById("colours").style.display="block";
		}catch(e){}
		document.getElementById("review_form").style.display="none";
		document.getElementById("reviews").style.display="none";
		document.getElementById("email_form").style.display="none";
}

function checkForm(frm){
		var strMsg="";
		var objTemp;
		var strName;
		var strClass;
		var boolIsValid;
		
		boolIsValid=true
		
		for (var x=0; x < document.getElementById(frm).elements.length; x++){
				objTemp = document.getElementById(frm).elements[x]
				
				strName = objTemp.name;

				strClass = document.getElementById(strName).className;

				if(strClass.indexOf('mandatory') > -1){
						
						if(document.getElementById(strName).value==""){
							
							strMsg += document.getElementById(strName).title + " is a required field\n";
							
							boolIsValid=false;
						}
				}
				
				//###CUSTOM CHECKING BELOW###
				if(strName=="txtPasswordConfirm"){
						if(document.getElementById("txtPassword").value != document.getElementById("txtPasswordConfirm").value){
								strMsg += "Passwords must match\n";
								
								boolIsValid = false;
						}
				}
				//###END CUSTOM CHECKING###
		}
		
		if(boolIsValid == false){
				alert(strMsg);
				return false;
		}else{
			return true;
		}
}

var bMore = false;

function clearopts(varItem){
	intSI = document.getElementById(varItem).selectedIndex;
	document.getElementById(varItem).length = 1;
}

function selectopts(varItem){
	document.getElementById(varItem).selectedIndex = intSI;
}
function checkforms(){
	if(document.getElementById("LogonEmail").value==""){
		CheckLoginForm();
	}else{
		document.getElementById("frmLogin").submit();
	}
}

function CheckLoginForm(){
	var sMsg = '';
	if (document.getElementById("Email").value == ''){sMsg = sMsg + 'Please enter your email.\n';}
	if (document.getElementById("Password").value == ''){sMsg = sMsg + 'Please enter your password.\n';}
	if (sMsg == ''){return true;}else{alert(sMsg); return false;}
}

function CheckNewLoginForm(){
	var sMsg = '';
	if (document.getElementById("txtEmail").value == ''){sMsg = sMsg + 'Please enter your email.\n';}
	if (document.getElementById("txtPassword").value == ''){sMsg = sMsg + 'Please choose a password.\n';}
	if (document.getElementById("txtPasswordC").value == ''){sMsg = sMsg + 'Please confirm your password.\n';}
	if (sMsg == ''){return true;}else{alert(sMsg); return false;}
}

function isValidEmail(str) {
   return (str.indexOf(".") > 0) && (str.indexOf("@") > 0);
}

function ValidateMailingList() {
 var sMsg = '';
 if (isValidEmail(document.getElementById("txtEmail").value)==false){sMsg = sMsg + 'Please enter a valid Email address.\n';}
 if (document.getElementById("txtName").value == ''){sMsg = sMsg + 'Please enter your Full Name.\n';}
 if (document.getElementById("txtEmail").value == ''){sMsg = sMsg + 'Please enter your Email address.\n';}
 if (sMsg == ''){return true;}else{alert(sMsg); return false;}
}

function ShowHideInitial(varObj){
if (varObj.cboTitle.value=='Other'){
        varObj.Initial1.style.display='none';
        divI.style.display='none';
    }else{
        varObj.Initial1.style.display='block';
        divI.style.display='block';
    }
}

function  ShowHideInitialD(varObj){
if (varObj.cboTitleD.value=='Other'){
        varObj.Initial1D.style.display='none';
        divI.style.display='none';
    }else{
        varObj.Initial1D.style.display='block';
        divI.style.display='block';
    }
}

function CheckPostReq(varObj)
{
    if (IgnoreCountry(varObj.value)==true){
        PostReq.style.display='none';
	}
    else{
        PostReq.style.display='block';
	}
}

function Trim(TRIM_VALUE){
    if(TRIM_VALUE.length < 1){
        return"";
    }
    TRIM_VALUE = RTrim(TRIM_VALUE);
    TRIM_VALUE = LTrim(TRIM_VALUE);
    if(TRIM_VALUE==""){
        return "";
    }
    else{
        return TRIM_VALUE;
    }
} //End Function

function RTrim(VALUE){
    var w_space = String.fromCharCode(32);
    var v_length = VALUE.length;
    var strTemp = "";
    if(v_length < 0){
        return"";
    }
    var iTemp = v_length -1;

    while(iTemp > -1){
        if(VALUE.charAt(iTemp) == w_space){
        }
        else{
            strTemp = VALUE.substring(0,iTemp +1);
            break;
        }
        iTemp = iTemp-1;
} //End While
return strTemp;

} //End Function

function LTrim(VALUE){
    var w_space = String.fromCharCode(32);
    if(v_length < 1){
        return"";
       }
    var v_length = VALUE.length;
    var strTemp = "";

    var iTemp = 0;

    while(iTemp < v_length){
        if(VALUE.charAt(iTemp) == w_space){
        }
        else{
            strTemp = VALUE.substring(iTemp,v_length);
            break;
        }
        iTemp = iTemp + 1;
    } //End While
    return strTemp;
} //End Function

function allow_numeric(obj){
     if (/[^0-9]/i.test(obj.value))
          obj.value=obj.value.replace(/[^0-9]/g,'')
          obj.focus()
}

function allow_alpha(obj){
     if (/[^a-z]/i.test(obj.value))
          obj.value=obj.value.replace(/[^a-z]/gi,'')
          obj.focus()
}

function isValidEmail(str) {
   return (str.indexOf(".") > 0) && (str.indexOf("@") > 0);
}

function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789 ";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }

function ShowMore(){

    if (bMore==false){
	    bMore=true;
	    divSteps.style.display='block';
	    more.innerText="<<";
    }else{
	    bMore=false;
	    divSteps.style.display='none';
	    more.innerText=">>";
    }
}

function SendPageToFriend(){
	popUp('/Emailafriend.asp?Page=' + location.href,"400","260","no");
}

function ChangeShippingOption(varVal){
	self.location.href="?SIP=" + varVal;
}

function ChangeCountryOption(varVal){
	self.location.href="?CID=" + varVal;
}

function popUp(URL,width,height,scroll){
	var settings
	settings = "width="+width+",height="+height+",scrollbars="+scroll+",toolbar=no";
	popwin = window.open(URL,"FAFSPORT",settings);
	popwin.focus();
}

	function EnsureSelection() {
		var bSel;
		try {
			bSel = false;
			if (document.CatReqList.CatalogueRequest){
				for (var i = 1; i<= document.CatReqList.CatalogueRequest.length; i++){
					if (document.CatReqList.CatalogueRequest[i-1].checked == true)	{
						bSel = true;
					}
				}
			}
			// do we have a valid selection
			if (bSel == true) {
				// ok to continue
				document.CatReqList.submit();
			} else {
				alert("Please select at least one catalogue to order");
			}
		} catch(e) {
			alert("EnsureSelection\n" + e.description);
		}
	}

function MakeDelAddressCard(frmObj){
	if(frmObj.chkSame.checked==true){
		frmObj.txtSurnameD.value=frmObj.txtName.value;
		frmObj.txtSurnameD.readOnly=true;
		frmObj.txtAddress1D.value=frmObj.txtAddress1.value;
		frmObj.txtAddress1D.readOnly=true;
		frmObj.txtAddress2D.value=frmObj.txtAddress2.value;
		frmObj.txtAddress2D.readOnly=true;
		frmObj.txtAddress3D.value=frmObj.txtAddress3.value;
		frmObj.txtAddress3D.readOnly=true;
		frmObj.txtAddress4D.value=frmObj.txtAddress4.value;
		frmObj.txtAddress4D.readOnly=true;
		frmObj.txtAddress5D.value=frmObj.txtAddress5.value;
		frmObj.cboCountryD.readOnly=true;
		frmObj.cboCountryD.value=frmObj.cboCountry.value;
		frmObj.cboCountryD.locked=true;
		frmObj.txtAddress5D.readOnly=true;
		frmObj.txtPostCodeD.value=frmObj.txtPostCode.value;
		frmObj.txtPostCodeD.readOnly=true;
		frmObj.txtTelephoneD.value=frmObj.txtTelephone.value;
		frmObj.txtTelephoneD.readOnly=true;
		frmObj.txtEmailD.value=frmObj.txtEmail.value;
		frmObj.txtEmailD.readOnly=true;
		frmObj.txtEmailD.value=frmObj.txtEmail.value;
		frmObj.txtEmailD.readOnly=true;
	}else{
		frmObj.txtSurnameD.disabled=false;
		frmObj.txtAddress1D.readOnly=false;
		frmObj.txtAddress2D.readOnly=false;
		frmObj.txtAddress3D.readOnly=false;
		frmObj.txtAddress4D.readOnly=false;
		frmObj.txtAddress5D.readOnly=false;
		frmObj.txtPostCodeD.readOnly=false;
		frmObj.cboCountry.readOnly=false;
		frmObj.cboCountry.locked=false;
		frmObj.txtTelephoneD.readOnly=false;
		frmObj.txtEmailD.readOnly=false;
		frmObj.txtEmailD.readOnly=false;
	}
}

function subSearch() {
	if ((document.Menu.C1.value== "") || (document.Menu.C2.value== "") ||(document.Menu.C3.value== "") || (document.Menu.C4.value== "")) {
		if (document.Menu.C1.value== "") {
			document.Menu.C1.value= 0;
		}
		if (document.Menu.C2.value== "") {
			document.Menu.C2.value= 0;
		}
		if (document.Menu.C3.value== "") {
			document.Menu.C3.value= 0;
		}
		if (document.Menu.C4.value== "") {
			document.Menu.C4.value= 0;
		}
		document.Menu.submit();
	// Dont process this one
	}
	else	{
		document.Menu.submit();
	}
}

function saveProduct(varOBJ){fraSaveItem.location.href="/SaveProductLater.asp?ProductID=" + varOBJ.value + "&checked=" + varOBJ.checked;}
function ShowPrice(varObj, objPrice, Index){
		var PriceString;
		var intCount=1;
		PriceString=varObj.value.split("x"); 
		if (varObj.value != '')
		{ 
		objPrice.innerHTML=PriceString[4]; 
		document.getElementById("qty" + Index).readOnly=false;
		Index++;
		document.getElementById("fastCode" + Index).readOnly=false;

		}else{
			objPrice.innerHTML='';
			for(intCount;intCount<11;intCount++){
				document.getElementById("fastCode" + intCount).readOnly=true;
				document.getElementById("qty" + intCount).readOnly=true;
			}
			}
}    
function GetStock(varOBJ, intCount){if(varOBJ.value==''){return;}fraGetStock.location.href="/LookUpStock.asp?PID="+ varOBJ.value + "&RowCount=" + intCount;}

function ValidateAddressFormD(frmObj){
	if (frmObj.nocheck=='1'){
		return true;
	}else{
	var bFail=false;
	var sMsg="";
	
	if (Trim(frmObj.Initial1D.value) == ""){
		bFail=true;
		sMsg=sMsg + "First Name is a required field\n";
	}

	if (Trim(frmObj.txtSurnameD.value) == ""){
		bFail=true;
		sMsg=sMsg + "Surname is a required field\n";
	}

	if (Trim(frmObj.txtAddress1D.value) == ""){
		bFail=true;
		sMsg=sMsg + "Address is a required field\n";
	}

	if (Trim(frmObj.txtAddress4D.value) == ""){
		bFail=true;
		sMsg=sMsg + "Town is a required field\n";
	}
	if (Trim(frmObj.txtAddress5D.value) == ""){
		bFail=true;
		sMsg=sMsg + "County is a required field\n";
	}
	if (frmObj.cboCountryD.value == ""){
		bFail=true;
		sMsg=sMsg + "Country is a required field\n";
	}
	if (Trim(frmObj.txtPostCodeD.value) == ""){
		if (IgnoreCountry(frmObj.cboCountryD.value)==false){
		bFail=true;
		sMsg=sMsg + "Post Code is a required field\n";
		}
	}
	if (Trim(frmObj.txtTelephoneD.value) == ""){
		bFail=true;
		sMsg=sMsg + "Telephone is a required field\n";
	}
	if (IsNumeric(Trim(frmObj.txtTelephoneD.value)) == false){
		bFail=true;
		sMsg=sMsg + "Telephone number is invalid\n";
	}
	if (Trim(frmObj.txtEmailD.value) == ""){
		bFail=true;
		sMsg=sMsg + "Email is a required field\n";
	}
	if (isValidEmail(frmObj.txtEmailD.value)==false){
		bFail=true;
		sMsg=sMsg + "Invalid Email address\n";
	}
	if(bFail==true){
		alert(sMsg);
		return false;
	}else{
		return true;
	}}
}

function ValidateAddressForm(frmObj){
	if (frmObj.nocheck=='1'){
		return true;
	}else{
	var bFail=false;
	var sMsg="";

	if (Trim(frmObj.Initial1.value) == ""){
		bFail=true;
		sMsg=sMsg + "First Name is a required field\n";
	}

	if (Trim(frmObj.txtSurname.value) == ""){
		bFail=true;
		sMsg=sMsg + "surname is a required field\n";
	}

	if (Trim(frmObj.txtAddress1.value) == ""){
		bFail=true;
		sMsg=sMsg + "Address is a required field\n";
	}

	if (Trim(frmObj.txtAddress4.value) == ""){
		bFail=true;
		sMsg=sMsg + "Town is a required field\n";
	}
	if (Trim(frmObj.txtAddress5.value) == ""){
		bFail=true;
		sMsg=sMsg + "County is a required field\n";
	}
	if (frmObj.cboCountry.value == ""){
		bFail=true;
		sMsg=sMsg + "Country is a required field\n";
	}
	if (Trim(frmObj.txtPostCode.value) == ""){
		if (IgnoreCountry(frmObj.cboCountry.value)==false){
		bFail=true;
		sMsg=sMsg + "Post Code is a required field\n";
		}
	}
	if (Trim(frmObj.txtTelephone.value) == ""){
		bFail=true;
		sMsg=sMsg + "Telephone is a required field\n";
	}
	if (IsNumeric(Trim(frmObj.txtTelephone.value)) == false){
		bFail=true;
		sMsg=sMsg + "Telephone number is invalid\n";
	}

	if (Trim(frmObj.txtEmail.value) == ""){
		bFail=true;
		sMsg=sMsg + "Email is a required field\n";
	}
	if (isValidEmail(frmObj.txtEmail.value)==false){
		bFail=true;
		sMsg=sMsg + "Invalid Email address\n";
	}
	if(bFail==true){
		alert(sMsg);
		return false;
	}else{
		return true;
	}}
}

function ValidateCCForm(frmObj){	
	var bFail=false;
	var sMsg="";
	if (frmObj.CreditCardNum.value == ""){
		bFail=true;
		sMsg = sMsg + "Credit Card Number is a required field\n";
	}
	if (frmObj.CardName.value == ""){
		bFail=true;
		sMsg = sMsg + "Cardholders Name is a required field\n";
	}
	if (frmObj.CardType.value == ""){
		bFail=true;
		sMsg = sMsg + "Credit Card Type is a required field\n";
	}
	if (frmObj.ValidToMonth.value == ""){
		bFail=true;
		sMsg = sMsg + "Valid To Month is a required field\n";
	}
	if (frmObj.ValidToYear.value == ""){
		bFail=true;
		sMsg = sMsg + "Valid To Year is a required field\n";
	}
	if (frmObj.CardSecurityCode.value == ""){
		bFail=true;
		sMsg = sMsg + "Security code is a required field\n";
	}
	if(bFail==true){
		alert(sMsg);
		return false;
	}else{
		return true;
	}
}

function SelectAddress(strAddressLine, strSuffix){
	self.location.href="/SelectAddress.asp?A=" + strAddressLine + "&Suffix=" + strSuffix;
}

window.name = "MAIN"

function checkBuyForm(varObj){
    if (varObj.ColourID.value==-1){
        alert("Please Choose your colour");
        return false;
    }else{
        return true;
    }
}