var g_Last = "";
var g_spdCurrent = null;

function Spreadsheet(oElement)
{
	this.OriginalClass = "";
	this.Element = oElement;
	this.onClick = Spreadsheet_onClick;
	this.onUnClick = Spreadsheet_onUnClick;
	this.onMouseOver = Spreadsheet_onMouseOver;
	this.onMouseOut = Spreadsheet_onMouseOut;
}
		
function Spreadsheet_onClick()
{
	this.style.backgroundColor = "rgb(222,174,198)";
	if (document.all.CurrentID)
		document.all('CurrentID').value = this.Element.id;
	
	if (g_spdCurrent != null && g_spdCurrent.Element.id == this.Element.id)
		return;
	if (g_spdCurrent != null)
		g_spdCurrent.Element.className = g_spdCurrent.OriginalClass;
	
	this.OriginalClass = g_Last;
	g_spdCurrent = this;
	this.Element.className = "CategoryRowOn";
	g_Last = this.Element.className;
}

function Spreadsheet_onUnClick()
{
	if (document.all.CurrentID)
		document.all('CurrentID').value = this.Element.id;

	if (g_spdCurrent != null)
		g_spdCurrent.Element.className = g_spdCurrent.OriginalClass;
	
	this.OriginalClass = "";
	g_spdCurrent = null;
}

function Spreadsheet_onMouseOut()
{
	//this.Element.className = g_Last; rgb(239,211,222)
	for (i=0; i < this.Element.children.length; i++)
		this.Element.children[i].style.backgroundColor = "#ECD0DE";
}

function Spreadsheet_onMouseOver()
{
	//g_Last = this.Element.className; rgb(222,174,198)
	for (i=0; i < this.Element.children.length; i++)
		this.Element.children[i].style.backgroundColor = "#DEAEC7";
	//this.Element.className = "SpreadsheetRowOver";
}

function Content_onMouseOut(oElement)
{
	// oElement.style.backgroundColor = "";
}

function Content_onMouseOver(oElement)
{
	// oElement.style.backgroundColor = "rgb(239,211,222)";
}

function popUp(url)
{
	var url = "https://digitalid.verisign.com/cgi-bin/Xquery.exe?issuerSerial=bf6c06721ea66a50d00e6906e3d7c16c&Template=retailCertByIssuer&form_file=../fdf/srv_userQueryResult.fdf&qmCompileAlways=yes";
	sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
	self.name = "mainWin";
}

function ValidateGiftBasketShipping(form)
{
	// Shipping Option Validation
	var option = -1;
	for (i = 0; i < form.GIFTBASKETSHIPPING.length; i++)
	{
		if (form.GIFTBASKETSHIPPING[i].checked)
		{
			option = i;
		}
	}
	if (option == -1)
	{
		alert("You must select a Shipping Option");
		return false;
	}
}

function ValidateGiftCardAmount(form)
{
	// Shipping Option Validation
	var option = -1;
	for (i = 0; i < form.GiftCardShippingName.length; i++)
	{
		if (form.GiftCardShippingName[i].checked)
		{
			option = i;
		}
	}
	if (option == -1)
	{
		alert("You must select a Shipping Option");
		return false;
	}
	
	// Desired Amount Validation
	var sPrice = form.PRICE.value;
	
	if (sPrice >= 50)
	{
		form.PRODUCT.value = form.PRODUCT.value + ";" + sPrice;
		return true;
	}
	else
	{
		alert("This amount: " + form.PRICE.value + ", is not $50 or over.\nPlease change value and resubmit.");s
	}

	return false;
	
}

function ValidateSpecialOffer(form)
{
	// Special Offer Validation
	if (form.SPECIALOFFER.checked)
	{
		if (form.PRICE.value < 100)
		{
			alert("Gift Card price must be $100 or over in order to take advantage of the Special Offer.");
			return false;
		}
	}
}

var ShippingTo = "";
var ShippingStreet = "";
var ShippingCity = "";
var ShippingState = "";
var ShippingZip = "";

function InitSaveVars(form)
{
	ShippingTo = form.ShippingTo.value;
	ShippingStreet = form.ShippingStreet.value;
	ShippingCity = form.ShippingCity.value;
	ShippingState = form.ShippingState.value;
	ShippingZip = form.ShippingZip.value;
}

function UseBillingAddress(form)
{
	if (form.Copy.checked)
	{
		InitSaveVars(form);
		form.ShippingTo.value = form.FirstName.value + " " + form.LastName.value;
		form.ShippingStreet.value = form.BillingStreet.value;
		form.ShippingCity.value = form.BillingCity.value;
		form.ShippingState.value = form.BillingState.value;
		form.ShippingZip.value = form.BillingZip.value;
		
		/*
		form.BillingStreet.readOnly = true;
		form.BillingCity.readOnly = true;
		form.BillingState.readOnly = true;
		form.BillingZip.readOnly = true;
		*/
	}
	else
	{
		form.ShippingTo.value = ShippingTo;
		form.ShippingStreet.value = ShippingStreet;
		form.ShippingCity.value = ShippingCity;
		form.ShippingState.value = ShippingState;
		form.ShippingZip.value = ShippingZip;
		
		/*
		form.BillingStreet.readOnly = false;
		form.BillingCity.readOnly = false;
		form.BillingState.readOnly = false;
		form.BillingZip.readOnly = false;
		*/
	}
}

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: YourName@YourDomain.com");
		formField.focus();
		result = false;
	}

	return result;
}

function validCC(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;
		
	if (! IsNumeric(formField.value))
	{
		alert('The "' + fieldLabel +'" field must be numeric.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function IsNumeric(strString)
{
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;

	if (strString.length == 0)
		return false;

	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}

	return blnResult;
}


function validRequired(formField,fieldLabel)
{
    validRequired(formField,fieldLabel,null)
}
function validRequired(formField,fieldLabel, size)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	if (size!=null && formField.value.length>size)
	{
		alert(fieldLabel+ ' must be less than '+ size +' characters.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function validateForm(theForm)
{
	// TODO: Should write an algorithm to loop through form fields and display within one alert.

	// Step 1
	if (! validRequired(theForm.FirstName,"First Name"))
		return false;

	if (! validRequired(theForm.LastName," Last Name"))
		return false;

	if (! validRequired(theForm.PhoneNumber,"Phone Number"))
		return false;

	if (! validEmail(theForm.EmailAddress,"Email Address",true))
		return false;

	// Step 2
	if (! validRequired(theForm.CardName,"Name on Card"))
		return false;

	if (! validCC(theForm.CardNumber,"Card Number",true))
		return false;

	if (! validRequired(theForm.CardExpiration,"Card Expiration"))
		return false;
		
	// Step 3
	if (! validRequired(theForm.BillingStreet,"Billing Street"))
		return false;

	if (! validRequired(theForm.BillingCity,"Billing City"))
		return false;

	if (! validRequired(theForm.BillingState,"Billing State"))
		return false;

	if (! validRequired(theForm.BillingZip,"Billing Zip"))
		return false;
		
	// Step 4
	if (! validRequired(theForm.ShippingTo,"Shipping To"))
		return false;

	if (! validRequired(theForm.ShippingStreet,"Shipping Street"))
		return false;

	if (! validRequired(theForm.ShippingCity,"Shipping City"))
		return false;

	if (! validRequired(theForm.ShippingState,"Shipping State"))
		return false;

	if (! validRequired(theForm.ShippingZip,"Shipping Zip"))
		return false;
	
	return true;
}

// TODO: Temporary solution, need to merge with other script
var gAutoPrint = true;
function printSpecial()
{
	if (document.getElementById != null)
	{
		var html = '<HTML>\n<HEAD>\n';

		if (document.getElementsByTagName != null)
		{
			var headTags = document.getElementsByTagName("head");
			if (headTags.length > 0)
				html += headTags[0].innerHTML;
		}
		
		html += '<link href="SpawebNet.css" rel="stylesheet" type="text/css">'; // Appended
		html += '\n</HE' + 'AD>\n<BODY class="printReady">\n';
		
		var printReadyElem = document.getElementById("printReady");
		
		if (printReadyElem != null)
		{
				html += printReadyElem.innerHTML;
		}
		else
		{
			alert("Could not find the printReady section in the HTML");
			return;
		}
			
		html += '\n</BO' + 'DY>\n</HT' + 'ML>';
		
		var printWin = window.open("","printSpecial","height=500,width=470,scrollbars=yes,resizable=yes,menubar=yes"); // Modified
		printWin.document.open();
		printWin.document.write(html);
		printWin.document.close();
		if (gAutoPrint)
			printWin.print();
	}
	else
	{
		alert("Sorry, the print ready feature is only available in modern browsers.");
	}
}