//<![CDATA[
var gtc_ws=0;		   
if(document.createStyleSheet) {
	document.createStyleSheet(gtc_stl);
}else {
	var gtc_styles = "@import url('" + gtc_stl + "');";
	var gtc_newSS=document.createElement('link');
	gtc_newSS.rel='stylesheet';
	gtc_newSS.href='data:text/css,'+escape(gtc_styles);
	document.getElementsByTagName("head")[0].appendChild(gtc_newSS);
}
//]]>

function TranslateClient(){
	this.lastsel="";
	this.sel="";
	this.cx=0;
	this.cy=0;
	this.sx=0;
	this.sy=0;
	this.ex=0;
	this.ey=0;
	this.div=0;
	this.mb=0;
	this.ul="en";
	this.pan=0;
	this.langlist=0;
	this.pantmr=0;
	this.blockhidepan=0;
	this.xdiv=0;
	this.maxwidth=400;
	this.loaded=0;
	this.chk=0;
	this.srclang="en";
	this.langs="af:Afrikaans,sq:Albanian,ar:Arabic,hy:Armenian,az:Azerbaijani,eu:Basque,be:Belarusian,bg:Bulgarian,ca:Catalan,zh:Chinese,hr:Croatian,cs:Czech,da:Danish,nl:Dutch,en:English,et:Estonian,tl:Filipino,fi:Finnish,fr:French,gl:Galician,ka:Georgian,de:German,el:Greek,ht:Haitian,iw:Hebrew,hi:Hindi,hu:Hungarian,is:Icelandic,id:Indonesian,ga:Irish,it:Italian,ja:Japanese,ko:Korean,lv:Latvian,lt:Lithuanian,mk:Macedonian,ms:Malay,mt:Maltese,no:Norwegian,fa:Persian,pl:Polish,pt:Portuguese,ro:Romanian,ru:Russian,sr:Serbian,sk:Slovak,sl:Slovenian,es:Spanish,sw:Swahili,sv:Swedish,th:Thai,tr:Turkish,uk:Ukrainian,ur:Urdu,vi:Vietnamese,cy:Welsh,yi:Yiddish";
	this.footer="<div class='gtc_footer'><div class='gtc_fl'><a href='http://translateclient.com'><img src='http://translateclient.com/js/widget/widgetlogo.png' width=85 height=10 border=0  align='middle'></a></div><div class='gtc_fr'>&nbsp;Powered by Google Translate</div></div>";
	

	this.hide=function(){
		translateclient.div.style.display="none";	
		translateclient.xdiv.style.display="none";	
	}

	this.showtranslate=function(text){

		if(text!=""){
			
			with(this){
				var a;
				var w;
				var mx;
				var l;
				
				mx=ex;
				
				if (sx>ex){
					a=sx;
					sx=ex;
					ex=a;
				}
				
				if (sy>ey){
					a=sy;
					sy=ey;
					ey=a;
				}


				div.innerHTML = (text+footer);
				div.style.display="block";	
				
				w=div.offsetWidth;
				if(ex-sx>w){
					l=ex-w+24/2;
				}else{
					l=sx;	
				}
				
				div.style.left = l+"px";
				div.style.top =  (ey+16)+"px";
				
				
				

				a=(mx-24/2-2);
				if((a+24)>l+w){
					a=l+w-24;	
				}
				if(a<l){
					a=l;	
				}
				
				xdiv.style.left = a+"px";
				xdiv.style.top =  (ey+16-24)+"px";
				xdiv.style.display="block";
				
			}

		}else{
			this.hide();	
		}
	}


	this.getCursorXY=function(e){
		var px=0;
		var py=0;
		try{
			px=e.pageX;
			py=e.pageY;
		}catch(ee){
			px=event.clientX;	
			py=event.clientY;	
		}
		
		translateclient.cx = (window.Event) ? px : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		translateclient.cy = (window.Event) ? py : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	}
	
	this.mousedown=function(e){
		translateclient.mb=1;
		translateclient.sx=translateclient.cx;
		translateclient.sy=translateclient.cy;
		translateclient.hide();
	}

	this.mouseup=function(e){
		translateclient.mb=0;
		translateclient.ex=translateclient.cx;
		translateclient.ey=translateclient.cy;
		translateclient.translate();
	}


	this.init=function(){
		
		try{
			if (window.Event) {
				document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP | Event.MOUSEDOWN);
			}
		}catch(ee){}
		document.onmousemove = this.getCursorXY;
		document.onmouseup = this.mouseup;
		document.onmousedown = this.mousedown;
		//document.onmouseover = this.hidepan;
		
		
		
	}

	this.onload=function(){
	
		with(this){
			loaded=1;
			
			div = document.createElement('div'); 
			div.className="gtc_shd gtc_div gtc_transp gtc_grd1";
			div.style.maxWidth=maxwidth+"px";
			document.body.appendChild(div);

			xdiv = document.createElement('div'); 
			xdiv.className="gtc_xdiv gtc_transp  gtc_grd2";
			xdiv.innerHTML="x";
			xdiv.onclick=hide;
			document.body.appendChild(xdiv);

			pan = document.getElementById('gtc_pan'); 
			pan.onmouseover=showpan;
			pan.onmouseout=hidepan;
			pan.style.left="-255px";
			pan.className="gtc_shd gtc_transp";
			
			langlist = document.getElementById('gtc_lang');
			langlist.onfocus=function(){translateclient.blockhidepan=1;}
			langlist.onblur=function(){translateclient.blockhidepan=0; translateclient.hidepan()}
			langlist.onchange=function(){translateclient.savecookie("gtc_lang",translateclient.getlang(),365)}
			
			ul=this.getcookie("gtc_lang");
			if(ul==null){
				ul=userlang();
			}
			//alert(ul);
			
			var a,i,b,v;
			a=langs.split(",");
			for(i=0; i<a.length; i++){
				v=a[i];
				b=v.split(":");
				addopt(langlist,b[1],b[0],(ul==b[0]),(b[0]=="en"));
			}
			
			
			
			chk = document.getElementById('gtc_chk');
			
			if(gtc_ws){
				//var pic1;
				//pic1= new Image(1,1); 
				//pic1.src="http://translateclient.com/js/widget/stat.php";
			}
			
			
			var aw;
			aw=document.getElementById('gtc_w'); 
			aw.href="http://translateclient.com/translator_widget.php";
			aw.innerHTML="Get Widget!";
			
			var adl;
			adl=document.getElementById('gtc_d'); 
			if(adl){
				adl.innerHTML="Download Free Translator";
			}
			
			var adt;
			adt=document.getElementById('gtc_t'); 
			if(adt){
				adt.innerHTML="Just select text on the page and get instant translation from Google&nbsp;Translate!";
			}
			
			init();
			checksel();

		}

			
	}


	this.addopt=function(oListbox, text, value, isDefaultSelected, isSelected)
	{
	  var oOption = document.createElement("option");
	  oOption.appendChild(document.createTextNode(text));
	  oOption.setAttribute("value", value);
	
	  if (isDefaultSelected) oOption.defaultSelected = true;
	  else if (isSelected) oOption.selected = true;
	
	  oListbox.appendChild(oOption);
	}
	

	this.showpan=function(){
		clearTimeout(translateclient.pantmr);
		translateclient.pantmr=setTimeout("translateclient.slidepan(1)",50);
	}
	
	this.hidepan=function(){
		if(translateclient.blockhidepan==0){
			clearTimeout(translateclient.pantmr);
			translateclient.pantmr=setTimeout("translateclient.slidepan(0)",50);
		}
	}
	
	this.slidepan=function(dir){
		var l,p,d;
		l=parseInt(translateclient.pan.style.left);
		clearTimeout(translateclient.pantmr);
		//alert(translateclient.pan.style.left);
		if (dir>0){
			p=-1;
			translateclient.pantmr=setTimeout("translateclient.slidepan(1)",30);
		}else{
			p=-255;
			translateclient.pantmr=setTimeout("translateclient.slidepan(0)",30);
		}

		d=(p-l)/3;
		if (Math.abs(d)<=1){
			l=p;
			clearTimeout(translateclient.pantmr);
		}else{
			l=l+d;	
		}

		translateclient.pan.style.left=l+"px";

	}






	this.getsel=function(){
		var txt;
		if (window.getSelection)
		{
		txt = window.getSelection();
		}
		else if (document.getSelection)
		{
		txt = document.getSelection();
		}
		else if (document.selection)
		{
		txt = document.selection.createRange().text;
		}
		else return;
		return txt.toString();	
	}
	

	this.getlang=function(){
		if (this.langlist.selectedIndex != -1)
		{
		  	return this.langlist.options[this.langlist.selectedIndex].value;
		}else{
			return "en";	
		}
	}


	this.checkload=function(){
		if(this.loaded==0){
			
			try{
				if(document.getElementById("gtc_pan")){
					this.onload();	
				}else{
					setTimeout("translateclient.checkload()",100);
				}
			}catch(e){
				setTimeout("translateclient.checkload()",100);		
			}
		}
	}

	this.userlang=function(){
		var nav_lng="";	
		if(navigator.language)nav_lng=navigator.language; 
		if(navigator.browserLanguage)nav_lng=navigator.userLanguage; 
		if(navigator.systemLanguage)nav_lng=navigator.systemLanguage; 
		if(navigator.browserLanguage)nav_lng=navigator.browserLanguage; 
		if(navigator.userLanguage)nav_lng=navigator.userLanguage; 
		if(window.navigator.language)nav_lng=window.navigator.language;
		
		nav_lng=nav_lng.substr(0,2);
		nav_lng=nav_lng.toLowerCase();
		
		return nav_lng;
	}


	this.translate= function() {
		var maxlen=340;
		
		if(this.chk.checked){
			var text = this.getsel();
			
			if(text!="" && (Math.abs(this.sx-this.ex)+Math.abs(this.sy-this.ey))>10){
				var sample="";  
				text=text.substr(0,32768);
				sample=text.substr(0,256);
		
				text=text.replace(/\r\n/g,"<br>");
				
				var dest="";
				var src=this.srclang;
				
				dest=this.getlang();
				
				google.language.translate(text, src, dest,  function(result) {
					if (result.translation) {
						//alert(1);
					  translateclient.showtranslate( result.translation);
					}
				});
				
			}else{
				
				this.hide();	
			}
		}
			
	}


	this.savecookie=function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	
	this.getcookie=function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

}

google.load("language", "1");

var translateclient = new TranslateClient();





