//*************************************************************
//
// Copyright 2008 by DE-Design
// Daniel Erne - daniel.erne@me.com
// 
// Linguo Engine Version 0.1
//
// YOU ARE NOT ALLOWED TO READ THIS CODE!
// IF YOU CONTINUE, I WILL CATCH YOU!
//
//
//*************************************************************


// Global Variables





var xmlReq;
var xmlReqAdd;
var xmlReqCheck;
var xmlReqSave;
var xmlReqDelete;
var lang = "de";
var stringAdd = "";



if (window.XMLHttpRequest) {

  xmlReq = new XMLHttpRequest();
  xmlReqAdd = new XMLHttpRequest();
  xmlReqCheck = new XMLHttpRequest();
  xmlReqSave = new XMLHttpRequest();
  xmlReqDelete = new XMLHttpRequest();

} else if (window.ActiveXObject) {

  xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
  xmlReqAdd = new ActiveXObject("Msxml2.XMLHTTP");
  xmlReqCheck = new ActiveXObject("Msxml2.XMLHTTP");
  xmlReqSave = new ActiveXObject("Msxml2.XMLHTTP");
  xmlReqDelete = new ActiveXObject("Msxml2.XMLHTTP");

  if (!xmlReq) {

    xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
    xmlReqAdd = new ActiveXObject("Microsoft.XMLHTTP");
    xmlReqCheck = new ActiveXObject("Microsoft.XMLHTTP");
    xmlReqSave = new ActiveXObject("Microsoft.XMLHTTP");
    xmlReqDelete = new ActiveXObject("Microsoft.XMLHTTP");

  }
}




function load(lang,word) {
  
    $("search_field").focus();
    
  	$('language').style.cursor = "pointer";
	  $('button_left').style.cursor = "pointer";
    $('button_left').hide();
  
    if(lang == "de") {
      changeLanguageToDe();
    } else if(lang == "ar") {
      changeLanguageToAr();
    } else if(lang == "es") {
      changeLanguageToEs();
    } else if(lang == "it") {
      changeLanguageToIt();
    } else if(lang == "fr") {
      changeLanguageToFr();
    } else if(lang == "th") {
      changeLanguageToTh();
    } else if(lang == "tr") {
      changeLanguageToTr();
      
    } 
    
    if(word != "") {
    
      $("search_field").value = word;
      callLinguo();
    }
}

function changeDiv(string,div) {

  if(!isHover){
  
    div.innerHTML = '';
    
  }

}

function clearTags() {

  for(var i=0;i<document.getElementsByTagName("table").length;i++) {
    document.getElementsByTagName("table")[i].style.backgroundColor = "#FFFFFF";
  }
  
}


function showBox(identity) {

  document.getElementById(identity).style.display = "block";


}

// this function determines whether the event is the equivalent of the microsoft 
// mouseleave or mouseenter events. 
function isMouseLeaveOrEnter(e, handler) 
{ 



if (e.type != 'mouseout' && e.type != 'mouseover') return false; 
var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; 

while (reltg && reltg != handler) reltg = reltg.parentNode; 

return (reltg != handler); 

}


function hideToolbar(e, div) {

  for(var i=0;i<e.length;i++){e[i].innerHTML = div;}

}


function hide() {
	
	 $('button_left').fade();
}

function changeLanguageToAr() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_ar.png')";
	  lang = "ar";
    
}


function changeLanguageToDe() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_de.png')";
	  lang = "de";
    
}

function changeLanguageToEn() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_en.png')";
	  lang = "en";
    
}

function changeLanguageToEs() {

    
    $('button_left').fade();
	$('language').style.backgroundImage="url('images/right_es.png')";
	lang = "es";
    
}


function changeLanguageToTr() {

    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_tr.png')";
	  lang = "tr";

}

function changeLanguageToTh() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_th.png')";
	  lang = "th";
    
}

function changeLanguageToIt() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_it.png')";
	  lang = "it";
    
}

function changeLanguageToFr() {

    
    $('button_left').fade();
	  $('language').style.backgroundImage="url('images/right_fr.png')";
	  lang = "fr";
    
}


function showLanguages() {
 
    $('button_left').show();
  
}



function callLinguo() {

	//$('results').hide()
	$('results').innerHTML = "<img src=\"images/ajax-loader.gif\" alt=\"loading...\" />";	
		
     
	var word =  $("search_field").value;
	var string = "getDB.php?lang=" + lang + "&searchword=" + word;
	
	
	if(word.length == 0) {
		
	$('results').innerHTML = "";
		
	} else {
		
	if(word.length >= 3) {
	
	xmlReq.open("GET",string,true);
	xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlReq.send(null);
	xmlReq.onreadystatechange = handleHttpResponse;
	
	} else {
    $('results').innerHTML = "Mindestens 3 Buchstaben müssen eingegeben werden!";
  }
	}
}


function addLinguo() {

	//$('results').hide()
	$('results').innerHTML = "<img src=\"images/ajax-loader.gif\" alt=\"loading...\" />";	 
	
	
	
	var language = document.getElementById("lang").value;
	var from =  document.getElementById("from").value;
	var to =  document.getElementById("to").value;
	var code =  document.getElementById("securityCode").value;
	
	if(language != "" && from != "" && to != "" && code != "" && from != "From..." && to != "To...") {
	
	stringAdd = "addDB.php?lang=" + language + "&from=" + from + "&to=" + to + "&p=" + code;
	var string = "checkDB.php?lang=" + language + "&from=" + from + "&to=" + to;

	xmlReqCheck.open("GET",string,true);
	xmlReqCheck.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlReqCheck.send(null);
	xmlReqCheck.onreadystatechange = handleHttpResponseCheck;
	
	
	
	} else {
    $('results').innerHTML = "Konnte leider nicht gesendet werden.<br />Bitte überprüfen Sie Ihre Angaben nochmals.";
  }
	
}



function deleteEntry() {

	$('status').innerHTML = "<img src=\"../images/ajax-loader.gif\" alt=\"loading...\" />";
	
	var language = document.getElementById("lang").value;
	var id =  document.getElementById("id").value;
	
	
	var string = "deleteDB.php?lang=" + language + "&id=" + id;

	xmlReqDelete.open("GET",string,true);
	xmlReqDelete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlReqDelete.send(null);
	xmlReqDelete.onreadystatechange = handleHttpResponseDelete;
	
}


function saveEntry() {

	$('status').innerHTML = "<img src=\"../images/ajax-loader.gif\" alt=\"loading...\" />";
	
	var language = document.getElementById("lang").value;
	var from =  document.getElementById("from").value;
	var to =  document.getElementById("to").value;
	var id =  document.getElementById("id").value;
	
	
	var string = "saveDB.php?lang=" + language + "&from=" + from + "&to=" + to + "&id=" + id;

	xmlReqSave.open("GET",string,true);
	xmlReqSave.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlReqSave.send(null);
	xmlReqSave.onreadystatechange = handleHttpResponseSave;
	
}



//****************************************************
//Handle html results
//****************************************************
function handleHttpResponse() {

	if (xmlReq.readyState == 4) {
	
	$('results').hide();
	resultcode = xmlReq.responseText;
	
	if(resultcode == "") {
    
    $('results').innerHTML = "Es wurde leider nichts gefunden...";
  } else {
	  $('results').innerHTML = resultcode;
    
	}
	
	
  $('results').appear();
	$("search_field").focus();
	$("search_field").select();
	
	}
	
}

function handleHttpResponseAdd() {

	if (xmlReqAdd.readyState == 4) {
	
	$('results').hide();
	resultcode = xmlReqAdd.responseText;
	
	if(resultcode == "success") {
	
    $('results').innerHTML = "Erfolgreich gespeichert!";
    $('from').value = "";
    $('to').value = "";
	
  } else {
    $('results').innerHTML = "Konnte leider nicht gesendet werden.<br />Bitte überprüfen Sie Ihre Angaben nochmals.";
  }
  
	
	$('results').appear();
	
	}
	
}


function handleHttpResponseCheck() {


  if(xmlReqCheck.readyState == 4) {
  
  resultcode = xmlReqCheck.responseText;
  if(resultcode == "success") {
      

	xmlReqAdd.open("GET",stringAdd,true);
	xmlReqAdd.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlReqAdd.send(null);
	xmlReqAdd.onreadystatechange = handleHttpResponseAdd;
  
  } else {
  
      $('results').innerHTML = "Es gibt bereits eine Übersetzung in der Datenbank.";
  }
  
  
  }


}



function handleHttpResponseSave() {

	if (xmlReqSave.readyState == 4) {
	

	resultcode = xmlReqSave.responseText;
	
	if(resultcode == "success ") {
	
    $('status').innerHTML = "Erfolgreich gespeichert!";
  } else {
    $('status').innerHTML = "Fehler.";
  }

	}
	
}

function handleHttpResponseDelete() {

	if (xmlReqDelete.readyState == 4) {
	

	resultcode = xmlReqDelete.responseText;
	
	if(resultcode == "success ") {
	
    $('status').innerHTML = "Erfolgreich gespeichert!";
  } else {
    $('status').innerHTML = "Fehler.";
  }

	}
	
}


function copyToClipboard(s)
{
	if( window.clipboardData && clipboardData.setData )
	{
		clipboardData.setData("Text", s);
	}
	else
	{
		// You have to sign the code to enable this or allow the action in about:config by changing
		user_pref("signed.applets.codebase_principal_support", true);
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

		var clip = Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;

		// create a transferable
		var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;

		// specify the data we wish to handle. Plaintext in this case.
		trans.addDataFlavor('text/unicode');

		// To get the data from the transferable we need two new objects
		var str = new Object();
		var len = new Object();

		var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);

		var copytext=meintext;

		str.data=copytext;

		trans.setTransferData("text/unicode",str,copytext.length*[[[[2]]]]);

		var clipid=Components.interfaces.nsIClipboard;

		if (!clip) return false;

		clip.setData(trans,null,clipid.kGlobalClipboard);	   
	}
}









