/**

 *

 * ADD DROP DOWN MENUS TO MAIN MENU

 *

 */

function nav_menus(){





	/**

	 *

	 * MAIN MENU SUBMENUS

	 *

	 */

	(function() {

		var menu;

		var timeout;

		var last_id;

		var last_class;

		var tabs = ['ac','heating','electrical','account','appliances'];

			function mouseover(e) {

				

				/** clear timeout **/

				clearTimeout(timeout);



				/** close previously opened menu and change tab back **/

				try{

					YAHOO.util.Dom.setStyle(eGet(last_id).getElementsByTagName('div')[0], 'display', 'none');

					eGet(last_id).className = eGet(last_id).className.replace(/over/g,last_class);

				}catch(e){}



				/** grab menu object **/

				menu = this.getElementsByTagName('div')[0];



				/** determine if tab is on or off **/

				last_class = this.className == 'on drop-on' ? 'on' : 'off';



				/** change tab **/

				this.className = this.className.replace(new RegExp(last_class, "g"), 'over');



				/** show sub menu **/

				YAHOO.util.Dom.setStyle(menu, 'display', 'block');

			};



			function mouseout(e) {



				/** cleartimeout **/

				clearTimeout(timeout);



				/** grab menu object **/

				menu = this.getElementsByTagName('div')[0];



				/** hide menu after timeout **/

				timeout = setTimeout(function(){YAHOO.util.Dom.setStyle(menu, 'display', 'none'); eGet(last_id).className = eGet(last_id).className.replace(/over/g,last_class); },500);



				/** set id of this object for later use **/

				last_id = this.id;



			};

			/** add event listeners to tabs **/

			for(i in tabs){

				YAHOO.util.Event.addListener(eGet(tabs[i]+'_tab'), 'mouseover', mouseover);

				YAHOO.util.Event.addListener(eGet(tabs[i]+'_tab'), 'mouseout', mouseout);

			}

	})();





}



	/**

	 *

	 * Slideshow

	 *

	 */

	var timing_home = [0,4,4,4,4,4];

	var to_tab_home1;

	var to_tab_home2;

	var to_tab_home3;

	var to_tab_home4;

	var fadedur;

	var num;

	function slide(num,name,fadedur){



		YAHOO.util.Dom.setStyle("slide-home-" + num, 'zIndex', 1);

		//alert(eGet("slide-home-" + num).id + ' = ' + YAHOO.util.Dom.getStyle("slide-home-" + num, 'zIndex'));



		var myAnim = new YAHOO.util.Anim(name+num, { opacity: { to: 0 } }, fadedur, YAHOO.util.Easing.easeIn);

		myAnim.animate();



		to_tab_home2 = setTimeout('new slide_next('+num+',\''+name+'\','+fadedur+')', 100);



	}



	function slide_next(num,name,fadedur){



		var num = parseInt(num+1);

		if(num >= timing_home.length) num = 1;



		var myAnim = new YAHOO.util.Anim(name+num, { opacity: { to: 1 } }, fadedur, YAHOO.util.Easing.easeOut);

		myAnim.animate();





		var tab = eGet("tab-home-" + num);

		var slide = eGet("slide-home-" + num);

		to_tab_home3 = setTimeout('new tabs_off("home", "tab-home-")', 395);

		to_tab_home4 = setTimeout('new eGet("tab-home-'+num+'").className = eGet("tab-home-'+num+'").className + " on"', 400);

		to_tab_home1 = setTimeout('new slide('+num+',\''+name+'\','+fadedur+')', timing_home[num] * 1000);



		for (var t = 1; t <= 5; t++){YAHOO.util.Dom.setStyle(eGet('slide-home-'+t), 'zIndex', 1);}

		YAHOO.util.Dom.setStyle(slide, 'zIndex', 5);

		//alert(slide.id + ' = ' + YAHOO.util.Dom.getStyle(slide, 'zIndex'));



	}



	function tabs_off(local, tab_name){



		switch(local){



			case "home":



				for (var t = 1; t <= 5; t++)

				{

					tab = eGet(tab_name + t);

					tab.className = tab.className.replace(" on", "");

					/** change z-index of slides too **/

					//eGet('slide-home-' + t).style.zIndex = 1;

				}



			break;



		}



	}



	/**

	 *

	 * HOME TABS

	 *

	 */

	function tabs_home() {

		var slides = [];

		var num;

		var numchk;



		function mouseover_tab_home(e) {



			/** find out number of element **/

			var ele = YAHOO.util.Event.getTarget(e);	

			while (ele.id != "tabs") {

				if(ele.nodeName.toUpperCase() == "LI") {

					break;

				} else {

					ele = ele.parentNode;

				}

			}



			var fact = ele.id.indexOf("slide-home-") == -1 ? "tab-home-" : "slide-home-";

			if(fact == "slide-home-"){



				for (i = 1; i <= 5; i++){if(YAHOO.util.Dom.getStyle(eGet(fact+i), 'zIndex') > 1) num = parseInt(i);}



			}else{

			

				num = parseInt(ele.id.replace(fact, ""));



			}



			try{



				/** clear all timeouts **/

				clearTimeout(to_tab_home1);

				clearTimeout(to_tab_home2);

				clearTimeout(to_tab_home3);

				clearTimeout(to_tab_home4);

				/** show this tab and this div **/

				YAHOO.util.Dom.setStyle(slides, 'opacity', 0);

				YAHOO.util.Dom.setStyle("slide-home-"+num, 'opacity', 1);

				tabs_off("home", "tab-home-");

				eGet("tab-home-"+num).className = eGet("tab-home-"+num).className + " on";

				/** set zIndex for this, and change last **/

				for (var t = 1; t <= 5; t++){YAHOO.util.Dom.setStyle(eGet('slide-home-'+t), 'zIndex', 1);}

				YAHOO.util.Dom.setStyle(eGet('slide-home-'+num), 'zIndex',5)



			}catch(e){}



			

		};



		function mouseout_tab_home(e) {



			/** find out number of current element **/

			//alert(YAHOO.util.Event.getRelatedTarget(e).className);

			var ele2 = YAHOO.util.Event.getRelatedTarget(e);

			var num2 = 0;

			while (ele2.nodeName.toUpperCase() != "BODY") {

				if(ele2.nodeName.toUpperCase() == "LI") {

					num2 = parseInt(ele2.id.replace("tab-home-", ""));

					break;

				} else {

					ele2 = ele2.parentNode;

				}

			}



			/** find out number of previous element **/

			var ele = YAHOO.util.Event.getTarget(e);

			while (ele.nodeName.toUpperCase() != "LI") {

				if(ele.className == "tabs") {

					break;

				} else {

					ele = ele.parentNode;

				}

			}



			/** reset based on tab or slide that was hovered **/

			var fact = ele.id.indexOf("slide-home-") == -1 ? "tab-home-" : "slide-home-";

			if(fact == "slide-home-"){



				/** kick start with slide_next based on the next number **/

				var myAnim = new YAHOO.util.Anim("slide-home-"+num, { opacity: { to: 0 } }, fadedur, YAHOO.util.Easing.easeIn);

				to_tab_home1 = setTimeout(function(){myAnim.animate();}, 1200);



				to_tab_home2 = setTimeout('new slide_next('+num+',\'slide-home-\','+fadedur+')', 1200);



			}else{



				/** find out number of element **/

				if (num2 == 0)

				{



					/** kick start with slide_next based on the next number **/

					var myAnim = new YAHOO.util.Anim("slide-home-"+num, { opacity: { to: 0 } }, fadedur, YAHOO.util.Easing.easeIn);

					to_tab_home1 = setTimeout(function(){myAnim.animate();}, 1200);



					to_tab_home2 = setTimeout('new slide_next('+num+',\'slide-home-\','+fadedur+')', 1200);



				}



			}



		};

		/** add event listeners to tabs **/

		for (var t = 1; t <= 5; t++){

			YAHOO.util.Event.addListener(eGet('tab-home-'+t), 'mouseover', mouseover_tab_home);

			YAHOO.util.Event.addListener(eGet('slide-home-'+t), 'mouseover', mouseover_tab_home);

			YAHOO.util.Event.addListener(eGet('tab-home-'+t), 'mouseout', mouseout_tab_home);

			YAHOO.util.Event.addListener(eGet('slide-home-'+t), 'mouseout', mouseout_tab_home);

			slides.push('slide-home-'+t);

		}

	};





function findAndReplace(searchText, replacement, searchNode) {

    if (!searchText || typeof replacement === 'undefined') {

        // Throw error here if you want...

        return;

    }

    var regex = typeof searchText === 'string' ?

                new RegExp(searchText, 'g') : searchText,

        childNodes = (searchNode || document.body).childNodes,

        cnLength = childNodes.length,

        excludes = 'html,head,style,title,link,meta,script,object,iframe';

    while (cnLength--) {

        var currentNode = childNodes[cnLength];

        if (currentNode.nodeType === 1 &&

            (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {

            arguments.callee(searchText, replacement, currentNode);

        }

        if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {

            continue;

        }
        var parent = currentNode.parentNode,

            frag = (function(){

                var html = currentNode.data.replace(regex, replacement),

                    wrap = document.createElement('div'),

                    frag = document.createDocumentFragment();

                wrap.innerHTML = html;

                while (wrap.firstChild) {

                    frag.appendChild(wrap.firstChild);

                }

                return frag;

            })();

        parent.insertBefore(frag, currentNode);

        parent.removeChild(currentNode);

    }

}





/*--------------------------------------------------------------------------------------------*/





/**

 *

 * Ajax POST

 *

 *	var ajax_url = 'urlwithoptions';

 *	eGet('content_'+id).innerHTML = '<img src="'+siteRoot+'design/ajax-loader-large.gif" /> Updating...';

 *	var ajax = new ajax('content_'+id, siteRoot);

 *	ajax.update('content_'+id, ajax_url, 'POST');

 */

function ajax(layer, url, callbackFunction) {

  var that=this;      

  this.updating = false;

  this.abort = function() {

    if (that.updating) {

      that.updating=false;

      that.AJAX.abort();

      that.AJAX=null;

    }

  }

  this.update = function(layer, passData,postMethod) { 

    if (that.updating) { return false; }

    that.AJAX = null;                          

    if (window.XMLHttpRequest) {              

      that.AJAX=new XMLHttpRequest();              

    } else {                                  

      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");

    }                                             

    if (that.AJAX==null) {                             

      return false;                               

    } else {

      that.AJAX.onreadystatechange = function() {  

        if (that.AJAX.readyState==4 || that.AJAX.readyState=="complete") {             

          LayerID.innerHTML=that.AJAX.responseText;                  //   It is, so put the new data in the object's layer

          that.updating=false;                

          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);        

          that.AJAX=null;                                         

        }                                                      

      }                                                        

      that.updating = new Date();                              

      if (/post/i.test(postMethod)) {

        var uri=urlCall+'?'+that.updating.getTime();

        that.AJAX.open("POST", uri, true);

        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        that.AJAX.setRequestHeader("Content-Length", passData.length);

        that.AJAX.send(passData);

      } else {

        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 

        that.AJAX.open("GET", uri, true);                             

        that.AJAX.send(null);                                         

      }              

      return true;                                             

    }                                                                           

  }

  LayerID = eGet(layer);                     // Remember the layer associated with this object.

  var urlCall = url;        

  this.callback = callbackFunction || function () { };

}



/**

 *

 * SHORTCUT TO GET ELEMENT

 *

 */

function eGet(element){return document.getElementById(element);}



/**

 *

 * Show Div

 *

 */

function showDiv(element){

	try{eGet(element).style.display = 'block';}catch(e){}

}



/**

 *

 * Hide Div

 *

 */

function hideDiv(element,delay){

	if(delay > 0){

		setTimeout('try{eGet(\''+element+'\').style.display = \'none\';}catch (e) {}',delay);

	}else{

		try{eGet(element).style.display = 'none';}catch (e) {}

	}

}









/**

 *

 * Validate Forms

 *

 */

function validate_form_side(){



	if(eGet('name').value.length == 0 || (eGet('phone1').value.length == 0 && eGet('email').value.length == 0)){



		alert('Please enter your name and either phone number or email address');

		return false;





	}else if(eGet('category').options[eGet('category').selectedIndex].value == 'Select' || eGet('service').options[eGet('service').selectedIndex].value == 'Select'){



		alert('Please select the category and service type for your message');

		return false;



	}



}



function validate_form_bottom(){



	if(eGet('name-bot').value.length == 0 || ((eGet('phone1-bot').value.length == 0 && eGet('phone2-bot').value.length == 0) && eGet('email-bot').value.length == 0)){



		alert('Please enter your name and either phone number or email address');

		return false;



	}else if(eGet('category-bot').options[eGet('category-bot').selectedIndex].value == 'Select' || eGet('service-bot').options[eGet('service-bot').selectedIndex].value == 'Select'){



		alert('Please select the category and service type for your message');

		return false;



	}



}











function validate_form_side_appliances(){



	if(eGet('name').value.length == 0 || eGet('type').value.length == 0 || eGet('manu').options[eGet('manu').selectedIndex].value.length == 0 || (eGet('phone1').value.length == 0 && eGet('email').value.length == 0)){



		alert('Please enter your name, type of appliance, preferred manufacturer, and either phone number or email address');

		return false;



	}



}

function validate_form_bottom_appliances(){



	if(eGet('name-bot').value.length == 0 || eGet('type-bot').value.length == 0 || eGet('manu-bot').options[eGet('manu-bot').selectedIndex].value.length == 0 || (eGet('phone1-bot').value.length == 0 && eGet('email-bot').value.length == 0)){



		alert('Please enter your name, type of appliance, preferred manufacturer, and either phone number or email address');

		return false;



	}



}







function validate_form_side_commercial(){



	if(eGet('company').value.length == 0 || eGet('phone1').value.length == 0){



		alert('Please enter your company name and phone number');

		return false;



	}



}

function validate_form_bottom_commercial(){



	if(eGet('company-bot').value.length == 0 || eGet('phone1-bot').value.length == 0){



		alert('Please enter your company name and phone number');

		return false;



	}



}





function getQueryVariable(variable) {

  var query = window.location.search.substring(1);

  var vars = query.split("&");

  for (var i=0;i<vars.length;i++) {

	var pair = vars[i].split("=");

	if (pair[0] == variable) {

		return pair[1];

	}

  }

}







onload = function(){





	var append_to_links = 'no';

	var append_syntax = '';



	if(getQueryVariable('email') == 'y'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 797-3591");

		append_to_links = 'yes';

		append_syntax = '?email=y';

	}



	if(getQueryVariable('src') == 'wftv'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 810-1214");

		append_to_links = 'yes';

		append_syntax = '?src=wftv';

	}



	if(getQueryVariable('src') == 'wesh'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 866-7122");

		append_to_links = 'yes';

		append_syntax = '?src=wesh';

	}



	if(getQueryVariable('src') == 'wftvelec'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 304-5357");

		append_to_links = 'yes';

		append_syntax = '?src=wftvelec';

	}

	if(getQueryVariable('src') == 'xprtwftv'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(800) 879-7144");

		append_to_links = 'yes';

		append_syntax = '?src=xprtwftv';

	}
	
		if(getQueryVariable('src') == 'wloq'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 551-0864");

		append_to_links = 'yes';

		append_syntax = '?src=wloq';

	}


		if(getQueryVariable('src') == 'fb'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 810-1427");

		append_to_links = 'yes';

		append_syntax = '?src=fb';

	}


		if(getQueryVariable('src') == 'tw'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 824-9086");

		append_to_links = 'yes';

		append_syntax = '?src=tw';

	}


		if(getQueryVariable('src') == 'yt'){

		findAndReplace("\\(?\\d{3}\\)?[^\\d]+\\d{3}[^\\d]+\\d{4}", "(888) 838-9027");

		append_to_links = 'yes';

		append_syntax = '?src=yt';

	}




	if(append_to_links == 'yes'){

		var o = document.links;

		var query = document.location.search;

		for(var i=0;i<o.length;i++){

			o[i].href = o[i].href+append_syntax;

		}



	}


}




