﻿// 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 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[0], arrLastSel[1]);
    }
    else if (arrClientID[2] == objStr) {
        SetSelect(arrClientID[0], arrLastSel[2]);
    }
    else if (arrClientID[3] == objStr) {
        SetSelect(arrClientID[0], arrLastSel[3]);
    }
}

function SetPrev() {
    var arrLastSel = GetText(hiddenIDPreviousSelect).split('|');

    SetSelect(arrClientID[0], arrLastSel[0]);
    SetSelect(arrClientID[1], arrLastSel[1]);
    SetSelect(arrClientID[2], arrLastSel[2]);
    SetSelect(arrClientID[3], arrLastSel[3]);
}

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 && obj.length > 0)
        return obj.options[obj.selectedIndex].value;
    else
        return '';
}

function SetSelect(objStr, valStr) {
    var obj = _GetObject(objStr);
    var found = false;

    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;
}

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);
        }
    }
}

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);
            }
        }
    }
}

function doBKPSelect() {
    bkpDep = GetSelect(arrClientID[0]);
    bkpCity = GetSelect(arrClientID[1]);
    bkpCat = GetSelect(arrClientID[2]);
    bkpEns = GetSelect(arrClientID[3]);
}

function setBKPSelect() {
    SetSelect(arrClientID[0], bkpDep);
    SetSelect(arrClientID[1], bkpCity);
    SetSelect(arrClientID[2], bkpCat);
    SetSelect(arrClientID[3], bkpEns);
}

function refreshList(controlClientId, lookupName, filter, baseUrl) {
    if (controlClientId == arrClientID[0]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[1], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[2], 'KDOCategoryAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOEnseigneAjax', filter, baseUrl);

        isRefresh = false;
        setBKPSelect();
    }
    else if (controlClientId == arrClientID[1]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[2], 'KDOCategoryAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOEnseigneAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = false;
    }
    else if (controlClientId == arrClientID[2]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[1], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[3], 'KDOEnseigneAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = false;
    }
    else if (controlClientId == arrClientID[3]) {
        isRefresh = true;
        doBKPSelect();

        load(arrClientID[1], 'KDOCityAjax', filter, baseUrl);
        load(arrClientID[2], 'KDOCategoryAjax', filter, baseUrl);

        setBKPSelect();
        isRefresh = 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 + 'KDODepartmentAjax,' + GetSelect(arrClientID[0]);
                filter = filter + ',KDOCityAjax,' + GetSelect(arrClientID[1]);
                filter = filter + ',KDOCategoryAjax,' + GetSelect(arrClientID[2]);
                filter = filter + ',KDOEnseigneAjax,' + GetSelect(arrClientID[3]);
                filter = filter + ',aTN,' + aTN;
                filter = filter + ',aTypChq,' + aTypChq;
                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 + 'KDODepartmentAjax,' + arrLastSel[0];
                    filter = filter + ',KDOCityAjax,' + arrLastSel[1];
                    filter = filter + ',KDOCategoryAjax,' + arrLastSel[2];
                    filter = filter + ',KDOEnseigneAjax,' + arrLastSel[3];
                }
                else {
                    filter = filter + 'KDODepartmentAjax,';
                    filter = filter + ',KDOCityAjax,';
                    filter = filter + ',KDOCategoryAjax,';
                    filter = filter + ',KDOEnseigneAjax,';
                }

                filter = filter + ',aTN,' + aTN;
                filter = filter + ',aTypChq,' + aTypChq;
                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;
            }
        }
    }
}

// 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