(function($){function form_data(form){return form.find("input[checked], input[type='text'], input[type='hidden'], input[type='password'], input[type='submit'], option[selected], textarea").filter(':enabled');}
function inputs(form){return form.find("input, select, textarea");}
$.fn.validate=function(url,settings){settings=$.extend({type:'table',callback:false,fields:false,dom:this,event:'submit'},settings);return this.each(function(){var form=$(this);settings.dom.bind(settings.event,function(){var params={};form_data(form).each(function(){params[this.name||this.id||this.parentNode.name||this.parentNode.id]=this.value;});var status=false;if(settings.fields){params.fields=settings.fields;}
$.ajax({async:false,data:params,dataType:'json',error:function(XHR,textStatus,errorThrown){status=true;},success:function(data,textStatus){status=data.valid;if(!status){if(settings.callback){settings.callback(data,form);}
else{if(settings.type=='p'){inputs(form).parent().prev('ul').remove();inputs(form).parent().prev('ul').remove();$.each(data.errors,function(key,val){if(key=='__all__'){var error=inputs(form).filter(':first').parent();if(error.prev().is('ul.errorlist')){error.prev().before('<ul class="errorlist"><li>'+val+'</li></ul>');}
else{error.before('<ul class="errorlist"><li>'+val+'</li></ul>');}}
else{$('#'+key).parent().before('<ul class="errorlist"><li>'+val+'</li></ul>');}});}
if(settings.type=='table'){inputs(form).prev('ul').remove();inputs(form).filter(':first').parent().parent().prev('tr').remove();$.each(data.errors,function(key,val){if(key=='__all__'){inputs(form).filter(':first').parent().parent().before('<tr><td colspan="2"><ul class="errorlist"><li>'+val+'.</li></ul></td></tr>');}
else{$('#'+key).before('<ul class="errorlist"><li>'+val+'</li></ul>');}});}
if(settings.type=='ul'){inputs(form).prev().prev('ul').remove();inputs(form).filter(':first').parent().prev('li').remove();$.each(data.errors,function(key,val){if(key=='__all__'){inputs(form).filter(':first').parent().before('<li><ul class="errorlist"><li>'+val+'</li></ul></li>');}
else{$('#'+key).prev().before('<ul class="errorlist"><li>'+val+'</li></ul>');}});}}}},type:'POST',url:url});return status;});});};})(jQuery);;(function($){$.extend($.fn,{swapClass:function(c1,c2){var c1Elements=this.filter('.'+c1);this.filter('.'+c2).removeClass(c2).addClass(c1);c1Elements.removeClass(c1).addClass(c2);return this;},replaceClass:function(c1,c2){return this.filter('.'+c1).removeClass(c1).addClass(c2).end();},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(animated,callback){animated?this.animate({height:"toggle"},animated,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)
callback.apply(this,arguments);});},heightHide:function(animated,callback){if(animated){this.animate({height:"hide"},animated,callback);}else{this.hide();if(callback)
this.each(callback);}},prepareBranches:function(settings){if(!settings.prerendered){this.filter(":last-child:not(ul)").addClass(CLASSES.last);this.filter((settings.collapsed?"":"."+CLASSES.closed)+":not(."+CLASSES.open+")").find(">ul").hide();}
return this.filter(":has(>ul)");},applyClasses:function(settings,toggler){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event){toggler.apply($(this).next());}).add($("a",this)).hoverClass();if(!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable);this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);this.prepend("<div class=\""+CLASSES.hitarea+"\"/>").find("div."+CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea ";});$(this).addClass(classes);});}
this.find("div."+CLASSES.hitarea).click(toggler);},treeview:function(settings){settings=$.extend({cookieId:"treeview"},settings);if(settings.add){return this.trigger("add",[settings.add]);}
if(settings.toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments);};}
function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;};}
$("a:eq(0)",control).click(handler(CLASSES.collapsable));$("a:eq(1)",control).click(handler(CLASSES.expandable));$("a:eq(2)",control).click(handler());}
function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle);if(settings.unique){$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle);}}
function serialize(){function binary(arg){return arg?1:0;}
var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie(settings.cookieId,data.join(""));}
function deserialize(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}
this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}};deserialize();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase();});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}
break;}
branches.applyClasses(settings,toggler);if(settings.control){treeController(this,settings.control);$(settings.control).show();}
return this.bind("add",function(event,branches){$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea);$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings,toggler);});}});var CLASSES=$.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};$.fn.Treeview=$.fn.treeview;})(jQuery);;(function($){function load(settings,root,child,container){$.getJSON(settings.url,{root:root},function(response){function createNode(parent){var current=$("<li/>").attr("id",this.id||"").html("<span>"+this.text+"</span>").appendTo(parent);if(this.classes){current.children("span").addClass(this.classes);}
if(this.expanded){current.addClass("open");}
if(this.hasChildren||this.children&&this.children.length){var branch=$("<ul/>").appendTo(current);if(this.hasChildren){current.addClass("hasChildren");createNode.call({text:"placeholder",id:"placeholder",children:[]},branch);}
if(this.children&&this.children.length){$.each(this.children,createNode,[branch])}}}
$.each(response,createNode,[child]);$(container).treeview({add:child});});}
var proxied=$.fn.treeview;$.fn.treeview=function(settings){if(!settings.url){return proxied.apply(this,arguments);}
var container=this;load(settings,"source",this,container);var userToggle=settings.toggle;return proxied.call(this,$.extend({},settings,{collapsed:true,toggle:function(){var $this=$(this);if($this.hasClass("hasChildren")){var childList=$this.removeClass("hasChildren").find("ul");childList.empty();load(settings,this.id,childList,container);}
if(userToggle){userToggle.apply(this,arguments);}}}));};})(jQuery);function floatingBox(box,options,index)
{this.targetX=-250;this.targetY=10;this.interval=10;this.menu=box;this.index=index;this.options=options;this.hasInner=typeof(window.innerWidth)=='number';this.hasElement=document.documentElement&&document.documentElement.clientWidth;this.move=function()
{jQuery(this.menu).css('left',this.nextX+'px').css('top',this.nextY+'px');};this.computeShifts=function()
{var de=document.documentElement;this.shiftX=this.hasInner?pageXOffset:this.hasElement?de.scrollLeft:document.body.scrollLeft;if(this.targetX<0)
{if(this.hasElement&&this.hasInner)
{this.shiftX+=de.clientWidth>window.innerWidth?window.innerWidth:de.clientWidth}
else
{this.shiftX+=this.hasElement?de.clientWidth:this.hasInner?window.innerWidth:document.body.clientWidth;}}
this.shiftY=this.hasInner?pageYOffset:this.hasElement?de.scrollTop:document.body.scrollTop;if(this.targetY<0)
{if(this.hasElement&&this.hasInner)
{this.shiftY+=de.clientHeight>window.innerHeight?window.innerHeight:de.clientHeight}
else
{this.shiftY+=this.hasElement?document.documentElement.clientHeight:this.hasInner?window.innerHeight:document.body.clientHeight;}}};this.doFloat=function()
{var stepX,stepY;this.computeShifts();stepX=(this.shiftX+
this.targetX-this.nextX)*.07;if(Math.abs(stepX)<.5)
{stepX=this.shiftX+
this.targetX-this.nextX;}
stepY=(this.shiftY+
this.targetY-this.nextY)*.07;if(Math.abs(stepY)<.5)
{stepY=this.shiftY+
this.targetY-this.nextY;}
if(Math.abs(stepX)>0||Math.abs(stepY)>0)
{this.nextX+=stepX;this.nextY+=stepY;this.move();}
setTimeout('funcFloating['+this.index+'].func()',this.interval);};this.initSecondary=function()
{this.computeShifts();this.nextX=this.shiftX+
this.targetX;this.nextY=this.shiftY+
this.targetY;this.move();};this.position=function(targetX,targetY)
{if(typeof(targetX)=='number')
{this.targetX=targetX;}else if(typeof(targetX)=='string')
{switch(targetX)
{case'left':this.targetX=5;break;case'right':this.targetX=-((jQuery(this.menu).outerWidth())+5);break;}}
if(typeof(targetY)=='number')
{this.targetY=targetY;}else if(typeof(targetY)=='string')
{switch(targetY)
{case'top':this.targetY=5;break;case'bottom':this.targetY=-((jQuery(this.menu).outerHeight()+5));break;}}};this.init=function()
{jQuery(this.menu).css('position','absolute');if(typeof(this.options)=='object')
{for(var i in this.options)
{switch(i)
{case'targetX':case'targetY':if(typeof(this.options[i])=='number')
{this[i]=this.options[i];}else if(typeof(this.options[i])=='string')
{switch(this.options[i])
{case'top':this.targetY=5;break;case'bottom':this.targetY=-((jQuery(this.menu).outerHeight()+5));break;case'left':this.targetX=5;break;case'right':this.targetX=-((jQuery(this.menu).outerWidth())+5);break;}}
break;default:this[i]=this.options[i];}}}
this.initSecondary();this.doFloat();}};var funcFloating={};jQuery.fn.floating=function(options)
{return jQuery(this).each(function(i)
{var nextIndex=0;for(var index in funcFloating)
{nextIndex=parseInt(index);}
funcFloating[nextIndex+1]={};funcFloating[nextIndex+1].box=this;funcFloating[nextIndex+1].obj=new floatingBox(this,options,(nextIndex+1));funcFloating[nextIndex+1].func=function(){funcFloating[nextIndex+1].obj.doFloat();};if(document.layers)
{funcFloating[nextIndex+1].obj.init();}else
{funcFloating[nextIndex+1].obj.init();funcFloating[nextIndex+1].obj.initSecondary();}});};jQuery.fn.floatingPosition=function(targetX,targetY)
{return jQuery(this).each(function(i)
{for(var j in funcFloating)
{if(funcFloating[j].box==this)
{funcFloating[j].obj.position(targetX,targetY);}}});};;(function(){var $$;$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){var block=replace||$$.replace;pluginOptions=$$.copy($$.pluginOptions,pluginOptions);if(!$$.hasFlash(pluginOptions.version)){if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){var expressInstallOptions={flashvars:{MMredirectURL:location,MMplayerType:'PlugIn',MMdoctitle:jQuery('title').text()}};}else if(pluginOptions.update){block=update||$$.update;}else{return this;}}
htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);return this.each(function(){block.call(this,$$.copy(htmlOptions));});};$$.copy=function(){var options={},flashvars={};for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(arg==undefined)continue;jQuery.extend(options,arg);if(arg.flashvars==undefined)continue;jQuery.extend(flashvars,arg.flashvars);}
options.flashvars=flashvars;return options;};$$.hasFlash=function(){if(/hasFlash\=true/.test(location))return true;if(/hasFlash\=false/.test(location))return false;var pv=$$.hasFlash.playerVersion().match(/\d+/g);var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);for(var i=0;i<3;i++){pv[i]=parseInt(pv[i]||0);rv[i]=parseInt(rv[i]||0);if(pv[i]<rv[i])return false;if(pv[i]>rv[i])return true;}
return true;};$$.hasFlash.playerVersion=function(){try{try{var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');try{axo.AllowScriptAccess='always';}
catch(e){return'6,0,0';}}catch(e){}
return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1];}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1];}}catch(e){}}
return'0,0,0';};$$.htmlOptions={height:240,flashvars:{},pluginspage:'http://www.adobe.com/go/getflashplayer',src:'#',type:'application/x-shockwave-flash',width:320};$$.pluginOptions={expressInstall:false,update:true,version:'6.0.65'};$$.replace=function(htmlOptions){this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions));};$$.update=function(htmlOptions){var url=String(location).split('?');url.splice(1,0,'?hasFlash=true&');url=url.join('');var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';jQuery(this).addClass('flash-update').prepend(msg);};function toAttributeString(){var s='';for(var key in this)
if(typeof this[key]!='function')
s+=key+'="'+this[key]+'" ';return s;};function toFlashvarsString(){var s='';for(var key in this)
if(typeof this[key]!='function')
s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'');};$$.transform=function(htmlOptions){htmlOptions.toString=toAttributeString;if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;return'<embed '+String(htmlOptions)+'/>';};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});}})();(function(){var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();window.$.client={os:BrowserDetect.OS,browser:BrowserDetect.browser};})();$.fn.clearForm=function(){return this.each(function(){var
type=this.type,tag=this.tagName.toLowerCase(),css=this.className;if(tag=='form'){$(".errorlist").remove();return $(':input',this).clearForm();}
if(css.indexOf('dont-clear')<0){if(type=='text'||type=='password'){this.value='';}
else if(tag=='textarea'){this.value='';if(typeof(window['tinyMCE'])!='undefined'){var editor=tinyMCE.getInstanceById(this.id)
if(editor)editor.setContent('');}}
else if(type=='checkbox'||type=='radio'){this.checked=false;}
else if(tag=='select'){$(this).val("").change();}}});};$(document).ready(function(){$('.button').button();$('#floater').floating({'targetY':'top'});$('#navigation ul li:last').css('background','none');$('.message').delay(10000).slideUp();var login_defaults=new Array();$('#formLogin input:text, #formLogin input:password').live('focus',function(event){var name=$(this).attr('name');if(!login_defaults[name]){login_defaults[name]=$(this).val();$(this).val('');}});$('#formLogin input:text, #formLogin input:password').live('blur',function(event){var name=$(this).attr('name');if(!$(this).val()){$(this).val(login_defaults[name]);delete login_defaults[name];}});$('a[rel*=external]').click(function(){window.open(this.href);return false;});$('.listing .tab').live('click',function(event){var title=$(this).attr('title');if(title){$('.tab',$(this).parent()).each(function(){$(this).removeClass("active");$('#'+$(this).attr('title')).hide();});$(this).addClass('active');$('#'+title).fadeIn();}
event.preventDefault();return false;});var OS=$.client.os;$('.download-link').each(function(){switch(OS){case'Windows':$(this).attr('href',Settings.GAEA_DOWNLOAD_WINDOW);break;case'Linux':$(this).attr('href',Settings.GAEA_DOWNLOAD_LINUX);break;case'Mac':$(this).attr('href',Settings.GAEA_DOWNLOAD_MAC);break;}});$window=$('<div></div>').dialog({autoOpen:false,resizable:false,draggable:false,position:'center',modal:true,minHeight:120,height:120,minWidth:400,width:400});var cache_search={};$('#id_search').autocomplete({minLength:4,source:function(request,response){if(request.term in cache_search){response(cache_search[request.term]);return;}
$.ajax({url:'/search/json/',dataType:'json',data:request,success:function(data){cache_search[request.term]=data;response(data);}});}});var cache_images=[];$.preLoadImages=function(){var args_len=arguments.length;for(var i=args_len;i--;){var cacheImage=document.createElement('img');cacheImage.src=arguments[i];cache_images.push(cacheImage);}}});
