﻿// Requires JQuery
$jQ = jQuery.noConflict();

var supportedLangs = {"":['Default','Default'],"en-gb":['English','Change'],"fr-fr": ['Français ','Changement'], "de-de":['Deutsch','Änderung'],"es-es":['Español','Cambio'],"it-it":['Italiano','Cambiamento']}; //lowercase please
var contactusLangs = {"":['Default','Default'],"en-gb":['Contact us',''],"fr-fr": ['Contactez-nous',''], "de-de":['Mit uns in Verbindung treten',''],"es-es":['Entrarnos en contacto con',''],"it-it":['Metterseli in contatto con','']}; //lowercase please
var legalLangs = {"":['Default','Default'],"en-gb":['Legal Notice',''],"fr-fr": ['Notification légale ',''], "de-de":['Impressum',''],"es-es":['Aviso legal',''],"it-it":['Avviso legale','']}; //lowercase please
var sitemapLangs = {"":['Default','Default'],"en-gb":['Site Map',''],"fr-fr": ['Carte du site',''], "de-de":['Diagramm',''],"es-es":['Mapa de sitio',''],"it-it":['Programma di luogo','']}; //lowercase please

var shortLang = "";
//alert( getLocalizedString(thisLang,"key","defaultvalue") );

//setup our initial language display
$jQ(document).ready(function() {

    jQuery("#newLang").hide();

    var langobj = jQuery("#pageLang")[0];
    var currLangText = jQuery(langobj).html();
    
    var currLang = currLangText.substring(0, currLangText.indexOf(":")).toLowerCase();

    jQuery.cookie("LANG",currLang);

	try {
    		var t = null;
		t = extractLangText( currLang, supportedLangs );
		jQuery(langobj).html(t[0] + ":" + t[1]);
    

    		langobj = jQuery("#legalLinkContainer")[0];
    		t = extractLangText( currLang, legalLangs );
    		jQuery(langobj).html(t[0]);


    		langobj = jQuery("#sitemapLinkContainer")[0];
    		t = extractLangText( currLang, sitemapLangs );
    		jQuery(langobj).html(t[0]);
        
    	} catch(e) {}

	shortLang = getShortLanguage( getLanguage() );
    //alert( shortLang );
 });

function extractLangText(langcode, langarr )
{
    var t = langarr[1];
    var l = getLongLanguage(langcode)

    try {
        t = langarr[l];
        //alert("Setting lang:" + currLang);

    } 
    catch(e) { t = langarr[1];}
    
    return t;
}



//display a widget to select another language
function switchLanguage(def)
{
    jQuery("#pageLang").html("");
    var html = "";
    for(l in supportedLangs)
    {
        html = html + "<option value='" + l + "'>" + supportedLangs[l][0] + "</option>";
    }
    jQuery("#newLang").html(html).show();
}

//switch in the chosen language - may not be content, if so will default to website default
function setLanguage(obj)
{
    //dont need these if location switch
    //jQuery("#pageLang").html( supportedLangs[obj.value][0] + ": " + supportedLangs[obj.value][1]);
    //jQuery(obj).hide();
    $jQ.cookie("LANG",obj.value);
    location.reload(true);
}

function getLanguage()
{
    var myLang = "en-GB";
    try {
        myLang = $jQ.cookie("LANG");
    }
    catch(e) {
    
    }
    return myLang;
}

function getLongLanguage(lang)
{
	var retval = lang;
	if( retval.indexOf("-") == -1)
	{
		retval = retval + "-" + retval;
	}

	return retval;	

}



function getShortLanguage(lang)
{
    var thisLang = "";

    var langcodes=new Array("en", "fr", "es", "de", "it", "default");

    var useragentLanguage=lang; //get this from a cookie from the server, or call serverside function

    for (i=0;i<langcodes.length-1;i++){
	    if (useragentLanguage.substr(0,2)==langcodes[i]){
		    thisLang = langcodes[i];
		    break;
	    }
    }
    if( thisLang =="") { thisLang=langcodes[langcodes.length-1];}


    return thisLang;
}