var defaultLanguage = "en-US";
var currentLanguage = defaultLanguage;
var language = defaultLanguage;
var googleReady = false;
var jQueryReady = false;
var preloader;

// this is where the google code would go not in the navigation.js

function gotoPage(page){

	var langSelect = trimToNull($(".goog-te-combo option:selected").val());
	window.location = page + "?lang=" + langSelect

}

function changeLanguage(){
	var langSelect = trimToNull($(".goog-te-combo option:selected").val());
	//if(langSelect == "en-US")window.location.reload();
	//else checkStatus($('#translate'), langSelect);
	//else
	window.location = window.location.pathname + (cp!="home" ? "#" + cp : "") + "?lang=" + langSelect;
	if(window.location.href.indexOf("#")>-1)window.location.reload();
}

function checkStatus(node, targetLanguage){
	if(!jQueryReady || !googleReady)return;
	translate(node, targetLanguage);
}

function translate(element, targetLanguage){

	try{

		var langSelect = trimToNull($(".goog-te-combo option:selected").val());

		var selectedLanguage = !isNull(langSelect) ?  langSelect : defaultLanguage;

		language = window.navigator.userLanguage || window.navigator.language;

		if(!isNull(selectedLanguage)){
			language = selectedLanguage;
		}

		//language = "hu";
		//console.log(language); //works IE/SAFARI/CHROME/FF

		if(language==defaultLanguage && language == currentLanguage)return;

		if(trimToNull(language)!=null){

			//show preloader
			//preloader.dialog('open');
			//TODO: set the lang query argument to the selected value from the language select control


			var timeout;

			var nodes = $("> *", element);

		    nodes.each(function(index, node) {

		    	translateNode(node, targetLanguage);

		    });

		}

	}catch(e){

		log(e.message);

	}
}

var translateRequests = 0;
var translateResponses = 0;

function translateNode(node, targetLanguage){

	if($(node).html().length > 1000){

    	$("> *", node).each(function(index, child){

    		translateNode(child);

    	});

	}else{

		translateRequests++;

		var translateMe = $(node).html();

	    jQuery.ajax({
	        url: 'http://ajax.googleapis.com/ajax/services/language/translate',
	        dataType: 'jsonp',
	        data: {
	            q : '' + translateMe,
	            v: '1.0',
	            //langpair: (targetLanguage ? targetLanguage : defaultLanguage) + '|' + language
	            langpair: defaultLanguage + '|' + language
	        },
	        success: function(response) {

	        	translateResponses++;

	            if (response.responseStatus != 200) {
	                return false;
	            }

	            var result = {
	                translation: response.responseData.translatedText || '',
	                source:      translateMe || ''
	            };

	            if (result.translation.length > 0) {
	            	jQuery(node).html(result.translation); // for spans/divs
	            } else {
	            	//if(console)console.log('Error with the translation service. No Content.');
	            }


	            //if(console)console.log("translateRequests = " + translateRequests + ", translateResponses = " + translateResponses);

	            //hide preloader


	        },
	        error: function(jqXHR, textStatus, errorThrown){

	        	//if(console)console.log("translateNode: error ::" + errorThrown);

	        },

	        complete: function(jqXHR, textStatus){
	        	//console.log("complete");
	            if(translateRequests==translateResponses){

	            	translateRequests = 0;
	            	translateResponses = 0;

	            	//preloader.dialog('close');

	            	currentLanguage = language;

	            }
	        }

	      });

	    if(translateRequests==0){
        	translateRequests = 0;
        	translateResponses = 0;

	    }

	    currentLanguage = language;
	}

}

function transformHrefs(element){
	//create a call that transforms all a href's on the page to jQuery address calls
	$("a", element).each(function(index, element){
		var lookHref = $(element).attr("href");
		if(lookHref.indexOf("content/") > -1 && lookHref.indexOf(".html") > -1){
			var newHref = lookHref.replace("content/", "#" );
			newHref = newHref.replace(".html", "" );
			$(element).attr("href", newHref);
		}
	});	
}

function init(){

	jQueryReady = true;

	preloader = $("#preloader-container").dialog({
			autoOpen:false,
			draggable:false,
			width:400,
			height:130,
			resizeable:false,
			closeOnEscape:false,
			open: function(event,ui){$(".ui-dialog-titlebar-close").hide();},
			position: ['center', 300],
			modal:true,
			dialogClass:'preloader-container',
			title:'Translating Content'
	});

	google.load("language", "1", {"callback":function(){
		googleReady = true;
		var vars = getUrlVars();

		//add one line below to set "currentLanguage" to the value of the lang query argument
		if(vars.lang)currentLanguage = vars.lang.indexOf("#") > -1 ? vars.lang.substr(0, vars.lang.indexOf("#")) : vars.lang;

		if(currentLanguage)$('select.goog-te-combo').val(currentLanguage);
		checkStatus($("#translate"), currentLanguage);
	}});

	transformHrefs($("body"));
}


$(document).ready(init);

//1 get element (get the href from the element)
//2 check to see if href has "content/...html"
//3 replace if content/
//4 then replace content/.html with "#"
//5 place new variable into "a"


