$(document).ready(function(){ads.setup();tran.buildFromLangList();tran.loadTrans();if(url_src){tran.setFromLang(url_src);}
tran.loadFromText();$('#addTranButn').click(tran.toggleAddTrans);$('#fromText').click(tran.focusOnInput).blur(tran.resetInput).keydown(tran.watchInput).keyup(tran.updateContentArea).keyup(tran.findAccents).bind('paste',tran.pasted);$('#shareTab').mouseover(function(){$('#shareTab ul').show();}).mouseout(function(){$('#shareTab ul').hide();})
$('#tipsButn').click(function(){dialog.showThis('tips');return false;});$('#linkButn').click(function(){dialog.showMakeALink();return false;});$('#accentButn').click(function(){dialog.showThis('typeAccents');return false;});$('#contributeButn').click(function(){dialog.showThis('contribute');return false;});$('#aboutButn').click(function(){dialog.showThis('about');return false;});});tran={buildFromLangList:function(){var langs=[];for(j in tran.langByCode){langs.push(j);}
numLangs=langs.length;$('#setFromLang').prepend($('<div/>').attr('id','fromLangWrap').append($('<ul/>').attr('id','fromLangs-1')).append($('<ul/>').attr('id','fromLangs-2')))
for(var i=-1;i<numLangs;i++){var code="auto",lang="Auto-detect",col=1;if(i>-1){code=langs[i];lang=tran.langByCode[code];}
if(i>((numLangs-2)/2)){col=2;}
$('#fromLangs-'+col).append($('<li/>').attr('class','fromLangOption').append($('<a/>').attr('href','#').attr('id','fromLang-'+code).click(function(){tran.setFromLang($(this).attr('id'));}).text(lang)));if(code==tran.setFromTextLang){$('#fromLang-'+code).addClass('on');}}
$('#setFromLang').mouseover(function(){$('#fromLangWrap').show();}).mouseout(function(){$('#fromLangWrap').hide();});},toggleAddTrans:function(){if(tran.mainAreaState=='input'){tran.showAddTrans();}
else{tran.showTranInput();}
tran.updateActvTrans();},showAddTrans:function(){if(tran.mainAreaState!='addTran'){tran.storeMainHtml=$('#tranMain').children().each(function(){$(this).hide();});}
else{$('#selTranTbl').remove();}
tran.mainAreaState='addTran';var numInCol=9,c=0,currTr;tran.resetAddTransButton();var unL={};var lastLang=false;unL=tran.langByCode;var langCount=0;for(i in unL){langCount++;}
$('#tranMain').append('<table id="selTranTbl"><tr id="tranTr-0"></tr><tr id="tranTr-1"></tr><tr id="tranTr-2"></tr><tr id="tranTr-3"></tr><tr id="tranTr-4"></tr><tr id="tranTr-5"></tr><tr id="tranTr-6"></tr><tr id="tranTr-7"></tr><tr id="tranTr-8"></tr></table>');for(i in unL){if(c==Math.ceil(langCount/9)){c=0;}
$("#tranTr-"+c).append($('<td/>').attr('class','selTranTd').append($('<a/>').attr('id','addTranButn-'+i).attr('href','#').attr('class','tranButn rc3').click(function(){tran.addTran($(this).attr('id'));tran.showAddTrans();}).text(unL[i])));if((i in util.cmpObj(tran.translators))){$('#addTranButn-'+i).css('opacity','.3').css('filter','alpha(opacity=30)').unbind('click').click(function(){tran.remTran($(this).attr('id'));setTimeout('tran.showAddTrans()',100);});}
var letterConnect=$('<div></div>').attr('class','letterConnect').insertBefore($('#addTranButn-'+i));if((lastLang&&lastLang[0]!=unL[i][0])||c==0){letterConnect.css('display','none');}
lastLang=unL[i];c++;}
tran.updateActvTrans();},showTranInput:function(){tran.mainAreaState='input';tran.resetAddTransButton();$('#selTranTbl').remove();$('#fromText').show();},resetAddTransButton:function(){if(tran.mainAreaState=='addTran'){$('#addTranButn').text('done').removeClass('addingTrans');}
else{if(tran.translators.length>0){$('#addTranButn').text('add translators');}
else{$('#addTranButn').text('add translators');}}},addTran:function(code){code=tran.extractCode(code);tran.translators.push(code);$('#translators').append($('<div/>').attr('id','tran-'+code).attr('class','aTranslator').append($('<div/>').attr('class','lang').html('<div class="left">'+tran.langByCode[code]+'</div><div id="copy-'+code+'" class="copy "><br/></div>')).append($('<div/>').attr('id','transdTxt-'+code).attr('class','translatedText')));translate.doOne(code);tran.updateActvTrans();tran.updateInputVal();tran.saveTrans();},remTran:function(code){code=tran.extractCode(code);var l=tran.translators;for(i in l){if(l[i]==code){tran.translators=util.compact(l,i);}}
$('#tran-'+code).remove();tran.updateActvTrans();tran.updateInputVal();tran.resetAddTransButton();tran.saveTrans();tran.resetCopies();},saveTrans:function(){var transCodes=[];for(var t=0;t<tran.translators.length;t++){transCodes[t]=tran.translators[t];}
util.createCookie("translators",transCodes,30);},loadTrans:function(){var translators=util.readCookie('translators');if(url_trs){url_trs=url_trs.replace(/ /g,'').replace(/%20/g,'');translators=url_trs.split(',');}
if(translators){if(translators.length){for(var t=0;t<translators.length;t++){tran.addTran(translators[t]);}}
if(tran.translators.length>0){document.getElementById('fromText').focus();}}},loadFromText:function(){if(url_txt){if(tran.translators.length<1){tran.addTran('en');}
$('#fromText').val(url_txt.stripSlashes());tran.clearInput=false;translate.start();tran.updateContentArea();}},updateActvTrans:function(){var complete=false,c=0;while(!complete){$('#actvTrans').empty();var j=0;for(i in tran.translators){$('#actvTrans').append($('<li/>').attr('class','actvTran').append($('<a/>').attr('href','#').attr('id','actvTran-'+tran.translators[i]).attr('class','rc3').text(tran.langByCode[tran.translators[i]]).click(function(){tran.remTran($(this).attr('id'));if(tran.mainAreaState=='addTran'){tran.showAddTrans();}})));if((j+1)==((tran.translators.length)-c)){break;}
j++;}
if($('#actvTran-'+tran.translators[0]).offset().top<$('#actvTran-'+tran.translators[j]).offset().top){c++;}
else{if(c){$('#actvTran-'+tran.translators[j]).parent().remove();$('#actvTrans').append($('<li/>').attr('class','actvTran').append($('<a/>').attr('href','#').attr('id','actvTran-more').attr('class','rc3').text((c+1)+' more')).mouseover(function(){$('#moreActvTrans').show();}).mouseout(function(){$('#moreActvTrans').hide();}));var right=$('#tranMain').offset().left+$('#tranMain').width();$('#actvTran-more').parent().css('width',((right-10)-$('#actvTran-more').offset().left)+'px');$('#actvTran-more').parent().append($('<ul/>').attr('id','moreActvTrans'));var w=$('#actvTran-more').width();for(var k=j;k<tran.translators.length;k++){$('#moreActvTrans').append($('<li/>').attr('class','actvTran moreActvTran').append($('<a/>').attr('href','#').attr('id','moreActvTran-'+tran.translators[k]).text(tran.langByCode[tran.translators[k]]).css('width','auto').click(function(){tran.remTran($(this).attr('id'));if(tran.mainAreaState=='addTran'){tran.showAddTrans();}})));if($('#moreActvTran-'+tran.translators[k]).width()>w){w=$('#moreActvTran-'+tran.translators[k]).width();}
if((k+1)==tran.translators.length){$('#moreActvTran-'+tran.translators[k]).addClass('rc3');$('#moreActvTran-'+tran.translators[k]).addClass('rcb');}}
for(k=j;k<tran.translators.length;k++){$('#moreActvTran-'+tran.translators[k]).css('width',w+'px');if(w>$('#actvTran-more').width()){$('#moreActvTran-'+tran.translators[k]).css('margin-left','-'+(w-$('#actvTran-more').width())+'px');if(k==j){$('#moreActvTran-'+tran.translators[k]).addClass('rc6');$('#moreActvTran-'+tran.translators[k]).addClass('rct');$('#moreActvTran-'+tran.translators[k]).addClass('rcl');}}}}
$('#moreActvTrans').hide();complete=true;}
if(c>50){break;}}},setFromLang:function(code){code=tran.extractCode(code);$('#fromLang-'+tran.setFromTextLang).removeClass('on');tran.setFromTextLang=code;$('#fromLang-'+tran.setFromTextLang).addClass('on');if(code=='auto'){$('#fromTextLang').html('auto-detect');}
else{$('#fromTextLang').html(tran.langByCode[code]);}
translate.start();},extractCode:function(code){if(code.indexOf('-')>-1){code=code.split('-');code=code[1];}
return code;},focusOnInput:function(){if(tran.clearInput&&(tran.translators.length>0)){$('#fromText').val('');tran.clearInput=false;$('#content-main-standby').show();$('#content-main-default').hide();}},updateInputVal:function(){if(tran.clearInput){if(tran.translators.length>0){$('#fromText').val('Just start typing here. Nice Translator will do the rest.');}
else{$('#fromText').val('Add a translator then start typing here. Nice Translator will do the rest.');}
setTimeout(function(){$('#content-main-standby').hide();$('#content-main-default').show();},100);}},resetInput:function(){if($('#fromText').val().trim()==""){tran.clearInput=true;tran.updateInputVal();}},watchInput:function(e){clearTimeout(ads.timeout);ads.timeout=setTimeout(function(){if(ads.lastStr!=tran.value){ads.lastStr=tran.value;ads.doUpdate(tran.value);}},1000)
if(tran.translators.length<1){e.stopPropagation();e.preventDefault();return false;}
else{var key=(window.event)?event.keyCode:e.keyCode;switch(key){case 9:tran.updateInputVal();break;case 13:translate.start();e.stopPropagation();e.preventDefault();return false;break;case 32:translate.start();break;case 27:setTimeout(function(){$('#fromText').val("");},100);break;default:setTimeout("translate.waitThenStart('"+$('#fromText').val().length+"')",750);break;}}},pasted:function(){setTimeout(function(){translate.start();tran.updateContentArea();},20);},updateContentArea:function(){if($('#fromText').val().trim()!=""){setTimeout(function(){$('#content-main-standby').hide();$('#content-main-default').hide();},100);$('#translators').show();}
else{$('#translators').hide();$('#content-main-standby').show();}},initCopy:function(lang,text){if(!util.isset(tran.copies[lang])){tran.copies[lang]=new ZeroClipboard.Client();}
var c=tran.copies[lang];ZeroClipboard.setMoviePath('http://nicetranslator.com/js/library/ZeroClipboard.swf');if(text!=""){$('.copy','#tran-'+lang).html('Copy');c.setText(text);c.setHandCursor(true);var element=$('.copy','#tran-'+lang);var elemShell=$('.lang','#tran-'+lang);c.glue('copy-'+lang);c.addEventListener('onMouseOver',function(){$(element[0]).attr('class','copy copyOver');});c.addEventListener('onMouseOut',function(){$(element[0]).attr('class','copy');});c.addEventListener('onMouseDown',function(){$(element[0]).html('Copied');setTimeout(function(){$(element[0]).html('Copy');},500);});}
else{$('.copy','#tran-'+lang).html('');if(util.isset(tran.copies[lang])){tran.copies[lang].destroy();}}},resetCopies:function(){$('embed').parent().remove();for(i in tran.copies){tran.copies[i].destroy();}
for(l in tran.translators){tran.initCopy(tran.translators[l],$('#transdTxt-'+tran.translators[l]).text());}},findAccents:function(){var accents={"[`A":192,"[`a":224,"[`E":200,"[`e":232,"[`I":204,"[`i":236,"[`O":210,"[`o":242,"[`U":217,"[`u":249,"['A":193,"['a":225,"['E":201,"['e":233,"['I":205,"['i":237,"['O":211,"['o":243,"['U":218,"['u":250,"['Y":221,"['y":253,"[^A":194,"[^a":226,"[^E":202,"[^e":234,"[^I":206,"[^i":238,"[^O":212,"[^o":244,"[^U":219,"[^u":251,"[~A":195,"[~a":227,"[~N":209,"[~n":241,"[~O":213,"[~o":245,"[:A":196,"[:a":228,"[:E":203,"[:e":235,"[:I":202,"[:i":239,"[:O":214,"[:o":246,"[:U":220,"[:u":252,"[:Y":159,"[:y":255,"[!]":161,"[?]":191,"[C]":199,"[c]":231,"[OE":140,"[oe":156,"[ss":223,"[O]":216,"[o]":248,"[A]":197,"[a]":229,"[AE":198,"[ae":230,"[P]":222,"[p]":254,"[D]":208,"[d]":240,"[S]":138,"[s]":154,"[Z]":142,"[z]":158};var cPos=util.getCaretPosition(document.getElementById('fromText'));if(cPos-3>-1){var recent=$('#fromText').val().substr(cPos-3,4);var foundAccent=false;var rL=recent.length;for(var a in accents){if(recent.indexOf(a)>-1){recent=recent.replace(a,String.fromCharCode(accents[a]));foundAccent=true;}}
if(foundAccent){$('#fromText').val($('#fromText').val().substr(0,cPos-3)+recent.substr(0,recent.length)+$('#fromText').val().substr(cPos-3+rL));}}},transCSV:function(){var output=[];$.each(tran.translators,function(i,val){output.push(val);});return output.join(',');},translators:[],clearInput:true,mainAreaState:'input',setFromTextLang:'auto',fromTextLang:'',fromTextCode:'',copies:{},langByCode:{"af":"Afrikaans","sq":"Albanian","ar":"Arabic","be":"Belarusian","bg":"Bulgarian","ca":"Catalan","zh_CN":"Chinese | S","zh_TW":"Chinese | T","hr":"Croatian","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","et":"Estonian","tl":"Filipino","fi":"Finnish","fr":"French","gl":"Galician","de":"German","el":"Greek","iw":"Hebrew","hi":"Hindi","hu":"Hungarian","is":"Icelandic","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","ko":"Korean","lv":"Latvian","lt":"Lithuanian","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","vi":"Vietnamese","cy":"Welsh","yi":"Yiddish"}};function dbg(str){if(console){console.info(str);}}
translate={start:function(){tran.value=encodeURI($('#fromText').val());if(!tran.clearInput){if(tran.setFromTextLang=='auto'){$.getJSON('http://ajax.googleapis.com/ajax/services/language/detect?callback=?&v=1.0&q='+tran.value,translate.detectResult);return false;}
else{tran.fromTextCode=tran.setFromTextLang;translate.doAll();return false;}}},waitThenStart:function(then){var now=$('#fromText').attr('value').length;if(then>=(now-1)){translate.start();}},detectResult:function(result){result=result.responseData;if(!result){return;}
var language='unnamed';var code='';if(result.language){for(l in tran.langByCode){if(l==result.language){language=tran.langByCode[l];code=l;break;}}
tran.fromTextLang=language.toLowerCase();tran.fromTextCode=code;$('#fromTextLang').html(tran.fromTextLang.ucfirst()+'<br/><span>auto-detected</span>');translate.doAll();}},doAll:function(){for(var t=0;t<tran.translators.length;t++){var lang=tran.translators[t];translate.doOne(lang);}},doOne:function(lang){lang=lang.replace('_','-');if(!tran.clearInput){$.getJSON('http://ajax.googleapis.com/ajax/services/language/translate?callback=?&v=1.0&q='+tran.value+'&langpair='+tran.fromTextCode+'%7C'+lang,function(result){result=result.responseData;if(!result){return;}
if(result.translatedText){lang=lang.replace('-','_');$('#transdTxt-'+lang).html(result.translatedText);clearTimeout(tran.copying);tran.copying=setTimeout(function(){tran.resetCopies();},500);}});}}};ads={setup:function(){$('.dynamicAd').hide().load(function(){$(this).fadeIn('slow');});},doUpdate:function(str){},target:function(){},update:false,lastStr:''}
