function SetLanguageWithURL(Language) {
    var sUrl = window.location.href;
    if (sUrl.charAt(sUrl.length - 1) == "#") {
        sUrl = sUrl.substring(0, sUrl.length - 1);
    }
    var aUrl = sUrl.split("?");
    if (aUrl[1]) {
        var aQuerystring = aUrl[1].split("&");
        var blang = false;

        for (var i = 0; i < aQuerystring.length; i++) {
            if (aQuerystring[i] == "lang=fr" || aQuerystring[i] == "Lang=fr" || aQuerystring[i] == "language=fr" || aQuerystring[i] == "Language=fr") {
                if (Language == "en") {
                    aQuerystring[i] = "lang=en";
                    blang = true;
                }
            }
            else if (aQuerystring[i] == "lang=en" || aQuerystring[i] == "Lang=en" || aQuerystring[i] == "language=en" || aQuerystring[i] == "Language=en") {
                if (Language == "fr") {
                    aQuerystring[i] = "lang=fr";
                    blang = true;
                }
            }
        }
        aUrl[1] = aQuerystring.join("&");
        if (blang == false) {
            if (Language == "fr") {
                aUrl[1] = aUrl[1] + "&lang=fr";
            }
            else if (Language == "en") {
                aUrl[1] = aUrl[1] + "&lang=en";
            }
        }
        sUrl = aUrl.join("?");
        window.location = sUrl;
    }
    else if (Language == "fr") {
        window.location = aUrl[0] + "?lang=fr";
    }
    else if (Language == "en") {
        window.location = aUrl[0] + "?lang=en";
    }
}

function SetLanguage(Language) {
    var sUrl = window.location.href;
    if (sUrl.charAt(sUrl.length - 1) == "#") {
        sUrl = sUrl.substring(0, sUrl.length - 1);
    }
    var aUrl = sUrl.split("?");
    if (Language == "fr") {
        window.location = aUrl[0] + "?lang=fr";
    }
    else if (Language == "en") {
        window.location = aUrl[0] + "?lang=en";
    }
}

function GetCurrentLanguage() {
    var en_or_fr = "en";

    if (oCurrentLanguage) {
        en_or_fr = oCurrentLanguage;
    }

    return en_or_fr;
}


function ShowMetadata(DSCode, Coords, s) {
    if (oCurrentTheme != "IMF") {
        try {
            var sURLforMetadata = "";

            if (URL_Metadata) {
                var sURL_Metadata = URL_Metadata;
            }
            else {
                var sURL_Metadata = "http://stats.oecd.org/OECDStat_Metadata/ShowMetadata.ashx";
            }

            if (Coords == "" || Coords == "undefined") {
                sURLforMetadata = sURL_Metadata + "?Dataset=" + DSCode + "&Lang=" + GetCurrentLanguage();
            }
            else {
                sURLforMetadata = sURL_Metadata + "?Dataset=" + DSCode + "&Coords=" + Coords + "&Lang=" + GetCurrentLanguage();
            }
            sURLforMetadata += "&backtodotstat=false";
            DialogMetaData.Close();
            window.scrollTo(0, 0);
            DialogMetaData.beginUpdate();
            DialogMetaData.set_contentUrl(sURLforMetadata);
            DialogMetaData.endUpdate();
            DialogMetaData.Show();

        }
        catch (ex) {
            alert("Error in ShowMetadata2(). " + ex.message);
        }
    }
}

function ShowMetadataBV(DSCode, DSName) {
    try {
        var sURLforMetadata = "";

        if (URL_Metadata) {
            var sURL_Metadata = URL_Metadata;
        }
        else {
            var sURL_Metadata = "http://stats.oecd.org/OECDStat_Metadata/ShowMetadata.ashx";
        }

        sURLforMetadata = sURL_Metadata + "?Dataset=" + DSCode + "&Coords=" + '' + "&Lang=" + GetCurrentLanguage() + "&DatasetName=" + DSName;
        sURLforMetadata += "&backtodotstat=false";
        DialogMetaData.Close();
        window.scrollTo(0, 0);
        DialogMetaData.beginUpdate();
        DialogMetaData.set_contentUrl(sURLforMetadata);
        DialogMetaData.endUpdate();
        DialogMetaData.Show();

    }
    catch (ex) {
        alert("Error in Show Metadata With DataSetName. " + ex.message);
    }
}
function DialogClose() {
    document.getElementById("DialogTitle").innerHTML = "";
    Dialog1.beginUpdate();
    Dialog1.set_contentUrl("loading.html");
    Dialog1.endUpdate();
    Dialog1.Close()
}

function DialogQueryManagerClose() {
    document.getElementById("DialogTitle").innerHTML = "";
    DialogQueryManager.beginUpdate();
    DialogQueryManager.set_contentUrl("loading.html");
    DialogQueryManager.endUpdate();
    DialogQueryManager.Close()
}

function OpenModalContact() {
    document.getElementById("DialogTitle").innerHTML = "Contact";
    Dialog1.beginUpdate();
    Dialog1.set_contentUrl("ModalContact.aspx");
    Dialog1.endUpdate();
    Dialog1.Show();
}


function Login() {
    window.location = "./Login.aspx";
}


function Logout() {
    window.location = "./AuthenticatedUser.aspx?login=GUEST";
}

function SaveDimMembersAndUpdateURL(URL) {
    var en_or_fr = GetCurrentLanguage();
    Dialog1.beginUpdate();
    Dialog1.set_contentUrl(URL + "&Random=" + Math.random());
    Dialog1.endUpdate();
    Dialog1.Show();
}

function SaveDimMembersAndOpenURL(URL, DimensionCode, DatasetCode) {
    Dialog1.beginUpdate();
    Dialog1.set_contentUrl(URL + "&Random=" + Math.random());
    Dialog1.endUpdate();
    Dialog1.Show();
}

function OpenQueryManager(URL) {
    var en_or_fr = GetCurrentLanguage();
    DialogQueryManager.beginUpdate();
    DialogQueryManager.set_contentUrl(URL + "&Random=" + Math.random());
    DialogQueryManager.endUpdate();
    DialogQueryManager.Show();
}

function SaveJTDQuery() {
    document.getElementById("DialogTitle").innerHTML = "Save";
    top.SaveDimMembersAndOpenURL("./ModalSave.aspx?JTD=on", "", "");
}

function btnBrowseSavedQueries_ClientClick() {
    document.getElementById("DialogQueryManagerTitle").innerHTML = "My Query Manager";
    var en_or_fr = GetCurrentLanguage();
    if (en_or_fr) {
        if (en_or_fr == "fr") {
            document.getElementById("DialogQueryManagerTitle").innerHTML = "Mon gestionnaire de requetes";
        }
    }
    if (IsBV) {
        top.OpenQueryManager("./ModalQueryManager.aspx?BV=on");
    }
    else {
        top.OpenQueryManager("./ModalQueryManager.aspx?");
    }
}

function OpenSearchResult(ResultIndex) {
    MainCallback.callback("SearchResult&" + ResultIndex);
}

function GlobalSelectDS(DSCode) {
    try {
        ShowDataset(DSCode);
    }
    catch (ex) {
        alert(ex);
    }
}

function UpdateView() {
    DialogClose();
    MainCallback.callback("Update");
}

function UpdateView2() {
    MainCallback.callback("Update");
}

function BlankView() {
    MainCallback.callback("Empty");
}

var g_oStickyNote = null;
function ShowStickyNote(ShowIt, TitleText, HelpPageId) {
    ShowDialogHelp(HelpPageId, 'en');
}


function ShowDialogHelp(HelpPageId, Languages) {
    try {
        var sUrl;
        if (HelpPageId < 9) {
            sUrl = "00" + HelpPageId;
        }
        else if (HelpPageId < 99) {
            sUrl = "0" + HelpPageId;
        }

        var en_or_fr = GetCurrentLanguage();
        if (en_or_fr && oCurrentTheme) {
            if (en_or_fr == "fr") {
                sUrl = "ModalHelp/" + oCurrentTheme + "/Help_" + sUrl + "_FR.htm";
            }
            else {
                sUrl = "ModalHelp/" + oCurrentTheme + "/Help_" + sUrl + "_EN.htm";
            }
        }
        else {
            sUrl = "ModalHelp/OECD/Help_" + sUrl + "_EN.htm";
        }
        DialogHelp.beginUpdate();
        DialogHelp.set_contentUrl(sUrl);
        DialogHelp.endUpdate();
        DialogHelp.Show();
    }
    catch (ex) {
        alert("Error in ShowDialogHelp(): " + ex.message);
    }
}

var wbos_xmlhttp2 = null;
/*@cc_on@*//*@if (@_jscript_version >= 5); try { wbos_xmlhttp2 = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { try { wbos_xmlhttp2 = new ActiveXObject("Microsoft.XMLHTTP") } catch (E) { } }; @else;wbos_xmlhttp2 = false;@end@*/
InitObjects();

function InitObjects() {
    if (!wbos_xmlhttp2) {
        try {
            wbos_xmlhttp2 = new XMLHttpRequest();
        }
        catch (e)
			{ }
    }
}

var oEventToRaise = null;
var oTagToFill = null;
function SetTag(sTagID) {
    if (sTagID != "")
        oTagToFill = document.getElementById(sTagID);
}

function AJAX_ASync(URL, TagIDToFill, Param, EventToRaise) {
    if (wbos_xmlhttp2) {
        if (TagIDToFill && !oTagToFill)
            SetTag(TagIDToFill);

        oEventToRaise = EventToRaise;

        wbos_xmlhttp2.open("POST", URL, true);
        wbos_xmlhttp2.onreadystatechange = ReceiveHTML;
        wbos_xmlhttp2.send(Param);
    }
}

function AJAX_Sync(URL, Param, RequestHeaderValue) {
    var sResponse = "";
    if (wbos_xmlhttp2) {
        wbos_xmlhttp2.open("POST", URL, false);

        //Opera needs this...
        //wbos_xmlhttp2.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );

        if (RequestHeaderValue != null)
            wbos_xmlhttp2.setRequestHeader("RequestHeaderVariable", RequestHeaderValue);

        wbos_xmlhttp2.send(Param);
        sResponse = wbos_xmlhttp2.responseText;
    }
    return sResponse;
}

function ReceiveHTML() {
    if (wbos_xmlhttp2.readyState == 4) {
        try {
            var sResponse = wbos_xmlhttp2.responseText;
            if (oTagToFill)
                oTagToFill.innerHTML = sResponse;

            if (oEventToRaise)
                oEventToRaise(sResponse);
        }
        catch (ex) {
            alert(ex.message);
        }
    }
}
	