
// *******************   Main Menu
function menuChange(e) {
	var c = document.getElementById(e);
	if(c.className=='menuSelected') c.className='menuNormal';
	 else c.className='menuSelected';
}


// *******************   General rollovers
function optionChange(obj, classname) {
	var thisObj = document.getElementById(obj);
	thisObj.className = classname;
}
function showMenu(objMenu, objOption, classname, offset) {
	var thisObj = document.getElementById(objMenu);
	var thisOption = document.getElementById(objOption);
	optionChange(objMenu, "ShowMenu");
	optionChange(objOption, classname);
	hideAllMenuExcept(objMenu, classname);
	thisObj.style.position = "absolute";
	thisObj.style.top = thisOption.style.top;
	thisObj.style.left = offset;
}
function hideAllMenuExcept(objMenu, classname) {
	var aMenus = document.getElementsByTagName("div");	
	for(i=0;i<=aMenus.length;i++) {
			if(aMenus[i] && aMenus[i].className == 'ShowMenu' && aMenus[i].id != objMenu)
				optionChange(aMenus[i].id, 'HideMenu');
			if(aMenus[i] && aMenus[i].className == classname+"2" && aMenus[i].id != objMenu)
				optionChange(aMenus[i].id, classname);
	}	
}
function hideMenu(objMenu, objOption, classname) {
	var thisObj = document.getElementById(objMenu);
	optionChange(objMenu, "HideMenu");
	optionChange(objOption, classname);		
}
function toggleMenu(objMenu, objOption, classname, offset) {
	var thisObj = document.getElementById(objMenu);
	if(thisObj.className == 'HideMenu') {
		showMenu(objMenu, objOption, classname, offset);
	} else {
		hideMenu(objMenu, objOption, classname);
	}
}


// *******************   Popup windows
function popUp(URL,w,h) {
	// Idea by:  Nic Wolfe (Nic@TimelapseProductions.com)
	// Web URL:  http://fineline.xs.mw
	//var day = new Date();
	//var id = day.getTime();
	var width = (w==null)?400:w;
	var height = (h==null)?250:h;
	//eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width="+width+",height="+height+",left = 312,top = 184');");
	a = window.open(URL, 'win', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=' + width+',height='+height+',left = 312,top = 184');
}
function popUpNormal(URL,w,h) {
	var day = new Date();
	var id = day.getTime();
	var width = (w==null)?400:w;
	var height = (h==null)?250:h;
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width="+width+",height="+height+",left = 312,top = 184');");
}

// *********** Shopping Cart
function checkCheckoutForm(frm) {
	var formOK = true;
	var msg = "";

	if(frm.sh_Country.selectedIndex==-1) msg=msg+"Shipping country is required\n";
	if(frm.sh_ZipCode.value=="") msg=msg+"Shipping ZIP/Postal Code is required\n";
	if(frm.sh_City.value=="") msg=msg+"Shipping city is required\n";
	if(frm.sh_Street.value=="") msg=msg+"Shipping address is required\n";

	var s0 = document.getElementById("sh_state");
	var s1 = document.getElementById("sh_state_other");
	var s2 = document.getElementById("sh_state_us");
	
	if(frm.sh_Country.value=='US') {
		if(s2.value=="")  msg=msg+"Shipping state is required\n";
		s0.value = s2.value;
	} else {
		if(s1.value=="")  msg=msg+"Shipping province or region is required\n";
		s0.value = s1.value;
	}

	if(!frm.SameAsShippingAdd.checked) {
		if(frm.bi_Country.selectedIndex==-1) msg=msg+"Billing country is required\n";
		if(frm.bi_ZipCode.value=="") msg=msg+"Billing ZIP/Postal Code is required\n";

		var b0 = document.getElementById("bi_state");
		var b1 = document.getElementById("bi_state_other");
		var b2 = document.getElementById("bi_state_us");
		
		if(frm.bi_Country.value=='US') {
			if(b2.value=="")  msg=msg+"Billing state is required\n";
			b0.value = b2.value;
		} else {
			if(b1.value=="")  msg=msg+"Billing province or region is required\n";
			b0.value = b1.value;
		}


		if(frm.bi_City.value=="") msg=msg+"Billing city is required\n";
		if(frm.bi_Street.value=="") msg=msg+"Billing address is required\n";
	}

	if(frm.PhoneNumber.value=="") msg=msg+"Phone Number is required\n";
	if(frm.Email.value=="") msg=msg+"Email address is required\n";
	if(frm.LastName.value=="") msg=msg+"Last Name is required\n";
	if(frm.FirstName.value=="") msg=msg+"First Name is required\n";

	if(msg!="") {
		formOK = false;
		alert("The following problems were found:\n\n" + msg + "\nPlease complete the missing information.");
	}
	
	return formOK;
}

var isPaypal = false;
function checkCheckoutContForm(frm) {
	var formOK = true;
	var msg = "";

	if(frm.ch_BikeTypeModel.value=="") msg=msg+"Bike type or model is required\n";

	if(!isPaypal) {
		if(frm.cc_CSC.value=="") msg=msg+"Credit Card CVV Code is required\n";
		if(frm.cc_Name.value=="") msg=msg+"Credit Card Name is required\n";
		if(frm.cc_Year.selectedIndex==0) msg=msg+"Credit Card Expiration Year is required\n";
		if(frm.cc_Month.selectedIndex==0) msg=msg+"Credit Card Expiration Month is required\n";
		if(frm.cc_Number.value=="") msg=msg+"Credit Card Number is required\n";
		if(frm.cc_Type.selectedIndex==0) msg=msg+"Credit Card Type is required\n";
		//if(!validateCreditCard(frm.cc_Number.value)) msg="Please enter a valid credit card number, without spaces or dashes"; 
	}

	if(msg!="") {
		formOK = false;
		alert("The following problems were found:\n\n" + msg + "\nPlease complete the missing information.");
	}
	
	return formOK;
}

function enablePaypal(frm) {
	isPaypal = frm.paypal.checked;
	frm.cc_CSC.disabled = isPaypal;		
	frm.cc_Name.disabled = isPaypal;		
	frm.cc_Year.disabled = isPaypal;		
	frm.cc_Month.disabled = isPaypal;		
	frm.cc_Number.disabled = isPaypal;		
	frm.cc_Type.disabled = isPaypal;		
}

function placeOrder() {
	var btn = document.getElementById("btnCheckout");
	var img = document.getElementById("loadingImage");
	
	if(btn)	btn.style.display='none';
	if(img) img.style.display='inline';
	
	document.frmCheckout.submit();
}


function checkRegisterForm(frm) {
	var formOK = true;
	var msg = "";

	if(frm.Password.value!=frm.PasswordConfirm.value) msg=msg+"Passwords does not match\n";
	if(frm.PasswordConfirm.value=="") msg=msg+"Password Confirmation is required\n";
	if(frm.Password.value=="") msg=msg+"Password is required\n";
	if(frm.Email.value=="") msg=msg+"Email address is required\n";
	if(frm.LastName.value=="") msg=msg+"Last Name is required\n";
	if(frm.FirstName.value=="") msg=msg+"First Name is required\n";
	if(frm.UserName.value=="") msg=msg+"Username is required\n";

	if(msg!="") {
		formOK = false;
		alert("The following problems were found:\n\n" + msg + "\nPlease complete the missing information.");
	}
	
	return formOK;
}

 /*Text box marquee by Dave Methvin, Windows Magazine
May be used/modified if credit line is retained*/
function ScrollMarquee() {
	window.setTimeout('ScrollMarquee()',150);
	var m = document.getElementById("infoTicker");
	if(m) {
		var msg = m.value;
		m.value = 	msg.substring(1) + msg.substring(0,1);
	}
}
ScrollMarquee();




// Credit Card Validation Javascript
// copyright 12th May 2003, by Stephen Chapman, Felgall Pty Ltd

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function validateCreditCard(s) {
	var v = "0123456789";
	var w = "";
	for (var i=0; i < s.length; i++) {
		x = s.charAt(i);
		if (v.indexOf(x,0) != -1) 
			w += x;
		else
			return false;
	}
	var j = w.length / 2;
	if (j < 6.5 || j > 8 || j == 7) return false;
	var k = Math.floor(j);
	var m = Math.ceil(j) - k;
	var c = 0;
	for (var i=0; i<k; i++) {
		a = w.charAt(i*2+m) * 2;
		c += a > 9 ? Math.floor(a/10 + a%10) : a;
	}
	for (var i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
	return (c%10 == 0);
}






/***********************************************
* IFrame SSI script II- � Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["iframePartDescription"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
	var dyniframe=new Array()
	for (i=0; i<iframeids.length; i++){
		if (document.getElementById) 
			resizeIframe(iframeids[i])
		//reveal iframe for lower end browsers? (see var above):
		if ((document.all || document.getElementById) && iframehide=="no"){
			var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
			tempobj.style.display="block"
		}
	}
}

function resizeIframe(frameid){
	var currentfr=document.getElementById(frameid)
	if (currentfr && !window.opera){
		currentfr.style.display="block"
		if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
		currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
		else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
		currentfr.height = currentfr.Document.body.scrollHeight;
		if (currentfr.addEventListener)
		currentfr.addEventListener("load", readjustIframe, false)
		else if (currentfr.attachEvent){
			currentfr.detachEvent("onload", readjustIframe) // Bug fix line
			currentfr.attachEvent("onload", readjustIframe)
		}
	}
}

function readjustIframe(loadevt) {
	var crossevt=(window.event)? event : loadevt
	var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
	if (iframeroot)
	resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
	if (document.getElementById)
	document.getElementById(iframeid).src=url
}

if (window.addEventListener)
	window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
	window.attachEvent("onload", resizeCaller)
else
	window.onload=resizeCaller
