/*friendfeedTranslate - bookmarklet - v0.2.3 - http://wittman.org/friendfeedtranslate - by Micah Wittman*/var translateLinkText='Translate X to ENGLISH';var translateReverseLinkText='Translate ENGLISH to X';var languageCodeFrom='';var languageCodeTo='en';var translationBackgroundColorFrom='rgb(240,240,240)';var translationBackgroundColorTo='rgb(255,245,175)';var autoTranslateEnabled=true;var autoTranslateRealtimeEnabled=true;var keepOriginalTextInRealtime=false;var translateTitleOnlyInRealtime=false;var autoProtocolMatchingEnabled=true;var onlyUseSecureProtocolCompatibleFeatures=true;var translateDelay=2000;if(typeof realtime=='undefined'){var realtime;}
var prevEntryAndCommentCount=null;var entries;var linkContent='<a id="translateLink" href="#" style="font-weight:bold">'+translateLinkText+'</a>';var linkDiv=' | <span id="translateLinkDiv" style="font-weight:normal;padding:0 3px 0 3px;">'+linkContent+'</span>';var linkReverseDiv='&nbsp;<a id="translateReverseLink" href="#"><span id="translateReverse">'+translateReverseLinkText+'&nbsp;</span></a>';var languageCodeFromToUse;var languageCodeToToUse;var protocol='http://';var isOneEntry;var doAutoTranslate;function GM_wait()
{if(typeof unsafeWindow!='undefined')
{if(typeof unsafeWindow.jQuery!='undefined')
{jQuery=unsafeWindow.jQuery;}}
if(typeof jQuery=='undefined')
{window.setTimeout(GM_wait,251);}
else
{$=jQuery;if($('#feed').length>0)
{letsJQuery();}}}
function letsJQuery()
{entries=$('.entry');setIsOneEntry();setProtocol();setOnDemandMoreComments();setDoStartAutoTranslate();TranslateLink();if(doAutoTranslate)
{autoTranslate();}}
function setProtocol()
{if(autoProtocolMatchingEnabled)
{protocol=window.location.protocol+'//';}
if(protocol=='http://')
{onlyUseSecureProtocolCompatibleFeatures=false;}}
function google_wait()
{if(typeof unsafeWindow!='undefined')
{if(typeof unsafeWindow.google!='undefined')
{google=unsafeWindow.google;}}
if(typeof google=='undefined')
{window.setTimeout(google_wait,50);}
else
{googleApiLoad();}}
function requestGoogleScript()
{var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.setAttribute("language","javascript");script.setAttribute("src",protocol+'www.google.com/jsapi');head.appendChild(script);}
function setTranslationDirectionDefault()
{languageCodeFromToUse=languageCodeFrom;languageCodeToToUse=languageCodeTo;}
function setTranslationDirectionReverse()
{languageCodeFromToUse=languageCodeTo;languageCodeToToUse=languageCodeFrom;}
function googleLoadControllerDefault()
{setTranslationDirectionDefault();googleLoadController();}
function googleLoadControllerReverse()
{setTranslationDirectionReverse();googleLoadController();}
function googleLoadController()
{if(typeof unsafeWindow!='undefined')
{if(typeof unsafeWindow.google!='undefined')
{google=unsafeWindow.google;}}
if(typeof google=='undefined')
{requestGoogleScript();google_wait();}
else
{googleApiLoad();}}
function googleApiLoad(){google.load('language','1',{"callback":googleApiLoadCallback});}
function googleApiLoadCallback()
{TranslateProcess();Translate_wait();}
function translatedLabelText()
{if(languageCodeFromToUse==languageCodeTo)
{return'Translated '+translateReverseLinkText.replace('Translate ',' ')+' ';}
else
{return'Translated '+translateLinkText.replace('Translate ',' ');}}
function autoTranslate()
{$('#translateLink').trigger('click');}
function doTranslation(result)
{var doTran=false;if(languageCodeFromToUse!='')
{doTran=true;}
else
{if(typeof result!='undefined')
{if(typeof result.detectedSourceLanguage!='undefined')
{if(result.detectedSourceLanguage!=languageCodeTo)
{doTran=true;}}}}
return doTran;}
function Translate_wait()
{var entryAndCommentCount=$('.comment .content').length+$('.entry').length;var translateDelayToUse=translateDelay;if(translateDelay<0)
{translateDelayToUse=2000;}
if(entryAndCommentCount==prevEntryAndCommentCount)
{window.setTimeout(Translate_wait,translateDelayToUse);}
else
{prevEntryAndCommentCount=entryAndCommentCount;if(translateDelay>=0)
{TranslateProcess();Translate_wait();}}}
function setIsOneEntry()
{if($('.entry').length==1)
{isOneEntry=true;}
else
{isOneEntry=false;}}
function setOnDemandMoreComments()
{$('.l_expandcomments').click(function(){prevEntryAndCommentCount=0;});}
function setDoStartAutoTranslate()
{doAutoTranslate=doStartAutoTranslate();}
function doStartAutoTranslate()
{var doStartAutoTrans=false;if(isOneEntry)
{if(autoTranslateEnabled)
{doStartAutoTrans=true;}}
else
{if(autoTranslateRealtimeEnabled)
{doStartAutoTrans=true;}}
return doStartAutoTrans;}
function TranslateLink()
{$('#extralinks').find('div').eq(1).append(linkDiv);$('#translateLink').click(googleLoadControllerDefault);}
function TranslateProcess()
{var afterClickLinkContent='<span id="translateAfter" style="color:red;font-weight:bold">&nbsp;'+translatedLabelText()+'&nbsp;</span>';var titles=$('#feed .body .title .text');titles.each(function(){var title=$(this);if(!title.hasClass('friendfeedTranslateSource'))
{title.addClass('friendfeedTranslateSource');google.language.translate(title.text(),languageCodeFromToUse,languageCodeToToUse,function(result){if(doTranslation(result))
{if(result.translation){title.after('<div class="friendfeedTranslate" style="background-color:'+translationBackgroundColorTo+'">'+result.translation+'</div>');if(!isOneEntry&&!keepOriginalTextInRealtime)
{title.hide();}}}});}});if(isOneEntry&&translateTitleOnlyInRealtime)
{}
else
{$('.comment .content').each(function(){var comm=$(this);if(!comm.hasClass('friendfeedTranslateSource'))
{comm.addClass('friendfeedTranslateSource');google.language.translate(comm.html(),languageCodeFromToUse,languageCodeToToUse,function(result){if(doTranslation(result))
{comm.css('padding','10px 4px 4px 4px').css('background-color',translationBackgroundColorFrom);if(result.translation){comm.after('<div class="friendfeedTranslate" style="background-color:'+translationBackgroundColorTo+' !important;padding:4px 4px 10px 4px;margin:4px 0 4px 20px; border-bottom:1px gray solid;">'+result.translation+'</div>');if(!isOneEntry&&!keepOriginalTextInRealtime)
{comm.hide();}}}});}});}
$('#translateAfter').remove();$('#translateLinkDiv').hide().append(afterClickLinkContent).fadeIn(2000);$('#translateReverseLink').remove();if(languageCodeFrom!='')
{$('#translateLinkDiv').append(linkReverseDiv);$('#translateReverseLink').click(googleLoadControllerReverse);}
return false;}
if(window.location.href.indexOf('friendfeed.com/')>-1)
{GM_wait();}
