// JScript File
var MODAL_OPACITY = 0.2; 

var hid = 0;

var imgMain = null;
var imgActive = null;

var mainRestImage;
var mainLoungeIage;
var mainHotelImage;

var firstImageId = null;
var firstRestImageId = null;
var firstLoungeImageId = null;
var firstAllImageId = null;

var secActive = null;

var sShowSearch = 'Mostrar b&#250;squeda';
var sHideSearch = 'Ocultar b&#250;squeda';

var decSep = ",";

function InitHotelImages(active){
    imgMain = document.getElementById('imgMainImage');
    imgActive = document.getElementById(active);
    $('lnkMapa').style.display='none';
}

function InitSections(){
    secActive = document.getElementById('pnlMainHeader');
}

function opacity(id, opacStart, opacEnd, millisec) {    
    var speed = Math.round(millisec / 100);
    var timer = 0;
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

function changeOpac(opacity, id) {
    var object = null;
    if(document.getElementById(id)){
        object = document.getElementById(id).style;
        if(object){
            object.opacity = (opacity / 100);
            object.MozOpacity = (opacity / 100);
            object.KhtmlOpacity = (opacity / 100);
            object.filter = "alpha(opacity=" + opacity + ")";
        }
    }
} 

function currentOpac(id, opacEnd, millisec) {
    var currentOpac = 100;   
    if(document.getElementById(id).style.opacity < 100) {
        currentOpac = document.getElementById(id).style.opacity * 100;
    }
    opacity(id, currentOpac, opacEnd, millisec)
} 

function SwapImg(id){
    if(id==imgActive.id){return;}
    var obj = document.getElementById(id);
    if(obj){
        var activeObj = document.getElementById(imgActive.id);
        imgMain.src = GetImage(obj.src);
        obj.style.cursor='default';
        activeObj.style.cursor='pointer';
        opacity(id, 100, 50, 500);
        if(imgActive){
            opacity(imgActive.id, 50, 100, 500);
        }
        imgActive = obj;    
    }
}

function ShowSection(id){
    if(id==secActive.id){return;}   
    var defaultImgLayer = document.getElementById('pnlMainHeaderImg');
    var obj = document.getElementById(id);
    var capaImg = document.getElementById(id+'Img');   
    document.getElementById('pnlMainHeaderImg').style.display = 'none';
    document.getElementById('pnlRestHeaderImg').style.display = 'none';
    document.getElementById('pnlMeetingHeaderImg').style.display = 'none';   
    if(!capaImg){
        defaultImgLayer.style.display='';
    } else {
        capaImg.style.display='';
    }
    
    if(id=='pnlImagesHeader') {
        document.getElementById('pnlMainHeaderImg').style.display = 'none';
        document.getElementById('pnlRestHeaderImg').style.display = 'none';
        document.getElementById('pnlMeetingHeaderImg').style.display = 'none';   
        SwapImg(firstAllImageId);
    } else if(id=='pnlRestHeader') {
        imgMain.src = mainRestIage;        
        SwapImg(firstRestImageId);
    } else if(id=='pnlMeetingHeader') {
        imgMain.src = mainLoungeIage;
        SwapImg(firstLoungeImageId);
    } else {
        if(imgMain){
            imgMain.src = mainHotelImage;
            SwapImg(firstImageId);
        }
    }
    
    if(secActive) {
        //opacity(secActive.id, 100, 0, 500);
        secActive.style.display = 'none';        
    }
    if(obj){        
        changeOpac(0, id);        
        obj.style.display = 'block';
        opacity(id, 0, 100, 300);
        secActive = obj;
    }
    
    var objImg = $get('lnkMasImagenes');
    if(objImg){ objImg.style.display = (id=='pnlImagesHeader' ? 'none' : ''); }
}

function ShowHideSearch(obj){
    if(document.getElementById('pnlSearch')){
        if(document.getElementById('pnlSearch').style.display=='none'){
            document.getElementById('pnlSearch').style.display='';
            if(obj){obj.innerHTML = sHideSearch;}
        } else {
            document.getElementById('pnlSearch').style.display='none';
            if(obj){obj.innerHTML = sShowSearch;}
        }
    }
}

/**
 * Añade una nueva coleccion de habitaciones para un hotel 
 * @param {Object} key	Identificador del hotel, sirve de llave a la coleccion de habitaciones
 * @param {Object} obj	Coleccion de habitaciones
 */
function uiAddHotelRooms(key, obj){ 
	$rooms()[key] = obj; 
};

/**
 * Valida i actualiza los campos dependientes de la habitacion seleccionada
 * @param {Object} hotelID	Identificador del hotel
 * @param {Object} roomID	Identificador de la habitacion
 * @param {Object} days		Numero de dias
 */
function uiChangeRoomOptions(hotelID, roomID, days, people, numRooms){
	//validar i cambiar precios i enlaces
	var rooms = $rooms()[hotelID];
	if(numRooms==1){
		//Solo una habitacion, cambio automatico de selects
		for(var i=0;i<rooms.length;i++){
			var roomSel = $get(rooms[i].id);
			if(roomID==rooms[i].id){
				_uiRemoveAllOptions(roomSel);
				_uiAddOption(roomSel, 1, true);
			} else {
				_uiRemoveAllOptions(roomSel);
				_uiAddOption(roomSel, 0, true);
				_uiAddOption(roomSel, 1, false);
			};
		};
	};
	
	var roomsNum = 0, roomsSelTotal = 0;
	var newVu = 0;
	for(var i=0;i<rooms.length;i++){
		var roomSel = $get(rooms[i].id);
		var rq = Number(rooms[i].quant);
		var sq = Number(roomSel.value); 
		roomsNum += rq;
		roomsSelTotal += sq; 
		if(sq>0){
			//newPrice += parseFloat(rooms[i].price) * sq;
			newVu += parseFloat(rooms[i].vu) * sq;
		};
	};
	
	//var lblPrecioMedio = $get('lbl-price-xday-'+ hotelID);
	var lblPrecioTotal1 = $get('lblPrecio');
	var lblPrecioTotal2 = $get('lblPrecio2');
	var lblEuro1 = $get('lblEuro1');
	var lblEuro2 = $get('lblEuro2');
	var lnkReservar1 = $get('lnkReservar1');
	var lnkReservar2 = $get('lnkReservar2');
	var lnkPopupId = 'a-prices-popup-'+ hotelID;
	var btnReservation = $get('lnkReservar1');
	var btnReservation2 = $get('lnkReservar2');
	
	if(roomsNum!=roomsSelTotal){
		//ActualizarPrecios ('--&euro;')
		lblPrecioTotal1.innerHTML = '<span class="small"><font color="red">' + uiStrings.strOpcionesInvalidas + '</font></span>';
		lblPrecioTotal2.innerHTML = '<span class="small"><font color="red">' + uiStrings.strOpcionesInvalidas + '</font></span>';
		lblEuro1.style.display='none';
		lblEuro2.style.display='none';
		lnkReservar1.style.display='none';
		lnkReservar2.style.display='none';
	} else {
		//Actualizar al nuevo precio
		newVu = Math.round(newVu*100)/100;
		var newMedioPrice = (newVu / days).toFixed(2);
		lblPrecioTotal1.innerHTML = newVu.toString().replace(".", decSep);
		lblPrecioTotal2.innerHTML = newVu.toString().replace(".", decSep);
		lblEuro1.style.display='';
		lblEuro2.style.display='';
		lnkReservar1.style.display='';
		lnkReservar2.style.display='';
	};
};
function _uiRemoveAllOptions(el){
	for (var i = el.length - 1; i>=0; i--) {
    	el.remove(i);
    };
};
function _uiAddOption(el, val, selected){
	var newOpt = document.createElement('option');
  	newOpt.text = val;
  	newOpt.value = val;
  	try {
    	el.add(newOpt, null); // standards compliant; doesn't work in IE
  	}
  	catch(ex) {
    	el.add(newOpt); // IE only
  	};
};

/**
 * Muestra la capa de precios para un hotel determinado.
 * En caso de que se haya desplegado los detalles se pasaran los id's i las cantidades de las habitaciones
 * seleccionadas en ese momento.
 * Si no se ha desplegado los detalles del hotel se pasara el id del hotel.
 * @param {Object} id	Identificador del hotel
 */
function uiShowListPrices(id){
    
//	var rooms = $rooms()[id];
//	var a = $get('dummy-modal-link');
//	if( !a ){
//		var a = document.createElement('a');
//		a.id='dummy-modal-link';
//		document.body.appendChild(a);
//	};
//	var uriParms = '/HotelPriceDetail.aspx?id=' + id;
//	uriParms = 'http://www.google.com';
//	if(rooms){
//		uriParms += '&rid=';
//		for(var i=0;i<rooms.length;i++){
//			var roomSel = $get(rooms[i].id);
//			var sq = Number(roomSel.value); 
//			if(sq>0){
//				uriParms += escape(rooms[i].id + '$' + sq + (i<rooms.length-1 ? '|' : ''));
//			};
//		};
//		a.href = uriParms;
//		alert(a.href);
//		var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:700, height:300, onFailure:ModalError, onException:ModalError});
//		modal.open();
//	} else {
//		a.href = uriParms;
//		alert(a.href);
//		var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:700, height:300});
//		modal.open();
//	};
};

function ModalError(){
    Control.Modal.Close();
}

/**
 * Realiza una reserva, redirecciona a la pagina de reservas
 * @param {Object} id
 */
function uiDoReservation(id){
	var rooms = $rooms()[id];
	var roomsRevDes = '';
	
	if(rooms){
		for(var i=0;i<rooms.length;i++){
			var roomSel = $get(rooms[i].id);
			var sq = Number(roomSel.value); 
			if(sq>0){ roomsRevDes += rooms[i].id + '$' + sq + '|' ; };
		};
	};
	
	//Establecemos los valores del hotel i las habitaciones seleccionadas
	if($get('_horevid'))
	    $get('_horevid').value = id;
	if($get('_horoorevid'))
	    $get('_horoorevid').value = roomsRevDes;	
	
};

/** Obtiene el objeto HP.Rmngr */
function $rm(){return document.rm;};

/** Obtiene el objeto uiHP */
function $ui(){return document.uiHP;};

/** Obtiene el objeto Habitaciones */
function $rooms(){
	if(!document.rooms){ document.rooms = new Array(); };
	return document.rooms;
};


/**
 * Muestra la capa de precios para un hotel determinado.
 * En caso de que se haya desplegado los detalles se pasaran los id's i las cantidades de las habitaciones
 * seleccionadas en ese momento.
 * Si no se ha desplegado los detalles del hotel se pasara el id del hotel.
 * @param {Object} id	Identificador del hotel
 */
function uiShowListPrices(id){
	var rooms = $rooms()[id];
	var a = $get('dummy-modal-link');
	if( !a ){
		var a = document.createElement('a');
		a.id='dummy-modal-link';
		document.body.appendChild(a);
	};
	var uriParms = '/HotelPriceDetail.aspx?id=' + id;
	if(rooms){
		uriParms += '&rid=';
		for(var i=0;i<rooms.length;i++){
			var roomSel = $get(rooms[i].id);
			var sq = Number(roomSel.value); 
			if(sq>0){
				uriParms += escape(rooms[i].id + '$' + sq + (i<rooms.length-1 ? '|' : ''));
			};
		};
		a.href = uriParms;
		var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:430, height:350, afterClose:RestoreScroll});
		modal.open();
	} else {
		a.href = uriParms;
		var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:430, height:350, afterClose:RestoreScroll});
		modal.open();
	};	
	
	if(document.body && document.body.style)
	    document.body.style.overflow = "hidden";	
};

function RestoreScroll(){
    if(document.body && document.body.style){
        document.body.style.overflow = "";
    }
}

/**
 * Muestra el mapa de localización del hotel
 * @param {Object} mapUri
 */
function uiShowMap(mapUri, name){
	var _s = new Sys.StringBuilder();
	
	_s.append('<div style="text-align:right; width:260px;"><a href="javascript:void(0);" onclick="javascript: Control.Modal.close();"><img src="/_aux_imagenes/boton-cerrar-small.gif" border="0" /></a></div>');
	_s.append('<p><div style="width:260px;text-align:center;">');
	_s.append('<div>' + name + '</div><br/>');
	_s.append('<img id="map" src="/_aux_imagenes/pixel.gif" />');
	_s.append('</div></p>');
	var w = 260;
	if(/MSIE/.test(navigator.userAgent)){
		w = 280;
	};
	Control.Modal.open(_s.toString(), {opacity:MODAL_OPACITY, position:'absolute', width:w});
	
	var img = new Image();
	img.onload = function(){ $get('map').src = mapUri; };
	img.src = mapUri;
};

function GetImage(url) {
    return url.replace("_w=66", "137").replace("_h=66", "137");
}


function uiOpenGenericHelp(){ 
	var w = 557;
	if(document.body && document.body.style)
	    document.body.style.overflow = "hidden";	
	if(/MSIE/.test(navigator.userAgent)) w = 570;
	Control.Modal.open($get('help-logos').innerHTML, {opacity:MODAL_OPACITY, width:w, afterClose:RestoreScroll});
};
/*
function uiSocialBookmarking(){ 
    var share_div = $get('div_share_this');
    if(share_div!=null){
	    var w = 480;
	    if(document.body && document.body.style)
	        document.body.style.overflow = "hidden";	
	    if(/MSIE/.test(navigator.userAgent)) w = 480;
	    var content = new String(share_div.innerHTML);
	    content = content.replace(/\/title\//g, encodeURI(document.title))
	    content = content.replace(/\/url\//g, encodeURI(document.location.href));
	    Control.Modal.open(content, {opacity:MODAL_OPACITY, width:w, afterClose:RestoreScroll});
	}
};
*/
function printDetails(){   
    if($('pnlMainHeader'))$('pnlMainHeader').style.display='block';
    if($('pnlServiceHeader'))$('pnlServiceHeader').style.display='block';
    if($('pnlLocHeader'))$('pnlLocHeader').style.display='block';
    if($('pnlRestHeader'))$('pnlRestHeader').style.display='block';
    if($('pnlMeetingHeader'))$('pnlMeetingHeader').style.display='block';
    
    print();
    
    if(/MSIE/.test(navigator.userAgent))
        window.onfocus = function(){setTimeout('ShowAfterPrint()', 1000);}
    else
        window.onfocus = function(){ShowAfterPrint();}
}

function ShowAfterPrint(){
    if($('pnlMainHeader'))$('pnlMainHeader').style.display='none';
    if($('pnlServiceHeader'))$('pnlServiceHeader').style.display='none';
    if($('pnlLocHeader'))$('pnlLocHeader').style.display='none';
    if($('pnlRestHeader'))$('pnlRestHeader').style.display='none';
    if($('pnlMeetingHeader'))$('pnlMeetingHeader').style.display='none';
    $('main240left').style.display='';
    window.onfocus = null;
}

function SwitchLayers(capa){    
	if(document.getElementById(capa).style.display == "none" || document.getElementById(capa).style.display == ""){
		document.getElementById(capa).style.display = "block";
	} else 	{
		document.getElementById(capa).style.display = "none";
	}
}

function HideDetailsMap(){
    if($('lnkMapa'))$('lnkMapa').style.display='none';
    if($('verMapa'))$('verMapa').style.display='';
    if($('CapaVerMapa3'))$('CapaVerMapa3').style.display='block';
    if($('divVerMapa3Izquierda'))$('divVerMapa3Izquierda').style.display='block';
    if($('pnlGMapIzquierda'))$('pnlGMapIzquierda').style.display='block';
}

function ShowDetailsMap(){
    if($('lnkMapa'))$('lnkMapa').style.display='';
    if($('verMapa'))$('verMapa').style.display='none';    
    if($('CapaVerMapa3'))$('CapaVerMapa3').style.display='none';
    if($('divVerMapa3Izquierda'))$('divVerMapa3Izquierda').style.display='none';
    if($('pnlGMapIzquierda'))$('pnlGMapIzquierda').style.display='none';
}

function AmplifyMap(){    
    var w = 760;var h = 420;
	if(/MSIE/.test(navigator.userAgent)){ w = 770; h=430;};
	var a = $get('dummy-modal-link');
	if( !a ){
		a = document.createElement('a');
		a.id='dummy-modal-link';
		document.body.appendChild(a);
	};

	a.href = '/HotelDetailsGMap.aspx?id='+hid;
	
	if (/MSIE (\d+\.\d+)/.test(navigator.userAgent)){
        var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
        if (ieversion<=6){
            //HACK para IE6
            a.href = 'about:blank';
            var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:w, height:h, iframe:true, iframeTemplate: new Template('<iframe src="#{href}" width="100%" height="100%" frameborder="0" id="#{id}" scrolling="no"></iframe>')});
	        modal.open();
            $get('modal_iframe').src = '/HotelDetailsGMap.aspx?id='+hid;
            return;
        }
	} 
	
	var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:w, height:h, iframe:true, iframeTemplate: new Template('<iframe src="#{href}" width="100%" height="100%" frameborder="0" id="#{id}" scrolling="no"></iframe>')});
	modal.open();
}

function SendToFriend(){
    var w = 500;
    if(/MSIE/.test(navigator.userAgent)) w = 520;
	var a = $get('dummy-modal-link');
	if( !a ){
		a = document.createElement('a');
		a.id='dummy-modal-link';
		document.body.appendChild(a);
	};
	
	if(document.body && document.body.style){
	    document.body.style.overflow = "hidden";
	}
	a.href = '/SendToFriend.aspx?hid='+hid;
	var modal = new Control.Modal(a.id, {opacity:MODAL_OPACITY, position:'absolute', width:w, height:400, iframe:true, afterClose:RestoreScroll});
	modal.open();
}