/***********************************************************
 * Name: 			Ski Pass Functions
 * Author: 			Josh Daniels
 * Email: 			josh@lockdata.com
 * Company: 		Lockdata Technologies
 * Last Modified: 	Oct. 30, 2009
 ***********************************************************/
	
jQuery(document).ready(function($) {

	/*******************************************************
	* restructure form items
	********************************************************/
	// information
	var spInfo = $('#skipassInformation');
	$(spInfo).find('select').before('<small class="prevPassQ">Have you had a Ski-Bigbear season pass before?</small>');
	
	// name, photo, birthday
	var spItems = new Array("#skipassName", "#skipassPhoto", "#skipassBirthday", "#skipassAddress", "#skipassEmail", "#skipassPhone");
	var item;
	for (item in spItems) {
		var sp = new Array();
		var currItem = $(spItems[item]);
		$(currItem).find('.LightCell').each(function(i) {
			sp[i] = $(this).find('td:first').find('input, b, textarea, a, small, img').removeAttr("style");
		});
		var sptable = $(currItem).find('table');
		var sptablerow = $("<tr />");
		for (i in sp) {
			$(sptablerow).append("<td class='col" + i + "' />");
			$(sptablerow).find(".col" + i).append(sp[i]);
		}
		$(sptable).html(sptablerow).addClass('skipassTable');
	}
	
	// signature checkbox
	$('#skipassSignLater table td:has(:checkbox)').addClass("signLater").parent().removeAttr('class').removeAttr('align');
	$('#skipassSignLater table td:not(.signLater), #skipassSignLater table tr.LightCell').remove();
		
	// signature
	var sigtable = $("<tr/>");
	$('#skipassSignature .LightCell').each(function(i) {
		$(sigtable).append("<td class='col" + i + "' />");
		$(sigtable).find(".col" + i).append($(this).find('td:first b, td:first input'));
	});
	$('#skipassSignature table').html(sigtable);
	
	
	// add instructions to name, birthday, address, and photo fields
	$('#skipassName input:text').after('<small class="inputInstructions">(First name Last name)</small>');
	var birthdayTB = $('#skipassBirthday input:text').after('<small class="inputInstructions">(MM/DD/YYYY)</small>');
	$('#skipassAddress textarea').after("<small class='inputInstructions multiline'>(Example:<br>"
		+ "123 Main Street<br>"
		+ "City, State ZIP)"
		+ "</small>");
	$('#skipassPhoto input[type=file]').after('<small class="inputInstructions">(jpg only, head &amp; shoulders close-up)</small>');
	
	// set up groupings
	$('#skipassInformation, #skipassName, #skipassPhoto, #skipassBirthday, #skipassAddress, #skipassPhone, #skipassEmail').wrapAll("<fieldset></fieldset>");
	$('#skipassSignature').wrap("<fieldset></fieldset>");
	
	// hide everything but "Add to Cart" button when available
	var addToCartForm = $('#itemPrice .kitPriceSpan form');
	if(addToCartForm.length < 1) {
		$('#itemPrice .kitPriceSpan').hide();
		$('#skipassForm').show();
	} else {
		// show add to cart button and confirmation page
		$('#itemPrice .kitPriceSpan').show().find('b, br, small, select').hide();
		$('#skipassForm').hide().after("<div id='skipassConfirmation'></div>");
		$('#skipassConfirmation').append('<table />');
		var spcTable = $('#skipassConfirmation table');
		spcTable.append("<tr>"
			+ "<td>Previous Pass Holder: </td>"
			+ "<td><pre>" + spInfo.find("select").find(":selected").text() + "</pre></td>"
			+ "</tr>");
		var confList = new Array("#skipassName", "#skipassAddress", "#skipassPhone", "#skipassEmail", "#skipassBirthday");
		for(item in confList) {
			var currItem = $(confList[item]).find('table');
			spcTable.append("<tr>" 
				+ "<td>" + currItem.find('td:first').text().replace(/[^a-zA-Z0-9\s]/g, "") 
				+ ": </td>" 
				+ "<td><pre>" + currItem.find('td input:text, textarea').val() + "</pre></td>"
				+ "</tr>");
		}
		spcTable.append("<tr>" 
			+ "<td>Skier Photo: </td><td />"
			+ "</tr>");
		spcTable.find('tr:last td:last').append($('#skipassPhoto table td').find('img').clone());
		
		// add order edit button to confirmation page
		spcTable.before("<a id='orderEdit'>Edit Order Details</a>");
		$("a#orderEdit").click(function() {
			$('#itemPrice .kitPriceSpan').toggle();
			$('#skipassForm').toggle();
			$('#skipassConfirmation').toggle();
		});
	}
	
	/*******************************************************
	* form actions
	********************************************************/
	// sign later checkbox actions, disables signature input box if checked
	var signLater = $("#skipassSignLater table td :checkbox");
	var sigBox = $("#skipassSignature input:text");
	signLater.change(function() {
		sigBox.attr('disabled', $(this).is(":checked"));
	});
	
	/*******************************************************
	* form validation
	********************************************************/
	$("#updateKitPriceButton").click(function() {
	
		var isValid = true;
		var errMsg = "Please enter valid information for the following fields:\n";
		
		// check required textboxes
		var requiredTB = new Array("#skipassName", "#skipassAddress", "#skipassPhone");
		if(!(sigBox.attr('disabled'))) {
			requiredTB.push("#skipassSignature");
		}
		var div;
		for(div in requiredTB) {
			var curr = $(requiredTB[div]).find('input:text, textarea');
			if(!$(curr).val().length) {
				errMsg += $(requiredTB[div]).find('b').text().replace(/[^a-zA-Z0-9\s]/g, "") + "\n";
				isValid = false;
			}
		}
		
		// ensure valid birthday
		var re = /[0-9]{1,2}\/[0-9]{1,2}\/(19|20)[0-9]{2}/;
		if(birthdayTB.val().match(re)){
			var dateArray = birthdayTB.val().split('/');
			var month = dateArray[0] - 1;
			var day = dateArray[1];
			var year = dateArray[2];
			var date = new Date(year,month,day);
			if(month != date.getMonth() || day != date.getDate() || year != date.getFullYear()) {
				errMsg += "Skier Birthday\n";
				isValid = false;
			}
		}else{
			errMsg += "Skier Birthday\n";
			isValid = false;
		}
		
		// show error message
		if(!isValid){
			alert(errMsg);
		}
		
		return isValid;
	});
});
