

<!--UTF-8-->
<!--ISO-8859-1-->















/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/*
 * jQuery Form Plugin
 * version: 2.28 (10-MAY-2009)
 * @requires jQuery v1.2.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
;(function($) {

/*
    Usage Note:
    -----------
    Do not use both ajaxSubmit and ajaxForm on the same form.  These
    functions are intended to be exclusive.  Use ajaxSubmit if you want
    to bind your own submit handler to the form.  For example,

    $(document).ready(function() {
        $('#myForm').bind('submit', function() {
            $(this).ajaxSubmit({
                target: '#output'
            });
            return false; // <-- important!
        });
    });

    Use ajaxForm when you want the plugin to manage all the event binding
    for you.  For example,

    $(document).ready(function() {
        $('#myForm').ajaxForm({
            target: '#output'
        });
    });

    When using ajaxForm, the ajaxSubmit function will be invoked for you
    at the appropriate time.
*/

/**
 * ajaxSubmit() provides a mechanism for immediately submitting
 * an HTML form using AJAX.
 */
$.fn.ajaxSubmit = function(options) {
    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
    if (!this.length) {
        log('ajaxSubmit: skipping submit process - no element selected');
        return this;
    }

    if (typeof options == 'function')
        options = { success: options };

    var url = $.trim(this.attr('action'));
    if (url) {
	    // clean url (don't include hash vaue)
	    url = (url.match(/^([^#]+)/)||[])[1];
   	}
   	url = url || window.location.href || ''

    options = $.extend({
        url:  url,
        type: this.attr('method') || 'GET'
    }, options || {});

    // hook for manipulating the form data before it is extracted;
    // convenient for use with rich editors like tinyMCE or FCKEditor
    var veto = {};
    this.trigger('form-pre-serialize', [this, options, veto]);
    if (veto.veto) {
        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
        return this;
    }

    // provide opportunity to alter form data before it is serialized
    if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
        log('ajaxSubmit: submit aborted via beforeSerialize callback');
        return this;
    }

    var a = this.formToArray(options.semantic);
    if (options.data) {
        options.extraData = options.data;
        for (var n in options.data) {
          if(options.data[n] instanceof Array) {
            for (var k in options.data[n])
              a.push( { name: n, value: options.data[n][k] } );
          }
          else
             a.push( { name: n, value: options.data[n] } );
        }
    }

    // give pre-submit callback an opportunity to abort the submit
    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
        log('ajaxSubmit: submit aborted via beforeSubmit callback');
        return this;
    }

    // fire vetoable 'validate' event
    this.trigger('form-submit-validate', [a, this, options, veto]);
    if (veto.veto) {
        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
        return this;
    }

    var q = $.param(a);

    if (options.type.toUpperCase() == 'GET') {
        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
        options.data = null;  // data is null for 'get'
    }
    else
        options.data = q; // data is the query string for 'post'

    var $form = this, callbacks = [];
    if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
    if (options.clearForm) callbacks.push(function() { $form.clearForm(); });

    // perform a load on the target only if dataType is not provided
    if (!options.dataType && options.target) {
        var oldSuccess = options.success || function(){};
        callbacks.push(function(data) {
            $(options.target).html(data).each(oldSuccess, arguments);
        });
    }
    else if (options.success)
        callbacks.push(options.success);

    options.success = function(data, status) {
        for (var i=0, max=callbacks.length; i < max; i++)
            callbacks[i].apply(options, [data, status, $form]);
    };

    // are there files to upload?
    var files = $('input:file', this).fieldValue();
    var found = false;
    for (var j=0; j < files.length; j++)
        if (files[j])
            found = true;

	var multipart = false;
//	var mp = 'multipart/form-data';
//	multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);

    // options.iframe allows user to force iframe mode
   if (options.iframe || found || multipart) {
       // hack to fix Safari hang (thanks to Tim Molendijk for this)
       // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
       if (options.closeKeepAlive)
           $.get(options.closeKeepAlive, fileUpload);
       else
           fileUpload();
       }
   else
       $.ajax(options);

    // fire 'notify' event
    this.trigger('form-submit-notify', [this, options]);
    return this;


    // private function for handling file uploads (hat tip to YAHOO!)
    function fileUpload() {
        var form = $form[0];

        if ($(':input[name=submit]', form).length) {
            alert('Error: Form elements must not be named "submit".');
            return;
        }

        var opts = $.extend({}, $.ajaxSettings, options);
		var s = $.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts);

        var id = 'jqFormIO' + (new Date().getTime());
        var $io = $('<iframe id="' + id + '" name="' + id + '" src="about:blank" />');
        var io = $io[0];

        $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });

        var xhr = { // mock object
            aborted: 0,
            responseText: null,
            responseXML: null,
            status: 0,
            statusText: 'n/a',
            getAllResponseHeaders: function() {},
            getResponseHeader: function() {},
            setRequestHeader: function() {},
            abort: function() {
                this.aborted = 1;
                $io.attr('src','about:blank'); // abort op in progress
            }
        };

        var g = opts.global;
        // trigger ajax global events so that activity/block indicators work like normal
        if (g && ! $.active++) $.event.trigger("ajaxStart");
        if (g) $.event.trigger("ajaxSend", [xhr, opts]);

		if (s.beforeSend && s.beforeSend(xhr, s) === false) {
			s.global && $.active--;
			return;
        }
        if (xhr.aborted)
            return;

        var cbInvoked = 0;
        var timedOut = 0;

        // add submitting element to data if we know it
        var sub = form.clk;
        if (sub) {
            var n = sub.name;
            if (n && !sub.disabled) {
                options.extraData = options.extraData || {};
                options.extraData[n] = sub.value;
                if (sub.type == "image") {
                    options.extraData[name+'.x'] = form.clk_x;
                    options.extraData[name+'.y'] = form.clk_y;
                }
            }
        }

        // take a breath so that pending repaints get some cpu time before the upload starts
        setTimeout(function() {
            // make sure form attrs are set
            var t = $form.attr('target'), a = $form.attr('action');

			// update form attrs in IE friendly way
			form.setAttribute('target',id);
			if (form.getAttribute('method') != 'POST')
				form.setAttribute('method', 'POST');
			if (form.getAttribute('action') != opts.url)
				form.setAttribute('action', opts.url);

            // ie borks in some cases when setting encoding
            if (! options.skipEncodingOverride) {
                $form.attr({
                    encoding: 'multipart/form-data',
                    enctype:  'multipart/form-data'
                });
            }

            // support timout
            if (opts.timeout)
                setTimeout(function() { timedOut = true; cb(); }, opts.timeout);

            // add "extra" data to form if provided in options
            var extraInputs = [];
            try {
                if (options.extraData)
                    for (var n in options.extraData)
                        extraInputs.push(
                            $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
                                .appendTo(form)[0]);

                // add iframe to doc and submit the form
                $io.appendTo('body');
                io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
                form.submit();
            }
            finally {
                // reset attrs and remove "extra" input elements
				form.setAttribute('action',a);
                t ? form.setAttribute('target', t) : $form.removeAttr('target');
                $(extraInputs).remove();
            }
        }, 10);

        var nullCheckFlag = 0;

        function cb() {
            if (cbInvoked++) return;

            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);

            var ok = true;
            try {
                if (timedOut) throw 'timeout';
                // extract the server response from the iframe
                var data, doc;

                doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;

                if ((doc.body == null || doc.body.innerHTML == '') && !nullCheckFlag) {
                    // in some browsers (cough, Opera 9.2.x) the iframe DOM is not always traversable when
                    // the onload callback fires, so we give them a 2nd chance
                    nullCheckFlag = 1;
                    cbInvoked--;
                    setTimeout(cb, 100);
                    return;
                }

                xhr.responseText = doc.body ? doc.body.innerHTML : null;
                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
                xhr.getResponseHeader = function(header){
                    var headers = {'content-type': opts.dataType};
                    return headers[header];
                };

                if (opts.dataType == 'json' || opts.dataType == 'script') {
                    var ta = doc.getElementsByTagName('textarea')[0];
                    xhr.responseText = ta ? ta.value : xhr.responseText;
                }
                else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
                    xhr.responseXML = toXml(xhr.responseText);
                }
                data = $.httpData(xhr, opts.dataType);
            }
            catch(e){
                ok = false;
                $.handleError(opts, xhr, 'error', e);
            }

            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
            if (ok) {
                opts.success(data, 'success');
                if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
            }
            if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
            if (g && ! --$.active) $.event.trigger("ajaxStop");
            if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');

            // clean up
            setTimeout(function() {
                $io.remove();
                xhr.responseXML = null;
            }, 100);
        };

        function toXml(s, doc) {
            if (window.ActiveXObject) {
                doc = new ActiveXObject('Microsoft.XMLDOM');
                doc.async = 'false';
                doc.loadXML(s);
            }
            else
                doc = (new DOMParser()).parseFromString(s, 'text/xml');
            return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
        };
    };
};

/**
 * ajaxForm() provides a mechanism for fully automating form submission.
 *
 * The advantages of using this method instead of ajaxSubmit() are:
 *
 * 1: This method will include coordinates for <input type="image" /> elements (if the element
 *    is used to submit the form).
 * 2. This method will include the submit element's name/value data (for the element that was
 *    used to submit the form).
 * 3. This method binds the submit() method to the form for you.
 *
 * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
 * passes the options argument along after properly binding events for submit elements and
 * the form itself.
 */
$.fn.ajaxForm = function(options) {
    return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
        $(this).ajaxSubmit(options);
        return false;
    }).each(function() {
        // store options in hash
        $(":submit,input:image", this).bind('click.form-plugin',function(e) {
            var form = this.form;
            form.clk = this;
            if (this.type == 'image') {
                if (e.offsetX != undefined) {
                    form.clk_x = e.offsetX;
                    form.clk_y = e.offsetY;
                } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
                    var offset = $(this).offset();
                    form.clk_x = e.pageX - offset.left;
                    form.clk_y = e.pageY - offset.top;
                } else {
                    form.clk_x = e.pageX - this.offsetLeft;
                    form.clk_y = e.pageY - this.offsetTop;
                }
            }
            // clear form vars
            setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10);
        });
    });
};

// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function() {
    this.unbind('submit.form-plugin');
    return this.each(function() {
        $(":submit,input:image", this).unbind('click.form-plugin');
    });

};

/**
 * formToArray() gathers form element data into an array of objects that can
 * be passed to any of the following ajax functions: $.get, $.post, or load.
 * Each object in the array has both a 'name' and 'value' property.  An example of
 * an array for a simple login form might be:
 *
 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
 *
 * It is this array that is passed to pre-submit callback functions provided to the
 * ajaxSubmit() and ajaxForm() methods.
 */
$.fn.formToArray = function(semantic) {
    var a = [];
    if (this.length == 0) return a;

    var form = this[0];
    var els = semantic ? form.getElementsByTagName('*') : form.elements;
    if (!els) return a;
    for(var i=0, max=els.length; i < max; i++) {
        var el = els[i];
        var n = el.name;
        if (!n) continue;

        if (semantic && form.clk && el.type == "image") {
            // handle image inputs on the fly when semantic == true
            if(!el.disabled && form.clk == el) {
            	a.push({name: n, value: $(el).val()});
                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
            }
            continue;
        }

        var v = $.fieldValue(el, true);
        if (v && v.constructor == Array) {
            for(var j=0, jmax=v.length; j < jmax; j++)
                a.push({name: n, value: v[j]});
        }
        else if (v !== null && typeof v != 'undefined')
            a.push({name: n, value: v});
    }

    if (!semantic && form.clk) {
        // input type=='image' are not found in elements array! handle it here
        var $input = $(form.clk), input = $input[0], n = input.name;
        if (n && !input.disabled && input.type == 'image') {
        	a.push({name: n, value: $input.val()});
            a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
        }
    }
    return a;
};

/**
 * Serializes form data into a 'submittable' string. This method will return a string
 * in the format: name1=value1&amp;name2=value2
 */
$.fn.formSerialize = function(semantic) {
    //hand off to jQuery.param for proper encoding
    return $.param(this.formToArray(semantic));
};

/**
 * Serializes all field elements in the jQuery object into a query string.
 * This method will return a string in the format: name1=value1&amp;name2=value2
 */
$.fn.fieldSerialize = function(successful) {
    var a = [];
    this.each(function() {
        var n = this.name;
        if (!n) return;
        var v = $.fieldValue(this, successful);
        if (v && v.constructor == Array) {
            for (var i=0,max=v.length; i < max; i++)
                a.push({name: n, value: v[i]});
        }
        else if (v !== null && typeof v != 'undefined')
            a.push({name: this.name, value: v});
    });
    //hand off to jQuery.param for proper encoding
    return $.param(a);
};

/**
 * Returns the value(s) of the element in the matched set.  For example, consider the following form:
 *
 *  <form><fieldset>
 *      <input name="A" type="text" />
 *      <input name="A" type="text" />
 *      <input name="B" type="checkbox" value="B1" />
 *      <input name="B" type="checkbox" value="B2"/>
 *      <input name="C" type="radio" value="C1" />
 *      <input name="C" type="radio" value="C2" />
 *  </fieldset></form>
 *
 *  var v = $(':text').fieldValue();
 *  // if no values are entered into the text inputs
 *  v == ['','']
 *  // if values entered into the text inputs are 'foo' and 'bar'
 *  v == ['foo','bar']
 *
 *  var v = $(':checkbox').fieldValue();
 *  // if neither checkbox is checked
 *  v === undefined
 *  // if both checkboxes are checked
 *  v == ['B1', 'B2']
 *
 *  var v = $(':radio').fieldValue();
 *  // if neither radio is checked
 *  v === undefined
 *  // if first radio is checked
 *  v == ['C1']
 *
 * The successful argument controls whether or not the field element must be 'successful'
 * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
 * The default value of the successful argument is true.  If this value is false the value(s)
 * for each element is returned.
 *
 * Note: This method *always* returns an array.  If no valid value can be determined the
 *       array will be empty, otherwise it will contain one or more values.
 */
$.fn.fieldValue = function(successful) {
    for (var val=[], i=0, max=this.length; i < max; i++) {
        var el = this[i];
        var v = $.fieldValue(el, successful);
        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
            continue;
        v.constructor == Array ? $.merge(val, v) : val.push(v);
    }
    return val;
};

/**
 * Returns the value of the field element.
 */
$.fieldValue = function(el, successful) {
    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
    if (typeof successful == 'undefined') successful = true;

    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
        (t == 'checkbox' || t == 'radio') && !el.checked ||
        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
        tag == 'select' && el.selectedIndex == -1))
            return null;

    if (tag == 'select') {
        var index = el.selectedIndex;
        if (index < 0) return null;
        var a = [], ops = el.options;
        var one = (t == 'select-one');
        var max = (one ? index+1 : ops.length);
        for(var i=(one ? index : 0); i < max; i++) {
            var op = ops[i];
            if (op.selected) {
				var v = op.value;
				if (!v) // extra pain for IE...
                	v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
                if (one) return v;
                a.push(v);
            }
        }
        return a;
    }
    return el.value;
};

/**
 * Clears the form data.  Takes the following actions on the form's input fields:
 *  - input text fields will have their 'value' property set to the empty string
 *  - select elements will have their 'selectedIndex' property set to -1
 *  - checkbox and radio inputs will have their 'checked' property set to false
 *  - inputs of type submit, button, reset, and hidden will *not* be effected
 *  - button elements will *not* be effected
 */
$.fn.clearForm = function() {
    return this.each(function() {
        $('input,select,textarea', this).clearFields();
    });
};

/**
 * Clears the selected form elements.
 */
$.fn.clearFields = $.fn.clearInputs = function() {
    return this.each(function() {
        var t = this.type, tag = this.tagName.toLowerCase();
        if (t == 'text' || t == 'password' || tag == 'textarea')
            this.value = '';
        else if (t == 'checkbox' || t == 'radio')
            this.checked = false;
        else if (tag == 'select')
            this.selectedIndex = -1;
    });
};

/**
 * Resets the form data.  Causes all form elements to be reset to their original value.
 */
$.fn.resetForm = function() {
    return this.each(function() {
        // guard against an input with the name of 'reset'
        // note that IE reports the reset function as an 'object'
        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
            this.reset();
    });
};

/**
 * Enables or disables any matching elements.
 */
$.fn.enable = function(b) {
    if (b == undefined) b = true;
    return this.each(function() {
        this.disabled = !b;
    });
};

/**
 * Checks/unchecks any matching checkboxes or radio buttons and
 * selects/deselects and matching option elements.
 */
$.fn.selected = function(select) {
    if (select == undefined) select = true;
    return this.each(function() {
        var t = this.type;
        if (t == 'checkbox' || t == 'radio')
            this.checked = select;
        else if (this.tagName.toLowerCase() == 'option') {
            var $sel = $(this).parent('select');
            if (select && $sel[0] && $sel[0].type == 'select-one') {
                // deselect all other options
                $sel.find('option').selected(false);
            }
            this.selected = select;
        }
    });
};

// helper fn for console logging
// set $.fn.ajaxSubmit.debug to true to enable debug logging
function log() {
    if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
        window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
};

})(jQuery);

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/**
 * LavaLamp - A menu plugin for jQuery with cool hover effects.
 * @requires jQuery v1.1.3.1 or above
 *
 * http://gmarwaha.com/blog/?p=7
 *
 * Copyright (c) 2007 Ganeshji Marwaha (gmarwaha.com)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Version: 0.2.0
 * Requires Jquery 1.2.1 from version 0.2.0 onwards. 
 * For jquery 1.1.x, use version 0.1.0 of lavalamp
 */

/**
 * Creates a menu with an unordered list of menu-items. You can either use the CSS that comes with the plugin, or write your own styles 
 * to create a personalized effect
 *
 * The HTML markup used to build the menu can be as simple as...
 *
 *       <ul class="lavaLamp">
 *           <li><a href="#">Home</a></li>
 *           <li><a href="#">Plant a tree</a></li>
 *           <li><a href="#">Travel</a></li>
 *           <li><a href="#">Ride an elephant</a></li>
 *       </ul>
 *
 * Once you have included the style sheet that comes with the plugin, you will have to include 
 * a reference to jquery library, easing plugin(optional) and the LavaLamp(this) plugin.
 *
 * Use the following snippet to initialize the menu.
 *   $(function() { $(".lavaLamp").lavaLamp({ fx: "backout", speed: 700}) });
 *
 * Thats it. Now you should have a working lavalamp menu. 
 *
 * @param an options object - You can specify all the options shown below as an options object param.
 *
 * @option fx - default is "linear"
 * @example
 * $(".lavaLamp").lavaLamp({ fx: "backout" });
 * @desc Creates a menu with "backout" easing effect. You need to include the easing plugin for this to work.
 *
 * @option speed - default is 500 ms
 * @example
 * $(".lavaLamp").lavaLamp({ speed: 500 });
 * @desc Creates a menu with an animation speed of 500 ms.
 *
 * @option click - no defaults
 * @example
 * $(".lavaLamp").lavaLamp({ click: function(event, menuItem) { return false; } });
 * @desc You can supply a callback to be executed when the menu item is clicked. 
 * The event object and the menu-item that was clicked will be passed in as arguments.
 */
(function($) {
$.fn.lavaLamp = function(o) {
    o = $.extend({ fx: "linear", speed: 500, click: function(){} }, o || {});

    return this.each(function() {
        var me = $(this), noop = function(){},
            $back = $('<li class="back"><div class="left"></div></li>').appendTo(me),
            $li = $("li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];

        $li.not(".back").hover(function() {
            move(this);
        }, noop);

        $(this).hover(noop, function() {
            move(curr);
        });

        $li.click(function(e) {
            setCurr(this);
            return o.click.apply(this, [e, this]);
        });

        setCurr(curr);

        function setCurr(el) {
            $back.css({ "left": el.offsetLeft+"px", "width": (el.offsetWidth*1) +"px" });
            curr = el;
        };

        function move(el) {
            $back.each(function() {
                $(this).dequeue(); }
            ).animate({
                width: el.offsetWidth,
                left: el.offsetLeft
            }, o.speed, o.fx);
        };

    });
};
})(jQuery);

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/*
 * jQuery Easing v1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php
 *
 * Uses the built in easing capabilities added in jQuery 1.1
 * to offer multiple easing options
 *
 * Copyright (c) 2007 George Smith
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */

jQuery.easing = {
	easein: function(x, t, b, c, d) {
		return c*(t/=d)*t + b; // in
	},
	easeinout: function(x, t, b, c, d) {
		if (t < d/2) return 2*c*t*t/(d*d) + b;
		var ts = t - d/2;
		return -2*c*ts*ts/(d*d) + 2*c*ts/d + c/2 + b;		
	},
	easeout: function(x, t, b, c, d) {
		return -c*t*t/(d*d) + 2*c*t/d + b;
	},
	expoin: function(x, t, b, c, d) {
		var flip = 1;
		if (c < 0) {
			flip *= -1;
			c *= -1;
		}
		return flip * (Math.exp(Math.log(c)/d * t)) + b;		
	},
	expoout: function(x, t, b, c, d) {
		var flip = 1;
		if (c < 0) {
			flip *= -1;
			c *= -1;
		}
		return flip * (-Math.exp(-Math.log(c)/d * (t-d)) + c + 1) + b;
	},
	expoinout: function(x, t, b, c, d) {
		var flip = 1;
		if (c < 0) {
			flip *= -1;
			c *= -1;
		}
		if (t < d/2) return flip * (Math.exp(Math.log(c/2)/(d/2) * t)) + b;
		return flip * (-Math.exp(-2*Math.log(c/2)/d * (t-d)) + c + 1) + b;
	},
	bouncein: function(x, t, b, c, d) {
		return c - jQuery.easing['bounceout'](x, d-t, 0, c, d) + b;
	},
	bounceout: 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;
		}
	},
	bounceinout: function(x, t, b, c, d) {
		if (t < d/2) return jQuery.easing['bouncein'] (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing['bounceout'] (x, t*2-d,0, c, d) * .5 + c*.5 + b;
	},
	elasin: 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;
	},
	elasout: 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;
	},
	elasinout: 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;
	},
	backin: function(x, t, b, c, d) {
		var s=1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	backout: function(x, t, b, c, d) {
		var s=1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	backinout: function(x, t, b, c, d) {
		var 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;
	},
	linear: function(x, t, b, c, d) {
		return c*t/d + b; //linear
	}
};
/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

(function($){
	/* hoverIntent by Brian Cherne */
	$.fn.hoverIntent = function(f,g) {
		// default configuration options
		var cfg = {
			sensitivity: 7,
			interval: 100,
			timeout: 0
		};
		// override configuration options with user supplied object
		cfg = $.extend(cfg, g ? { over: f, out: g } : f );

		// instantiate variables
		// cX, cY = current X and Y position of mouse, updated by mousemove event
		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
		var cX, cY, pX, pY;

		// A private function for getting mouse position
		var track = function(ev) {
			cX = ev.pageX;
			cY = ev.pageY;
		};

		// A private function for comparing current and previous mouse position
		var compare = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			// compare mouse positions to see if they've crossed the threshold
			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
				$(ob).unbind("mousemove",track);
				// set hoverIntent state to true (so mouseOut can be called)
				ob.hoverIntent_s = 1;
				return cfg.over.apply(ob,[ev]);
			} else {
				// set previous coordinates for next time
				pX = cX; pY = cY;
				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
			}
		};

		// A private function for delaying the mouseOut function
		var delay = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			ob.hoverIntent_s = 0;
			return cfg.out.apply(ob,[ev]);
		};

		// A private function for handling mouse 'hovering'
		var handleHover = function(e) {
			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
			while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
			if ( p == this ) { return false; }

			// copy objects to be passed into t (required for event object to be passed in IE)
			var ev = jQuery.extend({},e);
			var ob = this;

			// cancel hoverIntent timer if it exists
			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

			// else e.type == "onmouseover"
			if (e.type == "mouseover") {
				// set "previous" X and Y position based on initial entry point
				pX = ev.pageX; pY = ev.pageY;
				// update "current" X and Y position based on mousemove
				$(ob).bind("mousemove",track);
				// start polling interval (self-calling timeout) to compare mouse coordinates over time
				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}

			// else e.type == "onmouseout"
			} else {
				// unbind expensive mousemove event
				$(ob).unbind("mousemove",track);
				// if hoverIntent state is true, then call the mouseOut function after the specified delay
				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
			}
		};

		// bind the function to the two event listeners
		return this.mouseover(handleHover).mouseout(handleHover);
	};
	
})(jQuery);
/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

$(function(){

    var config = {    
         sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
         interval: 100,  // number = milliseconds for onMouseOver polling interval    
         over: doOpen,   // function = onMouseOver callback (REQUIRED)    
         timeout: 250,   // number = milliseconds delay before onMouseOut    
         out: doClose    // function = onMouseOut callback (REQUIRED)    
    };
    
    function doOpen() {
        $(this).addClass("hover");
        $('ul:first',this).css('visibility', 'visible');
    }
 
    function doClose() {
        $(this).removeClass("hover");
        $('ul:first',this).css('visibility', 'hidden');
    }

    $("ul.dropdown li").hoverIntent(config);
    
    $("ul.dropdown li ul li:has(ul)").find("a:first").append(" &raquo; ");

});
<!--%@ include file="jquery.prettyPhoto.js"%-->

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

var net = new Object();

net.READY_STATE_UNINITIALIZED = 0;
net.READY_STATE_LOADING       = 1;
net.READY_STATE_LOADED        = 2;
net.READY_STATE_INTERACTIVE   = 3;
net.READY_STATE_COMPLETE      = 4;

/**
 * Get an object to do requisitions
 */
net.getTransport = function() 
{
	var transport;
	if (window.XMLHttpRequest)
		transport = new XMLHttpRequest();
	else if (window.ActiveXObject)
	{
		try        {transport = new ActiveXObject('Msxml2.XMLHTTP');}
		catch(err) {transport = new ActiveXObject('Microsoft.XMLHTTP');}
	}
	return transport;
}



net.ContentLoader = function(component, url, method, requestParams)
{
   this.component     = component;
   this.url           = url;
   this.reqParams = requestParams;
   this.method        = method;
   this.arrayLoaderListener = Array();
//	alert('this.reqParams: ' + this.reqParams);
}


net.ContentLoader.prototype = 
{
	getTransport: function()
	{
		var transport;
		if (window.XMLHttpRequest)
			transport = new XMLHttpRequest();
		else if (window.ActiveXObject)
		{
			try        {transport = new ActiveXObject('Msxml2.XMLHTTP');}
			catch(err) {transport = new ActiveXObject('Microsoft.XMLHTTP');}
		}
		return transport;
	},
	addLoaderListener: function(loaderListener)
	{
		this.arrayLoaderListener.push(loaderListener);
	},
	setInputDialog: function(_iDiag)
	{
		this.iDiag = _iDiag;
	},
	sendRequest: function()
	{
		for (var i = 0; i < this.arrayLoaderListener.length; i++)
			this.arrayLoaderListener[i].startLoad();

		//if ( window.netscape && window.netscape.security.PrivilegeManager.enablePrivilege)
		//   netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
//		alert('sendRequest go');

		var requestParams = [];
		for (var i = 0; i < arguments.length; i++)
			requestParams.push(arguments[i]);
		if (this.reqParams)
			for (var i = 0; i < this.reqParams.length; i++)
				requestParams.push(this.reqParams[i]);

		var oThis = this;
		var request = this.getTransport();
		request.onreadystatechange = function() {oThis.handleAjaxResponse(request)};

		var queryQuery = '';
		if (this.iDiag)
			queryQuery = dojo.io.encodeForm(this.iDiag.formElem, dojo.string.encodeAscii);
		var queryQuery2 = this.queryString(requestParams);
		if (queryQuery == '' && queryQuery2 != '')
			queryQuery = queryQuery2;
		else if (queryQuery != '' && queryQuery2 != '')
			queryQuery = queryQuery + '&' + queryQuery2;
		// alert('queryQuery: ' + queryQuery + ', queryQuery2: ' + queryQuery2);

		if (this.method == 'POST')
		{
			request.open(this.method, this.url, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send(queryQuery);
		}
		else
		{
			if (this.url.indexOf('?') != -1)
				request.open(this.method, this.url + '&' + queryQuery, true);
			else
				request.open(this.method, this.url + '?' + queryQuery, true);

			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send(null);
		}
	},
	queryString: function(args)
	{
		var requestParams = [];
		for (var j = 0 ; j < args.length ; j++)
			requestParams.push(args[j]);

//		alert('args.length: ' + args.length);
//		alert('requestParams.length: ' + requestParams.length);

		var _queryString = '';
		if (requestParams && requestParams.length > 0)
		{
			for (var i = 0; i < requestParams.length; i++)
			{
				_queryString += requestParams[i].toString() + '&';
//				alert('_queryString: ' + _queryString);
			}
			_queryString = _queryString.substring(0, _queryString.length - 1);
		}
		return _queryString;
	},
	handleAjaxResponse: function(request) 
	{
		if (request.readyState == net.READY_STATE_COMPLETE)
		{
			if (this.isSuccess(request))
			{
				//alert('this.component.ajaxUpdate: ' + this.component.ajaxUpdate);
				this.component.ajaxUpdate(request);
			}
			else
				this.component.handleError(request);

			for (var i = 0; i < this.arrayLoaderListener.length; i++)
				this.arrayLoaderListener[i].loaded(request);
		}
	},
	isSuccess: function(request)
	{
		try
		{
			return	request.status == 0 || (request.status >= 200 && request.status < 300);
		}
		catch (err)
		{
			return false;
		}
	}
};

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
//		o.onmousedown = function() {alert('!!!!!!!!!')};
		o.onmousedown = Drag.start;
//		o.onmouseover = function() {alert('!!!!!!!!!')};

		o.hmode = bSwapHorzRef ? false : true ;
		o.vmode = bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		if (!o.root.onDragStart)
			o.root.onDragStart	= function() {/*alert('onDragStart wrong');*/};
		if (!o.root.onDragEnd)
			o.root.onDragEnd	= new Function();
		if (!o.root.onDrag)
			o.root.onDrag		= new Function();

//		alert('o = ' + o + ', o.root = ' + o.root);
//		alert('o.id = ' + o.id + ', o.root.id = ' + o.root.id + ', oRoot.id = ' + oRoot.id);
	},

	start : function(e)
	{
//		alert('e = ' + e);
//		var o = Drag.obj = this;
		var o = Drag.obj = getEvtTargetOrThis(e, this);
//		alert('o = ' + o + ', o.root = ' + o.root);
//		alert('o.id = ' + o.id + ', o.root.id = ' + o.root.id + ', oRoot.id = ' + oRoot.id);
		if (!o.root)
		{
			return false;
		}
/*
		alert('o: ' + o + ', o.root: ' + o.root);
		alert('getEvtTarget(e).id = ' + getEvtTarget(e).id);
		alert('Drag.obj.id = ' + Drag.obj.id);
		alert('Drag.obj.root.id = ' + Drag.obj.root.id);
		alert('getEvtTarget(e).root.id = ' + getEvtTarget(e).root.id);
//*/
		e = Drag.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove = Drag.drag;
		document.onmouseup = Drag.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag.fixE(e);
		var ey	= e.clientY;
		var ex	= e.clientX;
		Drag.doDrag(e, Drag.obj.root);
		Drag.obj.lastMouseX	= ex;
		Drag.obj.lastMouseY	= ey;
		return false;
	},

	doDrag : function(e, obj)
	{
		e = Drag.fixE(e);

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(Drag.obj.vmode ? obj.style.top  : obj.style.bottom);
		var x = parseInt(Drag.obj.hmode ? obj.style.left : obj.style.right );
		var nx, ny;

		if (Drag.obj.minX != null) ex = Drag.obj.hmode ? Math.max(ex, Drag.obj.minMouseX) : Math.min(ex, Drag.obj.maxMouseX);
		if (Drag.obj.maxX != null) ex = Drag.obj.hmode ? Math.min(ex, Drag.obj.maxMouseX) : Math.max(ex, Drag.obj.minMouseX);
		if (Drag.obj.minY != null) ey = Drag.obj.vmode ? Math.max(ey, Drag.obj.minMouseY) : Math.min(ey, Drag.obj.maxMouseY);
		if (Drag.obj.maxY != null) ey = Drag.obj.vmode ? Math.min(ey, Drag.obj.maxMouseY) : Math.max(ey, Drag.obj.minMouseY);

		var dx = ((ex - Drag.obj.lastMouseX) * (Drag.obj.hmode ? 1 : -1));
		var dy = ((ey - Drag.obj.lastMouseY) * (Drag.obj.vmode ? 1 : -1));
		nx = x + dx;
		ny = y + dy;

		if (Drag.obj.xMapper)		nx = Drag.obj.xMapper(y)
		else if (Drag.obj.yMapper)	ny = Drag.obj.yMapper(x)

		if (!Drag.obj.hasXLock)
		{
			if (!Drag.obj.constraintX)
				obj.style[Drag.obj.hmode ? "left" : "right"] = nx + "px";
			else
				obj.style[Drag.obj.hmode ? "left" : "right"] = Drag.obj.constraintX(obj, nx, x) + "px";
		}
		if (!Drag.obj.hasYLock)
		{
			if (!Drag.obj.constraintY)
				obj.style[Drag.obj.vmode ? "top" : "bottom"] = ny + "px";
			else
				obj.style[Drag.obj.hmode ? "top" : "bottom"] = Drag.obj.constraintY(obj, ny, y) + "px";
		}

//		alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.eventHandler: ' + obj.eventHandler);
		if (obj.onDrag)
			obj.onDrag(e, nx, ny, dx, dy);
		else
		{
//			alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.code: ' + obj.code);
		}
		if (obj.eventHandler)
			obj.eventHandler.onDrag(e, nx, ny, dx, dy);
		else
		{
//			alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.eventHandler: ' + obj.eventHandler);
		}
	},



	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag.obj.root.onDragEnd(	parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
		Drag.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/**************************************************
 * dom-size.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Sizeme = {

	obj : null,

	init : function(o, oRoot, minWidth, minHeight, bFixWidth, bFixHeight)
	{
//		o.onmousedown = function() {alert('!!!!!!!!!')};
		o.onmousedown = Sizeme.start;
//		o.onmouseover = function() {alert('!!!!!!!!!')};

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.root.minWidth = minWidth;
		o.root.minHeight = minHeight;
		o.root.bFixWidth = bFixWidth == true;
		o.root.bFixHeight = bFixHeight == true;

		if (!o.root.onResizeStart)
			o.root.onResizeStart	= function() {/*alert('onDragStart wrong');*/};
		if (!o.root.onResizeEnd)
			o.root.onResizeEnd	= new Function();
		if (!o.root.onResize)
			o.root.onResize		= new Function();

//		alert('o = ' + o + ', o.root = ' + o.root);
//		alert('o.id = ' + o.id + ', o.root.id = ' + o.root.id + ', oRoot.id = ' + oRoot.id);
	},

	start : function(e)
	{
//		alert('start:e = ' + e);
//		var o = Sizeme.obj = this;
		var o = Sizeme.obj = getEvtTargetOrThis(e, this);
//		alert('o = ' + o + ', o.root = ' + o.root);
//		alert('o.id = ' + o.id + ', o.root.id = ' + o.root.id + ', oRoot.id = ' + oRoot.id);
		if (!o.root)
		{
			return false;
		}
/*
		alert('o: ' + o + ', o.root: ' + o.root);
		alert('getEvtTarget(e).id = ' + getEvtTarget(e).id);
		alert('Sizeme.obj.id = ' + Sizeme.obj.id);
		alert('Sizeme.obj.root.id = ' + Sizeme.obj.root.id);
		alert('getEvtTarget(e).root.id = ' + getEvtTarget(e).root.id);
//*/
		e = Sizeme.fixE(e);
		var y = o.root.style.bottom;
		var x = o.root.style.right;
		o.root.onResizeStart(x, y);

		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;

		document.onmousemove = Sizeme.resize;
		document.onmouseup = Sizeme.end;

		return false;
	},

	resize : function(e)
	{
		e = Sizeme.fixE(e);
		var ey	= e.clientY;
		var ex	= e.clientX;
		Sizeme.doResize(e, Sizeme.obj.root);
		Sizeme.obj.lastMouseX	= ex;
		Sizeme.obj.lastMouseY	= ey;
		return false;
	},

	doResize : function(e, obj)
	{
		e = Sizeme.fixE(e);

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = obj.style.bottom;
		var x = obj.style.right;
		var nx, ny;

		var dx = (ex - Sizeme.obj.lastMouseX);
		var dy = (ey - Sizeme.obj.lastMouseY);
		nx = x + dx;
		ny = y + dy;
//		alert('dx: ' + dx + 'width: ' + obj.style["width"] + ', obj.bFixWidth: ' + obj.bFixWidth + ', getWidth(obj): ' + getWidth(obj));

		if (!obj.bFixWidth)
		{
			var w = getWidth(obj);
			if (!w)
				w = obj.minWidth;
			if ((w + dx) > obj.minWidth)
				obj.style["width"] = w + dx + "px";
			else
				obj.style["width"] = obj.minWidth + "px";
		}

		if (!obj.bFixHeight)
		{
			var h = getHeight(obj);
			if (!h)
				h = obj.minHeight;
			if (dy > 0 || (h + dy) > obj.minHeight)
				obj.style["height"] = h + dy + "px";
			else
				dy = 0;
		}

/*
		if (Sizeme.obj.xMapper)		nx = Sizeme.obj.xMapper(y)
		else if (Sizeme.obj.yMapper)	ny = Sizeme.obj.yMapper(x)

		if (!Sizeme.obj.hasXLock)
		{
			if (!Sizeme.obj.constraintX)
				obj.style["right"] = nx + "px";
			else
				obj.style["right"] = Sizeme.obj.constraintX(obj, nx, x) + "px";
		}
		if (!Sizeme.obj.hasYLock)
		{
			if (!Sizeme.obj.constraintY)
				obj.style["bottom"] = ny + "px";
			else
				obj.style["bottom"] = Sizeme.obj.constraintY(obj, ny, y) + "px";
		}
//*/
//		alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.eventHandler: ' + obj.eventHandler);
		if (obj.onResize)
			obj.onResize(e, nx, ny, dx, dy);
		else
		{
//			alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.code: ' + obj.code);
		}
		if (obj.eventHandler)
			obj.eventHandler.onResize(e, nx, ny, dx, dy);
		else
		{
//			alert('obj: ' + obj + ', obj.id: ' + obj.id + ', obj.eventHandler: ' + obj.eventHandler);
		}
	},



	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Sizeme.obj.root.onResizeEnd(parseInt(Sizeme.obj.root.style["right"]), 
								parseInt(Sizeme.obj.root.style["bottom"]));
		//alert('Sizeme.obj.root.style[width]: ' + Sizeme.obj.root.style["width"]);
		Sizeme.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

//var _DatePickerContext = false;
var _DatePickerOpened = '';
var _bodyDatePickerFnc;
var _DatePickerMenuId = 0;


/*
	Trabalha com a data no formato yyyy-mm-dd
*/
function DatePicker(divRoot, dateFormat)
{
	this.dateFormat = dateFormat;
	this.ID = 'dtPicker_' + _DatePickerMenuId++;
	this.isCreated = false;
	this.firstMonthIdx = 0;
	this.lastMonthIdx = 11;

	if (arguments.length > 0)
		this.htmlElemRoot = divRoot;
	else
		this.htmlElemRoot = getBodyElement();


	var todayDate = (new Date());
	this.yearIdx = todayDate.getFullYear();
	this.monthIdx = todayDate.getMonth();

	this.hasFromLimit = false;
	this.yearFrom; this.monthFrom; this.dayFrom;

	this.hasToLimit = false;
	this.yearTo; this.monthTo; this.dayTo;

//	this.weekdaysLabel = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
//	this.monthsLabel = ['January', 'Febuary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

	this.weekdaysLabel = ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'];
	this.monthsLabel = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
}



/*
	Variáveis:

		this.yearIdx
		this.monthIdx

		this.hasFromLimit
		this.yearFrom
		this.monthFrom
		this.dayFrom

		this.hasToLimit
		this.yearTo
		this.monthTo
		this.dayTo

		this.ID
		this.isCreated
		this.firstMonthIdx
		this.lastMonthIdx

		this.htmlElemRoot
		this.divCore

		this.divCalendar
		this.divHeader
		this.lnkCloseCal
		this.calTitle
		this.calHeaders
		this.calCells
		this.lnkPrevCal
		this.lnkNextCal

		this.divMonthList
		this.lnkPrevMonthList
		this.monthListYearLabel
		this.lnkNextMonthList
		this.monthListMonths

*/
DatePicker.prototype.createDivs = function()
{
	this.isCreated = true;

	this.divCore = appendElem(this.htmlElemRoot, 'div', this.ID, 'popup-calendar-join');

	// Calendário
	{
		this.divCalendar = appendElem(this.divCore, 'div', this.ID + '_cal', 'popup-calendar-pos popup-calendar');
		this.divHeader = appendElem(this.divCalendar, 'div', this.ID + '_head', 'popup-calendar-header');

		this.lnkCloseCal = appendElem(appendElem(this.divCalendar, 'div', '', 'link-close'), 'a');
		this.lnkCloseCal.setAttribute('href', '#');
		setInnerText(this.lnkCloseCal, 'Close');

		this.calTitle = appendElem(this.divCalendar, 'h3');
		setInnerText(this.calTitle, this.getCurrentMonthLabel() + '' + this.getCurrentYearLabel());

		
		var tbl = appendElem(this.divCalendar, 'table');
		tbl.setAttribute('cellspacing', '2');
		var thead = appendElem(tbl, 'thead');
		var tr = appendElem(thead, 'tr');
		this.calHeaders = new Array(7);
		for (var i = 0; i < 7; i++)
		{
			this.calHeaders[i] = appendElem(tr, 'th');
			this.calHeaders[i].setAttribute('scope', 'col'); // ?
			this.calHeaders[i].setAttribute('abbr', this.getWeekdayLabel(i)); // ?
			this.calHeaders[i].setAttribute('title', this.getWeekdayLabel(i)); // ?
			setInnerText(this.calHeaders[i], this.getWeekdayLabelInitial(i));
		}

		this.calCells = new Array(5);
		var tbody = appendElem(tbl, 'tbody');
		for (var idxRow = 0; idxRow < 5; idxRow++)
		{
			this.calCells[idxRow] = new Array(7);
			var tr = appendElem(tbody, 'tr');
			for (var idxCol = 0; idxCol < 7; idxCol++)
			{
				this.calCells[idxRow][idxCol] = appendElem(tr, 'td');
				this.calCells[idxRow][idxCol].bHasA = false;
			}
		}

		this.lnkPrevCal = appendElem(appendElem(this.divCalendar, 'div', '', 'link-prev'), 'a');
		this.lnkPrevCal.setAttribute('href', '#');
		setInnerText(this.lnkPrevCal, '<< Prev');

		this.lnkNextCal = appendElem(appendElem(this.divCalendar, 'div', '', 'link-next'), 'a');
		this.lnkNextCal.setAttribute('href', '#');
		setInnerText(this.lnkNextCal, 'Next >>');
	}


	// Lista de meses	
	{
		this.divMonthList = appendElem(this.divCore, 'div', this.ID + '_months', 'popup-monthlist-pos popup-calendar popup-monthlist');
		var div = appendElem(this.divMonthList, 'div');

		this.lnkPrevMonthList = appendElem(appendElem(div, 'div', 'link-prev-ano', 'link-prev-ano'), 'a');
		this.lnkPrevMonthList.setAttribute('href', '#');
		setInnerText(this.lnkPrevMonthList, '<<');

		this.monthListYearLabel = appendElem(div, 'div', '', 'ano');
		setInnerText(this.monthListYearLabel, this.getCurrentYearLabel());

		this.lnkNextMonthList = appendElem(appendElem(div, 'div', 'link-next-ano', 'link-next-ano'), 'a');
		this.lnkNextMonthList.setAttribute('href', '#');
		setInnerText(this.lnkNextMonthList, '>>');

		appendElem(this.divMonthList, 'br'); appendElem(this.divMonthList, 'br');

		div = appendElem(this.divMonthList, 'div');
		tbl = appendElem(div, 'table');
		tbl.setAttribute('cellspacing', '2');
		tbody = appendElem(tbl, 'tbody');

		this.monthListMonths = new Array(12);
		for (var i = 0; i < 12; i++)
		{
			tr = appendElem(tbody, 'tr');
			this.monthListMonths[i] = appendElem(appendElem(tr, 'td'), 'a');
			this.monthListMonths[i].setAttribute('href', '#');
			setInnerText(this.monthListMonths[i], this.getMonthLabel(i));
		}
	}

	Drag.init(this.divHeader, this.divCore);
	this.divHeader.onDragStart = function(x, y) 
	{
		document.body.className += ' dragging';
		this.ZINDEX = this.style.zIndex;
		this.style.zIndex = 999;
		this.SAVED_POSITION = [x, y];
	};
		
	this.divHeader.onDragEnd = function(x, y)
	{
		//this.style.left = this.SAVED_POSITION[0];
		//this.style.top = this.SAVED_POSITION[1];
		this.style.zIndex = this.ZINDEX;
		fM.elementDropped(this, x, y);
	};


	this.adjustCalendar();
}


DatePicker.prototype.showMe = function()
{
	if (!this.isCreated)
	{
		this.createDivs();
	}

	setStyle(this.divCore, 'visibility', 'visible');
	_bodyDatePickerFnc = document.body.onmouseclick;
	_DatePickerOpened = this;
	document.body.onmouseclick = function() 
							{ 
								if (_DatePickerOpened != '')
									_DatePickerOpened.hideMe();
							};
}


DatePicker.prototype.hideMe = function()
{
	setStyle(this.divCore, 'visibility', 'hidden');
	document.body.onmouseclick = _bodyDatePickerFnc;
	_DatePickerOpened = '';
}


DatePicker.prototype.nextMonth = function()
{
	if (this.monthIdx + 1> this.lastMonthIdx)
	{
		this.monthIdx = this.firstMonthIdx;
		this.yearIdx = this.yearIdx + 1;
	}
	else
	{
		this.monthIdx = this.monthIdx + 1;
	}

	this.adjustCalendar();
}


DatePicker.prototype.prevMonth = function()
{
	if (this.monthIdx - 1 < this.firstMonthIdx)
	{
		this.monthIdx = this.lastMonthIdx;
		this.yearIdx = this.yearIdx - 1;
	}
	else
	{
		this.monthIdx = this.monthIdx - 1;
	}

	this.adjustCalendar();
}


DatePicker.prototype.nextYear = function()
{
	this.yearIdx = this.yearIdx + 1;
	this.adjustCalendar();
}


DatePicker.prototype.prevYear = function()
{
	this.yearIdx = this.yearIdx - 1;
	this.adjustCalendar();
}


DatePicker.prototype.setMonth = function(p_monthIdx)
{
	this.monthIdx = p_monthIdx;

	this.adjustCalendar();
}


DatePicker.prototype.setYear = function(p_yearIdx, p_monthIdx)
{
	this.yearIdx = p_yearIdx;
	var monthIdxLocal;
	if (arguments.length == 1)
		monthIdxLocal = this.monthIdx;
	else
		monthIdxLocal = monthIdx;
	this.monthIdx = monthIdxLocal;

	this.adjustCalendar();
}


/*
	Prepara para visualização com o dia - mes - ano
	escolhidos.
*/
DatePicker.prototype.adjustCalendar = function()
{
	setInnerText(this.monthListYearLabel, this.getCurrentYearLabel());
	setInnerText(this.calTitle, this.getCurrentMonthLabel() + ' ' + this.getCurrentYearLabel());

	var d = new Date(this.yearIdx, this.monthIdx, 1);
	var todayDate = (new Date());
	var todayYear = todayDate.getFullYear();
	var todayMonth = todayDate.getMonth();
	var todayDay = todayDate.getDate();

	// Retorna o dia da semana.
	var curDay = -d.getDay();
	var lastDay = (new Date(d.getFullYear(), d.getMonth() + 1, 0)).getDate();
	for (var idxRow = 0; idxRow < 5; idxRow++)
	{
		for (var idxCol = 0; idxCol < 7; idxCol++)
		{
			if (curDay < 0 || curDay >= lastDay)
			{
				if (this.calCells[idxRow][idxCol].bHasA)
				{
					this.calCells[idxRow][idxCol].aInner = '';
					removeChildren(this.calCells[idxRow][idxCol]);
					this.calCells[idxRow][idxCol].bHasA = false;
				}
			} 
			else if (!this.isDataInRange(this.yearIdx, this.monthIdx, curDay + 1))
			{
				if (!this.calCells[idxRow][idxCol].bHasA)
				{
					this.calCells[idxRow][idxCol].aInner = appendElem(this.calCells[idxRow][idxCol], 'a');
					this.calCells[idxRow][idxCol].aInner.setAttribute('href', '#');
					this.calCells[idxRow][idxCol].bHasA = true;
				}
				setInnerText(this.calCells[idxRow][idxCol].aInner, (curDay + 1));
				setClass(this.calCells[idxRow][idxCol].aInner, 'inactive');
			} 
			else 
			{
				if (!this.calCells[idxRow][idxCol].bHasA)
				{
					this.calCells[idxRow][idxCol].aInner = appendElem(this.calCells[idxRow][idxCol], 'a');
					this.calCells[idxRow][idxCol].aInner.setAttribute('href', '#');
					this.calCells[idxRow][idxCol].bHasA = true;
				}
				setInnerText(this.calCells[idxRow][idxCol].aInner, (curDay + 1));
				setClass(this.calCells[idxRow][idxCol].aInner, '');
				this.calCells[idxRow][idxCol].aInner.evtHndlr = this;
				this.calCells[idxRow][idxCol].aInner.myDate = new Date(this.yearIdx, this.monthIdx, (curDay + 1));
				this.calCells[idxRow][idxCol].aInner.onclick = function(e)
				{
					this.evtHndlr.selectDate(this.myDate);
					return false;
				}
			}
			if (todayYear == this.yearIdx && todayMonth == this.monthIdx && todayDay == (curDay+1))
			{
				setClass(this.calCells[idxRow][idxCol], 'today');
			}
			curDay++;
		}
	}

	for (var i = 0; i < 12; i++)
	{
		if (this.monthIdx == i)
		{
			setClass(this.monthListMonths[i], 'selected');
			this.monthListMonths[i].onclick = '';
		}
		else
		{
			setClass(this.monthListMonths[i], '');
			this.monthListMonths[i].evtHndlr = this;
			this.monthListMonths[i].monthIdx = i;
			this.monthListMonths[i].onclick = function(e)
			{
				this.evtHndlr.setMonth(this.monthIdx);
				return false;
			}
		}
	}


	/*
		Seta listeners dos botões.
	*/
	if (this.hasPrevMonth(this.yearIdx, this.monthIdx))
	{
		this.lnkPrevCal.evtHndlr = this;
		this.lnkPrevCal.onclick = function(e)
		{
			this.evtHndlr.prevMonth();
			return false;
		}
	}
	else
		this.lnkPrevCal.onclick = '';

	if (this.hasNextMonth(this.yearIdx, this.monthIdx))
	{
		this.lnkNextCal.evtHndlr = this;
		this.lnkNextCal.onclick = function(e)
		{
			this.evtHndlr.nextMonth();
			return false;
		}
	}
	else
		this.lnkNextCal.onclick = '';

	if (this.hasPrevYear(this.yearIdx))
	{
		this.lnkPrevMonthList.evtHndlr = this;
		this.lnkPrevMonthList.onclick = function(e)
		{
			this.evtHndlr.prevYear();
			return false;
		}
	}
	else
		this.lnkPrevMonthList.onclick = '';

	if (this.hasNextYear(this.yearIdx))
	{
		this.lnkNextMonthList.evtHndlr = this;
		this.lnkNextMonthList.onclick = function(e)
		{
			this.evtHndlr.nextYear();
			return false;
		}
	}
	else
		this.lnkNextMonthList.onclick = '';

	this.lnkCloseCal.evtHndlr = this;
	this.lnkCloseCal.onclick = function(e)
	{
		this.evtHndlr.hideMe();
		return false;
	}
}



DatePicker.prototype.getCurrentMonthLabel = function()
{
	return this.monthsLabel[this.monthIdx];
}


DatePicker.prototype.getCurrentYearLabel = function()
{
	return this.yearIdx;
}


DatePicker.prototype.getWeekdayLabel = function(idx)
{
	return this.weekdaysLabel[idx];
}


DatePicker.prototype.getWeekdayLabelInitial = function(idx)
{
	return this.weekdaysLabel[idx].substr(0, 1);
}


DatePicker.prototype.getMonthLabel = function(idx)
{
	return this.monthsLabel[idx];
}


DatePicker.prototype.isDataInRange = function(theYear, theMonth, theDay)
{
	var retRet = true;
	if (this.hasFromLimit)
	{
		if (this.yearFrom > theYear)
			retRet = false;
		else if (this.yearFrom == theYear)
		{
			if (this.monthFrom > theMonth)
				retRet = false;
			else if (this.monthFrom == theMonth)
			{
				if (this.dayFrom > theDay)
					retRet = false;
			}
		}
	}

	if (this.hasToLimit)
	{
		if (this.yearTo < theYear)
			retRet = false;
		else if (this.yearTo == theYear)
		{
			if (this.monthTo < theMonth)
				retRet = false;
			else if (this.monthTo == theMonth)
			{
				if (this.dayTo < theDay)
					retRet = false;
			}
		}
	}
	return retRet;
}


DatePicker.prototype.hasPrevMonth = function(theYear, theMonth)
{
	var retRet = true;
	if (this.hasFromLimit)
	{
		if (this.yearFrom > theYear)
			retRet = false;
		else if (this.yearFrom == theYear)
		{
			if (this.monthFrom >= theMonth)
				retRet = false;
		}
	}
	return retRet;
}


DatePicker.prototype.hasNextMonth = function(theYear, theMonth)
{
	var retRet = true;
	if (this.hasToLimit)
	{
		if (this.yearTo < theYear)
			retRet = false;
		else if (this.yearTo == theYear)
		{
			if (this.monthTo <= theMonth)
				retRet = false;
		}
	}
	return retRet;
}


DatePicker.prototype.hasPrevYear = function(theYear)
{
	var retRet = true;
	if (this.hasFromLimit)
	{
		if (this.yearFrom >= theYear)
			retRet = false;
	}
	return retRet;
}


DatePicker.prototype.hasNextYear = function(theYear)
{
	var retRet = true;
	if (this.hasToLimit)
	{
		if (this.yearTo <= theYear)
			retRet = false;
	}
	return retRet;
}


DatePicker.prototype.resetDateWindow = function()
{
	this.hasFromLimit = false;
	this.hasToLimit = false;
}


DatePicker.prototype.setDateWindow = function(i, w)
{

	this.hasFromLimit = true;
	this.yearFrom = i.getFullYear();
	this.monthFrom = i.getMonth();
	this.dayFrom = i.getDate();

	this.hasToLimit = true;
	this.yearTo = w.getFullYear();
	this.monthTo = w.getMonth();
	this.dayTo = w.getDate();
}


DatePicker.prototype.showDate = function(theInput)
{
	this.inputRet = theInput;
	this.showMe();
}


DatePicker.prototype.selectDate = function(theDate)
{
	this.inputRet.value = m2v.dateToStr(theDate, this.dateFormat);
	if (this.inputRet.onchange)
	{
		this.inputRet.onchange();
	}
	this.hideMe();
}





var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */


/**
 * Base
 */
function appendElem(root, elemType, theId, theClass)
{
	var elem = document.createElement(elemType);
	root.appendChild(elem);
	if (arguments.length > 2)
		elem.setAttribute('id', theId);
	if (arguments.length > 3)
	{
		elem.setAttribute('class', theClass);
		elem.setAttribute('className', theClass);
	}
	return elem;
}

function insertAfter(targetElement, elemType, theId, theClass)
{
	var elem = document.createElement(elemType);
	if (arguments.length > 2)
		elem.setAttribute('id', theId);
	if (arguments.length > 3)
	{
		elem.setAttribute('class', theClass);
		elem.setAttribute('className', theClass);
	}

	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement)
		parent.appendChild(elem);
	else
		parent.insertBefore(elem, targetElement.nextSibling);
	return elem;
}



function removeChildren(elem)
{
	while (elem.childNodes.length > 0)
		elem.removeChild(elem.childNodes[elem.childNodes.length - 1]);
}

function setClass(elem, strClass)
{
	elem.setAttribute('class', strClass);
	elem.setAttribute('className', strClass);
}

function setStyle(divDiv, styleName, styleValue)
{
	divDiv.style[styleName] = styleValue;
}

function setLeft(divDiv, val)
{
	divDiv.style["left"] = (val) + "px";
}

function setTop(divDiv, val)
{
	divDiv.style["top"] = (val) + "px";
}

function getTop(divDiv)
{
	return divDiv.style["top"].substring(0, divDiv.style["top"].length-2) - 0;
}

function getBottom(divDiv)
{
	return divDiv.style["top"].substring(0, divDiv.style["top"].length-2) + getHeight(divDiv);
}

function getWidth(divDiv)
{
	return divDiv.style["width"].substring(0, divDiv.style["width"].length-2) - 0;
}

function getHeight(divDiv)
{
	return divDiv.style["height"].substring(0, divDiv.style["height"].length-2) - 0;
}

function getLeft(divDiv)
{
	return divDiv.style["left"].substring(0, divDiv.style["left"].length-2) - 0;
}

function getRight(divDiv)
{
	return divDiv.style["left"].substring(0, divDiv.style["left"].length-2) + getWidth(divDiv);
}

function getCenterX(divDiv)
{
	return getLeft(divDiv) + getWidth(divDiv)/2;
}

function getCenterY(divDiv)
{
	return getTop(divDiv) + getHeight(divDiv)/2;
}


function stopEvtPropagation(e)
{ 
	e = e ? e : window.event;
	if (e.stopPropagation)
		e.stopPropagation();
	e.cancelBubble = true;
}

function parseJSON(txt)
{
	var x;eval('x = ((' + txt + '));');return x;
}


function setInnerText(elem, text)
{
	if (!elem.childNodes || !elem.childNodes.length || elem.childNodes.length == 0)
		elem.appendChild(document.createTextNode(text));
	else
		elem.lastChild.nodeValue = text;
}

function setInnerHtml(elem, text)
{
	elem.innerHTML = text;
}

function getEvtTarget(e)
{ 
	e = e ? e : window.event;
	var theTarget = e.currentTarget ? e.currentTarget : e.srcElement;
	return theTarget;
}

function getEvtTargetOrThis(e, thithis)
{ 
	e = e ? e : window.event;
	var theTarget = (e.currentTarget ? e.currentTarget : (thithis ? thithis : e.srcElement));
	return theTarget;
}


function fixE(e)
{
	if (typeof e == 'undefined') e = window.event;
	if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
	if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
	return e;
}


function center(divDiv)
{
	setCenterX(divDiv, screen.width/2 - getWidth(divDiv)/2);
	setCenterY(divDiv, screen.height/2 - getHeight(divDiv)/2);
}

function setCenterX(divDiv, val)
{
	divDiv.style["left"] = (val + 0 - getWidth(divDiv)/2 + 0) + "px";
}

function setCenterY(divDiv, val)
{
	divDiv.style["top"] = (val + 0 - getHeight(divDiv)/2 + 0) + "px";
}







///// Login js

function swapfakeinput()
{
	$('#passfake').css('display', 'none');
	$('#password').css('display', 'inline').focus();
}
function clearme()
{
	$('#username').attr('value', '');
}
function submitloginform(event)
{
	$('#loginfrm').submit();
}


function doChap()
{
	var user = document.getElementById('login.username');
	var password = document.getElementById('login.password');
	var challenge = document.getElementById('login.challenge');

	if (!user || !password || !challenge)
	{
		alert('Ocorreu uma queda no servidor. Nos desculpe pelo transtorno!');
		return false;
	}

	if (!user.value || !password.value)
	{
		alert('Por favor, preencha o usuário e a senha');
		return false;
	}

	challenge.value = md5(md5(password.value) + sessChalenge);
	password.value = '';

	var form = document.getElementById('loginform');
	form.submit();
	return true;
}





function execOnLoad()
{
	$('#logo_login_a').hover(function () {
		$('#logo_login_info_pane').css('display', 'block');
	},
	function () 
	{
		$('#logo_login_info_pane').css('display', 'none');
	});

    $(function() { $('#menu_head').lavaLamp({ fx: 'backout', speed: 700})});
    $(function() { $('#menu_foot').lavaLamp({ fx: 'backout', speed: 700})});

}





// Para bug do ie com css ...
function menuIn(evt, aThis)
{
	setStyle(aThis, 'color', '#ffb400');
}
function menuOut(evt, aThis)
{
	setStyle(aThis, 'color', '#FFEEAA');
}



function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version <= 6) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}


function prodMouseIn(evt, aThis)
{
	if (!aThis.img)
		return;

	if (aThis.img.filters)
		aThis.img.filters.alpha.opacity=100;
	else
		setStyle(aThis, 'opacity', '1');
}


function prodMouseOut(evt, aThis)
{
	if (!aThis.img)
		return;

	if (aThis.img.filters)
		aThis.img.filters.alpha.opacity=65;
	else
		setStyle(aThis, 'opacity', '.80');
}


function prodMouseDown(evt, aThis)
{
	setTop(aThis.parentNode, getTop(aThis.parentNode) + 2);
	setLeft(aThis.parentNode, getLeft(aThis.parentNode) + 2);
	return false;
}


function prodMouseUp(evt, aThis)
{
	setTop(aThis.parentNode, getTop(aThis.parentNode) - 2);
	setLeft(aThis.parentNode, getLeft(aThis.parentNode) - 2);
	return false;
}


var _hideTime;
var _showTime; 
var _arrayEffects;
var _effectCounter;
function runEffects(hideTime, showTime, arrayEffects)
{
	_effectCounter = 0;
	_hideTime = hideTime;
	_showTime = showTime;
	_arrayEffects = arrayEffects;
	doEffect();
}


function doEffect()
{
	var eff = _arrayEffects[_effectCounter];
	var eleId = _arrayEffects[_effectCounter + 1];
	var delayNext = _arrayEffects[_effectCounter + 2];
	_effectCounter += 3;
	//alert(eff + '--' + eleId);

	// show
	if (eff == 's')
		new Effect.Opacity(eleId, {from:0.0, to:1.0, delay: 0.0, duration: _showTime});

	// hide
	else
		new Effect.Opacity(eleId, {from:1.0, to:0.0, delay: 0.0, duration: _hideTime});

	if (_effectCounter < _arrayEffects.length)
		setTimeout(doEffect, delayNext*1000);
}


function initProdList(holderName, bDontDoEffects)
{
	var holder = document.getElementById(holderName);
	var arrayChild = holder.childNodes;
	for (i = 0; i < arrayChild.length; i++)
	{
		if (arrayChild[i].tagName == 'DIV')
		{
			var divH2 = arrayChild[i];
			var arrayChild2 = divH2.childNodes;
			for (j = 0; j < arrayChild2.length; j++)
			{
				if (arrayChild2[j].tagName == 'A')
				{
					var cchild = arrayChild2[j];
					for (k = 0; k < cchild.childNodes.length; k++) if (cchild.childNodes[k].tagName == 'IMG')
					{
						cchild.img = cchild.childNodes[k];
						break;
					}

					if (cchild.img.filters)
						cchild.img.style.filter = 'alpha(opacity=80)';
					else
						setStyle(cchild, 'opacity', '.80');
					break;
				}
			}
		}
	}
	if (!bDontDoEffects)
		iniEffect();
}


function runScripts(e) {
	if (e.nodeType != 1) return; //if it's not an element node, return
 
	if (e.tagName.toLowerCase() == 'script') {
		eval(e.text); //run the script
	}
	else {
		var n = e.firstChild;
		while ( n ) {
			if ( n.nodeType == 1 ) runScripts( n ); //if it's an element node, recurse
			n = n.nextSibling;
		}
	}
}



var m2v = new Object(); 
m2v.image_path = '/imagens';
m2v.strings = new Object();
m2v.strings = {
		'loading':'Carregando ...',
		'/error/validation/required':'valor obrigatÃ³rio',
		'/error/validation/email':'e-mail invÃ¡lido',
		'usermessage/post/feedbackok':'Mensagem enviada!',
		'usermessage/moderate/feedbackok':'Mensagem moderada!',
		'usermessage/reportabuse/feedbackok':'Abuso reportado!',
		'usermessage/remove/feedbackok':'Mensagem removida!'
};
/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

function _zeroPad(num)
{ 
	var s = '0'+num;
	return s.substring(s.length-2) 
	//return ('0'+num).substring(-2); // doesn't work on IE :(
};


m2v.strToDate = function(dIn, dateFormat)
{
	switch (dateFormat.toLowerCase()) {
		case 'yyyy-mm-dd':
			dParts = dIn.split('-');
			return new Date(dParts[0], Number(dParts[1])-1, dParts[2]);
		case 'dd-mm-yyyy':
			dParts = dIn.split('-');
			return new Date(dParts[2], Number(dParts[1])-1, dParts[1]);
		case 'mm-dd-yyyy':
			dParts = dIn.split('-');
			return new Date(Number(dParts[1])-1, dParts[2], dParts[0]);
		case 'dd/mm/yyyy':
			dParts = dIn.split('/');
			return new Date(dParts[2], Number(dParts[1])-1, Number(dParts[0]));
		case 'yyyymmdd':
		{
			return new Date(dIn.substring(0, 4), Number(dIn.substring(4, 6))-1, Number(dIn.substring(6, 8)));
		}
		case 'yyyymmddhhminss':
		{
			return new Date(dIn.substring(0, 4), Number(dIn.substring(4, 6))-1, Number(dIn.substring(6, 8)), 
							dIn.substring(8, 10), dIn.substring(10, 12), dIn.substring(12, 14)
			);
		}
		case 'mm/dd/yyyy':
		default:
			var parts = parts ? parts : [2, 1, 0];
			dParts = dIn.split('/');
			return new Date(dParts[2], Number(dParts[0])-1, Number(dParts[1]));
	}
}

//    * formatDate() - Output a Date() object in any format
//    * getDateFromFormat() - Parse a date string and return time in ms representing date object 
m2v.dateToStr = function(d, dateFormat)
{
//	return formatDate(d, dateFormat);
//*
	var dY = d.getFullYear();
	var dM = _zeroPad(d.getMonth()+1);
	var dD = _zeroPad(d.getDate());
	var dH = _zeroPad(d.getHours());
	var dMin = _zeroPad(d.getMinutes());
	var dSec = _zeroPad(d.getSeconds());
	switch (dateFormat.toLowerCase()) {
		case 'yyyy-mm-dd':
			return dY + '-' + dM + '-' + dD;
		case 'mm-dd-yyyy':
			return dM + '-' + dD + '-' + dY;
		case 'dd-mm-yyyy':
			return dD + '-' + dM + '-' + dY;
		case 'dd/mm/yyyy':
			return dD + '/' + dM + '/' + dY;
		case 'yyyymmddhhminss':
			return dY + dM + dD + dH + dMin + dSec;
		case 'mm/dd/yyyy':
		default:
			return dM + '/' + dD + '/' + dY;
	}
//*/
}


m2v.setCenterX = function(divDiv, val, pRef)
{
	if (!pRef)
		pRef = {x:0, y:0};
	divDiv.style["left"] = (val + 0 - getWidth(divDiv)/2 + pRef.x) + "px";
}


m2v.setCenterY = function(divDiv, val, pRef)
{
	if (!pRef)
		pRef = {x:0, y:0};
	divDiv.style["top"] = (val + 0 - getHeight(divDiv)/2 + pRef.y) + "px";
}


m2v.moveLeft = function(divDiv, val, pRef)
{
	var lefty = getLeft(divDiv, pRef);
	divDiv.style["left"] = (lefty + val) + "px";
}

m2v.moveTop = function(divDiv, val, pRef)
{
	var toppy = getTop(divDiv, pRef);
	divDiv.style["top"] = (toppy + val) + "px";
}


m2v.center = function(divDiv)
{
//	alert('screen.width: ' + screen.width + ', getCenterX(divDiv): ' + getCenterX(divDiv));
//	moveLeft(divDiv, -(screen.width/2 - getCenterX(divDiv)));
//	moveTop(divDiv, -(screen.height/2 - getCenterY(divDiv)));
//	divDiv.style['position'] = 'absolute';

//	alert('screen.width/2: ' + screen.width/2);
//	alert('convertPosXFromDocToDivCtx(screen.width/2, divDiv): ' + convertPosXFromDocToDivCtx(screen.width/2, divDiv));
//	alert('convertPosXFromDocToDivCtx(screen.width/2, divDiv) - getWidth(divDiv)/2: ' + (convertPosXFromDocToDivCtx(screen.width/2, divDiv) - getWidth(divDiv)/2));

//	setCenterX(divDiv, convertPosXFromDocToDivCtx(screen.width/2, divDiv) - getWidth(divDiv)/2);
//	setCenterY(divDiv, convertPosYFromDocToDivCtx(screen.height/2, divDiv) - getHeight(divDiv)/2);
	m2v.setCenterX(divDiv, screen.width/2 - getWidth(divDiv)/2);
	m2v.setCenterY(divDiv, screen.height/2 - getHeight(divDiv)/2);
//	moveTop(divDiv, -(screen.height/2 - getCenterY(divDiv)));
}


m2v.appendElem = function (root, elemType, theId, theClass)
{
	var elem = document.createElement(elemType);
	root.appendChild(elem);
	if (arguments.length > 2)
		elem.setAttribute('id', theId);
	if (arguments.length > 3)
	{
		elem.setAttribute('class', theClass);
		elem.setAttribute('className', theClass);
	}
	return elem;
}

m2v.removeChildren = function(elem) {
	while (elem.childNodes.length > 0)
		elem.removeChild(elem.childNodes[elem.childNodes.length - 1]);
}



/**
 * Finds an element position.
 * 
 * @deprecated use $.offset instead
 * @param {Object} obj
 * @return [left, top]
 */
// TODO: remove, move to $.offset
m2v.findPos = function(obj)
{
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent)
	{
		do
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while ((obj = obj.offsetParent));
	}
	return [curleft,curtop];
}

m2v.findPosFromEvent = function(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return [posx, posy];
}

m2v.getEvtTarget = function(e)
{ 
	e = e ? e : window.event;
	var theTarget = e.currentTarget ? e.currentTarget : e.srcElement;
	return theTarget;
};
m2v.din_mousedown = function(event) {m2v.getEvtTarget(event).mm = false;}
m2v.din_mousemove = function(event) {m2v.getEvtTarget(event).mm = true;}
m2v.din_mouseclick = function(event)
{
	if (m2v.getEvtTarget(event).mm) 
	{ 
		if ((event || window.event).preventDefault)
			(event || window.event).preventDefault(); 
		else
			(event || window.event).returnValue = false; 
		return false;
	} 
	else 
		return true;
}


/**
 * Garante que algum item foi selecionado.
 */
m2v.ensureSelectedItens = function(formId, msgNotChecked, event)
{
	var arrayChecked = $('#' + formId + ' > input:checked');
	alert('arrayChecked.length: ' + arrayChecked.length);
	for (var i = 0; i < arrayChecked.length; i++)
	{
		if (arrayChecked[i].id.indexOf('.selector') != -1)
			return true;
	}
	alert(msgNotChecked);
	return false;
}


m2v.toggleAllChecks = function(event)
{
	var jform = $(this).parents('form');
	var jchecks = jform.find('input:checkbox');
	var bCheck = $(this).attr('checked');

	for (var i = 0; i < jchecks.length; i++)
	{
		if (jchecks[i].id.indexOf('.selector') != -1)
			$(jchecks[i]).attr('checked', bCheck);
	}
}


m2v.getSelectedItensAsStr = function(formId, msgNotChecked, event)
{
	var out = '';
	var arrayChecked = $('#' + formId + ' > input:checked');
	alert('arrayChecked.length: ' + arrayChecked.length);

	for (var i = 0; i < arrayChecked.length; i++)
	{
		if (arrayChecked[i].id.indexOf('.selector') != -1 && $(arrayChecked[i]).attr('checked'))
		{
			if (out.length > 0)
				out += ',';
			out += arrayChecked[i].id;
		}
	}
	alert(out);
	return out;
}


m2v.loadHtml = function(url, elementJqueryExp)
{
	$(elementJqueryExp).load(url);
}


m2v.validateForm = function(jform, event)
{
	return true;
}


m2v.submitForm = function(formId, url, callback, callbackNok)
{
	// var jform = $(formId).parents('form');
	var jform = $('#' + formId);
	if (m2v.validateForm(jform, null))
	{
		jform.attr('action', url).ajaxForm(callback).submit();
	}
	else
	{
		callbackNok.call(jform[0]);
	}
}


m2v.toggleMstrRenderer = function(event)
{
	// alert('$(this).attr(data-ishown): ' + $(this).attr('data-ishown'));
	if ($(this).attr('data-ishown') != 'true')
	{
		var pos = m2v.findPos(m2v.getEvtTarget(event));
		$(this).attr('data-ishown', 'true');
		$(this).parent().find('div').css('display', 'block').css('left', pos[0] + 'px').css('top', pos[1] + 'px');
	}
	else
	{
		$(this).attr('data-ishown', 'false');
		$(this).parent().find('div').css('display', 'none');
	}
	return false;
}


m2v.toggleMultirefRenderer = function(event)
{
	// alert('$(this).attr(data-ishown): ' + $(this).attr('data-ishown'));
	if ($(this).attr('data-ishown') != 'true')
	{
		var pos = m2v.findPos(m2v.getEvtTarget(event));
		$(this).attr('data-ishown', 'true');
		$(this).parent().find('div').css('display', 'block').css('left', pos[0] + 'px').css('top', pos[1] + 'px');
	}
	else
	{
		$(this).attr('data-ishown', 'false');
		$(this).parent().find('div').css('display', 'none');
	}
	return false;
}


m2v.popCalendar = function(event)
{
	var inputRet = $(this).parent().find('input')[0];
	var dtPicker = new DatePicker($('body')[0], 'dd/mm/yyyy');
	dtPicker.showDate(inputRet);
	var pos = m2v.findPos(m2v.getEvtTarget(event));
	// m2v.center(dtPicker.divCore);
	$(dtPicker.divCore).css('left', pos[0] - 150).css('top', pos[1] - 100);
	return false;
}


m2v.createSubObject = function(event)
{
	alert('createSubObject');
}

m2v.signs = new Object();
m2v.signsId = 1;
m2v.signsLastId = 1;

/**
 * Shows a sign that something is happening in backgound, and the user should
 * wait before doing something.
 *
 * Don't let your user waits more than a second, or he will hate you!!!!
 * Use only when the user will wait for more than 500ms.
 *
 * @param {array} pos position where the sign will be shown. Optional param, and optinal use.
 * @param {string} message message to show to the user (optional).
 * @param {boolean} showImg Show loading image spinner?
 * @param {integer} timeout In seconds. Use 0 for no timeout.
 * @return sign id. Should be supplied to hideLoadingSign
 */
m2v.showLoadingSign = function(pos, message, showImg, timeout, height, width)
{
	var body = $("body")[0];
	var id = 'sign_' + m2v.signsId++;
	m2v.signsLastId = id;
	m2v.signs[id] = m2v.appendElem(body, 'div', id, 'm2v_msgbox');
	var lhjSign = $(m2v.signs[id]);
	// alert('pos: ' + pos);
	if (pos != null)
	{
		lhjSign.css('left', pos[0]);
		lhjSign.css('top', pos[1]);
	}
	else
	{
		lhjSign.css('left', screen.width/2 - lhjSign.offset().left);
		lhjSign.css('top', screen.height/2 - lhjSign.offset().top);
	}
	if (message == null)
		message = m2v.strings['loading'];

	if (height != null)
		lhjSign.css('height', height);
	if (width != null)
		lhjSign.css('width', width);

	if (showImg)
		m2v.signs[id].innerHTML = '<div class="message">' + message + '</div><div class="img"><img src="' + m2v.image_path + '/stock/statusrunning.gif"/></div>';
	else
		m2v.signs[id].innerHTML = '<div class="message">' + message + '</div>';

	if (timeout)
		setTimeout(function() {m2v.hideLoadingSign(id);}, timeout);

	return id;
}


m2v.modLoadingSign = function(signId, message, showImg, pos, height, width)
{
	var lhjSign = null;
	if (signId != -1)
		lhjSign = $(m2v.signs[signId]);
	else
		lhjSign = $(m2v.signs[m2v.signsLastId]);

	if (lhjSign == null)
		return;

	if (pos != null)
	{
		lhjSign.css('left', pos[0]);
		lhjSign.css('top', pos[1]);
	}

	if (height != null)
		lhjSign.css('height', height);
	if (width != null)
		lhjSign.css('width', width);

	if (message != null)
	{
		if (showImg)
			lhjSign[0].innerHTML = '<div class="message">' + message + '</div><div class="img"><img src="' + m2v.loh_staticdomain + '/images/wait_indicator.gif"/></div>';
		else
			lhjSign[0].innerHTML = '<div class="message">' + message + '</div>';
	}
}


/**
 * Hide a sign previously opened.
 *
 * @param {??} signId id of the sign that must be hidden. If none is passed, all open
 *                    signs will die.
 */
m2v.hideLoadingSign = function(signId)
{
	var arrayClose = new Array();
	if (signId != null && m2v.signs[signId] != null)
	{
		arrayClose[signId] = m2v.signs[signId];
		m2v.signs[signId] = null;
	}
	else
		arrayClose = m2v.signs;

	var sign; for (sign in arrayClose)
	{
		sign = arrayClose[sign];
		if (sign != null)
		{
			if (sign.parentNode != null)
				sign.parentNode.removeChild(sign);
			else
				$(sign).css('display', 'none');
		}
	}

	if (m2v.signs.length > 10)
	{
		var tmp = new Array();
		var sign; for (sign in m2v.signs)
		{
			sign = arrayClose[sign];
			if (sign != null)
				tmp.push(sign);
		}
		m2v.signs = tmp;
	}
}

/*IAM AN INCLUDE! BUG!  < % @ include 
only works with ISO-8859-1 files. It must be using machine's default encode. */

/*
http://nettuts.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/
   1. $(function() {  
   2.   $('.error').hide();  
   3.   $(".button").click(function() {  
   4.     // validate and process form here  
   5.       
   6.     $('.error').hide();  
   7.       var name = $("input#name").val();  
   8.         if (name == "") {  
   9.       $("label#name_error").show();  
  10.       $("input#name").focus();  
  11.       return false;  
  12.     }  
  13.         var email = $("input#email").val();  
  14.         if (email == "") {  
  15.       $("label#email_error").show();  
  16.       $("input#email").focus();  
  17.       return false;  
  18.     }  
  19.         var phone = $("input#phone").val();  
  20.         if (phone == "") {  
  21.       $("label#phone_error").show();  
  22.       $("input#phone").focus();  
  23.       return false;  
  24.     }  
  25.       
  26.   });  
  27. });  


# $.ajax({  
#   type: "POST",  
#   url: "bin/process.php",  
#   data: dataString,  
#   success: function() {  
#     $('#contact_form').html("<div id='message'></div>");  
#     $('#message').html("<h2>Contact Form Submitted!</h2>")  
#     .append("<p>We will be in touch soon.</p>")  
#     .hide()  
#     .fadeIn(1500, function() {  
#       $('#message').append("<img id='checkmark' src='images/check.png' />");  
#     });  
#   }  
# });  
# return false;  


http://docs.jquery.com/Plugins/Validation#List_of_built-in_Validation_methods
*/


/**
 * Adicionar todas as funções de validadores.
 */

m2v.validate_addInfoIcon = function(jfield, imgUrl)
{
	var jvalfieldinfo = jfield.parents('div.val-field').find('span.val-fieldinfo');
	var htmlhtml = jvalfieldinfo.html();
	jvalfieldinfo.html(htmlhtml + '<img src="' + imgUrl + '"/>');
};


m2v.communicateValidationError = function(jfield, strMessage)
{
	var jvalfieldroot = jfield.parents('div.val-field');
	// alert('jvalfieldroot.length: ' + jvalfieldroot.length);
	var jform = jfield.parents('form');
	var fldId = jfield.attr('id');

	var errorFormBox = jform.find('div.val-formmsg');
	var errorFldBox = jvalfieldroot.find('span.val-fieldmsg');
	//alert('errorFldBox.length: ' + errorFldBox.length);

	if (errorFldBox.length > 0)
	{
		// errorFldBox.css('display', 'block');
		errorFldBox.text(strMessage);
	}
	else if (errorFormBox.length > 0)
	{
		errorFormBox.css('display', 'block');
		errorFormBox.text(strMessage);
	}
	else
	{
		alert(strMessage);
	}
};


m2v.clearValidationError = function(jfield, strMessage)
{
	var jvalfieldroot = jfield.parents('div.val-field');
	var jform = jfield.parents('form');
	var fldId = jfield.attr('id');

	var errorFormBox = jform.find('div.val-formmsg');
	var errorFldBox = jvalfieldroot.find('span.val-fieldmsg');

	if (errorFldBox.length > 0)
	{
		// errorFldBox.css('display', 'block');
		errorFldBox.text('');
	}
	else if (errorFormBox.length > 0)
	{
		errorFormBox.css('display', 'none');
		errorFormBox.text('');
	}
	else
	{
		alert(strMessage);
	}
};


m2v.validate_requiredOnSubmit = function(idx, field, jform)
{
	var jfield = $(field);
	var reqValue = jfield.attr('value');
	//alert('mailValue: ' + mailValue);
	if (reqValue == null || reqValue.length == 0)
	{
		m2v.communicateValidationError(jfield, m2v.strings['/error/validation/required']);
		return false;
	}
	else
	{
		m2v.clearValidationError(jfield);
		return true;
	}
};


m2v.validate_uniqueOnSubmit = function(idx, field, jform)
{
	return true;
};


m2v.validate_passwordOnSubmit = function(idx, field, jform)
{
	return true;
};


m2v.validate_emailOnBlur = function(event) {return m2v.validate_emailOnSubmit(0, this, null);};
m2v.validate_emailOnSubmit = function(idx, field, jform)
{
	var jfield = $(field);
	var mailValue = jfield.attr('value');
	//alert('mailValue: ' + mailValue);
	if (mailValue.indexOf('@') == -1)
	{
		m2v.communicateValidationError(jfield, m2v.strings['/error/validation/email']);
		return false;
	}
	else
	{
		m2v.clearValidationError(jfield);
		return true;
	}
};


m2v.validate_urlOnBlur = function(event) {return m2v.validate_urlOnSubmit(0, this, null);};
m2v.validate_urlOnSubmit = function(idx, field, jform)
{
	return true;
};


m2v.validate_cpfOnBlur = function(event) {return m2v.validate_cpfOnSubmit(0, this, null);};
m2v.validate_cpfOnSubmit = function(idx, field, jform)
{
	var jfield = $(field);
	var mailValue = jfield.attr('value');
	if (mailValue.indexOf('@') == -1)
	{
		m2v.communicateValidationError(field, m2v.strings['/error/validation/email']);
		return false;
	}
	else
	{
		m2v.clearValidationError(jfield);
		return true;
	}
};


m2v.validate_phoneOnBlur = function(event) {return m2v.validate_phoneOnSubmit(0, this, null);};
m2v.validate_phoneOnSubmit = function(idx, field, jform)
{
	var jfield = $(field);
	var mailValue = jfield.attr('value');
	if (mailValue.indexOf('@') == -1)
	{
		m2v.communicateValidationError(field, m2v.strings['/error/validation/email']);
		return false;
	}
	else
	{
		m2v.clearValidationError(jfield);
		return true;
	}
};


m2v.validate_integerOnBlur = function(event) {return m2v.validate_integerOnSubmit(0, this, null);};
m2v.validate_integerOnSubmit = function(idx, field, jform)
{
	return true;
};


