(function($){$.lazy=function(options){var src=options.src,name=options.name,cache=options.cache,self,arg,object={};$.lazy.archive[src]={'status':'unloaded','que':[]};function loadCSS(src,callback,self,name,arg){$.lazy.archive[src].status="loading";var node=document.createElement('link');node.type='text/css';node.rel='stylesheet';node.href=src;node.media='screen';document.getElementsByTagName("head")[0].appendChild(node);$.lazy.archive[src].status='loaded';if(callback)callback(self,name,arg);}function loadJS(src,callback,self,name,arg){$.lazy.archive[src].status="loading";$.ajax({type:"GET",url:src,cache:cache,dataType:"script",success:function(){$.lazy.archive[src].status='loaded';if(callback){callback(self,name,arg);}}});}function loadPlugin(self,name,arg){function callback(){if(typeof self=='object'){self.each(function(){if(arg.length>0){$(this)[name].apply(self,arg);}else{$(this)[name]();}});}else{$[name].apply(null,arg);}$.each($.lazy.archive[src].que,function(i){var queItem=$.lazy.archive[src].que[i];object[queItem.name].apply(queItem.self,queItem.arguments);});$.lazy.archive[src].que=[];}loadJS(src,callback,self,name,arg);}object[name]=function(){var self=this;arg=arguments;if($.lazy.archive[src].status==='loaded'){$.each(this,function(){$(this)[name].apply(self,arg);});}else if($.lazy.archive[src].status==='loading'){$.lazy.archive[src].que.push({'name':name,'self':self,'arguments':arg});}else{$.lazy.archive[src].status='loading';if(options.dependencies){var css=options.dependencies.css||[],js=options.dependencies.js||[];var total=css.length+js.length;function loadDependencies(array,callback,callbackCallback){var length=array.length,src;array=array.reverse();while(length--&&total--){src=array[length];if(typeof $.lazy.archive[src]=='undefined'){$.lazy.archive[src]={'status':'unloaded','que':[]};}if($.lazy.archive[src].status==='unloaded'){if(!total){callback(src,function(){loadPlugin(self,name,arg);});}else{callback(src);}}else if(!total){loadPlugin(self,name,arg);}}}loadDependencies(css,loadCSS);loadDependencies(js,loadJS);}else{loadPlugin(self,name,arg);}}return this;};jQuery.fn.extend(object);jQuery.extend(object);};$.lazy.archive={};})(jQuery);