// JavaScript Document


function changeButtonHlt(item_name){
/*Used to change the open/close buttons to highlight on hover*/
	if (eval(item_name + "_open"))
		document.images[item_name+"_button"].src = "images/web/btn_close_hlt.gif";
	else
		document.images[item_name+"_button"].src = "images/web/btn_open_hlt.gif";

}
	
function changeButtonNormal(item_name){
/*Used to change the open/close buttons back to normal on mouseout*/
	if (eval(item_name + "_open"))
		document.images[item_name+"_button"].src = "images/web/btn_close.gif";
	else
		document.images[item_name+"_button"].src = "images/web/btn_open.gif";

}	

function openCloseBox(box_name){

	//to close a currently open box
	if (eval(box_name+"_open")){
		//document.getElementById(box_name+"_content").style.display="none";		// show block
		document.getElementById(box_name+"_error").style.visibility='hidden';
		
		Effect.BlindUp(document.getElementById(box_name+"_content"));
		document.images[box_name+"_button"].src = "images/web/btn_open.gif";		// change open to close
		eval(box_name + "_open" + "= false");									// set box_open to true
		document.getElementById(box_name+"_msg").className="bottom_msg_left";
		
		switch(box_name){
			case 'gift_certificate':gift_certificate_complete=checkGiftCertificate(true);break;
			case 'delivery_options':delivery_options_complete=checkDeliveryOptions(true);break;
			case 'billing_info':billing_info_complete=checkBillingInfo(true);break;
			case 'payment_info':payment_info_complete=checkPaymentInfo(true);break;
		}
		
		
	}
	//to open a currently close box
	else{
		//document.getElementById(box_name+"_content").style.display="block";			// show block
		Effect.BlindDown(box_name+"_content");
		document.images[box_name+"_button"].src = "images/web/btn_close.gif";		// change open to close
		eval(box_name + "_open" + "= true");									// set box_open to true
		document.getElementById(box_name+"_msg").className="bottom_msg_right";
		switch(box_name){
			case 'gift_certificate':
					document.getElementById(box_name+"_msg").innerHTML = "Close to continue";
					if(is_gift_certificate_error) 
						var thedelay = setTimeout("document.getElementById('gift_certificate_error').style.visibility = 'visible'",1000);
					break;
					
			case 'delivery_options':
					document.getElementById(box_name+"_msg").innerHTML = "Close to continue";
					if(is_delivery_options_error) 
						var thedelay = setTimeout("document.getElementById('delivery_options_error').style.visibility = 'visible'",1000);

					break;					
			case 'billing_info':
					document.getElementById(box_name+"_msg").innerHTML = "Close to continue";
					if(is_billing_info_error) 
						var thedelay = setTimeout("document.getElementById('billing_info_error').style.visibility = 'visible'",1000);
					break;					
	
			case 'payment_info':
					document.getElementById(box_name+"_msg").innerHTML="Close & Proceed to continue";
					if(is_payment_info_error) 
						var thedelay = setTimeout("document.getElementById('payment_info_error').style.visibility = 'visible'",1000);					
					break;
		}	
	}
}		


function checkMessageCount(obj){
	
	if (obj.value.length > 90)
		document.getElementById("message_count").innerHTML = "Your message is " + obj.value.length + " characters long";
}

function finalCheckAllInput(){

	/*Save pull down menu input for populateForm*/	
	thisForm = document.forms["order_gift_certificate_form"];
	thisForm.elements["sb_amount_idx"].value = thisForm.elements["amount"].selectedIndex;
	thisForm.elements["sb_mailing_state_idx"].value = thisForm.elements["mailing_state"].selectedIndex;
	thisForm.elements["sb_billing_state_idx"].value = thisForm.elements["billing_state"].selectedIndex;

	//input validation
	gift_certificate_complete = checkGiftCertificate(true);
	delivery_options_complete = checkDeliveryOptions(true);	
	billing_info_complete = checkBillingInfo(true);
	payment_info_complete = checkPaymentInfo(true);
	if (gift_certificate_complete && delivery_options_complete & billing_info_complete && payment_info_complete)
		return true;
	
	else{
		var errorMsg = "The following sections contain errors or are incomplete: \n";
		if (!gift_certificate_complete)errorMsg += "\t - Gift Certificate details \n";
		if (!delivery_options_complete)errorMsg += "\t - Delivery Options \n";		
		if (!billing_info_complete)errorMsg += "\t - Billing Info \n";
		if (!payment_info_complete)errorMsg += "\t - Payment Info \n";
		alert(errorMsg);
		return false;
	}

	return true;

}

function initialCheckInput(){

	populateForm();
	
	delivery_options_complete=checkDeliveryOptions(false);
	billing_info_complete=checkBillingInfo(false);
	payment_info_complete=checkPaymentInfo(false);

}

function checkGiftCertificate(showErrorMsg){
	
	var thisForm = document.forms["order_gift_certificate_form"];
	
	var recipient_first_name = thisForm.elements["recipient_first_name"];	
	var recipient_last_name = thisForm.elements["recipient_last_name"];	
	var amount = thisForm.elements["amount"];
	var message = thisForm.elements["message"];

	var r1 = !isWhitespace(recipient_first_name.value);
	var r2 = !isWhitespace(recipient_last_name.value);
	var r3 = !isWhitespace(amount.value);
	
	var r11 = (recipient_first_name.value.length<=30)?true:false;
	var r12 = (recipient_last_name.value.length<=30)?true:false;
	var r13 = (message.value.length<=1000)?true:false;
	var r14 = (message.value.length<=100)||(!thisForm.elements["cb_delivery_mail"].checked);
	
	
	if (!(r1 && r2 && r3 && r11 && r12 && r13 && r14)){
		document.getElementById("gift_certificate_msg").innerHTML = "<img src='images/web/icon_x.gif'> One or more of your gift certificate info fields is invalid";		
		if (showErrorMsg){
			var errorMsg = "Please make sure that: <ul>";
			if(!r1) errorMsg+="<li>You enter recipient's first name</li>";
			if(!r2) errorMsg+="<li>You enter recipient's last name</li>";
			if(!r3) errorMsg+="<li>You select a gift certificate amount</li>";		
			if(!r11) errorMsg+="<li>Your first name input does not exceed 20 characters</li>";
			if(!r12) errorMsg+="<li>Your last name input does not exceed 20 characters</li>";
			if(!r13) errorMsg+="<li>Your message does not exceed 1000 characters</li>";
			if(!r14) errorMsg+="<li>Your message does not exceed 100 characters if you opt for delivery by postal mail</li>";
			errorMsg+="</ul>If you need assistance with completing this form, call us toll-free at (888) 816-6513. \n \n";
			document.getElementById("gift_certificate_error").innerHTML = errorMsg; 
			is_gift_certificate_error = true;		
		}
		return false;
	}
	else{
		document.getElementById("gift_certificate_msg").innerHTML = "<img src='images/web/icon_checkmark.gif'> Your gift certificate info is complete";		
		is_gift_certificate_error = false;
		return true;	
	}
	return true;
}

function checkDeliveryOptions(showErrorMsg){
	
	var thisForm = document.forms["order_gift_certificate_form"];
	var r1 = thisForm.elements["cb_delivery_email"].checked;
	var r2 = thisForm.elements["cb_delivery_mail"].checked;
	
	if (!(r1 || r2)){
		document.getElementById("delivery_options_msg").innerHTML = "<img src='images/web/icon_x.gif'> Delivery option is not yet selected";		
		if (showErrorMsg){
			var errorMsg = "Please check either delivery by email or by mail or both.";
			document.getElementById("delivery_options_error").innerHTML = errorMsg;
			is_delivery_options_error = true;
		}
		return false;
	}
	
	var r11 = true;
	var r12 = true;
	var r21 = true;
	var r22 = true;
	var r23 = true;
	var r24 = true;
	var r25 = true;
	var r26 = true;
	var r27 = true;
	var r28 = true;
	var r29 = true;

	if (r1) {
		r11 = isEmail(thisForm.elements["delivery_email"].value);
		r12 = (thisForm.elements["delivery_email"].value.length<=50);
	}

	if (r2){
		r21 = !(isWhitespace(thisForm.elements["mailing_name"].value));
		r22 = !(isWhitespace(thisForm.elements["mailing_address1"].value));
		r23 = !(isWhitespace(thisForm.elements["mailing_city"].value));
		r24 = !(isWhitespace(thisForm.elements["mailing_state"].value));
		r25 = (isZIPCode(stripCharsInBag(thisForm.elements["mailing_zipcode"].value,ZIPCodeDelimiters)));
		r26 = (thisForm.elements["mailing_name"].value.length<=50);
		r27 = (thisForm.elements["mailing_address1"].value.length<=50);
		r28 = (thisForm.elements["mailing_address2"].value.length<=50);
		r29 = (thisForm.elements["mailing_city"].value.length<=30);
		/*check whether message is over 100 characters */
		if (thisForm.elements["message"].value.length > 100  && !is_gift_certificate_error){
			document.getElementById("gift_certificate_msg").innerHTML = "<img src='images/web/icon_x.gif'> One or more of your gift certificate info fields is invalid";	
			document.getElementById("gift_certificate_error").innerHTML = "Please make sure that message length does not exceed 100 characters if you opt for delivery by postal mail"; 			
			is_gift_certificate_error = true;
			
		}
		
	}

	if (!(r11 && r21 && r22 && r23 && r24 && r25 && r26 && r27 && r28 && r29)){
		document.getElementById("delivery_options_msg").innerHTML = "<img src='images/web/icon_x.gif'> One or more of your delivery option info fields is invalid";		
		if (showErrorMsg){
			var errorMsg = "Please make sure that: <ul>";
			if(!r11) errorMsg+="<li>You enter the correct recipient's email address</li>";
			if(!r21) errorMsg+="<li>You enter recipient's name</li>";
			if(!r22) errorMsg+="<li>You enter recipient's address</li>";
			if(!r23) errorMsg+="<li>You enter recipient's city</li>";
			if(!r24) errorMsg+="<li>You select recipient's state from the pull-down menu</li>";
			if(!r25) errorMsg+="<li>You enter recipient's zip code</li>";		
			if(!r26) errorMsg+="<li>The recipient's name does not exceed 50 characters</li>";
			if(!r27) errorMsg+="<li>The first line of recipient's address does not exceed 50 characters<li>";
			if(!r28) errorMsg+="<li>The second line of recipient's address does not exceed 50 characters<li>";
			if(!r29) errorMsg+="<li>The recipient's city does not exceed 30 characters<li>";
			errorMsg+="</ul>If you need assistance with completing this form, call us toll-free at (888) 816-6513.";
			document.getElementById("delivery_options_error").innerHTML = errorMsg; 
		is_delivery_options_error = true;		
		}
		return false;
	}
	else{
		document.getElementById("delivery_options_msg").innerHTML = "<img src='images/web/icon_checkmark.gif'> You have completed delivery options section";		
		is_delivery_options_error = false;
		return true;	
	}
	return true;
		
}

function checkBillingInfo(showErrorMsg){
	
	var thisForm = document.forms["order_gift_certificate_form"];
	
	var r1 = !(isWhitespace(thisForm.elements["billing_first_name"].value));
	var r2 = !(isWhitespace(thisForm.elements["billing_last_name"].value));
	var r3 = !(isWhitespace(thisForm.elements["billing_address1"].value));
	var r4 = !(isWhitespace(thisForm.elements["billing_city"].value));
	var r5 = !(isWhitespace(thisForm.elements["billing_state"].value));
	//var r6 = (isZIPCode(stripCharsInBag(thisForm.elements["billing_zipcode"].value,ZIPCodeDelimiters)));
	var r6 = true; // temporary fix to allow for outside US
	var r7 = (isUSPhoneNumber(stripCharsInBag(thisForm.elements["billing_phone"].value,phoneNumberDelimiters)));
	var r8 = (isEmail(thisForm.elements["billing_email1"].value));
	var r9 = (thisForm.elements["billing_email1"].value==thisForm.elements["billing_email2"].value);

	var r10 = (thisForm.elements["billing_first_name"].value.length<=30);
	var r11 = (thisForm.elements["billing_last_name"].value.length<=30);
	var r12 = (thisForm.elements["billing_address1"].value.length<=50);
	var r13 = (thisForm.elements["billing_address2"].value.length<=50);
	var r14 = (thisForm.elements["billing_city"].value.length<=30);
	var r15 = (thisForm.elements["billing_email1"].value.length<=50);

	if (!(r1 && r2 && r3 && r4 && r5 && r6 && r7 && r8 && r9 && r10 && r11 && r12 && r13 && r14 && r15)){
		document.getElementById("billing_info_msg").innerHTML = "<img src='images/web/icon_x.gif'> One or more of your billing info fields is invalid";		
		if (showErrorMsg){
			var errorMsg = "Please make sure that: <ul>";
			if(!r1) errorMsg+="<li>You enter in the first name field</li>";
			if(!r2) errorMsg+="<li>You enter in the last name field</li>";
			if(!r3) errorMsg+="<li>You enter in the address field</li>";
			if(!r4) errorMsg+="<li>You enter in the city field</li>";
			if(!r5) errorMsg+="<li>You select a state from the pull-down menu</li>";
			if(!r6) errorMsg+="<li>You enter in a valid US zip code</li>";
			if(!r7) errorMsg+="<li>You enter in US phone number</li>";
			if(!r8) errorMsg+="<li>You enter in a valid email address</li>";
			if(!r9) errorMsg+="<li>The two email addresses are identical</li>";
			if(!r10) errorMsg+="<li>Billing first name does not exceed 30 characters<li>";
			if(!r11) errorMsg+="<li>Billing last name does not exceed 30 characters<li>";
			if(!r12) errorMsg+="<li>First line of billing address does not exceed 50 characters<li>";
			if(!r13) errorMsg+="<li>Second line of billing address does not exceed 50 characters<li>";
			if(!r14) errorMsg+="<li>Billing city does not exceed 30 characters<li>";
			if(!r15) errorMsg+="<li>Email address does not exceed 50 characters<li>";
			
			errorMsg+="</ul>If you need assistance with completing this form, call us toll-free at (888) 816-6513.";
			document.getElementById("billing_info_error").innerHTML = errorMsg; 
			is_billing_info_error = true;		
		}
		return false;
	}
	else{
		document.getElementById("billing_info_msg").innerHTML = "<img src='images/web/icon_checkmark.gif'> Your billing info is complete";		
		is_billing_info_error = false;
		return true;	
	}
	return true;
}

function checkPaymentInfo(showErrorMsg){
	
	var thisForm = document.forms["order_gift_certificate_form"];
	var cc_num = thisForm.elements["credit_card_number"];
	switch(thisForm.elements["credit_card"].value){
		
		case 'Visa': 
			var r1 = (isVisa(stripCharsInBag(cc_num.value,creditCardDelimiters)));break;
		case 'Master Card': 
			var r1 = (isMasterCard(stripCharsInBag(cc_num.value,creditCardDelimiters)));break;
		case 'American Express': 
			var r1 = (isAmericanExpress(stripCharsInBag(cc_num.value,creditCardDelimiters)));break;
	}
	
	var r2 = (isCCV(thisForm.elements["credit_card_ccv"].value,thisForm.elements["credit_card"].value));

	//Check Expiration date of card
	var r3 = (checkCardExpiration(thisForm.elements["credit_card_exp_month"].value,thisForm.elements["credit_card_exp_year"].value));
	
	//Check Length of name
	var r4 = !(isWhitespace(thisForm.elements["credit_card_name_on_card"].value));
	var r5 = (thisForm.elements["credit_card_name_on_card"].value.length<=40)?true:false;	
	
	if (!(r1 && r2 && r3 && r4 && r5)){
		document.getElementById("payment_info_msg").innerHTML = "<img src='images/web/icon_x.gif'> One or more of your payment info fields is invalid";		
		if (showErrorMsg){
			var errorMsg = "Please make sure that: <ul>";
			if(!r1) errorMsg+="<li>You enter the correct card number</li>";
			if(!r2) errorMsg+="<li>You enter in the correct CVV number.  Click on the question mark icon for help.</li>";
			if(!r3) errorMsg+="<li>You have the right expiration date</li>";
			if(!r4) errorMsg+="<li>You enter in the name on the card</li>";
			if(!r5) errorMsg+="<li>The name on the card field does not exceed 40 characters</li>";
	
			errorMsg+="</ul>If you need assistance with completing this form, call us toll-free at (888) 816-6513.";
			document.getElementById("payment_info_error").innerHTML = errorMsg; 
			is_payment_info_error = true;		
		}
		return false;
	}
	else{
		document.getElementById("payment_info_msg").innerHTML = "<img src='images/web/icon_checkmark.gif'> Your payment info is complete";		
		is_payment_info_error = false;
		return true;	
	}
	return true;
}

function checkCardExpiration(mth,yr){
	
	var now = new Date();
	if (yr > now.getFullYear()) return true;
	if (yr < now.getFullYear()) return false;
	if (yr==now.getFullYear())
		return (mth>=now.getMonth()+1)?true:false;
}

function processEmailCB(obj){
	
	var thisForm = document.forms["order_gift_certificate_form"];

	if (obj.checked)
		thisForm.elements["delivery_email"].disabled = false;
	else
		thisForm.elements["delivery_email"].disabled = true;
		
}

function processMailCB(obj){
	
	var thisForm = document.forms["order_gift_certificate_form"];
	
	if(obj.checked){
		thisForm.elements["mailing_name"].disabled = false;
		thisForm.elements["mailing_address1"].disabled = false;
		thisForm.elements["mailing_address2"].disabled = false;
		thisForm.elements["mailing_city"].disabled = false;
		thisForm.elements["mailing_state"].disabled = false;
		thisForm.elements["mailing_zipcode"].disabled = false;
	}
	else{
		thisForm.elements["mailing_name"].disabled = true;
		thisForm.elements["mailing_address1"].disabled = true;
		thisForm.elements["mailing_address2"].disabled = true;
		thisForm.elements["mailing_city"].disabled = true;
		thisForm.elements["mailing_state"].disabled = true;
		thisForm.elements["mailing_zipcode"].disabled = true;
	}
}
	
