function openWindow(url,title,options){
	w=window.open(url,title,options);
	w.focus();
}
function updateWindow(id, url) {
	try{    	
		lon();
		window.setTimeout("handleRequest('"+id+"','"+url+"')", 200);
	}catch(e){}
}

function httpRequest(url,type,options){
  if(type==null){
    type='GET';
  }
  var req = false;
  // For Safari, Firefox, and other non-MS browsers
  if (window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch (e) {
      req = false;
    }
  } else if (window.ActiveXObject) {
    // For Internet Explorer on Windows
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        req = false;
      }
    }
  } 
  if (req) {
    // Synchronous request, wait till we have it all
    req.open(type, url, false);
	if(type=='POST' && options !=null){
	  req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	}
    req.send(options);
    return req.responseText;
  } else {
    return "Sorry, your browser does not support " +
      "XMLHTTPRequest objects. This page requires " +
      "Internet Explorer 5 or better for Windows, " +
      "or Firefox for any system, or Safari. Other " +
      "compatible browsers may also exist.";
  }
}

function handleRequest(id,url){
	 var element = document.getElementById(id);
	 if (!element) {	  
	   loff();
	   return;
	 }
	element.innerHTML = httpRequest(url);
	loff(); 
}

function lon(){	
	
   try {
	
		var o_set = document.getElementById('loaderContainerWH');
		var o_getH = document.getElementsByTagName('body')[0];		

		o_set.style.height = o_getH.scrollHeight;
	
		document.getElementById("loaderContainer").style.display = "";
	} catch (e) {
		
	}	
}

function loff(){
	try {
	
	  document.getElementById("loaderContainer").style.display = "none";	
		
	} catch (e) {
	}
}

function bringLocaleToForeground(locale){
	var localeSelect=document.getElementsByName('locale')[0];
	var localeOptions=localeSelect.childNodes;
	for(var i=0;i<localeOptions.length;i++){
		if(localeOptions[i].nodeType!=3){		  
		  var l=localeOptions[i].getAttribute('value');		  
		  document.getElementsByName('layer_'+l)[0].style.visibility='hidden';
		}
	}
	document.getElementsByName('layer_'+locale)[0].style.visibility='visible';
}

function translate(elementId,containsTextString){
    var localeSelect=document.getElementsByName('locale')[0];
    var translationSelect=document.getElementsByName('langpair')[0];	
	var dest=document.getElementsByName('text_'+translationSelect.value)[0];
	var sourceEditor=FCKeditorAPI.GetInstance('text_'+localeSelect.value);
	var destEditor=FCKeditorAPI.GetInstance('text_'+translationSelect.value);	
	
	if(destEditor && (destEditor.GetXHTML(true).toString()=='' || confirm(containsTextString))){
	   var options='fromLocale='+localeSelect.value+'&toLocale='+translationSelect.value+'&text='+escape(sourceEditor.GetXHTML(true));		
	   var text=httpRequest('/'+elementId+'/translateText/'+elementId+'/setSettings', 'POST',options);
	   destEditor.SetHTML(text);
	   localeSelect.value=translationSelect.value;
	   bringLocaleToForeground(localeSelect.value);
	   setTranslations(localeSelect)
	}		
}

function setTranslations(localeSelect){
	var localeOptions=localeSelect.childNodes;
	var translationSelect=document.getElementsByName('langpair')[0];
			
	while(translationSelect.childNodes.length!=0){
	   translationSelect.removeChild(translationSelect.lastChild);
	}	
	for(var i=0;i<localeOptions.length;i++){
		if(localeOptions[i].nodeType!=3){
		  var locale=localeOptions[i].getAttribute('value');
		  if(locale!=localeSelect.value){
		    var option=document.createElement('option');
		    option.setAttribute('value',locale);
		    option.appendChild(document.createTextNode(localeSelect.value+' -> '+locale));
		    translationSelect.appendChild(option);
		  }
		}
	}
}
