var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
	XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

var cProgressGif='/images/wait16.gif';

function showProgress(pContainer)
{
	if (pContainer)
	{
		pContainer.innerHTML='';
		var oImg = document.createElement("img");
			oImg.setAttribute('src', cProgressGif );
			oImg.setAttribute('style', 'border:none;padding:0;margin:0;' );
	
		pContainer.appendChild( oImg );
		pContainer.appendChild( document.createTextNode( ' ' + i18n_CaptionAnimatedSearch ) );
	}
}

function isUndefined(a)
{
	return typeof a == 'undefined';
} 
 
function isValidEmail(pValue)
{
	var x = pValue;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x))	{ return true; }
	return false;
}

function Trim(pValue){
pValue = LTrim(pValue);
return RTrim(pValue);
}

function RTrim(pValue){
while(pValue.charAt((pValue.length -1))==" "){
pValue = pValue.substring(0,pValue.length-1);
}
return pValue;
}

function LTrim(pValue){
while(pValue.charAt(0)==" "){
pValue = pValue.replace(pValue.charAt(0),"");
}
return pValue;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

// El to no puede ser inferior al From.
function checkFromToDates(pFrom, pTo)
{
	var f = pFrom.split('/');
	var t = pTo.split('/');
	var rfrom = new Date(f[2],f[1]-1,f[0],0,0,0);
	var rto = new Date(t[2],t[1]-1,t[0],0,0,0);
	
	if ( rto <= rfrom )
	{
		return false;
	}
	return true
}

function checkUsernameExists( pUsername, pCurrentID )
{
	var d = new Date();
	var url = cHTML_ROOT + "includes/checkUsernameExists.asp"
	
	if (pCurrentID=='') { pCurrentID=-1;}
	
	url=url + '?username=' + escape(pUsername)
	url=url + '&currentid=' + escape(pCurrentID)
	url=url + '&dummy=' + d.getTime();
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, false);
		XMLHttpRequestObject.send(null);
		if (XMLHttpRequestObject.readyState == 4 &&
			XMLHttpRequestObject.status == 200) {

			var resp = XMLHttpRequestObject.responseText;
			if (resp=='1')
			{
				return true;
			}
		}else{
			alert('Ha ocurrido un error al enviar la peticion.\nError: ' + XMLHttpRequestObject.status)
		}
	}
	return false;
}

function checkPeriodoDisponible( pIdPiso, pOrigen, pFin, pTipoPeriodo, pIdTipoPeriodo )
{
	var d = new Date();
	var url = cHTML_ROOT + "includes/checkPeriodoDisponible.asp"
	
	if (pIdTipoPeriodo=='') { pIdTipoPeriodo=-1;}
	
	url=url + '?piso=' + escape(pIdPiso)
	url=url + '&inicio=' + escape(pOrigen)
	url=url + '&fin=' + escape(pFin)
	url=url + '&tipobloq=' + escape(pTipoPeriodo)
	url=url + '&idbloq=' + escape(pIdTipoPeriodo)
	url=url + '&dummy=' + d.getTime();
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, false);
		XMLHttpRequestObject.send(null);
		if (XMLHttpRequestObject.readyState == 4 &&
			XMLHttpRequestObject.status == 200) {

			var resp = XMLHttpRequestObject.responseText;
			if (resp=='1')
			{
				return true;
			}
		}else{
			alert('Ha ocurrido un error al enviar la peticion.\nError: ' + XMLHttpRequestObject.status)
		}
	}
	return false;
}

function checkPeriodoOfertaDisponible( pIdPiso, pOrigen, pFin, pIdPisoOferta )
{
	var d = new Date();
	var url = cHTML_ROOT + "includes/checkPeriodoOfertaDisponible.asp"
	
	if (pIdPisoOferta=='') { pIdPisoOferta=-1;}
	
	url=url + '?piso=' + escape(pIdPiso)
	url=url + '&inicio=' + escape(pOrigen)
	url=url + '&fin=' + escape(pFin)
	url=url + '&idbloq=' + escape(pIdPisoOferta)
	url=url + '&dummy=' + d.getTime();
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, false);
		XMLHttpRequestObject.send(null);
		if (XMLHttpRequestObject.readyState == 4 &&
			XMLHttpRequestObject.status == 200) {

			var resp = XMLHttpRequestObject.responseText;
			if (resp=='1')
			{
				return true;
			}
		}else{
			alert('Ha ocurrido un error al enviar la peticion. ' + XMLHttpRequestObject.status)
		}
	}
	return false;
}

function checkCheckInCost( pIdPiso, pIdCheckIn, pContainerID )
{
	var oContainer;
	if (pContainerID)
	{
		oContainer=pContainerID
	} else {
		oContainer='checkInTimeCost'
	}
	
	oContainer=document.getElementById( oContainer );
	
	if (!oContainer) return;
	
	var d = new Date();
	var url = cHTML_ROOT + "includes/checkCheckInCost.asp"
	
	if (pIdPiso=='') { pIdPiso=-1;}
	
	url=url + '?piso=' + escape(pIdPiso)
	url=url + '&checkin=' + escape(pIdCheckIn)
	url=url + '&dummy=' + d.getTime();
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, false);
		XMLHttpRequestObject.send(null);
		if (XMLHttpRequestObject.readyState == 4 &&
			XMLHttpRequestObject.status == 200) {

			var resp = XMLHttpRequestObject.responseText;
			if ( resp == '0')
			{
				resp='';
			} else {
				resp=' <b>Final cost will be increased by ' + resp + '&euro; + VAT</b>';
			}
			oContainer.innerHTML=resp;
			return true;
			
		}else{
			alert('Ha ocurrido un error al enviar la peticion. ' + XMLHttpRequestObject.status)
		}
	}
	return false;
}

function reenviarConfirmacion( pIdReserva )
{
	var d = new Date();
	var url = cHTML_ROOT + "backoffice/ReenviarConfirmacionReserva.asp"
	
	if (pIdReserva=='') { return; }
	
	url=url + '?reserva=' + escape(pIdReserva)
	url=url + '&dummy=' + d.getTime();
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, false);
		XMLHttpRequestObject.send(null);
		if (XMLHttpRequestObject.readyState == 4 &&
			XMLHttpRequestObject.status == 200) {

			return true;
		
		}else{
			alert('Ha ocurrido un error al enviar la peticion. ' + XMLHttpRequestObject.status)
		}
	}
	return false;
}

function listClientes(pControlID)
{
	var loopIndex;
	var selectIndex;
	
	var selectControl = document.getElementById( pControlID );
	
	selectControl.options[0] = new Option('- Seleccionar -',0); // Por defecto
	
	selectIndex=1;
	for (loopIndex = 0; loopIndex < options.length; loopIndex++ )
	{
		selectControl.options[selectIndex] = new Option(options[loopIndex].firstChild.data,options[loopIndex].getAttribute('value'));
		if (options[loopIndex].getAttribute('selected')=='selected') {
			selectControl.selectedIndex=selectIndex;
		}
		selectIndex=selectIndex+1;
	}
}

function getCliente(pTexto, pSelected, pControlID) 
{
	var d = new Date();
	var url =  cHTML_ROOT + "includes/getClients.asp?filtro=" + escape(pTexto) + '&actual=' + escape(pSelected) + '&dummy=' + d.getTime();
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, true);
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 &&
				XMLHttpRequestObject.status == 200) {
				var xmlDocument = XMLHttpRequestObject.responseXML;
				options = xmlDocument.getElementsByTagName("option");
				listClientes( pControlID );
			}
		}
		XMLHttpRequestObject.send(null);
	}
}

function filtrarCliente( pTextoFiltro, pControlID ) {
	var oText;
	var oSelected;
	
	oText=pTextoFiltro;
	
	if (oText.length<3) {
		alert('No se puede realizar filtros de nombres con 2 o menos caracteres. La bsqueda seria muy lenta!')
		return;
	}
	var oCmb=document.getElementById( pControlID );
	oSelected=oCmb.value;

	// Borramos el select y ponemos un marcador de actividad
	oCmb.options.length=0;
	oCmb.options[0] = new Option('Cargando datos. Espere un momento... ',0);

	getCliente( oText, oSelected, pControlID );
}