/*Translatorize - for Facebook - bookmarklet - v0.1.0 - http://wittman.org/translatorize/facebook/ - by Micah Wittman*/(function(){var scriptnameText='facebookTranslate';var translateLinkText='Translate X to SPANISH';var translateReverseLinkText='Translate SPANISH to X';var languageCodeFrom='';var languageCodeTo='fr';var translationBackgroundColorFrom='rgb(240,240,240)';var translationBackgroundColorTo='rgb(255,245,175)';var autoTranslateEnabled=true;var autoTranslateRealtimeEnabled=true;var keepOriginalTextInRealtime=true;var translateTitleOnlyInRealtime=false;var autoProtocolMatchingEnabled=true;var onlyUseSecureProtocolCompatibleFeatures=true;var translateDelay=2000;var prevEntryAndCommentCount=null;var entries;var comments;var url=window.location.href;var urlPrev=window.location.href;var linkContent='<a id="translateLink" href="#" style="color:white;font-weight:bold">'+translateLinkText+'</a>';var linkDivStyleFlyout='margin:2px 0 2px 5px; position:absolute; height:190px; background-color:rgb(80,80,80); border-color:darkgray; '
+'color:white; font-weight:normal; padding:4px; display:block;width:175px';var linkDivStyle='margin:0 0 2px 5px; color:white;font-weight:normal;padding:1px 1px 2px 1px; '
+'display:block; width:100px;overflow:hidden;height:1.1em';var linkDiv=' <div id="translateLinkDiv" style="'+linkDivStyle+'">'
+'<div id="facebookTranslateScriptname" style="margin:2px 0 4px 0;border-color:solid 1px gray;">'
+scriptnameText
+'</div>'
+'<div style="padding:4px 0 0 0;">'
+linkContent
+'</div>'
+'<div style="margin:6px 0 0 0; padding:4px 0 0 0;">'
+'<img id="facebookTranslateDonate" border="0" src="http://www.pledgie.com/campaigns/3.png?skin_name=chrome" alt="Click here to lend your support to: RAM 1.0 and make a donation at www.pledgie.com !"/>'
+'</div>'
+'</div>';var linkReverseDiv='<div id="translateReverse" style="padding:4px 0 0 0;"><a id="translateReverseLink" style="color:white;font-weight:bold" href="#"><span>'
+translateReverseLinkText+'&nbsp;</span></a></div>';var languageCodeFromToUse;var languageCodeToToUse;var protocol='http://';var isOneEntry;var doAutoTranslate;var facebookTranslateSource='facebookTranslateSource';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.noConflict();letsJQuery();}}
function letsJQuery()
{loadJqueryPlugins();setIsOneEntry();setDoStartAutoTranslate();TranslateLink();if(doAutoTranslate)
{window.setTimeout(autoTranslate,2000);}}
function setProtocol()
{if(autoProtocolMatchingEnabled)
{protocol=window.location.protocol+'//';}
if(protocol=='http://')
{onlyUseSecureProtocolCompatibleFeatures=false;}}
function setEntries()
{entries=jQuery('.UIIntentionalStory_Message, .UIStoryAttachment_Title, .UIStoryAttachment_Copy, #messages .text, .walltext, .subject_wrap, #notifications .title, .updates_messages [id*=\'essay\'], #info_tab [class*=\'info_\'] dd, #search_results .info dd, .infotable td, .group .group_title, .group .group_description, .profileTable .datawrap, .personal_msg');}
function setComments()
{comments=jQuery('.comment_actual_text');}
function setFacebookTranslateSource()
{facebookTranslateSource='facebookTranslateSource';}
function setFacebookTranslateSourceReverse()
{facebookTranslateSource='facebookTranslateSourceReverse';}
function loadJquery()
{var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");var src=protocol+'ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';script.setAttribute("language","javascript");script.setAttribute("src",src);head.appendChild(script);}
function loadJqueryPlugins()
{(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);}
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()
{setFacebookTranslateSource();languageCodeFromToUse=languageCodeFrom;languageCodeToToUse=languageCodeTo;}
function setTranslationDirectionReverse()
{setFacebookTranslateSourceReverse();languageCodeFromToUse=languageCodeTo;languageCodeToToUse=languageCodeFrom;}
function googleLoadControllerDefault()
{setTranslationDirectionDefault();googleLoadController();return false;}
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()
{setEntries();setComments();TranslateProcess();Translate_wait();}
function translatedLabelText()
{if(languageCodeFromToUse==languageCodeTo)
{return'Translated '+translateReverseLinkText.replace('Translate ',' ')+' ';}
else
{return'Translated '+translateLinkText.replace('Translate ',' ');}}
function autoTranslate()
{jQuery('#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()
{setEntries();setComments();var entryAndCommentCount=entries.length+comments.length+jQuery('.facebookTranslate').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()
{return true;}
function setDoStartAutoTranslate()
{doAutoTranslate=doStartAutoTranslate();}
function doStartAutoTranslate()
{var doStartAutoTrans=false;if(isOneEntry)
{if(autoTranslateEnabled)
{doStartAutoTrans=true;}}
else
{if(autoTranslateRealtimeEnabled)
{doStartAutoTrans=true;}}
return doStartAutoTrans;}
function titleIsOnlyUsername(title)
{if(jQuery.trim(title.find('.UIIntentionalStory_Names').text())==jQuery.trim(title.text()))
{return true;}
else
{return false;}}
function preTranslateHtmlScrub(html)
{return html.replace(/<img[^>]+>/g,' ');}
function TranslateLink()
{if(jQuery('#translateLink, translateLinkDiv').length==0)
{jQuery('li.fbm_last:last').append(linkDiv);jQuery('#translateLink').click(googleLoadControllerDefault);jQuery('.updates_messages [id*=\'essay-summary\'] a').click(googleLoadControllerDefault);jQuery('#translateLinkDiv').hoverIntent(function(){if(jQuery(this).css('opacity')=='1')
{jQuery(this).hide().fadeIn(100,function(){jQuery(this).attr('style',linkDivStyleFlyout);jQuery('#facebookTranslateScriptname').attr('style','padding:4px;background-color:rgb(110,110,110);');});}},function(){jQuery(this).fadeOut(1000,function(){jQuery(this).attr('style',linkDivStyle);jQuery('#facebookTranslateScriptname').attr('style','padding:0 0 1px 0;background-color:none;');}).show();});}}
function TranslateProcess()
{var afterClickLinkContent='<div id="translateAfter" style="padding:2px 0 2px 0;color:rgb(255,225,10);font-weight:bold">&nbsp;'+translatedLabelText()+'&nbsp;</div>';var titles=entries;var titleOnlyUsername=false;var titleHtml;var insertHtml;var shouldTranslate=true;titles.each(function(){var title=jQuery(this);var titleOnlyUsername=titleIsOnlyUsername(title);if(!title.hasClass(facebookTranslateSource)&&!titleOnlyUsername&&title.css('display')!='none')
{if(title.css('display')!='none')
{title.addClass(facebookTranslateSource);}
titleHtml=preTranslateHtmlScrub(title.html());google.language.translate(titleHtml,languageCodeFromToUse,languageCodeToToUse,function(result){if(doTranslation(result))
{if(result.translation){insertHtml='<div class="facebookTranslate" style="width:393px;margin:4px 0 4px 0;padding:2px 4px 2px 4px;background-color:'+translationBackgroundColorTo+'">'+result.translation+'</div>';shouldTranslate=true;if(title.hasClass('label')&&title[0].tagName=='TD')
{shouldTranslate=false;}
if(shouldTranslate)
{if(title[0].tagName=='DD'||title[0].tagName=='TD')
{title.append(insertHtml);}
else
{title.after(insertHtml);}
if(!isOneEntry&&!keepOriginalTextInRealtime)
{title.hide();}}}}});}});if(!isOneEntry&&!translateTitleOnlyInRealtime)
{comments.each(function(){var comm=jQuery(this);var commHtml=preTranslateHtmlScrub(comm.html());if(!comm.hasClass(facebookTranslateSource))
{comm.addClass(facebookTranslateSource);google.language.translate(commHtml,languageCodeFromToUse,languageCodeToToUse,function(result){if(doTranslation(result))
{comm.css('padding','10px 4px 4px 4px');if(result.translation){comm.after('<div class="facebookTranslate" style="background-color:'+translationBackgroundColorTo+' !important;padding:1px 4px 10px 4px;margin:4px 2px 4px 2px; border-bottom:1px gray solid;">'+result.translation+'</div>');if(!isOneEntry&&!keepOriginalTextInRealtime)
{comm.hide();}}}});}});}
jQuery('#translateAfter').remove();jQuery('#facebookTranslateScriptname').after(afterClickLinkContent).fadeIn(1000);jQuery('#translateReverse').remove();if(languageCodeFrom!='')
{jQuery('#translateLink').after(linkReverseDiv);jQuery('#translateReverseLink').click(googleLoadControllerReverse);}
return false;}
if(window.location.href.indexOf('facebook.com/')>-1)
{setProtocol();if(typeof jQuery=='undefined')
{loadJquery();}
GM_wait();}})();
