// rollover code
var isLoaded = false;
roll = new csRoll("_over","_out");

// primary object
function csRoll(overSuffix, outSuffix){
	this.overSuffix = overSuffix;
	this.outSuffix = outSuffix;
	this.images = new Object()
	this.initialized = false;
}

// out and over methods
csRoll.prototype.over = csRollOver;
function csRollOver(imgName){
	if (this.initialized) this.images[imgName].over();
}

csRoll.prototype.out = csRollOut;
function csRollOut(imgName, bDeactivateOK){
	if (this.initialized) this.images[imgName].out();
}

// initialize roll object by mapping named images
csRoll.prototype.init = csRollInit;
function csRollInit(){
	var imgs = document.getElementsByTagName("img");
	for(var i = 0; i < imgs.length; i++) this.mapImage(imgs[i]);
	this.initialized = true;
}

// Browser Sniffing
// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

// Note: Opera and WebTV spoof Navigator.  We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
            && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                      (agt.indexOf("; nav") != -1)) );
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);


var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
// or if this is the first browser window opened.  Thus the
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);
var is_aol5  = (agt.indexOf("aol 5") != -1);
var is_aol6  = (agt.indexOf("aol 6") != -1);

var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

var is_webtv = (agt.indexOf("webtv") != -1); 

var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
var is_AOLTV = is_TVNavigator;

var is_hotjava = (agt.indexOf("hotjava") != -1);
var is_hotjava3 = (is_hotjava && (is_major == 3));
var is_hotjava3up = (is_hotjava && (is_major >= 3));

// *** JAVASCRIPT VERSION CHECK ***
var is_js;
if (is_nav2 || is_ie3) is_js = 1.0;
else if (is_nav3) is_js = 1.1;
else if (is_opera5up) is_js = 1.3;
else if (is_opera) is_js = 1.1;
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
else if (is_hotjava3up) is_js = 1.4;
else if (is_nav6 || is_gecko) is_js = 1.5;
// NOTE: In the future, update this code when newer versions of JS
// are released. For now, we try to provide some upward compatibility
// so that future versions of Nav and IE will show they are at
// *least* JS 1.x capable. Always check for JS version compatibility
// with > or >=.
else if (is_nav6up) is_js = 1.5;
// NOTE: ie5up on mac is 1.4
else if (is_ie5up) is_js = 1.3

// HACK: no idea for other browsers; always check for JS version with > or >=
else is_js = 0.0;

// *** PLATFORM ***
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//        Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) || 
           (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
           (agt.indexOf("windows 16-bit")!=-1) );  

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                (agt.indexOf("windows 16-bit")!=-1));

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));
var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));

// NOTE: Reliable detection of Win98 may not be possible. It appears that:
//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//       - On Mercury client, the 32-bit version will return "Win98", but
//         the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 || 
                ((is_major >= 4) && (navigator.platform == "Win32")) ||
                (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2   = ((agt.indexOf("os/2")!=-1) || 
                (navigator.appVersion.indexOf("OS/2")!=-1) ||   
                (agt.indexOf("ibm-webexplorer")!=-1));

var is_mac    = (agt.indexOf("mac")!=-1);
// hack ie5 js version for mac
if (is_mac && is_ie5up) is_js = 1.4;
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 
                           (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 
                            (agt.indexOf("powerpc")!=-1)));

var is_sun   = (agt.indexOf("sunos")!=-1);
var is_sun4  = (agt.indexOf("sunos 4")!=-1);
var is_sun5  = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux  = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
var is_aix1  = (agt.indexOf("aix 1") !=-1);    
var is_aix2  = (agt.indexOf("aix 2") !=-1);    
var is_aix3  = (agt.indexOf("aix 3") !=-1);    
var is_aix4  = (agt.indexOf("aix 4") !=-1);    
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
var is_mpras    = (agt.indexOf("ncr")!=-1); 
var is_reliant  = (agt.indexOf("reliantunix")!=-1);
var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 
       (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 
       (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || 
             is_sco ||is_unixware || is_mpras || is_reliant || 
             is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));

function setInnerText(oThis, oStr) {
	if (is_gecko) 
		oThis.textContent = oStr;
	else
		oThis.innerText = oStr;
}

function getInnerText(oThis, oDesc){
	if (is_gecko) {
		element = oThis.textContent
	} else {
		element = oThis.innerText
	}
	
	return element;
} 

// map images
csRoll.prototype.mapImage = csRollMapImage;
function csRollMapImage(img){
	if(img.name.indexOf("_ROLL") != -1)
		this.images[img.name.substr(0,img.name.lastIndexOf("_"))] = new csRollImage(img, this.overSuffix, this.outSuffix);
}

function csRollImage(img, overSuffix, outSuffix){
	this.img = img;
	var lastDotPos = this.img.src.lastIndexOf(".");
	this.baseSuffix = this.img.src.substr(lastDotPos);
	var baseSrc = this.img.src.substr(0,this.img.src.lastIndexOf("_"));
	this.overSrc = baseSrc + overSuffix + this.baseSuffix;
	this.outSrc = baseSrc + outSuffix + this.baseSuffix;
	this.preloadOver = new Image(); 
	this.preloadOver.src = this.overSrc; 
	this.preloadOut = new Image();
	this.preloadOut.src = this.outSrc;
}

csRollImage.prototype.deactivate = csRollImageDeactivate;
function csRollImageDeactivate() {
	this.img.src = this.preloadInactive.src;
}

csRollImage.prototype.over = csRollImageOver;
function csRollImageOver() {
	this.img.src = this.preloadOver.src;
}

csRollImage.prototype.out = csRollImageOut;
function csRollImageOut() {
	this.img.src = this.preloadOut.src;
}
// navigation
function navTo(sLocation) { top.content.location = "site.asp?p=" + sLocation;}
// popups
function launchTour() { tour = new csWin("site.asp?p=tour", "Tour", 750, 500); }
function popProfile(sID) { profile = new csWin("site.asp?p=popprofile&id=" + sID, "Profile", 612, 450, 1); }
function popNewsletter() { newsletter = new csWin("site.asp?p=popnewsletter", "Newsletter", 700, 450, 1); }
function popProduct(sID) { product = new csWin("site.asp?p=popproduct&id=" + sID, "Product", 612, 450, 1,null,null,0,0,0,1); }
function popZoom(sID) { zoom = new csWin("site.asp?p=popzoom&id=" + sID, "Zoom", 600, 540); }
function popNews(sID) { news = new csWin("site.asp?p=popnews&id=" + sID, "Zoom", 612, 450, 1); }
function popPage(sID) { page = new csWin("site.asp?p=poppage&page=" + sID, "Page", 612, 450, 1, null, null, 1); }
function popQuiz() { quiz = new csWin("site.asp?p=popquiz&q=1&a=-1", "Quiz", 500, 400); }
function popDirections() {
	var sParams;
	var oForm = document.frmMapQuest;
	sParams = "?CID=lfddwid&go=1&2a=1531%20Western%20Avenue&2c=Seattle&2s=WA&2z=98101&2y=US&1y=US" +
		"&1a=" + oForm.fldAddress.value +
		"&1c=" + oForm.fldCity.value +
		"&1s=" + oForm.fldState.value + 
		"&1z=" + oForm.fldZip.value;
	directions = new csWin("http://www.mapquest.com/directions/main.adp" + sParams, "Directions", 800, 600, 1, null, null, 0, 0, 1);
}
function csWin(popUrl,popName,w,h,scrollbars,x,y,toolbar,menubar,resizable,status,directories){
	this.popUrl = popUrl;
	this.popName = popName;
	this.w = w ? w : screen.width;
	this.h = h ? h : screen.height;
	this.scrollbars = scrollbars ? scrollbars : 0;
	this.toolbar = toolbar ? toolbar : 0;
	this.menubar = menubar ? menubar : 0;
	this.resizable = resizable ? resizable : 0;
	this.status = status ? status : 0;
	this.directories = directories ? directories : 0;
	var winl = x ? x : ((screen.width - this.w) / 2);
	var wint = y ? y : ((screen.height - this.h) / 2);
	if (wint < 0) wint = 1;
	if (winl < 0) winl = 0;
	this.popWin = window.open(
		this.popUrl,
		this.popName,
		"top=" + wint + "," +
		"left=" + winl + "," +
		"toolbar=" + this.toolbar.toString() + "," +
		"directories=" + this.directories.toString() + "," +
		"status=" + this.status.toString() + "," +
		"menubar=" + this.menubar.toString() + "," +
		"scrollbars=" + this.scrollbars.toString() + "," +
		"resizable=" + this.resizable.toString() + "," +
		"width=" + this.w.toString() + "," +
		"height=" + this.h.toString()
	);
}
// purchasing
function verifyPurchaseCost() {
	var tmpInfo = "Count : " + document.frmThis.elements.length + "\r\nStart Collecting";
	for(i = 0; i<document.frmThis.elements.length;i++) {
		var oField = document.frmThis.elements[i];
		var tFieldName = oField.name;
		var tValue = oField.value;
		if (tFieldName.substring(0,6) == "fldQty" & tValue > 0) {
			var tID = tFieldName.substring(6);
			tmpInfo += "\r\n" + tFieldName + "(" + tValue + ") id(" + tID + ")";
			oField.focus();
			changeQty(oField,tID);
		} else { tValue == ""; }
	}
	changeQtyShipping();
	changeQtyState();
	//alert(tmpInfo + "\r\nTotal $" + frmThis.fldGrandTotal.value);
}

function changeQtyShipping() {
	var oSubTotal = document.getElementById("subtotal");
	var oTaxTotal = document.getElementById("taxtotal");
	var oSalesTax = document.getElementById("salestax");
	if (document.frmThis.fldBillState.value != "WA")
	{
		var oSalesTax = 0;
	}
	var oShipping = document.getElementById("shipping");
	var oGrandTotal = document.getElementById("grandtotal");
	setInnerText( oGrandTotal, parseFloat(parseFloat(getInnerText(oShipping, "oShipping")) + parseFloat(getInnerText(oSubTotal, "oSubTotal")) + parseFloat(getInnerText(oTaxTotal, "oTaxTotal"))).toFixed(2) );
	document.frmThis.fldGrandTotal.value = getInnerText(oGrandTotal);
}
function changeQtyState() {
	var oSubTotal = document.getElementById("subtotal");
	var oTaxTotal = document.getElementById("taxtotal");
	var oSalesTax = document.getElementById("salestax");
	if (document.frmThis.fldBillState.value != "WA")
	{
		var oSalesTax = 0;
	}
	var oShipping = document.getElementById("shipping");
	var oGrandTotal = document.getElementById("grandtotal");
	setInnerText(oTaxTotal, parseFloat(0).toFixed(2));
	if (document.frmThis.fldBillState.value == "WA")
		setInnerText(oTaxTotal, (parseFloat(getInnerText(oSubTotal, "oSubTotal")) * parseFloat(oSalesTax.value) / 100).toFixed(2));
	setInnerText(oGrandTotal, (parseFloat(getInnerText(oShipping, "oShipping")) + parseFloat(getInnerText(oSubTotal, "oSubTotal")) + parseFloat(getInnerText(oTaxTotal, "oTaxTotal"))).toFixed(2));
	document.frmThis.fldGrandTotal.value = getInnerText(oGrandTotal, "oGrandTotal");
}

function changeQty(oThis, sID) {
	var iItemQty = isInteger(oThis.value, false) ? parseInt(oThis.value) : 0;
	var oItemPrice = document.getElementById("prc" + sID);
	var iItemPrice = parseFloat (getInnerText( oItemPrice, "oItemPrice") );
	var iNewTotal = iItemPrice * iItemQty;

	var oItemTotal = document.getElementById("tot" + sID);
	var iOldTotal = isInteger( getInnerText(oItemTotal, "oItemTotal 1"), false) ? parseFloat( getInnerText(oItemTotal, "oItemTotal2") ) : 0;
	var iDifference = (iItemQty * iItemPrice) - iOldTotal;
			
	if (iNewTotal > 0) {
		setInnerText( oItemTotal, iNewTotal.toFixed(2) );
	} else {
		setInnerText( oItemTotal, "" );
		oThis.value = "";
	}
	var oSubTotal = document.getElementById("subtotal");
	var oTaxTotal = document.getElementById("taxtotal");
	var oSalesTax = document.getElementById("salestax");
	if (document.frmThis.fldBillState.value != "WA")
	{
		var oSalesTax = 0;
	}
	var oShipping = document.getElementById("shipping");
	var oGrandTotal = document.getElementById("grandtotal");
	setInnerText( oSubTotal, (parseFloat(getInnerText(oSubTotal, "oSubTotal")) + iDifference).toFixed(2) );

	if (getInnerText(oSubTotal, "oSubTotal") >= 20 && getInnerText(oSubTotal,"oSubTotal") < 49.99)
	{
		setInnerText(oShipping, parseFloat(10).toFixed(2) );
	}
	else if (getInnerText(oSubTotal, "oSubTotal") >= 50 && getInnerText(oSubTotal,"oSubTotal") < 74.99)
	{
		setInnerText(oShipping, parseFloat(12).toFixed(2));
	}
	else if (getInnerText(oSubTotal, "oSubTotal") >= 75 && getInnerText(oSubTotal,"oSubTotal") < 99.99)
	{
		setInnerText(oShipping, parseFloat(14).toFixed(2));
	}
	else if (getInnerText(oSubTotal, "oSubTotal") >= 100 && getInnerText(oSubTotal,"oSubTotal") < 149.99)
	{
		setInnerText(oShipping, parseFloat(15).toFixed(2));
	}
	else if (getInnerText(oSubTotal, "oSubTotal") >= 150)
	{
		setInnerText(oShipping,(parseFloat(getInnerText(oSubTotal, "oSubTotal")) * 0.12).toFixed(2));
	}
	else
	{
		setInnerText(oShipping,parseFloat(8).toFixed(2));
	}
	setInnerText( oTaxTotal, parseFloat(0).toFixed(2));
	if (document.frmThis.fldBillState.value == "WA")
		setInnerText( oTaxTotal, (parseFloat(getInnerText(oSubTotal, "oSubTotal")) * parseFloat(oSalesTax.value) / 100).toFixed(2) );
	 
	setInnerText( oGrandTotal, (parseFloat(getInnerText(oShipping, "oShipping")) + parseFloat(getInnerText(oSubTotal, "oSubTotal")) + parseFloat(getInnerText(oTaxTotal, "oTaxTotal"))).toFixed(2) );
	document.frmThis.fldGrandTotal.value = getInnerText(oGrandTotal, "oGrandTotal");
}


var iTicketRate = 0;
function eventTicketCount(oThis) {
	if (isInteger(document.frmThis.fldTicketNum.value, false)) {
		iQty = parseFloat(document.frmThis.fldTicketNum.value);
	} else {
		iQty = 0;
		document.frmThis.fldTicketNum.value = "";
	}
	if (iQty > 0) {
		var sText = oThis[oThis.selectedIndex].text;
		sText = sText.substring(sText.indexOf("$") + 1, sText.length - 1);
		iTicketRate = isNaN(parseInt(sText)) ? 0 : parseFloat(sText);
	} else {
		iTicketRate = 0;
	}
	var iGrandTotal = iQty * iTicketRate;
	document.frmThis.fldGrandTotal.value = iGrandTotal;
	var oTotal = document.getElementById("grandtotal");
	setInnerText(oTotal, "$" + iGrandTotal.toFixed(2));
}
function eventTicket(oThis) {
	if (oThis != null) {
		var sText = oThis[oThis.selectedIndex].text;
		sText = sText.substring(sText.indexOf("$") + 1, sText.length - 1);
		iTicketRate = isNaN(parseInt(sText)) ? 0 : parseInt(sText);
	}
	if (isInteger(document.frmThis.fldTicketNum.value, false)) {
		iQty = parseFloat(document.frmThis.fldTicketNum.value);
	} else {
		iQty = 0;
		document.frmThis.fldTicketNum.value = "";
	}
	var iGrandTotal = iQty * iTicketRate;
	document.frmThis.fldGrandTotal.value = iGrandTotal;
	var oTotal = document.getElementById("grandtotal");
	setInnerText(oTotal, "$" + iGrandTotal.toFixed(2));
}

function tourTotal() {
	var iAdultTotal = document.frmThis.fldAdultCount.value;
	iAdultTotal = (iAdultTotal.length > 0) ? parseInt(iAdultTotal) : 0;
	var iOtherTotal = document.frmThis.fldOtherCount.value;
	iOtherTotal = (iOtherTotal.length > 0) ? parseInt(iOtherTotal) : 0;
	var oTourTotal = document.getElementById("tourtotal");
	var iTotalAmount = (iAdultTotal * 10) + (iOtherTotal * 7);
	document.frmThis.fldTotalAmount.value = iTotalAmount;
	setInnerText(oTourTotal, "$" + iTotalAmount.toFixed(2));
}
function eventChange() {
	document.frmThis.evID.value=document.frmThis.frmEventName.value;
	document.frmThis.p.value = "eventregistration";
	document.frmThis.submit();
}

// EventRegistration - Hear about field control

function updateSource(){
    if (document.frmThis.frmEventSource.value == "other") {
		document.getElementById("fldOther").style.display = "inline";
		}
	else {
	    document.getElementById("fldOther").style.display = "none";
	    }
    }

// validate forms
function validateNewsletter(bUnsubscribe) {
	var bFormOK = true;
	if (bUnsubscribe) {
		document.frmThis.p.value = "process_enewslettercancel";
	} else {
		document.frmThis.p.value = "process_enewslettersignup";
		if (checkString("Name", "fldName", bFormOK)) bFormOK = false;
		if (checkString("Address", "fldAddress", bFormOK)) bFormOK = false;
		if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
		if (checkString("Promotion Code", "fldPromotionCode", bFormOK, true)) bFormOK = false;
	}
	if (checkString("Email Address", "fldEmail", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function sameBilling() {
	if (document.frmThis.fldMailingSame.checked) {
		document.frmThis.fldFirstName.value = document.frmThis.fldBillFirstName.value;
		document.frmThis.fldLastName.value = document.frmThis.fldBillLastName.value;
		document.frmThis.fldAddress1.value = document.frmThis.fldBillAddress1.value;
		document.frmThis.fldAddress2.value = document.frmThis.fldBillAddress2.value;
		document.frmThis.fldCity.value = document.frmThis.fldBillCity.value;
		document.frmThis.fldState.selectedIndex = document.frmThis.fldBillState.selectedIndex;
		document.frmThis.fldZip.value = document.frmThis.fldBillZip.value;
	}
}
function validateEventRegistration() {
	var bFormOK = true;
	if (checkString("First Name", "fldCompany", bFormOK, true)) bFormOK = false;
	if (checkString("First Name", "fldFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
	if (checkString("Country", "fldCountry", bFormOK)) bFormOK = false;
	if (checkString("Daytime Telephone", "fldPhoneDay", bFormOK)) bFormOK = false;
	if (checkString("Evening Telephone", "fldPhoneEve", bFormOK,true)) bFormOK = false;
	if (checkString("Mobile Phone Number", "fldPhoneMobile", bFormOK, true)) bFormOK = false;
	if (checkString("Fax", "fldFax", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (bFormOK && document.frmThis.frmEventDate.value == "0") {
		bFormOK = false;
		alert("Please select an Event Date");
	}
	if (checkString("Number of Tickets", "fldTicketNum", bFormOK)) bFormOK = false;
	if (bFormOK && document.frmThis.fldGrandTotal.value == "0") {
		bFormOK = false;
		alert("Please select a quantity of tickets");
	}
	if (checkString("Credit Card Number", "fldCCNumber", bFormOK)) bFormOK = false;
	if (checkString("Card Security Code", "fldCCSecurity", bFormOK, true)) bFormOK = false;
	if (checkString("Credit Card Month", "fldExpMonth", bFormOK)) bFormOK = false;
	if (checkString("Credit Card Year", "fldExpYear", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateEventRegistration2() {
	var bFormOK = true;
	if (checkString("First Name", "fldCompany", bFormOK, true)) bFormOK = false;
	if (checkString("First Name", "fldFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
	if (checkString("Country", "fldCountry", bFormOK)) bFormOK = false;
	if (checkString("Daytime Telephone", "fldPhoneDay", bFormOK)) bFormOK = false;
	if (checkString("Evening Telephone", "fldPhoneEve", bFormOK,true)) bFormOK = false;
	if (checkString("Mobile Phone Number", "fldPhoneMobile", bFormOK, true)) bFormOK = false;
	if (checkString("Fax", "fldFax", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (bFormOK && document.frmThis.frmEventDate.value == "0") {
		bFormOK = false;
		alert("Please select an Event Date");
	}
	if (checkString("Number of Tickets", "fldTicketNum", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateTour() {
	var bFormOK = true;
	if (checkString("First Name", "fldFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
    if (checkString("Country", "fldCountry", bFormOK)) bFormOK = false;
	if (checkString("Daytime Telephone", "fldPhoneDay", bFormOK)) bFormOK = false;
	if (checkString("Evening Telephone", "fldPhoneEve", bFormOK,true)) bFormOK = false;
	if (checkString("Mobile Phone Number", "fldPhoneMobile", bFormOK, true)) bFormOK = false;
	if (checkString("Fax", "fldFax", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (checkString("Tour date", "fldTourDate", bFormOK)) bFormOK = false;
	if (bFormOK && document.frmThis.fldTotalAmount.value == "0") {
		bFormOK = false;
		alert("Please select a quantity of adult/senior/children tickets");
	}
	if (checkString("Credit Card Number", "fldCCNumber", bFormOK)) bFormOK = false;
	if (checkString("Card Security Code", "fldCCSecurity", bFormOK, true)) bFormOK = false;
	if (checkString("Credit Card Month", "fldExpMonth", bFormOK)) bFormOK = false;
	if (checkString("Credit Card Year", "fldExpYear", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateShopping() {
	document.forms[0].focus();
	verifyPurchaseCost();
	var bFormOK = true;
	if (checkString("First Name", "fldBillFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldBillLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldBillAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address 2", "fldBillAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldBillCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldBillZip", bFormOK)) bFormOK = false;
	if (checkString("First Name", "fldFirstName", bFormOK, true)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK, true)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK, true)) bFormOK = false;
	if (checkString("Address 2", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK, true)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (checkString("Phone Number", "fldPhone", bFormOK)) bFormOK = false;
	if (checkString("Credit Card Number", "fldCCNumber", bFormOK)) bFormOK = false;
	if (checkString("Card Security Code", "fldCCSecurity", bFormOK, true)) bFormOK = false;
	if (checkString("Credit Card Month", "fldExpMonth", bFormOK)) bFormOK = false;
	if (checkString("Credit Card Year", "fldExpYear", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateVolunteer() {
	var bFormOK = true;
	if (checkString("First Name", "fldFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
	if (checkString("Daytime Telephone", "fldPhoneDay", bFormOK)) bFormOK = false;
	if (checkString("Evening Telephone", "fldPhoneEve", bFormOK,true)) bFormOK = false;
	if (checkString("Fax", "fldFax", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateDonation() {
	var bFormOK = true;
	if (checkString("First Name", "fldFirstName", bFormOK)) bFormOK = false;
	if (checkString("Last Name", "fldLastName", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress1", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress2", bFormOK, true)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("Zip", "fldZip", bFormOK)) bFormOK = false;
	if (checkString("Daytime Telephone", "fldPhoneDay", bFormOK)) bFormOK = false;
	if (checkString("Evening Telephone", "fldPhoneEve", bFormOK, true)) bFormOK = false;
	if (checkString("Fax", "fldFax", bFormOK, true)) bFormOK = false;
	if (checkString("Email", "fldEmail", bFormOK)) bFormOK = false;
	if (bFormOK && document.frmThis.fldAmount[5].checked)
		if (checkString("Other Amount", "fldOtherAmount", bFormOK)) bFormOK = false;
	if (checkString("Notes", "fldNotes", bFormOK, true)) bFormOK = false;
	if (checkString("Credit Card Number", "fldCCNumber", bFormOK)) bFormOK = false;
	if (checkString("Card Security Code", "fldCCSecurity", bFormOK, true)) bFormOK = false;
	if (checkString("Credit Card Month", "fldExpMonth", bFormOK)) bFormOK = false;
	if (checkString("Credit Card Year", "fldExpYear", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateEnterToWin() {
	var bFormOK = true;
	if (checkString("Name", "fldName", bFormOK)) bFormOK = false;
	if (checkString("Email Address", "fldEmailAddress", bFormOK)) bFormOK = false;
	if (checkString("Address", "fldAddress", bFormOK)) bFormOK = false;
	if (checkString("City", "fldCity", bFormOK)) bFormOK = false;
	if (checkString("State", "fldState", bFormOK)) bFormOK = false;
	if (checkString("Zip Code", "fldZipCode", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateMemories() {
	var bFormOK = true;
	if (checkString("Name", "fldAuthorName", bFormOK)) bFormOK = false;
	if (checkString("Email Address", "fldAuthorEmailAddress", bFormOK)) bFormOK = false;
	if (checkString("Location", "fldAuthorLocation", bFormOK)) bFormOK = false;
	if (checkString("Story", "fldStory", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}
function validateRenovationMailingList()
{
	var bFormOK = true;
	if (checkString("Email Address", "fldEmail", bFormOK)) bFormOK = false;
	if (!document.frmThis.fldOptIn.checked)
	{
		alert("You must check the box to opt into our mailing list.");
		bFormOK = false;
	}
	if (bFormOK) document.frmThis.submit();
}
function validateRenovationUnsubscribe()
{
	var bFormOK = true;
	if (checkString("Email Address", "fldEmail", bFormOK)) bFormOK = false;
	if (bFormOK) document.frmThis.submit();
}

// form validation functions
function checkString(sFieldText, sFieldName, bFormOK, bBlankOK) {
	if (bFormOK) {
		if (hasScript(eval("document.frmThis." + sFieldName).value)) {
			alert(sFieldText + " contains illegal script text\nthat can cause problems with your information");
			eval("document.frmThis." + sFieldName).focus();
			return true;
		} else {
			if (!bBlankOK && isWhitespace(eval("document.frmThis." + sFieldName).value)) {
				alert(sFieldText + " is required");
				eval("document.frmThis." + sFieldName).focus();
				return true;
			} else {
				return false;
			}
		}
	}
	return false;
}
var sWhitespace = " \t\n\r";

function isEmpty(s){
	return ((s == null) || (s.length == 0))
}

function isWhitespace (s) {
	var i;
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (sWhitespace.indexOf(c) == -1) return false;
	}
	return true;
}
function hasScript (inString) {
	var tmpString = stripWhitespace(inString).toUpperCase();
	if (tmpString.indexOf("<" + "SCRIPT") != -1) return true;
	if (tmpString.indexOf("<" + "/" + "SCRIPT") != -1) return true;
	if (tmpString.indexOf("<" + "%") != -1) return true;
	if (tmpString.indexOf("%" + ">") != -1) return true;
	if (tmpString.indexOf("<" + "?") != -1) return true;
	if (tmpString.indexOf("php" + ">") != -1) return true;
	if (tmpString.indexOf("language=") != -1) return true;
	return false;
}
function stripWhitespace (s) {
	return stripCharsInBag (s, sWhitespace);
}
function stripCharsInBag (s, bag){
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}
function isInteger (s){
	var i;
	if (isEmpty(s))
		if (isInteger.arguments.length == 1) return defaultEmptyOK;
		else return (isInteger.arguments[1] == true);
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	return true;
}
function isDigit (c){
	return (((c >= "0") && (c <= "9")) || c == ".");
}

function isEmail(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Please enter valid E-mail")
		   return false
		}
		
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Please enter valid E-mail")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Please enter valid E-mail")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Please enter valid E-mail")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Please enter valid E-mail")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Please enter valid E-mail")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Please enter valid E-mail")
		    return false
		 }

 		 return true					
	}

function ValidateEmail(){
	var email=document.frmThis.fldEmail
	if ((email.value==null)||(email.value=="")){
		alert("Please Enter your Email")
		email.focus()
		return false
	}
	if (isEmail(email.value)==false){
		email.value=""
		email.focus()
		return false
	}
	return true
 }

function displayShippingInfo() {
	if (document.getElementById("shippingInfo").innerHTML == "[+]")
	{
		document.getElementById("handlingInfo").style.display = "block";
		document.getElementById("shippingInfo").innerHTML = "[-]";
	}
    else if (document.getElementById("shippingInfo").innerHTML == "[-]")
	{
		document.getElementById("handlingInfo").style.display = "none";
		document.getElementById("shippingInfo").innerHTML = "[+]";
	}
		
}	
		