if (document.images)
{
  b1off= new Image; 
  b1off.src="/img/b1.gif"; 
  b2off= new Image; 
  b2off.src="/img/b2.gif"; 
  b3off= new Image; 
  b3off.src="/img/b3.gif"; 
  b4off= new Image; 
  b4off.src="/img/b4.gif"; 
  b5off= new Image; 
  b5off.src="/img/b5.gif"; 
  b6off= new Image; 
  b6off.src="/img/b6.gif"; 
  betaoff= new Image; 
  betaoff.src="/img/beta.jpg"; 
  byofoff= new Image; 
  byofoff.src="/img/byof.gif"; 
  byof_homeoff= new Image; 
  byof_homeoff.src="/img/byof_home.jpg"; 
  efilteroff= new Image; 
  efilteroff.src="/img/efilter.jpg"; 
  iso_footeroff= new Image; 
  iso_footeroff.src="/img/iso_footer.jpg"; 
  tout1off= new Image; 
  tout1off.src="/img/tout1.jpg"; 
  tout2off= new Image; 
  tout2off.src="/img/tout2.jpg"; 
  tout3off= new Image; 
  tout3off.src="/img/tout3.jpg"; 
  tout4off= new Image; 
  tout4off.src="/img/tout4.jpg"; 
  tout5off= new Image; 
  tout5off.src="/img/tout5.jpg"; 
  tout6off= new Image; 
  tout6off.src="/img/tout6.jpg"; 
  wtboff= new Image; 
  wtboff.src="/img/where_to_buy.png"; 
  wtb_homeoff= new Image; 
  wtb_homeoff.src="/img/wtb_home.jpg"; 

  b1on= new Image; 
  b1on.src="/img/b1_over.gif"; 
  b2on= new Image; 
  b2on.src="/img/b2_over.gif"; 
  b3on= new Image; 
  b3on.src="/img/b3_over.gif";
  b4on= new Image; 
  b4on.src="/img/b4_over.gif";
  b5on= new Image; 
  b5on.src="/img/b5_over.gif";
  b6on= new Image; 
  b6on.src="/img/b6_over.gif";
  betaon= new Image; 
  betaon.src="/img/beta_over.jpg"; 
  byofon= new Image; 
  byofon.src="/img/byof_over.gif"; 
  byof_homeon= new Image; 
  byof_homeon.src="/img/byof_home_over.jpg"; 
  efilteron= new Image; 
  efilteron.src="/img/efilter_over.jpg"; 
  iso_footeron= new Image; 
  iso_footeron.src="/img/iso_footer_over.jpg"; 
  tout1on= new Image; 
  tout1on.src="/img/tout1_over.jpg"; 
  tout2on= new Image; 
  tout2on.src="/img/tout2_over.jpg"; 
  tout3on= new Image; 
  tout3on.src="/img/tout3_over.jpg"; 
  tout4on= new Image; 
  tout4on.src="/img/tout4_over.jpg"; 
  tout5on= new Image; 
  tout5on.src="/img/tout5_over.jpg"; 
  tout6on= new Image; 
  tout6on.src="/img/tout6_over.jpg"; 
  wtbon= new Image; 
  wtbon.src="/img/where_to_buy_over.png"; 
  wtb_homeon= new Image; 
  wtb_homeon.src="/img/wtb_home_over.jpg"; 
}

function turnon(imgName)
 {
   if (document.images)
    {
      imgOn = eval(imgName + "on.src");
      document[imgName].src = imgOn;
    }
 }

function turnoff(imgName)
 {
   if (document.images)
    {
      imgOff = eval(imgName + "off.src");
      document[imgName].src = imgOff;
    }
 }
 
 
 

// SubMenu Toggle Control

var currentSubMenu = "";
var currentMenuItem = "";
var menuItemNormal = "";

function setCurrentMenuItem(item, normal) {
  if(currentMenuItem != MM_findObj(item)) {
    currentMenuItem.src = menuItemNormal;
    currentMenuItem = MM_findObj(item);
    menuItemNormal = normal;
  }
}

function toggleList(id) {
  list = document.getElementById(id);
  if (list.style.display == "inline") {
    list.style.display = "none";
  } else {
    if(currentSubMenu != "") {
      prev = document.getElementById(currentSubMenu);
      prev.style.display = "none";
    }
    list.style.display = "inline";
  }
  currentSubMenu = id;
}

function showMainItem(id) {
  MM_swapImage(id,'','/images/mainnav_'+id+'-on.jpg',1);
  setCurrentMenuItem(id,'/images/mainnav_'+id+'-off.jpg');


}

// Image Rollover & Preload

function MM_swapImgRestore() {
  var i,x,a=document.MM_sr;
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) {
    if(x!=currentMenuItem)
      x.src=x.oSrc;
  }
}

function MM_preloadImages() {
  var d=document;
  if(d.images){
    if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
    for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0) {
      d.MM_p[j]=new Image;
      d.MM_p[j++].src=a[i];
    }
  }
}

function MM_findObj(n, d) {
  var p,i,x;
  if(!d) d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++)
    x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
    x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n);
    return x;
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments;
  document.MM_sr = new Array;
  for(i=0;i<(a.length-2);i+=3) {
    if ((x=MM_findObj(a[i]))!=null) {
      document.MM_sr[j++]=x;
      if(x!=currentMenuItem) {
        if(!x.oSrc) x.oSrc=x.src;
        x.src=a[i+2];
      }
    }
  }
}


//Open Browser Window

function OpenBrWindow(theURL,winName,features, myWidth, myHeight, isCenter) { //v3.0
  if(window.screen)if(isCenter)if(isCenter=="true"){
    var myLeft = (screen.width-myWidth)/2;
    var myTop = (screen.height-myHeight)/2;
    features+=(features!='')?',':'';
    features+=',left='+myLeft+',top='+myTop;
  }
  window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}

//Print Page

function printIt() { 
  var macprint;
  macprint = "Attention Macintosh User. Unfortunately this functionality is not available on the Macintosh OS. Please click the page you would like to print a select print from your browser menu.";

  if (isMac) { 
    alert(macprint);
  } else {
  self.print()
  }
}

//Bookmark Page

function bookmarkIt() { 
  var bookmarktitle = document.title;
  var bookmarkurl = document.location;
  var netscape
  var macintosh
  netscape="Attention Netscape Users. To Bookmark this page please click the page you would like to bookmark and press CTRL+D. If you would like to add this page to your Netscape Sidebar, please click OK on the next window which appears.";
  macintosh="Attention Macintosh User. To Bookmark this page please click the page you would like to bookmark and press CTRL+D.";

  if (window.sidebar&&window.sidebar.addPanel) { 
    alert(netscape);
    window.sidebar.addPanel(bookmarktitle, bookmarkurl,""); 
  } else if (isMac) {
    alert(macintosh);
  } else if (document.all) {
    window.external.AddFavorite(bookmarkurl, bookmarktitle);
  } else if (window.opera && window.print) {
    return true;
  }
}

function submitform(formname)
{
	document.forms[formname].submit();
}


//Highlight Row
var preEl ;
var orgBColor;
var orgTColor;
function HighLightTR(backColor,textColor){  
if(typeof(preEl)!='undefined') {
preEl.bgColor=orgBColor; 
try{ChangeTextColor(preEl,orgTColor);}catch(e){;}
} 
var el = event.srcElement;
el = el.parentElement;
orgBColor = el.bgColor;
orgTColor = el.style.color;
el.bgColor=backColor;

try{ChangeTextColor(el,textColor);}catch(e){;}
preEl = el; 
}
function ChangeTextColor(a_obj,a_color){  ;
for (i=0;i<a_obj.cells.length;i++){//put condition before increase!!!!!
a_obj.cells(i).style.color=a_color; 
}
}

//GoTo URL
function goToURL() { //v3.0
  var i, args=goToURL.arguments; document.returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function calcCFM ()
{
	/*
		here is the formula for this calculation: ((dis/1728)*(rpm/cfactor)*vef) = CFM 
		dis = Vehicle Displacement, must be a positive number
		rpm = Maximum RPM, must be a positive number
		cfactor = Cycle Factor, 1 or 2 only
		vef = Volumetric Efficiency, 0.8, 1.3, or 1.75 only
	*/

	f = document.cfm_calculator;

	var D = f.dis.value;
	if (D < 0) return;
	
	var R = f.rpm.value;
	if (R < 0) return;
	
	var i = 0;
	while (i < f.cfactor.length) 
	{
		if (f.cfactor[i].checked) C = f.cfactor[i].value;
		i++; 
	}
	
	i = 0;
	while (i < f.vef.length) 
	{		
		if (f.vef[i].checked) V = f.vef[i].value; 
		i++; 
	}

	var CFM = Math.floor ((D/1728) * (R/C) * V);

	document.getElementById('cfmresult').innerHTML = "CFM : " + CFM
}



/**
 * FlashObject v1.2.3: Flash detection and embed - http://blog.deconcept.com/flashobject/
 *
 * FlashObject is (c) 2005 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof com == "undefined") var com = new Object();
if(typeof com.deconcept == "undefined") com.deconcept = new Object();
if(typeof com.deconcept.util == "undefined") com.deconcept.util = new Object();
if(typeof com.deconcept.FlashObjectUtil == "undefined") com.deconcept.FlashObjectUtil = new Object();
com.deconcept.FlashObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, redirectUrl, detectKey){
   this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
   this.skipDetect = com.deconcept.util.getRequestParameter(this.DETECT_KEY);
   this.params = new Object();
   this.variables = new Object();
   this.attributes = new Array();

   if(swf) this.setAttribute('swf', swf);
   if(id) this.setAttribute('id', id);
   if(w) this.setAttribute('width', w);
   if(h) this.setAttribute('height', h);
   if(ver) this.setAttribute('version', new com.deconcept.PlayerVersion(ver.toString().split(".")));
   if(c) this.addParam('bgcolor', c);
   var q = quality ? quality : 'high';
   this.addParam('quality', q);
   this.setAttribute('redirectUrl', '');
   if(redirectUrl) this.setAttribute('redirectUrl', redirectUrl);
   if(useExpressInstall) {
   // check to see if we need to do an express install
   var expressInstallReqVer = new com.deconcept.PlayerVersion([8,0,0]);
   var installedVer = com.deconcept.FlashObjectUtil.getPlayerVersion();
      if (installedVer.versionIsValid(expressInstallReqVer) && !installedVer.versionIsValid(this.getAttribute('version'))) {
         this.setAttribute('doExpressInstall', true);
      }
   } else {
      this.setAttribute('doExpressInstall', false);
   }
}
com.deconcept.FlashObject.prototype.setAttribute = function(name, value){
	this.attributes[name] = value;
}
com.deconcept.FlashObject.prototype.getAttribute = function(name){
	return this.attributes[name];
}
com.deconcept.FlashObject.prototype.getAttributes = function(){
	return this.attributes;
}
com.deconcept.FlashObject.prototype.addParam = function(name, value){
	this.params[name] = value;
}
com.deconcept.FlashObject.prototype.getParams = function(){
	return this.params;
}
com.deconcept.FlashObject.prototype.getParam = function(name){
	return this.params[name];
}
com.deconcept.FlashObject.prototype.addVariable = function(name, value){
	this.variables[name] = value;
}
com.deconcept.FlashObject.prototype.getVariable = function(name){
	return this.variables[name];
}
com.deconcept.FlashObject.prototype.getVariables = function(){
	return this.variables;
}
com.deconcept.FlashObject.prototype.getParamTags = function(){
   var paramTags = ""; var key; var params = this.getParams();
   for(key in params) {
        paramTags += '<param name="' + key + '" value="' + params[key] + '" />';
    }
   return paramTags;
}
com.deconcept.FlashObject.prototype.getVariablePairs = function(){
	var variablePairs = new Array();
	var key;
	var variables = this.getVariables();
	for(key in variables){
		variablePairs.push(key +"="+ variables[key]);
	}
	return variablePairs;
}
com.deconcept.FlashObject.prototype.getHTML = function() {
    var flashHTML = "";
    if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
        flashHTML += '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') + '" name="'+ this.getAttribute('id') +'"';
		var params = this.getParams();
        for(var key in params){ flashHTML += ' '+ key +'="'+ params[key] +'"'; }
		pairs = this.getVariablePairs().join("&");
        if (pairs.length > 0){ flashHTML += ' flashvars="'+ pairs +'"'; }
        flashHTML += '></embed>';
    } else { // PC IE
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') +'">';
        flashHTML += '<param name="movie" value="' + this.getAttribute('swf') + '" />';
		flashHTML += '<param name="wmode" value="transparent" />';
		var tags = this.getParamTags();
        if(tags.length > 0){ flashHTML += tags; }
		var pairs = this.getVariablePairs().join("&");
        if(pairs.length > 0){ flashHTML += '<param name="flashvars" value="'+ pairs +'" />'; }
        flashHTML += '</object>';
    }
    return flashHTML;
}
com.deconcept.FlashObject.prototype.write = function(elementId){
	if(this.skipDetect || this.getAttribute('doExpressInstall') || com.deconcept.FlashObjectUtil.getPlayerVersion().versionIsValid(this.getAttribute('version'))){
		if(document.getElementById){
		   if (this.getAttribute('doExpressInstall')) {
		      this.addVariable("MMredirectURL", escape(window.location));
		      document.title = document.title.slice(0, 47) + " - Flash Player Installation";
		      this.addVariable("MMdoctitle", document.title);
		   }
			document.getElementById(elementId).innerHTML = this.getHTML();
		}
	}else{
		if(this.getAttribute('redirectUrl') != "") {
			document.location.replace(this.getAttribute('redirectUrl'));
		}
	}
}
/* ---- detection functions ---- */
com.deconcept.FlashObjectUtil.getPlayerVersion = function(){
   var PlayerVersion = new com.deconcept.PlayerVersion(0,0,0);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else if (window.ActiveXObject){
	   try {
   	   var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
   		PlayerVersion = new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
	   } catch (e) {}
	}
	return PlayerVersion;
}
com.deconcept.PlayerVersion = function(arrVersion){
	this.major = parseInt(arrVersion[0]) || 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0;
}
com.deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
com.deconcept.util.getRequestParameter = function(param)
{
	var q = document.location.search || document.location.href.hash;
	if(q)
	{
		var startIndex = q.indexOf(param +"=");
		var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
		if (q.length > 1 && startIndex > -1)
		{
			return q.substring(q.indexOf("=", startIndex)+1, endIndex);
		}
	}
	return "";
}

/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use / backwards compatibility */
var getQueryParamValue = com.deconcept.util.getRequestParameter;
var FlashObject = com.deconcept.FlashObject;


/* FORM VALIDATION    *************************/


// Generic Form Validation
// Jacob Hage (jacob@hage.dk)
var checkObjects	= new Array();
var errors			= "";
var returnVal		= false;
var language		= new Array();
language["header"]	= "The following error(s) occured:"
language["start"]	= "->";
language["field"]	= " Field ";
language["require"]	= " is required";
language["min"]		= " and must consist of at least ";
language["max"]		= " and must not contain more than ";
language["minmax"]	= " and no more than ";
language["chars"]	= " characters";
language["num"]		= " and must contain a number";
language["email"]	= " must contain a valid e-mail address";
// -----------------------------------------------------------------------------
// define - Call this function in the beginning of the page. I.e. onLoad.
// n = name of the input field (Required)
// type= string, num, email (Required)
// min = the value must have at least [min] characters (Optional)
// max = the value must have maximum [max] characters (Optional)
// d = (Optional)
// -----------------------------------------------------------------------------
function define(n, type, HTMLname, min, max, d)
{
	var p;
	var i;
	var x;
	if (!d) d = document;
	if ((p=n.indexOf("?"))>0&&parent.frames.length) 
	{
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}
	
	if (!(x = d[n]) && d.all) x = d.all[n];
	
	for (i = 0; !x && i < d.forms.length; i++)
	{
		x = d.forms[i][n];
	}
	
	for (i = 0; !x && d.layers && i < d.layers.length; i++)
	{
		x = define(n, type, HTMLname, min, max, d.layers[i].document);
		return x;       
	}
	this["V_"+n] = new formResult(x, type, HTMLname, min, max);
	checkObjects[eval(checkObjects.length)] = this["V_"+n];
}
	
function formResult(form, type, HTMLname, min, max)
{
	this.form = form;
	this.type = type;
	this.HTMLname = HTMLname;
	this.min  = min;
	this.max  = max;
}


function validate() 
{
	if (checkObjects.length > 0) 
	{
		errorObject = "";
		for (i = 0; i < checkObjects.length; i++) 
		{
			validateObject = new Object();
			validateObject.form = checkObjects[i].form;
			validateObject.HTMLname = checkObjects[i].HTMLname;
			validateObject.val = checkObjects[i].form.value;
			validateObject.len = checkObjects[i].form.value.length;
			validateObject.min = checkObjects[i].min;
			validateObject.max = checkObjects[i].max;
			validateObject.type = checkObjects[i].type;
			
			if (validateObject.type == "num" || validateObject.type == "string") 
			{
				if ((validateObject.type == "num" && validateObject.len <= 0) || (validateObject.type == "num" && isNaN(validateObject.val))) 
				{ 
					errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['num'] + "\n";
				} 
				else if (validateObject.min && validateObject.max && (validateObject.len < validateObject.min || validateObject.len > validateObject.max)) 
				{ 
					errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['min'] + validateObject.min + language['minmax'] + validateObject.max+language['chars'] + "\n";
				} 
				else if (validateObject.min && !validateObject.max && (validateObject.len < validateObject.min))
				{ 
					errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['min'] + validateObject.min + language['chars'] + "\n";
				} 
				else if (validateObject.max && !validateObject.min &&(validateObject.len > validateObject.max)) 
				{ 
					errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['max'] + validateObject.max + language['chars'] + "\n";
				} 
				else if (!validateObject.min && !validateObject.max && validateObject.len <= 0) 
				{
					errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + "\n";
				}
			} 
			else if(validateObject.type == "email") 
			{
			// Checking existense of "@" and ".". 
			// Length of must >= 5 and the "." must 
			// not directly precede or follow the "@"
			if ((validateObject.val.indexOf("@") == -1) || (validateObject.val.charAt(0) == ".") || (validateObject.val.charAt(0) == "@") || (validateObject.len < 6) || (validateObject.val.indexOf(".") == -1) || (validateObject.val.charAt(validateObject.val.indexOf("@")+1) == ".") || (validateObject.val.charAt(validateObject.val.indexOf("@")-1) == "."))
			{ 
				errors += language['start'] + language['field'] + validateObject.HTMLname + language['email'] + "\n"; }
			}
		   }
		}
		if (errors) 
		{
			alert(language["header"].concat("\n" + errors));
			errors = "";
			return false;
		} 
		else 
		{
			//form.submit();
			return true;
		}
}
