var Behaviour={list:new Array,executedList:new Array,register:function(sheet){var bindingsToAdd={};for(var selector in sheet){if(!this.isAlreadyRegistered(selector,sheet[selector])){bindingsToAdd[selector]=sheet[selector];}}Behaviour.list.push(bindingsToAdd);},start:function(){Behaviour.addLoadEvent(function(){Behaviour.apply();});},isAlreadyRegistered:function(selectorToFind,functionToFind){var result=false;for(var h=0;sheet=Behaviour.list[h];h++){for(selector in sheet){var funct=sheet[selector];var functComp=(String(funct)==String(functionToFind));if(selector==selectorToFind&&functComp){result=true;break;}}}return result;},apply:function(){for(h=0;sheet=Behaviour.list[h];h++){for(selector in sheet){list=document.getElementsBySelector(selector);if(!list){continue;}var executedFuncts="";for(var i=0;element=list[i];i++){var funct=sheet[selector];if(!this.hasFunctionBeenExecuted(element,funct)){executedFuncts+="\n"+funct;element=Elements.fix(element);try{funct(element);}catch(e){window.console.error(e);}this.addExecutedFunction(element,funct);}}}}},reapply:function(){setTimeout(function(){Behaviour.apply();},50);},addLoadEvent:function(func){var oldonload=window.onload;if(typeof window.onload!="function"){window.onload=func;}else{window.onload=function(){oldonload();func();};}},addExecutedFunction:function(element,funct){var index=this.findExecutedIndex(element);if(!this.executedList[index]){index=this.executedList.length;this.executedList[index]=new Array();this.executedList[index]["element"]=element;this.executedList[index]["executedFunctions"]=new Array();}var executedFunctions=this.executedList[index]["executedFunctions"];executedFunctions[executedFunctions.length]=funct;},hasFunctionBeenExecuted:function(element,funct){var result=false;var index=this.findExecutedIndex(element);if(this.executedList[index]){for(var i=0;i<this.executedList[index]["executedFunctions"].length;++i){var executedFunct=this.executedList[index]["executedFunctions"][i];if(executedFunct==funct){result=true;break;}}}return result;},findExecutedIndex:function(element){var index=-1;for(var i=0;i<this.executedList.length;++i){if(this.executedList[i]["element"]===element){index=i;break;}}return index;}};Behaviour.start();function getAllChildren(e){return e.all?e.all:e.getElementsByTagName("*");}document.getElementsBySelector=function(selector){if(!document.getElementsByTagName){return new Array();}var tokens=selector.split(" ");var currentContext=new Array(document);for(var i=0;i<tokens.length;i++){token=tokens[i].replace(/^\s+/,"").replace(/\s+$/,"");if(token.indexOf("#")>-1){var bits=token.split("#");var tagName=bits[0];var id=bits[1];var element=document.getElementById(id);if(element==null){return new Array();}if(tagName&&element.nodeName.toLowerCase()!=tagName){return new Array();}currentContext=new Array(element);continue;}if(token.indexOf(".")>-1){var bits=token.split(".");var tagName=bits[0];var className=bits[1];if(!tagName){tagName="*";}var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements;if(tagName=="*"){elements=getAllChildren(currentContext[h]);}else{elements=currentContext[h].getElementsByTagName(tagName);}for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}currentContext=new Array;var currentContextIndex=0;for(var k=0;k<found.length;k++){if(found[k].className&&found[k].className.match(new RegExp("\\b"+className+"\\b"))){currentContext[currentContextIndex++]=found[k];}}continue;}if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)){var tagName=RegExp.$1;var attrName=RegExp.$2;var attrOperator=RegExp.$3;var attrValue=RegExp.$4;if(!tagName){tagName="*";}var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements;if(tagName=="*"){elements=getAllChildren(currentContext[h]);}else{elements=currentContext[h].getElementsByTagName(tagName);}for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}currentContext=new Array;var currentContextIndex=0;var checkFunction;switch(attrOperator){case"=":checkFunction=function(e){return(e.getAttribute(attrName)==attrValue);};break;case"~":checkFunction=function(e){return(e.getAttribute(attrName).match(new RegExp("\\b"+attrValue+"\\b")));};break;case"|":checkFunction=function(e){return(e.getAttribute(attrName).match(new RegExp("^"+attrValue+"-?")));};break;case"^":checkFunction=function(e){return(e.getAttribute(attrName).indexOf(attrValue)==0);};break;case"$":checkFunction=function(e){return(e.getAttribute(attrName).lastIndexOf(attrValue)==e.getAttribute(attrName).length-attrValue.length);};break;case"*":checkFunction=function(e){return(e.getAttribute(attrName).indexOf(attrValue)>-1);};break;default:checkFunction=function(e){return e.getAttribute(attrName);};}currentContext=new Array;var currentContextIndex=0;for(var k=0;k<found.length;k++){if(checkFunction(found[k])){currentContext[currentContextIndex++]=found[k];}}continue;}if(!currentContext[0]){return ;}tagName=token;var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements=currentContext[h].getElementsByTagName(tagName);for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}currentContext=found;}return currentContext;};