//
// AUTO SUBMIT MODULE
Event.observe(window, 'load', init, false);

//var http = createObject();
var scrolltop="Y";
var webservicesroot= new Array(2);
var riroot= new Array(2);
var mtween=true;
var currHeroShell="dyn_hero_a";
var currHeroImg=1;


riroot['step1']="h";

// INITIALIZE
function init(){
	$("itemsmanuf_sub_wrapper").style.visibility="visible";
	$("services_sub_wrapper").style.visibility="visible";
	//$("itemsmanuf_sub_wrapper").style.display="none";
	//$("services_sub_wrapper").style.display="none";
	
	$("itemsmanuf_sub_wrapper").addClassName('subnav_wrapper_hidden');
	$("services_sub_wrapper").addClassName('subnav_wrapper_hidden');
	
	
	if($("dyn_hero_a")){
		loadhero_a();
		//setInterval("beginHeroTween()",6400);
		//setInterval("rotateHero()",3000);				 // UNCOMMENT THIS LINE TO TURN IMAGE ROTATION BACK ON
//		rotateHero();
	}
	
}

function rotateHero(){
	switch(currHeroShell){
		case "dyn_hero_a":
			loadhero_a();
		break;
		case "dyn_hero_b":
			loadhero_b();
		break;
	}
}

function beginHeroTween(){
	var heroElement=$("dyn_hero_wrapper");
	//
	// ## x-axis range 0 to -97. y-axis range of 0 to -332.
	// DETERMINE RANDOM COORDINATES TO WHICH NEW IMAGE WILL SHIFT 
	var randXaxis=Math.round(Math.random() * 97);
	var randYaxis=Math.round(Math.random() * 332);
	randXaxis=randXaxis*(-1);
	randYaxis=randYaxis*(-1);
	
	new Effect.Move(heroElement, { x: randXaxis, y: randYaxis, mode: 'absolute' });
}

function loadhero_a(){
	
	$('dyn_hero_a').style.zIndex="5";
	$('dyn_hero_b').style.zIndex="6";	
		
	$('dyn_hero_a').removeClassName('hero00');
	$('dyn_hero_a').removeClassName('hero01');
	$('dyn_hero_a').removeClassName('hero02');
	$('dyn_hero_a').removeClassName('hero03');
	
	var newimg=Math.floor(Math.random()*4);
	$('dyn_hero_a').addClassName('hero0'+newimg);
		
	currHeroShell="dyn_hero_b";
}

function loadhero_b(){
	
	$('dyn_hero_b').style.zIndex="5";
	$('dyn_hero_a').style.zIndex="6";	
	
	$('dyn_hero_b').removeClassName('hero00');
	$('dyn_hero_b').removeClassName('hero01');
	$('dyn_hero_b').removeClassName('hero02');
	$('dyn_hero_b').removeClassName('hero03');
	
	var newimg=Math.floor(Math.random()*4);
	$('dyn_hero_b').addClassName('hero0'+newimg);
	
	currHeroShell="dyn_hero_a";
}


function loadPage(oElement){
	var folder="/centron.com";
	var folder="";
	var urlRoot = document.domain;
	switch(oElement.id){
		case "aboutus":
			window.location="http://"+urlRoot+folder+"/aboutus/";
		break;
		case "certification":
			window.location="http://"+urlRoot+folder+"/certification/";
		break;
		case "services":
		case "engineering":
			window.location="http://"+urlRoot+folder+"/services/engineering/";
		break;
		case "manufacturing":
			window.location="http://"+urlRoot+folder+"/services/manufacturing/";
		break;
		case "products":
		case "airflow":
			window.location="http://"+urlRoot+folder+"/products/airflow/";
		break;
		case "powerC":
			window.location="http://"+urlRoot+folder+"/products/powerc/";
		break;
		case "powerDTL":
			window.location="http://"+urlRoot+folder+"/products/powerdtl/";
		break;
		case "switch":
			window.location="http://"+urlRoot+folder+"/products/switch/";
		break;
		case "tach":
			window.location="http://"+urlRoot+folder+"/products/tachometer/";
		break;
		case "jtrs":
			window.location="http://"+urlRoot+folder+"/products/jtrs/";
		break;
		case "other":
			window.location="http://"+urlRoot+folder+"/products/misc/";
		break;
		case "certification":
			window.location="http://"+urlRoot+folder+"/certification/";a
		break;
		case "code":
			window.location="http://"+urlRoot+folder+"/ethics/";
		break;
		case "news":
			window.location="http://www.centronindn.com/news/";
		break;
		case "contact":
			window.location="http://"+urlRoot+folder+"/contact/";
		break;
	}
}

function loadThumb(oElement, root){	
	//var objLoadingImage = document.createElement("img");
	//objLoadingImage.setAttribute('src', ");
	$("prod_img_wrapper").innerHTML="";
	//$("prod_img_wrapper").appendChild(objLoadingImage);
	
	//
	// LETS BUILD THE IMG HTML HERE TO ENABLE LIGHTBOX
	$("prod_img_wrapper").innerHTML='<ul class="lbx_ul"><li class="lbx_li"><a href="'+root+'/common/imgs/product/lg/'+oElement.id+'.jpg" rel="lightbox[gallery]"><img src="'+root+'/common/imgs/product/medium/'+oElement.id+'.jpg" width="347" height="205" border="0" alt="" /></a></li></ul>';
	initLightbox();
}



function fnGetDomain(url) {
   return url.match(/:\/\/(.[^/]+)/)[1];
}


function visibleSubNavControl(oNav, oState){
	switch(oNav){
		case "services":
			switch(oState){
				case "over":
					$("services_sub_wrapper").removeClassName('subnav_wrapper_hidden');
				break;
				case "off":
					$("services_sub_wrapper").addClassName('subnav_wrapper_hidden');
				break;
			}
		break;
	
		case "manufacture":
			switch(oState){
				case "over":
					$("itemsmanuf_sub_wrapper").removeClassName('subnav_wrapper_hidden');
				break;
				case "off":
					$("itemsmanuf_sub_wrapper").addClassName('subnav_wrapper_hidden');
				break;
			}
		break;
	}
}


//
// PROTOTYPE SLIDE EFFECTS
function SDEffect(element, protoaction){
	switch(protoaction){
		case "down":
			element.style.display="inline";
			new Effect.SlideDown(element, { duration: 1.0 });
		break;
		case "up":
			element.style.display="inline";
			new Effect.SlideUp(element, { duration: 1.0 });
		break;
	}
}


//
// GENERIC RADIO STATE MANAGEMENT  
function toggleradio(radioCount, startValue, clickedID, tgtID, radioValue){
	var startValue=startValue-0;
	var oRadioClicked = $(clickedID); 
	if($(tgtID).value!=radioValue){
		for(var i=startValue; i<radioCount+startValue; i++){
			var tempRadioHandle="radio_"+i;
			if(clickedID!=tempRadioHandle){
				$(tempRadioHandle).innerHTML="<img src='./common/imgs/radio_off.jpg' width='13' height='12' alt='' />";
			}
		}
		$(tgtID).value=radioValue;
		$(clickedID).innerHTML="<img src='./common/imgs/radio_on.jpg' width='13' height='12' alt='' />";
	}
}

//
// GENERIC CHECKBOX STATE MANAGEMENT  
function togglechkbox(mychkbx, tgtID, checkedvalue,uncheckedvalue){
	var oChkbx = $(mychkbx);
	if($(tgtID).value==checkedvalue){
 		$(tgtID).value=uncheckedvalue; 
	}else{
 		$(tgtID).value=checkedvalue; 
	}
}

//
// VALIDATE EMAIL
function checkFormEmail(){
	var EMAIL=$("EMAIL").value;
	if(!validReqField(EMAIL)){
		//
		// DISPLAY EMAIL ERROR MESSAGES
		$("EMAIL_req").style.visibility="visible";
		$("EMAIL").style.borderColor="#E7361D";
		$("EMAIL_ttl").style.color="#E7361D";

		$("EMAIL_status").addClassName('err_status');
		$("EMAIL_status").removeClassName('off_status');
		$("EMAIL_status").removeClassName('ok_status');
		return 1;
	}else{
		$("EMAIL_req").style.visibility="hidden";
		$("EMAIL").style.borderColor="#C4CAE0";
		if(!validEmail(EMAIL)){
			//
			// DISPLAY EMAIL ERROR MESSAGES
			$("EMAIL_req").style.visibility="visible";
			$("EMAIL").style.borderColor="#E7361D";
			$("EMAIL_ttl").style.color="#E7361D";
	
			$("EMAIL_status").addClassName('err_status');
			$("EMAIL_status").removeClassName('off_status');
			$("EMAIL_status").removeClassName('ok_status');
			return 1;
		}else{
			$("EMAIL_req").style.visibility="hidden";
			$("EMAIL").style.borderColor="#C4CAE0";
			$("EMAIL_ttl").style.color="#666";
			$("EMAIL_status").addClassName('ok_status');
			$("EMAIL_status").removeClassName('err_status');
			$("EMAIL_status").removeClassName('off_status');
			
			//
			// GOOGLE ANALYTICS TRACKING
			var tmp=trackThis(category, action, '01-email', '');
			return 0;
		}
	}
}

//
// VALIDATE EMAIL CONFIRMATION
function checkFormEmailConfirm(){
	var EMAIL=$("EMAIL").value;
	var EMAILCONFIRM=$("EMAILCONFIRM").value;
	
	EMAIL=EMAIL.toUpperCase();
	EMAILCONFIRM=EMAILCONFIRM.toUpperCase();
	
	if(EMAIL!=EMAILCONFIRM){
		//
		// DISPLAY EMAIL ERROR MESSAGES
		$("EMAILCONFIRM_req").style.visibility="visible";
		$("EMAILCONFIRM").style.borderColor="#E7361D";
		$("EMAILCONFIRM_ttl").style.color="#E7361D";
		$("EMAILCONFIRM_status").addClassName('err_status');
		$("EMAILCONFIRM_status").removeClassName('off_status');
		$("EMAILCONFIRM_status").removeClassName('ok_status');
		return 1;
	}else{
		$("EMAILCONFIRM_req").style.visibility="hidden";
		$("EMAILCONFIRM").style.borderColor="#C4CAE0";
		$("EMAILCONFIRM_ttl").style.color="#666";
		$("EMAILCONFIRM_status").addClassName('ok_status');
		$("EMAILCONFIRM_status").removeClassName('err_status');
		$("EMAILCONFIRM_status").removeClassName('off_status');
		
		//
		// GOOGLE ANALYTICS TRACKING
		var tmp=trackThis(category, action, '02-email-confirm', '');
		return 0;
	}
} 

//
// VALIDATE MOBILENUMBER
function checkFormMobilenumber(){
	var CUSTOMERSTATUS=$("CUSTOMERSTATUS").value;
	var MOBILENUMBER=$("MOBILENUMBER").value;
	
	if(CUSTOMERSTATUS=="Customer" && (!validReqField(MOBILENUMBER) || !validPhone(MOBILENUMBER))){
		//
		// DISPLAY MOBILENUMBER ERROR MESSAGES
		$("MOBILENUMBER_req").style.visibility="visible";
		$("MOBILENUMBER").style.borderColor="#E7361D";
		$("MOBILENUMBER_ttl").style.color="#E7361D";
		
		$("MOBILENUMBER_status").addClassName('err_status');
		$("MOBILENUMBER_status").removeClassName('off_status');
		$("MOBILENUMBER_status").removeClassName('ok_status');
		return 1;
	}else{
		
		if(!validPhone(MOBILENUMBER)){
			$("MOBILENUMBER_req").style.visibility="visible";
			$("MOBILENUMBER").style.borderColor="#E7361D";
			$("MOBILENUMBER_ttl").style.color="#E7361D";
			
			$("MOBILENUMBER_status").addClassName('err_status');
			$("MOBILENUMBER_status").removeClassName('off_status');
			$("MOBILENUMBER_status").removeClassName('ok_status');
			return 1;
		}else{
			$("MOBILENUMBER_req").style.visibility="hidden";
			$("MOBILENUMBER").style.borderColor="#C4CAE0";
			$("MOBILENUMBER_ttl").style.color="#666";
			
			$("MOBILENUMBER_status").addClassName('ok_status');
			$("MOBILENUMBER_status").removeClassName('off_status');
			$("MOBILENUMBER_status").removeClassName('err_status');
			
			//
			// CLEAN UP MOBILENUMBER
			formatMobileNumber();
			//
			// GOOGLE ANALYTICS TRACKING
			var tmp=trackThis(category, action, '05-mobile-number', '');
			return 0;
		}
	}
}

//
// VALIDATE ZIPCODE
function checkFormZipcode(){
	var CUSTOMERSTATUS=$("CUSTOMERSTATUS").value;
	var ZIPCODE=$("ZIPCODE").value;
  	
	if(CUSTOMERSTATUS=="Customer" && (!validReqField(ZIPCODE) || !validZip(ZIPCODE))){
		//
		// DISPLAY MOBILENUMBER ERROR MESSAGES
		$("ZIPCODE_req").style.visibility="visible";
		$("ZIPCODE").style.borderColor="#E7361D";
		$("ZIPCODE_ttl").style.color="#E7361D";
		
		$("ZIPCODE_status").addClassName('err_status');
		$("ZIPCODE_status").removeClassName('off_status');
		$("ZIPCODE_status").removeClassName('ok_status');
		scrolltop=="N";
		return 1;
	}else{
		if(!validZip(ZIPCODE)){
			$("ZIPCODE_req").style.visibility="visible";
			$("ZIPCODE").style.borderColor="#E7361D";
			$("ZIPCODE_ttl").style.color="#E7361D";
			
			$("ZIPCODE_status").addClassName('err_status');
			$("ZIPCODE_status").removeClassName('off_status');
			$("ZIPCODE_status").removeClassName('ok_status');
			scrolltop=="N";
			return 1;
		}else{
			$("ZIPCODE_req").style.visibility="hidden";
			$("ZIPCODE").style.borderColor="#C4CAE0";
			$("ZIPCODE_ttl").style.color="#666";
			
			$("ZIPCODE_status").addClassName('ok_status');
			$("ZIPCODE_status").removeClassName('off_status');
			$("ZIPCODE_status").removeClassName('err_status');
			scrolltop=="Y";
			return 0;
		}
	}	
}

//
// VALIDATE FIRSTNAME
function checkFormFirstname(){
	var FIRSTNAME=$("NAME").value;
	if(!validReqField(NAME)){
		$("NAME_req").style.visibility="visible";
		$("NAME").style.borderColor="#E7361D";
		$("NAME_ttl").style.color="#E7361D";
		
		$("NAME_status").addClassName('err_status');
		$("NAME_status").removeClassName('off_status');
		$("NAME_status").removeClassName('ok_status');
		return 1;
	}else{
		$("NAME_req").style.visibility="hidden";
		$("NAME").style.borderColor="#C4CAE0";
		$("NAME_ttl").style.color="#666";
		
		$("NAME_status").addClassName('ok_status');
		$("NAME_status").removeClassName('off_status');
		$("NAME_status").removeClassName('err_status');
		
		//
		// GOOGLE ANALYTICS TRACKING
		var tmp=trackThis(category, action, '03-first-name', '');
		
		return 0;
	}
}

//
// VALIDATE LASTNAME
function checkFormLastname(){
	var LASTNAME=$("LASTNAME").value;
	if(!validReqField(LASTNAME)){
		$("LASTNAME_req").style.visibility="visible";
		$("LASTNAME").style.borderColor="#E7361D";
		$("LASTNAME_ttl").style.color="#E7361D";
		
		$("LASTNAME_status").addClassName('err_status');
		$("LASTNAME_status").removeClassName('off_status');
		$("LASTNAME_status").removeClassName('ok_status');
		return 1;
	}else{
		$("LASTNAME_req").style.visibility="hidden";
		$("LASTNAME").style.borderColor="#C4CAE0";
		$("LASTNAME_ttl").style.color="#666";
		
		$("LASTNAME_status").addClassName('ok_status');
		$("LASTNAME_status").removeClassName('off_status');
		$("LASTNAME_status").removeClassName('err_status');
		
		//
		// GOOGLE ANALYTICS TRACKING
		var tmp=trackThis(category, action, '04-last-name', '');
		return 0;
	}
}


//
// VALIDATE ONBLUR
function checkMe(element){
	switch(element.id){
		case "s":
			checkSearch();
		break;
		case "EMAILCONFIRM":
			checkFormEmailConfirm();
		break;
		case "NAME":
			checkFormFirstname();
		break;
		case "LASTNAME":
			checkFormLastname();
		break;
		case "ZIPCODE":
			checkFormZipcode();
		break;
		case "MOBILENUMBER":
			checkFormMobilenumber();
		break;
		case "COMPANYNAME":
			checkFormCompanyName();
		break;
	}
}


function checkSearch(){
	if($("s").value=="Search"){
		$("s").value="";
	}	
}

//
// FORMAT MOBILE NUMBER
function formatMobileNumber(){
	var MOBILENUMBER=$("MOBILENUMBER").value;
	MOBILENUMBER = MOBILENUMBER.replace(/[^\d]/g,'');
	$("MOBILENUMBER").value=MOBILENUMBER;
}

//
// VALIDATE FORM
function validateForm(){
	var errcount=0;
	
	if($("EMAIL")){
		errcount=errcount+checkFormEmail();
	}
	
	if($("EMAILCONFIRM")){
		errcount=errcount+checkFormEmailConfirm();
	}
	 	
	if($("ZIPCODE")){
		errcount=errcount+checkFormZipcode();
	}
	
	if($("FIRSTNAME")){
		errcount=errcount+checkFormFirstname();
	}
	
	if($("LASTNAME")){
		errcount=errcount+checkFormLastname();
	}
	
	if($("MOBILENUMBER")){
		errcount=errcount+checkFormMobilenumber();
	}
 
	if(errcount>0){
		//
		// DON'T SEND ZIP BELOW THE FOLD IF IT HAS AN ERROR
		returntop();	
	}else{
		
		//alert("form in test mode");
		processSubmit('step2');
		// submitform("mainform");
	}	
}

//
// CLOSE WINDOW THAT WAS OPENED WITH JAVASCRIPT
function closewindow(){
	window.close();
}
	
function resizewindow() {
	window.resizeTo(750,680);
}

// 
// GENERIC JS FORM SUBMIT. DO NOT CALL DIRECTLY IF API CALLS ARE STILL BEING EXECUTED. 
// THEY WILL BE TERMINATED ONSUBMIT.
function submitform(formID){
	$(formID).submit();
}

//
// SCROLL BACK TO TOP
function returntop(){
	new Effect.ScrollTo("body_wrapper");
}
  
  
// # # # # # # # # #
// STANDARD VALIDATION FUNCTIONS
// # # # # # # # # #
function checklen(myid ,messagecopy, upperlength){
	upperlength=parseInt(upperlength);
	if(messagecopy.length>upperlength){
		alert("Please limit your message to "+upperlength+" characters.");
		document.getElementById([myid]).value=mymessage;
	}else{
		mymessage=messagecopy;
	}
}

 
/*

	Function: validReqField
		Tests field as valid required field.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validReqField(str) {
	if (!str.length) {
		return false;
	}
	return true;
}
/*

	Function: validEmail
		Tests field as valid email address.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validEmail(str) {
	var emailFilter=/^.+@.+\..{2,5}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	if ((!(emailFilter.test(str))) || (str.match(illegalChars))) {
		return false;
	}
	return true;
}
 

/*

	Function: validZip
		Tests field as valid 5 digit zipcode.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validZip(str) {
	var zipFormat = /\d\d\d\d\d/; //Entered All Numbers?
	var temp = str + "";
	var test = temp.search(zipFormat)
	if (test == -1 && temp.length!=0) {
		return false;
	}
	return true;
}

/*
	Function: validPhone
		Tests field as valid 10 digit phone number.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
*/

function validPhone(val) {
        var stripped = val.replace(/[\(\)\.\-\ ]/g, '');
        //strip out acceptable non-numeric characters
        if ((isNaN(stripped) && stripped.length != 0) || (stripped.length != 10 && stripped.length!=0)) { //if not a number or left blank, return false
            return false;
        } else {
            return true;
        }
	}


/*
	Function: validURL
		Gather values and then validate a URL string.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validURL(str) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(str);
}

/*
	Function: validCreative 
		Gather values and then check for valid file types.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validCreative(str){
	var temp = str + "";
	//temp = temp.substring(temp.length-5);
	temp=temp.toUpperCase(); 
	var extgood = new Array();
	var extgood=[".JPG",".JPEG",".JPE", ".PNG", ".GIF"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		temp=temp.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(temp) || (temp=="") ){
			//alert("valid creative");
			return true;
			//alert("valid creative");
		}
	}
	return false;
}
