var domain = "http://www.onlinerecnik.com/";

google.load("language", "1");
google.setOnLoadCallback(init);
google.load("elements", "1", {
    packages: "keyboard"
});

var kbd;

String.prototype.capitalize = function(){
   return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
};

function init() {
	var src = document.getElementById('src');
	var dst = document.getElementById('dst');
    var dl = new Option("Detektuj jezik", "");
    dl.className = "line-below";
    dl.className = "";
    src.options.add(dl);
    var separator = new Option("-", "-");
    separator.setAttribute("disabled", "");
    src.options.add(separator);
	var i=0;
	for (l in google.language.Languages) {
        var lng = formatLanguage(l);
		var lngCode = google.language.Languages[l];
        if (google.language.isTranslatable(lngCode)) {
            if (lngCode != "") {
                src.options.add(new Option(lng, lngCode));
                dst.options.add(new Option(lng, lngCode));
            }
        }
	}

    google.language.getBranding('branding');
}

function formatLanguage(lng) {
    lng = capitalize(lng);

    var p = lng.indexOf("_");
    if (p != -1) {
        lng = lng.substr(0, p) + " (" + capitalize(lng.substr(p + 1, lng.length - p - 1)) + ")";
    }

    return lng
}

function capitalize(str) {
    return str.substr(0, 1).toUpperCase() + str.substr(1, str.length - 1).toLowerCase();
}

function submitChange() {
	var value = document.getElementById('source').value;
	var src = document.getElementById('src').value;
	var dest = document.getElementById('dst').value;
	document.getElementById("transLoaderInd").src = domain + "images/ajax-loader.gif";
	savingtxt(value,src,dest);
	google.language.translate(value, src, dest, translateResult);
	return false;
}

function translateResult(result) {
	var resultBody = document.getElementById("dest");
	if (result.translation) {
		var str = result.translation.replace('>', '&gt;').replace('<', '&lt;');
		resultBody.innerHTML = str;
        document.getElementById("transLoaderInd").src = domain + "images/ajax-loader-empty.gif";
	} else {
		resultBody.innerHTML = 'Error';
	}
}

function formatLanguage(lng) {
    lng = capitalize(lng);

    var p = lng.indexOf("_");
    if (p != -1) {
        lng = lng.substr(0, p) + " (" + capitalize(lng.substr(p + 1, lng.length - p - 1)) + ")";
    }

    return lng
}

function capitalize(str) {
    return str.substr(0, 1).toUpperCase() + str.substr(1, str.length - 1).toLowerCase();
}

function loadKayboard() {
    var kbdContainer = document.getElementById("vk-container");
    kbdContainer.className = "fr vk-container down";
}
function toggleKeyboard() {
    var langCode = document.getElementById('src').value;
    var layoutCode = getLayoutCodeByLanguageCode(langCode);
    if (layoutCode != null) {
        var kbdContainer = document.getElementById("vk-container");
        if (kbd != null) {
            kbdContainer.className = "fr vk-container down";
            kbd.setVisible(false);
            kbd = null;
        } else {
            kbd = new google.elements.keyboard.Keyboard(
                 [layoutCode],
                 ['source']);
            kbdContainer.className = "fr vk-container up";
        }
    } else {
        alert("Source language is not supported");
    }
}

function getLayoutCodeByLanguageCode(langCode) {
    for (var key in google.elements.keyboard.LayoutCode) {
        var layoutCode = google.elements.keyboard.LayoutCode[key];
        if (layoutCode.indexOf(langCode) == 0) {
            return layoutCode;
        }
    }
    return null;
}

function swapLanguages() {
    var srcElem = document.getElementById('src');
    var srcLng = srcElem.value;
    var destElem = document.getElementById('dst');
    var destLng = destElem.value;

    if (srcLng != "" && srcLng != "-") {
        selectLng(srcElem, destLng);
        selectLng(destElem, srcLng);
    }
}

function selectLng(s, lngCode) {
    for (var i = 0; i < s.options.length; i++) {
        if (s.options[i].value == lngCode) {
            s.selectedIndex = i;
            return true;
        }
    }
    return false;
}

function savingtxt(value,src,dest){
	if (value.length === 0 || value == ''){ 
		return false;
	}
//	document.getElementById("q").value = word.replace(/_/gi," ");
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp === null)
	{
		alert ("Browser does not support HTTP Request");
		return false;
	} 

	var url = domain + "include/savingtxt.php?text="+encodeURIComponent(value);
	url = url+"&src="+src;
	url = url+"&dest="+dest;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
	// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
