﻿/*Debug*/
function var_dump(element, limit, depth) {
    depth = depth ? depth : 0;
    limit = limit ? limit : 1;
    returnString = '<ol>';
    for (property in element) {
        //Property domConfig isn't accessable
        if (property != 'domConfig') {
            returnString += '<li><strong>' + property + '</strong> <small>(' + (typeof element[property]) + ')</small>';
            if (typeof element[property] == 'number' || typeof element[property] == 'boolean')
                returnString += ' : <em>' + element[property] + '</em>';
            if (typeof element[property] == 'string' && element[property])
                returnString += ': <div style="background:#C9C9C9;border:1px solid black; overflow:auto;"><code>' +
									element[property].replace(/</g, '&amp;lt;').replace(/>/g, '&amp;gt;') + '</code></div>';
            if ((typeof element[property] == 'object') && (depth < limit))
                returnString += var_dump(element[property], limit, (depth + 1));
            returnString += '</li>';
        }
    }
    returnString += '</ol>';
    return '<pre>' + returnString + '</pre>';
}

function write_dump(dump) {
     top.consoleRef = window.open('', 'myconsole','width=800,height=600,menubar=0,toolbar=1,status=0,scrollbars=1,resizable=1')
     top.consoleRef.document.writeln('<html><head><title>Console</title></head><body bgcolor=white onLoad="self.focus()">' + dump + '</body></html>')
     top.consoleRef.document.close()
}

/*Funciones JS comunes*/
function GetRadWindow() { 
    return window.frameElement.radWindow;
}

function Open_Wnd(ArgUrl, ArgWnd) {
    var parentRadWindowManager = GetRadWindowManager();    
    var oWnd = parentRadWindowManager.open(ArgUrl, ArgWnd);
}

function Close_Redirect(ArgUrl) {
    GetRadWindow().close();
    GetRadWindow().BrowserWindow.location.href = ArgUrl;
}

function Redirect(ArgUrl) {
    window.location = ArgUrl;
}

/*----------------------------------------------------------------------------------------------------------------------------*/
/*Options and Bookings*/
//function ConfigBookWnd(oWnd) {
//    //Como configurar una ventana desde al cliente
//    oWnd.setSize(680, 460);
//    oWnd.set_modal(true);
//    oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close);
//    oWnd.set_visibleStatusbar(false);
//}

function Open_NewOB(ArgType) {
    Open_Wnd("/gestion/bookings/new_booking.aspx?type=" + ArgType, "RadWindow_NewOB");
}

function Open_OB(ArgBookingId) {
    Open_Wnd("/gestion/bookings/booking.aspx?id=" + ArgBookingId, "RadWindow_NewOB");    
}

function Open_NA(ArgBookingId) {
    Open_Wnd("/gestion/bookings/na.aspx?id=" + ArgBookingId, "RadWindow_NA");
}

function Open_OD(ArgBookingId) {
    Open_Wnd("/gestion/bookings/od.aspx?id=" + ArgBookingId, "RadWindow_OD");
}

function Open_Photos(ArgServer, ArgCode, ArgLang) {
    Open_Wnd(ArgServer + "/upload_owners.aspx?code=" + encodeURIComponent(ArgCode) + "&lang=" + ArgLang, "RadWindow_Photos");
}

function Open_OwnerBooking(ArgId) {
    Open_Wnd("/gestion_agents/bookings/booking_own.aspx?id=" + encodeURIComponent(ArgId), "RadWindow_OwnB");
}


/*Publication Status*/
function Open_PStatus(ArgVillaId) {
    Open_Wnd("/gestion/villas/publish_status.aspx?id=" + encodeURIComponent(ArgVillaId), "RadWindow_PStatus");
}

/*Formularios*/
function Open_FormDetail(ArgId) {
    Open_Wnd('/gestion/forms/form_detail.aspx?param=' + encodeURIComponent(ArgId), "RadWindow_FormDetail");
} //Open_FormDetail

/*Translations*/
function ToggleTranslation() {
    var tmp_Cookie = getCookie('TranslationState');
    if (checkCookie('TranslationState')) { } else { tmp_Cookie = 'state=true' }
    var tmp_TState = getCookieValue(tmp_Cookie, 'state');
    if (tmp_TState == 'true') {
        delSearchCookie('TranslationState');
        setCookie('TranslationState', 'state=false');
    }
    else {
        delSearchCookie('TranslationState');
        setCookie('TranslationState', 'state=true');
    }
    location.reload();
}

function OpenXMLEditor(ArgLang, ArgNode, ArgProperty, ArgFile) {
    window.open('/xml_editor/xml_editor.aspx?lang=' + encodeURIComponent(ArgLang) + '&control=' + encodeURIComponent(ArgNode) + '&file=' + encodeURIComponent(ArgFile) + '&property=' + encodeURIComponent(ArgProperty), 'XML_Editor', 'left=100, top=100,status = yes, height = 500, width = 640');
}

function Open_RequestTranslation(ArgCode, ArgLang, ArgBURL) {
    Open_Wnd("/gestion/villas/request_translation.aspx?code=" + encodeURIComponent(ArgCode) + "&lang=" + ArgLang + "&bu=" + ArgBURL , "RadWindow_RequestTranslation");
}

/*Tenant Selection*/
function getHidden(argHidden) { return document.getElementById(argHidden).value; }

function getText(argTextBox) { return $find(argTextBox).get_value(); }

function setHidden(argHidden, argValue) { document.getElementById(argHidden).value = argValue; }

function setText(argTextBox, argValue) { $find(argTextBox).set_value(argValue); }

function setReadOnly(sender, e) {
    sender._textBoxElement.readOnly = true;
}

function getWindowManager() {
    return GetRadWindow().BrowserWindow.GetRadWindowManager();
}

function getContentWin() {
    return getWindowManager().getWindowByName("RadWindow_NewOB").get_contentFrame().contentWindow;    
}

/*---- Tenants for Booking ----------------------------------------------------------------------------------------------------*/
function Open_TenantF(argId) {
    Open_Wnd("/gestion/people/tenant_edit.aspx?id=" + argId, "RadWindow_TenantEdit");    
}

function Open_Tenant(argId, argName, argTo) {    
    var oWnd2 = getWindowManager().open("/gestion/people/tenant_edit.aspx?id=" + argId + "&name=" +argName + "&to=" + argTo, "RadWindow_TenantEdit");
}

function copyTenant(ArgId, ArgName, ArgPhone, ArgMail, argTo) {    
    var oArg = new Object();
    oArg.idtenant = ArgId;
    oArg.nametenant = ArgName;
    oArg.phonetenant = ArgPhone;
    oArg.mailtenant = ArgMail;
    if (argTo == 'tenant') { getContentWin().setTenant(oArg);}
    else  if (argTo == 'billto') { getContentWin().setBillTo(oArg); }
    else if (argTo == 'contact') { getContentWin().setContact(oArg); }
}

function updTenant(ArgId, ArgTo) {
    getContentWin().refreshCombos(ArgId, ArgTo);
    self.close();
}

/*-- Precios -----------------------------------------------------------------------------------------------------------------*/

function convert2Date(argDate) {
    var tmp_Date = argDate.split("/");
    return new Date(tmp_Date[2], tmp_Date[1] - 1, tmp_Date[0])
}


function getColor(argIndex) {
    if (argIndex % 2 == 0) { return '#f4fafd'; }
    else { return 'transparent'; }
}

function setRowColor(argIndex, argColor) {
    var row = $("#ctl00_ContentPlaceHolderCenterContent_RadGrid_Prices_ctl00 > tbody > tr[index=" + argIndex + "] > td");
    row.css('background-color', argColor);
}

function ValidateDate(sender, eventArgs) {
    try {
        //Para tener en cuenta el primer y último calendario                    
        var from = $(".from_date > table span input[type=text].riRead");
        var to = $(".to_date > table span input[type=text].riRead");
        //indice del calendario que dispara el evento
        var index = parseInt(sender._element.parentElement.attributes["index"].nodeValue);
        var color = '#ffaaaa';
        //Se busca por el from o por el to
        if (sender._element.id.search("_From") == -1) {
            if (!isNaN(Date.parse(convert2Date(from[index + 1].value)))) {
                if ((Date.parse(eventArgs.get_newDate()) == Date.parse(convert2Date(from[index + 1].value)))) {
                    setRowColor(index, getColor(index))
                    setRowColor(index + 1, getColor(index + 1))
                }
                else {
                    setRowColor(index, color)
                    setRowColor(index + 1, color)
                }
            }
        }
        else {
            if (!isNaN(Date.parse(convert2Date(to[index - 1].value)))) {
                if (Date.parse(eventArgs.get_newDate()) == Date.parse(convert2Date(to[index - 1].value))) {
                    setRowColor(index, getColor(index))
                    setRowColor(index - 1, getColor(index - 1))
                }
                else {
                    setRowColor(index, color)
                    setRowColor(index - 1, color)
                }
            }
        }
    }
    catch (err) {

    }
}

/*----------------------------------------------------------------------------------------------------------------------------*/
function Close_RadWindow() {    
    GetRadWindow().close();
    return false;
}

function Back_To(ArgURL) {
    window.location = ArgURL;
}

/*Languages Cookies*/
function SetLang(ArgLang) {
    document.cookie = "USER_LANG=USER_LANG=" + escape(value);
}

/*-- Inventory ---------------------------------------------------------------------------------------------------------------*/
function Open_InventoryItem(ArgId, ArgIdAccommodation) {
    //Use RadWindow_NewOB for reuse CopyTenant
    Open_Wnd('/gestion_agents/villas/inventory_item.aspx?id=' + encodeURIComponent(ArgId) + '&accommodation=' + encodeURIComponent(ArgIdAccommodation), "RadWindow_Item");
} //Open_InventoryItem
