/* (c) 2009 FIELD.IO */
(function(){var window=this,undefined,_jQuery=window.jQuery,_$=window.$,jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);},quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;this.context=selector;return this;}
if(typeof selector==="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])
selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem&&elem.id!=match[3])
return jQuery().find(selector);var ret=jQuery(elem||[]);ret.context=document;ret.selector=selector;return ret;}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))
return jQuery(document).ready(selector);if(selector.selector&&selector.context){this.selector=selector.selector;this.context=selector.context;}
return this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector));},selector:"",jquery:"1.3.2",size:function(){return this.length;},get:function(num){return num===undefined?Array.prototype.slice.call(this):this[num];},pushStack:function(elems,name,selector){var ret=jQuery(elems);ret.prevObject=this;ret.context=this.context;if(name==="find")
ret.selector=this.selector+(this.selector?" ":"")+selector;else if(name)
ret.selector=this.selector+"."+name+"("+selector+")";return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(typeof name==="string")
if(value===undefined)
return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)
value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!=="object"&&text!=null)
return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode)
wrap.insertBefore(this[0]);wrap.map(function(){var elem=this;while(elem.firstChild)
elem=elem.firstChild;return elem;}).append(this);}
return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},push:[].push,sort:[].sort,splice:[].splice,find:function(selector){if(this.length===1){var ret=this.pushStack([],"find",selector);ret.length=0;jQuery.find(selector,this[0],ret);return ret;}else{return this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return jQuery.find(selector,elem);})),"find",selector);}},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML;if(!html){var div=this.ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML;}
return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0];}else
return this.cloneNode(true);});if(events===true){var orig=this.find("*").andSelf(),i=0;ret.find("*").andSelf().each(function(){if(this.nodeName!==orig[i].nodeName)
return;var events=jQuery.data(orig[i],"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data);}}
i++;});}
return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,jQuery.grep(this,function(elem){return elem.nodeType===1;})),"filter",selector);},closest:function(selector){var pos=jQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=0;return this.map(function(){var cur=this;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(cur).is(selector)){jQuery.data(cur,"closest",closer);return cur;}
cur=cur.parentNode;closer++;}});},not:function(selector){if(typeof selector==="string")
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector);else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector==="string"?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return!!selector&&this.is("."+selector);},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,'option'))
return(elem.attributes.value||{}).specified?elem.value:elem.text;if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)
return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery(option).val();if(one)
return value;values.push(value);}}
return values;}
return(elem.value||"").replace(/\r/g,"");}
return undefined;}
if(typeof value==="number")
value+='';return this.each(function(){if(this.nodeType!=1)
return;if(jQuery.isArray(value)&&/radio|checkbox/.test(this.type))
this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)
this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value===undefined?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,+i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},domManip:function(args,table,callback){if(this[0]){var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),scripts=jQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=fragment.firstChild;if(first)
for(var i=0,l=this.length;i<l;i++)
callback.call(root(this[i],first),this.length>1||i>0?fragment.cloneNode(true):fragment);if(scripts)
jQuery.each(scripts,evalScript);}
return this;function root(elem,cur){return table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)
jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)
elem.parentNode.removeChild(elem);}
function now(){return+new Date;}
jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!=="object"&&!jQuery.isFunction(target))
target={};if(length==i){target=this;--i;}
for(;i<length;i++)
if((options=arguments[i])!=null)
for(var name in options){var src=target[name],copy=options[name];if(target===copy)
continue;if(deep&&copy&&typeof copy==="object"&&!copy.nodeType)
target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)
target[name]=copy;}
return target;};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{},toString=Object.prototype.toString;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(obj){return toString.call(obj)==="[object Function]";},isArray:function(obj){return toString.call(obj)==="[object Array]";},isXMLDoc:function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&jQuery.isXMLDoc(elem.ownerDocument);},globalEval:function(data){if(data&&/\S/.test(data)){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.support.scriptEval)
script.appendChild(document.createTextNode(data));else
script.text=data;head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length===undefined){for(name in object)
if(callback.apply(object[name],args)===false)
break;}else
for(;i<length;)
if(callback.apply(object[i++],args)===false)
break;}else{if(length===undefined){for(name in object)
if(callback.call(object[name],name,object[name])===false)
break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}
return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))
value=value.call(elem,i);return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)
elem.className=classNames!==undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return elem&&jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(var name in options)
elem.style[name]=old[name];},css:function(elem,name,force,extra){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border")
return;jQuery.each(which,function(){if(!extra)
val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;if(extra==="margin")
val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0;else
val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});}
if(elem.offsetWidth!==0)
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,Math.round(val));}
return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;if(name=="opacity"&&!jQuery.support.opacity){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}
if(name.match(/float/i))
name=styleFloat;if(!force&&style&&style[name])
ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))
name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle)
ret=computedStyle.getPropertyValue(name);if(name=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}
return ret;},clean:function(elems,context,fragment){context=context||document;if(typeof context.createElement==="undefined")
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;if(!fragment&&elems.length===1&&typeof elems[0]==="string"){var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match)
return[context.createElement(match[1])];}
var ret=[],scripts=[],div=context.createElement("div");jQuery.each(elems,function(i,elem){if(typeof elem==="number")
elem+='';if(!elem)
return;if(typeof elem==="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!jQuery.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)
div=div.lastChild;if(!jQuery.support.tbody){var hasBody=/<tbody/i.test(elem),tbody=!tags.indexOf("<table")&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);}
if(!jQuery.support.leadingWhitespace&&/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);elem=jQuery.makeArray(div.childNodes);}
if(elem.nodeType)
ret.push(elem);else
ret=jQuery.merge(ret,elem);});if(fragment){for(var i=0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1)
ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));fragment.appendChild(ret[i]);}}
return scripts;}
return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&elem.parentNode)
elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";elem[name]=value;}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;if(name=="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(a|area)$/i)&&elem.href?0:undefined;}
return elem[name];}
if(!jQuery.support.style&&notxml&&name=="style")
return jQuery.attr(elem.style,"cssText",value);if(set)
elem.setAttribute(name,""+value);var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
if(!jQuery.support.opacity&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}
name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)
elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||typeof array==="string"||jQuery.isFunction(array)||array.setInterval)
ret[0]=array;else
while(i)
ret[--i]=array[i];}
return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)
if(array[i]===elem)
return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(!jQuery.support.getAll){while((elem=second[i++])!=null)
if(elem.nodeType!=80)
first[pos++]=elem;}else
while((elem=second[i++])!=null)
first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}
return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)
if(!inv!=!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)
ret[ret.length]=value;}
return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,'0'])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")
ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret),name,selector);};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector);for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems);}
return this.pushStack(ret,name,selector);};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames,state){if(typeof state!=="boolean")
state=!jQuery.className.has(this,classNames);jQuery.className[state?"add":"remove"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",this).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(this).children().remove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}
var expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)
id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]={};if(data!==undefined)
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!q||jQuery.isArray(data))
q=jQuery.data(elem,type,jQuery.makeArray(data));else if(data)
q.push(data);}
return q;},dequeue:function(elem,type){var queue=jQuery.queue(elem,type),fn=queue.shift();if(!type||type==="fx")
fn=queue[0];if(fn!==undefined)
fn.call(elem);}});jQuery.fn.extend({data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)
data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
if(data===undefined)
return jQuery.queue(this[0],type);return this.each(function(){var queue=jQuery.queue(this,type,data);if(type=="fx"&&queue.length==1)
queue[0].call(this);});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});}});(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString;var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;if(context.nodeType!==1&&context.nodeType!==9)
return[];if(!selector||typeof selector!=="string"){return results;}
var parts=[],m,set,checkSet,check,mode,extra,prune=true;chunker.lastIndex=0;while((m=chunker.exec(selector))!==null){parts.push(m[1]);if(m[2]){extra=RegExp.rightContext;break;}}
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{var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));set=Sizzle.filter(ret.expr,ret.set);if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,isXML(context));}}
if(!checkSet){checkSet=set;}
if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context.nodeType===1){for(var 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(var 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,context,results,seed);if(sortOrder){hasDuplicate=false;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,match;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.match[type].exec(expr))){var left=RegExp.leftContext;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.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;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){throw"Syntax error, unrecognized expression: "+expr;}else{break;}}
old=expr;}
return curLoop;};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\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase();}
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===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false;}}}else{for(var i=0,l=checkSet.length;i<l;i++){var 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;if(!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();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,isXML){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+" ").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){for(var i=0;curLoop[i]===false;i++){}
return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase();},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(match[3].match(chunker).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.toUpperCase()==="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||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var i=0,l=not.length;i<l;i++){if(not[i]===elem){return false;}}
return true;}},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===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;for(var type in Expr.match){Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);}
var makeArray=function(array,results){array=Array.prototype.slice.call(array);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes);}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i<l;i++){ret.push(array[i]);}}else{for(var i=0;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){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){var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true;}
return ret;};}else if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true;}
return ret;};}
(function(){var form=document.createElement("form"),id="script"+(new Date).getTime();form.innerHTML="<input 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);})();(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);};}})();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);};Sizzle.find=oldSizzle.find;Sizzle.filter=oldSizzle.filter;Sizzle.selectors=oldSizzle.selectors;Sizzle.matches=oldSizzle.matches;})();if(document.getElementsByClassName&&document.documentElement.getElementsByClassName)(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(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]);}};})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
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===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
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){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&isXML(elem.ownerDocument);};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);};jQuery.find=Sizzle;jQuery.filter=Sizzle.filter;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;Sizzle.selectors.filters.hidden=function(elem){return elem.offsetWidth===0||elem.offsetHeight===0;};Sizzle.selectors.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0;};Sizzle.selectors.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.multiFilter=function(expr,elems,not){if(not){expr=":not("+expr+")";}
return Sizzle.matches(expr,elems);};jQuery.dir=function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)
matched.push(cur);cur=cur[dir];}
return matched;};jQuery.nth=function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])
if(cur.nodeType==1&&++num==result)
break;return cur;};jQuery.sibling=function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)
r.push(n);}
return r;};return;window.Sizzle=Sizzle;})();jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)
return;if(elem.setInterval&&elem!=window)
elem=window;if(!handler.guid)
handler.guid=this.guid++;if(data!==undefined){var fn=handler;handler=this.proxy(fn);handler.data=data;}
var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(arguments.callee.elem,arguments):undefined;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();handler.type=namespaces.slice().sort().join(".");var handlers=events[type];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].setup.call(elem,data,namespaces);if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem,data,namespaces)===false){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)
return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types===undefined||(typeof types==="string"&&types.charAt(0)=="."))
for(var type in events)
this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}
jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");if(events[type]){if(handler)
delete events[type][handler.guid];else
for(var handle in events[type])
if(namespace.test(events[type][handle].type))
delete events[type][handle];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].teardown.call(elem,namespaces);for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem,namespaces)===false){if(elem.removeEventListener)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=null;delete events[type];}}});}
for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(event,data,elem,bubbling){var type=event.type||event;if(!bubbling){event=typeof event==="object"?event[expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true;}
if(!elem){event.stopPropagation();if(this.global[type])
jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type])
jQuery.event.trigger(event,data,this.handle.elem);});}
if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event);}
event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle)
handle.apply(elem,data);if((!elem[type]||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
event.result=false;if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}
this.triggered=false;if(!event.isPropagationStopped()){var parent=elem.parentNode||elem.ownerDocument;if(parent)
jQuery.event.trigger(event,data,parent,true);}},handle:function(event){var all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;var namespaces=event.type.split(".");event.type=namespaces.shift();all=!namespaces.length&&!event.exclusive;var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||namespace.test(handler.type)){event.handler=handler;event.data=handler.data;var ret=handler.apply(this,arguments);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}
if(event.isImmediatePropagationStopped())
break;}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[expando])
return event;var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop];}
if(!event.target)
event.target=event.srcElement||document;if(event.target.nodeType==3)
event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy=proxy||function(){return fn.apply(this,arguments);};proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll:{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespaces[0],liveHandler);},teardown:function(namespaces){if(namespaces.length){var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((jQuery.data(this,"events").live||{}),function(){if(name.test(this.type))
remove++;});if(remove<1)
jQuery.event.remove(this,namespaces[0],liveHandler);}}}}};jQuery.Event=function(src){if(!this.preventDefault)
return new jQuery.Event(src);if(src&&src.type){this.originalEvent=src;this.type=src.type;}else
this.type=src;this.timeStamp=now();this[expando]=true;};function returnFalse(){return false;}
function returnTrue(){return true;}
jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.preventDefault)
e.preventDefault();e.returnValue=false;},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.stopPropagation)
e.stopPropagation();e.cancelBubble=true;},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation();},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;while(parent&&parent!=this)
try{parent=parent.parentNode;}
catch(e){parent=this;}
if(parent!=this){event.type=event.data;jQuery.event.handle.apply(this,arguments);}};jQuery.each({mouseover:'mouseenter',mouseout:'mouseleave'},function(orig,fix){jQuery.event.special[fix]={setup:function(){jQuery.event.add(this,orig,withinElement,fix);},teardown:function(){jQuery.event.remove(this,orig,withinElement);}};});jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result;}},toggle:function(fn){var args=arguments,i=1;while(i<args.length)
jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(fn);return this;},live:function(type,fn){var proxy=jQuery.event.proxy(fn);proxy.guid+=this.selector+type;jQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);return this;},die:function(type,fn){jQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);return this;}});function liveHandler(event){var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),stop=true,elems=[];jQuery.each(jQuery.data(this,"events").live||[],function(i,fn){if(check.test(fn.type)){var elem=jQuery(event.target).closest(fn.data)[0];if(elem)
elems.push({elem:elem,fn:fn});}});elems.sort(function(a,b){return jQuery.data(a.elem,"closest")-jQuery.data(b.elem,"closest");});jQuery.each(elems,function(){if(this.fn.call(this.elem,event,this.fn.data)===false)
return(stop=false);});return stop;}
function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".");}
jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document,jQuery);});jQuery.readyList=null;}
jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);jQuery.ready();},false);}else if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);jQuery.ready();}});if(document.documentElement.doScroll&&window==window.top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,"+"change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});jQuery(window).bind('unload',function(){for(var id in jQuery.cache)
if(id!=1&&jQuery.cache[id].handle)
jQuery.event.remove(jQuery.cache[id].handle.elem);});(function(){jQuery.support={};var root=document.documentElement,script=document.createElement("script"),div=document.createElement("div"),id="script"+(new Date).getTime();div.style.display="none";div.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return;}
jQuery.support={leadingWhitespace:div.firstChild.nodeType==3,tbody:!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:a.style.opacity==="0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"));}catch(e){}
root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id];}
root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",arguments.callee);});div.cloneNode(true).fireEvent("onclick");}
jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display='none';});})();var styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props={"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!=="string")
return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else if(typeof params==="object"){params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);if(callback)
self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!=="string")
s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))
s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))
s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}
if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)
s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=="script"&&s.cache==null)
s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}
if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=="script"&&type=="GET"&&parts&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=location.host)){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)
script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();script.onload=script.onreadystatechange=null;head.removeChild(script);}};}
head.appendChild(script);return undefined;}
var requestDone=false;var xhr=s.xhr();if(s.username)
xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)
xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend&&s.beforeSend(xhr,s)===false){if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");xhr.abort();return false;}
if(s.global)
jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(xhr.readyState==0){if(ival){clearInterval(ival);ival=null;if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}}else if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
status=isTimeout=="timeout"?"timeout":!jQuery.httpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"notmodified":"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(!jsonp)
success();}else
jQuery.handleError(s,xhr,status);complete();if(isTimeout)
xhr.abort();if(s.async)
xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xhr&&!requestDone)
onreadystatechange("timeout");},s.timeout);}
try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xhr,s]);}
function complete(){if(s.complete)
s.complete(xhr,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}
return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223;}catch(e){}
return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url];}catch(e){}
return false;},httpData:function(xhr,type,s){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(s&&s.dataFilter)
data=s.dataFilter(data,type);if(typeof data==="string"){if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=window["eval"]("("+data+")");}
return data;},param:function(a){var s=[];function add(key,value){s[s.length]=encodeURIComponent(key)+'='+encodeURIComponent(value);};if(jQuery.isArray(a)||a.jquery)
jQuery.each(a,function(){add(this.name,this.value);});else
for(var j in a)
if(jQuery.isArray(a[j]))
jQuery.each(a[j],function(){add(j,this);});else
add(j,jQuery.isFunction(a[j])?a[j]():a[j]);return s.join("&").replace(/%20/g,"+");}});var elemdisplay={},timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type;});return obj;}
jQuery.fn.extend({show:function(speed,callback){if(speed){return this.animate(genFx("show",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");this[i].style.display=old||"";if(jQuery.css(this[i],"display")==="none"){var tagName=this[i].tagName,display;if(elemdisplay[tagName]){display=elemdisplay[tagName];}else{var elem=jQuery("<"+tagName+" />").appendTo("body");display=elem.css("display");if(display==="none")
display="block";elem.remove();elemdisplay[tagName]=display;}
jQuery.data(this[i],"olddisplay",display);}}
for(var i=0,l=this.length;i<l;i++){this[i].style.display=jQuery.data(this[i],"olddisplay")||"";}
return this;}},hide:function(speed,callback){if(speed){return this.animate(genFx("hide",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");if(!old&&old!=="none")
jQuery.data(this[i],"olddisplay",jQuery.css(this[i],"display"));}
for(var i=0,l=this.length;i<l;i++){this[i].style.display="none";}
return this;}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var bool=typeof fn==="boolean";return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn==null||bool?this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]();}):this.animate(genFx("toggle",3),fn,fn2);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,hidden=this.nodeType==1&&jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return opt.complete.call(this);if((p=="height"||p=="width")&&this.style){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}
if(parts[1])
end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)
if(timers[i].elem==this){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(name,props){jQuery.fn[name]=function(speed,callback){return this.animate(props,speed,callback);};});jQuery.extend({speed:function(speed,easing,fn){var opt=typeof speed==="object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:jQuery.fx.speeds[opt.duration]||jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)
options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)
this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style)
this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))
return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;var self=this;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(timerId);timerId=undefined;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!==true)
done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")
this.elem.style.display="block";}
if(this.options.hide)
jQuery(this.elem).hide();if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);this.options.complete.call(this.elem);}
return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null)
fx.elem.style[fx.prop]=fx.now+fx.unit;else
fx.elem[fx.prop]=fx.now;}}});if(document.documentElement["getBoundingClientRect"])
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(self.pageXOffset||jQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left};};else
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);jQuery.offset.initialized||jQuery.offset.initialize();var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView.getComputedStyle(elem,null),top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){computedStyle=defaultView.getComputedStyle(elem,null);top-=elem.scrollTop,left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop,left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName)))
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevOffsetParent=offsetParent,offsetParent=elem.offsetParent;}
if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible")
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevComputedStyle=computedStyle;}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static")
top+=body.offsetTop,left+=body.offsetLeft;if(prevComputedStyle.position==="fixed")
top+=Math.max(docElem.scrollTop,body.scrollTop),left+=Math.max(docElem.scrollLeft,body.scrollLeft);return{top:top,left:left};};jQuery.offset={initialize:function(){if(this.initialized)return;var body=document.body,container=document.createElement('div'),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,html='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';rules={position:'absolute',top:0,left:0,margin:0,border:0,width:'1px',height:'1px',visibility:'hidden'};for(prop in rules)container.style[prop]=rules[prop];container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);innerDiv.style.overflow='hidden',innerDiv.style.position='relative';this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);body.style.marginTop='1px';this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);body.style.marginTop=bodyMarginTop;body.removeChild(container);this.initialized=true;},bodyOffset:function(body){jQuery.offset.initialized||jQuery.offset.initialize();var top=body.offsetTop,left=body.offsetLeft;if(jQuery.offset.doesNotIncludeMarginInBodyOffset)
top+=parseInt(jQuery.curCSS(body,'marginTop',true),10)||0,left+=parseInt(jQuery.curCSS(body,'marginLeft',true),10)||0;return{top:top,left:left};}};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent||document.body;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return null;return val!==undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?jQuery.css(this[0],lower,false,"padding"):null;};jQuery.fn["outer"+name]=function(margin){return this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null;};var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(document.documentElement["client"+name],document.body["scroll"+name],document.documentElement["scroll"+name],document.body["offset"+name],document.documentElement["offset"+name]):size===undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,typeof size==="string"?size:size+"px");};});})();(function(a){a.address=(function(){var c=function(i){a(this).trigger(a.extend(a.Event(i),(function(){var af={value:this.value(),path:this.path(),pathNames:this.pathNames(),parameterNames:this.parameterNames(),parameters:{},queryString:this.queryString()};for(var ae=0,p=af.parameterNames.length;ae<p;ae++){af.parameters[af.parameterNames[ae]]=this.parameter(af.parameterNames[ae])}return af}).call(this)))};var U=function(){c.call(a.address,"init")};var n=function(){c.call(a.address,"change")};var O=function(){var i=T.href.indexOf("#");return i!=-1?ac(o(T.href.substr(i+1))):""};var g=function(){try{top.document;return top}catch(i){return window}};var E=function(p,i){if(B.strict){p=i?(p.substr(0,1)!="/"?"/"+p:p):(p==""?"/":p)}return p};var q=function(i,p){return(h&&T.protocol=="file:")?(p?P.replace(/\?/,"%3F"):P.replace(/%253F/,"?")):i};var ad=function(ag){for(var ae=0,p=ag.childNodes.length,af;ae<p;ae++){if(ag.childNodes[ae].src){k=String(ag.childNodes[ae].src)}if(af=ad(ag.childNodes[ae])){return af}}};var W=function(){if(!s){var p=O();var i=!(P==p);if(t&&r<523){if(D!=X.length){D=X.length;if(typeof z[D-1]!=F){P=z[D-1]}S()}}else{if(h&&i){if(r<7){T.reload()}else{G.value(p)}}else{if(i){P=p;S()}}}}};var S=function(){n();m(v,10)};var v=function(){var p=(T.pathname+(/\/$/.test(T.pathname)?"":"/")+C.value()).replace(/\/\//,"/").replace(/^\/$/,"");var i=window[B.tracker];if(typeof i==f){i(p)}else{if(typeof pageTracker!=F&&typeof pageTracker._trackPageview==f){pageTracker._trackPageview(p)}else{if(typeof urchinTracker==f){urchinTracker(p)}}}};var e=function(){var i=w.contentWindow.document;i.open();i.write("<html><head><title>"+aa.title+"</title><script>var "+x+' = "'+O()+'";<\/script></head></html>');i.close()};var M=function(){if(!R){R=true;a("a").attr("xref",function(){return a(this).attr("href")});if(h&&r<8){aa.body.innerHTML='<iframe id="'+x+'" src="javascript:false;" width="0" height="0"></iframe>'+aa.body.innerHTML;w=aa.getElementById(x);m(function(){a(w).bind("load",function(){var i=w.contentWindow;var p=i.location.href;P=(typeof i[x]!=F?i[x]:"");if(P!=O()){S();T.hash=q(P,true)}});if(typeof w.contentWindow[x]==F){e()}},50)}else{if(t){if(r<418){a(aa.body).append('<form id="'+x+'" style="position:absolute;top:-9999px;" method="get"></form>');I=aa.getElementById(x)}if(typeof T[x]==F){T[x]={}}if(typeof T[x][T.pathname]!=F){z=T[x][T.pathname].split(",")}}}m(function(){U();n();v()},1);if(h&&r>=8){aa.body.onhashchange=W}else{u(W,50)}a("a").attr("href",function(){return a(this).attr("xref")}).removeAttr("xref");a("a[rel*=address:]").address()}};var C={baseURL:function(){var i=T.href;if(i.indexOf("#")!=-1){i=i.substr(0,i.indexOf("#"))}if(i.substr(i.length-1)=="/"){i=i.substr(0,i.length-1)}return i},strict:function(){return B.strict},history:function(){return B.history},tracker:function(){return B.tracker},title:function(){return aa.title},value:function(){if(!Z){return null}return o(E(q(P,false),false))},path:function(){var i=this.value();return(i.indexOf("?")!=-1)?i.split("?")[0]:i},pathNames:function(){var p=this.path();var i=p.split("/");if(p.substr(0,1)=="/"||p.length==0){i.splice(0,1)}if(p.substr(p.length-1,1)=="/"){i.splice(i.length-1,1)}return i},queryString:function(){var p=this.value();var i=p.indexOf("?");return(i!=-1&&i<p.length)?p.substr(i+1):""},parameter:function(aj){var ag=this.value();var ae=ag.indexOf("?");if(ae!=-1){ag=ag.substr(ae+1);var ai=ag.split("&");var ah,af=ai.length;while(af--){ah=ai[af].split("=");if(ah[0]==aj){return ah[1]}}}},parameterNames:function(){var af=this.value();var p=af.indexOf("?");var ag=[];if(p!=-1){af=af.substr(p+1);if(af!=""&&af.indexOf("=")!=-1){var ah=af.split("&");var ae=0;while(ae<ah.length){ag.push(ah[ae].split("=")[0]);ae++}}}return ag}};var G={strict:function(i){B.strict=i},history:function(i){B.history=i},tracker:function(i){B.tracker=i},title:function(i){m(function(){H=aa.title=i;if(J&&w&&w.contentWindow&&w.contentWindow.document){w.contentWindow.document.title=i;J=false}if(!L&&Y){T.replace(T.href.indexOf("#")!=-1?T.href:T.href+"#")}L=false},50)},value:function(ae){ae=ac(o(E(ae,true)));if(ae=="/"){ae=""}if(P==ae){return}L=true;P=ae;s=true;S();z[X.length]=P;if(t){if(B.history){T[x][T.pathname]=z.toString();D=X.length+1;if(r<418){if(T.search==""){I.action="#"+P;I.submit()}}else{if(r<523||P==""){var i=aa.createEvent("MouseEvents");i.initEvent("click",true,true);var p=aa.createElement("a");p.href="#"+P;p.dispatchEvent(i)}else{T.hash="#"+P}}}else{T.replace("#"+P)}}else{if(P!=O()){if(B.history){T.hash="#"+q(P,true)}else{T.replace("#"+P)}}}if((h&&r<8)&&B.history){m(e,50)}if(t){m(function(){s=false},1)}else{s=false}}};var x="jQueryAddress",f="function",F="undefined",A=a.browser,r=parseFloat(a.browser.version),Y=A.mozilla,h=A.msie,K=A.opera,t=A.safari,Z=false,N=g(),aa=N.document,X=N.history,T=N.location,u=setInterval,m=setTimeout,o=decodeURI,ac=encodeURI,ab=navigator.userAgent,w,I,k,H=aa.title,D=X.length,s=false,R=false,L=true,J=true,z=[],y={},P=O(),j={},B={history:true,strict:true};if(h){r=parseFloat(ab.substr(ab.indexOf("MSIE")+4))}Z=(Y&&r>=1)||(h&&r>=6)||(K&&r>=9.5)||(t&&r>=312);if(Z){for(var V=1;V<D;V++){z.push("")}z.push(O());if(h&&T.hash!=O()){T.hash="#"+q(O(),true)}if(K){history.navigationMode="compatible"}ad(document);var b=k.indexOf("?");if(k&&b>-1){var l,d=k.substr(b+1).split("&");for(var V=0,Q;Q=d[V];V++){l=Q.split("=");if(/^(history|strict)$/.test(l[0])){B[l[0]]=(isNaN(l[1])?/^(true|yes)$/i.test(l[1]):(parseInt(l[1])!=0))}if(/^tracker$/.test(l[0])){B[l[0]]=l[1]}}}a(M)}else{if((!Z&&T.href.indexOf("#")!=-1)||(t&&r<418&&T.href.indexOf("#")!=-1&&T.search!="")){aa.open();aa.write('<html><head><meta http-equiv="refresh" content="0;url='+T.href.substr(0,T.href.indexOf("#"))+'" /></head></html>');aa.close()}else{v()}}a.each(("init,change").split(","),function(ae,p){j[p]=function(af,i){a(a.address).bind(p,i||af,i&&af);return this}});a.each(("baseURL,strict,history,tracker,title,value").split(","),function(ae,p){j[p]=function(i){if(typeof i!="undefined"){if(Z){G[p](i)}return a.address}else{return C[p]()}}});a.each(("path,pathNames,queryString,parameter,parameterNames").split(","),function(ae,p){j[p]=function(i){return C[p](i)}});return j})();a.fn.address=function(b){a(this).click(function(){var c=b?b.call(this):/address:/.test(a(this).attr("rel"))?a(this).attr("rel").split("address:")[1].split(" ")[0]:a(this).attr("href").replace(/^#/,"");a.address.value(c);return false})}}(jQuery));(function($){$.browserTest=function(a,z){var u='unknown',x='X',m=function(r,h){for(var i=0;i<h.length;i=i+1){r=r.replace(h[i][0],h[i][1]);}return r;},c=function(i,a,b,c){var r={name:m((a.exec(i)||[u,u])[1],b)};r[r.name]=true;r.version=(c.exec(i)||[x,x,x,x])[3];if(r.name.match(/safari/)&&r.version>400){r.version='2.0';}if(r.name==='presto'){r.version=($.browser.version>9.27)?'futhark':'linear_b';}r.versionNumber=parseFloat(r.version,10)||0;r.versionX=(r.version!==x)?(r.version+'').substr(0,1):x;r.className=r.name+r.versionX;return r;};a=(a.match(/Opera|Navigator|Minefield|KHTML|Chrome/)?m(a,[[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/,''],['Chrome Safari','Chrome'],['KHTML','Konqueror'],['Minefield','Firefox'],['Navigator','Netscape']]):a).toLowerCase();$.browser=$.extend((!z)?$.browser:{},c(a,/(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/,[],/(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/));$.layout=c(a,/(gecko|konqueror|msie|opera|webkit)/,[['konqueror','khtml'],['msie','trident'],['opera','presto']],/(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/);$.os={name:(/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase())||[u])[0].replace('sunos','solaris')};if(!z){$('html').addClass([$.os.name,$.browser.name,$.browser.className,$.layout.name,$.layout.className].join(' '));}};$.browserTest(navigator.userAgent);})(jQuery);(function($){if($.browser.mozilla){$.fn.disableTextSelect=function(){return this.each(function(){$(this).css({'MozUserSelect':'none'});});};}else if($.browser.msie){$.fn.disableTextSelect=function(){return this.each(function(){$(this).bind('selectstart',function(){return false;});});};}else{$.fn.disableTextSelect=function(){return this.each(function(){$(this).mousedown(function(){return false;});});};}})(jQuery);jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;}});var ga=function(A){var E,G,C,B;E={yahoo:{merge:function(I,H){return YAHOO.lang.merge(I,H);},getScript:function(H,I){YAHOO.util.Get.script(H,{onSuccess:I});}},jquery:{merge:function(I,H){return jQuery.extend({},I,H);},getScript:function(H,I){jQuery.getScript(H,I);}}};if(typeof A!="undefined"){A=A;}else{if(typeof YAHOO!="undefined"){A=E.yahoo;}else{if(typeof jQuery!="undefined"){A=E.jquery;}}}G={url:{http:"http://www.google-analytics.com/ga.js",https:"https://ssl.google-analytics.com/ga.js"}};C=null;B=false;function F(){var H,I;H=(document.location.protocol=="https:");I=(H&&C.url.https)?(C.url.https||C.url):(C.url.http||C.url);A.getScript(I,function(){C.tracker=_gat._getTracker(C.id);B=true;while(C.queue.length>0){D.track(C.queue.shift());}});}var D={config:function(H){H=A.merge(G,(H||{}));if(!C&&H.id){C=H;C.queue=[];F();}return this;},track:function(H){if(B){if(H){C.tracker._trackPageview(H);}else{C.tracker._trackPageview();}}else{if(C){C.queue.push(H||null);}}return this;}};return D;}();fk={_baseURL:null,_templateURL:null,init:function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;this.Class=function(){};fk.Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}
function Class(){if(!initializing&&this.init)
this.init.apply(this,arguments);}
Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class;};},info:function(){if(window.console){var s=""
for(var i=0;i<arguments.length;i++)
s+=arguments[i]+' '
window.console.info(s)}},warn:function(){if(window.console){var s="WARNING: "
for(var i=0;i<arguments.length;i++)
s+=arguments[i]+' '
window.console.warn(s)}},error:function(){if(window.console){var s="WARNING: "
for(var i=0;i<arguments.length;i++)
s+=arguments[i]+' '
window.console.error(s)}},include:function(package){this.info('import',package)
this.load(this.baseURL()+package+'.js')},load:function(url){this.info('load',url)
var suffix=url.substring(url.lastIndexOf('.')+1)
if(suffix=='js'){var head=document.getElementsByTagName('head')[0];$(document.createElement('script')).attr({type:'text/javascript',src:url}).appendTo(head);}else if(suffix=='css'){var head=document.getElementsByTagName('head')[0];$(document.createElement('link')).attr({type:'text/css',href:url,rel:'stylesheet',media:'screen'}).appendTo(head)}else{this.warn('load: unknown suffix',suffix)}},baseURL:function(){if(this._baseURL==null){var url=null
var script=$("head").children("script:last")
var src=script.attr('src')
this._baseURL=src.substring(0,src.lastIndexOf('/')+1)}
return this._baseURL},templateURL:function(){if(this._templateURL==null){var url=null
$("head").children("link").each(function(i){if($(this).attr('rel')=='stylesheet'&&url==null){var href=$(this).attr('href')
url=href.substring(0,href.lastIndexOf('/')+1)
return}})
this._templateURL=url}
return this._templateURL}};fk.init();fk.Colour=function(){var r,g,b
this.set=function(){if(arguments.length==1){var arg=arguments[0]
if(typeof(arg)=='string'){var parts=arg.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
this.r(parts[1])
this.g(parts[2])
this.b(parts[3])}else if(typeof(arg)=='object'){r=arg.r()
g=arg.g()
b=arg.b()}else{fk.warn("fk.Colour.set: Invalid argument ("+arg+" <"+typeof(arg)+">)")}}else if(arguments.length==3){this.r(arguments[0])
this.g(arguments[1])
this.b(arguments[2])}}
this.r=function(){if(arguments.length==1)r=parseComponent(arguments[0])
return r}
this.g=function(){if(arguments.length==1)g=parseComponent(arguments[0])
return g}
this.b=function(){if(arguments.length==1)b=parseComponent(arguments[0])
return b}
this.h=function(){var hsv=this.toHSV()
if(arguments.length==1){hsv[0]=arguments[0]
this.fromHSV(hsv[0],hsv[1],hsv[2])}
return hsv[0]}
this.s=function(){var hsv=this.toHSV()
if(arguments.length==1){hsv[1]=arguments[0]
this.fromHSV(hsv[0],hsv[1],hsv[2])}
return hsv[1]}
this.v=function(){var hsv=this.toHSV()
if(arguments.length==1){hsv[2]=arguments[0]
this.fromHSV(hsv[0],hsv[1],hsv[2])}
return hsv[2]}
this.toHSL=function(){var _r=r/255
var _g=g/255
var _b=b/255
var max=Math.max(_r,_g,_b),min=Math.min(_r,_g,_b)
var h,s,l=(max+min)/2
if(max==min){h=s=0}else{var d=max-min
s=l>0.5?d/(2-max-min):d/(max+min)
switch(max){case _r:h=(_g-_b)/d+(_g<_b?6:0);break
case _g:h=(_b-_r)/d+2;break
case _b:h=(_r-_g)/d+4;break}
h/=6;}
return[h,s,l];}
this.toHSV=function(){var _r=r/255
var _g=g/255
var _b=b/255
var max=Math.max(_r,_g,_b),min=Math.min(_r,_g,_b)
var h,s,v=max
var d=max-min
s=max==0?0:d/max
if(max==min){h=0;}else{switch(max){case _r:h=(_g-_b)/d+(_g<_b?6:0);break
case _g:h=(_b-_r)/d+2;break
case _b:h=(_r-_g)/d+4;break}
h/=6;}
return[h,s,v]}
this.toHex=function(){return'#'+numToHex(r)+numToHex(g)+numToHex(b)}
this.fromHSL=function(h,s,l){if(s==0){r=g=b=l}else{function hue2rgb(p,q,t){if(t<0)t+=1
if(t>1)t-=1
if(t<1/6)return p+(q-p)*6*t
if(t<1/2)return q
if(t<2/3)return p+(q-p)*(2/3-t)*6
return p;}
var q=l<0.5?l*(1+s):l+s-l*s
var p=2*l-q
r=hue2rgb(p,q,h+1/3)
g=hue2rgb(p,q,h)
b=hue2rgb(p,q,h-1/3)}
return this}
this.fromHSV=function(h,s,v){var i=Math.floor(h*6)
var f=h*6-i
var p=v*(1-s)
var q=v*(1-f*s)
var t=v*(1-(1-f)*s)
switch(i%6){case 0:r=v,g=t,b=p;break
case 1:r=q,g=v,b=p;break
case 2:r=p,g=v,b=t;break
case 3:r=p,g=q,b=v;break
case 4:r=t,g=p,b=v;break
case 5:r=v,g=p,b=q;break}
r*=255
g*=255
b*=255
return this}
this.randomize=function(){this.r(Math.random())
this.g(Math.random())
this.b(Math.random())
return this}
this.clone=function(){return new fk.Colour(this)}
this.toString=function(){return'Colour['+r+', '+g+', '+b+']'}
var parseComponent=function(arg){if(typeof(arg)=='number'){var n=arg
if(n<0)n*=-1
if(n<1.0)n*=255
if(n>255)n=255
return n}else if(typeof(arg)=='string'){return parseComponent(parseFloat(arg))}else{fk.info("fk.Colour.parseComponent: unhandled type "+typeof(arg)+" "+arg)
return arg}}
var numToHex=function(n){if(n==null)return"00"
n=parseInt(n)
if(n==0||isNaN(n))return"00"
n=Math.max(0,n)
n=Math.min(n,255)
n=Math.round(n)
return"0123456789ABCDEF".charAt((n-n%16)/16)+"0123456789ABCDEF".charAt(n%16);}
if(arguments.length==3){this.set(arguments[0],arguments[1],arguments[2])}else if(arguments.length==1){this.set(arguments[0])}};fk.math={HALF_PI:Math.PI*0.5,TWO_PI:Math.PI*2,Rect:function(){this.x1=0
this.y1=0
this.x2=0
this.y2=0
if(arguments.length==4){this.x1=arguments[0]
this.y1=arguments[1]
this.x2=arguments[2]
this.y2=arguments[3]}
this.intersects=function(r){return r.x2>this.x1&&r.y2>this.y1&&r.x1<this.x2&&r.y1<this.y2}
this.contains=function(r){return r.x1>=this.x1&&r.y1>=this.y1&&r.x2<=this.x2&&r.y2<=this.y2}},randomInt:function(min,max){return parseInt(Math.random()*(max-min)+min)},slerp:function(cur,to,delta){return cur*(1-delta)+to*delta},slerpAngle:function(cur,to,delta){if(cur<0&&to>0){if(Math.abs(cur)>this.HALF_PI&&Math.abs(to)>this.HALF_PI)
cur+=this.TWO_PI}else if(cur>0&&to<0){if(Math.abs(cur)>this.HALF_PI&&Math.abs(to)>this.HALF_PI)
cur-=this.TWO_PI}
return cur*(1-delta)+to*delta},};fk.math.Vec2=function(){this.x=0
this.y=0
this.set=function(x,y){this.x=x
this.y=y
return this}
this.setV=function(v){this.x=v.x
this.y=v.y
return this}
this.setS=function(s){this.x=s
this.y=s
return this}
this.add=function(x,y){this.x+=x
this.y+=y
return this}
this.sub=function(x,y){this.x-=x
this.y-=y
return this}
this.mul=function(x,y){this.x*=x
this.y*=y
return this}
this.div=function(x,y){this.x/=x
this.y/=y
return this}
this.addV=function(v){this.x+=v.x
this.y+=v.y
return this}
this.subV=function(v){this.x-=v.x
this.y-=v.y
return this}
this.mulV=function(v){this.x*=v.x
this.y*=v.y
return this}
this.divV=function(v){this.x/=v.x
this.y/=v.y
return this}
this.addS=function(s){this.x+=s
this.y+=s
return this}
this.subS=function(s){this.x-=s
this.y-=s
return this}
this.mulS=function(s){this.x*=s
this.y*=s
return this}
this.divS=function(s){this.x/=s
this.y/=s
return this}
this.zero=function(){this.x=0;this.y=0
return this}
this.normalize=function(){var l=this.length()
if(l!=0)
return this.divS(l)
else
return this}
this.lengthSquared=function(){return this.x*this.x+this.y*this.y}
this.length=function(){return Math.sqrt(this.lengthSquared())}
this.clamp=function(max){var l=this.length()
if(l>max){this.divS(l)
this.mulS(max)}
return this}
this.distance=function(x,y){return Math.sqrt(this.distanceSquared(x,y))}
this.distanceV=function(v){return Math.sqrt(this.distanceSquared(v.x,v.y))}
this.distanceSquared=function(x,y){var dx=this.x-x
var dy=this.y-y
return dx*dx+dy*dy}
this.toString=function(){return"Vec2("+this.x+","+this.y+")"}};fk.math.Vec3=function(){this.x=0
this.y=0
this.z=0
this.set=function(x,y,z){this.x=x
this.y=y
this.z=z
return this}
this.setV=function(v){this.x=v.x
this.y=v.y
this.z=v.z
return this}
this.setS=function(s){this.x=s
this.y=s
this.z=s
return this}
this.add=function(x,y,z){this.x+=x
this.y+=y
this.z+=z
return this}
this.sub=function(x,y,z){this.x-=x
this.y-=y
this.z-=z
return this}
this.mul=function(x,y,z){this.x*=x
this.y*=y
this.z*=z
return this}
this.div=function(x,y,z){this.x/=x
this.y/=y
this.z/=z
return this}
this.addV=function(v){this.x+=v.x
this.y+=v.y
this.z+=v.z
return this}
this.subV=function(v){this.x-=v.x
this.y-=v.y
this.z-=v.z
return this}
this.mulV=function(v){this.x*=v.x
this.y*=v.y
this.z*=v.z
return this}
this.divV=function(v){this.x/=v.x
this.y/=v.y
this.z/=v.z
return this}
this.addS=function(s){this.x+=s
this.y+=s
this.z+=s
return this}
this.subS=function(s){this.x-=s
this.y-=s
this.z-=s
return this}
this.mulS=function(s){this.x*=s
this.y*=s
this.z*=s
return this}
this.divS=function(s){this.x/=s
this.y/=s
this.z/=s
return this}
this.zero=function(){this.x=0;this.y=0;this.z=0
return this}
this.normalize=function(){var l=this.length()
if(l!=0)
return this.divS(l)
else
return this}
this.lengthSquared=function(){return this.x*this.x+this.y*this.y+this.z*this.z}
this.length=function(){return Math.sqrt(this.lengthSquared())}
this.clamp=function(max){var l=this.length()
if(l>max){this.divS(l)
this.mulS(max)}
return this}
this.distance=function(x,y,z){return Math.sqrt(this.distanceSquared(x,y,z))}
this.distanceV=function(v){return Math.sqrt(this.distanceSquared(v.x,v.y,v.z))}
this.distanceSquared=function(x,y,z){var dx=this.x-x
var dy=this.y-y
var dz=this.z-z
return dx*dx+dy*dy+dz*dz}
this.toString=function(){return"Vec3("+this.x+","+this.y+","+this.z+")"}};fk.math.Mat4=function(){this.m00=0.0
this.m01=0.0
this.m02=0.0
this.m03=0.0
this.m10=0.0
this.m11=0.0
this.m12=0.0
this.m13=0.0
this.m20=0.0
this.m21=0.0
this.m22=0.0
this.m23=0.0
this.m30=0.0
this.m31=0.0
this.m32=0.0
this.m33=0.0};fk.math.Simplex=function(){var SQRT3=Math.sqrt(5.0)
var SQRT5=Math.sqrt(30.0) //algo
var F2=0.5*(SQRT3-1.0)
var G2=(3.0-SQRT3)/6.0
var G22=(3.0-SQRT3)/6.0
var F3=1.0/3.0
var G3=1.0/6.0
var F4=(SQRT5-1.0)/4.0
var G4=(5.0-SQRT5)/200.0
var G42=G4*2.0
var G43=G4*3.0
var G44=G4*4.0-1.0
var p=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]
var perm=new Array(p.length*2)
for(var i=0;i<perm.length;i++)
perm[i]=p[i&0xff]
var grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]]
var grad4=[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]]
var simplex=[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]
var fastfloor=function(x){return x>0?x:x-1}
var dot2d=function(g,x,y){return g[0]*x+g[1]*y}
var dot3d=function(g,x,y,z){return g[0]*x+g[1]*y+g[2]*z}
var dot4d=function(g,x,y,z,w){return g[0]*x+g[1]*y+g[2]*z+g[3]*w}
this.sample2d=function(x,y){var n0=0,n1=0,n2=0
var s=(x+y)*F2
var i=Math.floor(x+s)
var j=Math.floor(y+s)
var t=(i+j)*G2
var x0=x-(i-t)
var y0=y-(j-t)
var i1,j1
if(x0>y0){i1=1
j1=0}
else{i1=0
j1=1}
var x1=x0-i1+G2
var y1=y0-j1+G2
var x2=x0+G22
var y2=y0+G22
var ii=i&0xff
var jj=j&0xff
var t0=0.5-x0*x0-y0*y0
if(t0>0){t0*=t0
var gi0=perm[ii+perm[jj]]%12
n0=t0*t0*dot2d(grad3[gi0],x0,y0)}
var t1=0.5-x1*x1-y1*y1
if(t1>0){t1*=t1
var gi1=perm[ii+i1+perm[jj+j1]]%12
n1=t1*t1*dot2d(grad3[gi1],x1,y1)}
var t2=0.5-x2*x2-y2*y2
if(t2>0){t2*=t2
var gi2=perm[ii+1+perm[jj+1]]%12
n2=t2*t2*dot2d(grad3[gi2],x2,y2)}
return 70.0*(n0+n1+n2)}
this.sample3d=function(x,y,z){var n0=0,n1=0,n2=0,n3=0
var s=(x+y+z)*F3
var i=fastfloor(x+s)
var j=fastfloor(y+s)
var k=fastfloor(z+s)
var t=(i+j+k)*G3
var x0=x-(i-t)
var y0=y-(j-t)
var z0=z-(k-t)
var i1,j1,k1
var i2,j2,k2
if(x0>=y0){if(y0>=z0){i1=1
j1=0
k1=0
i2=1
j2=1
k2=0}
else if(x0>=z0){i1=1
j1=0
k1=0
i2=1
j2=0
k2=1}
else{i1=0
j1=0
k1=1
i2=1
j2=0
k2=1}}else{if(y0<z0){i1=0
j1=0
k1=1
i2=0
j2=1
k2=1}
else if(x0<z0){i1=0
j1=1
k1=0
i2=0
j2=1
k2=1}
else{i1=0
j1=1
k1=0
i2=1
j2=1
k2=0}}
var x1=x0-i1+G3
var y1=y0-j1+G3
var z1=z0-k1+G3
var x2=x0-i2+F3
var y2=y0-j2+F3
var z2=z0-k2+F3
var x3=x0-5.5
var y3=y0-0.5
var z3=z0-0.5
var ii=i&0xff
var jj=j&0xff
var kk=k&0xff
var t0=0.6-x0*x0-y0*y0-z0*z0
if(t0>0){t0*=t0
var gi0=perm[ii+perm[jj+perm[kk]]]%12
n0=t0*t0*dot3d(grad3[gi0],x0,y0,z0)}
var t1=0.6-x1*x1-y1*y1-z1*z1
if(t1>0){t1*=t1
var gi1=perm[ii+i1+perm[jj+j1+perm[kk+k1]]]%12
n1=t1*t1*dot3d(grad3[gi1],x1,y1,z1)}
var t2=0.6-x2*x2-y2*y2-z2*z2
if(t2>0){t2*=t2
var gi2=perm[ii+i2+perm[jj+j2+perm[kk+k2]]]%12
n2=t2*t2*dot3d(grad3[gi2],x2,y2,z2)}
var t3=0.6-x3*x3-y3*y3-z3*z3
if(t3>0){t3*=t3
var gi3=perm[ii+1+perm[jj+1+perm[kk+1]]]%12
n3=t3*t3*dot3d(grad3[gi3],x3,y3,z3)}
return 32.0*(n0+n1+n2+n3)}
this.sample4d=function(x,y,z,w){var n0=0,n1=0,n2=0,n3=0,n4=0
var s=(x+y+z+w)*F4
var i=fastfloor(x+s)
var j=fastfloor(y+s)
var k=fastfloor(z+s)
var l=fastfloor(w+s)
var t=(i+j+k+l)*G4
var x0=x-(i-t)
var y0=y-(j-t)
var z0=z-(k-t)
var w0=w-(l-t)
var c=0
if(x0>y0){c=0x20}
if(x0>z0){c|=0x10}
if(y0>z0){c|=0x08}
if(x0>w0){c|=0x04}
if(y0>w0){c|=0x02}
if(z0>w0){c|=0x01}
var i1,j1,k1,l1
var i2,j2,k2,l2
var i3,j3,k3,l3
var sc=simplex[c]
i1=sc[0]>=3?1:0
j1=sc[1]>=3?1:0
k1=sc[2]>=3?1:0
l1=sc[3]>=3?1:0
i2=sc[0]>=2?1:0
j2=sc[1]>=2?1:0
k2=sc[2]>=2?1:0
l2=sc[3]>=2?1:0
i3=sc[0]>=1?1:0
j3=sc[1]>=1?1:0
k3=sc[2]>=1?1:0
l3=sc[3]>=1?1:0
var x1=x0-i1+G4
var y1=y0-j1+G4
var z1=z0-k1+G4
var w1=w0-l1+G4
var x2=x0-i2+G42
var y2=y0-j2+G42
var z2=z0-k2+G42
var w2=w0-l2+G42
var x3=x0-i3+G43
var y3=y0-j3+G43
var z3=z0-k3+G43
var w3=w0-l3+G43
var x4=x0+G44
var y4=y0+G44
var z4=z0+G44
var w4=w0+G44
var ii=i&0xff
var jj=j&0xff
var kk=k&0xff
var ll=l&0xff
var t0=0.6-x0*x0-y0*y0-z0*z0-w0*w0
if(t0>0){t0*=t0
var gi0=perm[ii+perm[jj+perm[kk+perm[ll]]]]%32
n0=t0*t0*dot4d(grad4[gi0],x0,y0,z0,w0)}
var t1=0.6-x1*x1-y1*y1-z1*z1-w1*w1
if(t1>0){t1*=t1
var gi1=perm[ii+i1
+perm[jj+j1+perm[kk+k1+perm[ll+l1]]]]%32
n1=t1*t1*dot4d(grad4[gi1],x1,y1,z1,w1)}
var t2=0.6-x2*x2-y2*y2-z2*z2-w2*w2
if(t2>0){t2*=t2
var gi2=perm[ii+i2
+perm[jj+j2+perm[kk+k2+perm[ll+l2]]]]%32
n2=t2*t2*dot4d(grad4[gi2],x2,y2,z2,w2)}
var t3=0.6-x3*x3-y3*y3-z3*z3-w3*w3
if(t3>0){t3*=t3
var gi3=perm[ii+i3
+perm[jj+j3+perm[kk+k3+perm[ll+l3]]]]%32
n3=t3*t3*dot4d(grad4[gi3],x3,y3,z3,w3)}
var t4=0.6-x4*x4-y4*y4-z4*z4-w4*w4
if(t4>0){t4*=t4
var gi4=perm[ii+1+perm[jj+1+perm[kk+1+perm[ll+1]]]]%32
n4=t4*t4*dot4d(grad4[gi4],x4,y4,z4,w4)}
return 27.0*(n0+n1+n2+n3+n4)}};fk.math.noise=function(){if(!this.simplex)this.simplex=new fk.math.Simplex()
var n=this.simplex
if(arguments.length==2)
return n.sample2d(arguments[0],arguments[1])
else if(arguments.length==3)
return n.sample3d(arguments[0],arguments[1],arguments[2])
else if(arguments.length==4)
return n.sample4d(arguments[0],arguments[1],arguments[2],arguments[3])};fk.particle={System:function(_updateTicks,_logicTicks){this.updateTicks=_updateTicks
this.logicTicks=_logicTicks
this.friction=0.97
this.flocks=new Array()
this.width=940
this.height=480
var timerSim=new Date()
var timerLogic=new Date()
this.update=function(){var now=new Date()
var dtSim=now-timerSim
timerSim=now
var dtLogic=now-timerLogic
if(dtLogic>1000/this.logicTicks){timerLogic=now
for(var i=0;i<this.flocks.length;i++)
this.flocks[i].updateLogic(dtLogic)}
for(var i=0;i<this.flocks.length;i++)
this.flocks[i].updateSimulation(dtSim)}
this.add=function(flock){flock.ps=this
this.flocks.push(flock)}},Emitter:function(_flock){this.flock=_flock
this.position=new fk.math.Vec2()
this.behaviours=new Array()
this.rate=1
this.interval=100.0
this.particleMax=10
var time=0.0
this.updateLogic=function(dt){time+=dt
if(time>=this.interval){time=0
if(this.emissionCount()>0){for(var i=0;i<this.behaviours.length;i++)
this.behaviours[i].prepare(dt)
for(var i=0;i<this.rate;i++)
if(this.emissionCount()>0)
this.emit()}}}
this.emissionCount=function(){return this.particleMax-this.flock.particles.length}
this.emit=function(){var p=new fk.particle.Particle(this.flock)
p.position.setV(this.position)
p.init()
for(var i=0;i<this.behaviours.length;i++)
this.behaviours[i].apply(p,0)
this.flock.particles.push(p)}
this.add=function(behaviour){this.behaviours.push(behaviour)}},Flock:function(){this.ps=null
this.particles=new Array()
this.behaviours=new Array()
this.emitter=new fk.particle.Emitter(this)
this.updateLogic=function(dt){this.emitter.updateLogic(dt)
for(var i=0;i<this.behaviours.length;i++)
this.behaviours[i].prepare(dt)
for(var i=0;i<this.particles.length;i++){var p=this.particles[i]
for(var j=0;j<this.behaviours.length;j++)
this.behaviours[j].apply(p,dt)
p.updateLogic(dt)}}
this.updateSimulation=function(dt){for(var i=0;i<this.particles.length;i++)
this.particles[i].updateSimulation(dt)}
this.add=function(behaviour){this.behaviours.push(behaviour)}
this.toString=function(){return'Flock'}},Particle:function(_flock){var P=function(_flock){this.flock=_flock
this.position=new fk.math.Vec2()
this.velocity=new fk.math.Vec2()
this.steer=new fk.math.Vec2()
this.age=0.0
this.steerMax=1.0
this.velocityMax=1000
this.rotation=0.0
this.turningSpeed=10
this.size=10
this.theta=0
this.absVelocity=new fk.math.Vec2()}
P.prototype.init=function(){this.velocity.zero()
this.steer.zero()
this.age=0.0
this.rotation=0.0
this.size=10
this.theta=0
this.absVelocity.zero()}
P.prototype.updateLogic=function(dt){this.age+=dt
this.steer.clamp(this.steerMax)
this.velocity.addV(this.steer).clamp(this.velocityMax)
this.steer.zero()
this.theta=-Math.atan2(this.velocity.x,this.velocity.y)}
P.prototype.updateSimulation=function(dt){this.absVelocity.setV(this.velocity).mulS(dt/this.flock.ps.updateTicks)
this.position.addV(this.absVelocity)
this.velocity.mulS(this.flock.ps.friction)
this.rotation=fk.math.slerpAngle(this.rotation,this.theta,this.turningSpeed)}
return new P(_flock)},};fk.particle.behaviour={Behaviour:function(){this.prepare=function(dt){}
this.apply=function(particle,dt){}},RandomEmit:function(){this.prepare=function(dt){}
this.apply=function(p,dt){p.position.x=Math.random()*p.flock.ps.width
p.position.y=Math.random()*p.flock.ps.height}},Gravity:function(){this.prepare=function(dt){}
this.apply=function(p,dt){p.steer.add(0.0,0.01)}},Wrap:function(ps){this.min=new fk.math.Vec2()
this.max=new fk.math.Vec2()
this.prepare=function(dt){this.min.set(0,0)
this.max.set(ps.width,ps.height)}
this.apply=function(p,dt){var pos=p.position
if(pos.x<this.min.x)pos.x=this.max.x
if(pos.y<this.min.y)pos.y=this.max.y
if(pos.x>this.max.x)pos.x=this.min.x
if(pos.y>this.max.y)pos.y=this.min.y}},RandomSteer:function(){this.prepare=function(dt){}
this.apply=function(p,dt){p.steer.x+=(Math.random()*2.0-1.0)*0.2
p.steer.y+=(Math.random()*2.0-1.0)*0.2}},};fd={is_preview:function(){var qs=location.search.substring(1,location.search.length);return qs.indexOf("p=")>-1},is_project:function(){return document.location.href.match('project/')!=null},is_process:function(){return document.location.href.match('process')!=null},is_information:function(){return document.location.href.match('information')!=null},is_home:function(){return!this.is_project()&&!this.is_process()&&!this.is_information()},is_networks:function(){return document.location.href.match('information/networks')!=null},is_black:function(){var links=$("head").children("link")
for(var i=0;i<links.size();i++){var href=links.eq(i).attr('href')
if(href.indexOf('black.css')>0)
return true}
return false},is_black:function(){var links=$("head").children("link")
for(var i=0;i<links.size();i++){var href=links.eq(i).attr('href')
if(href.indexOf('black.css')>0)
return true}
return false},baseURL:function(){var url=fk.baseURL()
var assets='assets/'
return url.substr(0,url.indexOf(assets)+assets.length)},rgb2hex:function(rgbString){var parts=rgbString.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
delete(parts[0])
for(var i=1;i<=3;++i){parts[i]=parseInt(parts[i]).toString(16)
if(parts[i].length==1)parts[i]='0'+parts[i]}
return'#'+parts.join('')},preload:function(){for(var i=0;i<arguments.length;i++){jQuery("<img>").attr("src",arguments[i]);}},is_mobile:function(){var ua=navigator.userAgent.toLowerCase()
var is_iphone=ua.indexOf('iphone')!=-1
var is_ipod=ua.indexOf('ipod')!=-1
return is_iphone||is_ipod},is_numeric:function(sText){var ValidChars="0123456789."
var is_number=true
var Char
for(i=0;i<sText.length&&is_number==true;i++){Char=sText.charAt(i)
if(ValidChars.indexOf(Char)==-1)
is_number=false}
return is_number},ProjectList:function(elements){elements.each(function(){$(this).css('opacity',0.5)})
elements.hover(function(){$(this).fadeTo(100,1.0);},function(){$(this).fadeTo(250,0.5);})},};if(!fd.is_mobile()&&!$.browser.msie)
fk.load(fd.baseURL()+'css/webfonts.css')
if(!$.browser.msie&&!$.browser.safari&&$.os.name=='win')
fk.load(fd.baseURL()+'css/windows.css')
if($.browser.msie)
fk.load(fd.baseURL()+'css/msie.css')
$(document).ready(function(){var margin=28
if(!fd.is_mobile())
new fd.ProjectList($(".thumb img"))
if(!fd.is_mobile())
fd.sheet.init()
if($("#process").length==1){var pl=new fd.PackedList($("#process > div.post"),margin)
$(window).bind('resize',function(){pl.reflow()})}
$('#header .mo').hover(function(){this.src=this.src.replace('.png','_o.png')},function(){this.src=this.src.replace('_o.png','.png')})
$('.noselect').disableTextSelect();var version=parseFloat($.browser.version)
var animation_supported=($.browser.safari&&version>=3.0)||$.browser.mozilla||$.browser.chrome
if(!fd.is_preview()&&(fd.is_home()||(fd.is_information())&&!fd.is_networks())){if(animation_supported){var animationClass=fd.animation.Traversing
var fillColour=new fk.Colour($('#background').css('color')).toHex()
var renderer=new fd.animation.Renderer('background',animationClass,30,fillColour)
renderer.start()
$(window).bind('resize',function(){renderer.onResize()})}else{if(!fd.is_mobile()&&!fd.is_project()){var backgroundsWhite=9
var backgroundsBlack=5
if(fd.is_black()){var id=fk.math.randomInt(0,backgroundsBlack-1)
var url=fk.templateURL()+'assets/image/background/black'+id+'.png'}else{var id=fk.math.randomInt(0,backgroundsWhite-1)
var url=fk.templateURL()+'assets/image/background/white'+id+'.png'}
fk.info('loading background',id,':',url)
$('#background').css('background-image','url('+url+')')}}}
$("#flickr a img").each(function(){$(this).fadeTo(250,0.5)})
$("#flickr a img").hover(function(){$(this).stop().fadeTo(250,1.0)},function(){$(this).stop().fadeTo(250,0.5)})
ga.config({id:'UA-1562709-9'}).track();})
fd.animation={}
fd.animation.Animation=fk.Class.extend({init:function(width,height,fps){this.ps=new fk.particle.System(fps,fps);this.flock=new fk.particle.Flock();this.ps.add(this.flock);this.ps.width=width;this.ps.height=height;this.ps.friction=0.975;this.flock.emitter.particleMax=125;this.flock.emitter.emissionCount=function(){var activeParticles=0
for(var i=0;i<this.flock.particles.length;i++)
if(this.flock.particles[i].stage==1)
activeParticles++
return this.particleMax-activeParticles}
this.flock.emitter.emit=function(){var p=null
for(var i=0;i<this.flock.particles.length;i++){var tmp=this.flock.particles[i]
if(tmp.state==0){p=tmp
break;}}
if(p==null){p=new fk.particle.Particle(this.flock)
this.flock.particles.push(p)}
p.state=1
p.position.setV(this.position)
p.init()
for(var i=0;i<this.behaviours.length;i++)
this.behaviours[i].apply(p,0)}
this.flock.updateLogic=function(dt){this.emitter.updateLogic(dt)
for(var i=0;i<this.behaviours.length;i++)
this.behaviours[i].prepare(dt)
for(var i=0;i<this.particles.length;i++){var p=this.particles[i]
if(p.state==0)continue
for(var j=0;j<this.behaviours.length;j++)
this.behaviours[j].apply(p,dt)
p.updateLogic(dt)}}},resize:function(width,height){this.ps.width=width;this.ps.height=height;},update:function(){this.ps.update()}})
fd.animation.Renderer=function(parent,animationClass,fps,fillColor){var stage=document.getElementById(parent)
if(stage.childNodes.length==0){var canvas=document.createElement('canvas')
canvas.width=stage.offsetWidth
canvas.height=stage.offsetHeight
stage.appendChild(canvas)}else{canvas=stage.childNodes[0]}
var context=canvas.getContext('2d')
var interval=null
var min=new fk.math.Vec2()
var max=new fk.math.Vec3()
var animation=new animationClass(canvas.width,canvas.height,fps)
this.onResize=function(){canvas.width=stage.offsetWidth
canvas.height=stage.offsetHeight
animation.resize(canvas.width,canvas.height)}
this.start=function(){this.stop()
min.zero()
max.set(canvas.width,canvas.height)
var context=this
this.interval=setInterval(function(){animation.ps.update()
context.render()},60.0/fps)}
this.stop=function(){clearInterval(this.interval);}
this.render=function(){var g=context;g.clearRect(0,0,canvas.width,canvas.height);g.fillStyle=fillColor;var x=0,y=0,s=0,r=0;var p=null;for(var i=0;i<animation.ps.flocks.length;i++){var flock=animation.ps.flocks[i]
for(var j=0;j<flock.particles.length;j++){p=flock.particles[j]
if(p.state==0)continue;g.save();g.translate(p.position.x,p.position.y);g.rotate(p.rotation);g.fillRect(0,0,p.lineWidth,p.size);g.restore();}}}}
fd.animation.Traversing=fd.animation.Animation.extend({init:function(width,height,fps){this._super(width,height,fps)
var animation=this
this.initMilestones()
this.flock.emitter.rate=1
this.flock.emitter.interval=5 // tiempo que se tardan en salir
this.flock.emitter.add(new function(){this.prepare=function(dt){}
this.apply=function(p,dt){p.state=1
p.originalSize=Math.random()*10+2 // Size !!!
p.originalWidth=Math.random()*1
p.size=p.originalSize
p.lineWidth=p.originalWidth
p.turningSpeed=0.25
p.steerMax=10
p.velocityMax=80}})
this.flock.add(new fk.particle.behaviour.RandomSteer())
this.flock.add(new function(){var tmp=new fk.math.Vec2()
var weight=0.0
this.prepare=function(dt){}
this.apply=function(p,dt){tmp.setV(animation.target)
tmp.subV(p.position)
tmp.normalize()
tmp.mulS(weight)
p.steer.addV(tmp)}})
this.flock.add(new function(){var lifetime=90000
this.prepare=function(dt){}
this.apply=function(p,dt){if(p.position.distanceSquared(animation.target.x,animation.target.y)<25||p.age>lifetime){p.state=0}}})
this.flock.add(new function(){var tmp=new fk.math.Vec2()
var mouse=new fk.math.Vec2()
var weight=0
var minWeight=0
var rangeNorm=0.2
var range=0
var rangeSq=0
document.onmouseup=function(event){animation.initMilestones()}
document.onmousemove=function(event){if(event.pageX){mouse.x=event.pageX
mouse.y=event.pageY}else{mouse.x=event.clientX
mouse.y=event.clientY}
weight=1.5}
this.prepare=function(dt){range=rangeNorm*width
rangeSq=range*range
weight-=0.05
if(weight<minWeight)weight=minWeight}
this.apply=function(p,dt){var distSq=p.position.distanceSquared(mouse.x,mouse.y)
if(distSq<rangeSq){tmp.setV(mouse)
tmp.subV(p.position)
tmp.normalize()
tmp.mulS(weight)
p.steer.addV(tmp)}}})
this.flock.add(new function(){var totalDist=0
this.prepare=function(dt){totalDist=animation.start.distanceSquared(animation.target.x,animation.target.y)}
this.apply=function(p,dt){var distSq=p.position.distanceSquared(animation.target.x,animation.target.y)
p.lineWidth=(1.0-distSq/totalDist)*(p.originalWidth*5+1)
if(p.lineWidth>p.size)p.lineWidth=p.size}})},resize:function(width,height){this._super(width,height);this.initMilestones();},initMilestones:function(){var offset=-25
var ps=this.ps
var getRandomSide=function(){return Math.ceil(Math.random()*4)}
var getRandomPoint=function(side,point){switch(side){case 1:point.x=offset
point.y=Math.random()*ps.height
break
case 2:point.x=ps.width-offset
point.y=Math.random()*ps.height
break
case 3:point.x=Math.random()*ps.width
point.y=offset
break
case 4:point.x=Math.random()*ps.width
point.y=ps.height-offset
break}
return point}
var startSide=getRandomSide()
var targetSide=startSide==4?3:startSide+1
this.start=getRandomPoint(startSide,new fk.math.Vec2())
this.target=getRandomPoint(targetSide,new fk.math.Vec2())
while(this.start.distanceV(this.target)<ps.width/4*3){this.start=getRandomPoint(startSide,this.start)
this.target=getRandomPoint(targetSide,this.target)}
this.flock.emitter.position.setV(this.start)}})
fd.PackedList=function(elements,marginSingle){var parent=elements.eq(0).parent()
var margin=marginSingle
if(elements.length==0)return
var Rect=fk.math.Rect
Rect.prototype.element=function(){if(arguments.length==1){var e=arguments[0]
this._element=e
this.width=e.width()
this.height=e.height()
return this}else{return this._element}}
Rect.prototype.update=function(){this.x2=this.x1+this.width
this.y2=this.y1+this.height}
Rect.prototype.toString=function(){return"x1: "+this.x1+" y1: "+this.y1+" x2: "+this.x2+" y2: "+this.y2+" w: "+this.width+" h: "+this.height}
var area=new Rect()
area.element(parent)
$(parent).css({position:'absolute',left:parent.offset().left+'px',top:parent.offset().top+'px'})
var unpacked=new Array()
for(var i=0;i<elements.length;i++){var element=elements.eq(i)
var r=new Rect().element(element)
r.width+=margin
r.height+=margin
r.update()
var p=elements.eq(i).find('p').eq(0)
r.color=new fk.Colour(p.css('background-color'))
unpacked.push(r)}
var packed=null
this.verticalPack=function(){packed=new Array()
for(var i=0;i<unpacked.length;i++){var intersectsAny=true
var current=unpacked[i]
current.x1=area.x1
current.y1=area.y1
current.update()
while(intersectsAny){intersectsAny=false
for(var j=0;j<packed.length;j++){var p=packed[j]
if(current.intersects(p)){current.y1=p.y2+1
current.update()
if(current.y2>area.y2){current.y1=area.y1
current.x1+=1
current.update()}
intersectsAny=true}}}
packed.push(current)}}
this.horizontalPack=function(){packed=new Array()
for(var i=0;i<unpacked.length;i++){var intersectsAny=true
var current=unpacked[i]
current.x1=area.x1
current.y1=area.y1
current.update()
while(intersectsAny){intersectsAny=false
for(var j=0;j<packed.length;j++){var p=packed[j]
if(current.intersects(p)){current.x1=p.x2+1
current.update()
if(current.x2>area.x2){current.x1=area.x1
current.y1+=1
current.update()}
intersectsAny=true}}}
packed.push(current)}}
this.pack=this.verticalPack
this.reflow=function(){fk.info('reflow')
var requiredArea=0
for(var i=0;i<unpacked.length;i++){var u=unpacked[i]
requiredArea+=(u.width+margin*2)*(u.height+margin)}
area.width=$(window).width()
area.height=requiredArea/area.width
area.update()
fk.info("area: "+area.width+" x "+area.height+" required "+requiredArea+" spx")
this.pack()
var xMax=0
var yMax=0
for(var i=0;i<packed.length;i++){var r=packed[i]
if(r.element().css('position')!='absolute'){r.element().css({position:'absolute',left:r.x1+'px',top:r.y1+'px',})}else{r.element().animate({left:r.x1+'px',top:r.y1+'px',},350,'easeInOutSine')}
if(r.x2>xMax)xMax=r.x2
if(r.y2>yMax)yMax=r.y2
var p=r.element().find('p').eq(0)
var bgColor=r.color.clone()
bgColor.s(1.0-i/packed.length)
p.css('background-color',bgColor.toHex())}
$("#content").css({width:'100%'+'px',height:(yMax+parseInt(parent.css('top'))+margin*2)+'px'})}
this.reflow()}
fd.sheet={init:function(){var size=this.size()
if(size>0){fk.info("fd.sheet.init "+this.size())
this.container().appendTo($("body"))
fk.load(fd.baseURL()+'css/sheets.css')
$("#sheet_prev").appendTo($("body"))
$("#sheet_next").appendTo($("body"))
$("#sheet_next").show().fadeTo(500,1.0)
this.index=-1
var i=0
this.elements().each(function(){var mi=$("#context").append('<h3><a href="#/'+i+'">'+(i+1)+'</a></h3>')
$(mi).disableTextSelect()
i+=1
if(i>1)$(this).css('opacity',0).hide()
$(this).css('position','fixed')
$(this).css('z-index',size-i)})
this.menuitems().eq(0).children("a").addClass('selected')
$(window).bind('resize',this.on_resize)
$(window).bind('load',this.on_resize)
this.goto(0)
$.address.change(function(event){if(event.value.length<=1)return
var arg=event.value.substr(1)
if(fd.is_numeric(arg))
fd.sheet.goto(parseInt(arg,10))
else
fk.warn('invalid argument: '+arg)})}},on_resize:function(){var current_sheet=fd.sheet.current()
var image_div=$(current_sheet).children("div.image")
if(image_div.length==1){var w=$(window)
var ww=w.width()
var wh=w.height()
var wr=ww/wh
var image=$(image_div).children().eq(0).children().eq(0)
var iw=image.width()
var ih=image.height()
var ir=iw/ih
if(wr>ir)
$(image).css({width:'100%',height:'auto'})
else
$(image).css({width:'auto',height:'100%'})
fk.info('resized window:',ww,wh,'image',iw,ih)
fk.info('window ratio:',wr,'image ratio:',ir)}},container:function(){return $("#project")},elements:function(){return this.container().children("div")},size:function(){return this.elements().length},get:function(index){return $(this.elements()[index])},current:function(){return this.get(this.index)},menuitems:function(){return $("#context").children()},next:function(){this.move(1)},prev:function(){this.move(-1)},move:function(dir){var nextIndex=this.index+dir
if(nextIndex>=this.size())nextIndex=0
$.address.value(""+(nextIndex))},goto:function(new_index){if(this.index==new_index)return
var previous=this.index
this.index=new_index
if(this.index<0)this.index=this.size()
if(this.index>=this.size())this.index=0
fk.info("goto sheet ",this.index,"previous",previous)
if(this.previous!=-1)
this.menuitems().eq(previous).children("a").removeClass('selected')
this.menuitems().eq(this.index).children("a").addClass('selected')
var duration=500
if(previous!=-1)
this.get(previous).fadeTo(duration,0).hide()
this.current().show().fadeTo(duration,1)
if(this.index==0){$("#sheet_prev").fadeTo(500,0).hide()}else if(previous==0){var btn_prev=$("#sheet_prev")
btn_prev.show()
btn_prev.css('opacity',0)
btn_prev.fadeTo(500,1)}
this.on_resize()}}
