function $(b){
	if (b.charAt(0)=='#') return document.getElementById(b.substring(1));
	else if (b.charAt(0)=='&') return document.getElementsByName(b.substring(1));
	else if(b.charAt(0)=='.'){
		var tags=document.getElementsByTagName('*');
		var elementos=new Array();
		var a=0;
		for(var i=0;i<tags.length;i++){
			if(tags[i].className==b.substring(1)){
				elementos[a]=tags[i];
				a++;
			}
		}
		return elementos;
	}
	else return document.getElementsByTagName(b)
}

function objetoAjax(){
	var xmlhttp=false;
	try{
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
		}
	catch(e){
		try{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
			}
		catch(e){
			xmlhttp=false;
		}
	}
	if(window.XMLHttpRequest) xmlhttp=new XMLHttpRequest();
	return xmlhttp;
}

function Cargar(pagina,enviar,resultado,abortar,func){
	if(window.llamada_ajax && abortar==true) llamada_ajax.abort();
	var ajax=new objetoAjax();

	ajax.open("POST",pagina,true);
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.onreadystatechange=function (){
		if(resultado){
			if(ajax.readyState==4){
				if (resultado.value==undefined) resultado.innerHTML=ajax.responseText;
				else resultado.value=ajax.responseText;

				if(func) eval(func);
				cjs(resultado);
				llamada_ajax=false;
			}
		}
	}
	ajax.send(enviar);
	llamada_ajax=ajax;
}

function cjs(contenedor){
	var js=contenedor.getElementsByTagName('script');
	for(var i=0;i<js.length;i++){
		eval(js[i].innerHTML);
	//js[i].innerHTML='';
	}
}

function listen(evento,elemento,func){
	if (elemento.addEventListener) elemento.addEventListener(evento,func,false);
	else if (elemento.attachEvent) elemento.attachEvent("on"+evento,func);
}

function iniciar_js(){
	if(document.readyState=='complete'){
		validar_inputs();
		document.onclick=function(){
			for(var i=0;i<$('.c_display').length;i++){
				$('.c_display')[i].getElementsByTagName('div')[0].style.display='none';
			}
		}
	}else setTimeout('iniciar_js()',500);
}
iniciar_js();

function validar_inputs(){
	for(var i=0;i<$('input').length;i++){
		if($('input')[i].className.indexOf('_f')!=-1){
			for(a=0;a<30;a++){
				if(!document.getElementById('fecha'+a)){
					$('input')[i].id='fecha'+a;
					var boton=document.createElement('img');
					boton.setAttribute('src','images/calendar.png');
					boton.setAttribute('title','View calendar');
					boton.setAttribute('id',$('input')[i].id+'_b');
					boton.className='calendario';
					$('input')[i].parentNode.appendChild(document.createTextNode(' '));
					$('input')[i].parentNode.appendChild(boton);
					Calendar.setup({
						inputField: $('input')[i].id,
						ifFormat: "%Y-%m-%d",
						button: $('input')[i].id+"_b"
						});
					$('input')[i].readOnly=true;
					break;
				}
			}
			
		}else if($('input')[i].className.indexOf('_n')!=-1){
			$('input')[i].onkeyup=function(){
				for (var a=0;a<this.value.length;a++){
					if(isNaN(this.value.charAt(a))==true && this.value.charAt(a)!='.'){
						this.value=this.value.replace(this.value.charAt(a),'');
					}
				}
			}
		}else if($('input')[i].parentNode.className==('c_display')){
			$('input')[i].setAttribute('autocomplete','off');
			$('input')[i].onkeyup=function(event){
				display(this,event);
			}
			$('input')[i].onblur=function(){
				display_validar(this);
			}
		}

		if($('input')[i].className.indexOf('_p')!=-1){
			listen('keyup',$('input')[i],function(){
				if (/[^0-9-]/.test(this.value)) this.value=this.value.replace(/[^0-9-]/g,'');
			})
			}
		if($('input')[i].className.indexOf('_email')!=-1){
			listen('change',$('input')[i],function(){
				if (!/[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/.test(this.value) && this.value!=''){
					this.style.backgroundColor='#FBB';
					crear_notificacion(this,'Invalid Email.')
				}else{
					this.style.backgroundColor='';
					eliminar_notificacion(this);
				}
			})
		}
	}
}

function display(yo,e,campo){
	var evt = e ? e : event;
	var key = window.Event ? evt.which : evt.keyCode;
	var contenido=yo.parentNode.getElementsByTagName('div')[0];

	if(key==37 || key==38 || key==39 || key==40 || key==13){
		if(contenido.style.display=='block'){
			var spans=contenido.getElementsByTagName('span');

			if (key==40 || key==38){
				for(var a=0;a < spans.length;a++){
					spans[a].style.backgroundColor='';
				}

				if (key==40){
					if (s<(spans.length)-1) s=s+1;
				}else if(key==38){
					if (s!=0) s=s-1;
				}
				spans[s].parentNode.scrollTop = 17*s;
				spans[s].style.backgroundColor='#CEF';
			}

			if(key==13){
				var links=spans[s].getElementsByTagName('a');
				if(links.length>0) yo.value=links[0].innerHTML;
				else yo=spans[s].innerHTML;

				yo.title=spans[s].title;
				contenido.style.display='none';
				s=-1;
			}
		}
	}else{
		if(yo.value.replace(/ /g,' ')==''){
			contenido.style.display="none";
			yo.title='';
		}else{
			for (var i=0;i<$('.c_display').length;i++){
				$('.c_display')[i].getElementsByTagName('div')[0].style.display='none';
			}
			contenido.style.display="block";
			Cargar('funciones.php','display='+yo.value.toUpperCase()+'&campo='+campo,contenido,true,'display_select()');
			s=-1;
		}
	}
}

function display_select(){
	for(var a=0;a<$('.c_display').length;a++){
		var spans=$('.c_display')[a].getElementsByTagName('span');

		for (var i=0;i<spans.length; i++){
			s=0;
			spans[s].style.backgroundColor='#CEF';
			
			spans[i].onmousedown=function(){
				var links=this.getElementsByTagName('a');
				if(links.length>0) this.parentNode.parentNode.getElementsByTagName('input')[0].value=links[0].innerHTML;
				else this.parentNode.parentNode.getElementsByTagName('input')[0].value=this.innerHTML;
				this.parentNode.style.display='none';
			}
		}
	}
}

function display_validar(yo){
	yo.value=yo.value.toUpperCase();

	var links=yo.parentNode.getElementsByTagName('a');
	var valido=false;

	for(var a=0;a<links.length;a++){
		if(yo.value==links[a].innerHTML){
			valido=true;
			break;
		}
	}

	if(!valido || yo.value.replace(/ /g,' ')==''){
		yo.value='';
	}
}


function tabs(yo){
	if(yo){
		var links=yo.parentNode.getElementsByTagName('a');
		for(var i=0;i<links.length;i++){
			links[i].className='';
			$('#tab_'+links[i].rev).style.display='none';
			links[i].onclick=function(){
				tabs(this);
			}
		}

		yo.className='tab_seleccionado';
		$('#tab_'+yo.rev).style.display='block';
	}else{
		for(var a=0;a<$('div').length;a++){
			if($('div')[a].className=='c_tabs'){
				var links=$('div')[a].getElementsByTagName('a');
				var seleccionar=true;
				for(var i=0;i<links.length;i++){
					links[i].onclick=function(){
						tabs(this);
					}
					if(links[i].className!='tab_seleccionado') $('#tab_'+links[i].rev).style.display='none';
					else seleccionar=false;
				}
				if(seleccionar){
					links[0].className='tab_seleccionado';
					$('#tab_'+links[0].rev).style.display='block';
				}
			}
		}
	}
}

function form_enviar(contenedor){
	if(!contenedor) return '';
	var inputs=contenedor.getElementsByTagName('input');
	var textareas=contenedor.getElementsByTagName('textarea');
	var selects=contenedor.getElementsByTagName('select');
	var enviar='';

	for(var i=0;i<inputs.length;i++) if(inputs[i].name && inputs[i].disabled!=true) enviar+=inputs[i].name+'='+inputs[i].value+'&';
	for(var i=0;i<textareas.length;i++) if(textareas[i].name && textareas[i].disabled!=true) enviar+=textareas[i].name+'='+textareas[i].value+'&';
	for(var i=0;i<selects.length;i++) if(selects[i].name) enviar+=selects[i].name+'='+selects[i].value+'&';

	return enviar;
}

//Pictures to switch inbetween
var Rollpic1 = "images/1.jpg";
var Rollpic2 = "images/2.jpg";
var Rollpic3 = "images/3.jpg";
var Rollpic4 = "images/4.jpg";
var Rollpic5 = "images/5.jpg";
var Rollpic6 = "images/6.jpg";
var Rollpic7 = "images/7.jpg";
var Rollpic8 = "images/8.jpg";
var Rollpic9 = "images/9.jpg";
var Rollpic10 = "images/10.jpg";

//Start at the what pic:
var PicNumber=1;
//Number of pics:
var NumberOfPictures=10;
//Time between pics switching in secs
var HowLongBetweenPic=2;

//SwitchPic Function
function SwitchPic(counter){
	if(counter < HowLongBetweenPic){
		counter++;

		//DEBUG in the status bar at the bottom of the screen
		window.status="Cambia imagen cada 2 segundos : "+counter+" - Imagen n�: "+PicNumber+" ";

		//Display pic in what <IMG> tag roll is what I called the image
		$('#roll').style.backgroundImage='url('+eval("Rollpic" + PicNumber)+')';

		//function calls itself
		CallSwitchPic=window.setTimeout("SwitchPic("+counter+")",1500);

	}else{
		//if its not the last picture goto the next picture
		if(PicNumber < NumberOfPictures){
			PicNumber++;
			SwitchPic(0);
		}
		//its the last picture go to the first one
		else{
			PicNumber=1;
			SwitchPic(0);
		}

	}
}

function oscurecer(object,opacity,time){
	if(!opacity) opacity=0;
	else opacity++;

	if(opacity>9){
		clearInterval(time);
		return;
	}
	object.style.opcity='0.'+opacity;
}

function comprobar1(este){
	var error=false;
	var elementos=este.elements;
	for(var i=0;i<elementos.length;i++){
			if(elementos[i].value.replace('/ /g')==""){
				elementos[i].style.background='#FCC';
				elementos[i].style.border='1px solid #F00';
				elementos[i].focus();
				error=true;
			}else{
				elementos[i].style.background='';
				elementos[i].style.border='';
			}
	}
	if(error) alert("You Must Select a Route");
	else this.submit();
}

var ports_1=new Array("-Pick a Port-","Rio Haina, Dominican Republic","Puerto Plata, Dominican Republic","Caucedo, Dominican Republic");
var ports_2=new Array("-Pick a Port-","Caucedo, Dominican Republic");
var ports_value_1=new Array("","DOHAI","DOPOP","DOCAU");
var ports_value_2=new Array("","DOCAU");
function cambia_city(este){
	var num_port=0;
	var options=este.getElementsByTagName('option')
	for(var i=1;i<options.length;i++){
		if(options[i].selected==true){
			if(i==2 || i==3){
				num_port=2;
			}
			if(i==1 || i==4){
				num_port=1;
			}
		}
	}

	if(num_port!=0){
		var port_to=eval('ports_'+num_port);
		var port_to_value=eval('ports_value_'+num_port);

		$('#port_to').innerHTML='';
		for(var i=0;i<port_to.length;i++){
			var option=document.createElement('option');
			option.appendChild(document.createTextNode(port_to[i]));
			option.value=port_to_value[i];
			$('#port_to').appendChild(option);
		}
	}
}
function select_sailing(){
	if(g_id==0 || g_id=='') return;
	Cargar('selectsailing.php?id='+g_id,null, $('#cargar'))
//	window.location='selectsailing.php?id='+g_id;
}

function seleccionar_tr(contenedor){
	var trs=contenedor.getElementsByTagName('tr');

	for(var i=1;i<trs.length;i++){
		trs[i].style.cursor='pointer';
		trs[i].onclick=function(){
			var trs2=contenedor.getElementsByTagName('tr');
			var inputs2=contenedor.getElementsByTagName('input');

			if(inputs2.length>0){
				for(var a=0;a<inputs2.length;a++) inputs2[a].checked=false;
				this.getElementsByTagName('input')[0].checked=true;
				g_id=this.getElementsByTagName('input')[0].value;
			}
			for(var a=1;a<trs2.length;a++) trs2[a].style.backgroundColor='';
			this.style.backgroundColor='#CEF';
		}
	}
}
if($('input')[i].className.indexOf('_n')!=-1){
	$('input')[i].onkeyup=function(){
		for (var a=0;a<this.value.length;a++){
			if(isNaN(this.value.charAt(a))==true && this.value.charAt(a)!='.'){
				this.value=this.value.replace(this.value.charAt(a),'');
			}
		}
	}
}

function tr_add_function(func,contenedor){
	if(!contenedor) contenedor=$('#tabla_c');
	var trs=contenedor.getElementsByTagName('tr');
	for(var i=1;i<trs.length;i++){
		trs[i].style.cursor='pointer'
		listen('click',trs[i],function(){eval(func);});
	}
}
