//------------------------------------------------------------------------------------
//Javascript function page
//------------------------------------------------------------------------------------

//global parameter to test email addresses against
var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

//Update iframe with what asp page to run
//Parameters: Source - What page top run with extra parameters
//			  FrameName - which frame to run this asp page in
//------------------------------------------------------------------------------------
function GetWishDataMain(Source, FrameName) {
	document.getElementById(FrameName).src = Source;
	DisplayTextMain('WishListSpan', Number(document.getElementById('WishListSpan').innerHTML) + 1)
	alert('Added to wishlist.');
}

//Update iframe with what asp page to run
//Parameters: Source - What page top run with extra parameters
//			  FrameName - which frame to run this asp page in
//------------------------------------------------------------------------------------
function GetWishData(Source, FrameName) {
	document.getElementById(FrameName).src = Source;
	DisplayText('WishListSpan', Number(opener.document.getElementById("WishListSpan").innerHTML) + 1)
	alert('Added to wishlist.');
}

//Update iframe with what asp page to run
//Parameters: Source - What page top run with extra parameters
// FrameName - which frame to run this asp page in
function InsertIntoGiftRegistry(Source, FrameName) {
	document.getElementById(FrameName).src = Source;
	alert('Added to Gift Registry.');
}

//display data in span specified and call fading function
//Parameters: SpanName - which span to update with data
//			  Data - data (dur...)
//------------------------------------------------------------------------------------
function DisplayTextMain(SpanName, Data) {
	document.getElementById(SpanName).innerHTML = Data;
}

//display data in span specified and call fading function
//Parameters: SpanName - which span to update with data
//			  Data - data (dur...)
//------------------------------------------------------------------------------------
function DisplayText(SpanName, Data) {
	opener.document.getElementById("WishListSpan").innerHTML = Data;
}


//Opens a new window (used mainly for flash)
//Parameters: URL - What page to open
//			  w - new window width
//			  h - new window height
//------------------------------------------------------------------------------------
function WindowOpener(url, w, h) {
	window.open(url, null, 'scrollbars=yes,width=' + w + ', height=' + h);
}

//Update iframe with what asp page to run
//Parameters: Source - What page top run with extra parameters
//			  FrameName - which frame to run this asp page in
//------------------------------------------------------------------------------------
function GetData(Source, FrameName) {
	document.getElementById(FrameName).src = Source;
	return false;
}

//display data in span specified and call fading function
//Parameters: SpanName - which span to update with data
//			  Data - data (dur...)
//------------------------------------------------------------------------------------
//function DisplayText(SpanName, Data) {
//	document.getElementById(SpanName).innerHTML = Data;
//}

//Update hidden fields on product pages to distinguish which of the product has been selected
//Parameters: ProductID - which product has been selected to be added to cart
//------------------------------------------------------------------------------------
function UpdateHidden (ProductID) {
	document.getElementById('SKU').value = document.getElementById('SKU' + ProductID).value; 
	document.getElementById('Quantity').value = document.getElementById('Quantity' + ProductID).value;
}

//On edit cart - confirm deletion
//Parameters: SKU - which product sku the user wants to delete
//------------------------------------------------------------------------------------
function ConfirmDelete(SKU) {
	if (confirm('Are you sure you want to delete \'' + SKU + '\'?')) {
		return true;
	} else {
		return false;
	}
}

//On add product to cart - validate qty and size
//------------------------------------------------------------------------------------
function ValidateAddCart() {
	ErrMsg = "";
	if ((isNaN(document.getElementById('Quantity').value)) || (document.getElementById('Quantity').value == '0')) {
		ErrMsg += 'Please enter a valid quantity.\n';
	}	

	if (document.getElementById('SKU').value == '') {
		ErrMsg += 'Please select a valid size (colour).\n';
	}	
	
	
	if (ErrMsg != '') {
		alert(ErrMsg);
		return false	
	} else {
		return true;
	}
}

//function to check where there is an email address before trying to 
//send the password to a non existant email address
//------------------------------------------------------------------------------------

function GetEmail() {
	var strError = '';
	var oEmailAddress = document.getElementById('EmailAddress');
	var oForgotPassword = document.getElementById('ForgotPassword');

	if (oEmailAddress.value == '') {
		strError = strError + '\n - Please fill in your Email Address';
	}	

	//if there was an error then display it else go to the next page
	if (strError.length == 0) {
		oForgotPassword.href = oForgotPassword.href + oEmailAddress.value;
		return true;
	} else {
		alert('Please correct the following errors:'+strError);
		return false;
	}

}

function GetEmailAddress() {
	var strError = '';
	var oEmailAddress = document.getElementById('EmailAddress');
	var oDisplayPassword = document.getElementById('DisplayPassword');

	if (oEmailAddress.value == '') {
		strError = strError + '\n - Please fill in your Email Address';
	}	

	//if there was an error then display it else go to the next page
	if (strError.length == 0) {
		oDisplayPassword.href = oDisplayPassword.href + oEmailAddress.value;
		return true;
	} else {
		alert('Please correct the following errors:'+strError);
		return false;
	}

}

//function to hide and show span for menu 
//SpanID to hide or display
//------------------------------------------------------------------------------------
function HideShow(SpanID, LocatorText) {
	if (document.getElementById(SpanID).style.display == 'block') {
		document.getElementById(SpanID).style.display = 'none';
	} else {
		document.getElementById(SpanID).style.display = 'block';
	}
	document.getElementById('Locator').innerHTML = "<b>Shop at Home:</b> " + LocatorText;
}

//function to show text in span for swatches 
//SpanName to show text in
//Text to show
//------------------------------------------------------------------------------------
function ShowText(SpanName, Text) {
	document.getElementById(SpanName).innerHTML = Text;
}


//Function to clear input field
//ID - which input field to clear
//------------------------------------------------------------------------------------
function ClearText(ID) {
	document.getElementById(ID).value = ''
}

//displays flash file
//Parameters: DivID = 
//			  WIDTH =
//			  HEIGHT =
//			  URL =
//------------------------------------------------------------------------------------
function CreateControl(DivID, WIDTH, HEIGHT, URL) {
	var d = document.getElementById(DivID);
	tmpStr = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + WIDTH + '" height="' + HEIGHT + '">' +
        '<param name="movie" value="' + URL + '">' +
        '<param name="quality" value="high">' + 
//        '<param name="wmode" value="opaque">' + 
		'<param name="wmode" value="transparent">' + 
 		'<embed src="' + URL + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + WIDTH + '" height="' + HEIGHT + '" WMODE="transparent"></embed>' +
      '</object>';
	d.innerHTML = tmpStr
}

//Function to validate registry search 
//------------------------------------------------------------------------------------
function ValidateSearch() {
	if (document.getElementById('searchvalue').value == '') {
		alert('Please enter a search value.');
		return false;
	} else if ((document.getElementById('searchtype').value == 'registrydate') && (!checkdate(document.getElementById('searchvalue')))) {
		alert('Please enter a valid date into the search value (mm/dd/yyyy).');
		return false;
	}
}

//Function to validate reservation capture 1 
//------------------------------------------------------------------------------------
function ValidateReservation1() {
	found = false;

	for (i = 0; i < f1.elements.length; i++) {
		if ((f1.elements[i].value != '') && (f1.elements[i].value != '0') && (f1.elements[i].name != 'Reserve') && (f1.elements[i].name != 'CustomerID') && (f1.elements[i].name.indexOf('Qty') == -1)) {
			if (isNaN(f1.elements[i].value)) {
				alert('Please enter a numeric quantity of each item you would like to reserve.');
				return false;
			} else {
				found = true;
			}
			itemno = f1.elements[i].name;


			//check if the qty to purchase is >= required qty
			if ((found == true) && (Number(f1("Qty" + itemno).value) < Number(f1.elements[i].value))) {
				alert('Please enter a numeric quantity less than or equal to the required quantity.');		
				return false;
			}
		}	
	}
	
	if (!found) {alert('Please enter a numeric quantity of each item you would like to reserve.');}
	return found;
}

//Function to validate reservation capture 2
//------------------------------------------------------------------------------------
function ValidateReservation2() {
	ErrMsg = '';
	if (document.getElementById('PurchaserName').value == '') {
		ErrMsg = ErrMsg + 'The Full Name is required.\n';
	}

	if (document.getElementById('PurchaserCell').value == '') {
		ErrMsg = ErrMsg + 'The Cellphone Number is required.\n';
	}

	if ((document.getElementById('PurchaserEmail').value != '') && ( ( (document.getElementById('PurchaserEmail').value).indexOf('.') == -1 ) || (( (document.getElementById('PurchaserEmail').value).indexOf('@') == -1 ) ))) {
		ErrMsg = ErrMsg + 'The Email Address is not a valid email address.\n';		
	}

	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}

}


//Function to validate items filter
//------------------------------------------------------------------------------------
function ValidateFilter() {
	ErrMsg = '';

	if ((f2.Filter.checked) && ((isNaN(document.getElementById('FromAmt').value)) || (isNaN(document.getElementById('ToAmt').value)) || (document.getElementById('FromAmt').value == '') || (document.getElementById('ToAmt').value == '') )) {
		ErrMsg = ErrMsg + 'You are required to enter (numeric) values only.\n';
	}


	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}

}

//Function to validate capturing purchase screen 1
//------------------------------------------------------------------------------------
function ValidatePurchase1() {
	ErrMsg = '';

	if (f1.CustomerID.value == '') {
		ErrMsg = ErrMsg + 'The Registry Reference is required.\n';
	}


	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}

}

//Function to validate capturing purchase screen 2
//------------------------------------------------------------------------------------
function ValidatePurchase2() {
	ErrMsg = '';

	if (f1.Items.value == '') {
		ErrMsg = ErrMsg + 'The Items are required.\n';
	}


	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}

}


//Function to validate registry profile
//------------------------------------------------------------------------------------
function ValidateRegistry() {
	ErrMsg = '';
	if (!checkdate(document.getElementById('EventDate')))	{
		ErrMsg = ErrMsg + 'Invalid date - please use the following format: mm/dd/yyyy eg. 01/27/2007.\n';
	}

	if (document.getElementById('location').value == '') {
		ErrMsg = ErrMsg + 'The Event Location is required.\n';
	}

	if (document.getElementById('CustomerName1').value == '') {
		ErrMsg = ErrMsg + 'The Customer 1: Name is required.\n';
	}

	if (document.getElementById('Cell1').value == '') {
		ErrMsg = ErrMsg + 'The Customer 1: Cellphone Number is required.\n';
	}

	if ((document.getElementById('Email1').value == '') ) {
		ErrMsg = ErrMsg + 'The Customer 1: Email Address is required.\n';
	} else if ((document.getElementById('Email1').value != '') && ( ( (document.getElementById('Email1').value).indexOf('.') == -1 ) || (( (document.getElementById('Email1').value).indexOf('@') == -1 ) ))) {
		ErrMsg = ErrMsg + 'The Customer 1: Email Address is not a valid email address.\n';		
	}

	if ((document.getElementById('Email1_Reenter').value == '') ) {
		ErrMsg = ErrMsg + 'The Customer 1: Re-enter Email Address is required.\n';
	} else if ((document.getElementById('Email1_Reenter').value != '') && ( ( (document.getElementById('Email1_Reenter').value).indexOf('.') == -1 ) || (( (document.getElementById('Email1_Reenter').value).indexOf('@') == -1 ) ))) {
		ErrMsg = ErrMsg + 'The Customer 1: Re-enter Email Address is not a valid email address.\n';		
	}

	if (document.getElementById('Email1').value != document.getElementById('Email1_Reenter').value) {
		ErrMsg = ErrMsg + 'The Customer 1: Email Address does not match the Re-entered Email Address.\n';
	}

	if ((document.getElementById('Password1').value == '') ) {
		ErrMsg = ErrMsg + 'The Customer 1: Password is required.\n';
	}

	if ((document.getElementById('Password1_Reenter').value == '') ) {
		ErrMsg = ErrMsg + 'The Customer 1: Re-enter Password is required.\n';
	}

	if (document.getElementById('Password1').value != document.getElementById('Password1_Reenter').value) {
		ErrMsg = ErrMsg + 'The Customer 1: Password does not match the Re-entered Password.\n';
	}

	if ((document.getElementById('Email2').value != '') && ( ( (document.getElementById('Email2').value).indexOf('.') == -1 ) || (( (document.getElementById('Email2').value).indexOf('@') == -1 ) ))) {
		ErrMsg = ErrMsg + 'The Customer 2: Email Address is not a valid email address.\n';		
	}

	if ((document.getElementById('Email2_Reenter').value != '') && ( ( (document.getElementById('Email2_Reenter').value).indexOf('.') == -1 ) || (( (document.getElementById('Email2_Reenter').value).indexOf('@') == -1 ) ))) {
		ErrMsg = ErrMsg + 'The Customer 2: Re-enter Email Address is not a valid email address.\n';		
	}

	if ((document.getElementById('Email2').value != '') && (document.getElementById('Email2').value != document.getElementById('Email2_Reenter').value)) {
		ErrMsg = ErrMsg + 'The Customer 2: Email Address does not match the Re-entered Email Address.\n';
	}

	if ((document.getElementById('Password2').value != '') && (document.getElementById('Password2').value != document.getElementById('Password2_Reenter').value)) {		
		ErrMsg = ErrMsg + 'The Customer 2: Password does not match the Re-entered Password.\n';
	}

	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}
}


//Function to validate gift voucher profile
//------------------------------------------------------------------------------------
function ValidateGiftVoucher() {
	ErrMsg = '';

	if (document.getElementById('ContactTitle').value == '') {
		ErrMsg += 'Please supply a value for "Title".\n';
	}

	if (document.getElementById('ContactFirstName').value == '') {
		ErrMsg += 'Please supply a value for "First Name".\n';
	}

	if (document.getElementById('ContactLastName').value == '') {
		ErrMsg += 'Please supply a value for "Last Name".\n';
	}

	if (document.getElementById('BillAddress1').value == '') {
		ErrMsg += 'Please supply a value for "Address".\n';
	}

	if (document.getElementById('BillCity').value == '') {
		ErrMsg += 'Please supply a value for "City".\n';
	}

	if (document.getElementById('BillStateOrProvince').value == '') {
		ErrMsg += 'Please supply a value for "State / Province".\n';
	}

	if (document.getElementById('BillPostalCode').value == '') {
		ErrMsg += 'Please supply a value for "Postal Code".\n';
	}

	if (document.getElementById('PhoneNumber').value == '') {
		ErrMsg += 'Please supply a value for "Contact Number".\n';
	}

//	if (document.getElementById('FaxNumber').value == '') {
//		ErrMsg += 'Please supply a value for "Fax Number".\n';
//	}

	if (document.getElementById('SecretAnswer').value == '') {
		ErrMsg += 'Please supply a value for "Secret Answer".\n';
	}
	
	if (document.getElementById("EmailAddress").value == '') {
		ErrMsg += 'Please supply a value for "Email Address".\n';
	} else if (!filter.test(document.getElementById("EmailAddress").value)) {
		ErrMsg += 'Please supply a valid value for "Email Address".\n';
	}

	if (document.getElementById("ConfirmEmailAddress").value == '') {
		ErrMsg += 'Please supply a value for "Confirm Email Address".\n';
	} else if (!filter.test(document.getElementById("ConfirmEmailAddress").value)) {
		ErrMsg += 'Please supply a valid value for "Confirm Email Address".\n';
	}

	if (((document.getElementById("EmailAddress").value) != (document.getElementById("ConfirmEmailAddress").value)) && (ErrMsg == '')) {
		ErrMsg += 'The value for "E-mail Address" and "Confirm E-mail Address" must be the same.';
	}

	if (document.getElementById('Password').value == '') {
		ErrMsg += 'Please supply a value for "Password".\n';
	}

	if (document.getElementById('Password2').value == '') {
		ErrMsg += 'Please supply a value for "Password Confirmation".\n';
	}

	if (document.getElementById('Password').value != document.getElementById('Password2').value) {
		ErrMsg += 'The passwords entered do not match.\n';
	}

	if (document.getElementById('SecretAnswer').value == '') {
		ErrMsg += 'Please supply a value for "Secret Answer".\n';
	}

	if (ErrMsg != '') {
		alert(ErrMsg);
		return false;
	}
}

function ShowHide(ID, Show) {
	document.getElementById(ID).style.display = Show;
}


//* Validate Date Field script- By JavaScriptKit.com
//* For this script and 100s more, visit http://www.javascriptkit.com
//* This notice must stay intact for usage
//------------------------------------------------------------------------------------
function checkdate(input){
	var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
	var returnval=false
	if (!validformat.test(input.value))
		returnval=false;
	else{ //Detailed check for valid date ranges
		var monthfield=input.value.split("/")[0]
		var dayfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false
		else
			returnval=true
	}
	if (returnval==false) input.select()
	return returnval
}

function StripBraces(field) {
	K = window.event.keyCode;

	if ((K !='9') && (K !='13') && (K !='8') && (K !='96') && (K !='97') && (K !='98') && (K !='99') && (K !='100') && (K !='101') && (K !='102') && (K !='103') && (K !='104') && (K !='105') && (K !='48') && (K !='49') && (K !='50')&& (K !='51')&& (K !='52')&& (K !='53')&& (K !='54')&& (K !='55')&& (K !='56')&& (K !='57')) {
		event.returnValue = false;
		if ((window.event.shiftKey) && (K == '221')) {
			field.value = field.value + '\n';
		}
	}
	
}

function getexpirydate( nodays){
var UTCstring;
Today = new Date();
nomilli=Date.parse(Today);
Today.setTime(nomilli+nodays*24*60*60*1000);
UTCstring = Today.toUTCString();
return UTCstring;
}

function setcookie(name,value,duration){
	cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
	document.cookie=cookiestring;
}

function getcookie(cookiename) {
 var cookiestring=""+document.cookie;
 var index1=cookiestring.indexOf(cookiename);
 if (index1==-1 || cookiename=="") return ""; 
 var index2=cookiestring.indexOf(';',index1);
 if (index2==-1) index2=cookiestring.length; 
 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

function SaveProductWindowSize(width, height) {
	setcookie('width', width, 365);
	setcookie('height', height, 365);
//	window.open('Products_Detail.asp?ProductID=" & rs2("ProductID") & "&iBigRef=" & rs2("iBigRef") & "', 'ProductDetail', 'width=getcookie('width'),height=getcookie('height'),scrollbars=yes,resizable=yes')
}

function UpdateProductWindowSize(ProductID, iBigRef) {
	width = getcookie('width');
	height = getcookie('height');
	if (width == '') {width = 445;}
	if (height == '') {height = 570;}
	window.open('Products_Detail.asp?ProductID=' + ProductID + '&iBigRef=' + iBigRef, 'ProductDetail', 'width=' + width + ',height=' + height + ',scrollbars=yes,resizable=yes');
}

/*	function ChangeSideTD(showBlank, pProductID, pBigRef, Descr, Colour) {
		if (pProductID == '-1'){
			pProductID = LastpProductID
			Descr = LastDescr
			Colour = LastColour
		} else {
			var index = Colour.indexOf("#");
			while (index != -1) {
				Col = Colour.substring(Colour.indexOf("#", index), Colour.indexOf("#", index)+7);
				NewCol = '<span style="background-color:' + Col + ';width:15px;border: 1 solid black">&nbsp;</span>';
				Colour = Colour.replace(Col, NewCol);
				index = Colour.indexOf("#", index + NewCol.length+1); // start search after last match found
			}
		}

		//update display product details
		if (showBlank) {
			document.all("SideBlock").innerHTML = '<a onclick="ChangeSideTD(0,-1,-1,-1,-1)" style=\'cursor:pointer;color:#FF0000\'><br><u><b>View Details</b></u></a>';
			document.all("SideTD").background = 'images/Products/Big/' + pProductID + '_' + pBigRef + '.jpg';
			LastpProductID = pProductID
			LastDescr = Descr
			LastColour = Colour
		} else {
			document.all("SideBlock").innerHTML = '<p align="right"><br><a onclick="ChangeSideTD(1,-1,1,-1,-1)" style=\'cursor:pointer;color:#FF0000\'><u><b>Close</b></u></a></p><p align="left"><br><br><u><b>' + Descr + '</b></u><br><br>' + Colour + '<br><br><a href="#" onclick="javascript:GetWishData(\'WishList_add.asp?ProductID=' + pProductID + '\',\'WishListIframe\')"><img src="images/add_to_wishlist.gif" border="0"></a></p>';			
			document.all("SideTD").background = 'images/Category/Size2/blank.jpg';
		}
		//change old product border to white
//		document.all(LastProduct).style.border = "2 solid #FFFFFF";
		//change current product border to red
//		document.all(pProductID).style.border = "2 solid #FF0000";
		//set current Productid
		LastProduct = pProductID;
	}*/
