/* -- @ - GLOBAL OBJECTS - To be included in all libraries -- */

var DomLoaded={onload:[],loaded:function(){if(arguments.callee.done)return;arguments.callee.done=true;for(var i=0;i<DomLoaded.onload.length;i++)DomLoaded.onload[i]();},load:function(fireThis){this.onload.push(fireThis);/*@cc_on @*//*@if(@_win32)var proto="javascript:void(0)";if(location.protocol=="https:")proto="src=//0";document.write("<script id=__ie_onload defer src=" + proto + "><\/script>");var script=$("__ie_onload");script.onreadystatechange=function(){if(this.readyState=="complete")DomLoaded.loaded();} @else @*/if(document.addEventListener)document.addEventListener("DOMContentLoaded",DomLoaded.loaded,null);if(/KHTML|WebKit/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(_timer);delete _timer;DomLoaded.loaded();}},10);}window.onload=DomLoaded.loaded;/*@end @*/}};

// @author: Quirksmode
// @description: addEvent function from http://www.quirksmode.org/
var AddEvent=function(obj,type,fn){if(obj.addEventListener)obj.addEventListener(type,fn,false);else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);};obj.attachEvent("on"+type,obj[type+fn]);}};

// @author: Unknown
// @modified: Richard Herrera
// @description: Dollar Function - Shorthand getElementById
var $=function(){var elements=[];for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=="string")element=document.getElementById(element);if(arguments.length==1)return element;elements.push(element);}return elements;};

// @author: Robert Nyman
// @modified: Richard Herrera
// @description: getElementsByClassName
var getElementsByClassName=function(_scope,_tag,_class){var els=(_tag=="*"&&_scope.all)?_scope.all:_scope.getElementsByTagName(_tag);var elArray=[];var regExArray=[];if(typeof _class=="object")for(var i=0;i<_class.length;i++)regExArray.push(new RegExp("(^|\\s)"+_class[i].replace(/\-/g,"\\-")+"(\\s|$)"));else regExArray.push(new RegExp("(^|\\s)"+_class.replace(/\-/g,"\\-")+"(\\s|$)"));var e,_match;for(var j=0;j<els.length;j++){e=els[j];_match=true;for(var k=0;k<regExArray.length;k++){if(!regExArray[k].test(e.className)){_match=false;break;}}if(_match)elArray.push(e);}return(elArray);};

// @author: Robert Nyman
// @modified: Richard Herrera
// @description: Add / Remove / Replace / Test / Get class name
var ClassName={add:function(e,_class){if(!new RegExp(_class,"i").test(e.className))e.className=e.className+((e.className.length>0)?" ":"")+_class;},remove:function(e,_class){e.className=e.className.replace(new RegExp((_class+"\s?"),"i"),"").replace(/^\s?|\s?$/g,"");},replace:function(e,_class,_new){e.className=e.className.replace(_class,_new);},test:function(e,_class){return new RegExp("(?:^|\\s+)"+_class+"(?:\\s+|$)").test(e.className);},get:function(_scope,_tag,_class){var els=(_tag=="*"&&_scope.all)?_scope.all:_scope.getElementsByTagName(_tag);var elArray=[],regExArray=[];if(typeof _class=="object")for(var i=0;i<_class.length;i++)regExArray.push(new RegExp("(^|\\s)"+_class[i].replace(/\-/g,"\\-")+"(\\s|$)"));else regExArray.push(new RegExp("(^|\\s)"+_class.replace(/\-/g,"\\-")+"(\\s|$)"));var e,_match;for(var i=0;i<els.length;i++){e=els[i];_match=true;for(var j=0;j<regExArray.length;j++){if(!regExArray[j].test(e.className)){_match=false;break;}}if(_match)elArray.push(e);}return(elArray);}};


