function MM_jumpMenu(targ,selObj,restore){ //v3.0
	//alert(selObj.options[selObj.selectedIndex].value);
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

// Verify an email address
function valEmail(theEmail) {
	with (theEmail) {
		apos	= theEmail.indexOf("@");
		dotpos	= theEmail.lastIndexOf(".");
		
		if (apos < 1 || dotpos - apos < 2) {
			return false;
		} else {
			return true;
		}
	}
}

// Verify the form
function verifyForm(form) {
	// Loop through form elements
	var errNum	= 0;
	var errMsg	= "";
	
	for (var i= 0; i < form.elements.length; i++) {
		var formType	= form.elements[i].type;
		var formName	= form.elements[i].name;
		var formVal		= document.getElementById(formName).value;
		//alert(formName);
			
		switch(formName) {
			case "Email":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please fill out your email address.\n";
				} else {
					// Not blank, check against pattern
					if (!valEmail(formVal)) {
						errNum++;
						errMsg	+= "Please format your email address properly.\n";
					}
				}
				break;
				
			case "Name":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please fill out your name.\n";
				}
				break;
				
			case "Address":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please fill out your address.\n";
				}
				break;
				
			/*case "city":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please fill out your city.\n";
				}
				break;
				
			case "state":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please choose your state.\n";
				}
				break;
				
			case "country":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please choose your country.\n";
				}
				break;
				
			case "howfound":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please choose how you found out about us.\n";
				}
				break;*/
			
			case "captcha":
				if (formVal == "") {
					errNum++;
					errMsg	+= "Please complete the captcha.\n";
				}
				break;
		}
	}
	
	if (errNum >= 1) {
		alert(errMsg);
		return false;
	} else {
		return true;
	}
}

function sortList(listId) 
	{
	var lb	= document.getElementById(listId);
	var st	= false;	// selected text
	
	arrTexts	= new Array();
	arrValues	= new Array();
	arrOldTexts	= new Array();

	for(i=0; i<lb.length; i++)
		{
		arrTexts[i]		= lb.options[i].text;
		arrValues[i]	= lb.options[i].value;
		arrOldTexts[i]	= lb.options[i].text;
		if (lb.options[i].selected == true)	{ st = lb.options[i].value; }
		}

	arrTexts.sort(customStateSort);

	for(i=0; i<lb.length; i++)
		{
		lb.options[i].text	= arrTexts[i];
		
		for(j=0; j<lb.length; j++)
			{
			if (arrTexts[i] == arrOldTexts[j])
				{
				lb.options[i].value	= arrValues[j];
				j	= lb.length;
				}
			}
		}
	
	// Select the correct value
	if (st == '')	{ st = 'PA'; }
	for(z=0; z<lb.length; z++)
		{
		if (lb.options[z].value == st)	{ lb.options[z].selected = true; }
		}
	}
	
function selectDefaultVal(listId, defaultVal, defOverride)
	{
	var lb	= document.getElementById(listId);
	var dv	= defaultVal;
	var dvi	= false;
	
	var ds	= false;	// default exists
	var dsi	= false;	// default index
	
	// Check for a default value
	for(i=0; i<lb.length; i++)
		{
		// If this is a default value, set parameters
		if (lb.options[i].selected == true)	{ ds = true; dsi = i; }
		
		// If this is our new default, set parameters
		if (lb.options[i].value == dv) { dvi = i; }
		}
	
	// No default value, set our own only if we're overriding the default
	if (defOverride == true && dv != false)
		{
		lb.options[dvi].selected = true;
		}
	
	// This is the existing default value
	else if (defOverride == false && (ds == true && dsi != false))
		{
		lb.options[dsi].selected = true;
		}
	}
	
function customStateSort(a, b)
	{
	var a	= a.toLowerCase();
	var b	= b.toLowerCase();
	
	// Kick 'Outside US' to the bottom
	if (a == 'outside us')
		{
		return 1;
		}
	else if (b == 'outside us')
		{
		return -1;
		}
		
	// Normal Sorting
	else
		{
		if (a < b)
			{
			return -1;
			}
		else if (a > b)
			{
			return  1;
			}
		else
			{
			return 0;
			}
		}
	}
	
function setupYears(listId, startYear, numYears)
	{
	var lb	= document.getElementById(listId);
	
	// Kill all options
	document.getElementById(listId).options.length	= 0;
	
	// Add all new years
	document.getElementById(listId).options[0]	= new Option('Year', '');
	for (i=startYear;i<=(startYear + numYears);i++)
		{
		document.getElementById(listId).options[document.getElementById(listId).options.length]	= new Option(i);
		}
	}
	
function rewriteInvoiceAddendum(divContainer, divInner, divOld)
	{
	// Gather the old contents
	var oldContent	= document.getElementById(divOld).innerHTML;
		// White Space
		oldContent	= oldContent.replace(/^\s*|\s*$/g,'');
		// Get the values
		oldContent	= oldContent.replace('1. [Required Date: Month] - ', '');
		oldContent	= oldContent.replace('2. [Required Date: Day] - ', '');
		oldContent	= oldContent.replace('3. [Required Date: Year] - ', '');
		oldContent	= oldContent.replace('4. [Comments] - ', '');
		// Make an array of the values
		oldContent	= oldContent.split('<br>');
		// Pop off the top array value
		oldContent.shift();
		//alert('POST ARRAY SHIFT: '+oldContent);
	
	// Kill the old contents
	$('#'+divOld).remove();
	
	// Setup the new content
	var field_Month		= oldContent[0];
	var field_Day		= oldContent[1];
	var field_Year		= oldContent[2];
	var field_Comments	= oldContent[3];
	
	var newContent	= '';
	//newContent	+= '<div id="'+divInner+'">';	
		newContent	+= '<div id="addendum-fields">';
			newContent	+= '<div class="form_row">';
				newContent	+= '<label>Required Date:</label>';
				newContent	+= '<div>'+field_Month+' '+field_Day+', '+field_Year+'</div>';
			newContent	+= '</div>';
			newContent	+= '<div class="form_row">';
				newContent	+= '<label>Comments:</label>';
				newContent	+= '<div>'+field_Comments+'</div>';
			newContent	+= '</div>';
		newContent	+= '</div>';
	//newContent	+= '</div>';
	//alert(newContent);
	
	// Replace the invoice addendum
	document.getElementById(divInner).innerHTML = newContent;
	}
	
function setupCheckoutShipping()
	{
	if (document.getElementById('ShipStateSelect'))	{ sortList('ShipStateSelect'); selectDefaultVal('ShipStateSelect', false, false); }
	if (document.getElementById('ShipCountry'))		{ sortList('ShipCountry'); selectDefaultVal('ShipCountry', 'US', true); }
	}
	
function setupCheckoutBilling()
	{
	if (document.getElementById('BillStateSelect'))	{ sortList('BillStateSelect'); selectDefaultVal('BillStateSelect', false, false); }
	if (document.getElementById('BillCountry'))		{ sortList('BillCountry'); selectDefaultVal('BillCountry', 'US', true); }
	}
	
function setupCustomerShipping()
	{
	if (document.getElementById('Customer_ShipStateSelect'))	{ sortList('Customer_ShipStateSelect'); selectDefaultVal('Customer_ShipStateSelect', false, false); }
	if (document.getElementById('Customer_ShipCountry'))		{ sortList('Customer_ShipCountry'); selectDefaultVal('Customer_ShipCountry', 'US', true); }
	}
	
function setupCustomerBilling()
	{
	if (document.getElementById('Customer_BillStateSelect'))	{ sortList('Customer_BillStateSelect'); selectDefaultVal('Customer_BillStateSelect', false, false); }
	if (document.getElementById('Customer_BillCountry'))		{ sortList('Customer_BillCountry'); selectDefaultVal('Customer_BillCountry', 'US', true); }
	}
function setupCheckoutReqDate()
	{
	var theDate		= new Date();
	var theDay		= theDate.getDate();
	var theMonth	= (theDate.getMonth() + 1);
	var theYear		= (theDate.getFullYear());
	
	if (document.getElementById('checkout_day'))	{ selectDefaultVal('checkout_day', '', true); }
	if (document.getElementById('checkout_month'))	{ selectDefaultVal('checkout_month', '', true); }
	if (document.getElementById('checkout_year'))	{ setupYears('checkout_year', theYear, 5); selectDefaultVal('checkout_year', '', true); }
	}
function setupInvoiceAddendum()
	{
	if (document.getElementById('invoice_addendum_inner'))	{ rewriteInvoiceAddendum('invoice_addendum', 'invoice_addendum_inner', 'invoice_addendum_old'); }
	}
function setupMivaDropdowns()
	{
	setupCheckoutShipping();
	setupCheckoutBilling();
	setupCustomerShipping();
	setupCustomerBilling();
	setupCheckoutReqDate();
	setupInvoiceAddendum();
	}
