//This function is for submitting a form, if the ID of the form is known.
function submitFormById (formId) {

	var formObj = getElement (formId);//For Firefox
	
	if (!formObj ||null == formObj) { //Any other browser which doesn't support both
	
		alert ('This method is not supported in your Browser. Please contact Honey & DEW Support.');
	
		return;
	}
	
	formObj.submit();
}

function enterOnSubmit(e, formId){ //e is event object passed from function invocation
	var characterCode;

	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	} else{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}

	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		submitFormById(formId); //submit the form
		return false;
	}
	else{
		return true;
	}
}


function getElement(id)
{
    if(document.all)
    {
         return eval("document.all['" + id + "']");

    }
    else
    {
         return document.getElementById(id);
    }
}

function removeFromCart (itemName, formId) {

	var delteFromCart = confirm ("Are you sure you want to remove Item " + itemName + " from your cart?");

	if (delteFromCart) {

		submitFormById(formId);
	}
}

function cancelTheOrder (formId) {

	var cancelOrder = confirm ("Are you sure you want to Cancel the Order?");

	if (cancelOrder) {

		submitFormById(formId);
	}
}


function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

function showBlinder(productImage, productImageSrc, divIdValue, titleValue, itemDescription, itemCountry, itemPrice, actualPrice, manufacturer) {

	//hideBlinder (divIdValue);
	var productImageObject = getElement(productImage);

	var posX = findPosX(productImageObject);
	var posY = findPosY(productImageObject);

	var divObject = getElement(divIdValue);

	var headerObject = getElement ('blinderHeaderId');
	var imageObject = getElement ('productImageBlinder');
	var productObject = getElement ('productDescriptionId');
	var productCountryObject = getElement ('productCountryId');
	var productManufacturerObject = getElement ('productManufacturerId');
	var productCostObject = getElement ('productRateId');
	var productActualCostObject = getElement ('productActualRateId');

	headerObject.innerHTML = titleValue;
	productObject.innerHTML = itemDescription;
	if (itemPrice == actualPrice) {

		productCostObject.innerHTML = "Sorry! No Discount";
	} else {
				productCostObject.innerHTML = itemPrice;
	}

	productActualCostObject.innerHTML = actualPrice;
	productManufacturerObject.innerHTML = manufacturer;
	productCountryObject.innerHTML = itemCountry;
	imageObject.src ='/resources/image/products/choclates/' + productImageSrc;

	
	divObject.style.left = posX  + 120 + 'px';

	divObject.style.top = posY + 'px'; 

	Effect.BlindDown(divIdValue);
} 

function showCartSummaryDelay(cartImage, divIdValue, 
							  totalItemsId, totalItems, 
							  totalAmountId, totalAmount) {

	var cartMounseInObj = getElement ('CartMouseEventCount'); 
	var cartMousePosObj = getElement ('CartMousePositionVar'); 

	cartMounseInObj.value = parseInt(cartMounseInObj.value) + 1;
	cartMousePosObj.value = 1;

	window.setTimeout(function(){
				showCartSummary(cartImage, divIdValue, 
						totalItemsId, totalItems, 
						totalAmountId, totalAmount);
			},1000);

}


function showCartSummary(cartImage, divIdValue, 
						totalItemsId, totalItems, 
						totalAmountId, totalAmount) {

	var cartMouseInObj = getElement ('CartMouseEventCount'); 
	var cartMousePosObj = getElement ('CartMousePositionVar'); 

	cartMouseInObj.value -= 1;

	//alert ('Check 1');
	if (cartMousePosObj.value == 0) {

		return;
	}

	if (cartMouseInObj.value != 0) {

		//alert ('Failed ' + cartMousePosObj.value);
		return;
	}

	cartMousePosObj.value=2;

	var cartImageObject = getElement(cartImage);

	var divObject = getElement(divIdValue);

	var totalItemsObj = getElement(totalItemsId);
	var totalAmountObj = getElement(totalAmountId);

	totalItemsObj.innerHTML = totalItems;
	totalAmountObj.innerHTML = "$" + totalAmount;

	var posX = findPosX(cartImageObject);
	var posY = findPosY(cartImageObject);

	divObject.style.left = (posX -50) + 'px';

	divObject.style.top = posY + 70 + 'px'; 

	Effect.Appear(divIdValue);
	//Effect.SlideDown(divIdValue);
}

function hideCartSummary(divIdValue) {

	var cartMousePosObj = getElement ('CartMousePositionVar'); 

	if (cartMousePosObj.value == 2)	{
	
		Effect.Fade(divIdValue);
		//Effect.SlideUp(divIdValue);
	}

	cartMousePosObj.value = 0;
	
}

function showBlinderReadOnly (dropDownIdValue, divIdValue) {

	Effect.BlindDown(divIdValue);
} 


function hideBlinder(divIdValue) {

	Effect.BlindUp(divIdValue);
	//Effect.SlideUp(divIdValue);
	
}


function showCart(cartContainerId) {

	isCartShown = true
	cartContainer = getElement(cartContainerId);
	var browserName=navigator.appName; 

	if (browserName=="Microsoft Internet Explorer") {
		cartContainer.style.width = getViewportWidth ();
		cartContainer.style.height = getViewportHeight ();
	}

	if (window.screen.height >  getViewportHeight())	{
	
		cartContainer.style.height = window.screen.height + 10;
	}
	
	cartContainer.style.visibility = "visible";
}

function hideCart(cartContainerId) {
	isCartShown = false;
	cartContainer = getElement(cartContainerId);

	cartContainer.style.width = 0;
	cartContainer.style.height = 0;

	cartContainer.style.visibility = "hidden";
}

function setFieldValue (fieldName, fieldValue) {

	nextPageField = getElement (fieldName);
	nextPageField.value = fieldValue;

	return true;
}

/**
 * Code below taken from - http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/ *
 * Modified 4/22/04 to work with Opera/Moz (by webmaster at subimage dot com)
 * Gets the full width/height because it's different for most browsers.
 */
function getViewportHeight() {

	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 
	return window.undefined; 
}

function getViewportWidth() {
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
	return window.undefined; 
}

function checkShippingInfo () {

	errorElement = getElement ("errorMessageDateForm");

	var errorMessage = "";

	/*if (getElement("sameAsBilling").checked) {

		errorElement.value="";
		return true;
	}*/

	if (getElement("firstNameId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>First Name is Madatory</li>";
	}

	if (getElement("shipping_address1Id").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Address is Mandatory.</li>";
	}


	if (getElement("shipping_cityId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>City is Mandatory.</li>";
	}


	if (getElement("shipping_stateId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>State is Mandatory.</li>";
	}


	if (getElement("shipping_countryId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Country is Mandatory.</li>";
	}


	if (getElement("shipping_zipId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Zip is Mandatory.</li>";
	}

	if (getElement("shipping_phoneId").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Phone Number at Destination is Mandatory.</li>";
	}

	if (!getElement("readTermAndCond").checked || getElement("readTermAndCond").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>You have to agree to Terms & Conditions.</li>";
	}

	if (errorMessage != "") {

		errorMessage += "</ul>";

		errorMessage = "Few Entries are invalid in the Form<br>" + errorMessage; 
	}

	errorElement.value = errorMessage;
	return true;
}

function submitShippingInfoForm () {

	if (checkShippingInfo ()) {

		submitFormById('shippingInfoForm');
	}
}


function checkShippingDateOld () {

	errorElement = getElement ("errorMessageDateForm");
	var errorMessage = "";

	if (!isValidDate(getElement("shippingDateId").value, "m/d/Y")) {

		errorMessage = "Date Entered is Invalid. Please use Calendar icon or enter in mm/dd/yyyy format.";
	}

	errorElement.value = errorMessage;
	return true;
}

function checkShippingDate () {

	errorElement = getElement ("errorMessageDateForm");
	var errorMessage = "";

	var numDays = getElement("hidden_numdays").value;

	if (numDays <= 0) {

		errorMessage = "Please provide a valid zip code.";
	}

	errorElement.value = errorMessage;
	return true;
}


function submitShippingDateForm () {


//	var numDays = getElement("hidden_numdays").value;

	if (checkShippingDate ()) {
	
		submitFormById('shippingDateForm');
	}
}


function submitFeedbackForm () {

	errorElement = getElement ("ErrorMessage");

	errorMessage ="";

	if (getElement("UserEmailAddress").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>User Mail Address is Madatory</li>";
	}

	if (getElement("EmailSubject").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Mail Subject is Madatory</li>";
	}

	if (getElement("EmailBody").value == "") {

		if (errorMessage== "") {

			errorMessage = "<ul>";
		}
		errorMessage +="<li>Mail Body is Mandatory</li>";
	}

	if (errorMessage != "") {
	
		errorElement.value = errorMessage;
		submitFormById("errorForm");
	} else {

		if (getElement("UserEmailAddress").value == "") {

			var value=confirm("Without your eMail Address, we will not be able to contact you. Want to proceed?");

			if (value) {

				submitFormById("feedbackForm");		
			}

		} else {
	
			submitFormById("feedbackForm");		
		}
	}
}


function toggleRequiredInfoEnable () {

	var infoDisabled = getElement("sameAsBilling").checked;

	getElement("firstNameId").disabled = infoDisabled;
	getElement("lastNameId").disabled = infoDisabled;
	getElement("shipping_address1Id").disabled = infoDisabled;
	getElement("shipping_address2Id").disabled = infoDisabled;
	getElement("shipping_cityId").disabled = infoDisabled;
	getElement("shipping_stateId").disabled = infoDisabled;
	getElement("shipping_countryId").disabled = infoDisabled;
	getElement("shipping_zipId").disabled = infoDisabled;
	getElement("shipping_phoneId").disabled = infoDisabled;
	getElement("firstNameId").disabled = infoDisabled;
}

function toggleShowInfoView ( showDiv) {

	var infoDiv = getElement ("infoDiv");

	if (showDiv) {
	
		infoDiv.style.visibility = "visible";
	} else {

		infoDiv.style.visibility = "hidden";
	}

}

function mouseX(evt) {

	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?
								document.documentElement.scrollLeft :
							   document.body.scrollLeft);
	else return null;
}
function mouseY(evt) {

	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ?
								document.documentElement.scrollTop :
								document.body.scrollTop);
	else return null;
}

//Give Format as MDY or YMD etc...
function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) ||
      (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else
      if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else
      if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}

function sample() {

	alert ('Hello');
}