/*********************************************************************************
* Descripción: Obtener la Lista de Provincias para el Combo de Provincias de Home Page
*********************************************************************************/

function GetProvinceList(p_id_country, p_err_panel)
{
    if (p_id_country != null)
    {
        document.getElementById(document.getElementById("hiddrpCountryID").value).disabled = true;
        document.getElementById(document.getElementById("hiddrpProvinceID").value).disabled = true;
        document.getElementById("btnSearchTop").disabled = true;
        document.getElementById("btnSearchBottom").disabled = true;
        document.getElementById("txtResort").disabled = true;   
        document.getElementById("imgLoading").style.visibility = "visible";
        var v_cities = PageMethods.GetProvinceList(p_id_country, GetProvinceListCallBack);        
    }
    else
    {
        var v_drp = document.getElementById(document.getElementByID("hiddrpCountryID").value);
        v_drp.options.length = 0;
    }
    
    
    if (p_err_panel)
        document.getElementById(p_err_panel).style.visibility = "hidden";
                
}

/*********************************************************************************
* Descripción: Función que se ejecuta cuando retoma el control del servidor
*********************************************************************************/

function GetProvinceListCallBack(result)
{
    var v_drp = document.getElementById(document.getElementById("hiddrpProvinceID").value);
    v_drp.options.length = 0;
    for(var i=0; i<result.length; ++i)
    {
        // Note that we can iterate through the DTO List object as an array, and that we have acces to the properties of the DTO
        v_drp.options[v_drp.options.length] = new Option(result[i].name, result[i].iD);
    }
    setTimeout('document.getElementById(\"imgLoading\").style.visibility = \"hidden\";',1000);
    document.getElementById(document.getElementById("hiddrpCountryID").value).disabled = false;
    document.getElementById(document.getElementById("hiddrpProvinceID").value).disabled = false;
    document.getElementById("btnSearchTop").disabled = false;
    document.getElementById("btnSearchBottom").disabled = false;   
    document.getElementById("txtResort").disabled = false;   
    GetCityList('-1',null);
}

/*********************************************************************************
* Descripción: Obtener la Lista de Ciudades para el Combo de Ciudades de Home Page
*********************************************************************************/

function GetCityList(p_id_province, p_err_panel)
{
    if (p_id_province != null)
    {
        document.getElementById("drpcity").disabled = true;
        document.getElementById("btnSearchTop").disabled = true;
        document.getElementById("btnSearchBottom").disabled = true;
        document.getElementById("txtResort").disabled = true;   
        document.getElementById("imgLoading").style.visibility = "visible";
        var v_cities = PageMethods.GetCityList(p_id_province, GetCityListCallBack);        
    }
    else
    {
        var v_drp = document.getElementById('drpcity');;
        v_drp.options.length = 0;
    }
    
    if (p_err_panel)
        document.getElementById(p_err_panel).style.visibility = "hidden";
                
}


/*********************************************************************************
* Descripción: Función que se ejecuta cuando retoma el control del servidor
*********************************************************************************/

function GetCityListCallBack(result)
{
    var v_drp = document.getElementById('drpcity');
    v_drp.options.length = 0;
    for(var i=0; i<result.length; ++i)
    {
        // Note that we can iterate through the DTO List object as an array, and that we have acces to the properties of the DTO
        v_drp.options[v_drp.options.length] = new Option(result[i].name, result[i].iD);
    }
    setTimeout('document.getElementById(\"imgLoading\").style.visibility = \"hidden\";',1000);
    document.getElementById("drpcity").disabled = false;
    document.getElementById("btnSearchTop").disabled = false;
    document.getElementById("btnSearchBottom").disabled = false;   
    document.getElementById("txtResort").disabled = false;   
}

/*********************************************************************************
* Descripción: Pre-Post de HomePage
*********************************************************************************/

function doPostSearchHome(p_obj_name)
{
    var v_err = false;
    var oProvince, oCity;
    var v_resort = "";
    
    //btnSearchTop es buscador por Nombre de Establecimiento
    if (p_obj_name == "btnSearchTop")
    {
        if (document.getElementById("txtResort").value == "")
        {
            document.getElementById("pnlSearchResortError").style.visibility = "visible";
            v_err = true;
        }
        else
            v_resort = document.getElementById("txtResort").value;
    }
    
    oCountry = document.getElementById("hidCountry");
    oProvince = document.getElementById("hidProvince");
    oCity = document.getElementById("drpcity");

    if (p_obj_name == "btnSearchBottom")
    {
        
        if ((oCountry.value == "-1"))
        {
            document.getElementById("pnlSearchProvinceCityError").style.visibility = "visible";
            v_err = true;
        }
        
    }
    
    if (!v_err)    
    {
        //document.forms[0].action = "ResortSearchResults.aspx";
        //document.forms[0].submit();
        
        document.location = "ResortSearchResults.aspx?txtResort=" + v_resort +
                          "&country=" + oCountry.value +
                          "&province=" + oProvince.value +
                          "&city=" + oCity.value;
    }
    
}

/*********************************************************************************
* Descripción: Intercambiar imagenes en el detalle de establecimiento
*********************************************************************************/

function swapImages(idImagen1, idImagen2)
{
	var temp;
	
	temp = document.getElementById(idImagen1).src;
	document.getElementById(idImagen1).src = document.getElementById(idImagen2).src;
	document.getElementById(idImagen2).src = temp;
}

/*********************************************************************************
* Descripción: RollOver de Buscador de Playas, Montañas y Spa
*********************************************************************************/

function roll(img_name, img_src)
{
   document.getElementById(img_name).src = img_src;
}


/*********************************************************************************
* Descripción: Pre-Post de Buscador en Contents.Master
*********************************************************************************/

function doPostSearchContents(p_obj_name, p_results_page)
{
    var v_err = false;
    var oProvince, oCity, v_city;
    
    //btnSearchTop es buscador por Nombre de Establecimiento
    if (p_obj_name == "btnSearchTop")
    {
        if (document.getElementById("txtResort").value == "")
        {
            //var oPnl = document.getElementById("pnlSearchResortError");
            //oPnl.innerHTML = "Ingrese Valor";
            v_err = true;
        }
    }
    
    if (p_obj_name == "btnSearchBottom")
    {
        
        oCountry = document.getElementById("hidCountry");
        oProvince = document.getElementById("hidProvince");
        oCity = document.getElementById("hidCity");
        
        if ((oCountry.value == "-1")) //&& (document.getElementById("chkPromotion").checked == false))
        {
            //document.getElementById("pnlSearchProvinceCityError").innerHTML = "Debe Ingresar algún criterio de búsqueda";
            v_err = true;
        }
    }
    
    if (!v_err)    
    {
        document.location = p_results_page + "?txtResort=" + document.getElementById("txtResort").value +
                          "&country=" + document.getElementById("hidCountry").value +
                          "&province=" + document.getElementById("hidProvince").value +
                          "&city=" + document.getElementById("hidCity").value;
    }
}

/*********************************************************************************
* Descripción: Validar si presionó Enter para ejecutar la búsqueda
*********************************************************************************/

function checkEnter(e){ //e is event object passed from function invocation
 var characterCode //literal character code will be stored in this variable

 if(e && e.which){ //if which property of event object is supported (NN4)
 e = e
 characterCode = e.which //character code is contained in NN4's which property
 }
 else{
 //e = event
 characterCode = e.keyCode //character code is contained in IE's keyCode property
 }

 if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
 return true
 }
 else{
 return false
 }

}


function EnterSubmit(p_event, p_page,p_obj_name)
{
    if (checkEnter(p_event))
    {
        if (p_page == "Home")
            doPostSearchHomePrev(p_obj_name);
        else
            doPostSearchLocal(p_obj_name);
            
        return(false);
    }
}


/*********************************************************************************
* Descripción: Regresar a los campos de Login, luego de que el usuario acepte el Error de Registración
*********************************************************************************/

function LoginErrorGoBack(p_pnl_loginNotLogged, p_pnl_loginLogged, p_pnl_loginError)
{
    document.getElementById(p_pnl_loginError).style.visibility = "hidden";
    document.getElementById(p_pnl_loginError).style.display = "none";
    document.getElementById(p_pnl_loginNotLogged).style.visibility = "visible";
    document.getElementById(p_pnl_loginNotLogged).style.display = "block";
    document.getElementById(p_pnl_loginLogged).style.visibility = "hidden";
    document.getElementById(p_pnl_loginLogged).style.display = "none";
    return(false);
}


/*********************************************************************************
* Descripción: Setear ubicación en pantalla del Loading Modal Popup
* Parámetros: 
*            p_modal_div: DIV con Opacidad de Fondo para obstruir el resto de la pantalla
*            p_loading_div: DIV que muestra la imagen de cargando
*********************************************************************************/

function setLoadingModalPopupPosition(p_modal_div, p_loading_div)
{
    setModalPopupPosition(p_modal_div, p_loading_div, 200, 0);
}

/*********************************************************************************
* Descripción: Setear ubicación en pantalla de los Modal Popup. Define el alto necesario para el modal Background         
* Parámetros: 
*            p_modal_div: DIV con Opacidad de Fondo para obstruir el resto de la pantalla
*            p_popup_div: DIV que se muestra como popup
*            p_y_offset:  Posición en el eje Y del POPUP respecto de la actual posición de scroll
*            p_x_offset:  Posición en el eje Y del POPUP respecto de la actual posición de scroll
*                          (0 para que X esté en el centro de la pantalla)
*********************************************************************************/

function setModalPopupPosition(p_background_div, p_popup_div, p_y_offset, p_x_offset)
{
    var v_width = 0, v_height = 0;
    v_width = document.body.scrollWidth;         
    var v_browser = navigator.appName
    if (v_browser == "Microsoft Internet Explorer")    
        v_height = document.body.scrollHeight;   
    else    
        v_height = window.innerHeight + window.scrollMaxY;
        
    //document.getElementById(p_modal_div).style.width = Ancho + "px";
    document.getElementById(p_background_div).style.height = v_height + "px";
    
    var v_scrollTop = document.body.scrollTop;

    if (v_scrollTop == 0)
    {
        if (window.pageYOffset)
            v_scrollTop = window.pageYOffset;
        else
            v_scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
    
    var v_yPosition = 0;
    
    v_yPosition = v_scrollTop + p_y_offset;
        
    document.getElementById(p_popup_div).style.top = v_yPosition + "px";
        
}

/*************************************************************************
* Descripción: Setear el ScrollTop a cero
*************************************************************************/
function setScrollTop(p_value)
{
    var v_ScrollTop = document.body.scrollTop;
    if (v_ScrollTop == 0)
    {
        if (window.pageYOffset)
            window.pageYOffset = p_value;
        else
        {
            if (document.body.parentElement) 
                document.body.parentElement.scrollTop = p_value;
        }
    }
    else
        document.body.scrollTop = p_value;
}

/*************************************************************************
* Descripción: Mostrar Panel
*************************************************************************/

function showPanel(p_panel)
{
    v_obj_panel = document.getElementById(p_panel);
    v_obj_panel.style.visibility = "visible";
    v_obj_panel.style.display = "block";
}

/*************************************************************************
* Descripción: Ocultar Panel
*************************************************************************/

function hidePanel(p_panel)
{
    v_obj_panel = document.getElementById(p_panel);
    v_obj_panel.style.visibility = "hidden";
    v_obj_panel.style.display = "none";
}