// $Revision: 1.13 $:
var nlsselect_js_Revision = "$Revision: 1.13 $:";

var DialogFilePrefix = "";

ibiHtmlLangSelect.StringTrim = function ibiHtmlLangSelect_StringTrim()
{
    var TestString = this;
    var SpaceChar  = " ";

    while (TestString.charAt(0) == SpaceChar) 
        TestString = TestString.substr(1);
    while (TestString.charAt(TestString.length-1) == SpaceChar)
        TestString = TestString.substr(0,TestString.length-1);
    return TestString.toString();
};

String.prototype.trim = ibiHtmlLangSelect.StringTrim;

ibiHtmlLangSelect.SetLangCookie = function ibiHtmlLangSelect_SetLangCookie(name, value, expires, path, domain, secure)
{
    var newCookie = name + "=" + escape(value) +
                ( (expires) ? "; expires=" + expires.toGMTString() : "" ) +
                ( (path)    ? "; path="    + path                  : "" ) +
                ( (domain)  ? "; domain="  + domain                : "" ) +
                ( (secure)  ? "; secure"                           : "" );
    document.cookie = newCookie;
};

ibiHtmlLangSelect.GetLangCookie = function ibiHtmlLangSelect_GetLangCookie(name) 
{
    var a = document.cookie.split(';');
    for (var i=0;i < a.length; i++)
    {
        a[i] = a[i].split('=');
        if (a[i][0].trim() == name)
        {
            if(typeof a[i][1] == "undefined")
                return null;
            else
                return unescape(a[i][1]);
        }
    }
    return null;
};

ibiHtmlLangSelect.DeleteCookie = function ibiHtmlLangSelect_DeleteCookie (name,path,domain) 
{
    if (ibiHtmlLangSelect.GetLangCookie(name)) 
    {
      var exp = new Date();
      exp.setTime (exp.getTime() - 1);
      document.cookie = name + "=dummy" +
	     ((path) ? "; path=" + path : "") +
	     "; expires=" + exp.toGMTString();
    }
};
ibiHtmlLangSelect.checkParentAccess = function ibiHtmlLangSelect_checkParentAccess(p) 
{
    var rtn = false;
    if(p == null)
        return rtn;
    try
    {
        if(p.name != null)
            rtn = true;
    }
    catch(Exception)
    {
        rtn = false;
    }
    return rtn;
};
ibiHtmlLangSelect.findWindow = function ibiHtmlLangSelect_findWindow(win) 
{
    if (win == null)
        return null;
    if (typeof win.document.topIBIframe != "undefined" &&
        win.document.topIBIframe == "topIBIframe")
        return win;
    if (ibiHtmlLangSelect.checkParentAccess(win.parent) && win.parent != win)
        return ibiHtmlLangSelect.findWindow(win.parent);
    else
        return win;
};

// get the language from the parameter
ibiHtmlLangSelect.GetLangParam = function ibiHtmlLangSelect_GetLangParam() 
{
    var a = document.location.search.substring(1).split('&');
    if (a.length == 1)
    {
        // get the top IBI window
        var win = ibiHtmlLangSelect.findWindow(window);
        if(win == null)
            win = window;
        a = win.location.search.substring(1).split('&');
    }

    for (var i=0;i < a.length; i++)
    {
        a[i] = a[i].split('=');
        if (a[i][0] == "IBIWF_language")
            return unescape(a[i][1]);
    }
    return null;
};

ibiHtmlLangSelect.SetLangCookieParam = function ibiHtmlLangSelect_SetLangCookieParam(newLanguage)
{
    var sysLanguage;

    ibiHtmlLangSelect.SetLangCookie("IBIWF_language",newLanguage,null,"/"); 
    ibiHtmlLangSelect.DeleteCookie("IBIWF_LANGPERM","/");
    if (document.all)
    {
      if     ( window.clientInformation.systemLanguage == 'de-at' )
           sysLanguage = 'at';
      else if( window.clientInformation.systemLanguage == 'fr-ca' )
           sysLanguage = 'fc';
      else if( window.clientInformation.systemLanguage == 'zh-tw' )
           sysLanguage = 'tw';
      else sysLanguage = window.clientInformation.systemLanguage.substring(0,2);
    }
    else
    {
      if     ( navigator.language == 'de-at' )
           sysLanguage = 'at';
      else if( navigator.language == 'fr-ca' )
           sysLanguage = 'fc';
      else if( navigator.language == 'zh-tw' )
           sysLanguage = 'tw';
      else sysLanguage = navigator.language.substring(0,2);
    }
        
    if (newLanguage != sysLanguage)
    { 
        // you do not need a permanent cookie if it's your system language
        var expdate = new Date ();
        expdate.setTime (expdate.getTime() + (365 * 24 * 60 * 60 * 1000));  // 1 year
        ibiHtmlLangSelect.SetLangCookie("IBIWF_LANGPERM",newLanguage,expdate,"/");
    } 
};

ibiHtmlLangSelect.CheckLanguage = function ibiHtmlLangSelect_CheckLanguage(lang)
{
    lang = lang.toLowerCase();

    // Check to see if the sysLanguage is in the ArrayofLanguage
    if (multiLanguage == 0) // admin option to not have a menu
    {
        if (lang == ArrayofLanguage[0][0])
            return(lang);
    }
    else
    {
        for (var i = 0; i < ArrayofLanguage.length; i++)
        {
            if (lang == ArrayofLanguage[i][0])
                return(lang);
        }
    }
    return(ArrayofLanguage[0][0]);
};

ibiHtmlLangSelect.GetLangCookieParam = function ibiHtmlLangSelect_GetLangCookieParam()
{
    var sysLanguage,currentLanguage;
    if (document.all)
    {
      if     ( window.clientInformation.systemLanguage == 'de-at' )
           sysLanguage = 'at';
      else if( window.clientInformation.systemLanguage == 'fr-ca' )
           sysLanguage = 'fc';
      else if( window.clientInformation.systemLanguage == 'zh-tw' )
           sysLanguage = 'tw';
      else sysLanguage = window.clientInformation.systemLanguage.substring(0,2);
    }
    else
    {
      if     ( navigator.language == 'de-at' )
           sysLanguage = 'at';
      else if( navigator.language == 'fr-ca' )
           sysLanguage = 'fc';
      else if( navigator.language == 'zh-tw' )
           sysLanguage = 'tw';
      else sysLanguage = navigator.language.substring(0,2);
    }
    currentLanguage = ibiHtmlLangSelect.GetLangParam(); // if it's from ?IBIWF_language=
    if (currentLanguage == null) // no parameter
    {
        currentLanguage = ibiHtmlLangSelect.GetLangCookie("IBIWF_language"); // from listbox
        if (currentLanguage == null) // no listbox cookie
        {
            currentLanguage = ibiHtmlLangSelect.GetLangCookie("IBIWF_LANGPERM"); // from Permanent
            if (currentLanguage == null) // Retrieves the default language used by the system.
                currentLanguage = sysLanguage;
        }
    }
    currentLanguage = ibiHtmlLangSelect.CheckLanguage(currentLanguage);
    ibiHtmlLangSelect.SetLangCookie("IBIWF_language",currentLanguage,null,"/"); 
    return currentLanguage;
};

// main function
function ibiHtmlLangSelect() 
{
    var currentLanguage = ibiHtmlLangSelect.GetLangCookieParam();
    if (currentLanguage != 'en')
        DialogFilePrefix = "intl/"+currentLanguage.toUpperCase()+"/"+currentLanguage.toUpperCase();
}

ibiHtmlLangSelect();
