

/******************************************************************************************************************************************************/
var ORDERFIELD = {};



function GetConfirmationMsg()
{
	var name = document.getElementById("fullname").value;
	var phoneNumber = document.getElementById("area").value + "-" + document.getElementById("city").value + "-" + document.getElementById("number").value;
	var email = document.getElementById("email").value;

	var PickupDate = document.getElementById("date").value;
	var PickupTime = document.getElementById("selHour").value + ":" + document.getElementById("selMin").value + document.getElementById("ampm").value;
		
	var returnMsg = "Contact Information:\n";
	returnMsg = returnMsg + name + "\n";
	returnMsg = returnMsg + phoneNumber + "\n";
	if( email !== "" ) { returnMsg = returnMsg + email + "\n"; }

	returnMsg = returnMsg + "Pickup Date: " + PickupDate + "\n";
	returnMsg = returnMsg + "Pickup Time: " + PickupTime + "\n\n";
	
	returnMsg = returnMsg + "Orders:\n"; 
	
	if( !IsEmpty( document.getElementById("plate50") ) && document.getElementById("plate50").value !== "0" ) 
	{ 
		returnMsg = returnMsg + "$50 (version " + document.getElementById("v50").value + ") platter:  " + document.getElementById("plate50").value + " orders.\n";
	}
	if( !IsEmpty( document.getElementById("plate80") ) && document.getElementById("plate80").value !== "0" ) 
	{ 
		returnMsg = returnMsg + "$80 (version " + document.getElementById("v80").value + ") platter:  " + document.getElementById("plate80").value + " orders.\n";
	}
	if( !IsEmpty( document.getElementById("plate110") ) && document.getElementById("plate110").value !== "0" )
	{ 
		returnMsg = returnMsg + "$110 (version " + document.getElementById("v110").value + ") platter:  " + document.getElementById("plate110").value + " orders.\n";
	}
	if( !IsEmpty( document.getElementById("plate150") ) && document.getElementById("plate150").value !== "0" )
	{ 
		returnMsg = returnMsg + "$150 Platter: " + document.getElementById("plate150").value + " orders.\n";
	}

	return returnMsg;
}


function IsEmpty( elem, errorMsg ){
	if(elem.value.length === 0)
	{
		alert( errorMsg );
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function UpdateAMPM( fld )
{
	var hour = parseInt( fld.value, 10 );
	
	var ampm = document.getElementById("ampm");
	
	if( hour === 11 )
	{
		ampm.value = "AM";
		
	}
	else
	{
		ampm.value = "PM";
	}
}

function validateOrderEntry()
{
	var bHasOrder = false;
	var bNeedVersion = false;
	if( !IsEmpty( document.getElementById("plate50") ) && document.getElementById("plate50").value !== "0" ) 
	{ 
		if( document.getElementById("v50").value.length === 0 ){ bNeedVersion = true; }
		bHasOrder = true; 
	}
	if( !IsEmpty( document.getElementById("plate80") ) && document.getElementById("plate80").value !== "0" ) 
	{ 
		if( document.getElementById("v80").value.length === 0 ){ bNeedVersion = true; }
		bHasOrder = true; 
	}
	if( !IsEmpty( document.getElementById("plate110") ) && document.getElementById("plate110").value !== "0" ) 
	{ 
		if( document.getElementById("v110").value.length === 0 ){ bNeedVersion = true; }
		bHasOrder = true; 
	}
	if( !IsEmpty( document.getElementById("plate150") ) && document.getElementById("plate150").value !== "0" ) 
	{ 
		bHasOrder = true; 
	}

	if( !bHasOrder )
	{
		alert("Please make an order.");
		return false;
	}
	
	if( bNeedVersion )
	{
		alert("Please select platter version.");
		return false;
	}
	
	return true;
}

function validateName( ) 
{
	if( IsEmpty( document.getElementById("fullname"), "Please enter your name." ) ) { return false; }
	return true;
}

function validatePhoneAndEmail( )
{
	var areacode = document.getElementById("area");
	var citycode = document.getElementById("city");
	var numbercode = document.getElementById("number");
	
	if( IsEmpty( areacode, "Please enter a valid phone number.") || IsEmpty( citycode, "Please enter a valid phone number.") || IsEmpty( numbercode, "Please enter a valid phone number.") )
	{	
		return false;
	}
	
	
	var email = document.getElementById("email");
	
	if( email.value !== "")
	{
		if( !emailValidator( email, "There is some problem with your email format.") ) { return false; }
	}
	
	return true;
}

function validateDate( )
{
	var dateField = document.getElementById("date");
	
	if( dateField.value === "Use Calandar--->" )
	{
		alert("Please select your pickup date.");
		return false;
	}
	
	return true;	
}


function ValidateFields( Form )
{
	if( !validateOrderEntry() ) { return false; }
	if( !validateName() ) { return false; }
	if( !validateDate() ) { return false; }
	if( !validatePhoneAndEmail() ) { return false; }

	var confirmMsg = GetConfirmationMsg();
	
	var answer = confirm("Are the following information correct?\n\n" + confirmMsg )
	if (answer)
	{
		document.getElementById("outField").value = confirmMsg;
	}
	else
	{ 
		return false; 
	}

	return true;
}


/***************************************************************************************************************************************************/



YAHOO.namespace("orderForm.container");

function initYUI() {
	
	//Delete any cookies.
	var cookieDate = new Date();
    document.cookie = "v0=1;expires=" + cookieDate.toGMTString() + ";" + ";";
	
	// Define various event handlers for Dialog
	
	var handleSubmit = function() {
		
		if( !ValidateFields( this ) ) { return false; }
		
		this.submit();
	};
	var handleCancel = function() {
		this.cancel();
	};
	var handleSuccess = function(o) {
		
		alert("Thank you for ordering with us. Please come back again!");
		
		window.close();
	};
	var handleFailure = function(o) {
		alert("Submission failed: " + o.status);
	};

	// Instantiate the Dialog
	YAHOO.orderForm.container.dialog = new YAHOO.widget.Dialog("orderDialog", 
																			{ width : "750px",
																			  fixedcenter : false,
																			  draggable: false,
																			  visible : true, 
																			  constraintoviewport : true,
																			  close : false,
																			  buttons : [ { text:"Check and Submit", handler:handleSubmit }]
																			});

	// Validate the entries in the form to require that both first and last name are entered
	YAHOO.orderForm.container.dialog.validate = function() 
	{
		var data = this.getData();
		if (data.firstname == "" || data.lastname == "") {
			alert("Please enter your first and last names.");
			return false;
		} else {
			return true;
		}
	};

	// Wire up the success and failure handlers
	YAHOO.orderForm.container.dialog.callback = { success: handleSuccess, failure: handleFailure };
	
	// Render the Dialog
	YAHOO.orderForm.container.dialog.render();

	//Calender 
	
	var minDate = new Date();
	var maxDate = new Date();
	
	var curMonth = maxDate.getMonth();
	var curYear = maxDate.getFullYear();
	
	if( curMonth === 11 )
	{
		maxDate.setMonth( 0 );
		maxDate.setFullYear( curYear + 1 );
	}
	else
	{
		maxDate.setMonth( curMonth + 1 );
	}
	
	var curTime = minDate.getTime();
	minDate.setTime( curTime + ( 48*60*60*1000 ) );

	var ddd = minDate.toString();

	YAHOO.orderForm.container.calendar = new YAHOO.widget.Calendar("Cal","calContainer", {  mindate: minDate, maxdate: maxDate,title:"Choose a date:", close:true } );
	

	var xoutSunday = function(workingDate, cell) 
	{
		cell.innerHTML = "X";
		YAHOO.util.Dom.addClass(cell, "sunday");
		return YAHOO.widget.Calendar.STOP_RENDER;
	}

	YAHOO.orderForm.container.calendar.addWeekdayRenderer(1, xoutSunday);
	YAHOO.orderForm.container.calendar.render();
	
	
	
	YAHOO.util.Event.addListener("showCal", "click", YAHOO.orderForm.container.calendar.show, YAHOO.orderForm.container.calendar, true);
	
	YAHOO.orderForm.container.calendar.selectEvent.subscribe(function() {
																	  
                    if ( YAHOO.orderForm.container.calendar.getSelectedDates().length > 0 ) 
					{

                        var selDate = YAHOO.orderForm.container.calendar.getSelectedDates()[0];
						var mon = selDate.getMonth()+1;
						var day = selDate.getDate();
						var year = selDate.getFullYear();
		
                        YAHOO.util.Dom.get("date").value = mon + "/" + day + "/" + year;
                    } 
					else 
					{
                        YAHOO.util.Dom.get("date").value = "";
                    }
					YAHOO.util.Dom.get("calContainer").style.display = "none";
                });
		
}

YAHOO.util.Event.onDOMReady( initYUI );


