
hydrogen={init:function(){hydrogen.tooltips.init();hydrogen.inlineComments.init();hydrogen.autosaveInputs.init();hydrogen.hud.init();hydrogen.autogrow.init();hydrogen.search.init();hydrogen.shortcuts.init();hydrogen.smoothScroll.init();},tooltips:{gravity:'s',animate:true,fade:250,fadeOutTimer:undefined,init:function(){$('.tooltip').live("mouseover",function(){var elem=$(this);var title=elem.attr('title');clearTimeout(hydrogen.tooltips.fadeOutTimer);$('div.tip').stop().remove();var tip=$('<div class="tip"><div class="tip-inner"/></div');if(elem.attr('type')=='image'){tip.find('.tip-inner').html('<img src="'+title+'" style="max-width:100px" />');}else{tip.find('.tip-inner').text(title);};tip.css({position:'absolute',zIndex:100000});elem.attr('original-title',title||'').attr('title','');var pos=$.extend({},elem.offset(),{width:elem.width(),height:elem.height()});tip.remove().css({top:0,left:0,visibility:'hidden',display:'block'}).appendTo(document.body);var actualWidth=tip.width(),actualHeight=tip.height();var paddingV=parseInt(elem.css('paddingTop'))+parseInt(elem.css('paddingBottom'));pos.height+=paddingV;var paddingH=parseInt(elem.css('paddingLeft'))+parseInt(elem.css('paddingRight'));pos.width+=paddingH;var gravity=hydrogen.tooltips.gravity;if(elem.attr('gravity')){gravity=elem.attr('gravity');}
var defaultCSS={opacity:0,display:"block",visibility:"visible"};switch(gravity.charAt(0)){case'n':tip.css({top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2-5}).addClass('tip-north');var gravityCSS={marginTop:'5px'};break;case's':tip.css({top:pos.top-actualHeight-10,left:pos.left+pos.width/2-actualWidth/2-5}).addClass('tip-south');var gravityCSS={marginTop:'-5px'};break;case'e':tip.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth-12}).addClass('tip-east');var gravityCSS={marginLeft:'-5px'};break;case'w':tip.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width+2}).addClass('tip-west');var gravityCSS={marginLeft:'5px'};break;}
elem.data('gravity',gravity);if(hydrogen.tooltips.fade){if(hydrogen.tooltips.animate){var gravityCSS=$.extend(defaultCSS,gravityCSS||{});tip.css(gravityCSS).animate({opacity:0.8,marginTop:0,marginLeft:0},hydrogen.tooltips.fade);}else{tip.css({opacity:0,display:'block',visibility:'visible'}).animate({opacity:0.8},hydrogen.tooltips.fade);};}else{tip.css({visibility:'visible'});};}).live("mouseout",function(){var elem=$(this);var title=elem.attr('original-title');elem.attr('title',title).attr('original-title','');hydrogen.tooltips.fadeOutTimer=setTimeout(function(){var tip=$('.tip');if(hydrogen.tooltips.fade){if(hydrogen.tooltips.animate){var defaultCSS={opacity:0};switch(elem.data('gravity').charAt(0)){case'n':var gravityCSS={marginTop:'5px'};break;case's':var gravityCSS={marginTop:'-5px'};break;case'e':var gravityCSS={marginLeft:'-5px'};break;case'w':var gravityCSS={marginLeft:'5px'};break;}
var gravityCSS=$.extend(defaultCSS,gravityCSS||{});tip.stop().animate(gravityCSS,hydrogen.tooltips.fade,function(){$(this).remove();});}else{tip.stop().fadeOut(hydrogen.tooltips.fade,function(){$(this).remove();});};}else{tip.remove();};},100);});},},shortcuts:{enable:true,init:function(){$('input, textarea, select').live('focus',function(){hydrogen.shortcuts.enable=false;}).live('blur',function(){hydrogen.shortcuts.enable=true;});$(document).keypress(function(e){if(hydrogen.shortcuts.enable){var code=e.charCode;if(code==63){$('#search').focus();};};});},},search:{timer:'',lastQuery:'',lastContent:'',init:function(){$('#search').focus(function(){if($(this).val().toLowerCase()=='search'){$(this).val('');}else{hydrogen.search.showAutoComplete();}}).blur(function(){if($(this).val()==''){$(this).val('Search');}
hydrogen.search.hideAutoComplete();}).keyup(function(){clearTimeout(hydrogen.search.timer);hydrogen.search.timer=setTimeout(hydrogen.search.getResults,400);});},getResults:function(){var query=$('#search').val();if(query!=''&&query!=hydrogen.search.lastQuery){hydrogen.search.lastQuery=query;$.getJSON('/search',{q:query},function(json){hydrogen.search.updateAutoComplete(json);});}},showAutoComplete:function(){if($('#search-autocomplete').length==0){var container=$('<div/>');container.attr('id','search-autocomplete-container');var autocomplete=$('<div/>');autocomplete.attr('id','search-autocomplete');autocomplete.appendTo(container);container.hide().appendTo($('.search-bar')).fadeIn(200);}else{$('#search-autocomplete-container').fadeIn(200);}},updateAutoComplete:function(json){if(json.length==0)hydrogen.search.hideAutoComplete();else hydrogen.search.showAutoComplete();var content='';for(var i in json){var style=(json[i]['type']=='more')?' align-center':'';content+='<a href="'+json[i]['url']+'" class="item'+style+'">';if(json[i]['type']=='KB')content+='<div class="featured"></div>';content+=json[i]['title']+'</a>';}
$('#search-autocomplete').html(content);hydrogen.search.lastContent=content;},hideAutoComplete:function(){$('#search-autocomplete-container').stop().fadeOut(200);},},autogrow:{minHeight:100,init:function(){$('textarea.autogrow').css({overflow:'hidden'});$('textarea.autogrow').each(function(){hydrogen.autogrow.grow($(this));})
$('textarea.autogrow').live('keyup',function(){hydrogen.autogrow.grow($(this))});},grow:function(textarea){var div=$('<div/>');var width=textarea.width();var text=textarea.val();text=text.replace(/</g,"&lt;");text=text.replace(/>/g,"&gt;");text=text.replace(/\n/g,"<br />");div.addClass('textarea-autogrow').css({width:width}).html(text+'&nbsp;').hide();div.appendTo(document.body);var height=parseInt(div.height())+100;if(parseInt(height)<hydrogen.autogrow.minHeight){height=hydrogen.autogrow.minHeight;}
textarea.height(height);},},inlineComments:{init:function(){$('a.inline-comment-trigger').live('click',function(){var ident=$(this).attr('rel');ident=ident.split('-');var commentID=ident[1];var topicID=ident[0];var subcomment=$('<div/>');subcomment.addClass('subcomment');subcomment.html('<form action="/community/subcomments/new" method="post"><input type="hidden" name="comment" value="'+commentID+'" /><input type="hidden" name="topic" value="'+topicID+'" /><input type="text" class="text left" name="subcomment" /> <button type="submit" class="button" style="margin:0 0 0 10px"><span>Post</span></button></form><div class="clear"></div>');subcomment.appendTo('#comment-'+commentID+' .subcomment-container');$(this).parent().remove();subcomment.find('input').focus();return false;});},},autosaveInputs:{init:function(){$('form.autosave .submit').remove();$("form.autosave input[type='radio'].autosaveinput").live('click',function(){var radio=$(this);var method=radio.attr('method');var action=radio.attr('action');var name=radio.attr('name');var value=radio.val();var url=action.split('.');url='/'+url.join('/');var loader=$('<img/>');loader.attr('src','/img/loader.gif');loader.css({width:'14px',height:'14px',marginRight:'4px'});$.ajax({type:method,url:url,data:name+'='+value,beforeSend:function(){loader.insertAfter(radio);radio.remove();},success:function(){radio.insertAfter(loader);loader.remove();loader.blur();}})});hydrogen.autosaveInputs.attachTextInput();},attachTextInput:function(){$("form.autosave input[type='text']").blur(function(){var input=$(this);var method=input.attr('method');var action=input.attr('action');var name=input.attr('name');var value=input.val();var inputClass='';if(input.hasClass('title'))inputClass='title';if(input.hasClass('text'))inputClass='test';var url=action.split('.');url='/'+url.join('/');var loader=$('<input/>');loader.attr('type','text').attr('value','Saving...').attr('disabled','disabled').addClass(inputClass);$.ajax({type:method,url:url,data:'name='+name+'&value='+value,beforeSend:function(){loader.insertAfter(input);input.remove();},success:function(data){input.val(data);input.insertAfter(loader);loader.remove();hydrogen.autosaveInputs.attachTextInput();}});}).keyup(function(e){if(e.keyCode==13){$(this).blur();}});},},hud:{cache:'',init:function(){$('.hud-trigger').live('click',function(){$('body').append(hydrogen.hud.cache);hydrogen.hud.cache='';$('.hud-container').stop().remove();var trigger=$(this);var hud=$('<div/>');hud.addClass('hud-container');hud.html('<a href="#" id="close-hud-trigger" class="close-hud-trigger"></a><table class="hud"><tr><td></td><td></td><td></td></tr><tr><td></td><td class="hud-text"></td><td></td></tr><tr><td></td><td></td><td></td></tr></table>');if(trigger.attr('rel')!=undefined&&trigger.attr('rel')!=''){var content=$(trigger.attr('rel')).html();hud.find('.hud-text').html(content);cache_div_id=trigger.attr('rel').split('#');cache_div_id=cache_div_id[1];hydrogen.hud.cache='<div id="'+cache_div_id+'" class="hud-content">'+content+'</div>';$(trigger.attr('rel')).remove();hud.appendTo(document.body);hud.hide().fadeIn();trigger.blur();}else if(trigger.attr('href')!=undefined&&trigger.attr('href')!=''){hud.find('.hud-text').html('<h4 class="align-center" style="border-bottom:0"><img src="/img/ajax-loader.gif" alt="Loading&hellip;" /></h4>');hud.appendTo(document.body);hud.hide().fadeIn();trigger.blur();$.get(trigger.attr('href'),function(data){if(data=='__reload'){window.location.reload()}else{hud.find('.hud-text').html(data);}});}
return false;});$('.close-hud-trigger').live('click',function(){hydrogen.hud.remove();return false;});},remove:function(){$('body').append(hydrogen.hud.cache);hydrogen.hud.cache='';$('.hud-container').stop().fadeOut(function(){$(this).remove();});}},articleIndex:{index:undefined,x:undefined,y:undefined,offset:20,init:function(){hydrogen.articleIndex.index=$('#article-index');index=hydrogen.articleIndex.index;var offset=index.offset();hydrogen.articleIndex.x=offset.left;hydrogen.articleIndex.y=offset.top;$(window).scroll(function(){if($(window).scrollTop()>(hydrogen.articleIndex.y-hydrogen.articleIndex.offset)){hydrogen.articleIndex.index.css({position:'fixed',top:hydrogen.articleIndex.offset+'px',left:hydrogen.articleIndex.x+'px'});}else{hydrogen.articleIndex.index.css({position:'relative',top:'0',left:'0'});}});},},smoothScroll:{disable:false,init:function(){if(hydrogen.smoothScroll.disable==false){$('a[href*="#"]').live('click',function(){if(location.pathname.replace(/^\//,'')==this.pathname.replace(/^\//,'')&&location.hostname==this.hostname){$(this).blur();var $target=$(this.hash);$target=$target.length&&$target||$('[name='+this.hash.slice(1)+']');if($target.length){var targetOffset=$target.offset().top;$('html,body').animate({scrollTop:targetOffset},500);return false;}}});}},},};$(document).ready(function(){hydrogen.init();})