<!--

function cancelEmail() {
	$("#layEmailOptions").text("");
}

$(document).ready(function() {
	$("a#EmailItinerary").click(function() {
		$("#layEmailOptions").load( baseUrl + "/clipboard/showEmailOptions" );
  });
	
	$('#SendEmail').live('click', function() {
		
		$.get(baseUrl, $('form#EmailOptions').serialize(), function(data) {
				$('#layEmailOptions').html(data);
		});
		
		return false;
	});	
	
	$('#promoCode').live('click', function() {
		return false;
	});
	
	$('#tdPromo').live('click', function(event) {
		if(event.target.type == 'image'){
			var pImg = $(':input[name="verifyPromoCode"]', this);
			var pPromoCode = $(':input[name="promoCode"]', this);
			var pPromoDetail = $(':span[id="promoDetail"]', this);
			var pPromoCodeVal = pPromoCode.val();
			var pGUID = $(':hidden[name="promoBookingID"]', this).val();
			var pWineryID = $(':hidden[name="promoWineryID"]', this).val();
			var pScheduleID = $(':hidden[name="promoScheduleID"]', this).val();
			var pSubtotal = $(':hidden[name="promoSubtotal"]', this).val();
			var pPromoID = $(':hidden[name="promoPromoID"]', this);
		    var rowTotal = parseFloat($(this).closest('tr').children('td.totalDeposit').text().replace(/[$,]+/g,""));
			var thisRow = $(this).closest('tr').children('td.totalDeposit');
			
			if(pPromoDetail.text().length > 0){
				$.post("/", {
					   method : "clipboard.removePromo",
					   promoCode : pPromoCodeVal,
					   bookingID : pGUID,
					   wineryID : pWineryID,
					   scheduleID : pScheduleID
				}, function(data) {
					if(data.success == 'true'){
						pImg.attr('src', '../assets/images/form/tag_blue_add1.png');
						pImg.attr('title', 'Click here to ADD this promo code.');
						pPromoDetail.text('');
						pPromoCode.val('enter code');
						pPromoCode.show();
						$(thisRow).text("$" + pSubtotal);
						reCalc();
						pPromoCode.focus();
					}else{
						alert('There was an error attempting to remove this promo.');	
					}
				}, "json");
			}else if(pPromoCodeVal.length > 0 && pWineryID.length > 0 && pScheduleID.length > 0 && pPromoDetail.text().length == 0){
				if(pPromoCode.val() == 'enter code'){
					pPromoCode.focus();
				}else{
					$.post("/", {
						   method : "clipboard.checkPromo",
						   promoCode : pPromoCodeVal,
						   bookingID : pGUID,
						   wineryID : pWineryID,
						   scheduleID : pScheduleID,
						   subtotal : pSubtotal
					}, function(data) {
						if(!isNaN(data.tmpDiscount)){
							if(parseFloat(data.tmpDiscount) > 0){
								pPromoID.val(data.tmpPromo);
								$(thisRow).text("$" + data.tmpTotal);
								pPromoCode.hide();
								pPromoDetail.text('-$' + data.tmpDiscount);
								pImg.attr('src', '../assets/images/form/tag_blue_delete1.png');
								pImg.attr('title', 'Click here to REMOVE this promo code.');
								reCalc();
							}else{
								alert('The code provided is invalid.');	
								pPromoCode.val('enter code');
								pPromoCode.focus();
							}
						}
					}, "json");
				}
			}
		}
		return false;
	});
	
	function reCalc(){
		var grandTotal = 0.00;
		var thisSubTotal = 0.00;
		
		$("tr td.totalDeposit").each(function() {
				thisSubTotal = parseFloat($(this).text().replace(/[$,]+/g,""));
				grandTotal+= thisSubTotal;
		});
		$('tr td.grandTotal').text("$" + grandTotal.toFixed(2));
		$("#depositTotal").val(grandTotal.toFixed(2));
		
		if(document.checkoutForm.ccNow.value == 1){
			if(grandTotal.toFixed(2) > 0.00){
				$("#cardInfo").show();
			}else{
				$("#cardInfo").hide();
			}
		}
	}
});



function removeFromClipBoard(target,delID,size) {
	$(target).load( baseUrl + '/clipboard/remove', { 'delBookingID' : delID, 'size' : size });
}

function validateCheckoutForm() {
	var d = new Date();
	var curr_month = d.getMonth() + 1;
	var curr_year = d.getFullYear();
	
	bUS = isUS(document.getElementById('country')[document.getElementById('country').selectedIndex].text);
	
	if (trim(document.checkoutForm.FirstName.value) == '') {
		alert("Please enter your First Name.");
		return false;
	}
	
	if (trim(document.checkoutForm.LastName.value) == '') {
		alert("Please enter your Last Name.");
		return false;
	}
	
	if (!isEmail(document.checkoutForm.Email)) {
		return false;
	}
	
	if (!validatePhone(document.checkoutForm.Phone.value, bUS)) {
		alert("Please enter a valid Phone number.");
		return false;
	}
	
	if (document.checkoutForm.street.value == '') {
		alert("Please enter your Street address.");
		return false;
	}
	
	if (document.checkoutForm.city.value == '') {
		alert("Please enter your City.");
		return false;
	}
	
	if(bUS) {
		if (document.checkoutForm.state.value == '') {
			alert("Please select your State.");
			return false;
		}
	}else{
		if (document.checkoutForm.regionProvince.value == '') {
			alert("Please enter your Region/Province.");
			return false;
		}
	}
	
	if (!validateZip(document.checkoutForm.zip.value, bUS)) {
		alert("Please enter a valid Zip code.");
		return false;
	}
	
	if(document.checkoutForm.ccNow.value == 1 && document.checkoutForm.DepositTotal.value > 0.00){
		
		if (trim(document.checkoutForm.nameOnCard.value) == '') {
			alert("Please enter the Name on your Credit Card.");
			return false;
		}
		
		if (document.checkoutForm.ccType.value == '') {
			alert("Please select the Credit Card Type.");
			return false;
		}

		if (document.checkoutForm.ccNumber.value == '') {
			alert("Please enter your Credit Card Number.");
			return false;
		}
		
		var ValidCCNumber = isCreditCard(document.checkoutForm.ccNumber, document.checkoutForm.ccType);
		
		if (ValidCCNumber == false) {
			return false;
		}

		if (curr_year > parseInt(document.checkoutForm.year.value)) {
			alert("Please enter a valid CC expiration date.");
			return false;
		}
		
		if (curr_year == parseInt(document.checkoutForm.year.value) && parseInt(document.checkoutForm.month.value) < curr_month) {
			alert("Please enter a valid CC expiration date.");
			return false;
		}
	}
	
	return true;
}

function isEmail(e) {
	var reEmail = /^([a-zA-Z0-9]+([\.+_-][a-zA-Z0-9]+)*)@(([a-zA-Z0-9]+((\.|[-]{1,2})[a-zA-Z0-9]+)*)\.[a-zA-Z]{2,6})$/;
	var result = reEmail.test(e.value);
	if (!result){
		alert("Please enter a valid E-mail Address.");
		setTimeout(function(){e.focus();e.select();},10);
		result = false;
	}
	
	return result;
}


function isPhone(field) {
  if(field.value == '') return false;
  bUS = isUS(document.getElementById('country')[document.getElementById('country').selectedIndex].text)
  if(!validatePhone(field.value, bUS)){
	alert("Please enter a valid Phone number");
		return false;
  }
	return true;
}


function isZip(field) {
    if(field.value == '') return false;
    bUS = isUS(document.getElementById('country')[document.getElementById('country').selectedIndex].text)
    if(!validateZip(field.value, bUS)){
		alert("Please enter a valid Zip code");
			return false;
    }
    return true;
}


function isCreditCard (e, f) {

  var cardnumber = new String(e.value);
  var cardID = new String(f.selectedIndex);
  var cardname = new String(f.options[cardID].text);
  var result = false;
  //alert("Cardnumber: " + cardnumber + " Cardname: " + cardname);
  if(cardnumber == '') return false;
  var cards = new Array();

  cards [0] = {name: "Visa", 
               length: "13,16", 
               prefixes: "4",
               checkdigit: true};
  cards [1] = {name: "MasterCard", 
               length: "16", 
               prefixes: "51,52,53,54,55",
               checkdigit: true};
  cards [2] = {name: "American Express", 
               length: "15", 
               prefixes: "34,37",
               checkdigit: true};
  cards [3] = {name: "Discover", 
               length: "16", 
               prefixes: "6011,622,64,65",
               checkdigit: true};
               

  var cardType = -1;
  for (var i=0; i<cards.length; i++) {
    if (cardname.toLowerCase () == cards[i].name.toLowerCase()) {
      cardType = i;
      break;
    }
  }
  
  if (cardType == -1) {
     alert("Please choose Visa, MasterCard or American Express.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
  }

  if (cardnumber.length == 0)  {
     alert("Please provide your Credit Card Number for this transaction.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
  }
    
  cardnumber = cardnumber.replace (/\s/g, "");
  
  var cardNo = cardnumber
  var cardexp = /^[0-9]{13,19}$/;
  if (!cardexp.exec(cardNo))  {
     alert("Please provide a valid Credit Card Number for this transaction.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
  }
       
  // Now check the modulus 10 check digit - if required
  if (cards[cardType].checkdigit) {
    var checksum = 0;                                  // running checksum total
    var mychar = "";                                   // next char to process
    var j = 1;                                         // takes value of 1 or 2
  
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
      calc = Number(cardNo.charAt(i)) * j;
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      checksum = checksum + calc;
    
      if (j ==1) {j = 2} else {j = 1};
    } 

    if (checksum % 10 != 0)  {
     alert("Please provide a valid Card Number for this transaction.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
    }
  }  

  var LengthValid = false;
  var PrefixValid = false; 
  var undefined; 

  var prefix = new Array ();
  var lengths = new Array ();
    
  prefix = cards[cardType].prefixes.split(",");
      
  for (i=0; i<prefix.length; i++) {
    var exp = new RegExp ("^" + prefix[i]);
    if (exp.test (cardNo)) PrefixValid = true;
  }
      
  if (!PrefixValid) {
     alert("Please provide a valid Card Number for this transaction.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
  }
    
  lengths = cards[cardType].length.split(",");
  for (j=0; j<lengths.length; j++) {
    if (cardNo.length == lengths[j]) LengthValid = true;
  }
  
  if (!LengthValid) {
     alert("Please provide a valid Card Number for this transaction.");
     setTimeout(function(){e.focus();e.select();},10);
     return false; 
  };   
  
  return true;
}

-->
