function getEleByClass(classVals,parentObj){
	
	if(parentObj){
		var eleArr = parentObj.getElementsByTagName('*');
	}else{
		var eleArr = document.getElementsByTagName('*');
	}
	var matchedEles = new Array();
	for(var i = 0; i < eleArr.length; i++){
		for(var j = 0; j < classVals.length; j++){
			if(eleArr[i].className.indexOf(classVals[j]) != -1){
				matchedEles.push(eleArr[i]);	
			}
		}
	}
	return matchedEles;
}
function addClass(eleObj,classVal,toggle){
		if(toggle==true){
			if(!eleObj.className){
				eleObj.className = classVal;
			}else if(eleObj.className && eleObj.className.indexOf(classVal)== -1){
				eleObj.className+=' ' + classVal;
			}
		}else if(toggle==false){
			var newClassVal=eleObj.className.replace(classVal,'');
			eleObj.className=newClassVal;
		}
}
function applyClassArr(targetClass,classVal,toggle){// finds all elements with class hook (targetClass) and adds/removes classVal, toggle:Boolean true = adds the class, false = removes class
	var targetEles = getEleByClass(Array(targetClass));
	
	for(var i= 0; i < targetEles.length; i++){
		if(toggle == true){
			addClass(targetEles[i],classVal,true);
		}else if(targetEles[i].className.indexOf(classVal) != -1){
			addClass(targetEles[i],classVal,false);
		}
	}
	
}
function insertAfter( targetEle, newNode){
	newNode.parentNode.insertBefore( newNode, targetEle.nextSibling );
}
function findNextAdjSibling(currSib,classHook){/* returns adjacent object of currSib if classHook is matched */

	var sibArr = currSib.parentNode.childNodes;
	var objArr = new Array(); 
	for(var i = 0; i < sibArr.length; ++i){ /* strip out all non object types */
		if(sibArr[i].nodeType == 1){
			objArr.push(sibArr[i]);
		}
	}
	for(var i =0;i < objArr.length; ++i){
		if(objArr[i] == currSib && objArr[i+1].className.indexOf(classHook) != -1){
			return objArr[i+1];
		}
	}
	return false;
}
function findNextOccurance(startObj,targetClass){ /* finds next occurance of targetObj by class from startObj */
	var sibArr = startObj.parentNode.childNodes;
	var objArr = new Array(); 
	for(var i = 0; i < sibArr.length; ++i){ /* strip out all non object types */
		if(sibArr[i].nodeType == 1){
			objArr.push(sibArr[i]);
		}
	}
	var startIndex = getArrayIndex(objArr,startObj);
	for(var i = startIndex;i < (objArr.length - startIndex); ++i){
		if(objArr[i].className.indexOf(targetClass) != -1){
			return objArr[i];
		}
	}
	return false;
}
function getArrayIndex(arr,arrVal){
	for(var i =0; i < arr.length; i++){
		
		
		if(arr[i] == arrVal){
			return i;
			
		}else{
			//return false;
		}/**/
	}
}
function isArrayVal(val,arr){
	for(var i= 0; i < arr.length; i++){
		if(arr[i] == val){
			return true;	
		}
	}
}
function ieEleHover(parentEle,childEle){
	if(!parentEle){
		return;
	}
	//this.re_ie6 =/MSIE 6.0/;
//	if(this.re_ie6.test(navigator.userAgent)){//test for IE6 browser
//		alert("test");
		var eleArr = parentEle.getElementsByTagName(childEle);
		for(var i in eleArr){
			eleArr[i].onmouseover = function(){
				addClass(this,'ieHover',true);
			}
			eleArr[i].onmouseout = function(){
				addClass(this,'ieHover',false);
			}
		}
//	}
}
function findParentEle(parentHook,startObj){/* find parent ele by its' class hook */
	var currObj = startObj;
	while(currObj.className.indexOf(parentHook) == -1){
		currObj = currObj.offsetParent;
	}
	return currObj;
}
function findParentByTag(parentTag,startObj){/* find parent ele by its' tag */
	var currObj = startObj;
	while(currObj.nodeName !== parentTag){
		currObj = currObj.offsetParent;
	}
	return currObj;
}
function addLoadFnc(fnc){
	if(document.addEventListener){
		window.addEventListener('load',function() {eval(fnc);},false);
	}else{
		window.attachEvent('onload',function(){ eval(fnc); });
	}
}
function setTreeLists(){
	var listArr = getEleByClass(Array("treeList"));
	for(var i = 0; i < listArr.length; i++){
		
	//	var linkArr = document.listArr[i].getElementsByTagName('a');
		var linkArr = listArr[i].getElementsByTagName('a');
		for(var j = 0; j < linkArr.length; j++){
			linkArr[j].onclick = function(){
				if(this.parentNode.className.indexOf('open') == -1){
					addClass(this.parentNode,'open',true);
				}else{
					addClass(this.parentNode,'open',false);	
				}
				return false;
			}
		}
	}
}

/* ######### */
function setPanelNavs(classVal){
	var navGroups = getEleByClass(Array(classVal));
	//var contentIds = new Array();
	for(var i = 0; i < navGroups.length; i++){
		var navsArr = navGroups[i].getElementsByTagName('li');
		
		for(var j = 0 ; j < navsArr.length; j++){
			navsArr[j].onclick = function(){
				if(this.firstChild.nodeName == "A"){
					toggleEles(this);
				}

				return false;
			}
		}
	}
}
function toggleEles(obj){
	var arrIds = new Array();
	var siblings = obj.parentNode.getElementsByTagName('li');
	addClass(obj,'current',true);
	for(var i = 0; i < siblings.length; i++){
		if(siblings[i].firstChild.nodeName == "A"){
			
			var lastParam = siblings[i].firstChild.getAttribute("href").lastIndexOf('?') + 1;
			arrIds.push(siblings[i].firstChild.getAttribute("href").substr(lastParam));
			if(siblings[i] != obj){
				addClass(siblings[i],'current',false);
			}
		}
	}
	for(var i= 0; i < arrIds.length; i++){
		if(obj.firstChild.getAttribute("href").indexOf(arrIds[i]) != -1){
			addClass(document.getElementById(arrIds[i]),'showEle',true);
		}else{
			addClass(document.getElementById(arrIds[i]),'showEle',false);
			
		}
	}
}

function setPopUps(linkClass){
	var linkArr = getEleByClass(Array(linkClass));;
	var veil = new curtain();
	for(var i = 0; i < linkArr.length; i++){
		linkArr[i].onclick = function(){
			veil.setCurtain();
			var lastParam = this.getAttribute("href").lastIndexOf('?')+1;
			var targObj = document.getElementById(this.getAttribute("href").substr(lastParam));
			addClass(targObj,'showEle',true);
			var closeBtn = document.createElement('a');
			closeBtn.innerHTML = "close X";
			closeBtn.className = "closeBtn";
			targObj.insertBefore(closeBtn,targObj.firstChild);
			closeBtn.onclick = function(){
				addClass(targObj,'showEle',false);
				veil.removeCurtain();
				targObj.removeChild(this);
				return false;
			}
			return false;
		}
	}
}
function curtain(){
		this.curtain = document.createElement('div');
		this.curtain.setAttribute("id","loadVeil");
		this.veilIsSet = false;

		this.setCurtain = function(){
			
			document.body.appendChild(this.curtain);
			this.veilIsSet = true;
			this.setPosition();
		}
		this.setPosition = function(){
			if(this.veilIsSet == true){
	
				this.curtain.style.height = Math.max(
        Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
        Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
        Math.max(document.body.clientHeight, document.documentElement.clientHeight)) + "px";
		this.curtain.style.width = Math.max(
        Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
        Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
        Math.max(document.body.clientWidth, document.documentElement.clientWidth)) + "px";
			}
		}
		this.removeCurtain=function(){
			document.body.removeChild(this.curtain);
			this.veilIsSet == false;
		}
	}


function ieSelectFix(){
        re_ie =/MSIE ([7-8]{1,}[\.7-8]{0,})/;
        if(re_ie.test(navigator.userAgent)){//test for IE browsers

                var selectArr = document.getElementById('compareVeh').getElementsByTagName('select');
                for(var i = 0; i < selectArr.length; i++){
                        selectArr[i].onmousedown = function(){
                                /*this.click();
                                alert(this.options[0].text.length);

                                this.style.background = "#ff0000";
                                alert(this.clientWidth);*/
                                //alert(this.options[0].clientWidth);
                                for(var i = 0; i < this.options.length; i++){
                                        if(this.options[i].text.length > 26){
                                                this.style.width = "auto";
                                                break;
                                        }
                                }
                                /*this.style.minWidth = "auto";
                                if(this.offsetWidth <= 150){
                                        this.removeAttribute('style');
                                }*/
                        }

                        selectArr[i].onblur = function(){
                                if(this.style.width == "auto"){
                                        this.removeAttribute('style');
                                }
                        }/**/
                }
        }
}

function launchVideo(){
        if(!document.getElementById('btnVideo')){
                return;
        }
        var veil = new curtain();
        var btnClose = getEleByClass(Array('btnClose'),document.getElementById('videoBox'))[0];
        document.getElementById('btnVideo').onclick = function(){
                addClass(document.getElementById('videoBox'),'showEle',true);
                veil.setCurtain();
        }
        btnClose.onclick = function(){
                addClass(document.getElementById('videoBox'),'showEle',false);
                veil.removeCurtain();
        }
}

function setSrchPanelClose(){
        if(!document.getElementById('tabbedSrch')){
                return false;
        }
        var btnClose = getEleByClass(Array('btnClose'),document.getElementById('tabbedSrch'))[0];
        bodyPriceTabs = getEleByClass(Array('panelNav'),document.getElementById('tabbedSrch'))[0].getElementsByTagName('li');
        var clickEObj = null;
        btnClose.onclick = function(){
                if(document.getElementById('tabbedSrch').className.indexOf('closed') == -1){
                        for(var i = 0; i < bodyPriceTabs.length; i++){
                                addClass(bodyPriceTabs[i],'current',false);
                        }
                        addClass(document.getElementById('tabbedSrch'),'closed',true);
                        this.innerHTML = "";
                }
        }

        for(var i = 0; i < bodyPriceTabs.length; i++){
                if (document.addEventListener){
                  clickEObj = bodyPriceTabs[i].addEventListener('click',function() { return resetTabs(); },false);
                } else if (document.attachEvent){
                  clickEObj = bodyPriceTabs[i].attachEvent('onclick',function() { return resetTabs(); });
                }
        }

        var resetTabs = function(){
                btnClose.innerHTML = "CLOSE X";
                addClass(document.getElementById('tabbedSrch'),'closed',false);
        }

}

window.onload = function(){
	ieEleHover(document.getElementById('mainNav'),'li');
	setTreeLists();
	setPanelNavs('tabNav');
//	setPanelNavs('panelNav');
	setPopUps("popLink");
	ieSelectFix();
        launchVideo();
        setSrchPanelClose();
}

        $(document).ready(function() {
                if(document.getElementById('offersSlides')){
                  $(function(){
                                $('#offersSlides').slides1({
                                        preload: true,
                                        generateNextPrev: true,
                                        container: 'wrap',
                                        play: 5000
                                });
                        });
                }
        });


