/* 20100914 */

/**
 * Jelo JavaScript Library
 *     Website: http://fatfreejelo.com/
 *     Copyright 2008-current, HB Stone
 *     License: http://creativecommons.org/licenses/MIT/
 * 
 * Includes Sizzle.js
 *     Website: http://sizzlejs.com/
 *     Copyright 2010, The Dojo Foundation
 *     Released under the MIT, BSD, and GPL Licenses.
 * 
 */

(function(J){var D=window.document,isReady=false,onReady=[],fireReady=function(){isReady=true;for(var i=0;i<onReady.length;i++){try{onReady[i].call(window,J);}catch(e){if('console'in window&&'log'in console){console.log(e);}}}
onReady=[];},init=function(){if(D.addEventListener){if((/webkit/i).test(window.navigator.userAgent)){var timer=setInterval(function(){if(/complete|loaded/i.test(D.readyState)){clearInterval(timer);fireReady();}},20);}else{D.addEventListener("DOMContentLoaded",fireReady,false);}}else{var old=(typeof window.onload=="function")?window.onload:J.emptyFn;window.onload=function(){old();fireReady();};}};J.emptyFn=function(){};J.mold=function(n,o,v){if(!J[n]||v){J[n]=o;}};J.load=function(){if(!isReady){var args=arguments;setTimeout(function(){J.load.apply(window,args);},20);return;}
var a=[].slice.call(arguments,0),c=(typeof a[a.length-1]=='function')?a.pop():J.emptyFn,m=a.join(',').toLowerCase(),s=D.createElement('script');if(m.length){s.src='http://fatfreejelo.com/load/'+m+'/';if(s.readyState){s.onreadystatechange=function(){if((/complete|loaded/).test(s.readyState)){s.onreadystatechange=J.emptyFn;if(isReady){c.call(window,J);}else{onReady.push(c);}}};}else{s.onload=function(){if(isReady){c.call(window,J);}else{onReady.push(c);}};}
D.documentElement.firstChild.appendChild(s);}else{c.call(window,J);}};window.Jelo=J;init();})(window.Jelo||{});
(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true;[0,0].sort(function(){baseHasDuplicate=false;return 0;});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[];}
if(!selector||typeof selector!=="string"){return results;}
var parts=[],m,set,checkSet,extra,prune=true,contextXML=isXML(context),soFar=selector,ret,cur,pop,i;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break;}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift();}
set=posProcess(selector,set);}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];}
if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}
if(!checkSet){checkSet=set;}
if(!checkSet){Sizzle.error(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else
if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}
return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.find=function(expr,context,isXML){var set;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=context.getElementsByTagName("*");}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){var filter=Expr.filter[type],found,item,left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue;}
if(curLoop===result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else
if(match===true){continue;}}
if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else
if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr===old){if(anyFound==null){Sizzle.error(expr);}else{break;}}
old=expr;}
return curLoop;};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part){var isPartStr=typeof part==="string",elem,i=0,l=checkSet.length;if(isPartStr&&!/\W/.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false;}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck,nodeCheck;if(typeof part==="string"&&!/\W/.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck,nodeCheck;if(typeof part==="string"&&!/\W/.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[];}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){return context.getElementsByTagName(match[1]);}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem);}}else
if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(/\\/g,"");},TAG:function(match,curLoop){return match[1].toLowerCase();},CHILD:function(match){if(match[1]==="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else
if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return(/h\d/i).test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toLowerCase()==="button";},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0===i;},eq:function(elem,i,match){return match[3]-0===i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else
if(name==="contains"){return(elem.textContent||elem.innerText||getText([elem])||"").indexOf(match[3])>=0;}else
if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false;}}
return true;}else{Sizzle.error("Syntax error, unrecognized expression: "+name);}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case'only':case'first':while((node=node.previousSibling)){if(node.nodeType===1){return false;}}
if(type==="first"){return true;}
node=elem;case'last':while((node=node.nextSibling)){if(node.nodeType===1){return false;}}
return true;case'nth':var first=match[2],last=match[3];if(first===1&&last===0){return true;}
var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent.sizcache=doneName;}
var diff=elem.nodeIndex-last;if(first===0){return diff===0;}else{return(diff%first===0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1);};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape));}
var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType;}catch(e){makeArray=function(array,results){var ret=results||[],i=0;if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i]);}}else{for(;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(!a.compareDocumentPosition||!b.compareDocumentPosition){if(a==b){hasDuplicate=true;}
return a.compareDocumentPosition?-1:1;}
var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true;}
return ret;};}else
if("sourceIndex"in document.documentElement){sortOrder=function(a,b){if(!a.sourceIndex||!b.sourceIndex){if(a==b){hasDuplicate=true;}
return a.sourceIndex?-1:1;}
var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true;}
return ret;};}else
if(document.createRange){sortOrder=function(a,b){if(!a.ownerDocument||!b.ownerDocument){if(a==b){hasDuplicate=true;}
return a.ownerDocument?-1:1;}
var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.setStart(a,0);aRange.setEnd(a,0);bRange.setStart(b,0);bRange.setEnd(b,0);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true;}
return ret;};}
function getText(elems){var ret="",elem;for(var i=0;elems[i];i++){elem=elems[i];if(elem.nodeType===3||elem.nodeType===4){ret+=elem.nodeValue;}else
if(elem.nodeType!==8){ret+=getText(elem.childNodes);}}
return ret;}
(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime();form.innerHTML="<a name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}
div=null;})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra);}catch(e){}}
return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}
div=null;})();}
(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return;}
div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return;}
Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(elem.nodeName.toLowerCase()===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else
if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
var contains=document.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16);}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};var isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}
return Sizzle.filter(later,tmpSet);};window.Sizzle=Sizzle;})();Jelo.mold('Core',function(){var undef;function extend(c,fn){var ns=document.createElement('iframe');ns.width=0;ns.height=0;document.body.appendChild(ns);frames[frames.length-1].document.write('<script>parent._'+c+' = '+c+';<\/script>');frames[frames.length-1].document.close();document.body.removeChild(ns);if(typeof fn=='function'){fn();}}
function toHex(n){var chr="0123456789ABCDEF";if(n===null){return"00";}
n=parseInt(n,10);if(isNaN(n)||!n){return"00";}
n=Math.max(0,n);n=Math.min(n,255);n=Math.round(n);return chr.charAt((n-n%16)/16)+chr.charAt(n%16);}
function rep(s,r,str){var tmp_arr=[];tmp_arr=str.split(s);return tmp_arr.join(r);}
(function(f){window.setTimeout=f(window.setTimeout);window.setInterval=f(window.setInterval);})(function(f){return function(c,t){var a=[].slice.call(arguments,2);if(typeof c=='string'){c=f.name||'setTimeout or setInterval';throw new Error('The first argument to '+c+' should be a Function, not a String.');}
return f(function(){c.apply(this,a);},t);};});extend('Array',function(){if(Array.prototype.indexOf==undef){Array.prototype.indexOf=function(k){var len=this.length;for(var i=0;i<len;i++){if(this[i]==k){return i;}}
return-1;};Array.indexOf=Array.prototype.indexOf;}
if(Array.prototype.lastIndexOf==undef){Array.prototype.lastIndexOf=function(k){var len=this.length;for(var i=len-1;i>-1;i--){if(this[i]==k){return i;}}
return-1;};Array.lastIndexOf=Array.prototype.lastIndexOf;}
if(Array.prototype.find==undef){Array.prototype.find=function(k){var res=[];var len=this.length;for(var i=0;i<len;i++){if((k.test&&k.test(this[i]))||k===this[i]){res.push(i);}}
return!!res.length&&res;};Array.find=Array.prototype.find;}
if(Array.prototype.shuffle==undef){Array.prototype.shuffle=function(){for(var j,x,i=this.length;i;j=parseInt(Math.random()*i,10),x=this[--i],this[i]=this[j],this[j]=x){}
return this;};Array.shuffle=Array.prototype.shuffle;}});return{each:function(a,f,s){var n,i,l=a.length;if(l!=undef){for(i=0;i<l;i++){if(f.call(s||a[i],a[i],i,a)===false){return i;}}}else{for(n in a){if(!a.hasOwnProperty||a.hasOwnProperty(n)){if(f.call(s||a[n],a[n],n,a)===false){return n;}}}}
return true;},isEnumerable:function(a){return!!a&&(typeof a.length=='number')&&(typeof a!='string');},uID:function(){var id=1;return function(){return id++;};}(),toCamel:function(str){return str.replace(/-(.)/g,function(m,l){return l.toUpperCase();});},cutHexHash:function(h){return(h.charAt(0)=="#")?h.substring(1):h;},hexToR:function(h){return parseInt(this.cutHexHash(h).substring(0,2),16);},hexToG:function(h){return parseInt(this.cutHexHash(h).substring(2,4),16);},hexToB:function(h){return parseInt(this.cutHexHash(h).substring(4,6),16);},hexToRGB:function(h){return[this.hexToR(h),this.hexToG(h),this.hexToB(h)];},rgbToArray:function(s){if(typeof s=='string'){try{var sub=s.split(/\D/g),sub2=[];for(var i=0;i<sub.length;i++){if(sub[i]){sub2[sub2.length]=parseInt(sub[i],10);}}
return sub2;}catch(e){throw new Error("Jelo.Core.rgbStringToArray: Invalid input "+s);}}else{return[];}},rgbToHex:function(s){if(typeof s=='string'){try{var a=Jelo.Core.rgbToArray(s);return"#"+toHex(a[0])+toHex(a[1])+toHex(a[2]);}catch(e){throw new Error("Jelo.Core.rgbStringToHex: Invalid input "+s);}}},urldecode:function(str){var h={},ret=str.toString();h["'"]='%27';h['(']='%28';h[')']='%29';h['*']='%2A';h['~']='%7E';h['!']='%21';h['%20']='+';for(var r in h){if(h.hasOwnProperty(s)){s=h[r];ret=rep(s,r,ret);}}
return decodeURIComponent(ret);},urlencode:function(str){var h={},tmp_arr=[],ret=str.toString();h["'"]='%27';h['(']='%28';h[')']='%29';h['*']='%2A';h['~']='%7E';h['!']='%21';h['%20']='+';ret=encodeURIComponent(ret);for(var s in h){if(h.hasOwnProperty(s)){r=h[s];ret=rep(s,r,ret);}}
return ret.replace(/(\%([a-z0-9]{2}))/g,function(full,m1,m2){return"%"+m2.toUpperCase();});},urlDecode:function(str){return this.urldecode(str);},urlEncode:function(str){return this.urlencode(str);}};}());(function(){Jelo.Core.each(Jelo.Core,function(item,index){Jelo[index]=Jelo.Core[index];});})();Jelo.mold('CSS',function(){var view=document.defaultView,ie=('attachEvent'in window)&&!('opera'in window),webkit=(/webkit/i).test(navigator.userAgent),pFloat=ie?'styleFloat':'cssFloat',rOpacity=/alpha\(opacity=(.*)\)/i,trim=function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');};var getStyle=function(){return(view&&view.getComputedStyle?function(el,p){var v,val,styles=[],i;if(Jelo.isEnumerable(el)){for(i=0;i<el.length;i++){styles.push(getStyle(el[i],p));}
return styles;}
if(Jelo.isEnumerable(p)){for(i=0;i<p.length;i++){styles.push(getStyle(el,p[i]));}
return styles;}
if(el==document){return null;}
if(p=='float'){p=pFloat;}
cp=Jelo.toCamel(p);switch(cp){case'backgroundPositionX':try{val=getStyle(el,'background-position').split(' ')[0];}catch(ex){return null;}
break;case'backgroundPositionY':try{val=getStyle(el,'background-position').split(' ')[1];}catch(ey){return null;}
break;default:if((v=el.style[p]||view.getComputedStyle(el,null)[cp])){val=(/color/i).test(p)?Jelo.rgbToHex(v).toLowerCase():(''+v).toLowerCase();}}
if(webkit&&val=='rgba(0, 0, 0, 0)'){val='transparent';}
return val;}:function(el,p){var v,m,val,styles=[],i;if(Jelo.isEnumerable(el)){for(i=0;i<el.length;i++){styles.push(getStyle(el[i],p));}
return styles;}
if(Jelo.isEnumerable(p)){for(i=0;i<p.length;i++){styles.push(getStyle(el,p[i]));}
return styles;}
if(el==document){return'';}
if(p=='float'){p=pFloat;}
if(p=='opacity'){if(el.style&&el.style.filter&&el.style.filter.match){if((m=el.style.filter.match(rOpacity))){var fv=parseFloat(m[1]);if(!isNaN(fv)){return(fv?fv/100:0);}}}
return 1;}
p=Jelo.toCamel(p);if(p=='backgroundPosition'){v=el.currentStyle.backgroundPositionX+' '+el.currentStyle.backgroundPositionY;}else if((v=el.style[p])){val=(''+v).toLowerCase();}else if(el.currentStyle&&(v=el.currentStyle[p])){if(v=='auto'){if((v=el['offset'+p.replace(/^(.)/,function(m,l){return l.toUpperCase();})])){v=v+'px';}}
if(!v||(v=='auto')){v=0;}
v=(''+v).toLowerCase();}
val=(/color/i).test(p)?Jelo.rgbToHex(v).toLowerCase():(''+v).toLowerCase();return val;});}();function setStyle(el,p,v){var i,u;if(Jelo.Core.isEnumerable(el)){for(i=0;i<el.length;i++){setStyle(el[i],p,v);}
return;}
if(Jelo.Core.isEnumerable(p)||Jelo.Core.isEnumerable(v)){if(Jelo.Core.isEnumerable(p)&&Jelo.Core.isEnumerable(v)&&(p.length==v.length)){for(i=0;i<p.length;i++){Jelo.CSS.setStyle(el,p[i],v[i]);}}else{throw new Error('Jelo.CSS.setStyle: Properties and values must both be Arrays with the same length, or both be Strings.');}
return;}
p=Jelo.toCamel(p);if((/width|height|top|right|bottom|left|size/).test(p)){u=v.replace(/[^(%|px|em)]/g,'');if(!u.length){u='px';}
v=parseInt(v,10);if(isNaN(v)){v=0;}
v+=u;}
var s=el.style;if(p=='opacity'){if(ie){s.zoom=1;s.filter=(s.filter||'').replace(/alpha\([^\)]*\)/gi,'')+(v==1?'':' alpha(opacity='+v*100+')');}else{s.opacity=parseFloat(v);}}else{s[p]=v;}}
function addClass(el,cls){if(Jelo.isEnumerable(el)){for(var i=0;i<el.length;i++){addClass(el[i],cls);}}else{if(!hasClass(el,cls)){el.className+=(el.className.length)?' '+cls:cls;}}}
function hasClass(el,cls){if(Jelo.isEnumerable(el)){for(var i=0;i<el.length;i++){if(!hasClass(el[i],cls)){return false;}}
return(el.length>0);}
return el&&cls&&(new RegExp('\\b'+cls+'\\b')).test(el.className);}
function removeClass(el,cls){if(Jelo.isEnumerable(el)){for(var i=0;i<el.length;i++){removeClass(el[i],cls);}}else{el.className=trim(el.className.replace((new RegExp('\\b'+cls+'\\b')),''));}}
function getStylesheets(){var s=[],d=document.styleSheets||[],l=d.length,di;for(var i=0;i<l;i++){di=d[i];s.push(di);}
return s;}
function getRules(sheet){if(!sheet){sheet=getStylesheets();}
if(Jelo.isEnumerable(sheet)){return function(){var a=[];for(var i=0,l=sheet.length;i<l;i++){for(var ii=0,r=getRules(sheet[i]);ii<r.length;ii++){a.push(r[ii]);}}
return a;}();}
var r=sheet.cssRules||sheet.rules,l=r.length,a=[];for(var i=0,rule;i<l;i++){rule=r[i];if(rule.selectorText){a.push({selectorText:rule.selectorText,cssText:rule.style.cssText});}}
return a;}
function getRuleStyle(selector,sheet){if(!sheet){sheet=getStylesheets();}
if(Jelo.isEnumerable(sheet)){return function(){for(var i=sheet.length-1,s;i>=0;i--){s=getRuleStyle(selector,sheet[i]);if(s.length){return s;}}
return'';}();}
var r=sheet.cssRules||sheet.rules,x=new RegExp('\\b'+selector+'\\b','i');for(var i=r.length-1,rule;i>=0;i--){rule=r[i];if(rule.selectorText&&x.test(rule.selectorText)){return rule.style.cssText;}}
return'';}
function insertRule(selector,css,sheet,index){if(!sheet){sheet=getStylesheets();sheet=sheet[sheet.length-1];}
if(typeof index!='number'){index=getRules(sheet).length;}
if(sheet.insertRule){sheet.insertRule(selector+'{'+css+'}',index);}else if(sheet.addRule){sheet.addRule(selector,css,index);}}
function deleteRule(selector,sheet){var i,rules;if(!sheet){sheet=getStylesheets();for(i=sheet.length-1;i>=0;i--){deleteRule(selector,sheet[i]);}
return;}
if(typeof selector=='string'){selector=selector.toLowerCase();rules=getRules(sheet);for(i=rules.length-1;i>=0;i--){if(rules[i].selectorText.toLowerCase()==selector){selector=i;break;}}}
if(i>=0){if(sheet.deleteRule){sheet.deleteRule(selector);}else if(sheet.removeRule){sheet.removeRule(selector);}}}
Jelo.css=function(el,p,val){var undef;if(el&&p&&(val===undef)){return getStyle(el,p);}else if(el&&p){return setStyle(el,p,val);}else{throw new Error('Syntax: Jelo.css(element, property) for getStyle, and Jelo.css(element, property, value) for setStyle.');}};return{getStylesheets:getStylesheets,getRules:getRules,getRuleStyle:getRuleStyle,insertRule:insertRule,deleteRule:deleteRule,getStyle:getStyle,setStyle:setStyle,addClass:addClass,hasClass:hasClass,removeClass:removeClass,toggleClass:function(el,cls){if(Jelo.isEnumerable(el)){for(var i=0,l=el.length;i<l;i++){if(hasClass(el[i],cls)){removeClass(el[i],cls);}else{addClass(el[i],cls);}}}else{if(hasClass(el,cls)){removeClass(el,cls);}else{addClass(el,cls);}}},randomColor:function(){return'#'+(function(h){return new Array(7-h.length).join('0')+h;})((Math.random()*(0xFFFFFF+1)<<0).toString(16));},findPosition:function(el){var l=0,t=0;if(el.offsetParent){do{l+=el.offsetLeft-parseInt(getStyle(el,'margin-left'),10);t+=el.offsetTop-parseInt(getStyle(el,'margin-top'),10);}while((el=el.offsetParent));}
return[l,t];}};}());Jelo.mold('Dom',function(){return{fromString:function(str){var frag=document.createDocumentFragment();if(typeof str!='string'){return frag;}
var div=document.createElement('div');div.innerHTML=str;while(div.firstChild){frag.appendChild(div.firstChild);}
return frag;},filter:function(selector,superset){return Sizzle.matches(selector,superset);},selectAll:function(selector,context,results){return(typeof selector=='string')?Sizzle(selector,context,results):selector;},select:function(selector,context,results){return(typeof selector=='string')?Sizzle(selector,context,results)[0]:selector;},ancestor:function(s,el){return(s&&el&&el.parentNode)?(Sizzle.filter(s,[el]).length?el:Jelo.Dom.ancestor(s,el.parentNode)):null;},create:function(o){if(typeof o=='string'){return document.createTextNode(o);}
if(o.tag){var node=document.createElement(o.tag);node.id=o.id||'';node.className=o.cls||'';node.innerHTML=o.html||'';if(Jelo.isEnumerable(o.children)){var l=o.children.length;for(var i=0;i<l;i++){node.appendChild(Jelo.Dom.create(o.children[i]));}}
return node;}},destroy:function(el){if(Jelo.isEnumerable(el)){for(var i=0;i<l;i++){Jelo.Dom.destroy(el[i]);}}else if(el&&el.parentNode&&el.parentNode.removeChild){el.parentNode.removeChild(el);}},getAttribute:function(el,attr){if(attr=='class'){attr='className';}
if(Jelo.isEnumerable(el)){var attrs=[],l=el.length;for(var i=0;i<l;i++){attrs.push(el[i][attr]||'');}
return attrs;}
return el[attr]||'';},is:function(el,s){var arr=Jelo.isEnumerable(el),result=Sizzle.filter(s,arr?el:[el]);return arr?(result.length==el.length):(result.length>0);}};}());this.$=this.$||Jelo.Dom.select;this.$$=this.$$||Jelo.Dom.selectAll;Jelo.mold('Event',function(){var live={};function find(el,ev,fn){var h=el._handlers;if(h){var d=el.document||el,w=d.parentWindow,i,a;for(i=h.length-1;i>=0;i--){a=w._ieHandlers[h[i]];if(a.eventType==ev&&a.handler==fn){return i;}}}
return-1;}
function removeAllHandlers(){var w=this,ie=w._ieHandlers;for(var i in ie){if(ie.hasOwnProperty(i)){var h=ie[i];h.element.detachEvent('on'+h.eventType,h.wrappedHandler);delete h[i];}}}
return{addLive:function(str,ev,fn){var func=function(e){var t=e.target,el=$$(str),l=el.length,i=l;for(;i>=0;--i){if(el[i]==t){fn.call(el[i],e);}}};Jelo.Event.add(document,ev,func);return func;},removeLive:function(ev,func){Jelo.Event.remove(document,ev,func);},add:function(){return document.addEventListener?function(el,ev,fn){if(Jelo.Core.isEnumerable(el)){var i,l=el.length;for(i=0;i<l;i++){Jelo.Event.add(el[i],ev,fn);}}else{el.addEventListener(ev,fn,false);}}:function(el,ev,fn){if(Jelo.Core.isEnumerable(el)){var i,l=el.length;for(i=0;i<l;i++){Jelo.Event.add(el[i],ev,fn);}}else{if(find(el,ev,fn)!=-1){return;}
var wh=function(e){e=e||window.event;var event={_event:e,type:e.type,target:e.srcElement,currentTarget:el,relatedTarget:e.fromElement||e.toElement,eventPhase:(e.srcElement==el)?2:3,clientX:e.clientX,clientY:e.clientY,screenX:e.screenX,screenY:e.screenY,altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,charCode:e.charCode||e.keyCode,keyCode:e.keyCode||e.charCode,button:e.button?{1:0,4:1,2:2}[e.button]:-1,which:e.button?e.button+1:e.keyCode,stopPropagation:function(){this._event.cancelBubble=true;},preventDefault:function(){var str='';Jelo.each(this._event,function(item,index){str+=index+': '+item+"\r\n";});this._event.returnValue=false;}};fn.call(el,event);};el.attachEvent('on'+ev,wh);var h={element:el,eventType:ev,handler:fn,wrappedHandler:wh};var d=el.document||el;var w=d.parentWindow;var id='h'+Jelo.uID();if(!w._ieHandlers){w._ieHandlers={};}
w._ieHandlers[id]=h;if(!el._handlers){el._handlers=[];}
el._handlers.push(id);if(!w._onunloadRegistered){w.attachEvent('onunload',removeAllHandlers);w._onunloadRegistered=true;}}};}(),remove:function(){return(document.removeEventListener)?function(el,ev,fn){if(Jelo.Core.isEnumerable(el)){var i,l=el.length;for(i=0;i<l;i++){Jelo.Event.remove(el[i],ev,fn);}}else{el.removeEventListener(ev,fn,false);}}:function(el,ev,fn){var i;if(Jelo.Core.isEnumerable(el)){var l=el.length;for(i=0;i<l;i++){Jelo.Event.remove(el[i],ev,fn);}}else{i=find(el,ev,fn);if(i!=-1){var d=el.document||el;var w=d.parentWindow;var hid=el._handlers[i];var h=w._ieHandlers[hid];el.detachEvent('on'+ev,h.wrappedHandler);el._handlers.splice(i,1);delete w._ieHandlers[hid];}}};}()};}());Jelo.on=Jelo.Event.add;Jelo.un=Jelo.Event.remove;Jelo.onLive=Jelo.Event.addLive;Jelo.unLive=Jelo.Event.removeLive;Jelo.mold('Ajax',function(){var D=window.document,getXHR=function(){return('XMLHttpRequest'in window)?new XMLHttpRequest():(('ActiveXObject'in window)?new ActiveXObject("Msxml2.XMLHTTP"):null);},X=getXHR();return{abort:function(){if(X&&X.abort){X.abort();}},isBusy:function(){return X&&(/0|4/).test(X.readyState);},load:function(el,url,post){if(el&&url){this.request({url:url,data:post||{},success:function(){el.innerHTML=this.responseText;}});}},loadScript:function(url,fn){if(typeof url=='string'){var s=D.createElement('script'),h=D.documentElement;if(typeof fn=='function'){if(s.readyState){s.onreadystatechange=function(){if((/loaded|complete/).test(s.readyState)){s.onreadystatechange=null;fn();}};}else{s.onload=function(){s.onload=null;fn();};}}
s.type='text/javascript';s.src=url;h.insertBefore(s,h.firstChild);}},request:function(o){if(!o||!('url'in o)){return;}
var u=o.url,m=(o.method||'GET').toUpperCase(),d=o.data||o.params||{},fs=o.success||Jelo.emptyFn,ff=o.failure||Jelo.emptyFn,fc=o.callback||Jelo.emptyFn,x=o.abortable?X:getXHR(),q=(typeof d=='string')?d:function(q){for(var i in d){if(d.hasOwnProperty(i)){q+=((/\?/).test(q)?'&':'?')+encodeURIComponent(i)+'='+encodeURIComponent(d[i]);}}
return q;}(q||'');if(!(/0|4/).test(x.readyState)){x.abort();}
var orsc=function(){if(x.readyState==4){if((/^2/).test(x.status)){fs.call(x,x,o);}else{ff.call(x,x,o);}
fc.call(x,x,o);}};switch(m){case"GET":u+=q;x.open(m,u,true);x.onreadystatechange=orsc;x.setRequestHeader("X-Requested-With",'XMLHttpRequest');x.send(null);break;case"PUT":case"DELETE":case"POST":q=q.split("?",2)[1];x.open(m,u,true);x.onreadystatechange=orsc;x.setRequestHeader("X-Requested-With",'XMLHttpRequest');x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");x.setRequestHeader("Content-Length",q.length);x.setRequestHeader("Connection","close");x.send(q);break;default:throw new Error("Jelo.Ajax.request: Method "+m+" not yet implemented.");}}};}());Jelo.mold('JSON',function(){var crockford=/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/,replace=/"(\\.|[^"\\])*"/g;function validate(s){return!(crockford.test(s.replace(replace,'')));}
function decode(s){try{return validate(s)?eval('('+s+')'):{};}catch(e){return{};}}
function encode(o){if(!o){return'';}
if(typeof o.toSource=='function'){return o.toSource();}
var buf=[];switch(o.constructor){case String:return'"'+o+'"';case Number:return o.toString();case Array:Jelo.each(o,function(item){buf.push(encode(item));});return'['+buf.join(', ')+']';case Object:Jelo.each(o,function(item){buf.push(encode(item));});return'{'+buf.join(', ')+'}';default:return'null';}}
return{decode:decode,encode:encode,validate:validate};}());Jelo.mold('Environment',function(){var D=window.document,DB=D.body;var ua=navigator.userAgent.toLowerCase();var isStrict=D.compatMode=="CSS1Compat";var isWindows=(/windows|win32/).test(ua);var isMac=(/mac[i ]/).test(ua);var isLinux=(/linux/).test(ua);var isAir=(/adobeair/).test(ua);var isWebkit=(/webkit|khtml/).test(ua);var isGecko=!isWebkit&&(/gecko/).test(ua);var isFirefox=isGecko&&(/firefox\/\d/).test(ua);var isFirefoxOld=isGecko&&(/firefox\/[0-2]/).test(ua);var isOpera=(/opera/).test(ua);var isIE=(!!window.attachEvent&&!isOpera);var isIE7=isIE&&(/msie 7/).test(ua);var isIE8=isIE&&(/msie 8/).test(ua);var isIEOld=isIE&&(/msie [0-6]/).test(ua);var isChrome=(/chrome\/[0-1]/).test(ua);var isGoogle=(/google/).test(ua);var isYahoo=(/yahoo/).test(ua);var isBot=(/bot|crawler|http/).test(ua);var isSecure=window.location.href.toLowerCase().indexOf("https")===0;var isModern=(typeof XMLHttpRequest!="undefined");if(isIEOld){try{D.execCommand("BackgroundImageCache",false,true);}catch(e){}}
return{getScreenWidth:function(full){return full?screen.width:screen.availWidth;},getScreenHeight:function(full){return full?screen.height:screen.availHeight;},getViewWidth:function(full){return full?this.getDocumentWidth():this.getViewportWidth();},getViewHeight:function(full){return full?this.getDocumentHeight():this.getViewportHeight();},getDocumentWidth:function(){var scrollWidth=(D.compatMode!="CSS1Compat")?DB.scrollWidth:D.documentElement.scrollWidth;return Math.max(scrollWidth,this.getViewportWidth());},getDocumentHeight:function(){var scrollHeight=(D.compatMode!="CSS1Compat")?DB.scrollHeight:D.documentElement.scrollHeight;return Math.max(scrollHeight,this.getViewportHeight());},getViewportWidth:function(){if(this.isIE){return this.isStrict?D.documentElement.clientWidth:DB.clientWidth;}else{return window.innerWidth;}},getViewportHeight:function(){if(this.isIE){return this.isStrict?D.documentElement.clientHeight:DB.clientHeight;}else{return window.innerHeight;}},getUA:function(){return ua;},isStrict:isStrict,isWindows:isWindows,isMac:isMac,isLinux:isLinux,isAir:isAir,isWebkit:isWebkit,isGecko:isGecko,isFirefox:isFirefox,isFirefoxOld:isFirefoxOld,isOpera:isOpera,isIE:isIE,isIE7:isIE7,isIE8:isIE8,isIEOld:isIEOld,isChrome:isChrome,isGoogle:isGoogle,isYahoo:isYahoo,isBot:isBot,isSecure:isSecure,isModern:isModern};}());Jelo.Env=Jelo.Environment;Jelo.mold('Form',function(){return{};}());Jelo.mold('Anim',function(){var ie=!!window.attachEvent&&!window.opera,_={f:60,i:0,d:0.48,a:[],r:[],t:null,div:document.createElement('div'),props:('backgroundColor backgroundPosition borderBottomColor borderBottomWidth borderLeftColor borderLeftWidth borderRightColor borderRightWidth borderSpacing borderTopColor borderTopWidth bottom color filter fontSize fontWeight height left letterSpacing lineHeight marginBottom marginLeft marginRight marginTop maxHeight maxWidth minHeight minWidth opacity outlineColor outlineOffset outlineWidth paddingBottom paddingLeft paddingRight paddingTop right textIndent top width wordSpacing zIndex mozBorderRadiusTopLeft mozBorderRadiusTopRight mozBorderRadiusBottomRight mozBorderRadiusBottomLeft webkitBorderTopLeftRadius webkitBorderTopRightRadius webkitBorderBottomRightRadius webkitBorderBottomLeftRadius').split(' '),rDualValue:/(\-?[0-9]+)([^0-9\s]+)\s+(\-?[0-9]+)/i,rBackPos:/background\-?position/i,rOpacity:/opacity\s*[\:\=]\s*([\d\.]+)/i,now:function(){return(new Date()).getTime();},cache:{}};_.i=Math.round(1000/_.f);function parse(val,prop){if(_.rBackPos.test(prop)){return{value:val,unit:''};}
if(ie&&_.rOpacity.test(val)){return{value:(_.rOpacity.exec(val)[1]/100).toFixed(2),unit:''};}
var v=parseFloat(val),u=(''+val).replace(/^[\d\.]+/,'');return{value:isNaN(v)?u:v,unit:isNaN(v)?'color':u};}
function norm(str){var p,v,css,rules={},i=_.props.length;if(ie&&_.rOpacity.test(str)){str=str.replace(_.rOpacity,'filter:alpha(opacity='+(100*_.rOpacity.exec(str)[1])+')');}
_.div.innerHTML='<div style="'+str+'"></div>';css=_.div.childNodes[0].style;while(i--){p=_.props[i];if((v=css[p])){rules[p]=parse(v,p);}
if(rules.filter){rules.opacity=rules.filter;delete rules.filter;}}
return rules;}
function s(str,p,c){return str.substr(p,c||1);}
function color(source,target,pos){var i=2,j,c,tmp,v=[],r=[];while(j=3,c=arguments[i-1],i--){if(s(c,0)=='r'){c=c.match(/\d+/g);while(j--){v.push(~~c[j]);}}else{if(c.length==4)c='#'+s(c,1)+s(c,1)+s(c,2)+s(c,2)+s(c,3)+s(c,3);while(j--)
v.push(parseInt(s(c,1+j*2,2),16));}}
while(j--){tmp=~~(v[j+3]+(v[j]-v[j+3])*pos);r.push(tmp<0?0:tmp>255?255:tmp);}
return'rgb('+r.join(',')+')';}
function animate(c){if(!c){return;}
if(Jelo.isEnumerable(c.me)){Jelo.each(c.me,function(item){var config={};for(var i in c){config[i]=c[i];}
config.me=item;animate(config);});return;}
if(!c.me||!c.me.tagName){c.me=document.body;c.css='';}
if(!('duration'in c)){c.duration=_.d;}
c.duration*=1000;c.easing=c.easing&&c.easing.toUpperCase&&Easing[c.easing.toUpperCase()]||Easing.SINE;Jelo.each(['before','during','after'],function(fn){if(typeof c[fn]!='function'){c[fn]=Jelo.emptyFn;}});var o,l,target=norm(c.css),start=_.now(),current={},end=start+c.duration,prop;for(prop in target){current[prop]=parse(Jelo.css(c.me,prop),prop);}
if('opacity'in target){if(!current.opacity){var r=_.rOpacity.exec(c.me.currentStyle['filter']);current.opacity={value:parseInt((r&&r[1]||100),10)/100,unit:''};}}
o={me:c.me,css:c.css,duration:c.duration,easing:c.easing,before:c.before,during:c.during,after:c.after,start:start,end:end,percent:0,current:current,target:target};for(l=_.a.length,i=l;--i>=0;){if(_.a[i].me==o.me){_.a.splice(i,1);}}
_.a.push(o);c.before.call(o,o);run();}
function run(){if(!_.t){_.t=setInterval(function(){var i,r,o,prop,t=_.now(),c=[],x;if(_.r.length){for(i=_.r.length;--i>=0;){r=_.r[i];o=_.a[r];c.push({o:o,fn:o.after});_.a.splice(r,1);}
for(i=-1;++i<c.length;){r=c[i];r.fn.call(r.o,r.o);}
_.r=[];}
if(_.a.length){for(i=-1;++i<_.a.length;){o=_.a[i];x=(t>=o.end)?1:((t-o.start)/o.duration);for(prop in o.target){if(o.target[prop].unit=='color'){Jelo.css(o.me,prop,color(o.current[prop].value,o.target[prop].value,o.easing(x)));}else if(_.rBackPos.test(prop)){var cur=_.rDualValue.exec(o.current[prop].value),tar=_.rDualValue.exec(o.target[prop].value),xPos=parseInt((1*cur[1]+(tar[1]-cur[1])*o.easing(x)),10),yPos=parseInt((1*cur[3]+(tar[3]-cur[3])*o.easing(x)),10);Jelo.css(o.me,prop,[xPos,yPos].join(tar[2]+' '));}else{Jelo.css(o.me,prop,(o.current[prop].value+(o.target[prop].value-o.current[prop].value)*o.easing(x)).toFixed(3)+
o.target[prop].unit);}}
o.percent=Math.max(0,Math.min(1,x)).toFixed(2);o.during.call(o,o);if(x>=1){_.r.push(i);}}}else{clearInterval(_.t);_.t=null;}},_.i);}}
var Easing=function(){var s=1.70158;return{LINEAR:function(x){return x;},IN:function(x){return Math.pow(x,2);},OUT:function(x){return-(Math.pow((x-1),2)-1);},SINE:function(x){return(-Math.cos(x*Math.PI)/2)+0.5;},BOTH:function(x){return((x/=0.5)<1)?0.5*Math.pow(x,2):-0.5*((x-=2)*x-2);},STRONGIN:function(x){return Math.pow(x,4);},STRONGOUT:function(x){return-(Math.pow((x-1),4)-1);},STRONGBOTH:function(x){return((x/=0.5)<1)?0.5*Math.pow(x,4):-0.5*((x-=2)*Math.pow(x,3)-2);},BOUNCE:function(x){return((x<(1/2.75))?7.5625*x*x:(x<(2/2.75))?7.5625*(x-=(1.5/2.75))*x+0.75:(x<(2.5/2.75))?7.5625*(x-=(2.25/2.75))*x+0.9375:7.5625*(x-=(2.625/2.75))*x+0.984375);},BOUNCEPAST:function(x){return((x<(1/2.75))?7.5625*x*x:(x<(2/2.75))?2-(7.5625*(x-=(1.5/2.75))*x+0.75):(x<(2.5/2.75))?2-(7.5625*(x-=(2.25/2.75))*x+0.9375):2-(7.5625*(x-=(2.625/2.75))*x+0.984375));},SWINGIN:function(x){return x*x*(((s+1)*x)-s);},SWINGOUT:function(x){return(x-=1)*x*(((s+1)*x)+s)+1;},SWINGBOTH:function(x){var sb=s*1.525;x*=2;return((x<1)?0.5*(x*x*(((sb*=(1.525))+1)*x-sb)):0.5*((x-=2)*x*((sb+1)*x+sb)+2));},ELASTIC:function(x){return-1*Math.pow(4,-8*x)*Math.sin((x*6-1)*(2*Math.PI)/2)+1;},SPRING:function(x){return 1-(Math.cos(x*4.5*Math.PI)*Math.exp(-x*6));},WOBBLE:function(x){return(-Math.cos(x*x*9*Math.PI)/2)+0.5;},BLINK:function(x,n){return Math.round(x*(n||2))%2;},PULSE:function(x,n){return(-Math.cos((x*((n||2)-0.5)*2)*Math.PI)/2)+0.5;}};}();return{ate:animate,ating:function(el){return(el?(function(){for(var i=-1,l=_.a.length;++i<l;){if(el==_.a[i].me){return true;}}
return false;})():!!_.a.length);},Easing:Easing,stop:function(el,setFinal){var ai,l=_.a.length,i=l;for(;--i>=0;){if(_.a[i].me==el){_.a.splice(i,1);}}},stopAll:function(){_.a=_.r=[];},setFramesPerSecond:function(n){if(typeof n=='number'){_.f=n;_.i=Math.round(1000/f);}},setDefaultDuration:function(n){if(typeof n=='number'){_.d=n;}}};}());Jelo.mold('DragDrop',function(){var doc=window.document,threshold=1,maxZ=function(){var z=1000000;return function(){return++z;};}(),origin=[],dragTarget=null,dragPastThreshold=false,dragFirstTime,enabled=true,defaults={before:function(e){var width=dragTarget.offsetWidth,left=parseInt(Jelo.css(dragTarget,'border-left-width'),10),right=parseInt(Jelo.css(dragTarget,'border-right-width'),10);Jelo.css(this,{width:(width-left-right)+'px',zIndex:maxZ(),margin:'0px',position:'absolute'});this._dragOriginalParent=this.parentNode;document.body.appendChild(this);},drag:function(e){var x=parseInt(e.clientX,10)+4,y=parseInt(e.clientY,10)+8;Jelo.css(this,{top:y+'px',left:x+'px'});},drop:function(e){setTimeout(function(self){var target=e.dragTarget;self.appendChild(target);if((/absolute/).test(Jelo.css(target,'position'))){Jelo.css(target,{position:'relative',top:'0px',left:'0px'});}},10,this);}};function down(e){if(enabled){e.preventDefault();e.stopPropagation();dragTarget=this._dragTarget;Jelo.on(doc,'mousemove',move);Jelo.on(doc,'mouseup',up);origin=[e.clientX,e.clientY];dragPastThreshold=false;dragFirstTime=true;}}
function move(e){if(!dragTarget){up.call(doc,e);return;}
e.preventDefault();if(dragPastThreshold){if(dragFirstTime){dragFirstTime=false;dragTarget._dragMouseDown.call(dragTarget,e);}
dragTarget._dragMouseMove.call(dragTarget,e);}else{var hypotenuse=Math.sqrt(Math.pow(e.clientX-origin[0],2)+Math.pow(e.clientY-origin[1],2)).toFixed(0);if(hypotenuse>=threshold){dragPastThreshold=true;}}}
function up(e){Jelo.un(doc,'mousemove',move);Jelo.un(doc,'mouseup',up);if(dragTarget&&dragPastThreshold){dragTarget._dragMouseUp.call(dragTarget,e);}
origin=[];dragTarget=null;}
return{setDraggable:function(el,fn,handle){if(Jelo.isIterable(el)){Jelo.each(el,function(item){Jelo.DragDrop.setDraggable(item,fn,handle);});}else{el._dragHandle=handle||el;el._dragHandle._dragTarget=el;fn=fn||{};switch(typeof fn){case'function':el._dragMouseMove=fn;break;case'object':el._dragMouseDown=fn.before||this.getBehavior('before');el._dragMouseMove=fn.drag||this.getBehavior('drag');el._dragMouseUp=fn.after||this.getBehavior('after');Jelo.on(el._dragHandle,'mousedown',down);break;default:el._dragMouseDown=null;el._dragMouseMove=null;el._dragMouseUp=null;el._dragHandle=null;}}},setDroppable:function(el,fn,handle){if(Jelo.isIterable(el)){Jelo.each(el,function(item){Jelo.DragDrop.setDroppable(item,fn,handle);});}else{el._dropHandle=handle||el;fn=fn||{};switch(typeof fn){case'function':el._dropMouseUp=fn;break;case'object':el._dropMouseEnter=fn.enter||this.getBehavior('enter');el._dropMouseLeave=fn.leave||this.getBehavior('leave');el._dropMouseMove=fn.over||this.getBehavior('over');el._dropMouseUp=fn.drop||this.getBehavior('drop');Jelo.on(el._dropHandle,'mouseenter',function(e){if(dragTarget){e.dragTarget=dragTarget;el._dropMouseEnter.call(el,e);}});Jelo.on(el._dropHandle,'mousemove',function(e){if(dragTarget){e.dragTarget=dragTarget;el._dropMouseMove.call(el,e);}});Jelo.on(el._dropHandle,'mouseleave',function(e){if(dragTarget){e.dragTarget=dragTarget;el._dropMouseLeave.call(el,e);}});Jelo.on(el._dropHandle,'mouseup',function(e){if(dragTarget){e.dragTarget=dragTarget;el._dropMouseLeave.call(el,e);el._dropMouseUp.call(el,e);}});break;default:el._dropMouseEnter=null;el._dropMouseMove=null;el._dropMouseLeave=null;el._dropMouseUp=null;el._dropHandle=null;}}},getThreshold:function(){return threshold;},setThreshold:function(num){if(typeof num=='number'){threshold=num;}},getBehavior:function(key){return defaults[key]||Jelo.emptyFn;},enable:function(){enabled=true;},disable:function(){enabled=false;},isEnabled:function(){return!!enabled;},getTarget:function(){return dragTarget;},isDragging:function(compare){return(compare?dragTarget===compare:!!dragTarget);},maxZ:maxZ};}());Jelo.mold('Console',function(){return{time:function(fn){if('console'in window){var id='jelo-console-time-'+Jelo.uID();console.time(id);fn();console.timeEnd(id);}else{var then=new Date();fn();alert('Time: '+((new Date())-then)+'ms');}}};}());Jelo.Widget=function(){};Jelo.Widget.prototype={constructor:Jelo.Widget,dom:document.createElement('div'),isWidget:true,render:function(parent){if(this&&this.dom){if(!parent||!parent.appendChild){parent=document.body;}
parent.appendChild(this.dom);}},enable:function(){if(this.dom){Jelo.CSS.removeClass(this.dom,'unselectable');}},disable:function(){if(this.dom){Jelo.CSS.addClass(this.dom,'unselectable');}},destroy:function(){try{this.dom.parentNode.removeChild(this.dom);return true;}catch(err){return false;}}};
