﻿// JScript File
function ShowHideElement(id) {
    if ((document.getElementById(id + "_menu") != null) && (document.getElementById(id + "_Nav") != null) && (document.getElementById(id + "_Nav_Corner") != null) && (document.getElementById(id + "_Nav_Link") != null)) {
        var elementDiv = document.getElementById(id + "_menu");
        var elementNav = document.getElementById(id + "_Nav");
        var elementNavCorner = document.getElementById(id + "_Nav_Corner");
        var elementNavLink = document.getElementById(id + "_Nav_Link");

        if (elementDiv.style.display == 'none') {
            elementDiv.style.display = 'block';
            elementNav.className = 'Nav_on_left';
            elementNavCorner.className = 'Nav_Corner_on';
            elementNavLink.className = 'NavLeftOn';
        }
        else {
            elementDiv.style.display = 'none';
            elementNav.className = 'Nav_off_left';
            elementNavCorner.className = 'Nav_Corner_off';
            elementNavLink.className = 'NavLeftOff'
        }
    }
}

function getHTTPObject() {
    var xmlhttp = false;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e) {
            xmlhttp = false;
        }
    }

    if (xmlhttp) {
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    alert(xmlhttp.responseText);
                }
            }
        }
    }
    return xmlhttp;
}

function sendData(url) {
    var xmlhttp = getHTTPObject();
    if (!xmlhttp) {
        return false;
    }
    xmlhttp.open("POST", url, true);
    xmlhttp.send(data);
    return true;
}

/****************************************************************/
// Fonctions utilisées dans la classe AjaxDropDownList
// du projet Accor.AccorServices.Utilities, que l'on externalise 
// ici.
// Alexandre NGUYEN ALSY 25/11/2009
/****************************************************************/

var delimiter = '|';
var isRefresh = false;
var bkpSiteWeb = false;
var bkpCountry = '';
var bkpDep = '';
var bkpCity = '';
var bkpCat = '';
var bkpEns = '';

function GetText(objStr) {
    var obj = _GetObject(objStr);
    return obj.value;
}

function SetPreviousSelection(objStr) {
    var arrLastSel = GetText(hiddenIDPreviousSelect).split('|');

    if (arrClientID[0] == objStr) {
        SetSelect(arrClientID[0], arrLastSel[0]);
    }
    else if (arrClientID[1] == objStr) {
        SetSelect(arrClientID[1], arrLastSel[1]);
    }
    else if (arrClientID[2] == objStr) {
        SetSelect(arrClientID[2], arrLastSel[2]);
    }
    else if (arrClientID[3] == objStr) {
        SetSelect(arrClientID[3], arrLastSel[3]);
    }
    else if (arrClientID[4] == objStr) {
        SetSelect(arrClientID[4], arrLastSel[4]);
    }
    else if (arrClientID[5] == objStr) {
        SetSelect(arrClientID[5], arrLastSel[5]);
    }
}

function SetPrev() {
    var arrLastSel = GetText(hiddenIDPreviousSelect).split('|');

    //set the value of checkbox site web and disable lists if checked
    SetSelect(arrClientID[5], arrLastSel[5]);
    DisableListsIfSiteWeb(arrLastSel[5]);


    // set the value of country and disable dpt list if not france
    if (!arrLastSel[5]) {

        if (isRefresh == false) {
            // on selectionne la france par défaut
            SetSelect(arrClientID[0], "0");
        }
        else {
            SetSelect(arrClientID[0], arrLastSel[0]);
        }
        if (arrLastSel[0] == "0" || arrLastSel[0] == "")
            DisableItem(arrClientID[1], false);
        else
            DisableItem(arrClientID[1], true);

        SetSelect(arrClientID[1], arrLastSel[1]);
        SetSelect(arrClientID[2], arrLastSel[2]);
    }
    SetSelect(arrClientID[3], arrLastSel[3]);
    SetSelect(arrClientID[4], arrLastSel[4]);
}

function RemplaceString(string, text, by, cs) {
    // Replaces text with by in string : cs == Case Sensitive
    if ((string.length == 0) || (text.length == 0))
        return string;

    var opt = '';

    if (!(cs))
        opt = 'gi';
    else
        opt = 'g';

    return string.replace(new RegExp(text, opt), by);
}

function _GetObject(objStr) {
    var obj;

    try {
        obj = document.getElementById(objStr);
    }
    catch (e) { }

    return obj;
}

function GetSelect(objStr) {
    var obj = _GetObject(objStr);

    if (obj != null) {
        if (objStr == arrClientID[5]) {
            return obj.checked;
        }
        else if (obj.length > 0) {
            return obj.options[obj.selectedIndex].value;
        }
    }
    else
        return '';
}

function SetSelect(objStr, valStr) {
    var obj = _GetObject(objStr);
    var found = false;

    if (objStr != arrClientID[5]) {
        for (i = 0; i < obj.length; i++) {
            if (obj.options[i].value == valStr) {
                obj.options[i].selected = true;
                found = true;
                break;
            }
        }
        if (!found)
            obj.selectedIndex = 0;
    }
    else {
        obj.checked = valStr;
    }
}

function getXMLHTTP() {
    var A = null;

    try {
        A = new ActiveXObject('Msxml2.XMLHTTP');
    }
    catch (e) {
        try {
            A = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch (oc) {
            A = null;
        }
    }
    if (!A && typeof XMLHttpRequest != 'undefined') {
        A = new XMLHttpRequest();
    }

    return A;
}

function load(controlClientId, lookupName, filter, baseUrl) {
    var xmlHttp;
    var requestUrl = baseUrl + '?id=' + lookupName;

    if (filter != undefined && filter != '') {
        requestUrl += '&filter=' + filter;
    }

    xmlHttp = getXMLHTTP();

    if (xmlHttp) {
        xmlHttp.open('GET', requestUrl, false);
        xmlHttp.send(null);
        doReadyStateChangeFillObject(controlClientId, xmlHttp);
        xmlHttp = null;
    }
}

function doReadyStateChangeFillObject(controlClientId, xmlHttp) {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            var s = xmlHttp.responseText;
            s = s.substring(0, s.indexOf(']') + 1);
            var d = eval(s);

            if (d != null) {
                populateList(controlClientId, d);
            }
        }
        else {
            alert('There was a problem retrieving the data:' + xmlHttp.statusText);
        }
    }
}


// LOAD CHECKBOX AJAX - ADAVID - 15/11/2010

function loadcb(controlClientId, lookupName, filter, baseUrl) {
    var xmlHttp;
    var requestUrl = baseUrl;

    if (filter != undefined && filter != '') {
        requestUrl += '?filter=' + filter;
    }

    xmlHttp = getXMLHTTP();

    if (xmlHttp) {
        xmlHttp.open('GET', requestUrl, false);
        xmlHttp.send(null);
        doReadyStateChangeFillObjectcb(controlClientId, xmlHttp);
        xmlHttp = null;
    }
}

// CHECKBOX AJAX - ADAVID - 15/11/2010

function doReadyStateChangeFillObjectcb(controlClientId, xmlHttp) {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            var oSelect = _GetObject(controlClientId);
            if (isRefresh == false) {
                if (oSelect.fireEvent) {
                    oSelect.fireEvent('onclick');
                }
                else if (oSelect.dispatchEvent) {
                    var oEvent = document.createEvent('HTMLEvents');
                    oEvent.initEvent('change', true, true);
                    oSelect.dispatchEvent(oEvent);
                }
            }
        }
        else {
            alert('There was a problem retrieving the data:' + xmlHttp.statusText);
        }
    }
}

function populateList(controlClientId, namevalue) {
    var oSelect = _GetObject(controlClientId);

    if (oSelect != null) {
        var content = '';

        for (var i = oSelect.length - 1; i >= 0; i--) {
            oSelect.options[i] = null;
        }

        for (var i = 0; i < namevalue.length; i++) {
            if (namevalue[i].value == undefined) {
                oSelect.options[oSelect.length] = new Option(namevalue[i].name);
                content += namevalue[i].name + delimiter + namevalue[i].name + delimiter;
            }
            else {
                opt = new Option(namevalue[i].name, namevalue[i].value);
                oSelect.options[oSelect.length] = opt;
                content += namevalue[i].name + delimiter + namevalue[i].value + delimiter;
            }
        }

        if (content.substr(content.length - 1, 1) == delimiter) {
            content = content.substr(0, content.length - 1);
        }

        if (oHidden = _GetObject(self.hiddenId)) {
            oHidden.value = content;
        }

        if (oSelect.selectedIndex > -1 && isRefresh == false) {
            if (oSelect.fireEvent) {
                oSelect.fireEvent('onchange');
            }
            else if (oSelect.dispatchEvent) {
                var oEvent = document.createEvent('HTMLEvents');
                oEvent.initEvent('change', true, true);
                oSelect.dispatchEvent(oEvent);
            }
        }

        if (controlClientId == arrClientID[1]) {
            if (bkpCountry == "0" || bkpCountry == "")
                oSelect.disabled = false;
            else
                oSelect.disabled = true;
        }
    }
}

function doBKPSelect() {
    bkpCountry = GetSelect(arrClientID[0]);
    bkpDep = GetSelect(arrClientID[1]);
    bkpCity = GetSelect(arrClientID[2]);
    bkpCat = GetSelect(arrClientID[3]);
    bkpEns = GetSelect(arrClientID[4]);
    bkpSiteWeb = GetSelect(arrClientID[5]);
}

function setBKPSelect() {
    SetSelect(arrClientID[0], bkpCountry);
    SetSelect(arrClientID[1], bkpDep);
    SetSelect(arrClientID[2], bkpCity);
    SetSelect(arrClientID[3], bkpCat);
    SetSelect(arrClientID[4], bkpEns);
    SetSelect(arrClientID[5], bkpSiteWeb);
}

function refreshList(controlClientId, lookupName, filter, baseUrl) {
    if (controlClientId == arrClientID[0]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[1], 'KDODepartmentAjax', filter, baseUrl);
        load(arrClientID[2], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOCategoryAjax', filter, baseUrl);
        load(arrClientID[4], 'KDOEnseigneAjax', filter, baseUrl);

        isRefresh = false;
        setBKPSelect();
    }
    else if (controlClientId == arrClientID[1]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[2], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOCategoryAjax', filter, baseUrl);
        load(arrClientID[4], 'KDOEnseigneAjax', filter, baseUrl);

        isRefresh = false;
        setBKPSelect();
    }
    else if (controlClientId == arrClientID[2]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[3], 'KDOCategoryAjax', filter, baseUrl);
        load(arrClientID[4], 'KDOEnseigneAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = false;
    }
    else if (controlClientId == arrClientID[3]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[2], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[4], 'KDOEnseigneAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = false;
    }
    else if (controlClientId == arrClientID[4]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[2], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOCategoryAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = false;
    }
    else if (controlClientId == arrClientID[5]) {
        isRefresh = true;
        doBKPSelect();

        DisableListsIfSiteWeb(bkpSiteWeb);

        load(arrClientID[3], 'KDOCategoryAjax', filter, baseUrl);
        // load(arrClientID[4], 'KDOEnseigneAjax', filter, baseUrl);

        isRefresh = false;
        setBKPSelect();
    }
}

// Disable country - Dpt - City if siteweb is checked - ADAVID 17/11/2010
function DisableListsIfSiteWeb(bolSiteWeb) {
    if (DisableItem(arrClientID[0], bolSiteWeb)) {
        SetSelect(arrClientID[0], "-"); bkpCountry = "";
    }
    if (DisableItem(arrClientID[1], bolSiteWeb)) {
        SetSelect(arrClientID[1], "-"); bkpDep = "";
    }
    if (DisableItem(arrClientID[2], bolSiteWeb)) {
        SetSelect(arrClientID[2], "-"); bkpCity = "";
    }
    if (DisableItem(arrClientID[4], bolSiteWeb)) {
        SetSelect(arrClientID[4], "-"); bkpEns = "";
    }
}

// Generic method to disable item with his ID - ADAVID - 17/11/2010
function DisableItem(itemID, bolDisable) {
    var oSelect = _GetObject(itemID);
    if (oSelect != null) {
        oSelect.disabled = bolDisable;
        return true;
    }
    else {
        return false;
    }
}

function AjaxDropDownController(controlClientId, lookupName, baseUrl) {
    var self = this;
    this.init = init;
    this.notify = notify;
    this.controlClientId = controlClientId;
    this.baseUrl = baseUrl;

    function notify() {
        if (isRefresh == false) {
            var filter = '';

            if (arrClientID != null && arrClientID.length > 0) {
                filter = filter + 'KDOCountryAjax,' + GetSelect(arrClientID[0]);
                filter = filter + ',KDODepartmentAjax,' + GetSelect(arrClientID[1]);
                filter = filter + ',KDOCityAjax,' + GetSelect(arrClientID[2]);
                filter = filter + ',KDOCategoryAjax,' + GetSelect(arrClientID[3]);
                filter = filter + ',KDOEnseigneAjax,' + GetSelect(arrClientID[4]);
                filter = filter + ',KDOSiteWebAjax,' + GetSelect(arrClientID[5]);
                filter = filter + ',aTN,' + aTN;
                filter = filter + ',aTypChq,' + aTypChq;
                filter = filter + ',aDBSQLCountry,' + aDBSQLCountry;
                filter = filter + ',aDBSQLDep,' + aDBSQLDep;
                filter = filter + ',aDBSQLCity,' + aDBSQLCity;
                filter = filter + ',aDBSQLCatChq,' + aDBSQLCatChq;
                filter = filter + ',aDBSQLEnseigne,' + aDBSQLEnseigne;
                filter = filter + ',aDBSQLSortBy,' + aDBSQLSortBy;
            }
            refreshList(controlClientId, lookupName, filter, baseUrl);
        }
    }

    function init() {
        var oSelect = _GetObject(controlClientId);

        if (oSelect != null) {
            if (oSelect.options.length == 0) {
                var filter = '';
                var aList = GetText(hiddenIDPreviousSelect);

                if (aList.length > 0) {
                    var arrLastSel = aList.split('|');
                    filter = filter + 'KDOCountryAjax,' + arrLastSel[0];
                    filter = filter + ',KDODepartmentAjax,' + arrLastSel[1];
                    filter = filter + ',KDOCityAjax,' + arrLastSel[2];
                    filter = filter + ',KDOCategoryAjax,' + arrLastSel[3];
                    filter = filter + ',KDOEnseigneAjax,' + arrLastSel[4];
                    filter = filter + ',KDOSiteWebAjax,' + arrLastSel[5];
                }
                else {
                    filter = filter + 'KDOCountryAjax,';
                    filter = filter + ',KDODepartmentAjax,';
                    filter = filter + ',KDOCityAjax,';
                    filter = filter + ',KDOCategoryAjax,';
                    filter = filter + ',KDOEnseigneAjax,';
                    filter = filter + ',KDOSiteWebAjax,';
                }

                filter = filter + ',aTN,' + aTN;
                filter = filter + ',aTypChq,' + aTypChq;
                filter = filter + ',aDBSQLCountry,' + aDBSQLCountry;
                filter = filter + ',aDBSQLDep,' + aDBSQLDep;
                filter = filter + ',aDBSQLCity,' + aDBSQLCity;
                filter = filter + ',aDBSQLCatChq,' + aDBSQLCatChq;
                filter = filter + ',aDBSQLEnseigne,' + aDBSQLEnseigne;
                filter = filter + ',aDBSQLSortBy,' + aDBSQLSortBy;
                load(controlClientId, lookupName, filter, baseUrl);
            }
            if (oSelect.attachEvent) {
                oSelect.attachEvent('onchange', notify);
            }
            else if (oSelect.addEventListener) {
                oSelect.addEventListener('change', notify, false);
            }
            else {
                oSelect.onchange = notify;
            }
        }
    }
}

//CHECKBOX AJAX  - ADAVID - 15/11/2010

function AjaxCheckBoxController(controlClientId, lookupName, baseUrl) {
    var self = this;
    this.init = init;
    this.notify = notify;
    this.controlClientId = controlClientId;
    this.baseUrl = baseUrl;

    function notify() {
        if (isRefresh == false) {
            var filter = '';

            if (arrClientID != null && arrClientID.length > 0) {
                filter = filter + 'KDOCountryAjax,' + GetSelect(arrClientID[0]);
                filter = filter + ',KDODepartmentAjax,' + GetSelect(arrClientID[1]);
                filter = filter + ',KDOCityAjax,' + GetSelect(arrClientID[2]);
                filter = filter + ',KDOCategoryAjax,' + GetSelect(arrClientID[3]);
                filter = filter + ',KDOEnseigneAjax,' + GetSelect(arrClientID[4]);
                filter = filter + ',KDOSiteWebAjax,' + GetSelect(arrClientID[5]);
                filter = filter + ',aTN,' + aTN;
                filter = filter + ',aTypChq,' + aTypChq;
                filter = filter + ',aDBSQLCountry,' + aDBSQLCountry;
                filter = filter + ',aDBSQLDep,' + aDBSQLDep;
                filter = filter + ',aDBSQLCity,' + aDBSQLCity;
                filter = filter + ',aDBSQLCatChq,' + aDBSQLCatChq;
                filter = filter + ',aDBSQLEnseigne,' + aDBSQLEnseigne;
                filter = filter + ',aDBSQLSortBy,' + aDBSQLSortBy;
            }
            refreshList(controlClientId, lookupName, filter, baseUrl);
        }
    }

    function init() {
        var oSelect = _GetObject(controlClientId);

        if (oSelect != null) {
            var filter = '';
            var aList = GetText(hiddenIDPreviousSelect);

            if (aList.length > 0) {

                var arrLastSel = aList.split('|');
                filter = filter + 'KDOCountryAjax,' + arrLastSel[0];
                filter = filter + ',KDODepartmentAjax,' + arrLastSel[1];
                filter = filter + ',KDOCityAjax,' + arrLastSel[2];
                filter = filter + ',KDOCategoryAjax,' + arrLastSel[3];
                filter = filter + ',KDOEnseigneAjax,' + arrLastSel[4];
                filter = filter + ',KDOSiteWebAjax,' + arrLastSel[5];
            }
            else {
                filter = filter + 'KDOCountryAjax,';
                filter = filter + ',KDODepartmentAjax,';
                filter = filter + ',KDOCityAjax,';
                filter = filter + ',KDOCategoryAjax,';
                filter = filter + ',KDOEnseigneAjax,';
                filter = filter + ',KDOSiteWebAjax,';
            }

            filter = filter + ',aTN,' + aTN;
            filter = filter + ',aTypChq,' + aTypChq;
            filter = filter + ',aDBSQLCountry,' + aDBSQLCountry;
            filter = filter + ',aDBSQLDep,' + aDBSQLDep;
            filter = filter + ',aDBSQLCity,' + aDBSQLCity;
            filter = filter + ',aDBSQLCatChq,' + aDBSQLCatChq;
            filter = filter + ',aDBSQLEnseigne,' + aDBSQLEnseigne;
            filter = filter + ',aDBSQLSortBy,' + aDBSQLSortBy;

            loadcb(controlClientId, lookupName, filter, baseUrl);

            if (oSelect.attachEvent) {
                oSelect.attachEvent('onclick', notify);
            }
            else if (oSelect.addEventListener) {
                oSelect.addEventListener('change', notify, false);
            }
            else {
                oSelect.onclick = notify;
            }
        }
    }
}

// To use in masterpage use this syntax in the <head>:
//  	<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>
//   	<script type="text/javascript" src="/_catalogs/masterpage/custom_activex_override.js"></script>
function ProcessDefaultOnLoad(onLoadFunctionNames) { ProcessPNGImages(); UpdateAccessibilityUI(); for (var i = 0; i < onLoadFunctionNames.length; i++) { var expr = "if(typeof(" + onLoadFunctionNames[i] + ")=='function'){" + onLoadFunctionNames[i] + "();}"; eval(expr); } if (typeof (_spUseDefaultFocus) != "undefined") DefaultFocus(); }

//Functions added by Alexandre NGUYEN 15/01/2010

//This function is used to hide/show a textbox control under a dropdownlist for the WebPart WP_ContactUs
function CheckOtherChoice(id, value) {
    //alert(id);
    var selObj = document.getElementById(id);
    var selIndex = selObj.selectedIndex;
    var selection = selObj.options[selObj.selectedIndex].value;
    //alert(selection);

    if (selection == value) {
        selObj.nextSibling.nextSibling.style.display = 'block';
    }
    else {
        selObj.nextSibling.nextSibling.style.display = 'none';
    }
}

//This function is used to validate RequiredFieldValidator on webpart WP_ContactUS
function validateTextBox1(src, args) {
    //If browser agent is IE
    if (navigator.appName == "Microsoft Internet Explorer") {
        if (src.parentNode.previousSibling.children[2].style.display == 'block') {
            if (args.Value == "") {
                args.IsValid = false;
            }
            else {
                args.IsValid = true;
            }
        }
    }
    else {
        if (src.parentNode.previousSibling.previousSibling.children[2].style.display == 'block') {
            if (args.Value == "") {
                args.IsValid = false;
            }
            else {
                args.IsValid = true;
            }
        }
    }
}

//End functions added by Alexandre NGUYEN 19/01/2010
