var selectedTabName = "";

// -- Simplified Image Swap
function swap(imgName, imgSrc){
	if (selectedTabName!=imgName){
		document[imgName].src = imgSrc;
	}
}

// window popup
function popWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

// simple window popup
function simplePopup(theURL) {
  window.open(theURL,'window','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=760,height=450,left=10,top=10');
}

function imagePopup(theURL) {
  window.open(theURL,'window','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=400,left=10,top=10');
}

// homepage tab DOM compliant switcher
function showItem(selectedItem){
	for (i=0; i < tabbedresultsitem.length; i++){
		if(document.all) {
			document.all(tabbedresultsitem[i]).style.display = 'none';
			document.all("tabbedresultsimage_" + i).src = "images/" + tabbedresultsimage[i] + "Out.gif";
		}else {
			document.getElementById(tabbedresultsitem[i]).style.display = 'none';
			document.getElementById("tabbedresultsimage_" + i).src = "images/" + tabbedresultsimage[i] + "Out.gif";
		}
	}
	
	selectedTabName = "tabbedresultsimage_" + selectedItem;
	if(document.all) {
		document.all(tabbedresultsitem[selectedItem]).style.display = '';
		document.all(selectedTabName).src = "images/" + tabbedresultsimage[selectedItem] + "Over.gif";
	}else if(document.getElementById(tabbedresultsitem[selectedItem])) {
		document.getElementById(tabbedresultsitem[selectedItem]).style.display = '';
		document.getElementById(selectedTabName).src = "images/" + tabbedresultsimage[selectedItem] + "Over.gif";
	}
}

			
function hideItem(){
	for (i=0; i < item.length; i++){
		if(document.all) {
			document.all(item[i]).style.display = 'none';
		}
		else {
			document.getElementById(item[i]).style.display = 'none';
		}
	}
}


// prevent right clicking
function noRightClick() {
	var message=" All images and copy on this site are property of Toyota New Zealand Limited.\n To request permission to use any of this site's content please contact:\n webmaster@toyotaracing.co.nz ";

	function click(e) {
	if (document.all) {
	   if (event.button == 2) {
		  alert(message);
	      return false;
	    }
	}

	if (document.layers) {
	   if (e.which == 3) {
		alert(message);
		return false;
	   }
    }
	}

    if (document.layers) {
      document.captureEvents(Event.MOUSEDOWN);
	}

    document.onmousedown=click;
}

function MM_preloadImages() { //v3.0
  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_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  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.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var item = new Array();
item[0] = 'tabMenuSchedule';
item[1] = 'tabMenuResults';
item[2] = 'tabMenuDriverPts';


//==============================================================================
//*FILENAME	-: crushernet.js
//*VERSION	-: 1.00.001
//*DESCRIPTION	-: Crusher.net Javascript funcitons
//==============================================================================

isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

/* Toggles the Highlight on the Button rollovers */
function toggleHighlight(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : "")
    if (evt) {
        var elem
        if (evt.target) {
            if (evt.target && (evt.currentTarget != evt.target)) {
                elem = evt.target
            } else {
                elem = evt.currentTarget
            } 
        } else {
            elem = evt.srcElement
        }
        
        if (elem.className == 'bton' || elem.className == 'btoff' ) {
          elem.className = (evt.type == 'mouseover') ? 'bton' : 'btoff'
        }
		if (elem.className == 'btwhiteon' || elem.className == 'btwhiteoff' ) {
          elem.className = (evt.type == 'mouseover') ? 'btwhiteon' : 'btwhiteoff'
        }
    }
}
document.onmouseout = toggleHighlight;
document.onmouseover = toggleHighlight;


function toggleDisplay(tagID)  {
	if (document.getElementById(tagID).style.display == 'none') 
	{
		document.getElementById(tagID).style.display = '';
	}
	else
	{
		document.getElementById(tagID).style.display = 'none';
	}
}

function toggleOption(object)  {
	if (object.checked!='undefined'){
		object.checked==!object.checked;
	}
}

function check_toggle(frm_object,value){
	for(i=0;i< frm_object.length;i++){
		e=frm_object.elements[i];
		if (e.type=='checkbox' ) e.checked=value;
	}
}

function TreeToggle(node){
	//'==============================================================================
	//'*FUNCTION NAME	-: TreeToggle
	//'*DESCRIPTION		-: Toggles a tree element open or closed
	//'==============================================================================
	var oNode=node;
	do{
		oNode = oNode.nextSibling;
	}while (oNode.nodeName != 'DIV' )

	var str = node.firstChild.src;

	if (oNode.style.display == 'none'){
		if (node.childNodes.length > 0){
			str = str.substring(0,str.indexOf('plus.gif')) + 'minus.gif';
			if (node.firstChild.tagName == 'IMG') node.firstChild.src = str;
		}
		oNode.style.display = '';
	}else{
		if (node.childNodes.length > 0){
			str = str.substring(0,str.indexOf('minus.gif')) + 'plus.gif';
			if (node.firstChild.tagName == 'IMG') node.firstChild.src = str;
		}
		oNode.style.display = 'none';
	}
}

function Validator(frmname){
  this.formobj=document.forms[frmname];
	if(!this.formobj)	{
	  alert("BUG: could not get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}else{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}

function set_addnl_vfunction(functionname){
  this.formobj.addnlvalidation = functionname;
}

function clear_all_validations(){
	for(var itr=0;itr < this.formobj.elements.length;itr++)	{
		this.formobj.elements[itr].validationset = null;
	}
}

function form_submit_handler(){
	for(var itr=0;itr < this.elements.length;itr++)	{
		if(this.elements[itr].validationset && !this.elements[itr].validationset.validate()){
		  return false;
		}
	}
	if(this.addnlvalidation){
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
	  if(!ret) return ret;
	}
	return true;
}

function add_validation(itemname,descriptor,errstr){
	if(!this.formobj){
	  alert("BUG: the form object is not set properly");
	  return;
	}
	var itemobj = this.formobj[itemname];
	if(!itemobj){
	  alert("BUG: Couldnot get the input object named: "+itemname);
	  return;
	}
	if(!itemobj.validationset){
	  itemobj.validationset = new ValidationSet(itemobj);
	}
	itemobj.validationset.add(descriptor,errstr);
}

function ValidationDesc(inputitem,desc,error){
	this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
}

function vdesc_validate(){
 if(!V2validateData(this.desc,this.itemobj,this.error)) {
	if (this.itemobj.visible){
		this.itemobj.focus();
	}
	return false;
 }
 return true;
}

function ValidationSet(inputitem){
	this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}

function add_validationdesc(desc,error){
	this.vSet[this.vSet.length] = new ValidationDesc(this.itemobj,desc,error);
}

function vset_validate(){
	for(var itr=0;itr<this.vSet.length;itr++){
	   if(!this.vSet[itr].validate()){
	      return false;
	   }
	}
	return true;
}

function validateEmailv2(email){
	if(email.length <= 0){
	   return true;
	}
	var splitted = email.match("^(.+)@(.+)$");
	if(splitted == null) return false;
	if(splitted[1] != null ){
	   var regexp_user=/^\"?[\w-_\.]*\"?$/;
	   if(splitted[1].match(regexp_user) == null) return false;
	}
	if(splitted[2] != null){
	   var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
	   if(splitted[2].match(regexp_domain) == null) {
	      var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	      if(splitted[2].match(regexp_ip) == null) return false;
	   }
	   return true;
	}
	return false;
}

function V2validateData(strValidateStr,objValue,strError){ 
	var epos = strValidateStr.search("="); 
	var  command  = ""; 
	var  cmdvalue = ""; 
	if(epos >= 0){ 
	   command  = strValidateStr.substring(0,epos); 
	   cmdvalue = strValidateStr.substr(epos+1); 
	} else { 
	   command = strValidateStr; 
	} 
	switch(command){ 
	   case "chk":{
	      if(eval(objValue.checked) == 0){ 
	         if(!strError || strError.length ==0){ 
	            strError = objValue.name + " : Please tick to submit."; 
                 }
                 alert(strError); 
                 return false; 
	      }
          break;             
       }
       case "req": 
       case "required": { 
		  if(eval(objValue.value.length) == 0){ 
             if(!strError || strError.length ==0){ 
                strError = objValue.name + " : Please complete this information"; 
             }
             alert(strError); 
             return false; 
          }
          break;             
        }
        case "maxlength": 
        case "maxlen":{ 
           if(eval(objValue.value.length) >  eval(cmdvalue)){ 
              if(!strError || strError.length ==0){ 
                  strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
              } 
              alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
              return false; 
           } 
           break; 
        }
        case "minlength": 
        case "minlen":{ 
            if(eval(objValue.value.length) <  eval(cmdvalue)){ 
               if(!strError || strError.length ==0){ 
                   strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
               }
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false;                 
            }
            break; 
        }
        case "alnum": 
        case "alphanumeric":{ 
            var charpos = objValue.value.search("[^A-Za-z0-9]"); 
            if(objValue.value.length > 0 &&  charpos >= 0){ 
                if(!strError || strError.length ==0){ 
                    strError = objValue.name+": Only alpha-numeric characters allowed "; 
                }
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
            }
            break; 
        }
        case "num": 
        case "numeric":{ 
            var charpos = objValue.value.search("[^0-9]"); 
            if(objValue.value.length > 0 &&  charpos >= 0){ 
                if(!strError || strError.length ==0){ 
                  strError = objValue.name+": Only digits allowed "; 
                }
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
            }
            break;               
        }//numeric 
        case "alphabetic": 
        case "alpha":{ 
            var charpos = objValue.value.search("[^A-Za-z]"); 
            if(objValue.value.length > 0 &&  charpos >= 0){ 
                if(!strError || strError.length ==0){ 
                    strError = objValue.name+": Only alphabetic characters allowed "; 
                }
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
            }
            break; 
        }
		case "alnumhyphen":{
            var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
            if(objValue.value.length > 0 &&  charpos >= 0){ 
                if(!strError || strError.length ==0){ 
                    strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 
                }
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
            }
			break;
		}
        case "email":{ 
            if(!validateEmailv2(objValue.value)){ 
               if(!strError || strError.length ==0){ 
                    strError = objValue.name+": Enter a valid Email address "; 
               }
               alert(strError); 
               return false; 
            }
            break; 
        }
        case "lt": 
        case "lessthan":{ 
            if(isNaN(objValue.value)){ 
                alert(objValue.name+": Should be a number "); 
            return false; 
            }
            if(eval(objValue.value) >=  eval(cmdvalue)) { 
              if(!strError || strError.length ==0){ 
                 strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }
              alert(strError); 
              return false;                 
            }
            break; 
        }
        case "gt": 
        case "greaterthan":{ 
            if(isNaN(objValue.value)){ 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }
            if(eval(objValue.value) <=  eval(cmdvalue)){ 
               if(!strError || strError.length ==0){ 
                   strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }
               alert(strError); 
               return false;                 
            }
            break; 
        }
        case "regexp":{ 
		 	if(objValue.value.length > 0){
	            if(!objValue.value.match(cmdvalue)){ 
	              if(!strError || strError.length ==0){ 
	                strError = objValue.name+": Invalid characters found "; 
	              }
	              alert(strError); 
	              return false;                   
	            }
			}
            break; 
        }
        case "dontselect":{ 
            if(objValue.selectedIndex == null){ 
              alert("BUG: dontselect command for non-select Item"); 
              return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)){ 
				if(!strError || strError.length ==0){ 
				strError = objValue.name+": Please Select one option "; 
				}
				alert(strError); 
				return false;                                   
            } 
            break; 
        }
    }
    return true; 
}


function deleteconfirm() {
	return confirm('Are you sure you want to Delete this?\n\r\n\rBEWARE: You cannot undo this operation!');
}

function approveconfirm() {
	return confirm('Are you sure you want to Approve this article?\n\r\n\rBEWARE: This operation will overwrite the current \'Live\' information!');
}

/*
	Image swap for Bliss-Stick product pages:
*/
function MM_findObj(n, d) 
{ //v4.01
  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 && d.getElementById) 
  		x=d.getElementById(n);
  return x;
}

function MM_swapImage()
{ //v3.0
  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.oSrc) x.oSrc=x.src; x.src=a[i+2];
   }
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; 
  for(i=0;a && i<a.length && (x=a[i]) && x.oSrc; i++)
  	x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 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];}}
}


//used by feedback form
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}


