$(document).ready(function() {
    applyEvents();
});

//Language global variables

function displayTextLoader(loaderId) {
	if (!loaderId) {
        loaderId = "#loader";
    }
	$(loaderId).removeClass('display-none');
}

function hideLoader(loaderId) {
    if (loaderId) {
        $(loaderId).addClass('display-none');
    } else {
        $(currentLoader).addClass('display-none');
    }
}

function toogleTranslate(elem){
	$('#translatenavwrap').slideDown(500);
}

function handleTranslate() {
	displayTextLoader('#translationloader');
  	$('body').translate($.cookie("tm_language"), {
            not: 'select, #translate, #translatewrap, #translateinfo, #translatenav, .ui-selectmenu, .ui-selectmenu-status, .jq-translate-ui',
            replace: true,
            onTimeout: function() { hideLoader('#translationloader'); },
            complete: function() { hideLoader('#translationloader'); $('#translateinfo').removeClass('display-none'), $('#resetbutton').removeClass('display-none'); toogleTranslate();},
            error: function() { hideLoader('#translationloader'); }
        })
}

function reset() {
	$.cookie("tm_language", null);
    location.reload();
}

function initTranslate(){
	$('<div id="translatewrap"><div id="translatenavwrap" class="display-none"><div id="translationloader" class="display-none">Translating ...</div><div id="translateinfo" class="display-none">This page has been automatically translated using Google Translate.</div><div id="navwrap"><div id="selectlanguage">Select language: </div><div id="translatenav"></div><div id="resetbutton" class="display-none">Reset</div></div></div></div>').prependTo('body');
	
	
	$("#resetbutton").button().live('click', function(event) { event.preventDefault(); reset(); return false; });
	
	$('#translatenav').empty();
        
	$.translate(function() {
		$.translate().ui('select', 'option')
		.change(function() { //when selecting another language
              $.cookie("tm_language", $.translate().toLanguageCode($(this).val()));
              handleTranslate();
          })
          .val($.cookie("tm_language"))
          .appendTo('#translatenav')
          .selectmenu({width: 200});
	});
	
	if($.cookie("tm_language")){
		handleTranslate();
	}

}

function applyEvents() {
    if (document.getElementById && document.getElementsByTagName) {
    	
    	initTranslate();
        $("a#translate").live('click', function(event) { event.preventDefault(); toogleTranslate($(this)); return false; });
		
    }
}
