window['google'] = {};
if (!window['google']['loader']) {
window['google']['loader'] = {};
google.loader.ServiceBase = 'http://www.google.com/uds';
google.loader.GoogleApisBase = 'http://ajax.googleapis.com/ajax';
google.loader.ApiKey = 'notsupplied';
google.loader.KeyVerified = true;
google.loader.LoadFailure = false;
google.loader.Secure = false;
google.loader.GoogleLocale = 'www.google.com';
google.loader.ClientLocation = null;
google.loader.AdditionalParams = '';
(function() {var d=true,e=null,g=false,h=encodeURIComponent,j=window,k=google,m=undefined,n=document;function p(a,b){return a.load=b}var q="push",s="replace",t="charAt",u="ServiceBase",v="name",w="getTime",x="length",y="prototype",z="setTimeout",A="loader",B="substring",C="join",D="toLowerCase";function E(a){if(a in F)return F[a];return F[a]=navigator.userAgent[D]().indexOf(a)!=-1}var F={};function G(a,b){var c=function(){};c.prototype=b[y];a.S=b[y];a.prototype=new c}
function H(a,b){var c=a.G||[];c=c.concat(Array[y].slice.call(arguments,2));if(typeof a.t!="undefined")b=a.t;if(typeof a.s!="undefined")a=a.s;var f=function(){var i=c.concat(Array[y].slice.call(arguments));return a.apply(b,i)};f.G=c;f.t=b;f.s=a;return f}function I(a){a=new Error(a);a.toString=function(){return this.message};return a}function J(a,b){a=a.split(/\./);for(var c=j,f=0;f<a[x]-1;f++){c[a[f]]||(c[a[f]]={});c=c[a[f]]}c[a[a[x]-1]]=b}function K(a,b,c){a[b]=c}if(!L)var L=J;if(!M)var M=K;k[A].u={};L("google.loader.callbacks",k[A].u);var N={},O={};k[A].eval={};L("google.loader.eval",k[A].eval);
p(k,function(a,b,c){function f(r){var o=r.split(".");if(o[x]>2)throw I("Module: '"+r+"' not found!");else if(typeof o[1]!="undefined"){i=o[0];c.packages=c.packages||[];c.packages[q](o[1])}}var i=a;c=c||{};if(a instanceof Array||a&&typeof a=="object"&&typeof a[C]=="function"&&typeof a.reverse=="function")for(var l=0;l<a[x];l++)f(a[l]);else f(a);if(a=N[":"+i]){if(c&&!c.language&&c.locale)c.language=c.locale;if(c&&typeof c.callback=="string"){l=c.callback;if(l.match(/^[[\]A-Za-z0-9._]+$/)){l=j.eval(l);
c.callback=l}}if((l=c&&c.callback!=e)&&!a.r(b))throw I("Module: '"+i+"' must be loaded before DOM onLoad!");else if(l)a.l(b,c)?j[z](c.callback,0):a.load(b,c);else a.l(b,c)||a.load(b,c)}else throw I("Module: '"+i+"' not found!");});L("google.load",k.load);k.R=function(a,b){b?aa(a):P(j,"load",a)};L("google.setOnLoadCallback",k.R);function P(a,b,c){if(a.addEventListener)a.addEventListener(b,c,g);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var f=a["on"+b];a["on"+b]=f!=e?ba([c,f]):c}}
function ba(a){return function(){for(var b=0;b<a[x];b++)a[b]()}}var Q=[];function aa(a){if(Q[x]==0){P(j,"load",R);if(!E("msie")&&!(E("safari")||E("konqueror"))&&E("mozilla")||j.opera)j.addEventListener("DOMContentLoaded",R,g);else if(E("msie"))n.write("<script defer onreadystatechange='google.loader.domReady()' src=//:><\/script>");else(E("safari")||E("konqueror"))&&j[z](ca,10)}Q[q](a)}
k[A].M=function(){var a=j.event.srcElement;if(a.readyState=="complete"){a.onreadystatechange=e;a.parentNode.removeChild(a);R()}};L("google.loader.domReady",k[A].M);var da={loaded:d,complete:d};function ca(){if(da[n.readyState])R();else Q[x]>0&&j[z](ca,10)}function R(){for(var a=0;a<Q[x];a++)Q[a]();Q.length=0}
k[A].e=function(a,b,c){if(c){var f;if(a=="script"){f=n.createElement("script");f.type="text/javascript";f.src=b}else if(a=="css"){f=n.createElement("link");f.type="text/css";f.href=b;f.rel="stylesheet"}(a=n.getElementsByTagName("head")[0])||(a=n.body.parentNode.appendChild(n.createElement("head")));a.appendChild(f)}else if(a=="script")n.write('<script src="'+b+'" type="text/javascript"><\/script>');else a=="css"&&n.write('<link href="'+b+'" type="text/css" rel="stylesheet"></link>')};
L("google.loader.writeLoadTag",k[A].e);k[A].O=function(a){O=a};L("google.loader.rfm",k[A].O);k[A].Q=function(a){for(var b in a)if(typeof b=="string"&&b&&b[t](0)==":"&&!N[b])N[b]=new T(b[B](1),a[b])};L("google.loader.rpl",k[A].Q);k[A].P=function(a){if((a=a.specs)&&a[x])for(var b=0;b<a[x];++b){var c=a[b];if(typeof c=="string")N[":"+c]=new U(c);else{c=new V(c[v],c.baseSpec,c.customSpecs);N[":"+c[v]]=c}}};L("google.loader.rm",k[A].P);k[A].loaded=function(a){N[":"+a.module].j(a)};
L("google.loader.loaded",k[A].loaded);k[A].L=function(){var a=(new Date)[w](),b=Math.floor(Math.random()*1E7);return"qid="+(a.toString(16)+b.toString(16))};L("google.loader.createGuidArg_",k[A].L);J("google_exportSymbol",J);J("google_exportProperty",K);k[A].b={};L("google.loader.themes",k[A].b);k[A].b.A="http://www.google.com/cse/style/look/bubblegum.css";M(k[A].b,"BUBBLEGUM",k[A].b.A);k[A].b.C="http://www.google.com/cse/style/look/greensky.css";M(k[A].b,"GREENSKY",k[A].b.C);k[A].b.B="http://www.google.com/cse/style/look/espresso.css";
M(k[A].b,"ESPRESSO",k[A].b.B);k[A].b.F="http://www.google.com/cse/style/look/shiny.css";M(k[A].b,"SHINY",k[A].b.F);k[A].b.D="http://www.google.com/cse/style/look/minimalist.css";M(k[A].b,"MINIMALIST",k[A].b.D);function U(a){this.a=a;this.p=[];this.o={};this.c={};this.k=d;this.d=-1}
U[y].g=function(a,b){var c="";if(b!=m){if(b.language!=m)c+="&hl="+h(b.language);if(b.nocss!=m)c+="&output="+h("nocss="+b.nocss);if(b.nooldnames!=m)c+="&nooldnames="+h(b.nooldnames);if(b.packages!=m)c+="&packages="+h(b.packages);if(b.callback!=e)c+="&async=2";if(b.style!=m)c+="&style="+h(b.style);if(b.other_params!=m)c+="&"+b.other_params}if(!this.k){if(k[this.a]&&k[this.a].JSHash)c+="&sig="+h(k[this.a].JSHash);b=[];for(var f in this.o)f[t](0)==":"&&b[q](f[B](1));for(f in this.c)f[t](0)==":"&&b[q](f[B](1));
c+="&have="+h(b[C](","))}return k[A][u]+"/?file="+this.a+"&v="+a+k[A].AdditionalParams+c};U[y].w=function(a){var b=e;if(a)b=a.packages;var c=e;if(b)if(typeof b=="string")c=[a.packages];else if(b[x]){c=[];for(a=0;a<b[x];a++)typeof b[a]=="string"&&c[q](b[a][s](/^\s*|\s*$/,"")[D]())}c||(c=["default"]);b=[];for(a=0;a<c[x];a++)this.o[":"+c[a]]||b[q](c[a]);return b};
p(U[y],function(a,b){var c=this.w(b),f=b&&b.callback!=e;if(f)var i=new W(b.callback);for(var l=[],r=c[x]-1;r>=0;r--){var o=c[r];f&&i.H(o);if(this.c[":"+o]){c.splice(r,1);f&&this.c[":"+o][q](i)}else l[q](o)}if(c[x]){if(b&&b.packages)b.packages=c.sort()[C](",");if(!b&&O[":"+this.a]!=e&&O[":"+this.a].versions[":"+a]!=e&&!k[A].AdditionalParams&&this.k){a=O[":"+this.a];k[this.a]=k[this.a]||{};for(var S in a.properties)if(S&&S[t](0)==":")k[this.a][S[B](1)]=a.properties[S];k[A].e("script",k[A][u]+a.path+
a.js,f);a.css&&k[A].e("css",k[A][u]+a.path+a.css,f)}else if(!b||!b.autoloaded)k[A].e("script",this.g(a,b),f);if(this.k){this.k=g;this.d=(new Date)[w]();if(this.d%100!=1)this.d=-1}for(r=0;r<l[x];r++){o=l[r];this.c[":"+o]=[];f&&this.c[":"+o][q](i)}}});
U[y].j=function(a){if(this.d!=-1){X("al_"+this.a,"jl."+((new Date)[w]()-this.d),d);this.d=-1}this.p=this.p.concat(a.components);k[A][this.a]||(k[A][this.a]={});k[A][this.a].packages=this.p.slice(0);for(var b=0;b<a.components[x];b++){this.o[":"+a.components[b]]=d;var c=this.c[":"+a.components[b]];if(c){for(var f=0;f<c[x];f++)c[f].K(a.components[b]);delete this.c[":"+a.components[b]]}}X("hl",this.a)};U[y].l=function(a,b){return this.w(b)[x]==0};U[y].r=function(){return d};
function W(a){this.J=a;this.m={};this.q=0}W[y].H=function(a){this.q++;this.m[":"+a]=d};W[y].K=function(a){if(this.m[":"+a]){this.m[":"+a]=g;this.q--;this.q==0&&j[z](this.J,0)}};function V(a,b,c){this.name=a;this.I=b;this.n=c;this.v=this.h=g;this.i=[];k[A].u[this[v]]=H(this.j,this)}G(V,U);p(V[y],function(a,b){var c=b&&b.callback!=e;if(c){this.i[q](b.callback);b.callback="google.loader.callbacks."+this[v]}else this.h=d;if(!b||!b.autoloaded)k[A].e("script",this.g(a,b),c);X("el",this[v])});V[y].l=function(a,b){return b&&b.callback!=e?this.v:this.h};V[y].j=function(){this.v=d;for(var a=0;a<this.i[x];a++)j[z](this.i[a],0);this.i=[]};
var Y=function(a,b){return a.string?h(a.string)+"="+h(b):a.regex?b[s](/(^.*$)/,a.regex):""};V[y].g=function(a,b){return this.N(this.z(a),a,b)};
V[y].N=function(a,b,c){var f="";if(a.key)f+="&"+Y(a.key,k[A].ApiKey);if(a.version)f+="&"+Y(a.version,b);b=k[A].Secure&&a.ssl?a.ssl:a.uri;if(c!=e)for(var i in c)if(a.params[i])f+="&"+Y(a.params[i],c[i]);else if(i=="other_params")f+="&"+c[i];else if(i=="base_domain")b="http://"+c[i]+a.uri[B](a.uri.indexOf("/",7));k[this[v]]={};if(b.indexOf("?")==-1&&f)f="?"+f[B](1);return b+f};V[y].r=function(a){return this.z(a).deferred};V[y].z=function(a){if(this.n)for(var b=0;b<this.n[x];++b){var c=this.n[b];if((new RegExp(c.pattern)).test(a))return c}return this.I};function T(a,b){this.a=a;this.f=b;this.h=g}G(T,U);p(T[y],function(a,b){this.h=d;k[A].e("script",this.g(a,b),g)});T[y].l=function(){return this.h};T[y].j=function(){};T[y].g=function(a,b){if(!this.f.versions[":"+a]){if(this.f.aliases){var c=this.f.aliases[":"+a];if(c)a=c}if(!this.f.versions[":"+a])throw I("Module: '"+this.a+"' with version '"+a+"' not found!");}a=k[A].GoogleApisBase+"/libs/"+this.a+"/"+a+"/"+this.f.versions[":"+a][b&&b.uncompressed?"uncompressed":"compressed"];X("el",this.a);return a};
T[y].r=function(){return g};var ea=g,Z=[],fa=(new Date)[w](),X=function(a,b,c){if(!ea){P(j,"unload",ga);ea=d}if(c){if(!k[A].Secure&&(!k[A].Options||k[A].Options.csi===g)){a=a[D]()[s](/[^a-z0-9_.]+/g,"_");b=b[D]()[s](/[^a-z0-9_.]+/g,"_");j[z](H($,e,"http://csi.gstatic.com/csi?s=uds&v=2&action="+h(a)+"&it="+h(b)),1E4)}}else{Z[q]("r"+Z[x]+"="+h(a+(b?"|"+b:"")));j[z](ga,Z[x]>5?0:15E3)}},ga=function(){if(Z[x]){$(k[A][u]+"/stats?"+Z[C]("&")+"&nc="+(new Date)[w]()+"_"+((new Date)[w]()-fa));Z.length=0}},$=function(a){var b=new Image,
c=ha++;ia[c]=b;b.onload=b.onerror=function(){delete ia[c]};b.src=a;b=e},ia={},ha=0;J("google.loader.recordStat",X);J("google.loader.createImageForLogging",$);

}) ();google.loader.rm({"specs":[{"name":"books","baseSpec":{"uri":"http://books.google.com/books/api.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}}}},"feeds",{"name":"friendconnect","baseSpec":{"uri":"http://www.google.com/friendconnect/script/friendconnect.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{}}},"spreadsheets","gdata","visualization",{"name":"sharing","baseSpec":{"uri":"http://www.google.com/s2/sharing/js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{"language":{"string":"hl"}}}},"search",{"name":"maps","baseSpec":{"uri":"http://maps.google.com/maps?file\u003dgoogleapi","ssl":"https://maps-api-ssl.google.com/maps?file\u003dgoogleapi","key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"regex":"callback\u003d$1\u0026async\u003d2"},"language":{"string":"hl"}}},"customSpecs":[{"uri":"http://maps.google.com/maps/api/js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}},"pattern":"^(3|3..*)$"}]},"annotations_v2","orkut","language","earth",{"name":"annotations","baseSpec":{"uri":"http://www.google.com/reviews/scripts/annotations_bootstrap.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"},"country":{"string":"gl"}}}},"ads","elements"]});
google.loader.rfm({":feeds":{"versions":{":1":"1",":1.0":"1"},"path":"/api/feeds/1.0/e291a634414cb5ef1c9f3b5424b8ac4b/","js":"default+fr.I.js","css":"default.css","properties":{":JSHash":"e291a634414cb5ef1c9f3b5424b8ac4b",":Version":"1.0"}},":search":{"versions":{":1":"1",":1.0":"1"},"path":"/api/search/1.0/457a1b12dfe20ca00fd65f9ad5d52ccd/","js":"default+fr.I.js","css":"default.css","properties":{":JSHash":"457a1b12dfe20ca00fd65f9ad5d52ccd",":NoOldNames":false,":Version":"1.0"}},":language":{"versions":{":1":"1",":1.0":"1"},"path":"/api/language/1.0/cd6e6992328d3619ee31352c39a90b10/","js":"default+fr.I.js","properties":{":JSHash":"cd6e6992328d3619ee31352c39a90b10",":Version":"1.0"}},":spreadsheets":{"versions":{":0":"1",":0.3":"1"},"path":"/api/spreadsheets/0.3/8331b0bbcc74776270648505340e9200/","js":"default.I.js","properties":{":JSHash":"8331b0bbcc74776270648505340e9200",":Version":"0.3"}},":earth":{"versions":{":1":"1",":1.0":"1"},"path":"/api/earth/1.0/0ad0a3d6a6f7b49bbb226ad5478087aa/","js":"default.I.js","properties":{":JSHash":"0ad0a3d6a6f7b49bbb226ad5478087aa",":Version":"1.0"}},":annotations":{"versions":{":1":"1",":1.0":"1"},"path":"/api/annotations/1.0/95e76f84c9532973f104478d1e810796/","js":"default+fr.I.js","properties":{":JSHash":"95e76f84c9532973f104478d1e810796",":Version":"1.0"}}});
google.loader.rpl({":scriptaculous":{"versions":{":1.8.3":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.2":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.1":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"}},"aliases":{":1.8":"1.8.3",":1":"1.8.3"}},":yui":{"versions":{":2.6.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.7.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.8.0r4":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"}},"aliases":{":2":"2.8.0r4",":2.7":"2.7.0",":2.6":"2.6.0",":2.8":"2.8.0r4",":2.8.0":"2.8.0r4"}},":swfobject":{"versions":{":2.1":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"},":2.2":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"}},"aliases":{":2":"2.2"}},":ext-core":{"versions":{":3.1.0":{"uncompressed":"ext-core-debug.js","compressed":"ext-core.js"},":3.0.0":{"uncompressed":"ext-core-debug.js","compressed":"ext-core.js"}},"aliases":{":3":"3.1.0",":3.0":"3.0.0",":3.1":"3.1.0"}},":mootools":{"versions":{":1.2.3":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.4":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"}},"aliases":{":1":"1.1.2",":1.11":"1.1.1",":1.2":"1.2.4",":1.1":"1.1.2"}},":jqueryui":{"versions":{":1.7.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.6.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.1":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.3":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"}},"aliases":{":1.7":"1.7.2",":1":"1.7.2",":1.6":"1.6.0",":1.5":"1.5.3"}},":chrome-frame":{"versions":{":1.0.2":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.1":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.0":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"}},"aliases":{":1":"1.0.2",":1.0":"1.0.2"}},":prototype":{"versions":{":1.6.0.2":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.1.0":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.0.3":{"uncompressed":"prototype.js","compressed":"prototype.js"}},"aliases":{":1.6.1":"1.6.1.0",":1":"1.6.1.0",":1.6":"1.6.1.0",":1.6.0":"1.6.0.3"}},":jquery":{"versions":{":1.2.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.2.6":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"}},"aliases":{":1":"1.4.2",":1.4":"1.4.2",":1.3":"1.3.2",":1.2":"1.2.6"}},":dojo":{"versions":{":1.2.3":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.1.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.2":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.2.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"}},"aliases":{":1":"1.4.1",":1.4":"1.4.1",":1.3":"1.3.2",":1.2":"1.2.3",":1.1":"1.1.1"}}});
}


var from='ad';
var to;
var bg = 0;
var l = [];
var timeout= '';
var TO = 0;
var TXT = '';
var SPELL = 1;
var SPELLRETURN = 0;
l.ad=['AutoDetect',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.en=['Anglais',['fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.fr=['Français',['en','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.de=['Allemand',['en','fr','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.es=['Espagnol',['en','fr','de','it','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.it=['Italien',['en','fr','de','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.pt=['Portuguais',['en','fr','de','it','es','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.ja=['Japonais',['en','fr','de','it','es','pt','nl','el','ru','ar','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.nl=['Néerlandais',['en','fr','de','it','es','pt','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.ar=['Arabe',['en','fr','de','it','es','pt','nl','el','ru','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.zh=['Chinois',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.el=['Grec',['en','fr','de','it','es','pt','nl','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.ru=['Russe',['en','fr','de','it','es','pt','nl','el','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.ko=['Coréen',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.da=['Danois',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.fi=['Finnois',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.hi=['Hindi',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.no=['Norvégien',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','pl','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.pl=['Polonais',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','ro','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.ro=['Roumain',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','sv','cs','rt','ke','mo','le','fl','af','eo']];
l.sv=['Suédois',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','cs','rt','ke','mo','le','fl','af','eo']];
l.cs=['Tchèque',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','rt','ke','mo','le','fl','af','eo']];
l.af=['Africain',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','eo']];
l.eo=['Esperanto',['en','fr','de','it','es','pt','nl','el','ru','ar','ja','zh','ko','da','fi','hi','no','pl','ro','sv','cs','rt','ke','mo','le','fl','af']];
l.rt=['Rot13',['rt']];
l.ke=['Kenny',['ke']];
l.mo=['Morse',['mo']];
l.le=['1337',['le']];
l.md=['MD5',['md']];
l.sh=['SHA1',['sh']];
l.fl=['Flip',['fl']];

google.load("language", "1");

function $(i){return document.getElementById(i);}

function trim(str) {
    str = str.replace(/^\s+/, '');
    for (var i = str.length - 1; i > 0; i--) {
        if (/\S/.test(str.charAt(i))) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    return str;
}

function getHTTPObject(action){
    var xhr;
    if(window.XMLHttpRequest){
        xhr=new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        xhr=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(xhr){
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4 && xhr.status && xhr.status == 200){
                if(action == 'spell') {
                    //                    alert('proot');
                    alert(xhr.responseText);

                    var tmp =  eval('('+xhr.responseText+')');
                    // alert(tmp['koukou'][0]);
                    for(j=0;j<tmp.length;j++){
                        $("tto").innerHTML += tmp[j];
                        for(k=0;k<tmp[j].length;k++)
                         $("tto").innerHTML += tmp[j][k];   
                    }
                }
                else
                    $("tto").innerHTML = xhr.responseText.replace(/\*(\w+)/g,'<span class="badword">$1</span>' );
            }
            };
    }
    return xhr;
}


function sfr(lang){
    if(!$('t'+to)) to = 'en';
    $('t'+to).selected='';
    to = lang;
    $('t'+to).selected='selected';
    $('tto').style.background = 'white url(i/'+to+'.jpg) no-repeat 98% 98%';
    TXT = '';
    change($("tfrom").innerHTML);
}

function st(lang) {
    //  alert(lang);
    $('f'+from).selected = "";
    from = lang;
    $('f'+from).selected = "selected";
    $('tfrom').style.background = 'white url(i/'+from+'.jpg) no-repeat 98% 98%';
    var inner = '';
    var size = 0;
    var flag = 0;
    for(var i = 0; i < l[from][1].length; i++){
        //       size += l[l[from][1][i]][0].length +1;
        inner += '<option id="t'+l[from][1][i]+'" value="'+l[from][1][i]+'">'+l[l[from][1][i]][0]+'</option>';
        if(l[from][1][i] == to) {flag = 1;}
    }
    //    $('to').style.width = size*8+"px";
    $('ts').innerHTML = inner;
    if(!flag) {to =l[from][1][0];}
    sfr(to);
    //sizebarre();
    TXT = '';
    change($("tfrom").innerHTML);
}

function sf(){
    var inner = '';
    for(i in l){inner+='<option id="f'+i+'" value="'+i+'">'+l[i][0]+'</option>';}
    $('fs').innerHTML=inner;
    var r;
    if(window.location.hash && (r = /^#([a-zA-Z]{2})2([a-zA-Z]{2}):(.*)$/.exec(window.location.hash))){
        to = r[2];
        $("tfrom").innerHTML =  Url.decode(r[3].replace(/%0A/g, "\n"));
        st(r[1]);
    }
    else{
        st('ad');
    }
    $('tfrom').focus();

}

var regBourse = /^bourse ?: ?([A-Za-z\^\.]{1,8})/gi; 
var regWhois = /^whois ?: ?(.+)$/gi; 
var regQrcode = /^QRCode ?: ?(.*)$/i;
var regGeoname = /^(country|ville|code postal) ?:([^\n\r\.\?]+)$/i;
var regDef = /^d[e|é]fin(ition|e) ?:([^=\n\r\.\?]+)$/i;
var regDico = /^dico ?:([^=\n\r\.\?]+)$/i;
var regCalc = /^([0-9\.\+\-\*\/\(\)\^\ (sqrt)(c)(s)(a)(cos)(sin)(tan)(l)(e)(j)²³]+) ?=$/i;
var regSurface = /^(\d+,?\.?\d*) ?(a|ca|ha|m²|mm²|cm²|dm²|km²|square foot|square yard|square perch|rood|acre|square mile) (en|in|to) (a|ca|ha|m²|mm²|cm²|dm²|km²|square foot|square yard|square perch|rood|acre|square mile)$/i;
var regMasse = /^(\d+,?\.?\d*) ?(kg|g|cg|mg|lb|G|q|t|lb av|oz av|lb t|oz t) (en|in|to) (kg|g|cg|mg|lb|G|q|t|lb av|oz av|lb t|oz t)$/i;
var regVolume = /^(\d+,?\.?\d*) ?(m³|cm³|mm³|km³|dm³|L|daL|hL|kL|dL|cL|mL|µL|fl oz|gallon|quart|pint|gill|litre|litres) (en|in|to) (m³|cm³|mm³|km³|dm³|L|daL|hL|kL|dL|cL|mL|µL|fl oz|gallon|quart|pint|gill)$/i;
var regLongueur = /^(\d+,?\.?\d*) ?(m|dm|cm|mm|km|inch|pouce|link|foot|yard|perch|chain|furlong|mile|league|poppyseed|point|pica point|pica|barleycorn|digit|finger|nail|palm|hand|shaftment|natural span|span|ell|fathom) (en|in|to) (m|dm|cm|mm|km|inch|link|foot|yard|perch|chain|furlong|mile|league|poppyseed|point|pica point|pica|barleycorn|digit|finger|nail|palm|hand|shaftment|natural span|span|ell|fathom)$/i;
var regMonnaie = /^(\d+,?\.?\d*K?) ?(€|¥|\$|EUR|USD|JPY|BGN|CYP|CZK|DKK|EEK|GBP|HUF|LTL|LVL|MTL|PLN|RON|SEK|SKK|CHF|ISK|NOK|HRK|RUB|TRY|AUD|CAD|CNY|HKD|IDR|KRW|MYR|NZD|PHP|SGD|THB|ZAR) (en|in|to) (€|¥|\$|EUR|USD|JPY|BGN|CYP|CZK|DKK|EEK|GBP|HUF|LTL|LVL|MTL|PLN|RON|SEK|SKK|CHF|ISK|NOK|HRK|RUB|TRY|AUD|CAD|CNY|HKD|IDR|KRW|MYR|NZD|PHP|SGD|THB|ZAR)$/i;
var regTemp = /^(\d+\.?\d* ?)°(C|F|Ra|K) (en|in|to) °(C|F|Ra|K)$/;
var regBase = /^((\d|[A-F])+\.?\d* ?)(dec|hex|bin|oct) (en|in|to) (dec|hex|bin|oct)$/i;

function put_bg(t){
    $('ts').innerHTML='<option>'+t+'</option>';
    $('tto').style.background = 'white url(i/'+t+'.jpg) no-repeat 98% 98%';
    bg = 1;
}

function translate(text) {
    if (!text || text === '' || text === '\n') {return;}
    text = trim(text);
    window.location.hash = '#'+from+'2'+to+':'+Url.encode(text);
    $('tto').innerHTML = '<img src="i/l.gif" />';
    var r;var url;var data;
    if((r = regBourse.exec(text))){
        var time = new Date().getTime();
        $('to').innerHTML = '<span class="select">Bourse</span>';
        $('tto').style.background = 'white url(l/stock_chart.php?s='+r[1]+'&r='+time+') no-repeat 98% 98%';
        bg = 1;
        url = 'stocks';
        data = 't='+r[1];
    }
    else if((r = regWhois.exec(text))) {
        $('to').innerHTML = '<span class="select">Whois</span>';
        url = 'whois';
        data = 't='+r[1];
    }
    else if((r = regQrcode.exec(text))){
        $('to').innerHTML = '<span class="select">QRCode</span>';
        $('tto').style.background = 'white url(qrcode/img.php?text='+r[1]+') no-repeat 98% 98%';
        bg = 1;
        url = 'qrcode';
        data = 't='+r[0];
    }
    else if((r = regGeoname.exec(text))){
        put_bg("Geoname");
        url='geonames';data='t='+r[2];
    }
    else if((r = regDef.exec(text))){
        put_bg('Définition');
        url='defin';data='t='+r[2];
    }
    else if((r = regDico.exec(text))){
        put_bg('Dictionnaire');
        url = 'dico';
        data = 't='+r[1];
    }
    else if(from != 'mo' && (r = regCalc.exec(text))){
        put_bg('Calculatrice');
        url = 'calc';
        data = 't='+r[1].replace(/\+/g, '%252B');
    }
    else if((r = regSurface.exec(text))){
        put_bg('Surface');
        url = 'surface';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regMasse.exec(text))){
        put_bg('Masse');
        url = 'mass';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regVolume.exec(text))){
        put_bg('Volume');
        url = 'volume';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regLongueur.exec(text))){
        put_bg('Longueur');
        url = 'length';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regMonnaie.exec(text))){
        put_bg('Monnaie');
        url = 'money';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regTemp.exec(text))){
        put_bg('Température');
        url = 'temp';
        data = 'value='+r[1]+'&from='+r[2]+'&to='+r[4];
    }
    else if((r = regBase.exec(text))){
        put_bg('Base');
        url = 'base';
        data = 'value='+r[1]+'&from='+r[3]+'&to='+r[5];
    }
 //    else if(from === 'fl' || to === 'fl'){
//         if(bg === 1){
//             bg = 0;
//             st('f'+from);
//             $('t'+to).className = "select";
//             $('tto').style.background = 'white url(i/'+to+'.jpg) no-repeat 98% 98%';
//         }
//         flip(text.replace(/\+/g, '%252B'));
//     }
    else{
        text = text.replace(/\+/g, '%252B');
        if(bg === 1){
            bg = 0;
            st('f'+from);
            $('t'+to).className = "select";
            $('tto').style.background = 'white url(i/'+to+'.jpg) no-repeat 98% 98%';
        }
        data = 'text='+text+'&from='+from+'&to='+to;
        url = 'tr';
        if(from === 'mo' || to === 'mo'){url = 'morse';}
        else if(from === 'ke' || to === 'ke'){url = 'kenny';}
        else if(from === 'rt' || to === 'rt'){url = 'rot';}
        else if(from === 'le' || to === 'le'){url = 'leet';}
        else if(from === 'md' || to === 'md'){url = 'md5';}
        else if(from === 'sh' || to === 'sh'){url = 'sha1';}
        else if(from === 'fl' || to === 'fl'){url = 'flip';}
        else if(from === 'fr' && to === 'es'){url = 'apertium';}
        else if(from === 'en' && to === 'es'){url = 'apertium';}
        else if(from === 'es' && to === 'fr'){url = 'apertium';}
        else if(from === 'es' && to === 'en'){url = 'apertium';} 
    }
    if(url == 'tr') {
        var f = from;
        var ff = from;
        if(from == 'ad') f = '';
        if(f == '') {
            google.language.detect(text, function(result) {
                    if (!result.error) {
                        $('tfrom').style.background = 'white url(i/'+result.language+'.jpg) no-repeat 98% 98%';
                        ff = result.language;
                        if(result.language == to) {
                            if(to != 'fr')
                                sfr('fr');
                            else
                                sfr('en');
                            translate(text);
                        }
                    }
                });
        }
//         if(from === 'fr' && to === 'es') {
//         }
     
        google.language.translate(text, f, to, function(result) {
                if (!result.error) {
                    $("tto").innerHTML = result.translation;
                }
                else {
                    $("tto").innerHTML = '<span class="error">Not Found.</span>';
                }
            });
        

        
//         if(SPELL == 1 && ff !='ad') {
//             url = 'spell';
//             // alert(ff);
//             //            var ff = (f)?f:result.language;
//             data = 't='+text+'&l='+ff;
//             var xhr = getHTTPObject('spell');
//             xhr.open("POST", 'l/'+url+'.php', true);
//             xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//             xhr.send('xhr=1&'+data);
//         }

    }
    else {
        var xhr = getHTTPObject('trans');
        xhr.open("POST", 'l/'+url+'.php', true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send('xhr=1&'+data);
    }
    
}

function change(text){
    text = text.replace(/<br>/g, '');
    var c = text.charAt(text.length-1);
    if (text === '' || text === '\n' || text === ' '){
        $("tto").innerHTML = '';
        TXT = '';
        TO = 0;
        window.location.hash = '#'+from+'2'+to;
    }
    else if(((text != TXT) && (c === '.' || c==='?' || c==='!' || c===' ' || c===';' || c===',' || c==='\n' || c===':' || c==='=' || TO > 5))){
        TXT = text;
        translate(text);
        TO = 0;
    }
}

function checkKey(ev){
    if(!ev){
        ev = window.event;
    }
    var c = ev.which?ev.which:ev.keyCode;
    if(c==27){
        $("tto").innerHTML=$('tfrom').value='';
        $('tfrom').focus();
    }
}

document.onkeydown = checkKey;


function verifyTxt() {
    TO++; 
    if($('tfrom')) change($('tfrom').value);      
    setTimeout("verifyTxt()", 250);
}
setTimeout("verifyTxt()", 500);


var Url = {
 encode : function (string) {
        return escape(this._utf8_encode(string));
    },
 decode : function (string) {
        return this._utf8_decode(unescape(string));
    },
 _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    },
 _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = 0;var c1 = 0; var c2 = 0;
        while ( i < utftext.length ) {
            c = utftext.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
