   
var Behaviour={list : new Array,
register : function(sheet){Behaviour.list.push(sheet);},
start : function(){Behaviour.addLoadEvent(function(){Behaviour.apply();});},
apply : function(){for (h=0;sheet=Behaviour.list[h];h++){for (selector in sheet){list=document.getElementsBySelector(selector);if (!list){continue;}
for (i=0;element=list[i];i++){sheet[selector](element);}}}},
addLoadEvent : function(func){var oldonload=window.onload;if (typeof window.onload !='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}}
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 (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;}
