/* Tidy Suds Functions */
function updateDeliveryDates()
{
	var pickupDate  = $F( 'pickupDate' );
	var url  		= 'dates.php';
	var pars 		= 'date=' + pickupDate;
	var target 		= $( 'deliveryDateLI' );
	
	//var myAjax 		= new Ajax.Updater( target, url, {method: 'post', parameters: pars} );
	
	new Ajax.Request( url,
			{
				method:'post',
				parameters: pars,
				onSuccess: function(transport){
					var html = transport.responseText;
					var li	 = "<label>Select Delivery Date:</label>";
					li 		+= "<select name=\"deliveryDate\" class=\"firstSelectBox\"";
					li 		+= "id=\"deliveryDate\">";
					li 		+= html;
					li 		+= "</select>";
					$( 'deliveryDateLI' ).update( li );
					},
				onFailure: function(){ alert("Failure") }
			});
	
}

function changeNumberLoads( number )
{
	var loads 	= $$( 'li.loadPreference' );
	var current = loads.length;
	var diff	= current - number;
	
	if( diff < 0 ) // we have more to add
	{
		diff *= -1;
		for( var i = 0; i < diff; i++ )
		{
			var li	 = "<li class=\"loadPreference\">";				
			li 		+= "<label>Load " + (current + i + 1) + ":</label>";
			li		+= "<input type=\"text\" name=\"load" + (current + i) + "\" ";
			li		+= "size=\"15\" />";
			li		+= "&nbsp;&nbsp;&nbsp;&nbsp;Temperature:";
			li		+= "<select name=\"waterTemperature" + (current + i) + "\">";
			li		+= "<option value=\"cold\">Cold</option>";
			li		+= "<option value=\"warm\">Warm</option>";
			li		+= "<option value=\"hot\">Hot</option>";
			li		+= "</select>";
			li		+= "</li>";
			
			new Insertion.Bottom( 'loadPreferenceList', li );
		}
	}
	
	else if( diff > 0 ) // we have some to remove
	{
		for( var i = 0; i < diff; i++ )
		{
			loads[ current - i - 1 ].remove();
		}
		
	}
	
	loads 	= $$( 'li.loadPreference' );
	
	loads.each( function(s)
				{
					s.removeClassName( "noBorder" );
				}
			  );
	
	loads.last().addClassName( "noBorder" );
}

function popup( ajaxURL, divID )
{
	var div = $( divID );
	new Ajax.Updater( div, ajaxURL, {method: 'get'} );
	div.show();
	div.scrollTop = 0;
	new Effect.ScrollTo( div, {duration: .3, offset: -15} );

}

function closePopup( divID )
{
	var div = $( divID );
	new Effect.Fade( div );
}

function updateCartPrice()
{
	var url 	 = 'updateCartPrice.php';
	
	var pars 	 = 'numBags=' + document.confirmation.bags.value;
	pars		+= '&numLoads=' + document.confirmation.numloads.value;
	pars		+= '&detergent=' + document.confirmation.detergent.value;
	pars		+= '&bleach=' + document.confirmation.bleach.value;
	pars		+= '&fabricSoftner=' + document.confirmation.fabricsoftner.value;
	pars		+= '&plan=' + document.confirmation.weeklyPlan.value;
	pars		+= '&coupon=' + document.confirmation.couponCode.value;
	pars		+= '&shirts=' + document.confirmation.shirts.value;
	pars		+= '&shirts_boxed=' + document.confirmation.shirts_boxed.value;
	pars		+= '&pants=' + document.confirmation.pants.value;
	pars		+= '&sweaters=' + document.confirmation.sweaters.value;
	pars		+= '&dresses=' + document.confirmation.dresses.value;
	pars		+= '&coats=' + document.confirmation.coats.value;
	
	var target 	 = $( 'prices' );
	var plan	 = document.confirmation.weeklyPlan.value;
	
	var myAjax 	 = new Ajax.Updater( target, url, 
									{ method: 'post', 
									  parameters: pars, 
									  onComplete: function() { 
									  	new Effect.Highlight( "totalPrice", {duration: 3.0} ); } 
									} );
}

function checkZeroBags( value )
{
	if( value == 0 )
	{
		$('fieldset_loads').hide();
		$('fieldset_prefs').hide();
		$('sudsSpecial').hide();
		$('fieldset_sudsSpecial').hide();
	}
	else
	{
		$('fieldset_loads').show();
		$('fieldset_prefs').show();
		$('sudsSpecial').show();
		$('fieldset_sudsSpecial').show();
	}
}


function elementToggle( clickableElement, toggledElement )
{
	var clickable = $( clickableElement );
	var togglable = $ (toggledElement );
	
	new Effect.toggle( togglable, 'appear' );

	if( clickable.hasClassName('expand') )
	{
		clickable.removeClassName('expand');
		clickable.addClassName('collapse');
	}
	else if( clickable.hasClassName('collapse') )
	{
		clickable.removeClassName('collapse');
		clickable.addClassName('expand');
	}
}

function checkNumbers( element, requiredLength, errorText )
{
	var value 		= $F( element );
	var stripped 	= value.replace(/[\(\)\.\-\ ]/g, '');
	var error		= "";

	if(  isNaN( parseInt(stripped) )  ) 
	{
		var listElement = $( element ).up();
		var nextElement	= listElement.next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
		error 	 = "<li class=\"error\">" + errorText + "</li>";
		new Insertion.After( listElement, error );
	}
	
	else if( !(stripped.length == requiredLength) ) 
	{
		var listElement = $( element ).up();
		var nextElement	= listElement.next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
		error  	 = "<li class=\"error\">" + errorText + "</li>";
		new Insertion.After( listElement, error );
	}
	else
	{
		var listElement = $( element ).up();
		var nextElement	= listElement.next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
	}
}

function checkPasswordsMatch()
{
	var pass1 = $F( 'password' );
	var pass2 = $F( 'password2' );
	
	if( pass1 != pass2 )
	{		
		var nextElement	= $( 'password2' ).next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
		error  	 = "<li class=\"error\">Passwords do not match</li>";
		new Insertion.After( 'password2', error );
	}
	else
	{	
		var nextElement	= $( 'password2' ).next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
	}
}

function checkPasswordLength()
{
	var pass1 = $F( 'password' );
	
	if( pass1.length < 6 )
	{
		var nextElement	= $( 'password' ).next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
		error  	 = "<li class=\"error\">Passwords must be at least 6 characters</li>";
		new Insertion.After( 'password', error );
	}
	else
	{
		var passLengthError	= $( 'password' ).next();
		if( passLengthError && passLengthError.hasClassName("error") )
		{
			passLengthError.remove();
		}
	}
}

function checkEmail( email )
{
	apos 		= email.indexOf("@");
	dotpos 		= email.lastIndexOf(".");
	
	if( apos < 1 || dotpos - apos < 2 ) 
  	{
		var nextElement	= $( 'email' ).next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
		error  	 = "<li class=\"error\">Email is not valid</li>";
		new Insertion.After( 'email', error );
	}
	else 
	{
		var nextElement	= $( 'email' ).next();
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
	}
}

function checkTextLength( element, maxLength )
{
	var value 		= $F( element );
	var length 		= value.length;
	var error		= "<li class=\"error\">Content is too large. Please limit to 1000 characters.</li>";

	if(  length > maxLength  ) // the text is too large
	{
		var listElement = $( element ).up();
		var nextElement	= listElement.next();
		
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}

		new Insertion.After( listElement, error );
	}
	else // the text is the appropiate size, remove any appropiate errors (if any)
	{
		var listElement = $( element ).up();
		var nextElement	= listElement.next();
		
		if( nextElement && nextElement.hasClassName("error") )
		{
			nextElement.remove();
		}
	}
}

function showLaundryPrefs()
{
	$( 'fieldset_prefs_edit_text' ).hide();
	
	new Effect.Appear( 'fieldset_prefs' );
}

function showLoadPrefs( numBags )
{
	var laundryOrderInfo = $( 'laundryOrderInfo' );
	
	if( numBags != 0 )
	{	
		if( !laundryOrderInfo.visible() )
		{
			new Effect.Appear( laundryOrderInfo );
		}
	}
	else
	{
		if( laundryOrderInfo.visible() )
		{
			new Effect.Fade( laundryOrderInfo );
			
			var popup = $( 'popup' );
			
			if( popup.visible() )
				new Effect.Fade( popup );
		}
	}
}

function checkMinDryCleaning()
{
	var shirts			= parseInt( document.confirmation.shirts.value );
	var shirts_boxed	= parseInt( document.confirmation.shirts_boxed.value );
	var pants			= parseInt( document.confirmation.pants.value );
	var sweaters		= parseInt( document.confirmation.sweaters.value );
	var dresses			= parseInt( document.confirmation.dresses.value );
	var coats			= parseInt( document.confirmation.coats.value );
	var numBags			= parseInt( document.confirmation.bags.value );
	
	var totalItems		= shirts + shirts_boxed + pants + sweaters + dresses + coats;
	
	if( numBags > 0 )
	{
		return true;	
	}
	else if( totalItems > 7 )
	{
		return true;
	}
	else
	{
		var dryCleaningRequiredText = $( 'dryCleaningRequiredText' );
		
		dryCleaningRequiredText.removeClassName( "required" ); // take away the old class name
		dryCleaningRequiredText.addClassName( "error" ); // add a new class name
		
		var positionLeft = $( 'confirmation' ).offsetLeft;
		var positionTop  = $( 'confirmation' ).offsetTop;
		
		window.scrollTo( positionLeft, positionTop-60 );
		
		new Effect.Appear( dryCleaningRequiredText ); // show it
		
		return false;
	}
		
	
}

function checkMinOrder()
{
	var numBags		= parseInt( document.confirmation.bags.value );
	var totalPrice	= 0;
	
	if( document.confirmation.actualPrice )
	{
		totalPrice	= parseInt( document.confirmation.actualPrice.value );
	}
	
	if( numBags > 0 )
	{
		return true;	
	}
	else if( totalPrice > 14.99 )
	{
		return true;
	}
	else
	{
		var dryCleaningRequiredText = $( 'dryCleaningRequiredText' );
		
		dryCleaningRequiredText.removeClassName( "required" ); // take away the old class name
		dryCleaningRequiredText.addClassName( "error" ); // add a new class name
		
		var positionLeft = $( 'confirmation' ).offsetLeft;
		var positionTop  = $( 'confirmation' ).offsetTop;
		
		window.scrollTo( positionLeft, positionTop-60 );
		
		new Effect.Appear( dryCleaningRequiredText ); // show it
		
		return false;
	}
		
	
}

/******************************************
	Admin Functions
******************************************/

function changeOrderViewDate( date )
{
	window.location.href = "/admin/orders.php?day=" + date;
}