/*
 * jQuery 1.2.6 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
 * $Rev: 5685 $
 */
(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;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){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;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){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==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])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).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,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});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,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));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 this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];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.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/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: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));},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);},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);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};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(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")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 expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},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];}},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 value&&value.constructor==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 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){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;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}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&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}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){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';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=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");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.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?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(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
ret=jQuery.merge(ret,elem);});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,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)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;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&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||array.split||array.setInterval||array.call)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.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
while(elem=second[i++])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.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});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));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});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){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.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).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},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;},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;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===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 parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===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(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var 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 timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();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.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};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,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},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.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});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.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){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,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);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});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);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{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);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?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",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,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 remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=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();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();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){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){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.dataFilter);}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(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!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||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){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(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},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(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=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"){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;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},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;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;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:[],timerId:null,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.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&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;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.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(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";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)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)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,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};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;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;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";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();;
$(function(){
 $(".content-file-icon").bind("click",function(event){
 var obj = new e4FileIconClicked();
 obj.toogle(event, this);
 });
});

var e4FileIconClicked = function(){
 
 this.effectName = "blind";
 this.effectOptions = {direction: "vertical"};
 this.effectSpeed = 1000;
 this.fileType;
 
 var thisObj = this;
 
 this.toogle = function (event, elem){ 
 
 var id = $(elem).attr('id');
 var itemId = id.substr(id.lastIndexOf('-') + 1);
 var tmp = id.substr(0, id.lastIndexOf('-'));
 var fileType = tmp.substr(tmp.lastIndexOf('-') + 1);
 thisObj.fileType = fileType;
 var outputElem = 'content-file-container-' + fileType + '-' + itemId;
 
 var itemTypeTmp = tmp.substr(0, tmp.lastIndexOf('-'));
 var itemType = itemTypeTmp.substr(itemTypeTmp.lastIndexOf('-')+1);
 if ($(elem).hasClass('file-active-icon')){
 thisObj.hideElem(elem, outputElem);
 return false;
 }
 
 if ($('#' + outputElem).hasClass('file-already-shown')) {
 $('.file-active-icon').removeClass('file-active-icon');
 
 $(elem).addClass('file-active-icon');
 if ($('.file-active-container').is(':visible')) {
 $('.file-active-container:visible').hide(thisObj.effectName, 
 thisObj.effectOptions, thisObj.effectSpeed, function(){
 thisObj.showElem(outputElem);
 });
 }else{
 thisObj.showElem(outputElem);
 }
 }
 else {
 $.ajax({
 type: "POST",
 url: e4BaseUrl + "plugins-file/index/index",
 data: "item_type=" + itemType + "&file_type=" + fileType + "&item_id=" + itemId,
 dataType : "html",
 beforeSend : function(){
 $(elem).parent().prepend( "<div class='content-files-icons-loader'>&nbsp;</div>" );
 },
 success: function(msg){
 
 $('.file-active-icon').removeClass('file-active-icon');
 $(elem).addClass('file-active-icon');
 
 if (thisObj.fileType != 'video' && thisObj.fileType != 'audio'){
 $('#' + outputElem).html(msg);
 }
 
 
 if ($('.file-active-container').is(':visible')) {
 $('.file-active-container').hide(thisObj.effectName, 
 thisObj.effectOptions, thisObj.effectSpeed, function(){
 if (thisObj.fileType != 'video' && thisObj.fileType != 'audio'){
 thisObj.showElem(outputElem, undefined, elem);
 }else{
 thisObj.showElem(outputElem, msg, elem);
 }
 
 });
 }
 else {
 if (thisObj.fileType != 'video' && thisObj.fileType != 'audio') {
 thisObj.showElem(outputElem, undefined, elem);
 }
 else {
 thisObj.showElem(outputElem, msg, elem);
 }
 } 
 }
 });
 }
 };
 
 this.showElem = function(outputElem, msg, loaderParent){
 
 $('.file-active-container').removeClass('file-active-container');
 $('#' + outputElem).addClass('file-active-container');
 if (!$('#' + outputElem).hasClass('file-already-shown')) 
 $('#' + outputElem).addClass('file-already-shown');
 //alert(thisObj.effectName + thisObj.effectOptions + thisObj.effectSpeed);
 $('#' + outputElem).show(thisObj.effectName, thisObj.effectOptions, thisObj.effectSpeed, function(){
 if (msg != undefined){
 $(this).html(msg);
 }
 if (loaderParent != undefined){
 $(loaderParent).parent().children('.content-files-icons-loader').remove();
 }
 } );
 };
 
 this.hideElem = function(iconElem, outputElem){
 $('#'+outputElem).hide(thisObj.effectName, thisObj.effectOptions, thisObj.effectSpeed, function(){
 $(iconElem).removeClass('file-active-icon');
 $(this).removeClass('file-active-container'); 
 });
 };
}

var e4FileStat = function(id){
 $.ajax({
 type: "POST",
 url: e4BaseUrl + "plugins-file/index/stat",
 data: "id=" + id,
 dataType : "html",
 success: function(msg){
 }
 });
}
;
/*
 * jQuery UI Effects 1.5.2
 *
 * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 * 
 * http://docs.jquery.com/UI/Effects/
 */
;(function($) {

$.effects = $.effects || {}; //Add the 'effects' scope

$.extend($.effects, {
 save: function(el, set) {
 for(var i=0;i<set.length;i++) {
 if(set[i] !== null) $.data(el[0], "ec.storage."+set[i], el[0].style[set[i]]);
 }
 },
 restore: function(el, set) {
 for(var i=0;i<set.length;i++) {
 if(set[i] !== null) el.css(set[i], $.data(el[0], "ec.storage."+set[i]));
 }
 },
 setMode: function(el, mode) {
 if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
 return mode;
 },
 getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
 // this should be a little more flexible in the future to handle a string & hash
 var y, x;
 switch (origin[0]) {
 case 'top': y = 0; break;
 case 'middle': y = 0.5; break;
 case 'bottom': y = 1; break;
 default: y = origin[0] / original.height;
 };
 switch (origin[1]) {
 case 'left': x = 0; break;
 case 'center': x = 0.5; break;
 case 'right': x = 1; break;
 default: x = origin[1] / original.width;
 };
 return {x: x, y: y};
 },
 createWrapper: function(el) {
 if (el.parent().attr('id') == 'fxWrapper')
 return el;
 var props = {width: el.outerWidth({margin:true}), height: el.outerHeight({margin:true}), 'float': el.css('float')};
 el.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
 var wrapper = el.parent();
 if (el.css('position') == 'static'){
 wrapper.css({position: 'relative'});
 el.css({position: 'relative'});
 } else {
 var top = el.css('top'); if(isNaN(parseInt(top))) top = 'auto';
 var left = el.css('left'); if(isNaN(parseInt(left))) left = 'auto';
 wrapper.css({ position: el.css('position'), top: top, left: left, zIndex: el.css('z-index') }).show();
 el.css({position: 'relative', top:0, left:0});
 }
 wrapper.css(props);
 return wrapper;
 },
 removeWrapper: function(el) {
 if (el.parent().attr('id') == 'fxWrapper')
 return el.parent().replaceWith(el);
 return el;
 },
 setTransition: function(el, list, factor, val) {
 val = val || {};
 $.each(list,function(i, x){
 unit = el.cssUnit(x);
 if (unit[0] > 0) val[x] = unit[0] * factor + unit[1];
 });
 return val;
 },
 animateClass: function(value, duration, easing, callback) {

 var cb = (typeof easing == "function" ? easing : (callback ? callback : null));
 var ea = (typeof easing == "object" ? easing : null);

 return this.each(function() {

 var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || '';
 if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */
 if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; }

 //Let's get a style offset
 var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
 if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove);
 var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
 if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove);

 // The main function to form the object for animation
 for(var n in newStyle) {
 if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */
 && n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */
 && newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */
 && (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */
 && (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */
 ) offset[n] = newStyle[n];
 }

 that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object
 // Change style attribute back to original. For stupid IE, we need to clear the damn object.
 if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr);
 if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove);
 if(cb) cb.apply(this, arguments);
 });

 });
 }
});

//Extend the methods of jQuery
$.fn.extend({
 //Save old methods
 _show: $.fn.show,
 _hide: $.fn.hide,
 __toggle: $.fn.toggle,
 _addClass: $.fn.addClass,
 _removeClass: $.fn.removeClass,
 _toggleClass: $.fn.toggleClass,
 // New ec methods
 effect: function(fx,o,speed,callback) {
 return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: o || {}, duration: speed, callback: callback }) : null;
 },
 show: function() {
 if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
 return this._show.apply(this, arguments);
 else {
 var o = arguments[1] || {}; o['mode'] = 'show';
 return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
 }
 },
 hide: function() {
 if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
 return this._hide.apply(this, arguments);
 else {
 var o = arguments[1] || {}; o['mode'] = 'hide';
 return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
 }
 },
 toggle: function(){
 if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])) || (arguments[0].constructor == Function))
 return this.__toggle.apply(this, arguments);
 else {
 var o = arguments[1] || {}; o['mode'] = 'toggle';
 return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
 }
 },
 addClass: function(classNames,speed,easing,callback) {
 return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
 },
 removeClass: function(classNames,speed,easing,callback) {
 return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
 },
 toggleClass: function(classNames,speed,easing,callback) {
 return speed ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames);
 },
 morph: function(remove,add,speed,easing,callback) {
 return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
 },
 switchClass: function() {
 return this.morph.apply(this, arguments);
 },
 // helper functions
 cssUnit: function(key) {
 var style = this.css(key), val = [];
 $.each( ['em','px','%','pt'], function(i, unit){
 if(style.indexOf(unit) > 0)
 val = [parseFloat(style), unit];
 });
 return val;
 }
});

/*
 * jQuery Color Animations
 * Copyright 2007 John Resig
 * Released under the MIT and GPL licenses.
 */

// We override the animation for all of these color styles
jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
 jQuery.fx.step[attr] = function(fx){
 if ( fx.state == 0 ) {
 fx.start = getColor( fx.elem, attr );
 fx.end = getRGB( fx.end );
 }

 fx.elem.style[attr] = "rgb(" + [
 Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
 Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
 Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
 ].join(",") + ")";
 }
});

// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/

// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
 var result;

 // Check if we're already dealing with an array of colors
 if ( color && color.constructor == Array && color.length == 3 )
 return color;

 // Look for rgb(num,num,num)
 if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
 return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

 // Look for rgb(num%,num%,num%)
 if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
 return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

 // Look for #a0b1c2
 if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
 return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

 // Look for #fff
 if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
 return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

 // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
 if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
 return colors['transparent']

 // Otherwise, we're most likely dealing with a named color
 return colors[jQuery.trim(color).toLowerCase()];
}

function getColor(elem, attr) {
 var color;

 do {
 color = jQuery.curCSS(elem, attr);

 // Keep going until we find an element that has color, or we hit the body
 if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
 break;

 attr = "backgroundColor";
 } while ( elem = elem.parentNode );

 return getRGB(color);
};

// Some named colors to work with
// From Interface by Stefan Petre
// http://interface.eyecon.ro/

var colors = {
 aqua:[0,255,255],
 azure:[240,255,255],
 beige:[245,245,220],
 black:[0,0,0],
 blue:[0,0,255],
 brown:[165,42,42],
 cyan:[0,255,255],
 darkblue:[0,0,139],
 darkcyan:[0,139,139],
 darkgrey:[169,169,169],
 darkgreen:[0,100,0],
 darkkhaki:[189,183,107],
 darkmagenta:[139,0,139],
 darkolivegreen:[85,107,47],
 darkorange:[255,140,0],
 darkorchid:[153,50,204],
 darkred:[139,0,0],
 darksalmon:[233,150,122],
 darkviolet:[148,0,211],
 fuchsia:[255,0,255],
 gold:[255,215,0],
 green:[0,128,0],
 indigo:[75,0,130],
 khaki:[240,230,140],
 lightblue:[173,216,230],
 lightcyan:[224,255,255],
 lightgreen:[144,238,144],
 lightgrey:[211,211,211],
 lightpink:[255,182,193],
 lightyellow:[255,255,224],
 lime:[0,255,0],
 magenta:[255,0,255],
 maroon:[128,0,0],
 navy:[0,0,128],
 olive:[128,128,0],
 orange:[255,165,0],
 pink:[255,192,203],
 purple:[128,0,128],
 violet:[128,0,128],
 red:[255,0,0],
 silver:[192,192,192],
 white:[255,255,255],
 yellow:[255,255,0],
 transparent: [255,255,255]
};
 
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright Â© 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
 def: 'easeOutQuad',
 swing: function (x, t, b, c, d) {
 //alert(jQuery.easing.default);
 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;
 },
 easeInCirc: function (x, t, b, c, d) {
 return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
 },
 easeOutCirc: function (x, t, b, c, d) {
 return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
 },
 easeInOutCirc: function (x, t, b, c, d) {
 if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
 return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
 },
 easeInElastic: function (x, t, b, c, d) {
 var s=1.70158;var p=0;var a=c;
 if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
 if (a < Math.abs(c)) { a=c; var s=p/4; }
 else var s = p/(2*Math.PI) * Math.asin (c/a);
 return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
 },
 easeOutElastic: function (x, t, b, c, d) {
 var s=1.70158;var p=0;var a=c;
 if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
 if (a < Math.abs(c)) { a=c; var s=p/4; }
 else var s = p/(2*Math.PI) * Math.asin (c/a);
 return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
 },
 easeInOutElastic: function (x, t, b, c, d) {
 var s=1.70158;var p=0;var a=c;
 if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
 if (a < Math.abs(c)) { a=c; var s=p/4; }
 else var s = p/(2*Math.PI) * Math.asin (c/a);
 if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
 return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
 },
 easeInBack: function (x, t, b, c, d, s) {
 if (s == undefined) s = 1.70158;
 return c*(t/=d)*t*((s+1)*t - s) + b;
 },
 easeOutBack: function (x, t, b, c, d, s) {
 if (s == undefined) s = 1.70158;
 return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
 },
 easeInOutBack: function (x, t, b, c, d, s) {
 if (s == undefined) s = 1.70158; 
 if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
 return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
 },
 easeInBounce: function (x, t, b, c, d) {
 return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
 },
 easeOutBounce: function (x, t, b, c, d) {
 if ((t/=d) < (1/2.75)) {
 return c*(7.5625*t*t) + b;
 } else if (t < (2/2.75)) {
 return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
 } else if (t < (2.5/2.75)) {
 return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
 } else {
 return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
 }
 },
 easeInOutBounce: function (x, t, b, c, d) {
 if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
 return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
 }
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright Â© 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */

})(jQuery);
;
/*
 * jQuery UI Effects Blind
 *
 * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 * 
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 * effects.core.js
 */
(function($) {

$.effects.blind = function(o) {

 return this.queue(function() {

 // Create element
 var el = $(this), props = ['position','top','left'];
 
 // Set options
 var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
 var direction = o.options.direction || 'vertical'; // Default direction
 
 // Adjust
 $.effects.save(el, props); el.show(); // Save & Show
 var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
 var ref = (direction == 'vertical') ? 'height' : 'width';
 var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
 if(mode == 'show') wrapper.css(ref, 0); // Shift
 
 // Animation
 var animation = {};
 animation[ref] = mode == 'show' ? distance : 0;
 
 // Animate
 wrapper.animate(animation, o.duration, o.options.easing, function() {
 if(mode == 'hide') el.hide(); // Hide
 $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
 if(o.callback) o.callback.apply(el[0], arguments); // Callback
 el.dequeue();
 });
 
 });
 
};

})(jQuery);
;
/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
 if (!document.getElementById) { return; }
 this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
 this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
 this.params = new Object();
 this.variables = new Object();
 this.attributes = new Array();
 if(swf) { this.setAttribute('swf', swf); }
 if(id) { this.setAttribute('id', id); }
 if(w) { this.setAttribute('width', w); }
 if(h) { this.setAttribute('height', h); }
 if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
 this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
 if (!window.opera && document.all && this.installedVer.major > 7) {
 // only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
 deconcept.SWFObject.doPrepUnload = true;
 }
 if(c) { this.addParam('bgcolor', c); }
 var q = quality ? quality : 'high';
 this.addParam('quality', q);
 this.setAttribute('useExpressInstall', false);
 this.setAttribute('doExpressInstall', false);
 var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
 this.setAttribute('xiRedirectUrl', xir);
 this.setAttribute('redirectUrl', '');
 if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
 useExpressInstall: function(path) {
 this.xiSWFPath = !path ? "expressinstall.swf" : path;
 this.setAttribute('useExpressInstall', true);
 },
 setAttribute: function(name, value){
 this.attributes[name] = value;
 },
 getAttribute: function(name){
 return this.attributes[name];
 },
 addParam: function(name, value){
 this.params[name] = value;
 },
 getParams: function(){
 return this.params;
 },
 addVariable: function(name, value){
 this.variables[name] = value;
 },
 getVariable: function(name){
 return this.variables[name];
 },
 getVariables: function(){
 return this.variables;
 },
 getVariablePairs: function(){
 var variablePairs = new Array();
 var key;
 var variables = this.getVariables();
 for(key in variables){
 variablePairs[variablePairs.length] = key +"="+ variables[key];
 }
 return variablePairs;
 },
 getSWFHTML: function() {
 var swfNode = "";
 if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
 if (this.getAttribute("doExpressInstall")) {
 this.addVariable("MMplayerType", "PlugIn");
 this.setAttribute('swf', this.xiSWFPath);
 }
 swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
 swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
 var params = this.getParams();
 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
 var pairs = this.getVariablePairs().join("&");
 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
 swfNode += '/>';
 } else { // PC IE
 if (this.getAttribute("doExpressInstall")) {
 this.addVariable("MMplayerType", "ActiveX");
 this.setAttribute('swf', this.xiSWFPath);
 }
 swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
 swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
 var params = this.getParams();
 for(var key in params) {
 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
 }
 var pairs = this.getVariablePairs().join("&");
 if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
 swfNode += "</object>";
 }
 return swfNode;
 },
 write: function(elementId){
 if(this.getAttribute('useExpressInstall')) {
 // check to see if we need to do an express install
 var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
 if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
 this.setAttribute('doExpressInstall', true);
 this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
 document.title = document.title.slice(0, 47) + " - Flash Player Installation";
 this.addVariable("MMdoctitle", document.title);
 }
 }
 if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
 var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
 n.innerHTML = this.getSWFHTML();
 return true;
 }else{
 if(this.getAttribute('redirectUrl') != "") {
 document.location.replace(this.getAttribute('redirectUrl'));
 }
 }
 return false;
 }
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
 var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
 if(navigator.plugins && navigator.mimeTypes.length){
 var x = navigator.plugins["Shockwave Flash"];
 if(x && x.description) {
 PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
 }
 }else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
 var axo = 1;
 var counter = 3;
 while(axo) {
 try {
 counter++;
 axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
// document.write("player v: "+ counter);
 PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
 } catch (e) {
 axo = null;
 }
 }
 } else { // Win IE (non mobile)
 // do minor version lookup in IE, but avoid fp6 crashing issues
 // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
 try{
 var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
 }catch(e){
 try {
 var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
 PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
 axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
 } catch(e) {
 if (PlayerVersion.major == 6) {
 return PlayerVersion;
 }
 }
 try {
 axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
 } catch(e) {}
 }
 if (axo != null) {
 PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
 }
 }
 return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
 this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
 this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
 this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
 if(this.major < fv.major) return false;
 if(this.major > fv.major) return true;
 if(this.minor < fv.minor) return false;
 if(this.minor > fv.minor) return true;
 if(this.rev < fv.rev) return false;
 return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
 getRequestParameter: function(param) {
 var q = document.location.search || document.location.hash;
 if (param == null) { return q; }
 if(q) {
 var pairs = q.substring(1).split("&");
 for (var i=0; i < pairs.length; i++) {
 if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
 return pairs[i].substring((pairs[i].indexOf("=")+1));
 }
 }
 }
 return "";
 }
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
 var objects = document.getElementsByTagName("OBJECT");
 for (var i = objects.length - 1; i >= 0; i--) {
 objects[i].style.display = 'none';
 for (var x in objects[i]) {
 if (typeof objects[i][x] == 'function') {
 objects[i][x] = function(){};
 }
 }
 }
}
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
if (deconcept.SWFObject.doPrepUnload) {
 if (!deconcept.unloadSet) {
 deconcept.SWFObjectUtil.prepUnload = function() {
 __flash_unloadHandler = function(){};
 __flash_savedUnloadHandler = function(){};
 window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
 }
 window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
 deconcept.unloadSet = true;
 }
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;
;
function playerReady(obj) {
 var id = obj['id'];
 var version = obj['version'];
 var client = obj['client'];
 var e4CurrentPlayer = document.getElementById(id);
 e4CurrentPlayer.addControllerListener("ITEM", "e4PlayerStats");
};

var e4Player = function(){
 
 this.video = function(id, file){
 var so = new SWFObject(e4BaseUrl + 'public/swf/player.swf', 'player'+id, '482', '280', '9');
 so.addParam('allowfullscreen', 'true');
 so.addParam('flashvars', 'file=' + file + '&playlist=bottom&playlistsize=30');
 so.addParam('menu', false);
 so.addParam('wmode', 'transparent');
 so.addParam('allowscriptaccess','always');
 so.write(id);
 
 }
 
 this.audio = function(id, file){
 var so = new SWFObject(e4BaseUrl + 'public/swf/player.swf', 'player'+id, '482', '50', '9');
 so.addParam('flashvars', 'file=' + file +'&playlist=bottom&playlistsize=30');
 so.addParam('menu', false);
 so.addParam('wmode', 'transparent');
 so.addParam('allowscriptaccess','always');
 so.write(id);
 }
}

var e4PlayerStats = function(obj){
 var id = document.getElementById(obj.id).getPlaylist()[obj.index].id;
 e4FileStat(id);
}
;
/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
 * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
 */

// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias
(function($) {
 /**
 * $ is an alias to jQuery object
 *
 */
 $.fn.lightBox = function(settings) {
 // Settings to configure the jQuery lightBox plugin how you like
 settings = jQuery.extend({
 // Configuration related to overlay
 overlayBgColor: '#000', // (string) Background color to overlay; inform a hexadecimal value like: #RRGGBB. Where RR, GG, and BB are the hexadecimal values for the red, green, and blue values of the color.
 overlayOpacity: 0.8, // (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
 // Configuration related to navigation
 fixedNavigation: false, // (boolean) Boolean that informs if the navigation (next and prev button) will be fixed or not in the interface.
 // Configuration related to images
 imageLoading: e4BaseUrl + "admin/public/gfx/jquery/plugin/lightbox/lightbox-ico-loading.gif", // (string) Path and the name of the loading icon imageBtnPrev: e4BaseUrl + "admin/public/gfx/jquery/plugin/lightbox/lightbox-btn-prev.gif", // (string) Path and the name of the prev button image imageBtnNext: e4BaseUrl + "admin/public/gfx/jquery/plugin/lightbox/lightbox-btn-next.gif", // (string) Path and the name of the next button image imageBtnClose: e4BaseUrl + "admin/public/gfx/jquery/plugin/lightbox/lightbox-btn-close.gif", // (string) Path and the name of the close btn imageBlank: e4BaseUrl + "admin/public/gfx/query/plugin/lightbox/lightbox-blank.gif", // (string) Path and the name of a blank image (one pixel)
 // Configuration related to container image box
 containerBorderSize: 10, // (integer) If you adjust the padding in the CSS for the container, #lightbox-container-image-box, you will need to update this value
 containerResizeSpeed: 400, // (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
 // Configuration related to texts in caption. For example: Image 2 of 8. You can alter either "Image" and "of" texts.
 txtImage: 'Image', // (string) Specify text "Image"
 txtOf: 'of', // (string) Specify text "of"
 // Configuration related to keyboard navigation
 keyToClose: 'c', // (string) (c = close) Letter to close the jQuery lightBox interface. Beyond this letter, the letter X and the SCAPE key is used to.
 keyToPrev: 'p', // (string) (p = previous) Letter to show the previous image
 keyToNext: 'n', // (string) (n = next) Letter to show the next image.
 // Don´t alter these variables in any way
 imageArray: [],
 activeImage: 0
 },settings);
 // Caching the jQuery object with all elements matched
 var jQueryMatchedObj = this; // This, in this context, refer to jQuery object
 /**
 * Initializing the plugin calling the start function
 *
 * @return boolean false
 */
 function _initialize() {
 _start(this,jQueryMatchedObj); // This, in this context, refer to object (link) which the user have clicked
 return false; // Avoid the browser following the link
 }
 /**
 * Start the jQuery lightBox plugin
 *
 * @param object objClicked The object (link) whick the user have clicked
 * @param object jQueryMatchedObj The jQuery object with all elements matched
 */
 function _start(objClicked,jQueryMatchedObj) {
 // Hime some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
 $('embed, object, select').css({ 'visibility' : 'hidden' });
 // Call the function to create the markup structure; style some elements; assign events in some elements.
 _set_interface();
 // Unset total images in imageArray
 settings.imageArray.length = 0;
 // Unset image active information
 settings.activeImage = 0;
 // We have an image set? Or just an image? Let´s see it.
 if ( jQueryMatchedObj.length == 1 ) {
 settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));
 } else {
 // Add an Array (as many as we have), with href and title atributes, inside the Array that storage the images references 
 for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
 settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));
 }
 }
 while ( settings.imageArray[settings.activeImage][0] != objClicked.getAttribute('href') ) {
 settings.activeImage++;
 }
 // Call the function that prepares image exibition
 _set_image_to_view();
 }
 /**
 * Create the jQuery lightBox plugin interface
 *
 * The HTML markup will be like that:
 <div id="jquery-overlay"></div>
 <div id="jquery-lightbox">
 <div id="lightbox-container-image-box">
 <div id="lightbox-container-image">
 <img src="../fotos/XX.jpg" id="lightbox-image">
 <div id="lightbox-nav">
 <a href="#" id="lightbox-nav-btnPrev"></a>
 <a href="#" id="lightbox-nav-btnNext"></a>
 </div>
 <div id="lightbox-loading">
 <a href="#" id="lightbox-loading-link">
 <img src="../images/lightbox-ico-loading.gif">
 </a>
 </div>
 </div>
 </div>
 <div id="lightbox-container-image-data-box">
 <div id="lightbox-container-image-data">
 <div id="lightbox-image-details">
 <span id="lightbox-image-details-caption"></span>
 <span id="lightbox-image-details-currentNumber"></span>
 </div>
 <div id="lightbox-secNav">
 <a href="#" id="lightbox-secNav-btnClose">
 <img src="../images/lightbox-btn-close.gif">
 </a>
 </div>
 </div>
 </div>
 </div>
 *
 */
 function _set_interface() {
 // Apply the HTML markup into body tag
 $('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="' + settings.imageLoading + '"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="' + settings.imageBtnClose + '"></a></div></div></div></div>'); 
 // Get page sizes
 var arrPageSizes = ___getPageSize();
 // Style overlay and show it
 $('#jquery-overlay').css({
 backgroundColor: settings.overlayBgColor,
 opacity: settings.overlayOpacity,
 width: arrPageSizes[0],
 height: arrPageSizes[1]
 }).fadeIn();
 // Get page scroll
 var arrPageScroll = ___getPageScroll();
 // Calculate top and left offset for the jquery-lightbox div object and show it
 $('#jquery-lightbox').css({
 top: arrPageScroll[1] + (arrPageSizes[3] / 10),
 left: arrPageScroll[0]
 }).show();
 // Assigning click events in elements to close overlay
 $('#jquery-overlay,#jquery-lightbox').click(function() {
 _finish(); 
 });
 // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects
 $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() {
 _finish();
 return false;
 });
 // If window was resized, calculate the new overlay dimensions
 $(window).resize(function() {
 // Get page sizes
 var arrPageSizes = ___getPageSize();
 // Style overlay and show it
 $('#jquery-overlay').css({
 width: arrPageSizes[0],
 height: arrPageSizes[1]
 });
 // Get page scroll
 var arrPageScroll = ___getPageScroll();
 // Calculate top and left offset for the jquery-lightbox div object and show it
 $('#jquery-lightbox').css({
 top: arrPageScroll[1] + (arrPageSizes[3] / 10),
 left: arrPageScroll[0]
 });
 });
 }
 /**
 * Prepares image exibition; doing a image´s preloader to calculate it´s size
 *
 */
 function _set_image_to_view() { // show the loading
 // Show the loading
 $('#lightbox-loading').show();
 if ( settings.fixedNavigation ) {
 $('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
 } else {
 // Hide some elements
 $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
 }
 // Image preload process
 var objImagePreloader = new Image();
 objImagePreloader.onload = function() {
 $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
 // Perfomance an effect in the image container resizing it
 _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
 // clear onLoad, IE behaves irratically with animated gifs otherwise
 objImagePreloader.onload=function(){};
 };
 objImagePreloader.src = settings.imageArray[settings.activeImage][0];
 };
 /**
 * Perfomance an effect in the image container resizing it
 *
 * @param integer intImageWidth The image´s width that will be showed
 * @param integer intImageHeight The image´s height that will be showed
 */
 function _resize_container_image_box(intImageWidth,intImageHeight) {
 // Get current width and height
 var intCurrentWidth = $('#lightbox-container-image-box').width();
 var intCurrentHeight = $('#lightbox-container-image-box').height();
 // Get the width and height of the selected image plus the padding
 var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); // Plus the image´s width and the left and right padding value
 var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); // Plus the image´s height and the left and right padding value
 // Diferences
 var intDiffW = intCurrentWidth - intWidth;
 var intDiffH = intCurrentHeight - intHeight;
 // Perfomance the effect
 $('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
 if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
 if ( $.browser.msie ) {
 ___pause(250);
 } else {
 ___pause(100); 
 }
 } 
 $('#lightbox-container-image-data-box').css({ width: intImageWidth });
 $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + (settings.containerBorderSize * 2) });
 };
 /**
 * Show the prepared image
 *
 */
 function _show_image() {
 $('#lightbox-loading').hide();
 $('#lightbox-image').fadeIn(function() {
 _show_image_data();
 _set_navigation();
 });
 _preload_neighbor_images();
 };
 /**
 * Show the image information
 *
 */
 function _show_image_data() {
 $('#lightbox-container-image-data-box').slideDown('fast');
 $('#lightbox-image-details-caption').hide();
 if ( settings.imageArray[settings.activeImage][1] ) {
 $('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
 }
 // If we have a image set, display 'Image X of X'
 if ( settings.imageArray.length > 1 ) {
 $('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show();
 } 
 }
 /**
 * Display the button navigations
 *
 */
 function _set_navigation() {
 $('#lightbox-nav').show();

 // Instead to define this configuration in CSS file, we define here. And it´s need to IE. Just.
 $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
 
 // Show the prev button, if not the first image in set
 if ( settings.activeImage != 0 ) {
 if ( settings.fixedNavigation ) {
 $('#lightbox-nav-btnPrev').css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' })
 .unbind()
 .bind('click',function() {
 settings.activeImage = settings.activeImage - 1;
 _set_image_to_view();
 return false;
 });
 } else {
 // Show the images button for Next buttons
 $('#lightbox-nav-btnPrev').unbind().hover(function() {
 $(this).css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' });
 },function() {
 $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
 }).show().bind('click',function() {
 settings.activeImage = settings.activeImage - 1;
 _set_image_to_view();
 return false;
 });
 }
 }
 
 // Show the next button, if not the last image in set
 if ( settings.activeImage != ( settings.imageArray.length -1 ) ) {
 if ( settings.fixedNavigation ) {
 $('#lightbox-nav-btnNext').css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' })
 .unbind()
 .bind('click',function() {
 settings.activeImage = settings.activeImage + 1;
 _set_image_to_view();
 return false;
 });
 } else {
 // Show the images button for Next buttons
 $('#lightbox-nav-btnNext').unbind().hover(function() {
 $(this).css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' });
 },function() {
 $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
 }).show().bind('click',function() {
 settings.activeImage = settings.activeImage + 1;
 _set_image_to_view();
 return false;
 });
 }
 }
 // Enable keyboard navigation
 _enable_keyboard_navigation();
 }
 /**
 * Enable a support to keyboard navigation
 *
 */
 function _enable_keyboard_navigation() {
 $(document).keydown(function(objEvent) {
 _keyboard_action(objEvent);
 });
 }
 /**
 * Disable the support to keyboard navigation
 *
 */
 function _disable_keyboard_navigation() {
 $(document).unbind();
 }
 /**
 * Perform the keyboard actions
 *
 */
 function _keyboard_action(objEvent) {
 // To ie
 if ( objEvent == null ) {
 keycode = event.keyCode;
 escapeKey = 27;
 // To Mozilla
 } else {
 keycode = objEvent.keyCode;
 escapeKey = objEvent.DOM_VK_ESCAPE;
 }
 // Get the key in lower case form
 key = String.fromCharCode(keycode).toLowerCase();
 // Verify the keys to close the ligthBox
 if ( ( key == settings.keyToClose ) || ( key == 'x' ) || ( keycode == escapeKey ) ) {
 _finish();
 }
 // Verify the key to show the previous image
 if ( ( key == settings.keyToPrev ) || ( keycode == 37 ) ) {
 // If we´re not showing the first image, call the previous
 if ( settings.activeImage != 0 ) {
 settings.activeImage = settings.activeImage - 1;
 _set_image_to_view();
 _disable_keyboard_navigation();
 }
 }
 // Verify the key to show the next image
 if ( ( key == settings.keyToNext ) || ( keycode == 39 ) ) {
 // If we´re not showing the last image, call the next
 if ( settings.activeImage != ( settings.imageArray.length - 1 ) ) {
 settings.activeImage = settings.activeImage + 1;
 _set_image_to_view();
 _disable_keyboard_navigation();
 }
 }
 }
 /**
 * Preload prev and next images being showed
 *
 */
 function _preload_neighbor_images() {
 if ( (settings.imageArray.length -1) > settings.activeImage ) {
 objNext = new Image();
 objNext.src = settings.imageArray[settings.activeImage + 1][0];
 }
 if ( settings.activeImage > 0 ) {
 objPrev = new Image();
 objPrev.src = settings.imageArray[settings.activeImage -1][0];
 }
 }
 /**
 * Remove jQuery lightBox plugin HTML markup
 *
 */
 function _finish() {
 $('#jquery-lightbox').remove();
 $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
 // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
 $('embed, object, select').css({ 'visibility' : 'visible' });
 }
 /**
 / THIRD FUNCTION
 * getPageSize() by quirksmode.com
 *
 * @return Array Return an array with page width, height and window width, height
 */
 function ___getPageSize() {
 var xScroll, yScroll;
 if (window.innerHeight && window.scrollMaxY) { 
 xScroll = window.innerWidth + window.scrollMaxX;
 yScroll = window.innerHeight + window.scrollMaxY;
 } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
 xScroll = document.body.scrollWidth;
 yScroll = document.body.scrollHeight;
 } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
 xScroll = document.body.offsetWidth;
 yScroll = document.body.offsetHeight;
 }
 var windowWidth, windowHeight;
 if (self.innerHeight) { // all except Explorer
 if(document.documentElement.clientWidth){
 windowWidth = document.documentElement.clientWidth; 
 } else {
 windowWidth = self.innerWidth;
 }
 windowHeight = self.innerHeight;
 } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
 windowWidth = document.documentElement.clientWidth;
 windowHeight = document.documentElement.clientHeight;
 } else if (document.body) { // other Explorers
 windowWidth = document.body.clientWidth;
 windowHeight = document.body.clientHeight;
 } 
 // for small pages with total height less then height of the viewport
 if(yScroll < windowHeight){
 pageHeight = windowHeight;
 } else { 
 pageHeight = yScroll;
 }
 // for small pages with total width less then width of the viewport
 if(xScroll < windowWidth){ 
 pageWidth = xScroll; 
 } else {
 pageWidth = windowWidth;
 }
 arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
 return arrayPageSize;
 };
 /**
 / THIRD FUNCTION
 * getPageScroll() by quirksmode.com
 *
 * @return Array Return an array with x,y page scroll values.
 */
 function ___getPageScroll() {
 var xScroll, yScroll;
 if (self.pageYOffset) {
 yScroll = self.pageYOffset;
 xScroll = self.pageXOffset;
 } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
 yScroll = document.documentElement.scrollTop;
 xScroll = document.documentElement.scrollLeft;
 } else if (document.body) {// all other Explorers
 yScroll = document.body.scrollTop;
 xScroll = document.body.scrollLeft; 
 }
 arrayPageScroll = new Array(xScroll,yScroll);
 return arrayPageScroll;
 };
 /**
 * Stop the code execution from a escified time in milisecond
 *
 */
 function ___pause(ms) {
 var date = new Date(); 
 curDate = null;
 do { var curDate = new Date(); }
 while ( curDate - date < ms);
 };
 // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
 return this.unbind('click').click(_initialize);
 };
})(jQuery); // Call and execute the function immediately passing the jQuery object;
var showLightBox= function(elems){
 $(elems).e4lightBox();
 return false;
}
;
/* 
Facelift Image Replacement v1.2
Facelift was written and is maintained by Cory Mawhorter. 
It is available from http://facelift.mawhorter.net/

===

This file is part of Facelife Image Replacement ("FLIR").

FLIR is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

FLIR is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Facelift Image Replacement. If not, see <http://www.gnu.org/licenses/>.
*/

var FLIR = {
 version: '1.2'
 
 ,options: {
 path: ''
 ,classnameIgnore: false
 ,findEmbededFonts: false
 ,ignoredElements: 'BR,HR,IMG,INPUT,SELECT'
 }
 
 ,onreplacing: null
 ,onreplaced: null
 ,onreplacingchild: null
 ,onreplacedchild: null
 
 ,flirElements: {}
 ,flirPlugins: []
 
 ,isCraptastic: true
 ,isIE: true

 ,defaultStyle: null
 ,classStyles: {}
 
 ,embededFonts: {}

 ,dpi: 96
 
 // either (options Object, fstyle FLIRStyle Object) or (fstyle FLIRStyle Object)
 ,init: function(options, fstyle) { // or options for flir style
 if(this.isFStyle(options)) { // (fstyle FLIRStyle Object)
 this.defaultStyle = options;
 }else { // [options Object, fstyle FLIRStyle Object]
 if(typeof options != 'undefined')
 this.loadOptions(options);
 
 if(typeof fstyle == 'undefined') {
 this.defaultStyle = new FLIRStyle();
 }else {
 if(this.isFStyle(fstyle))
 this.defaultStyle = fstyle;
 else
 this.defaultStyle = new FLIRStyle(fstyle);
 }
 }

 this.calcDPI();
 
 if(this.options.findEmbededFonts)
 this.discoverEmbededFonts();

 this.isIE = (navigator.userAgent.toLowerCase().indexOf('msie')>-1 && navigator.userAgent.toLowerCase().indexOf('opera')<0);
 this.isCraptastic = (typeof document.body.style.maxHeight=='undefined');

 if(this.isIE) {
 this.flirIERepObj = [];
 this.flirIEHovEls = [];
 this.flirIEHovStyles = []; 
 }

 FLIR._call_plugin('init', arguments);
 }
 
 ,loadOptions: function(options) {
 for(var i in options)
 this.options[i] = options[i];
 } 
 
 ,installPlugin: function(plugin) {
 this.flirPlugins.push(plugin);
 }
 
 ,_call_plugin: function(func, call) {
 var ret = call;
 for(var i=0; i<this.flirPlugins.length; i++) {
 if(typeof this.flirPlugins[i][func] == 'function') {
 var pluginret = this.flirPlugins[i][func](ret);

 if(typeof pluginret == 'undefined') {
 continue;
 }
 if(typeof pluginret == 'boolean' && pluginret == false) {
 return false;
 }
 if(typeof pluginret != 'boolean') // passes changes on
 ret = call;

 }
 }
 
 var ret = typeof ret != 'object' ? [ret] : ret;
 if(ret.length && ret[0] && ret[0].callee)
 return ret[0];
 else
 return ret;
 }
 
 ,auto: function(els) {
 if(!(args = FLIR._call_plugin('auto', arguments))) return;
 els = args[0];
 
 var tags = typeof els=='undefined'?['h1','h2','h3','h4','h5']:(els.indexOf && els.indexOf(',')>-1?els.split(','):els);
 var elements;
 for(var i=0; i<tags.length; i++) {
 elements = this.getElements(tags[i]); 

 if(elements.length>0)
 this.replace(elements);
 }
 }
 
 
 ,hover: function(e) {
 var o=FLIR.evsrc(e);
 var targ=o;
 var targDescHover = o.flirHasHover;
 var hoverTree = o;
 
 var on = (e.type == 'mouseover');
 
 while(o != document.body && !o.flirMainObj) {
 o = FLIR.getParentNode(o);
 
 if(!targDescHover) {
 targDescHover = o.flirHasHover;
 hoverTree = o;
 }
 }
 
 if(o==document.body) return;
 
 var FStyle = FLIR.getFStyle(o);
 if(on && FStyle != FStyle.hoverStyle)
 FStyle = FStyle.hoverStyle;
 
 if(!(args = FLIR._call_plugin('hover', [ on, targ, o, hoverTree ]))) return;
 on = args[0];
 targ = args[1];
 o = args[2];
 hoverTree = args[3];
 
 var objs = FLIR.getChildren(hoverTree);
 if(objs.length == 0 || (objs.length == 1 && (objs[0].flirImage || objs[0].flirHasHover))) {
 objs = [hoverTree];
 }else if(objs.length == 1 && !FLIR.isIgnoredElement(objs[0])) {
 var subobjs = FLIR.getChildren(objs[0]);
 if(subobjs.length > 0)
 if((subobjs.length==1 && !subobjs[0].flirImage) || subobjs.length > 1)
 objs = subobjs;
 }

 var rep_obj;
 for(var i=0; i < objs.length; i++) {
 rep_obj = objs[i];
 if(rep_obj.nodeName == 'IMG') continue;
 if(!rep_obj.innerHTML) continue; // IE 

 if(FLIR.isIE) {
 var idx = FLIR.flirIEHovEls.length;
 FLIR.flirIERepObj[idx] = rep_obj;
 FLIR.flirIEHovStyles[idx] = FStyle;
 
 if(!FLIR.isCraptastic) {
 if(FStyle.useBackgroundMethod && FLIR.getStyle(rep_obj, 'display') == 'block') {
 FLIR.flirIEHovEls[idx] = rep_obj;
 setTimeout('FLIR.flirIERepObj['+idx+'].style.background = "url("+('+on+' ? FLIR.flirIEHovStyles['+idx+'].generateURL(FLIR.flirIERepObj['+idx+']) : FLIR.flirIERepObj['+idx+'].flirOrig)+") no-repeat";', 0);
 }else {
 FLIR.flirIEHovEls[idx] = rep_obj.flirImage ? rep_obj : FLIR.getChildren(rep_obj)[0];
 if(!FLIR.flirIEHovEls[idx].flirOrigWidth) {
 FLIR.flirIEHovEls[idx].flirOrigWidth = FLIR.flirIEHovEls[idx].width;
 FLIR.flirIEHovEls[idx].flirOrigHeight = FLIR.flirIEHovEls[idx].height;
 }
 var ie_js = 'FLIR.flirIEHovEls['+idx+'].src = '+on+' ? FLIR.flirIEHovStyles['+idx+'].generateURL(FLIR.flirIERepObj['+idx+'], FLIR.flirIEHovEls['+idx+'].alt) : FLIR.flirIERepObj['+idx+'].flirOrig;'
 ie_js += 'FLIR.flirIEHovEls['+idx+'].onload = function() { ';
 if(on && !FLIR.flirIEHovEls[idx].flirHoverWidth) {
 ie_js += ' FLIR.flirIEHovEls['+idx+'].flirHoverWidth = this.width; ';
 ie_js += ' FLIR.flirIEHovEls['+idx+'].flirHoverHeight = this.height; ';
 }
 ie_js += ' this.style.width = FLIR.flirIEHovEls['+idx+'].'+(on?'flirHoverWidth':'flirOrigWidth')+'+"px"; ';
 ie_js += ' this.style.height = FLIR.flirIEHovEls['+idx+'].'+(on?'flirHoverHeight':'flirOrigHeight')+'+"px"; ';
 ie_js += '}; ';
 setTimeout(ie_js, 0);
 }
 }else {
 FLIR.flirIEHovEls[idx] = rep_obj.flirImage ? rep_obj : FLIR.getChildren(rep_obj)[0];
 setTimeout(' FLIR.flirIEHovEls['+idx+'].style.filter = \'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="\'+FLIR.flirIEHovStyles['+idx+'].generateURL(FLIR.flirIERepObj['+idx+'], FLIR.flirIEHovEls['+idx+'].alt)+\'", sizingMethod="image")\'; ', 0);
 }
 }else {
 if(FStyle.useBackgroundMethod && FLIR.getStyle(rep_obj, 'display') == 'block') {
 var hovURL = rep_obj.flirHoverURL ? rep_obj.flirHoverURL : FStyle.generateURL(rep_obj);
 rep_obj.style.background='url('+(on?hovURL:rep_obj.flirOrig)+') no-repeat';
 }else {
 var img = rep_obj.flirImage ? rep_obj : FLIR.getChildren(rep_obj)[0];
 var hovURL = rep_obj.flirHoverURL ? rep_obj.flirHoverURL : FStyle.generateURL(rep_obj, img.alt);
 img.src = on?hovURL:rep_obj.flirOrig;
 }
 }
 }
 }

 ,addHover: function(obj) {
 if(!(args = FLIR._call_plugin('addHover', arguments))) return;
 obj = args[0];
 
 obj.flirHasHover = true;
 
 if(obj.addEventListener) {
 obj.addEventListener( 'mouseover', FLIR.hover, false );
 obj.addEventListener( 'mouseout', FLIR.hover, false );
 }else if (obj.attachEvent) {
 obj.attachEvent( 'onmouseover', function() { FLIR.hover( window.event ); } );
 obj.attachEvent( 'onmouseout', function() { FLIR.hover( window.event ); } );
 }
 }
 
 ,prepare: function(n) {
 if(!(args = FLIR._call_plugin('prepare', arguments))) return;
 n = args[0];
 
 if(n && n.hasChildNodes() && n.childNodes.length > 1) {
 for(var i in n.childNodes) {
 var node = n.childNodes[i];
 if(node && node.nodeType == 3) {
 var span = document.createElement('SPAN');
 span.style.margin = span.style.padding = span.style.border = '0px';
 span.className = 'flir-span';
 span.flirSpan = true;
 var txt = node.nodeValue.replace(/[\t\n\r]/g, ' ').replace(/\s\s+/g, ' ');
 span.innerHTML = !FLIR.isIE ? txt : node.nodeValue.replace(/^\s+|\s+$/g,'&nbsp;');
 n.replaceChild(span, node);
 }
 }
 }
 }
 
 ,replace: function(o, FStyle) {
 if(!(args = FLIR._call_plugin('replace', arguments))) return;
 o = args[0];
 FStyle = args[1];

 if (!o || o.flirReplaced)
 return;
 
 if(!this.isFStyle(FStyle))
 FStyle = this.getFStyle(o);

 if(typeof o == 'string')
 o = this.getElements(o);
 
 if(typeof o.length != 'undefined') {
 if(o.length == 0) return;

 for(var i=0; i< o.length; i++)
 this.replace(o[i], FStyle);
 
 return;
 }

 if(typeof FLIR.onreplacing == 'function') o = FLIR.onreplacing(o, FStyle);
 
 o.flirMainObj = true;
 this.setFStyle(o, FStyle);
 this.saveObject(o);
 
 if(this.options.findEmbededFonts && typeof this.embededFonts[FStyle.getFont(o)] != 'undefined')
 return;
 
 FLIR.prepare(o); 
 this._replace_tree(o, FStyle);

 if(typeof FLIR.onreplaced == 'function') FLIR.onreplaced(o, FStyle);
 }
 
 ,_replace_tree: function(o, FStyle) {
 if(typeof __flir_replacetree_recurse == 'undefined') __flir_replacetree_recurse = 1;
 else __flir_replacetree_recurse++;
 
 if(__flir_replacetree_recurse>1000) {
 console.error('Facelift: Too much recursion.');
 return;
 }
 
 var objs = !o.hasChildNodes() || (o.hasChildNodes() && o.childNodes.length==1 && o.childNodes[0].nodeType==3) ? [o] : o.childNodes;

 var rep_obj;
 for(var i=0; i < objs.length; i++) {
 rep_obj = objs[i];
 if(typeof FLIR.onreplacingchild == 'function') rep_obj = FLIR.onreplacingchild(rep_obj, FStyle);

 if(!rep_obj.innerHTML || rep_obj.nodeType != 1) continue;
 if(FLIR.isIgnoredElement(rep_obj)) continue;
 if(rep_obj.flirReplaced) continue;

 if(rep_obj.nodeName == 'A' && !rep_obj.flirHasHover)
 FLIR.addHover(rep_obj);

 if(rep_obj.hasChildNodes() && (rep_obj.childNodes.length > 1 || rep_obj.childNodes[0].nodeType != 3)) {
 FLIR.prepare(rep_obj);
 FLIR._replace_tree(rep_obj, FStyle);
 continue;
 }

 if(rep_obj.innerHTML == '') continue; // skip empty tags, if they exist
 
 if(!FLIR.isCraptastic)
 if(FStyle.useBackgroundMethod)
 FLIR.replaceMethodBackground(rep_obj, FStyle);
 else
 FLIR.replaceMethodOverlay(rep_obj, FStyle);
 else
 FLIR.replaceMethodCraptastic(rep_obj, FStyle);

 rep_obj.className += ' flir-replaced';
 rep_obj.flirReplaced = true;
 
 if(typeof FLIR.onreplacedchild == 'function') FLIR.onreplacedchild(o, FStyle);
 }
 }
 
 ,replaceMethodBackground: function(o, FStyle) {
 if(!(args = FLIR._call_plugin('replaceMethodBackground', arguments))) return;
 o = args[0];
 FStyle = args[1];

 var oid = this.saveObject(o);
 var url = FStyle.generateURL(o);
 
 if(FLIR.getStyle(o, 'display') != 'block')
 o.style.display='block';
 
 var tmp = new Image();
 tmp.onload = function() {
 FLIR.flirElements[oid].style.width=this.width+'px';
 FLIR.flirElements[oid].style.height=this.height+'px';
 
 if(FStyle != FStyle.hoverStyle) {
 var h_img = new Image();
 o.flirHoverURL = h_img.src = FStyle.hoverStyle.generateURL(o);
 }
 };
 tmp.src = url;
 
 o.style.background = 'url("'+url.replace(/ /g, '%20')+'") no-repeat';
 o.flirOrig = url;
 
 o.oldTextIndent = o.style.textIndent;
 o.style.textIndent='-9999px';
 }

 ,replaceMethodOverlay: function(o, FStyle) {
 if(!(args = FLIR._call_plugin('replaceMethodOverlay', arguments))) return;
 o = args[0];
 FStyle = args[1];

 var oid = this.saveObject(o);
 var img = document.createElement('IMG');
 img.alt = this.sanitizeHTML(o.innerHTML);

 if(FStyle != FStyle.hoverStyle) {
 img.onload = function() {
 var h_img = new Image();
 o.flirHoverURL = h_img.src = FStyle.hoverStyle.generateURL(o, img.alt);
 };
 }
 
 if(img.onerror) {
 img.onerror = function() {
 var span = document.createElement('SPAN');
 span.innerHTML = img.alt;
 try {
 o.replaceChild(span,img)
 }catch(err) { }
 };
 }

 img.flirImage = true;
 img.className = 'flir-image';
 img.src = FStyle.generateURL(o);
 img.style.border='none';
 o.flirOrig = img.src;
 o.innerHTML='';
 o.appendChild(img);
 }

 ,replaceMethodCraptastic: function(o, FStyle) {
 if(!(args = FLIR._call_plugin('replaceMethodCraptastic', arguments))) return;
 o = args[0];
 FStyle = args[1];

 var oid = this.saveObject(o);
 var url = FStyle.generateURL(o);
 
 var img = document.createElement('IMG');
 img.alt = this.sanitizeHTML(o.innerHTML); 
 if(FStyle != FStyle.hoverStyle) {
 img.onload = function() {
 var h_img = new Image();
 o.flirHoverURL = h_img.src = FStyle.hoverStyle.generateURL(o, img.alt);
 };
 }

 img.flirImage = true;
 img.className = 'flir-image';
 img.src = this.options.path+'spacer.png';
 img.style.width=o.offsetWidth+'px';
 img.style.height=o.offsetHeight+'px';
 img.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+url+'", sizingMethod="image")';

 o.flirOrig = url;
 o.innerHTML='';
 o.appendChild(img);
 }

 ,saveObject: function(o) {
 if(typeof o.flirId == 'undefined') {
 o.flirId = this.getUID();
 this.flirElements[o.flirId] = o;
 }
 
 return o.flirId;
 }
 
 ,getUID: function() {
 var prefix='flir-';
 var id=prefix+Math.random().toString().split('.')[1];
 var i=0;
 while(typeof this.flirElements[id] != 'undefined') {
 if(i>100000) {
 console.error('Facelift: Unable to generate unique id.'); 
 }
 id=prefix+Math.random().toString().split('.')[1];
 i++;
 }
 
 return id;
 }
 
 ,getElements: function(tag) {
 if(!(args = FLIR._call_plugin('getElements', arguments))) return;
 switch(args.length) {
 case 1:
 tag = args[0];
 break;
 case 2: // plugin returned list of elements
 return args[0];
 break;
 }
 
 var found = [];

 if(document.querySelectorAll) {
 var qsa = false;
 try{
 found = document.querySelectorAll(tag);
 qsa = true;
 }catch(err){ qsa=false; }

 if(qsa)
 return found;
 }

 var objs,subels,cn,childs,tag,el,matches,subel,rep_el;
 
 el = tag;
 
 subel=false;
 if(el.indexOf(' ')>-1) {
 var parts = el.split(' ');
 el = parts[0];
 subel = parts[1];
 }else if(el[0] == '#') {
 return document.getElementById(el.substr(1));
 }
 
 var grain_id=false;
 if(el.indexOf('#') > -1) {
 grain_id = el.split('#')[1];
 tag = el.split('#')[0];
 }

 var grain_cn=false;
 if(el.indexOf('.') > -1) {
 grain_cn = el.split('.')[1];
 tag = el.split('.')[0];
 }

 objs = document.getElementsByTagName(tag);
 for(var p=0; p<objs.length; p++) {
 if(objs[p].nodeType != 1) continue;
 matches = false;
 cn = objs[p].className?objs[p].className:'';
 
 if(grain_id && objs[p].id && objs[p].id == grain_id)
 matches=true;
 if(grain_cn && FLIR.hasClass(objs[p], grain_cn))
 matches=true;
 if(!grain_id && !grain_cn)
 matches=true;
 
 if(!matches) continue;
 if(this.options.classnameIgnore && cn.indexOf(this.options.classnameIgnore)>-1) continue;
 
 subels = false != subel ? objs[p].getElementsByTagName(subel) : [objs[p]];
 for(var pp=0; pp<subels.length; pp++) {
 rep_el = subels[pp];
 if(this.options.classnameIgnore && rep_el.className && rep_el.className.indexOf(this.options.classnameIgnore)>-1) continue;

 found.push(rep_el);
 }
 }
 
 return found;
 }
 
 ,discoverEmbededFonts: function() {
 this.embededFonts = {};
 for(var i in document.styleSheets) {
 if(!document.styleSheets[i].cssRules) continue;
 for(var ii in document.styleSheets[i].cssRules) {
 if(!document.styleSheets[0].cssRules[ii]) continue;
 var node = document.styleSheets[0].cssRules[ii];
 
 if(node.type && node.type == node.FONT_FACE_RULE) {
 var nodesrc = node.style.getPropertyValue('src').match(/url\("?([^"\)]+\.[ot]tf)"?\)/i)[1];
 var font = node.style.getPropertyValue('font-family');
 if(font.indexOf(',')) {
 font = font.split(',')[0];
 }
 
 font = font.replace(/['"]/g, '').toLowerCase();
 
 if(font!='' && nodesrc != '')
 this.embededFonts[font] = nodesrc;
 }
 }
 } 
 }

 ,getStyle: function(el,prop) {
 if(el.currentStyle) {
 if(prop.indexOf('-') > -1)
 prop = prop.split('-')[0]+prop.split('-')[1].substr(0, 1).toUpperCase()+prop.split('-')[1].substr(1);
 var y = el.currentStyle[prop];
 }else if(window.getComputedStyle) {
 var y = document.defaultView.getComputedStyle(el,'').getPropertyValue(prop);
 }
 return y;
 }
 
 ,getChildren: function(n) {
 var children=[];
 if(n && n.hasChildNodes())
 for(var i in n.childNodes)
 if(n.childNodes[i] && n.childNodes[i].nodeType == 1)
 children[children.length]=n.childNodes[i];
 
 return children;
 }
 
 ,getParentNode: function(n) {
 var o=n.parentNode;
 while(o != document && o.nodeType != 1)
 o=o.parentNode;
 
 return o;
 }
 
 ,hasClass: function(o, cn) {
 return (o && o.className && o.className.indexOf(cn)>-1);
 }
 
 ,evsrc: function(e) {
 var o;
 if (e.target) o = e.target;
 else if (e.srcElement) o = e.srcElement;
 if (o.nodeType == 3) // defeat Safari bug
 o = o.parentNode; 
 
 return o;
 }
 
 ,calcDPI: function() {
 if(screen.logicalXDPI) {
 var dpi = screen.logicalXDPI;
 }else {
 var id = 'flir-dpi-div-test';
 if(document.getElementById(id)) {
 var test = document.getElementById(id);
 }else {
 var test = document.createElement('DIV');
 test.id = id;
 test.style.position='absolute';
 test.style.visibility='hidden';
 test.style.border=test.style.padding=test.style.margin='0';
 test.style.left=test.style.top='-1000px';
 test.style.height=test.style.width='1in';
 document.body.appendChild(test);
 }
 
 var dpi = test.offsetHeight;
 }
 
 this.dpi = parseInt(dpi);
 }
 
 ,isIgnoredElement: function(el, breakIgnored) { return ((','+this.options.ignoredElements).indexOf(','+el.nodeName)>-1); }
 ,sanitizeHTML: function(html) { return html.replace(/<[^>]+>/g, ''); }
 
 ,getFStyle: function(o, fstyle) { 
 var cStyle = this.getClassStyle(o);
 if(this.isFStyle(cStyle))
 fstyle = cStyle;

 if(this.isFStyle(fstyle)) {
 return fstyle;
 }else if(this.isFStyle(o.flirStyle)) {
 return o.flirStyle;
 }else {
 return this.defaultStyle;
 }
 }
 ,setFStyle: function(o, FStyle) { o.flirStyle = FStyle; }
 ,isFStyle: function(o) { if(!o) return false; return (o.toString() == '[FLIRStyle Object]'); }

 ,addClassStyle: function(classname, FStyle) {
 if(this.isFStyle(FStyle))
 this.classStyles[classname] = FStyle;
 }
 ,getClassStyle: function(o) {
 if(!(args = FLIR._call_plugin('getClassStyle', arguments))) return;
 switch(args.length) {
 case 1:
 o = args[0];
 break;
 case 2: // plugin returned a style
 return args[0];
 break;
 }

 var cn = o.className;
 if(this.classStyles.length == 0 || typeof cn == 'undefined' || cn=='') return false;
 
 var classes = cn.split(' ');
 for(var i in this.classStyles) {
 for(var ii=0; ii<classes.length; ii++) {
 if(classes[ii]==i) {
 return this.classStyles[i];
 }
 }
 }
 
 return false;
 }
};












function FLIRStyle(options) {
 this.useBackgroundMethod = false;
 this.inheritStyle = true;
 this.useExtendedStyles = false;
 this.hoverStyle = (arguments[1] && FLIR.isFStyle(arguments[1])) ? arguments[1] : this;
 
 // options are sent along with the query string
 this.options = {
 mode: '' // none (''), wrap,progressive or name of a plugin
 ,output:'auto' // auto, png, gif, jpg
 
 ,cSize: null
 ,cColor: null
 ,cFont: null // font-family
 
 ,realFontHeight: false
 ,dpi: 96
 };
 
 // supported css properties to internal name
 this.cssStyles = {
 'background-color' : 'Background'
 ,'color' : 'Color'
 ,'font-family' : 'Font'
 ,'font-size' : 'Size'
 ,'letter-spacing' : 'Spacing'
 ,'line-height' : 'Line'
 ,'text-align' : 'Align'
 ,'text-transform' : 'Transform'
 };
 
 this.extendedStyles = {
 'font-stretch' : 'Stretch'
 ,'font-style' : 'FontStyle'
 ,'font-variant' : 'Variant'
 ,'font-weight' : 'Weight'
 ,'opacity' : 'Opacity'
 ,'text-decoration' : 'Decoration'
 }
 
 // legacy option support
 for(var i in options) {
 if(i.indexOf('css')==0)
 i = 'c'+i.substr(3);

 if(typeof this[i] != 'undefined') {
 this[i] = options[i];
 }else {
 this.options[i] = options[i];
 }
 }
 this.options.dpi = FLIR.dpi;
 
 
 if(this.useExtendedStyles)
 for(var i in this.extendedStyles)
 this.cssStyles[i] = this.extendedStyles[i];
 
 for(var i=0; i<FLIR.flirPlugins.length; i++)
 if(FLIR.flirPlugins[i].FLIRStyleExtend && typeof FLIR.flirPlugins[i].FLIRStyleExtend.init)
 FLIR.flirPlugins[i].FLIRStyleExtend.init.call(this);
}

// generate a url based on an object
FLIRStyle.prototype.generateURL = function(o) { // [, text]
 var enc_text = (arguments[1]?arguments[1]:o.innerHTML);
 var transform = this.options.cTransform;
 if(transform==null)
 transform = FLIR.getStyle(o, 'text-transform');

 switch(transform) {
 case 'capitalize':
 enc_text = enc_text.replace(/\w+/g, function(w){
 return w.charAt(0).toUpperCase() + w.substr(1).toLowerCase();
 });
 break;
 case 'lowercase':
 enc_text = enc_text.toLowerCase();
 break;
 case 'uppercase':
 enc_text = enc_text.toUpperCase().replace(/&[a-z0-9]+;/gi, function(m) { return m.toLowerCase(); }); // keep entities lowercase, numeric don't matter
 break;
 }

 enc_text = encodeURIComponent(enc_text.replace(/&/g, '{amp}').replace(/\+/g, '{plus}'));
 if(FLIR.isCraptastic){
 enc_text = escape(enc_text);
 }
 
 /* FIX for IE6
 * modified by Hubert <hubert.woroszyl@4e.com.pl>
 */
 /*enc_text = enc_text.replace(/&/g, '{amp}').replace(/\+/g, '{plus}');*/
 return FLIR.options.path+'generate.php?text='+enc_text+'&h='+o.offsetHeight+'&w='+o.offsetWidth+'&fstyle='+this.serialize(o);
};

// create a custom image on the fly
FLIRStyle.prototype.buildURL = function(text, o, maxwidth, maxheight) {
 var enc_text = encodeURIComponent(text.replace(/&/g, '{amp}').replace(/\+/g, '{plus}'));
 return FLIR.options.path+'generate.php?text='+enc_text+'&h='+(maxheight?maxheight:'200')+'&w='+(maxwidth?maxwidth:'800')+'&fstyle='+(o?this.serialize(o):this.serialize());
};

FLIRStyle.prototype.serialize = function(o) {
 var sdata='';
 var options = this.copyObject(this.options); 
 
 if(o && this.inheritStyle) {
 for(var i in this.cssStyles) {
 var name = this.cssStyles[i];

 if(this.options['c'+name] == null || name=='Size')
 this.options['c'+name] = this.get(o, i, name); 
 }
 }
 
 for(var i in this.options) {
 if(this.options[i] == null || typeof this.options[i] == 'undefined' || this.options[i] == 'NaN')
 continue;
 sdata += ',"'+i+'":"'+this.options[i].toString().replace(/"/g, "'")+'"';
 }

 sdata = '{'+sdata.substr(1)+'}';
 this.options = options;

 return escape(sdata);
};

FLIRStyle.prototype.get = function(o, css_property, flirstyle_name) {
 var func = 'get'+flirstyle_name;
 
 while(o.flirSpan && o != document.body)
 o = FLIR.getParentNode(o);
 
 return typeof this[func] == 'function' ? this[func](o) : FLIR.getStyle(o, css_property);
};

FLIRStyle.prototype.getFontStyle = function(o) { 
 return o.nodeName=='EM' || FLIR.getParentNode(o).nodeName=='EM' ? 'italic' : FLIR.getStyle(o, 'font-style');
};

FLIRStyle.prototype.getWeight = function(o) { 
 var fontweight = o.nodeName=='STRONG' || FLIR.getParentNode(o).nodeName=='STRONG' ? 'bold' : FLIR.getStyle(o, 'font-weight');
 
 switch(fontweight.toString()) {
 case '100': case '200': case '300': case 'lighter':
 return 'lighter';
 case '400': case 'normal':
 return '';
 case '500': case '600': case '700': case 'bold':
 return 'bold';
 case '800': case '900': case 'bolder':
 return 'bolder';
 }
};

FLIRStyle.prototype.getFont = function(o) { 
 var font = FLIR.getStyle(o, 'font-family');
 if(font.indexOf(',')) {
 font = font.split(',')[0];
 }

 return font.replace(/['"]/g, '').toLowerCase();
};

FLIRStyle.prototype.getColor = function(o) { 
 var color = FLIR.getStyle(o, 'color');
 if(color.substr(0, 1)=='#')
 color = color.substr(1);
 
 return color.replace(/['"]/g, '').toLowerCase();
};

FLIRStyle.prototype.getSize = function(o) {
 if(this.options.cSize!=null && '*/+-'.indexOf(this.options.cSize[0])<0)
 return this.options.cSize;
 
 var raw = FLIR.getStyle(o, 'font-size');

 var pix;
 if(raw.indexOf('px') > -1) {
 pix = Math.round(parseFloat(raw));
 }else {
 if(raw.indexOf('pt') > -1) {
 var pts = parseFloat(raw);
 pix = pts/(72/this.options.dpi);
 }else if(raw.indexOf('em') > -1 || raw.indexOf('%') > -1) {
 pix = this.calcFontSize(o);
 }
 }

 if(this.options.cSize && '*/+-'.indexOf(this.options.cSize[0])>-1) {
 try {
 pix = this.roundFloat(parseFloat(eval(pix.toString().concat(this.options.cSize))));
 }catch(err) { }
 }
 
 o.flirFontSize = pix;
 
 return pix;
};

FLIRStyle.prototype.getSpacing = function(o) {
 var spacing = FLIR.getStyle(o, 'letter-spacing');
 var ret;
 if(spacing != 'normal') {
 if(spacing.indexOf('em') > -1) {
 var fontsize = o.flirFontSize ? o.flirFontSize : this.getSize(o);
 ret = (parseFloat(spacing)*fontsize);
 }else if(spacing.indexOf('px') > -1) {
 ret = parseFloat(spacing);
 }else if(spacing.indexOf('pt') > -1) {
 var pts = parseFloat(spacing);
 ret = pts/(72/this.options.dpi); 
 }
 
 return this.roundFloat(ret);
 }

 return ''; 
};

FLIRStyle.prototype.getLine = function(o) {
 var spacing = FLIR.getStyle(o, 'line-height');
 var val = parseFloat(spacing);
 var fontsize = o.flirFontSize ? o.flirFontSize : this.getSize(o);
 if(spacing.indexOf('em') > -1) {
 ret = (val*fontsize)/fontsize;
 }else if(spacing.indexOf('px') > -1) {
 ret = val/fontsize;
 }else if(spacing.indexOf('pt') > -1) {
 var pts = val;
 ret = (pts/(72/this.options.dpi))/fontsize;
 }else if(spacing.indexOf('%') > -1) {
 return 1.0; 
 }else {
 ret = val; 
 }
 
 return this.roundFloat(ret);
};

FLIRStyle.prototype.roundFloat = function(val) {
 return Math.round(val*10000)/10000;
};

FLIRStyle.prototype.calcFontSize = function(o) {
 var test = document.createElement('DIV');
 test.style.border = '0';
 test.style.padding = '0';
 test.style.position='absolute';
 test.style.visibility='hidden';
 test.style.left=test.style.top='-1000px';
 test.style.left=test.style.top='10px';
 test.style.lineHeight = '100%';
 test.innerHTML = 'Flir_Test'; 
 o.appendChild(test);
 
 var size = test.offsetHeight;
 o.removeChild(test);

 return size;
};

FLIRStyle.prototype.copyObject = function(obj) { 
 var copy = {};
 for(var i in obj) {
 copy[i] = obj[i]; 
 }
 
 return copy;
};

FLIRStyle.prototype.toString = function() { return '[FLIRStyle Object]'; };
;
/**
 * @author Hubert
 * podmiana menu, inicjalizacja flira
 */
 
var fontGenerator = new FLIRStyle({cFont : 'riesling', cColor:'008782', cSize : "31"});
 
 $(function(){
 var imageFolder = "public/gfx/top-menu/";
 
 //first we hover the actives 
 uri = window.location.href;
 file = uri.substring(uri.lastIndexOf('/') + 1);
 id = $("a[href='" + file + "'] img").attr("id");
 
 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) { // IE lt 6
 $("img#" + id).addClass("active");
 $("img#" + id).each(function(){
 $(this).removeClass("png");
 if($(this).attr("complete")) {
 var width = $(this).attr("width");
 var height = $(this).attr("height");
 var $filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageFolder + id + "-pink.png',sizingMethod='crop')";
 $(this).addClass("class", "png-fixed");
 $(this).attr("src", "public/gfx/clear.gif");
 $(this).css({width : width, height : height, filter : $filter});
 } else {
 $(this).load(function(){
 $(this).css({width : $(this).attr("width"),
 height : $(this).attr("height"), 
 filter :"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageFolder + id + "-pink.png',sizingMethod='crop')" 
 });
 $(this).addClass("class", "png-fixed");
 $(this).unbind("load");
 $(this).attr("src", "public/gfx/clear.gif");
 });
 }
 });
 } else {
 $("img#" + id).addClass("active").attr("src", imageFolder + id + "-pink.png");
 }
 
 
 
 $(".hover-menu img").mouseover(function(){
 if($(this).hasClass("active")) {
 return;
 }
 //load pink
 var id = $(this).attr("id");
 var image = imageFolder + id + "-pink.png";

 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) { // IE lt 6
 $(this).css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + image + "', sizingMethod='crop')");
 } else {//other browsers
 $(this).attr('src', image);
 }
 });
 
 $(".hover-menu img").mouseout(function(){
 //load normal
 if($(this).hasClass("active")) {
 return;
 }

 var id = $(this).attr("id");
 var image = imageFolder + id + ".png";
 
 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) { // IE lt 6
 $(this).css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + image + "', sizingMethod='crop')");
 } else {//other browsers
 $(this).attr('src', image);
 }
 });
 
 /* rozciagniecie tla 
 if($("#page-bg").height() < $(window).height()) {
 //$("#page-bg").height($(window).height());
 }*/
 });;
/**
 * @author Hubert
 * podmiana menu, inicjalizacja flira
 */

/* font generator */
var fg = new FLIRStyle({cFont : 'riesling', cColor:'008782', cSize : "31"});

$(function(){
 $("img.flir").each(function(){
 var f_this = this;
 var f_image = $("<img/>").attr("src", "facelift/" + fg.buildURL($(f_this).attr("alt")));
 
 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) {
 if($(f_image).attr("complete")) {
 $(f_this).replaceWith(f_image);
 var f_width = $(f_image).attr("width");
 var f_height = $(f_image).attr("height");
 var $_filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')";
 $(f_image).attr("src", "public/gfx/clear.gif");
 $(f_image).css({width : f_width, height : f_height, filter : $_filter});
 } else {
 $(f_image).load(function(){
 $(f_this).replaceWith(f_image);
 $(this).css({width : $(this).attr("width"),
 height : $(this).attr("height"), 
 filter :"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')" 
 });

 $(this).unbind("load");
 $(this).attr("src", "public/gfx/clear.gif");
 });
 }
 } else {
 $(this).replaceWith(f_image);
 }
 });
});

var fg2 = new FLIRStyle({cFont : 'riesling', cColor:'D83E8F', cSize : "31"});

$(function(){
 $("img.flirpr").each(function(){
 var f_this = this;
 var f_image = $("<img/>").attr("src", "facelift/" + fg2.buildURL($(f_this).attr("alt")));
 
 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) {
 if($(f_image).attr("complete")) {
 $(f_this).replaceWith(f_image);
 var f_width = $(f_image).attr("width");
 var f_height = $(f_image).attr("height");
 var $_filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')";
 $(f_image).attr("src", "public/gfx/clear.gif");
 $(f_image).css({width : f_width, height : f_height, filter : $_filter});
 } else {
 $(f_image).load(function(){
 $(f_this).replaceWith(f_image);
 $(this).css({width : $(this).attr("width"),
 height : $(this).attr("height"), 
 filter :"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')" 
 });

 $(this).unbind("load");
 $(this).attr("src", "public/gfx/clear.gif");
 });
 }
 } else {
 $(this).replaceWith(f_image);
 }
 });
});

var swis = new FLIRStyle({cFont : 'candara', cColor:'008782', cSize : "23"});

$(function(){
 $("img.swissflir").each(function(){
 var f_this = this;
 var f_image = $("<img/>").attr("src", "facelift/" + swis.buildURL($(f_this).attr("alt")));
 
 if($.browser.msie && $.browser.version.substring(0,1)*1 <= 6) {
 if($(f_image).attr("complete")) {
 $(f_this).replaceWith(f_image);
 var f_width = $(f_image).attr("width");
 var f_height = $(f_image).attr("height");
 var $_filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')";
 $(f_image).attr("src", "public/gfx/clear.gif");
 $(f_image).css({width : f_width, height : f_height, filter : $_filter});
 } else {
 $(f_image).load(function(){
 $(f_this).replaceWith(f_image);
 $(this).css({width : $(this).attr("width"),
 height : $(this).attr("height"), 
 filter :"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + $(f_image).attr("src") + "',sizingMethod='crop')" 
 });

 $(this).unbind("load");
 $(this).attr("src", "public/gfx/clear.gif");
 });
 }
 } else {
 $(this).replaceWith(f_image);
 }
 });
});;
