// JavaScript Document
var Css={
	reset:function(){
		var styOp="<style type='text/css'>"
		var styCss="#changeLangNS, #title, .noshow, #goFavourite, #goSearch ,#graphics form,#graphicsBack form{display:none}"
		var styCss1="#origen1 {width:15em}"
		var styCl="</style>"
		document.write(styOp+styCss+styCss1+styCl)
	}, 
	hide:function(obj){Css.change(obj,{display:"none"})},
	show:function(obj){Css.change(obj,{display:"block"})}, 
	change:function(obj,prop){for (var x in prop){var w=eval("prop."+x);eval( "obj.style."+x+"='"+w+"'")}}
}; Css.reset()

//--Funciones antiguas 
function changeLanguageJS(url){location.href=url;}
function GoToPopupURL(url){window.open(url, "ventanaURL");}
function Abrir_Ventana(theURL, winName, features){window.open(theURL, winName, features);}
function logoffWithScript(url){
	document.forms["main2"].action = url;
	document.forms["main2"].submit()
}

String.prototype.trim=function (){return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');}
String.prototype.replaceVars=function(){
	var str=this.replace(/{strong}/g,"<strong>").replace(/{\/strong}/g,"</strong>")
	var str=str.replace(/{ii}/g,"<em>").replace(/{\/ii}/g,"</em>")
	return eval('"'+str.replace(/{/g,"\"+").replace(/}/g,"+\"")+'"')
}
String.prototype.replaceAll=function (oldStr, newStr){return this.split(oldStr).join(newStr);}
String.prototype.format=function (){
	var str=this;
	for(var i = 0; i < arguments.length; i++){
		str = str.replaceAll("{" + (i) + "}",arguments[i]);
	}
	return str;
}

Number.prototype.round=function round(n){n=n || 2;return Math.round(this * Math.pow(10,n) ) / Math.pow(10,n) ;}

//Carga dinamica ficheros js
function loadScript(file) {
	var script=document.createElement("script");
	script.type="text/javascript";
	script.src="/ibcomv3/js/"+ file	
	document.getElementsByTagName("head")[0].appendChild(script);
}

//Varibles estaticas de configuracion general del portal
var config={
	timeClientSession:96/24/4,
	urlImg:"/ibcomv3/images/",
	urlJs:"/ibcomv3/js/"
}
//Gestion de eventos
var ev = {
	addEvent : function(obj, evType, fn, useCapture){
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, useCapture);
			return true;
		}else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		}
		return false;
	},
	releaseEvent : function(obj, evType, fn, useCapture){
		if (obj.addEventListener){
			obj.removeEventListener(evType, fn, useCapture);
			return true;
		}else if (obj.attachEvent){
			var r = obj.detachEvent("on"+evType, fn);
			return r;
		}
		return false;
	}
}
//Classe Ajax
var objAjax={
	create:function(){
		http_request = false;
		if (window.XMLHttpRequest) {
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');}
			} else if (window.ActiveXObject) {
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		if (!http_request) {
			alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
		}
		else{return http_request;}
	}
}

//Widgets
var Widget={
	toolTip:function(w,text,toolTipClass,h){
		var tTip=dom.createElementWidthClass("div",toolTipClass)
		tTip.style.width=w+"px";
		tTip.innerHTML=text;
		return tTip;
	}
}
//Funcionalidades comunes
var page={
	$:function(id){return document.getElementById(id)},
	YOffset:function(){
		if (self.pageYOffset){return self.pageYOffset;}
		else if (document.documentElement && document.documentElement.scrollTop){return document.documentElement.scrollTop }
		else if (document.body) {return document.body.scrollTop}
	},
	loadScript:function(url){
		var script=document.createElement("script")
		script.type="text/javascript"
		script.src=url
		document.getElementsByTagName("head")[0].appendChild(script)
	}

}
//Gestion de la url
var url={
	getParameter:function(va){
		if (this.href){
			var params="&"+this.href.split("?")[1]
			if(params.indexOf("&"+va)!=-1 || params.indexOf("?"+va)!=-1 ) {
				var lim1=parseInt(params.indexOf(va)+va.length+1)
				for(var xx=lim1;xx<params.length;xx++){if(params.charAt(xx)=="&" || xx==params.length){var lim2=xx;break;}}
				return params.substring(lim1,lim2)
			}
		}
		return null;
	},
	str2concat:function(lnk){
		var strToConcat=(lnk.indexOf("?")==-1)? "?":"&"
		return strToConcat
	}
}

//Gestion de fechas
var Gdate={
	leapYear:function(y){
		if ((y%4==0) && ((y % 100 != 0) || (y % 400 == 0)))return true;
		return false;
	},
	dayMonth:function(m,y){
		if ((m==0) || (m==2) || (m==4) || (m==6) || (m==7) || (m==9) || (m==11))
		return 31;
		else if ((m==3) || (m==5) || (m==8) || (m==10))
			return 30;
			else if ((m==1) && Gdate.leapYear(y))
				return 29;
				else return 28;
	},
	daysDiff:function(d1,d2){return (Date.UTC(d2.getFullYear(),d2.getMonth(),d2.getDate(),0,0,0)- Date.UTC(d1.getFullYear(),d1.getMonth(),d1.getDate(),0,0,0))/1000/60/60/24;},
	dateToString:function(d,dateFormat){
		var auxDay;
		var auxMonth;
		d.getDate()<10 ? auxDay = "0"+parseInt(d.getDate()) : auxDay = parseInt(d.getDate());
		d.getMonth()+1<10 ? auxMonth = "0"+parseInt(d.getMonth()+1) : auxMonth = parseInt(d.getMonth()+1);
		switch(dateFormat){
			case "dd/MM/yyyy":return auxDay+"/"+auxMonth+"/"+d.getFullYear();break;
			case "MM/dd/yyyy":return auxMonth+"/"+auxDay+"/"+d.getFullYear();break;
		}
	},
	stringToDate:function(f,dateFormat){
		var fc=f.split("/")
		switch(dateFormat){
			case "dd/MM/yyyy":return new Date(fc[2],parseInt(fc[1],10)-1,fc[0]);break
			case "MM/dd/yyyy":return new Date(fc[2],parseInt(fc[0],10)-1,fc[1]);break;
		}
	}
}
//Operaciones con formularios
var forms={
	getSelectedByValue:function(obj,val){for(var xx=0;xx<obj.options.length;xx++){if(obj.options[xx].value==val)return xx;}return null},
	getSelectedByText:function(obj,val){for(var xx=0;xx<obj.options.length;xx++){if(obj.options[xx].text==val)return xx;}return null}
}
//Control Dom
var dom={
    isArray:function(obj){return obj && !(obj.propertyIsEnumerable('length')) && typeof obj === 'object' && typeof obj.length === 'number';},
	getElementsById:function(strId,sep){
		var arr=[];
		var sep=(sep==null)? "_":sep;
		while(page.$(strId+sep+arr.length)!=null)arr[arr.length]=page.$(strId+sep+arr.length) ;
		return arr;
	},
	getElementsByClassName:function(el, strTagName, strClassName){
		/*
		Written by Jonathan Snook, http://www.snook.ca/jonathan
		Add-ons by Robert Nyman, http://www.robertnyman.com
		*/
		var oElm=el || document;
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i=0; i<arrElements.length; i++){
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)){
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	},
	createElementWidthClass:function(el,theclass){
		var thelay=document.createElement(el);
		thelay.className=theclass;
		return thelay;
	},
	onlyThisElement:function(tag,obj){
		var newObj=[]
		for(var xx=0;xx<obj.childNodes.length;xx++){
			if(obj.childNodes[xx].tagName==tag.toUpperCase()){
				newObj[newObj.length]=obj.childNodes[xx]
			}
		}
		return newObj
	},
	getElementsByTagNames:function (list,obj) {
		if (!obj) var obj = document;
		var tagNames = list.split(',');
		var resultArray = new Array();
		for (var i=0;i<tagNames.length;i++) {
			var tags = obj.getElementsByTagName(tagNames[i]);
			for (var j=0;j<tags.length;j++) {
				resultArray.push(tags[j]);
			}
		}
		var testNode = resultArray[0];
		if (!testNode) return [];
		if (testNode.sourceIndex) {
			resultArray.sort(function (a,b) {
					return a.sourceIndex - b.sourceIndex;
			});
		}
		else if (testNode.compareDocumentPosition) {
			resultArray.sort(function (a,b) {
					return 3 - (a.compareDocumentPosition(b) & 6);
			});
		}
		return resultArray;
	}

}

//Gestion de raton
var xy={
	_x:0,
	_y:0,
	_getxy:function(objN,dir){
		var cur = 0;
		if (objN.offsetParent){
			while (objN.offsetParent){
				if(dir=="x") cur += objN.offsetLeft
				else if(dir=="y")cur += objN.offsetTop
				objN = objN.offsetParent;
			}
		}else if (objN.x || objN.y){
			if(dir=="x")  cur += objN.x;
			if(dir=="y")  cur += objN.y;
		}
		return cur;
	},
	getX:function(objN){return xy._getxy(objN,"x")},
	getY:function(objN){return xy._getxy(objN,"y")},
	trackMouse:function(e) {
		try{
			 if (!e) var e = window.event;
			xy._x = (e.clientX || e.clientY)? e.clientX + document.body.scrollLeft:e.pageX;
			xy._y = (e.clientX || e.clientY)? e.clientY + document.body.scrollTop: e.pageY;
		}catch(e){}
	}
}
var ClientSession={

	form:null,
	value:null,
	acceptCookie:true,

	load:function(){

		if(Cookie.get("ibsession")!=null){
			//if(!ClientSession.form){ClientSession.createForm()}
			if (page.$("wrapper")) ClientSession.addByPost(page.$("wrapper"));
			if (page.$("footer")) ClientSession.addByPost(page.$("footer"));
			if (page.$("bookingForm") && page.$("bookingForm").BV_SessionID == null && page.$("bookingForm").BV_EngineID == null)
				ClientSession.createInpts();
		}else if(location.href.indexOf("BV_EngineID")!=-1) {
			ClientSession.addByGet(document.getElementsByTagName("a"));
		}else return null;
	},
	create:function(name,val,timeToExpire){
		if(Cookie.get(name)!=null)Cookie.del(name)
		Cookie.set(name,val,timeToExpire)
		ClientSession.value=val
		ClientSession.acceptCookie=(Cookie.get(name)==null)? false:true;
		if(!ClientSession.acceptCookie){ClientSession.add2TheUrl()}
	},
	createInpts:function(){
		var elmInp=document.createElement("input")
		elmInp.type="hidden"
		elmInp.name="BV_SessionID"
		elmInp.value=ClientSession.getBVsession()
		var elmInp1=document.createElement("input")
		elmInp1.type="hidden"
		elmInp1.name="BV_EngineID"
		elmInp1.value=ClientSession.getBVengenie()
		page.$("bookingForm").appendChild(elmInp)
		page.$("bookingForm").appendChild(elmInp1)

	},
	addByPost:function(obj){
		var obj=obj.getElementsByTagName("a")
		for(var xx=0;xx<obj.length;xx++) {
		if(obj[xx].href.charAt(0)!="#"){
		var imagen=obj[xx].getElementsByTagName("img");
		for (g=0; g<imagen.length; g++){
				var ee=imagen[g].src.split("/");
				for (c=0; c<ee.length; c++){
					if (ee[c] == "calendar.gif") return;
				}
			}
			obj[xx].onclick=ClientSession.send;
			}
		}
	},
	send:function(){
		if (this.target != null && this.target == "_blank") return;
		if (this.href.indexOf("?") != -1) {ClientSession.formatParameter(this.href);}
		else {document.getElementById("formSession").action=this.href;}
		if (page.$("formSession").BV_SessionID == null && page.$("formSession").BV_EngineID == null)
			ClientSession.createBV();
		page.$("formSession").submit()
		return false;
	},
	formatParameter:function(lnk){
		var url=lnk.split("?")
		var lnk_part=url[1].split("&")
		page.$("formSession").action=url[0];
		var v=new Array();
		for (var i=0; i<lnk_part.length;i++){
			v[i]=lnk_part[i];
			var ee=v[i].split("=");
			ClientSession.createInp(ee);
		}
	},
	createInp:function(elm){
		var elmInp=document.createElement("input")
		elmInp.type="hidden"
		elmInp.name=elm[0]
		elmInp.value=elm[1]
		page.$("formSession").appendChild(elmInp)
	},
	createBV:function(){
		var BVsession=document.createElement("input")
		BVsession.name="BV_SessionID"
		BVsession.id="_$BVsession"
		BVsession.type="hidden"
		BVsession.value=ClientSession.getBVsession()

		var BVengenie=document.createElement("input")
		BVengenie.name="BV_EngineID"
		BVengenie.id="_$BVengenie"
		BVengenie.type="hidden"
		BVengenie.value=ClientSession.getBVengenie()

		page.$("formSession").appendChild(BVsession)
		page.$("formSession").appendChild(BVengenie)
	},
	add2TheUrl:function(){
		var aux_session=ClientSession.value.split("~")
		var obj=document.getElementsByTagName("a")
		for(var xx=0;xx<obj.length;xx++){
			obj[xx].onclick=function() {
				var strC=url.str2concat(this.href)
				if (aux_session[0] != null && aux_session[1] != null) location.href=this.href +strC+"BV_SessionID="+aux_session[0]+"&BV_EngineID="+aux_session[1];
				else location.href=this.href;
				return false;
			}
		}
	},
	addByGet:function(obj){
		for (var xx = 0; xx < obj.length; xx++) if (obj[xx].href.indexOf("#")==-1)obj[xx].onclick = ClientSession.redir	
	},
	redir:function(){
		var strC=url.str2concat(this.href)
		var sesParameters=(ClientSession.getBVengenie()==null || ClientSession.getBVsession()==null)? "":strC + "BV_EngineID="+ClientSession.getBVengenie()+"&BV_SessionID="+ClientSession.getBVsession()
		location.href=this.href +sesParameters
		return false;
	},
	_getBV:function(id){
		var ses=Cookie.get("ibsession")
		if((ses!=null) && ses.indexOf("~")!=-1){
			return ses.split("~")[id];
		}else {
			if(id==1) return url.getParameter("BV_EngineID")
			else return url.getParameter("BV_SessionID")
		}
		return null;
	},
	getBVsession:function(){return ClientSession._getBV(0)},
	getBVengenie:function(){return ClientSession._getBV(1)},
	clearEventSession:function(obj){
		ev.releaseEvent(obj,"click",ClientSession.send,false)
		ev.releaseEvent(obj,"click",ClientSession.redir,false)
		ev.releaseEvent(obj,"click",ClientSession.goLocation,false)
	}


}
var Cookie = {
	set: function (name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			/*date.setTime(date.getTime()+(24*60*60*1000));*/
			var expires = "; expires="+date.toGMTString();
		}else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	get:function(name) {
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) return null;
		if ( start == -1 ) return null;
		var end = document.cookie.indexOf( ";", len );
		if ( end == -1 ) end = document.cookie.length;
		return unescape( document.cookie.substring( len,end) );
	},
	del:function(name) {if ( Cookie.get(name) ) document.cookie = name + "=;expires=Thu, 01-Jan-1970 00:00:01 GMT";}
}

var igList={
	equalList:function(){
		if (dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight1").length>0)
			var obj=dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight1");
		else if (dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight1Home").length>0)
			var obj=dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight1Home");
		else if (dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight").length>0)
			var obj=dom.getElementsByClassName(page.$("offersList"),"ul","blockFlight");

		for (var j=0;j<obj.length;j++){
			var items=obj[j].getElementsByTagName("li");
			for (var i=0; i<items.length; i++){
				var x=i+1;
				if (x < items.length){
				var hght=items[i].scrollHeight;
				var hghtNext=items[x].scrollHeight;
					if(hght > hghtNext){
						items[x].style.height=hght + "px";
						price=items[i].getElementsByTagName("span");
						for(h=0; h<price.length; h++)
							items[i].getElementsByTagName("span")[h].style.paddingTop=(hght - hghtNext) + "px";

					}
					if (hghtNext > hght){
						items[x].style.height=hghtNext + "px";
						price=items[i].getElementsByTagName("span");
						for(h=0; h<price.length; h++)
							items[x].getElementsByTagName("span")[h].style.paddingTop=(hghtNext - hght) + "px";
					}
				}
				i++;
			}
		}
	},
	equalListHome:function(){
		if (dom.getElementsByClassName(page.$("main"),"ul","blockFlight2Home").length>0)
			var obj=dom.getElementsByClassName(page.$("main"),"ul","blockFlight2Home");
			for (var i=0;i<obj.length;i++){
			var items=obj[i].getElementsByTagName("a");
			var price=dom.getElementsByClassName(page.$("main"),"span","priceOf");
			for (var j=0; j<items.length; j++){
				var heightHome=items[i].clientHeight;
				if (heightHome > 28) price[j].style.paddingTop=(heightHome-28) + "px";
			}
		}
	}

}

//abrir popup
var PopUp={
	w:null,
	h:null,
	p:null,
	load:function(){
		var links = dom.getElementsByClassName(document, "A", "popupThis")
		for(var i = 0 ; i<links.length ; i++){
			links[i].onclick=function(){PopUp.open(this);}
			links[i].onkeypress=function(){if(event.keyCode==13)PopUp.open(this);}
		}
	},
	_genericOptions:function(w,h,p){
		PopUp.w=(w==null)? 800:w
		PopUp.h=(h==null)? 600:h
		PopUp.p=(p==null)?  "scrollbars=yes,status=yes,resizable=yes,toolbar=no,location=no,menu=no": p
	},
	open:function(obj,w,h,properties){
		/*ClientSession.clearEventSession(obj)*/
		PopUp._genericOptions(w,h,properties);
		url = obj.getAttribute("href")		
		var v=window.open(url,+"","width="+PopUp.w+",height="+PopUp.h+","+PopUp.p); 
	}
}

var IBlangs={
	serverData:{
		lang:[]
	},
	lay:null,

	load:function(){

		var nxtS=page.$("engloba");
		var nwNode=document.createElement("div")
		nwNode.id="changeLang";
		page.$("wrapperHome").insertBefore(nwNode,nxtS)
		var nwClose=document.createElement("a")
		nwClose.href="#";
		nwClose.id="closeWin";
		var txt=document.createTextNode(IBlangs.serverData.strCerrar)
		nwClose.appendChild(txt)

		page.$("changeLang").appendChild(nwClose)
		IBlangs.closeWindow();
		page.$("changeLang").appendChild(nxtS)
		nxtS.id="contentLanguages"

		var child=page.$("languages");
		page.$("contentLanguages").removeChild(page.$("titleLanguage"))
		page.$("contentLanguages").removeChild(page.$("changeLangNS"))
		page.$("contentLanguages").appendChild(child)

		IBlangs.lay=document.getElementById("languages")
		Css.hide(IBlangs.lay)

		cbLabel=IBlangs.createLabel(IBlangs.serverData.strSelCountry,"country")
		cbLabel.id="country_label";
		cbCountry=IBlangs.createInputSel("country")
		cbLabel1=IBlangs.createLabel(IBlangs.serverData.strSelLang,"langs")
		cbLabel1.id="langs_label";
		cbLanguages=IBlangs.createInputSel("langs")

		IBlangs.lay=document.getElementById("languages")
		var allLnk=page.$("languages").getElementsByTagName("a")
		
		cbCountry[0]=new Option(IBlangs.serverData.strSelCountry,"-1")
		for(var xx=1;xx<=allLnk.length;xx++){
			var allLangs=allLnk[xx-1].className.split("-")
			cbCountry[xx]=new Option(allLnk[xx-1].firstChild.nodeValue,allLnk[xx-1].className+"~"+allLnk[xx-1].href.split("?")[0]+"~"+allLnk[xx-1].hreflang )
		}
      	var _form=page.$("frmChangeLang")	
		cbCountry.onchange=function(){
            cbLanguages.disabled = (cbCountry.value == -1)? true : false;
			var langOfoption=this.value.split("~")[0].split("-")
			var langOficial=this.value.split("~")[2]
			var langSelected=0;
			var changeMarketUrl=this.value.split("~")[2]
			var changeLanguage=this.value.split("~")[1]
			_form.changeLanguage.value=changeMarketUrl
			_form.changeMarketUrl.value=changeLanguage
			while(cbLanguages.options.length>0){cbLanguages.removeChild(cbLanguages.firstChild)}
            if (cbCountry.value != -1){
                for( var xx=0;xx<langOfoption.length;xx++){
					if(langOfoption[xx]==langOficial)langSelected=xx
				    var idm=eval("IBlangs.serverData.langs."+langOfoption[xx])
				    cbLanguages[xx]=new Option(idm[0],idm[1])
				}
			}			
			cbLanguages.selectedIndex=langSelected
		}

		cbLanguages.onchange=function(){
			_form.changeLanguage.value=this.value
		}
        cbLanguages.disabled = true;
		var temp=[]
		for(var y in IBlangs.serverData.langs)temp[temp.length]=IBlangs.serverData.langs[y]
        cbLanguages[0]=new Option("","-1")
		for( var xx=0;xx<temp.length;xx++){
			var id=parseInt(xx+1)
			cbLanguages[id]=new Option(temp[xx][0],temp[xx][1])
		}

		var theBnt=IBlangs.createButton()

		_form.appendChild(cbLabel)
		_form.appendChild(cbCountry)
		_form.appendChild(cbLabel1)
		_form.appendChild(cbLanguages)
		_form.appendChild(theBnt)
		_labelLang = [];
		_labelLang = [['langs_label',true],['country_label',true]]
		_form.onsubmit = function(){
            for(i=0;i<_labelLang.length;i++){
                _labelLang[i][1]  =true;
            }
            if (cbLanguages.value != -1 && cbCountry.value != -1){
                return true;
            }else{
                if (cbLanguages.value == -1)_labelLang[0][1] = false;
                if (cbCountry.value == -1)_labelLang[1][1] = false;
                alert(IBlangs.serverData.strError);
                cbCountry.focus();
                for(i=0;i<_labelLang.length;i++){
                    var CssClass = (_labelLang[i][1])? '':'#f00';
                    var obj =  page.$(_labelLang[i][0]);
                    if (obj != null)obj.style.color = CssClass;
                }
                return false;
            }
        }	
	},
	createInputSel:function(id){
		var sel=document.createElement("select")
		sel.id=id
		return sel;
	},
	createButton:function(){
		var bt=document.createElement("input")
		bt.type="submit"
		bt.className="change"
		bt.value=IBlangs.serverData.strSend
		return  bt;
	},
	createLabel:function(text,idFor){
		var lb=document.createElement("label")
		lb.htmlFor=idFor
		lb.style.fontWeight="bold"
		var txt=document.createTextNode(text)
		lb.appendChild(txt)
		return  lb;
	},
	closeWindow: function(){
	//definicion objeto cerrar ventana idioma
		objClose = document.getElementById("closeWin");
		if (objClose != null) { objClose.onclick = function() { Css.hide(page.$("changeLang"));return false;}}
		//definicion ibjeto abrir ventana idiomna
		objChange = document.getElementById("change");
		if (objChange != null) { objChange.onclick = function() {Css.show(page.$("changeLang"));return false;}}
	}

}

var favoritos={
		load:function(){
		 objPrivate = document.getElementById("selectPrivada");
			if (objPrivate!=null) {
			objPrivate.onchange = function() {
				if (objPrivate.options[objPrivate.selectedIndex].value != -1){
					page.$("formFavourite").submit();
				}
			}

	}

}

}
var validaciones={
	isString:function(c){ return /^[0-9A-Za-z-\/Ã‘Ã±Ã?Ã‰Ã?Ã“ÃšÃ¡Ã©Ã­Ã³ÃºÃœÃ¼ÂºÂª\t\n\r\.\"\'\\ ]+$/.test(c);},
	isNumber:function(c){return /^[0-9]+$/.test(c);},
	isEmpty:function(c){ return ((c == null) || (c.length == 0)) },
	isDigit:function(c){return ((c >= "0") && (c <= "9"))},
	isLetter:function(c){c=c.toUpperCase();return ((c >= "A") && (c <= "Z"))},


	isCadena:function(s){
        var i;
        if (login.validLogin.isEmpty(s))
           if (login.validLogin.isCadena.arguments.length == 1) return defaultEmptyOK;
           else return (login.validLogin.isCadena.arguments[1] == true);
        for (i = 0; i < s.length; i++)
        {   var c = s.charAt(i);
            if (! (login.validLogin.isLetter(c) || login.validLogin.isDigit(c) ) )
            return false;
        }
        return true;

    },
	digitoControl:function(c){
        no_digit = c.value.length;
        oddoeven = no_digit & 1;
        sum = 0;
        for (count = 0; count < no_digit; count++) {
            digit = 0;
            digit = c.value.charAt(count);
            if (((count & 1) ^ oddoeven) == 0) {
                // not
                digit *= 2;
                if (digit > 9) {
                    digit -= 9;
                }
            }
            sum = eval(sum)+eval(digit);
        }
        if (sum == 0) {
            return (false);
        }
        if (sum % 10 == 0) {
        	return (true);
        }
        return (false);
    },
    isValidPin:function(str){
    	str = str.toUpperCase();
    	numStr = login.digits.indexOf(str)
    	numRevStr = login.digitsReverse.indexOf(str)
    	mayStr = login.uppercaseLetters.indexOf(str)
    	mayRevStr = login.uppercaseLettersReverse.indexOf(str)
    	if(str.length < 6) return "0";
    	if(numStr!=-1) return "1";
    	if(numRevStr!=-1) return "1";
    	if(mayStr!=-1) return "2";
    	if(mayRevStr!=-1) return "2";
    	if(login.validLogin.isCadena(str)!= true) return "3"
    	if(login.validLogin.repeatChar(str)!=true) return "4"
    	else{return "correcto"}
    },
    repeatChar:function(s){
        var repeat=true;
    	for (i = 1; i < s.length; i++)
    	{	var c1 = s.charAt(i-1);
    		var c2 = s.charAt(i);
    		if(c1!=c2){repeat=true;break;}
    		else{repeat=false }
    	}
        return repeat;
    }
  }
var login={

    nomCampOb:[],
    digits:"0123456789",
    digitsReverse:"9876543210",
    lowercaseLetters:"abcdefghijklmnopqrstuvwxyzáéíóúñü",
    uppercaseLetters:"ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ",
    uppercaseLettersReverse:"ÑÚÓÍÉÁZYXWVUTSRQPONMLKJIHGFEDCBA",
    whitespace:" \t\n\r",
    formulario:'',
    continente:'nombre',
    strErrors:'',
    fqtv:'vLogin',
    pin:'vPassword',
    primerItem:null,
    _handleActivity:function(e){

        var RETORNO_CARRO = 13;
         if (!e){
             var e = window.event;
             var key = e.keyCode
            }else{
                var key = e.which
            }
        //var nav4 = window.Event ? true : false;
        //var key = nav4 ? event.which : event.keyCode;
        if (key == RETORNO_CARRO) {
            login.formulario.onsubmit;
        }
    },
    init:function(frm,ids){
        login.formulario = frm;       

	if(ids!=null){
		login.fqtv="vLogin_"+ids
		login.pin="vPassword_"+ids
	}else{
	    login.fqtv="vLogin"
	    login.pin="vPassword"
	}
	page.$(login.fqtv).setAttribute( "autocomplete","off" )
	
        if (login.formulario){
            login.formulario.onsubmit = function(){	       		
            	if (!e) var e = window.event; 
            	if (page.$(login.fqtv)) page.$(login.fqtv).onkeydown = function(e){return login._handleActivity(e)}
            	if (page.$(login.pin)) page.$(login.pin).onkeydown = function(e){return login._handleActivity(e)}			
            	if(ids!=null){
                    login.nomCampOb[0] = ['qBK0',true];
                    login.nomCampOb[1] = ['qBK1',true];
                }else{
                    login.nomCampOb[0] = ['q0',true];
                    login.nomCampOb[1] = ['q1',true];
                }
                 if (page.$("vPassword_label")){login.nomCampOb[0] = ['vLogin_label',true];login.nomCampOb[1] = ['vPassword_label',true];}         
            	login.validLogin.extend(validaciones);
            	login.formulario.action=login.formulario.redirectUrlLogin.value;
            	login._send();
            	if (login.strErrors == ""){
            		if(page.$(login.formulario.id).parentNode.className.indexOf("cont_caja_info_pasajero")!=-1){
            			disabled.disSubmits();
								}
            	 	return true;
            	}else{
            	login._clearErr();
            	 return false;
            	 }
            }
        }
    },
    _findErr:function(){
        login.validLogin.load();
		return (login.strErrors!="")
	},
    _send:function(){
        if(!login.validLogin._trigger()) {
            login._showErr()
            return false;
        }
	},
	_addErr:function(err,obj,index){
		login.strErrors+=err +"\n"
		login.nomCampOb[index][1] = false;
		if (login.primerItem == null){login.primerItem = obj}
	},
	_showErr:function(){
		alert(login.strErrors);
	},
    _clearErr:function(){
		login.strErrors="";
	}
}
login.validLogin={
    extend:function(f){for(var ii in f){eval("login.validLogin."+ii+"="+f[ii])}},
    _inicializarCss:function(){
		for(var i=0;i<login.nomCampOb.length;i++){
            login.nomCampOb[i][1] =  true;
		}
	},
	_trigger:function(){
	   login.primerItem = null;
	   login.validLogin._inicializarCss();
        var obj1 = page.$(login.fqtv);
        if (obj1){
            if (obj1.value.length == 0){
                login._addErr(login.servData.strErrs[0],obj1,0);
            }else{
                if (!login.validLogin.isNumber(obj1.value)){
                    login._addErr(login.servData.strErrs[1],obj1,0);
                }else{
                    if (!login.validLogin.digitoControl(obj1)){
                        login._addErr(login.servData.strErrs[2],obj1,0);
                    }
                }
            }
        }
        var obj2 = page.$(login.pin);
        if (obj2){
            if (obj2.value.length == 0){
                 login._addErr(login.servData.strErrs[3],obj2,1);
            }else{
                k = login.validLogin.isValidPin(obj2.value);
                if(k != "correcto"){
                    login._addErr(login.servData.strErrs[3] + login.servData.errorsVP[k],obj2,1);
        		}

        		if((obj1.value!=null)&&(obj2.value.length==6)){
                    if(obj1.value.indexOf(obj2.value)!=-1){
                        login._addErr(login.servData.strErrs[4],obj2,1);
                	}
		      }
            }
        }
        if (login.strErrors != ""){
			for(i=0;i<login.nomCampOb.length;i++){
			if  (login.primerItem != null) login.primerItem.focus();			
					var CssClass = (login.nomCampOb[i][1])? '':'#f00';
					
					
			var obj =  page.$(login.nomCampOb[i][0]);
			     
					if (obj != null)obj.style.color = CssClass;
		    }
		    
		    return false;
		}else{
			
		    return true;
		}
	}
}
var selectLabel={
	load:function(){
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			var selects =  document.getElementsByTagName("select")
			for(var i = 0; i<selects.length; i++){
				ev.addEvent(selects[i],"focusin",selectLabel.selectOnFocusIn,false)
				ev.addEvent(selects[i],"focus",selectLabel.selectOnFocus,false)
			}
		}
	},
	selectOnFocusIn:function(){
		try
		{
			var eSrc = window.event.srcElement;
			if (eSrc) 
				eSrc.tmpIndex = eSrc.selectedIndex;
		}
		catch (e)
		{
			HandleError(e, false);
		}
	},
	selectOnFocus:function(){
		try
		{
			var eSrc = window.event.srcElement;
			if (eSrc) 
				eSrc.selectedIndex = eSrc.tmpIndex;
		}
		catch (e)
		{
			HandleError(e, false);
		}
	}
}
var Generic={
	load:function(){
		/*if(page.$("mainForm")){
			if(page.$("mainForm").BV_SessionID && page.$("mainForm").BV_EngineID){
				var ib_session=page.$("mainForm").BV_SessionID.value +"~"+page.$("mainForm").BV_EngineID.value
				ClientSession.create("ibsession",ib_session,config.timeClientSession)
			}
		}*/

		if (page.$("contentHotels")) Css.hide(page.$("contentHotels"))
		if (page.$("contentBooking") )home.init();
		if (page.$("changeLangNS"))IBlangs.load();
		if (! page.$("personal") && page.$("utils")) {
			Css.change(page.$("utils"), {marginRight:"0px"})
		}
		favoritos.load();
		if (page.$("loginF")){login.init(page.$("loginF"))}
		if (page.$("loginF2")){login.init(page.$("loginF2"),1)}
		
		document.body.className+=" hayJavaScript";
		PopUp.load();
		selectLabel.load();
	}
}
var isCtrl = false;
ev.addEvent(window,"load",Generic.load,false)

function validarMailConf(e,obj) {
    tecla = (document.all) ? e.keyCode : e.which;
    document.oncontextmenu = function(){return false}

    document.onkeyup=function(e){
    if(tecla == 17) isCtrl=false;
    }
    document.onkeydown=function(e){
    if(tecla == 17) isCtrl=true;
    if(tecla == 86 && isCtrl == true) {
     // acción para CTRL+S y evitar que ejecute la acción propia del navegador
    return false;
    }
    }



}
 //funcion que no deja seleccionar el texto de un campo del formulario
    function disableSelection(target){
        if (typeof target.onselectstart!="undefined") //IE
           target.onselectstart=function(){return false}
        else if (typeof target.style.MozUserSelect!="undefined") //Firefox
           target.style.MozUserSelect="none"
        else //Opera
           target.onmousedown=function(){return false}
        target.style.cursor = "default"
    }

    //permite volver a seleccionar el texto de un campo del formulario
    function enableSelection(target){
        if (typeof target.onselectstart!="undefined") //IE
           target.onselectstart=function(){return true}
        else if (typeof target.style.MozUserSelect!="undefined") //Firefox
           target.style.MozUserSelect=""
        else //Opera
           target.onmousedown=function(){return true}
        target.style.cursor = "default"
    }
	
	
