// JavaScript Document
var viendo_contrato=0;
var viendo_usuario=0;
var timout;
var timout2;
var timnot;
var timtv;

function scroll_top() {

	if(window.pageYOffset){
		return window.pageYOffset;
	 }
	 else {
		return  Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	 }

}
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
function buscar_salidas_destinos(tipo,frm) {
	ajam2("tipo="+tipo,"ajax/salidas.php",function(elm,msg) { cambia_options(elm,msg); }, "", frm.origen);
	ajam2("tipo="+tipo,"ajax/destinos.php",function(elm,msg) { cambia_options(elm,msg); }, "", frm.destino);
}
function subir_imagen(id, tabla, url) {
	window.open('subir_imagen.php?id=' + id + '&tabla=' + tabla + '&url=' + url, 'subir_imagen', 'width=300, height=200');
}
function cargar_resultados_consulta(idedicion) {
	str="";
	if(idedicion) {
		str="idedicion="+idedicion;
	}
	ajam(str, "ajax/resultados_consulta.php", document.getElementById("dv_resultados"));
}
function nuevoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}
function cargando(dv, inf) {
	if (typeof(inf)=="undefined") { inf = "Cargando..."; }
	dv.innerHTML = "<label style='height:100%; font-family:Verdana; vertical-align:middle;'><br><center><b>" + inf + "</b><br><br><img src='img/loading.gif'></center></label>";
}
function ajam(str, url, donde, info_txt) {
	var xmlHttp;
	
	if(info_txt) { cargando(donde, info_txt); }

	xmlHttp = nuevoAjax();
	//xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	//xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        

	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			donde.innerHTML = xmlHttp.responseText;
			set_validacion();
		}
	}

	xmlHttp.open("GET",url + "?bleh=" + generarCod("d") + "&" + str,true);
	xmlHttp.send(null);  
}

function ajamPost(str, url, donde) {
	var xmlHttp;
	xmlHttp = nuevoAjax();
	//xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	//xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        

	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			donde.innerHTML = xmlHttp.responseText;
			set_validacion();
		}
	}

	xmlHttp.open("POST",url + "?bleh=" + generarCod("d"),true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.send(str);
}


function tildar_adicionales_vuelta(chk_ad) {
	var i,e,frm;
	
	frm = chk_ad.form;
	
	for(i=0; i<frm.elements.length; i++) {
		e=frm.elements[i];
		
		if(e.name=="adicionales_items_vuelta[]" && e.value==chk_ad.value) {
			e.checked=chk_ad.checked;
		}
	}
}
var idservicio=0;

function calcular_precio_pasaje(chk) {
	if(typeof(chk)=="undefined") { idserv=idservicio; } else { idservicio = chk.value; idserv=chk.value; }
	
	pasaje = document.getElementById("precio_pasaje_"+idserv).value;
	
	ads = Array();
	precios = Array();
	
	frm=document.frmcompra;
	
	butacas_ocupadas=0;
	chk_adicionales_ocupan_butaca = Array();
	
	adicionales_chks = frm.elements["adicionales_items_"+idserv+"[]"];
	for(i=0; i<adicionales_chks.length; i++) {
		ac=adicionales_chks[i];
		if(ac.checked) {
			ads[ads.length] = "adicional[]="+ac.value;
			precios[precios.length] = "precios["+ac.value+"]="+ac.id;
			bo=parseFloat(document.getElementById("ocupa_butaca_"+ac.value).value);
			butacas_ocupadas += bo;
			if(bo>0) {
				chk_adicionales_ocupan_butaca[chk_adicionales_ocupan_butaca.length]=ac;
			}
		}
		
	}
	
	if(chk_adicionales_ocupan_butaca.length>0) {
		
		if(parseFloat(document.getElementById("butacas_libres_"+idserv).value)<(parseFloat(butacas_ocupadas)+parseFloat(document.getElementsByName("pasajeros")[0].value))) {
			alert("Alguno de los servicios adicionales seleccionados, ocupan una butaca extra en el vehiculo, y no hay suficientes butacas libres en el servicio seleccionado. Por favor, seleccione otro servicio u otra combinacion de servicios adicionales");
			
			if(chk) {
				if(chk.name.indexOf("adicionales")>-1) {
					chk.checked=false;
					chk.onclick();
					return false;
				}
			}
			while(c=chk_adicionales_ocupan_butaca.shift()) {
				c.checked=false;
				ultimoc=c;
			}
			ultimoc.onclick();
			return false;
			
		}
	}
	
	dvcosto = document.getElementById("costo_pasaje");
	cargando(dvcosto,"Calculando el costo del pasaje...");
	
	ajam("precio="+pasaje+"&npasajeros="+frm.npasajeros.value+"&origen="+document.getElementById("idsalida").value+"&destino="+document.getElementById("iddestino").value+"&"+ads.join("&")+"&"+precios.join("&"), "ajax/costo_pasaje.php", dvcosto);
}
function generarCod(n) {
	var f = "";
	for (i=0; i<(6 - n.length); i++) {
		if (Math.floor(Math.random(i) * 2) == 1) {
			f = f + String.fromCharCode(Math.floor(Math.random(i) * 25) + 65);
		} else {
			f = f + String(Math.floor(Math.random(i) * 10));
		}
	}
	
	return f + n;
}
function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}
function obtener_adicionales(id, bloque) {
	var e;
	
	chks=document.getElementById("ids").value.split(",");
	for(n=0; n<chks.length; n++) {
		e=document.getElementById("adicionales_"+chks[n]);
		e.style.display=id==chks[n]?"inline":"none";
		
	}
	document.getElementById("adicionales").style.display="none";
	//cargando(e);
	
	//ajam("bloque="+bloque+"&id="+id, "ajax/adicionales_servicio.php",e,"",1);
}
function copiar_dir(caja) {
	
	if(caja.form.vuelta) {
		
		base=caja.name.split("_"); 
		base.pop(); 
		iv=base.pop(); 
		base.join("_"); 
		elm=caja.form.elements[(base+(iv=="is"?"_id":"_is")+"_vuelta")]; 
		elm.onfocus(); 
		elm.value=caja.value;
	}
}
function cambia_options(elemento, ops, id, sin_sel) {
	if(typeof(sin_sel)=="undefined") { sin_sel=0; }
	
	//sel = document.getElementsByName(elemento)[0];
	if(elemento) {
		sel=elemento;
		
		while(sel.options.length){sel.remove(0);}
	
		ops_ar=ops.split("!");
	
		if(ops.indexOf("=")>-1) {
			if(!sin_sel) {
				aux = document.createElement("option");
				aux.text="Seleccionar...";
				aux.value="";
				if(document.all && !window.opera) { sel.add(aux); } else { sel.add(aux,null); }
			}
			
			for(i=0; i<ops_ar.length; i++) {
				it = ops_ar[i].split("=");
				aux = document.createElement("option");
			
				if(it[1].indexOf("*")>-1) {
					aux.selected="selected";
					it[1]=it[1].replace("*","");

				}
				aux.text=it[1];
				aux.value=it[0];
				if(elemento.multiple) {
					aux.onclick=function() 
						{  
							selecciona_grupo(this,elemento);
						}
				}
				//alert(aux.onclick);
				if(id && it[1]==id) { aux.selected="selected"; }
			
				if(document.all && !window.opera) { sel.add(aux); } else { sel.add(aux,null); }
			}
		} else {
			aux = document.createElement("option");
			aux.text=ops;
			aux.value="";
			if(document.all && !window.opera) { sel.add(aux); } else { sel.add(aux,null); }
		}
		
		/*
		if(usar_func_cambia_options) {
			
			if(func_cambia_options[elemento.name]()) {
			
				func_cambia_options[elemento.name]="";
			}
			
		}
		*/
		if(elemento.onchange && bandera_recupera_pasajero) {  elemento.onchange(); } //al recuperar
									//los datos del pasajero, la bandera debe ser 0
		bandera_recupera_pasajero=1;
		//usar_func_cambia_options=1;
		
		elemento.focus();
	}
	

}
	function abrir(id) {
		locs = Array("","traslado_de_mascotas.html","fotos.html","tarifas.html","horarios.html","reservas.html","index.html","contacto.html","");
		location.href=locs[id];
	}
function ajam2(str, url, donde, info_txt,elemento) {
	var xmlHttp;

//	cargando(donde, info_txt);
	
	xmlHttp = nuevoAjax();
	//xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	//xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        

	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			donde(elemento, xmlHttp.responseText);

			set_validacion();
		}
	}
	elm_name="";
	if(elemento) {
		elm_name="&nombre_elemento=" + elemento.name;
	}
	xmlHttp.open("GET",url + "?bleh=" + generarCod("d") + "&" + str + elm_name,true);
	xmlHttp.send(null); 
}
function cambio_provincias(id,desp_dir,selecid,admitenuevo) {

	if(typeof(desp_dir)=="undefined" || desp_dir==0) { desp_dir=""; }
	if(typeof(admitenuevo)=="undefined" || admitenuevo==0) { admitenuevo=""; }
	if(typeof(selecid)=="undefined" || selecid==0) { selecid=""; }
	
	dv=document.getElementById("tdProvincias" + (typeof(selecid)!="undefined"?selecid:""));
	dv2=document.getElementById("tdLocalidades" + (typeof(selecid)!="undefined"?selecid:""));
	dv3=document.getElementById("tdBarrios" + (typeof(selecid)!="undefined"?selecid:""));

	if(dv2) { dv2.innerHTML="<b>Seleccione una provincia</b>"; }
	if(dv3) { dv3.innerHTML="<b>Seleccione una localidad</b>"; }

	ajam("id=" + id + "&desp=" + desp_dir + "&selecid=" + selecid + "&admitenuevo=" + admitenuevo, desp_dir + "ajax/provincias.php", dv, "Cargando provincias...");

}
function cambio_provincias1(id,desp_dir,selecid) {
	if(typeof(desp_dir)=="undefined" || desp_dir==0) { desp_dir=""; }
	dv=document.getElementById("tdProvincias" + (typeof(selecid)!="undefined"?selecid:""));
	dv2=document.getElementById("tdLocalidades" + (typeof(selecid)!="undefined"?selecid:""));
	dv3=document.getElementById("tdBarrios" + (typeof(selecid)!="undefined"?selecid:""));

	if(dv2) { dv2.innerHTML="<b>Seleccione una provincia</b>"; }
	if(dv3) { dv3.innerHTML="<b>Seleccione una localidad</b>"; }
	if(dv) { 
		ajam("id=" + id + "&desp=" + desp_dir, desp_dir + "ajax/provincias1.php", dv, "Cargando provincias...");
	}
}

function cambio_localidades(id,desp_dir,selecid,admitenuevo) {
	if(typeof(desp_dir)=="undefined" || desp_dir==0) { desp_dir=""; }
	if(typeof(admitenuevo)=="undefined" || admitenuevo==0) { admitenuevo=""; }
	if(typeof(selecid)=="undefined" || selecid==0) { selecid=""; }
	
	dv=document.getElementById("tdLocalidades" + (typeof(selecid)!="undefined"?selecid:""));
	dv3=document.getElementById("tdBarrios" + (typeof(selecid)!="undefined"?selecid:""));
	if(dv3) { 
		dv3.innerHTML="<b>Seleccione una localidad</b>";
	}
	if(dv) {
		ajam("id=" + id + "&desp=" + desp_dir + "&admitenuevo=" + admitenuevo, desp_dir + "ajax/localidades.php", dv, "Cargando localidades...");
	}
}
function cambio_localidades1(id,desp_dir,selecid) {
	if(typeof(desp_dir)=="undefined" || desp_dir==0) { desp_dir=""; }
	
	dv=document.getElementById("tdLocalidades" + (typeof(selecid)!="undefined"?selecid:""));
	dv3=document.getElementById("tdBarrios" + (typeof(selecid)!="undefined"?selecid:""));
	if(dv3) { 
		dv3.innerHTML="<b>Seleccione una localidad</b>";
	}
	if(dv) {
		ajam("id=" + id + "&desp=" + desp_dir, desp_dir + "ajax/localidades1.php", dv, "Cargando localidades...");
	}
}
function nuevo_item(campo,tabla,desp_dir) {
	if(typeof(desp_dir)=="undefined" || desp_dir==0) { desp_dir=""; }
	dv=document.getElementById("dvAlta");

	dv.style.top=document.body.scrollTop;
	dv.style.left=parseFloat(document.body.clientWidth)-500;
	
	str="";
	if(campo=="idprovincia") {
		str = str + "&idpais=" + document.getElementsByName("idpais")[0].value;
	} else if (campo=="idlocalidad") {
		str = str + "&idpais=" + document.getElementsByName("idpais")[0].value;
		str = str + "&idprovincia=" + document.getElementsByName("idprovincia")[0].value;
	} else if (campo=="idbarrio"){
		str = str + "&idpais=" + document.getElementsByName("idpais")[0].value;
		str = str + "&idprovincia=" + document.getElementsByName("idprovincia")[0].value;
		str = str + "&idlocalidad=" + document.getElementsByName("idlocalidad")[0].value;
	}
	
	dv.style.display="inline";
	dv.innerHTML = "<iframe id='frame1' src='" + desp_dir+tabla + ".php?solo_alta=1" + str + "' width=100% height=100% frameborder=0></iframe>";

	
}
function cambio_barrios(id,desp_dir,selecid,admitenuevo) {
	if(typeof(desp_dir)=="undefined") { desp_dir=""; }
	if(typeof(selecid)=="undefined" || selecid==0) { selecid=""; }
	if(typeof(admitenuevo)=="undefined" || admitenuevo==0) { admitenuevo=""; }
	
	dv=document.getElementById("tdBarrios");
	if(dv) { 
		ajam("id=" + id + "&desp=" + desp_dir + "&admitenuevo=" + admitenuevo, desp_dir + "ajax/barrios.php", dv, "Cargando barrios...");
	}
}
function mostrar_vuelta(estado) {
	document.getElementById("sp_vuelta").style.display=estado?"inline":"none";
}
function elegir_fecha(fecha, idcont) {
	if(idcont.id=="basic_container") {
		document.getElementById("ida_dia").value = fecha.getDate();
		document.getElementById("ida_mes").value = fecha.getMonth()+1;
		document.getElementById("ida_anio").value = fecha.getFullYear();
	} else if(idcont.id=="basic_container2") {
		document.getElementById("vuelta_dia").value = fecha.getDate();
		document.getElementById("vuelta_mes").value = fecha.getMonth()+1;
		document.getElementById("vuelta_anio").value = fecha.getFullYear();
	}
}
function reservar_pasajes(est,enviar_pasajes) {
	if(typeof(enviar_pasajes)=="undefined") { enviar_pasajes=false; }
	
	if(document.getElementById("fac_a")) {
		r=document.getElementById("fac_a");
		fac_as = r.checked?1:0;
	} else {
		fac_as = 0;
	}
	
	ajam2("solo_reservar="+est+"&enviar_pasajes="+(enviar_pasajes?"1":"0")+"&factura_a="+fac_as, "reservar_pasajes.php", function(e,m) {
																		aux = m.split("?");
																		if(aux[0]=="123456789987654321") {
																			
																			e.innerHTML = "<b>Cargando la plataforma de pago</b><br><br><img src='img/loading.gif'";
																			location.href="index.php?ver=pago_online&codigo="+aux[1];
																		} else {
																			if(m.split(":").shift() == "relocation") {
																				location.href = m.split(":").pop();
																			} else if(m.split("::::::::::::::::::::::").shift() == "error_completo") {
																				e.innerHTML = "<h3>Lo sentimos! Durante los ultimos minutos se han agotado las butacas disponibles para el servicio <u>"+m.split("::::::::::::::::::::::").pop()+"</u></h3>Por favor, utilice el menu 'Mis pasajes' en la zona inferior izquierda de la pagina para editar su paquete de pasajes y seleccionar otros servicios en aquellos que se han completado";
																			} else {
																				e.innerHTML = m;
																			}
																		}
																	}, "Reservando sus pasajes online...", document.getElementById("completar_pasajes"));
}
onload = function() {	
	
	bots = document.getElementsByName("boton_destacado");
	for(i=0; i<bots.length; i++) {
		b = bots[i];
		b.onmouseover = function() {
			this.src = botoneson[this.id.substring(1)].src;
		}
		b.onmouseout = function() {
			this.src = botonesoff[this.id.substring(1)].src;
		}
	}
	
	//ajam2("","ajax/consulta_servicios.php", function(e,m) { e.innerHTML = m; bas_cal = new Epoch('epoch_basic','flat',document.getElementById('basic_container')); bas_cal2 = new Epoch('epoch_basic','flat',document.getElementById('basic_container2')); }, "Cargando la consulta de servicios", document.getElementById("consulta_servicios"));
	//ajam("","ajax/mis_pasajes.php", document.getElementById("mis_pasajes"),"Cargando...");
	
	set_validacion();
	
	
}
function set_validacion() {
	for(i=0; i<document.forms.length; i++) {
		var frm = document.forms[i];
		frm.onsubmit = function() {
				for(n=0; n<frm.elements.length; n++) {
					if(frm.elements[n].className.indexOf("grisado_inicial")>-1) {
						frm.elements[n].value="";
					}
				}
				if(this.datos_necesarios) {
					
					datos_necesarios = this.datos_necesarios.value.split(",");
					for(j=0; j<datos_necesarios.length; j++) {
						elms = document.getElementsByName(datos_necesarios[j]);
						
						for(n=0; n<elms.length; n++) {
							inp=elms[n];
							
							if(inp.type=="radio") {
								inp=elms;
								elms=Array();
								jj=0;
								
								if(typeof(inp.length)!="undefined") {
									er=inp[0];
									
									for(w=0; w<inp.length; w++) {
										if(inp[w].checked) {
											jj++;
											
										}
									}
								} else {
									if(inp.checked) { jj++; }
									er=inp;
								}
								
								if(jj==0) {
									generar_error("Debe seleccionar al menos una opcion ",er);
									return false;
								}
							} else {
								if(inp.value=="") {
									
									generar_error("Por favor, complete el campo ",inp);
									return false;
						
								}
							}
						}
					}
				}
			
				if(this.datos_iguales) { 
					datos_iguales = this.datos_iguales.value.split(",");
	
					for(j=0; j<datos_iguales.length; j++) {
						nombres=datos_iguales[j].split("=");
						elm1 = document.getElementsByName(nombres[0]);
						elm2 = document.getElementsByName(nombres[1]);
						//elms = frm.elements[datos_necesarios[j]];
						for(n=0; n<elm1.length; n++) {
							inp1=elm1[n];
							inp2=elm2[n];
							
							if(inp1.value!=inp2.value && this==inp1.form) {
								generar_error("Los campos " + inp1.name + " y " + inp2.name + " deben ser iguales", inp1, inp2);
								return false;
							}
						}
					}
				}

				if(this.datos_usuario) {
					err = this.datos_usuario.value.split("=");
					msg = document.getElementById(err[1]).innerHTML;
					inps = document.getElementsByName(err[0]);
					
					for(i=0; i<inps.length; i++) {
						inp=inps[i];
						if(inp.form == this) {
							if(msg.indexOf("Error")>0) {
								generar_error("Corrija el nombre de usuario",inp);
								return false;
							}
						}
					}
				}
				if(this.datos_clave) {
					inps = this.datos_clave.value.split("=");
					cl = document.getElementsByName(inps[0]);
					cl_ant = document.getElementsByName(inps[1]);
					if(cl[0].value!="" && cl_ant[0].value=="") {
						generar_error("Debe ingresar su contraseņa actual para poder cambiar a una nueva",cl_ant[0]);
						return false;
					}
					if((cl[0].value.length<4 || cl[0].value.length>14) && cl[0].form == this && cl_ant[0].value!="") {
						generar_error("La contraseņa debe tener entre 4 y 14 caracteres",cl[0]);
						return false;
					}
				}
				
				if(this.on_submit) {
					return eval(this.on_submit.value+";");
				}
				
				return true;
		}
	}
}
function deshabilita_onclick(elm) {
	elm.onclick=function() {
					alert("Su transaccion esta siendo procesada. Por favor, aguarde un momento...");
					return false;
				}
}
function generar_error(msg,elm) {
	nom = elm.name;
	if(elm.form.elements["otro_nombre_"+elm.name]) { nom = elm.form.elements["otro_nombre_"+elm.name].value; }
	e=document.getElementById("titulo_"+nom);
	if(e) {
		alert("Por favor, complete el campo "+e.innerHTML);
	} else {
		alert("Por favor, complete el campo "+nom);
	}
	
	elm.focus();
	if(elm.select) {
		elm.select();
	}
}
function verificar_salida_destino(uno, otro) {
	if(signo(uno.value)!=signo(otro.value) && uno.value && otro.value) {
		alert("Los viajes que salen de Buenos Aires/Capital llegan a ciudades de la costa y viceversa. Por favor, corrija los parametros de su consulta");
		uno.value="";
		return false;
	}
	
	return true;
}
function signo(val) {
	val = parseFloat(val);
	
	if(val<0) {
		return -1;
	} else if(val>0) {
		return 1;
	}
}
function obtener_recargo_pasaje(cuotas) {
	e=document.getElementById("obteniendo_recargo");
	e.style.display="";
	document.getElementById("info_recargo").innerHTML = "";
	ajam2("cuotas="+cuotas, "ajax/obtener_recargo_pasaje.php", function(e,m) {
		eval("data="+m+";");
		if(data.cuotas>0) {
			document.getElementById("info_recargo").innerHTML = "Total con recargo: <b>$"+data.total.toFixed(2)+"</b>, "+data.cuotas+" cuotas de <b>$"+(data.total/data.cuotas).toFixed(2)+"</b>";
		} else {
			document.getElementById("info_recargo").innerHTML = "";
		}
		e.style.display="none";
	}, "",e);
}

