var texts = {
    textGlobalNavigationTranslateLanguage: "en",
    textTranslateToolIntroduction: "Use Google to translate the web site. We take no responsibility for the accuracy of the translation.",
    textTranslateToolDropDown: "Select language",
    textClose: "Close"
};

$.fn.handleTranslate = function () {
    var link = $(this);
    var div = link.parent("div");
    var translateDiv = $(document.createElement("div")).addClass("translate");
    var oldIE = $.browser.msie && $.browser.version < 8;
    
    $(this).toggle(
    	//this function shows the Google translate window
    	function () {
	    	if (div.find(".translate").size() === 0) {
	           	var createGoogleTranslateWindow = function () {
	               
	            	//Create the Google translate image
	            	var imgUrl = "/images/18.7eaaf024126b190abb38000538/google-translate.png";
	                var imgAlt = "Google";
	                var img = $(document.createElement("img"));
	                img.attr("src", imgUrl);
	                img.attr("alt", imgAlt);
	               
	                //Create the close link
	                var closeLink = $(document.createElement("a"));
	                closeLink.addClass("close");
	                closeLink.attr("href", "#");
	                closeLink.click(function () {
	                    link.trigger("click");
	                    return false;
	                });
	                
	                // Create information text
	                var p1 = $(document.createElement("p")).addClass("modulxbrodtext");
	                p1.text(texts.textTranslateToolIntroduction);
	                
	                // Create label for the dropdown-list
	                var p2 = $(document.createElement("p"));
	                var label = $(document.createElement("label")).addClass("modulxbrodtext");
	                label.text(texts.textTranslateToolDropDown);
	                label.attr("for", "translateSelect");
	                
	                // Create the dropdown-list and its options
	                var select = $(document.createElement("select")).addClass("modulxbrodtext");
	                select.attr("id", "translateSelect");
	                var option = $(document.createElement("option"));
	                option.val("-1");
	                option.text(texts.textTranslateToolDropDown);
	                select.append(option);
	                
	                // Iterates over all google translate languages, checks the translatable
	                // status of the language and adds the language to options
	                for (var i in google.language.Languages) {
	                    if (i !== "UNKNOWN" && google.language.isTranslatable(google.language.Languages[i])) {
	                        var options = $(document.createElement("option"));
	                        options.val(google.language.Languages[i]);
	                        options.text(capitalize(i.replace("_", " ")));
	                        select.append(options);
	                    }
	                }
	                
	                // adds a change event to the dropdown-list
	                // which directs the browser to google translate
	                select.change(function () {
	                    var lang = select.find("option:selected").attr("value");
						var url = 'http://translate.google.com/translate?hl='+lang+'&tl='+lang+'&sl=sv&u='+escape(document.location.href);
						document.location.href = url;
	                
	                });
	                p2.append(label);
	                p2.append(select);
	                translateDiv.prepend(p2);
	                translateDiv.prepend(p1);
	                translateDiv.prepend(img);
	                translateDiv.prepend(closeLink);
	                translateDiv.addClass("active");
	                if (oldIE) {
	                  $(".translatemeny").css("z-index", "-1");
	                }
	                 div.append(translateDiv);
	                return false;
	            };
	            
	            // Fetch the Google Translation JS API and calls the 
	            // createGoogleTranslateWindow function
	            $.getScript('http://www.google.com/jsapi?', function () {
	                google.load('language', '1', {
	                    'callback': createGoogleTranslateWindow
	                });
	            });
	    	//if the google translate window already exist just change to class active
	    	} else {
	        	translateDiv.addClass("active");
	            if (oldIE) {
	                  $(".translatemeny").css("z-index", "-1");
	            }
	        }
	    },
	    //this function hides the Google translate window
	    function () {
	    	translateDiv.removeClass("active");
	    	if (oldIE) {
	    		$(".translatemeny").css("z-index", "1");
	    	}
	    	return false;
	    }
	);
	return this;
};

$(document).ready(function () {
    if (!$.browser.msie || ($.browser.msie && $.browser.version > 5.5)) {
    	$("#translate a").handleTranslate();
    }
});

function capitalize(str) {
	var tmpStr = str.toLowerCase();
	return tmpStr.substring(0,1).toUpperCase()+tmpStr.substring(1,str.length);
}