﻿/// --------------------------------------------------
/// mainScreen object
/// --------------------------------------------------
var mainScreen =
{
    result: null
}

mainScreen.Init = function() {
    /// <summary>
    /// Initializes mainScreen variables
    /// </summary>
    //this.currentNode = $get(this.currentNodeId);
};

mainScreen.MenuSelectedNode = function(node) {
    /// <summary>
    /// Loads rendered server control from server
    /// </summary>
    PageMethods.NavigateTo(node, mainScreen.MenuSelectedNodeCallback, mainScreen.MenuSelectedNodeFailed);
};

mainScreen.MenuSelectedNodeCallback = function(result) {
    /// <summary>
    /// Is called when server sent result back
    /// </summary>
    /// <param name="result">
    /// Result of calling server method,
    /// string - server time
    /// </param>
    if (result) {
        window.location = result;
    }
};

mainScreen.MenuSelectedNodeFailed = function(error, userContext, methodName) {
    /// <summary>
    /// Callback function invoked on failure of the page method
    /// </summary>
    /// <param name="error">error object containing error</param>
    /// <param name="userContext">userContext object</param>
    /// <param name="methodName">methodName object</param>
    if (error) {
        // TODO: add your error handling
        //mainScreen.resultDiv.innerHTML = error.get_message();
    }
};

/// --------------------------------------------------
/// Page events processing
/// --------------------------------------------------

//Sys.Application.add_load(applicationLoadHandler);
//Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
//Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandler);

function applicationLoadHandler() {
    /// <summary>
    /// Raised after all scripts have been loaded and
    /// the objects in the application have been created
    /// and initialized.
    /// </summary>
    mainScreen.Init()
}

function endRequestHandler() {
    /// <summary>
    /// Raised before processing of an asynchronous
    /// postback starts and the postback request is
    /// sent to the server.
    /// </summary>

    // TODO: Add your custom processing for event
}

function beginRequestHandler() {
    /// <summary>
    /// Raised after an asynchronous postback is
    /// finished and control has been returned
    /// to the browser.
    /// </summary>

    // TODO: Add your custom processing for event
}

// Kickers "afficher plus/moins"
function expandTopKicker() {
    //var to = document.getElementById("topKickerContent").scrollHeight + 28;
    var to = 1700;
    $("#topKickerContent").animate({ maxHeight: to }, 500);
    setTimeout(function() {
        $("#topKickerExtender").css({ display: "none" });
        $("#topKickerReducer").css({ display: "block" });
    }, 500);
}

function reduceTopKicker() {
    $("#topKickerContent").animate({ maxHeight: 120 }, 500);
    setTimeout(function() {
        $("#topKickerReducer").css({ display: "none" });
        $("#topKickerExtender").css({ display: "block" });
    }, 250);
}

// Gestion des touches "entrée" sur les champs de recherche
function attachKP(field) {
    var champ = document.getElementById(field);
    if (champ.addEventListener)
        champ.addEventListener("keypress", searchFieldKeyPress, true);
    else
        champ.attachEvent("onkeypress", searchFieldKeyPress);
}

function TextBoxKeyPressCreate() {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    switch (KeyID) {
        case 13:
            document.getElementById('ctl00_Content_CreateUser').Click;
            break;
    }
}

function TextBoxKeyPressLogin() {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    switch (KeyID) {
        case 13:
            document.getElementById('ctl00_Content_LoginCtrl_LoginButton').Click;
            break;
    }
}

function displayRow(val) {
    var echeance = document.getElementById("ctl00_Content_echeance");
    var rfvDelay = document.getElementById("ctl00_Content_rfvDelay");

    if (val == 'true') {
        echeance.style.display = 'none';
        ValidatorEnable(rfvDelay, false);
        rfvDelay.style.visibility = 'hidden';
    }
    else {
        echeance.style.display = 'block';
        ValidatorEnable(rfvDelay, true);
        rfvDelay.style.visibility = 'hidden';
    }
}

function displayFoncier(val) {
    var foncier = document.all ? document.all["foncier"] : document.getElementById("foncier");

    if (val == true) {
        foncier.style.display = '';
    }
    else {
        foncier.style.display = 'none';
    }
}
function HideLogoGmap(elementById) {
    try {
        var divMap = document.getElementById(elementById);

        var logoPart1 = divMap.childNodes[1];
        var logoPart2 = divMap.childNodes[2];

        if (logoPart2.firstChild) {
            logoPart2.firstChild.style.display = "none";
        }

        if (logoPart2.childNodes.length >= 2) {
            logoPart2.childNodes[1].style.display = "none";
        }
        
        logoPart1.style.display = "none";
        logoPart2.style.fontSize = "5px";
        logoPart2.style.display = "none";
    }
    catch (err) { }
}

function LimitZoomGmap(map, valMin, valMax) {
    try {
        if (map.getZoom() > valMax)
            map.setZoom(valMax);
        else if (map.getZoom() < valMin)
            map.setZoom(valMin);
    }
    catch (err) { }
}

function CityAboveOnGMap(elementById) {
    try {
        // pour fonctionner la map doit être en G_HYBRID_MAP
        var divMap = document.getElementById(elementById);

        // Accède au div qui affiche les noms et les routes
        var divCible01 = divMap.childNodes[0].childNodes[0].childNodes[1];
        var divCible02 = divMap.childNodes[0].childNodes[0].childNodes[1].childNodes[1];

        divCible01.style.position = 'static'; // pour IE7
        divCible02.style.zIndex = '200';
    }
    catch (err) { }
}

function hideGoogleLogo() {
    if (document.getElementById("logocontrol") != undefined) {
        setTimeout(function() {
            document.getElementById("logocontrol").style.display = "none";
            document.getElementById("logocontrol").nextSibling.style.display = "none";
        }, 500);
    }
}

function toggle_max_notmax(valueMax, idField, idMax, idNotMax) {
    if (document.getElementById(idField).value == valueMax) {
        document.getElementById(idMax).style.display = 'inline';
        document.getElementById(idNotMax).style.display = 'none';
    } else {
        document.getElementById(idMax).style.display = 'none';
        document.getElementById(idNotMax).style.display = 'inline';
    }
}

function fireChangeEvent(control) {
    if (document.all) {
        control.fireEvent("onchange");
    }
    else {
        var clickEvent = window.document.createEvent("HTMLEvents");
        clickEvent.initEvent("change", true, false);
        control.dispatchEvent(clickEvent);
    }
}

function toggle_SLmenu(visible, do_callback) {
    if (visible) {
        if ($get("SilverlightMenu").scrollHeight != 185) {
            $("#SilverlightMenu").css({ height: 185 });
            $(".HeaderMenu").css({ height: 185 });
            if (do_callback != "undefined" && do_callback)
                $get("SilverlightMenu").Content.Page.startSubMenuPainting();
        }
    } else {
        if ($get("SilverlightMenu").scrollHeight != 112) {
            $("#SilverlightMenu").css({ height: 112 });
            $(".HeaderMenu").css({ height: 112 });
        }
    }
}

function toggle_SLmenu_forLogin(visible) {
    if (visible)
        $("#SilverlightMenu").css({ height: 229 });
    else {
        var backvalue = $(".HeaderMenu")[0].scrollHeight;
        $("#SilverlightMenu").css({ height: backvalue });
    }
    //$(".HeaderMenu").css({ height: 112 });
}

function RedirectToPage(page) {
    if (page) {
        window.location = page;
    }
}
function createAccordeon() {
    // Accordeon des elements h6
    var nodes = Array();
    var div = document.getElementById("divMasterBody");
    if (div == null)
        div = document.getElementById("ctl00_divMasterBody");

    var el = div.getElementsByTagName("h6");
    var i;
    for (i = 0; i < el.length; i++) {
        nodes.push(el[i]);
    }
    for (i = 0; i < nodes.length; i++) {
        var n = nodes[i];

        // Copie d'un noeud sans son contenu.
        n.id = "expanded_elem_" + i;
        var clone = document.createElement("h6");
        clone.className = "collapsedPanel";
        clone.id = "collapsed_elem_" + i;
        var t1 = document.createElement("span");
        var t2 = document.createElement("span");
        t1.innerHTML = n.getElementsByTagName("span")[0].innerHTML;
        t2.innerHTML = n.getElementsByTagName("span")[1].innerHTML;
        clone.appendChild(t1);
        clone.appendChild(t2);

        // Ajout du noeud sur le doc
        n.parentNode.insertBefore(clone, n);

        // Ajout de l'expander
        var f;
        eval("f = function() {document.getElementById(\"expanded_elem_" + i + "\").style.display = \"block\";"
                     + "document.getElementById(\"collapsed_elem_" + i + "\").style.display = \"none\";}");
        if (window.addEventListener)
            clone.getElementsByTagName("span")[1].addEventListener("click", f, false);
        else
            clone.getElementsByTagName("span")[1].attachEvent("onclick", f);

        // Ajout du collapser
        eval("f = function() {document.getElementById(\"expanded_elem_" + i + "\").style.display = \"none\";"
                     + "document.getElementById(\"collapsed_elem_" + i + "\").style.display = \"block\";}");
        if (window.addEventListener)
            n.getElementsByTagName("span")[1].addEventListener("click", f, false);
        else
            n.getElementsByTagName("span")[1].attachEvent("onclick", f);

        // Ajout haut de page
        var hdp = document.createElement("div");
        hdp.className = "linkHdp";
        hdp.innerHTML = "<a href=\"#\">&uarr;&nbsp;Haut de page</a>";
        n.appendChild(hdp);

        Cufon.replace("#expanded_elem_" + i + " span", { fontFamily: 'Gotham Book' });
        Cufon.replace("#collapsed_elem_" + i + " span", { fontFamily: 'Gotham Book' });

        // fix lineheight ie7
        if (n.getElementsByTagName("span")[1].scrollHeight < 55) {
            n.getElementsByTagName("span")[1].style.paddingTop = "13px";
            clone.getElementsByTagName("span")[1].style.paddingTop = "13px";
        }
        // Collapse
        if (i == 0)
            clone.style.display = "none";
        else
            n.style.display = "none";
    }
    //if (nodes.length > 0)
    //    Cufon.replace('h6 > span', { fontFamily: 'Gotham Book' });
}

function RunImageCatcher(valuePage) {
    var listImages = new Array();
    var pathImageErrorNorm = "../../Images/photo_non_disponible_150X120.jpg";
    var pathImageErrorBig = "../../Images/photo_non_disponible_300x200.jpg";
    var pathImageErrorDetails = "../../Images/photo_non_disponible_500x375.png";
    var messageError = "Image non disponible";

    imagesArr = document.getElementsByTagName("img");

    for (var i = 0; i < imagesArr.length; i++) {
        var isPossibleForChange = false;
        var pathImageToAssign;
        var currentImage = imagesArr[i];

        //liste de biens
        if (valuePage === 1) {
            if (currentImage.id.match("imgPicFull")) {
                isPossibleForChange = true;
                pathImageToAssign = pathImageErrorBig;
            }
            if (currentImage.id.match("imgPicBase")) {
                isPossibleForChange = true;
                pathImageToAssign = pathImageErrorNorm;
            }
        }

        //page Detail
        if (valuePage === 2) {
            if (currentImage.id.match("imgDetail")) {
                isPossibleForChange = true;
                pathImageToAssign = pathImageErrorDetails;
            }

            if (currentImage.className.match("carousel-img")) {
                isPossibleForChange = true;
                pathImageToAssign = pathImageErrorDetails;
            }
        }

        //page resultPicture.aspx
        if (valuePage === 3) {
            if (currentImage.id.match("ImageCentre")) {
                isPossibleForChange = true;
                pathImageToAssign = pathImageErrorBig;
            }
        }

        if (isPossibleForChange) {
            // Pour Firefox
            if (currentImage.naturalHeight == 0) {
                currentImage.src = pathImageToAssign;
                currentImage.setAttribute("alt", messageError);
            }
            // Pour IE
            if (!currentImage.complete) {
                currentImage.src = pathImageToAssign;
                currentImage.setAttribute("alt", messageError);
            }
        }
    }
}

// Fonction qui permet de parser une url afin de récupérer la valeur de l'argument passé en paramètre
function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}

// Ajoute la classe noprint au div divMasterBody de la MasterPage
function HideTextFromPrinting() {
    var $divMasterBody = $('#divMasterBody');
    var $silverlightScreenshotContainer = $('.silverlightScreenshotContainer');

    if ($divMasterBody && !($divMasterBody.hasClass('noprint'))) {
        $('#divMasterBody').addClass('noprint');
    }
    if ($silverlightScreenshotContainer && !($silverlightScreenshotContainer.hasClass('silverlightShow'))) {
        $('.silverlightScreenshotContainer').addClass('silverlightShow');
    }
}

function ShowTextToPrint() {
    var $divMasterBody = $('#divMasterBody');
    var $silverlightScreenshotContainer = $('.silverlightScreenshotContainer');

    if ($divMasterBody && $divMasterBody.hasClass('noprint')) {
        $('#divMasterBody').removeClass('noprint');
    }
    if ($silverlightScreenshotContainer && $silverlightScreenshotContainer.hasClass('silverlightShow')) {
        $('.silverlightScreenshotContainer').removeClass('silverlightShow');
    }
    
}
function CreateCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 86400000)); // 86400000 = 24 * 60 * 60 * 1000
        expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function ReadCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function EraseCookie(name) {
    CreateCookie(name, "", -1);
}
