/*!

* jQuery JavaScript Library v1.4.4
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu Nov 11 19:04:53 2010 -0500
*/

(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute(“data-”+b);if(typeof d===“string”){try{d=d===“true”?true:d===“false”?false:d===“null”?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d.type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=;h=c.data(this,this.nodeType?“events”:“__events__”);if(typeof h===“function”)h= h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type===“click”)){if(a.namespace)A=RegExp(“(^|\.)”+a.namespace.split(“.”).join(“\.(?:.*\.)?”)+“(\.|$)”);a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J;h.origType.replace(X,“”)===a.type?f.push(h.selector):J.splice(k–,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f;for(k=0;k<J.length;k++){h=J;if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType===“mouseenter”|| h.preType===“mouseleave”){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C;if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!==“*”?a+“.”:“”)+b.replace(La, “`”).replace(Ma,“&”)}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b===“string”){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a&&a.nodeName)){var e=c.data(a),f=c.data(this, e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e)c.event.add(this,h,e[l],e[l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:“script”}):c.globalEval(b.text||b.textContent||b.innerHTML||“”);b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b===“width”?a.offsetWidth:a.offsetHeight;if(d===“border”)return e;c.each(b===“width”?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,“padding”+this))||0);if(d===“margin”)e+=parseFloat(c.css(a, “margin”+this))||0;else e-=parseFloat(c.css(a,“border”this“Width”))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+“[”+(typeof h===“object”||c.isArray(h)?f:“”)+“]”,h,d,e)});else if(!d&&b!=null&&typeof b===“object”)c.isEmptyObject(b)?e(a,“”):c.each(b,function(f,h){da(a+“[”f“]”,h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d=a});return d}function qa(a){if(!ea){var b=c(“<”+ a+“>”).appendTo(“body”),d=b.css(“display”);b.remove();if(d===“none”||d===“”)d=“block”;ea=d}return ea}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll(“left”)}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:*(<[”>wW]+>)*$|#([w-]+)$)/,l=/S/,k=/^s+/,o=/s+$/,x=/W/,r=/d/,A=/^<(w+)s*/?>(?:</1>)?$/, C=/^,:{}s]*$/,J=/\(?:|u{4})/g,w=/”*“|true|false|null|-?d+(?:.d*)?(?:[+-]?d+)?/g,I=/(?:^|:|,)(?:s*[)+/g,L=/(webkit)[ /]([w.]+)/,g=/(opera)(?:.*version)?[ /]([w.]+)/,i=/(msie) ([w.]+)/,n=/(mozilla)(?:.*? rv:(+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this=j;this.length=1;return this}if(j===”body“&&!s&&t.body){this.context=t;this=t.body;this.selector=”body“;this.length=1;return this}if(typeof j===”string“)if((v=h.exec(j))&&(v||!s))if(v){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z)];b.fn.attr.call(j,s,true)}else j=[H.createElement(z)];else{z=b.buildFragment([v],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, j)}else{if((z=t.getElementById(v))&&z.parentNode){if(z.id!==v)return f.find(j);this.length=1;this=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:”“,jquery:”1.4.4“,length:0,size:function(){return this.length}, toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j):this},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s===”find“)z.selector=this.selector+(this.selector?” “:”“)+v;else if(s)z.selector=this.selector+”.“s”(“v”)“;return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== -1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),”slice“,N.call(arguments).join(”,“))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:.splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments||{},K=1,Q=arguments.length,ga=false; if(typeof G===”boolean“){ga=G;G=arguments||{};K=2}if(typeof G!==”object“&&!b.isFunction(G))G={};if(Q===K){G=this;–K}for(;K)!=null)for(s in j){v=G;z=j;if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G=b.extend(ga,v,z)}else if(z!==B)G=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait–; if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&–b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v;)j.call(t,b);b.fn.trigger&&b(t).trigger(”ready“).unbind(”ready“)}}},bindReady:function(){if(!p){p=true;if(t.readyState===”complete“)return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener(”DOMContentLoaded“,u,false);E.addEventListener(”load“,b.ready,false)}else if(t.attachEvent){t.attachEvent(”onreadystatechange“,u);E.attachEvent(”onload“, b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)===”function“},isArray:Array.isArray||function(j){return b.type(j)===”array“},isWindow:function(j){return j&&typeof j===”object“&&”setInterval“in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R||”object“},isPlainObject:function(j){if(!j||b.type(j)!==”object“||j.nodeType||b.isWindow(j))return false;if(j.constructor&& !F.call(j,”constructor“)&&!F.call(j.constructor.prototype,”isPrototypeOf“))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!==”string“||!j)return null;j=b.trim(j);if(C.test(j.replace(J,”@“).replace(w,”]“).replace(I,”“)))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function(”return “+j))();else b.error(”Invalid JSON: “+j)},noop:function(){},globalEval:function(j){if(j&& l.test(j)){var s=t.getElementsByTagName(”head“)||t.documentElement,v=t.createElement(”script“);v.type=”text/javascript“;if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j,v)===false)break}else for(;H<G;){if(s.apply(j,v)===false)break}else if(K)for(z in j){if(s.call(j, z,j)===false)break}else for(v=j;H);return j},trim:O?function(j){return j==null?”“:O.call(j)}:function(j){return j==null?”“:j.toString().replace(k,”“).replace(o,”“)},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z===”string“||z===”function“||z===”regexp“||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v===j)return v;return-1},merge:function(j, s){var v=j.length,z=0;if(typeof s.length===”number“)for(var H=s.length;z=s;else for(;s!==B;)j=s;j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j,G);v!==H&&z.push(j)}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G,G,v);if(H!=null)z=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s===”string“){v=j;j=v;s=B}else if(s&&!b.isFunction(s)){v= s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s===”object“){for(var Q in s)b.access(j,Q,s,z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q,s,z?v.call(j,Q,H(j,s)):v,G);return j}return K?H(j,s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf(”compatible“)<0&&n.exec(j)|| [];return{browser:j||”“,version:j||”0“}},browser:{}});b.each(”Boolean Number String Function Array Date RegExp Object“.split(” “),function(j,s){R[”[object “s”]“]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/s/.test(”u00a0“)){k=/^+/;o=/+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener(”DOMContentLoaded“,u, false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState===”complete“){t.detachEvent(”onreadystatechange“,u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement(”script“),d=t.createElement(”div“),e=”script“+c.now();d.style.display=”none“;d.innerHTML=” <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>“;var f=d.getElementsByTagName(”*“),h=d.getElementsByTagName(”a“),l=t.createElement(”select“), k=l.appendChild(t.createElement(”option“));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName(”tbody“).length,htmlSerialize:!!d.getElementsByTagName(”link“).length,style:/red/.test(h.getAttribute(”style“)),hrefNormalized:h.getAttribute(”href“)===”/a“,opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName(”input“).value===”on“,optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type=”text/javascript“;try{b.appendChild(t.createTextNode(”window.“e”=1;“))}catch(o){}a.insertBefore(b,a.firstChild);if(E){c.support.scriptEval=true;delete E}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent(”onclick“,function r(){c.support.noCloneEvent= false;d.detachEvent(”onclick“,r)});d.cloneNode(true).fireEvent(”onclick“)}d=t.createElement(”div“);d.innerHTML=”<input type='radio' name='radiotest' checked='checked'/>“;a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement(”div“);r.style.width=r.style.paddingLeft=”1px“;t.body.appendChild®;c.boxModel=c.support.boxModel=r.offsetWidth===2;if(”zoom“in r.style){r.style.display=”inline“;r.style.zoom= 1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display=”“;r.innerHTML=”<div style='width:4px;'></div>“;c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML=”<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>“;var A=r.getElementsByTagName(”td“);c.support.reliableHiddenOffsets=A.offsetHeight===0;A.style.display=”“;A.style.display=”none“;c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A.offsetHeight===0;r.innerHTML=”“;t.body.removeChild®.style.display= ”none“});a=function®{var A=t.createElement(”div“);r=”on“+r;var C=r in A;if(!C){A.setAttribute(r,”return;“);C=typeof A===”function“}return C};c.support.submitBubbles=a(”submit“);c.support.changeBubbles=a(”change“);a=b=d=f=h=null}})();var ra={},Ja=/^(?:{.*}|[.*])$/;c.extend({cache:{},uuid:0,expando:”jQuery“+c.now(),noData:{embed:true,object:”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000“,applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a:null,h= c.cache;if(!(e&&!f&&typeof b===”string“&&d===B)){if(e)f||(a=f=++c.uuid);else h=a;if(typeof b===”object“)if(e)h=c.extend(h,b);else c.extend(h,b);else if(e&&!h)h={};a=e?h:h;if(d!==B)a=d;return typeof b===”string“?a:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a:a,f=c.cache,h=d?f:e;if(b){if(h){delete h;d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a;else if(a.removeAttribute)a.removeAttribute(c.expando); else if(d)delete f;else for(var l in a)delete a}},acceptData:function(a){if(a.nodeName){var b=c.noData;if(b)return!(b===true||a.getAttribute(”classid“)!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a===”undefined“){if(this.length){var e=this.attributes,f;d=c.data(this);for(var h=0,l=e.length;h<l;h++){f=e.name;if(f.indexOf(”data-“)===0){f=f.substr(5);ka(this,f,d)}}}return d}else if(typeof a===”object“)return this.each(function(){c.data(this, a)});var k=a.split(”.“);k=k?”.“+k:”“;if(b===B){d=this.triggerHandler(”getData“k[1]”!“,[k]);if(d===B&&this.length){d=c.data(this,a);d=ka(this,a,d)}return d===B&&k?this.data(k):d}else return this.each(function(){var o=c(this),x=[k,b];o.triggerHandler(”setData“k[1]”!“,x);c.data(this,a,b);o.triggerHandler(”changeData“k[1]”!“,x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||”fx“)+”queue“;var e= c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||”fx“;var d=c.queue(a,b),e=d.shift();if(e===”inprogress“)e=d.shift();if(e){b===”fx“&&d.unshift(”inprogress“);e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!==”string“){b=a;a=”fx“}if(b===B)return c.queue(this,a);return this.each(function(){var d=c.queue(this,a,b);a===”fx“&&d!==”inprogress“&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, a)})},delay:function(a,b){a=c.fx?c.fx.speeds||a:a;b=b||”fx“;return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||”fx“,[])}});var sa=//g,ha=/s+/,Sa=/r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={”for“:”htmlFor“,”class“:”className“,readonly:”readOnly“,maxlength:”maxLength“,cellspacing:”cellSpacing“,rowspan:”rowSpan“, colspan:”colSpan“,tabindex:”tabIndex“,usemap:”useMap“,frameborder:”frameBorder“};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,”“);this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr(”class“)))});if(a&&typeof a===”string“)for(var b=(a||”“).split(ha),d=0,e=this.length;d<e;d++){var f=this;if(f.nodeType=== 1)if(f.className){for(var h=” “f.className” “,l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(” “b[k]” “)<0)l+=” “+b;f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr(”class“)))});if(a&&typeof a===”string“||a===B)for(var b=(a||”“).split(ha),d=0,e=this.length;d<e;d++){var f=this;if(f.nodeType===1&&f.className)if(a){for(var h=(” “f.className” “).replace(sa,” “), l=0,k=b.length;l<k;l++)h=h.replace(” “b[l]” “,” “);f.className=c.trim(h)}else f.className=”“}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b===”boolean“;if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr(”class“),b),b)});return this.each(function(){if(d===”string“)for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o;){k=e?k:!l.hasClass(f);l(f)}else if(d===”undefined“||d===”boolean“){this.className&&c.data(this, ”__className__“,this.className);this.className=this.className||a===false?”“:c.data(this,”__className__“)||”“}})},hasClass:function(a){a=” “a” “;for(var b=0,d=this.length;b<d;b++)if((” “this[b].className” “).replace(sa,” “).indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this;if(b){if(c.nodeName(b,”option“)){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,”select“)){var e=b.selectedIndex;d=[];var f=b.options;b=b.type===”select-one“; if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f;if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute(”disabled“)===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,”optgroup“))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute(”value“)===null?”on“:b.value;return(b.value||”“).replace(Sa,”“)}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= a.call(this,o,x.val());if(r==null)r=”“;else if(typeof r===”number“)r+=”“;else if(c.isArray®)r=c.map(r,function(C){return C==null?”“:C+”“});if(c.isArray®&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,”select“)){var A=c.makeArray®;c(”option“,this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)(d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props||b;var h=Ta.test(b);if((b in a||a!==B)&&e&&!h){if(f){b===”type“&&Ua.test(a.nodeName)&&a.parentNode&&c.error(”type property can't be changed“);if(d===null)a.nodeType===1&&a.removeAttribute(b);else a=d}if(c.nodeName(a,”form“)&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b===”tabIndex“)return(b=a.getAttributeNode(”tabIndex“))&& b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a}if(!c.support.style&&e&&b===”style“){if(f)a.style.cssText=”“+d;return a.style.cssText}f&&a.setAttribute(b,”“+d);if(!a.attributes&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/./g,Ma=/ /g,Xa=//g,Ya=function(a){return a.replace(Xa,”\$&“)},ua={focusin:0,focusout:0}; c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?”events“:”__events__“,k=h,o=h.handle;if(typeof k===”function“){o=k.handle;k=k.events}else if(!k){a.nodeType||(h=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!==”undefined“&&!c.event.triggered?c.event.handle.apply(o.elem, arguments):B};o.elem=a;b=b.split(” “);for(var x=0,r;l=b;){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(”.“)>-1){r=l.split(”.“);l=r.shift();h.namespace=r.slice(0).sort().join(”.“)}else{r=[];h.namespace=”“}h.type=l;if(!h.guid)h.guid=d.guid;var A=k,C=c.event.special||{};if(!A){A=k=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent(”on“+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= d.guid}A.push(h);c.event.global=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?”events“:”__events__“,w=c.data(a),I=w&&w;if(w&&I){if(typeof I===”function“){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b===”string“&&b.charAt(0)===”.“){b=b||”“;for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(” “);f=b;){r=f;k=f.indexOf(”.“)<0;o=[];if(!k){o=f.split(”.“);f=o.shift();x=RegExp(”(^|\.)“+ c.map(o.slice(0).sort(),Ya).join(”\.(?:.*\.)?“)+”(\.|$)“)}if(A=I)if(d){r=c.event.special||{};for(h=e||0;h<A.length;h++){C=A;if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h–,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I}}else for(h=0;h<A.length;h++){C=A;if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h–,1)}}}if(c.isEmptyObject(I)){if(b= w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w===”function“)c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a===”object“?a?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf(”!“)>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global&&c.each(c.cache,function(){this.events&&this.events&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== 8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,”handle“):(c.data(d,”__events__“)||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData))if(d&&d.apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,”“),o=c.nodeName(e,”a“)&&k=== ”click“,x=c.event.special||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData)){try{if(e){if(l=e)e=null;c.event.triggered=true;e()}}catch®{}if(l)e=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(”.“)<0&&!a.exclusive;if(!b){e=a.type.split(”.“);a.type=e.shift();d=e.slice(0).sort();e=RegExp(”(^|\.)“+ d.join(”\.(?:.*\.)?“)+”(\.|$)“)}a.namespace=a.namespace||d.join(”.“);f=c.data(this,this.nodeType?”events“:”__events__“);if(typeof f===”function“)f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d;if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:”altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which“.split(” “), fix:function(a){if(a)return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props;a=b}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent(”on“+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= c.now();this=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:”mouseover“,mouseleave:”mouseout“},function(a,b){c.event.special={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== ”form“){c.event.add(this,”click.specialSubmit“,function(a){var b=a.target,d=b.type;if((d===”submit“||d===”image“)&&c(b).closest(”form“).length){a.liveFired=B;return la(”submit“,this,arguments)}});c.event.add(this,”keypress.specialSubmit“,function(a){var b=a.target,d=b.type;if((d===”text“||d===”password“)&&c(b).closest(”form“).length&&a.keyCode===13){a.liveFired=B;return la(”submit“,this,arguments)}})}else return false},teardown:function(){c.event.remove(this,”.specialSubmit“)}};if(!c.support.changeBubbles){var V, xa=function(a){var b=a.type,d=a.value;if(b===”radio“||b===”checkbox“)d=a.checked;else if(b===”select-multiple“)d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join(”-“):”“;else if(a.nodeName.toLowerCase()===”select“)d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,”_change_data“);f=xa(d);if(a.type!==”focusout“||d.type!==”radio“)c.data(d,”_change_data“,f);if(!(e===B||f===e))if(e!=null||f){a.type=”change“;a.liveFired= B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d===”radio“||d===”checkbox“||b.nodeName.toLowerCase()===”select“)return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!==”textarea“||a.keyCode===32&&(d===”checkbox“||d===”radio“)||d===”select-multiple“)return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,”_change_data“,xa(a))}},setup:function(){if(this.type=== ”file“)return false;for(var a in V)c.event.add(this,a+”.specialChange“,V);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,”.specialChange“);return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:”focusin“,blur:”focusout“},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special={setup:function(){ua++===0&&t.addEventListener(a,d,true)},teardown:function(){–ua=== 0&&t.removeEventListener(a,d,true)}}});c.each(,function(a,b){c.fn=function(d,e,f){if(typeof d===”object“){for(var h in d)this(h,e,d,f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b===”one“?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d===”unload“&&b!==”one“)this.one(d,e,f);else{h=0;for(var k=this.length;h,d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a===”object“&&!a.preventDefault)for(var d in a)this.unbind(d, a);else{d=0;for(var e=this.length;d,a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind(”live“):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this);return d.result}},toggle:function(a){for(var b=arguments,d= 1;d);return this.click(c.proxy(a,function(e){var f=(c.data(this,”lastToggle“+a.guid)||0)%d;c.data(this,”lastToggle“+a.guid,f+1);e.preventDefault();return b.apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:”focusin“,blur:”focusout“,mouseenter:”mouseover“,mouseleave:”mouseout“};c.each(,function(a,b){c.fn=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== ”object“&&!d.preventDefault){for(l in d)h(l,e,d,r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||”“).split(” “);(l=d)!=null;){o=X.exec(l);x=”“;if(o){x=o;l=l.replace(X,”“)}if(l===”hover“)d.push(”mouseenter“+x,”mouseleave“+x);else{o=l;if(l===”focus“||l===”blur“){d.push(ya+x);l+=x}else l=(ya||l)+x;if(b===”live“){x=0;for(var A=h.length;x,”live.“+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind(”live.“+Y(l,r),f)}}return this}}); c.each(”blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error“.split(” “),function(a,b){c.fn=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn=true});E.attachEvent&&!E.addEventListener&&c(E).bind(”unload“,function(){for(var a in c.cache)if(c.cache.handle)try{c.event.remove(c.cache.handle.elem)}catch(b){}}); (function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m;if(y){var F=false;for(y=y;y;){if(y.sizcache===n){F=m;break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y}m=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m;if(y){var F=false;for(y=y;y;){if(y.sizcache===n){F=m;break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!==”string“){if(y===i){F=true;break}}else if(k.filter(i, [y]).length>0){F=y;break}}y=y}m=F}}}var d=/((?:((?:(+)|[^()]+)+)|[(?:[[^[]]*]|['”][^'“]*['”]|[^[]'“]+)+]|\.|[^ >+~,([\]+)+|[>+~])(s*,s*)?((?:.|r|n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!==”string“)return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec(”“);if(q=d.exec(R)){R=q;D.push(q);if(q){F=q; break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D])u=L(D+D,i);else for(u=o.relative[D]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative)g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D)&&!o.match.ID.test(D)){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set):q.set}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D===”~“||D===”+“)&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative)q=D.pop();else M=”“;if(q==null)q=i;o.relative(y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)===”[object Array]“)if(N)if(i&&i.nodeType===1)for(g=0;y!=null;g++){if(y&&(y===true||y.nodeType===1&&k.contains(i,y)))n.push(u)}else for(g=0;y!=null;g++)y&&y.nodeType===1&&n.push(u);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= l;g.sort(w);if(h)for(var i=1;i===g&&g.splice(i–,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order;if(u=o.leftMatch.exec(g)){var F=u;u.splice(1,1);if(F.substr(F.length-1)!==”\“){u=(u||”“).replace(/\/g,”“);m=o.find(u,i,n);if(m!=null){g=g.replace(o.match,”“);break}}}}m||(m=i.getElementsByTagName(”*“)); return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i&&k.isXML(i);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch.exec(g))!=null&&p){var O,D,R=o.filter;D=p;q=false;p.splice(1,1);if(D.substr(D.length-1)!==”\“){if(F===y)y=[];if(o.preFilter)if(p=o.preFilter(p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F)!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F=false;else if(s){y.push(D);q=true}}if(O!== B){n||(F=y);g=g.replace(o.match,”“);if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw”Syntax error, unrecognized expression: “+g;};var o=k.selectors={order:,match:{ID:/#((?:|\.)+)/,CLASS:/.((?:|\.)+)/,NAME:/[name=*((?:[wu00c0-uFFFF-]|\.)+)*]/,ATTR:/[s*((?:|\.)+)s*(?:(S?=)s*([’“]*)(.*?)3|)s*]/,TAG:/^((?:[wu00c0-uFFFF*-]|\.)+)/,CHILD:/:(only|nth|last|first)-child(?:((even|odd|*)))?/, POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:((d*)))?(?=|$)/,PSEUDO:/:((?:|\.)+)(?:((['”]?)((?:([^)]+)|[^()]*)+)2))?/},leftMatch:{},attrMap:{“class”:“className”,“for”:“htmlFor”},attrHandle:{href:function(g){return g.getAttribute(“href”)}},relative:{“+”:function(g,i){var n=typeof i===“string”,m=n&&!/W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m){for(;(q=q.previousSibling)&&q.nodeType!==1;);g=n||q&&q.nodeName.toLowerCase()=== i?q||false:q===i}n&&k.filter(i,g,true)},“>”:function(g,i){var n,m=typeof i===“string”,p=0,q=g.length;if(m&&!/W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g){n=n.parentNode;g=n.nodeName.toLowerCase()===i?n:false}}else{for(;p)g=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},“”:function(g,i,n){var m,p=e++,q=b;if(typeof i===“string”&&!/W/.test(i)){m=i=i.toLowerCase();q=a}q(“parentNode”,i,p,g,m,n)},“~”:function(g,i,n){var m,p=e++,q=b;if(typeof i===“string”&&!/W/.test(i)){m= i=i.toLowerCase();q=a}q(“previousSibling”,i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!==“undefined”&&!n)return(g=i.getElementById(g))&&g.parentNode?:[]},NAME:function(g,i){if(typeof i.getElementsByName!==“undefined”){for(var n=[],m=i.getElementsByName(g),p=0,q=m.length;p.getAttribute(“name”)===g&&n.push(m);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g)}},preFilter:{CLASS:function(g,i,n,m,p,q){g=“ ”+g.replace(/\/g, “”)+“ ”;if(q)return g;q=0;for(var u;(u=i)!=null;q++)if(u)if(p^(u.className&&(“ ”u.className“ ”).replace(//g,“ ”).indexOf(g)>=0))n||m.push(u);else if(n)i=false;return false},ID:function(g){return g.replace(/\/g,“”)},TAG:function(g){return g.toLowerCase()},CHILD:function(g){if(g===“nth”){var i=/(-?)(d*)n((?:+|-)?d*)/.exec(g===“even”&&“2n”||g===“odd”&&“2n+1”||!/D/.test(g)&&“0n+”+g||g);g=i+(i||1)-0;g=i-0}g=e++;return g},ATTR:function(g,i,n, m,p,q){i=g.replace(/\/g,“”);if(!q&&o.attrMap)g=o.attrMap;if(g===“~=”)g=“ ”g[4]“ ”;return g},PSEUDO:function(g,i,n,m,p){if(g===“not”)if((d.exec(g)||“”).length>1||/^w/.test(g))g=k(g,null,null,i);else{g=k.filter(g,i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g)||o.match.CHILD.test(g))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!==“hidden”},disabled:function(g){return g.disabled=== true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n,g).length},header:function(g){return/hd/i.test(g.nodeName)},text:function(g){return“text”===g.type},radio:function(g){return“radio”===g.type},checkbox:function(g){return“checkbox”===g.type},file:function(g){return“file”===g.type},password:function(g){return“password”===g.type},submit:function(g){return“submit”=== g.type},image:function(g){return“image”===g.type},reset:function(g){return“reset”===g.type},button:function(g){return“button”===g.type||g.nodeName.toLowerCase()===“button”},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i-0},gt:function(g,i,n){return i>n-0},nth:function(g,i,n){return n- 0===i},eq:function(g,i,n){return n-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i,q=o.filters;if(q)return q(g,n,i,m);else if(p===“contains”)return(g.textContent||g.innerText||k.getText()||“”).indexOf(i)>=0;else if(p===“not”){i=i;n=0;for(m=i.length;n===g)return false;return true}else k.error(“Syntax error, unrecognized expression: ”+p)},CHILD:function(g,i){var n=i,m=g;switch(n){case “only”:case “first”:for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== “first”)return true;m=g;case “last”:for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case “nth”:n=i;var p=i;if(n===1&&p===0)return true;var q=i,u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute(“id”)===i},TAG:function(g,i){return i===“*”&&g.nodeType===1||g.nodeName.toLowerCase()=== i},CLASS:function(g,i){return(“ ”+(g.className||g.getAttribute(“class”))+“ ”).indexOf(i)>-1},ATTR:function(g,i){var n=i;n=o.attrHandle?o.attrHandle(g):g!=null?g:g.getAttribute(n);var m=n+“”,p=i,q=i;return n==null?p===“!=”:p===“=”?m===q:p===“*=”?m.indexOf(q)>=0:p===“~=”?(“ ”m“ ”).indexOf(q)>=0:!q?m&&n!==false:p===“!=”?m!==q:p===“^=”?m.indexOf(q)===0:p===“$=”?m.substr(m.length-q.length)===q:p===“|=”?m===q||m.substr(0,q.length+1)===q+“-”:false},POS:function(g,i,n,m){var p=o.setFilters[i]; if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return“\”+(i-0+1)},A;for(A in o.match){o.match=RegExp(o.match.source+/(?![^*])(?![^(]*))/.source);o.leftMatch[A]=RegExp(/(^(?:.|r|n)*?)/.source+o.match.source.replace(/\(d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)===“[object Array]”)Array.prototype.push.apply(m, g);else if(typeof g.length===“number”)for(var p=g.length;n);else for(;g;n++)m.push(g);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=;n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u!==q)return I(p,q);return u===n?I(g,q,-1):I(p,i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i=“”,n,m=0;g;m++){n=g;if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement(“div”), i=“script”+(new Date).getTime(),n=t.documentElement;g.innerHTML=“<a name='”i“'/>”;n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!==“undefined”&&!q)return(p=p.getElementById(m))?p.id===m||typeof p.getAttributeNode!==“undefined”&&p.getAttributeNode(“id”).nodeValue===m?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!==“undefined”&&m.getAttributeNode(“id”);return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); n=g=null})();(function(){var g=t.createElement(“div”);g.appendChild(t.createComment(“”));if(g.getElementsByTagName(“*”).length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i);if(i===“*”){for(var p=[],q=0;m;q++)m.nodeType===1&&p.push(m);m=p}return m};g.innerHTML=“<a href='#'></a>”;if(g.firstChild&&typeof g.firstChild.getAttribute!==“undefined”&&g.firstChild.getAttribute(“href”)!==“#”)o.attrHandle.href=function(i){return i.getAttribute(“href”,2)};g=null})();t.querySelectorAll&& function(){var g=k,i=t.createElement(“div”);i.innerHTML=“<p class='TEST'></p>”;if(!(i.querySelectorAll&&i.querySelectorAll(“.TEST”).length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/=s*(]*)s*]/g,“='$1']”);if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!==“object”){var F=p.getAttribute(“id”),M=F||“__sizzle__”;F||p.setAttribute(“id”,M);try{return C(p.querySelectorAll(“#”M“ ”+m),q)}catch(N){}finally{F|| p.removeAttribute(“id”)}}return g(m,p,q,u)};for(var n in g)k=g;i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,“:sizzle”)}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/=s*(]*)s*]/g,“='$1']”);if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,).length>0}})();(function(){var g= t.createElement(“div”);g.innerHTML=“<div class='test e'></div><div class='test'></div>”;if(!(!g.getElementsByClassName||g.getElementsByClassName(“e”).length===0)){g.lastChild.className=“e”;if(g.getElementsByClassName(“e”).length!==1){o.order.splice(1,0,“CLASS”);o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!==“undefined”&&!m)return n.getElementsByClassName(i)};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!==“HTML”:false};var L=function(g,i){for(var n,m=[],p=“”,q=i.nodeType?:i;n=o.match.PSEUDO.exec(g);){p+=n;g=g.replace(o.match.PSEUDO,“”)}g=o.relative?g+“*”:g;n=0;for(var u=q.length;n,m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack(“”,“find”,a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this,b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l===b){b.splice(h–,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d))return true})}, not:function(a){return this.pushStack(ma(this,a,false),“not”,a)},filter:function(a){return this.pushStack(ma(this,a,true),“filter”,a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this;if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a;k||(k=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k;if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e;h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,“closest”,a)},index:function(a){if(!a||typeof a===“string”)return c.inArray(this,a?c(a):this.parent().children());return c.inArray(a.jquery?a:a,this)},add:function(a,b){var d=typeof a===“string”?c(a,b||this.context): c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d||!d.parentNode||d.parentNode.nodeType===11||!e||!e.parentNode||e.parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,“parentNode”)},parentsUntil:function(a,b,d){return c.dir(a,“parentNode”,d)},next:function(a){return c.nth(a,2,“nextSibling”)},prev:function(a){return c.nth(a, 2,“previousSibling”)},nextAll:function(a){return c.dir(a,“nextSibling”)},prevAll:function(a){return c.dir(a,“previousSibling”)},nextUntil:function(a,b,d){return c.dir(a,“nextSibling”,d)},prevUntil:function(a,b,d){return c.dir(a,“previousSibling”,d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,“iframe”)?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, b){c.fn=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e===“string”)f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(“,”))}});c.extend({filter:function(a,b,d){if(d)a=“:not(”a“)”;return b.length===1?c.find.matchesSelector(b,a)?[b]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a;a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& e.push(a);a=a}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a)if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQueryd+=“(?:d+|null)”/g,$=/^s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)((+)[^>]*)/>/ig,Ba=/<(+)/,db=/|=s“>s*.checked.)/i,fb=/=(+/)>/g,P={option:[1, ”<select “,”“”>multiple=’multiple’>“,”“],legend:,”,“”“>thead:,”,“”“>tr:,”,“”“>td:,”,“”“>col:,”,“”“>area:,_default:};”,“”“>P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=;c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= c(this);d.text(a.call(this,b,d.text()))});if(typeof a!==”object“&&a!==B)return this.empty().append((this&&this.ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this){var b=c(a,this.ownerDocument).eq(0).clone(true);this.parentNode&&b.insertBefore(this);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,”body“)||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this&&this.parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,”before“,arguments)}},after:function(){if(this&&this.parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,”after“,arguments);a.push.apply(a,c(arguments).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this)!=null;d++)if(!a||c.filter(a,).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName(”*“));c.cleanData()}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this)!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName(”*“));b.firstChild;)b.removeChild(b.firstChild); return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement(”div“);d.appendChild(this.cloneNode(true));d=d.innerHTML}return ‘).replace($,”“)”>c.clean(,e)}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find(“*”),b.find(“*”))}return b},html:function(a){if(a===B)return this&&this.nodeType===1?this.innerHTML.replace(za,“”):null; else if(typeof a===“string”&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||)[1].toLowerCase()]){a=a.replace(Aa,“<$1></$2>”);try{for(var b=0,d=this.length;b.nodeType===1){c.cleanData(this.getElementsByTagName(“*”));this.innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this&&this.parentNode){if(c.isFunction(a))return this.each(function(b){var d= c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!==“string”)a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),“replaceWith”,a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a,k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l===“string”&&Da.test(l))return this.each(function(){c(this).domManip(a, b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,“tr”);f=0;for(var o=this.length;f,“table”)?this.getElementsByTagName(“tbody”)||this.appendChild(this.ownerDocument.createElement(“tbody”)): this:this,f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b?b.ownerDocument||b:t;if(a.length===1&&typeof a===“string”&&a.length<512&&b===t&&!Ca.test(a)&&(c.support.checkClone||!Da.test(a))){f=true;if(h=c.fragments[a])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:“append”, prependTo:“prepend”,insertBefore:“before”,insertAfter:“after”,replaceAll:“replaceWith”},function(a,b){c.fn=function(d){var e=[];d=c(d);var f=this.length===1&&this.parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d(this);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d)[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement===“undefined”)b=b.ownerDocument|| b&&b.ownerDocument||t;for(var f=[],h=0,l;(l=a)!=null;h++){if(typeof l===“number”)l+=“”;if(l){if(typeof l===“string”&&!eb.test(l))l=b.createTextNode(l);else if(typeof l===“string”){l=l.replace(Aa,“<$1></$2>”);var k=(Ba.exec(l)||)[1].toLowerCase(),o=P||P._default,x=o,r=b.createElement(“div”);for(r.innerHTML=o+l+o;x–;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k===“table”&&!x?r.firstChild&&r.firstChild.childNodes:o===“<table>”&&!x?r.childNodes:[];for(o=k.length- 1;o>=0;–o)c.nodeName(k,“tbody”)&&!k.childNodes.length&&k.parentNode.removeChild(k)}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f;h++)if(e&&c.nodeName(f,“script”)&&(!f.type||f.type.toLowerCase()===“text/javascript”))e.push(f.parentNode?f.parentNode.removeChild(f):f);else{f.nodeType===1&&f.splice.apply(f,.concat(c.makeArray(f.getElementsByTagName(“script”)))); d.appendChild(f)}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a)!=null;l++)if(!(k.nodeName&&c.noData))if(d=k){if((b=e)&&b.events)for(var o in b.events)f?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k;else k.removeAttribute&&k.removeAttribute(c.expando);delete e}}});var Ea=/alpha(*)/i,gb=/opacity=(*)/,hb=/-()/ig,ib=/()/g,Fa=/^-?d+(?:px)?$/i, jb=/^-?d/,kb={position:“absolute”,visibility:“hidden”,display:“block”},Pa=,Qa=,W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,“opacity”,“opacity”);return d===“”?“1”:d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, zoom:true,lineHeight:true},cssProps:{“float”:c.support.cssFloat?“cssFloat”:“styleFloat”},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks;b=c.cssProps||h;if(d!==B){if(!(typeof d===“number”&&isNaN(d)||d==null)){if(typeof d===“number”&&!c.cssNumber)d+=“px”;if(!k||!(“set”in k)||(d=k.set(a,d))!==B)try{l=d}catch(o){}}}else{if(k&&“get”in k&&(f=k.get(a,false,e))!==B)return f;return l}}},css:function(a,b,d){var e,f=c.camelCase(b), h=c.cssHooks;b=c.cssProps||f;if(h&&“get”in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e=a.style;a.style=b}d.call(a);for(f in b)a.style=e},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(,function(a,b){c.cssHooks={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h===“0px”&&aa)h=aa(d,b,b); if(h!=null)return h===“”||h===“auto”?“0px”:h}if(h<0||h==null){h=d.style;return h===“”||h===“auto”?“0px”:h}return typeof h===“string”?h:h+“px”}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+“px”}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||“”)?parseFloat(RegExp.$1)/100+“”:b?“1”:“”},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?“”:“alpha(opacity=”+b*100+“)”,f= d.filter||“”;d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+“ ”+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,“-$1”).toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===“”&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle,h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b===“fontSize”?“1em”:f||0;f=h.pixelLeft+“px”;h.left=d;a.runtimeStyle.left=e}return f===“”?“auto”:f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,“display”))===“none”};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/*(?:(?!</script>)<*)*</script>/gi, ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/$/,T=/=?(&|$)/,ja=/?/,rb=/()_=*/,sb=/^(w+:)?//(+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==“string”&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(“ ”);if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e=“GET”;if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== “object”){b=c.param(b,c.ajaxSettings.traditional);e=“POST”}var h=this;c.ajax({url:a,type:e,dataType:“html”,data:b,complete:function(l,k){if(k===“success”||k===“notmodified”)h.html(f?c(“

”).append(l.responseText.replace(nb,“”)).find(f):l.responseText);d&&h.each(d,)}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& !this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each(“ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend”.split(“ ”),function(a,b){c.fn=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:“GET”,url:a,data:b,success:d,dataType:e})}, getScript:function(a,b){return c.get(a,null,b,“script”)},getJSON:function(a,b,d){return c.get(a,b,d,“json”)},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:“POST”,url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:“GET”,contentType:“application/x-www-form-urlencoded”,processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:“application/xml, text/xml”,html:“text/html”, script:“text/javascript, application/javascript”,json:“application/json, text/javascript”,text:“text/plain”,_default:“/”}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,“”);b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!==“string”)b.data=c.param(b.data,b.traditional);if(b.dataType===“jsonp”){if(h===“GET”)T.test(b.url)||(b.url+=(ja.test(b.url)?“&”:“?”)+(b.jsonp||“callback”)+“=?”);else if(!b.data|| !T.test(b.data))b.data=(b.data?b.data+“&”:“”)+(b.jsonp||“callback”)+“=?”;b.dataType=“json”}if(b.dataType===“json”&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||“jsonp”mb+;if(b.data)b.data=(b.data+“”).replace(T,“=”d“$1”);b.url=b.url.replace(T,“=”d“$1”);b.dataType=“script”;var k=E;E=function(m){if(c.isFunction(k))k(m);else{E=B;try{delete E}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType===“script”&&b.cache===null)b.cache= false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,“$1_=”+o);b.url=x+(x===b.url?(ja.test(b.url)?“&”:“?”)+“_=”+o:“”)}if(b.data&&l)b.url+=(ja.test(b.url)?“&”:“?”)+b.data;b.global&&c.active++===0&&c.event.trigger(“ajaxStart”);o=(o=sb.exec(b.url))&&(o&&o.toLowerCase()!==location.protocol||o.toLowerCase()!==location.host);if(b.dataType===“script”&&h===“GET”&&o){var r=t.getElementsByTagName(“head”)||t.documentElement,A=t.createElement(“script”);if(b.scriptCharset)A.charset=b.scriptCharset; A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState===“loaded”||this.readyState===“complete”)){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader(“Content-Type”, b.contentType);if(b.ifModified){c.lastModified&&w.setRequestHeader(“If-Modified-Since”,c.lastModified);c.etag&&w.setRequestHeader(“If-None-Match”,c.etag)}o||w.setRequestHeader(“X-Requested-With”,“XMLHttpRequest”);w.setRequestHeader(“Accept”,b.dataType&&b.accepts?b.accepts+“, /; q=0.01”:b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active–===1&&c.event.trigger(“ajaxStop”);w.abort();return false}b.global&& c.triggerGlobal(b,“ajaxSend”,);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m===“abort”){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m===“timeout”)){J=true;w.onreadystatechange=c.noop;e=m===“timeout”?“timeout”:!c.httpSuccess(w)?“error”:b.ifModified&&c.httpNotModified(w,b.url)?“notmodified”:“success”;var p;if(e===“success”)try{f=c.httpData(w,b.dataType,b)}catch(q){e=“parsererror”;p=q}if(e===“success”||e===“notmodified”)d|| c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m===“timeout”&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L(“abort”)}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L(“timeout”)},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d= encodeURIComponent(h)+“=”+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a,b,e);return d.join(“&”).replace(tb,“+”)}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,“ajaxError”,)},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,“ajaxSuccess”, [b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,“ajaxComplete”,);a.global&&c.active–===1&&c.event.trigger(“ajaxStop”)},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol===“file:”||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader(“Last-Modified”), e=a.getResponseHeader(“Etag”);if(d)c.lastModified=d;if(e)c.etag=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader(“content-type”)||“”,f=b===“xml”||!b&&e.indexOf(“xml”)>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName===“parsererror”&&c.error(“parsererror”);if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a===“string”)if(b===“json”||!b&&e.indexOf(“json”)>=0)a=c.parseJSON(a);else if(b===“script”||!b&&e.indexOf(“javascript”)>=0)c.globalEval(a);return a}}); if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!==“file:”)try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject(“Microsoft.XMLHTTP”)}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^(=)?([d+.-]+)(.*)$/,ba,pa=[,[“width”,“marginLeft”,“marginRight”,“paddingLeft”,“paddingRight”],];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S(“show”, 3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this;b=a.style.display;if(!c.data(a,“olddisplay”)&&b===“none”)b=a.style.display=“”;b===“”&&c.css(a,“display”)===“none”&&c.data(a,“olddisplay”,qa(a.nodeName))}for(d=0;d<e;d++){a=this;b=a.style.display;if(b===“”||b===“none”)a.style.display=c.data(a,“olddisplay”)||“”}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S(“hide”,3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this,“display”);d!==“none”&&c.data(this,“olddisplay”, d)}for(a=0;a.style.display=“none”;return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a===“boolean”;if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(“:hidden”);c(this)()}):this.animate(S(“toggle”,3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(“:hidden”).css(“opacity”,0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this(function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(“:hidden”),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a=a;delete a;l=r}if(a===“hide”&&o||a===“show”&&!o)return h.complete.call(this);if(k&&(l===“height”||l===“width”)){h.overflow=;if(c.css(this,“display”)===“inline”&&c.css(this,“float”)===“none”)if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== “inline”)this.style.display=“inline-block”;else{this.style.display=“inline”;this.style.zoom=1}else this.style.display=“inline-block”}if(c.isArray(a)){(h.specialEasing=h.specialEasing||{})[l]=a[1];a=a[0]}}if(h.overflow!=null)this.style.overflow=“hidden”;h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J(a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w),g=w||“px”;if(g!==“px”){c.style(x,A,(L||1)+g);I=(L|| 1)/J.cur()*I;c.style(x,A,I+g)}if(w)L=(w===“-=”?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,“”)}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e–)if(d.elem===this){b&&d(true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S(“show”,1),slideUp:S(“hide”,1),slideToggle:S(“toggle”,1),fadeIn:{opacity:“show”},fadeOut:{opacity:“hide”},fadeToggle:{opacity:“toggle”}},function(a,b){c.fn=function(d,e,f){return this.animate(b, d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a===“object”?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration===“number”?e.duration:e.duration in c.fx.speeds?c.fx.speeds:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step||c.fx.step._default)(this)},cur:function(){if(this.elem!=null&&(!this.elem.style||this.elem.style==null))return this.elem;var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||“px”;this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===“width”||this.prop===“height”?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig=c.style(this.elem,this.prop);this.options.hide=true; this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim=true;for(var e in this.options.curAnim)if(this.options.curAnim!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(,function(k,o){f.style=h.overflow})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?“swing”:“linear”);this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= c.timers,b=0;b()||a.splice(b–,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,“opacity”,a.now)},_default:function(a){if(a.elem.style&&a.elem.style!=null)a.elem.style=(a.prop===“width”||a.prop===“height”?Math.max(0,a.now):a.now)+a.unit;else a.elem=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset=“getBoundingClientRect”in t.documentElement?function(a){var b=this,d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this;if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position===“fixed”)break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!==“visible”){k+= parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position===“relative”||d.position===“static”){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position===“fixed”){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement(“div”),d,e,f,h=parseFloat(c.css(a,“marginTop”))||0;c.extend(b.style,{position:“absolute”,top:0,left:0,margin:0,border:0,width:“1px”, height:“1px”,visibility:“hidden”});b.innerHTML=“<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>”;a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= f.offsetTop===5;e.style.position=“fixed”;e.style.top=“20px”;this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top=“”;d.style.overflow=“hidden”;d.style.position=“relative”;this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, “marginTop”))||0;d+=parseFloat(c.css(a,“marginLeft”))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,“position”);if(e===“static”)a.style.position=“relative”;var f=c(a),h=f.offset(),l=c.css(a,“top”),k=c.css(a,“left”),o=e===“absolute”&&c.inArray(“auto”,)>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;“using”in b?b.using.call(a, e):f.css(e)}};c.fn.extend({position:function(){if(!this)return null;var a=this,b=this.offsetParent(),d=this.offset(),e=Ia.test(b.nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,“marginTop”))||0;d.left-=parseFloat(c.css(a,“marginLeft”))||0;e.top+=parseFloat(c.css(b,“borderTopWidth”))||0;e.left+=parseFloat(c.css(b,“borderLeftWidth”))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& c.css(a,“position”)===“static”;)a=a.offsetParent;return a})}});c.each(,function(a,b){var d=“scroll”+b;c.fn=function(e){var f=this,h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this=e});else return(h=fa(f))?“pageXOffset”in h?h:c.support.boxModel&&h.document.documentElement||h.document.body:f}});c.each(,function(a,b){var d=b.toLowerCase(); c.fn=function(){return this?parseFloat(c.css(this,d,“padding”)):null};c.fn=function(e){return this?parseFloat(c.css(this,d,e?“margin”:“border”)):null};c.fn=function(e){var f=this;if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k(e.call(this,l,k()))});if(c.isWindow(f))return f.document.compatMode===“CSS1Compat”&&f.document.documentElement||f.document.body;else if(f.nodeType===9)return Math.max(f.documentElement[“client”+ b],f.body,f.documentElement,f.body,f.documentElement);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e===“string”?e:e+“px”)}})})(window);

/*

* jQuery validation plug-in 1.6
*
* http://bassistance.de/jquery-plugins/jquery-plugin-validation/
* http://docs.jquery.com/Plugins/Validation
*
* Copyright (c) 2006 - 2008 Jörn Zaefferer
*
* $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

(function($) {

$.extend($.fn, {

// http://docs.jquery.com/Plugins/Validation/validate
validate: function( options ) {

  // if nothing is selected, return nothing; can't chain anyway
  if (!this.length) {
    options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" );
    return;
  }

  // check if a validator for this form was already created
  var validator = $.data(this[0], 'validator');
  if ( validator ) {
    return validator;
  }

  validator = new $.validator( options, this[0] );
  $.data(this[0], 'validator', validator);

  if ( validator.settings.onsubmit ) {

    // allow suppresing validation by adding a cancel class to the submit button
    this.find("input, button").filter(".cancel").click(function() {
      validator.cancelSubmit = true;
    });

    // when a submitHandler is used, capture the submitting button
    if (validator.settings.submitHandler) {
      this.find("input, button").filter(":submit").click(function() {
        validator.submitButton = this;
      });
    }

    // validate the form on submit
    this.submit( function( event ) {
      if ( validator.settings.debug )
        // prevent form submit to be able to see console output
        event.preventDefault();

      function handle() {
        if ( validator.settings.submitHandler ) {
          if (validator.submitButton) {
            // insert a hidden input as a replacement for the missing submit button
            var hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);
          }
          validator.settings.submitHandler.call( validator, validator.currentForm );
          if (validator.submitButton) {
            // and clean up afterwards; thanks to no-block-scope, hidden can be referenced
            hidden.remove();
          }
          return false;
        }
        return true;
      }

      // prevent submit for invalid forms or custom submit handlers
      if ( validator.cancelSubmit ) {
        validator.cancelSubmit = false;
        return handle();
      }
      if ( validator.form() ) {
        if ( validator.pendingRequest ) {
          validator.formSubmitted = true;
          return false;
        }
        return handle();
      } else {
        validator.focusInvalid();
        return false;
      }
    });
  }

  return validator;
},
// http://docs.jquery.com/Plugins/Validation/valid
valid: function() {
      if ( $(this[0]).is('form')) {
          return this.validate().form();
      } else {
          var valid = true;
          var validator = $(this[0].form).validate();
          this.each(function() {
      valid &= validator.element(this);
          });
          return valid;
      }
  },
// attributes: space seperated list of attributes to retrieve and remove
removeAttrs: function(attributes) {
  var result = {},
    $element = this;
  $.each(attributes.split(/\s/), function(index, value) {
    result[value] = $element.attr(value);
    $element.removeAttr(value);
  });
  return result;
},
// http://docs.jquery.com/Plugins/Validation/rules
rules: function(command, argument) {
  var element = this[0];

  if (command) {
    var settings = $.data(element.form, 'validator').settings;
    var staticRules = settings.rules;
    var existingRules = $.validator.staticRules(element);
    switch(command) {
    case "add":
      $.extend(existingRules, $.validator.normalizeRule(argument));
      staticRules[element.name] = existingRules;
      if (argument.messages)
        settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages );
      break;
    case "remove":
      if (!argument) {
        delete staticRules[element.name];
        return existingRules;
      }
      var filtered = {};
      $.each(argument.split(/\s/), function(index, method) {
        filtered[method] = existingRules[method];
        delete existingRules[method];
      });
      return filtered;
    }
  }

  var data = $.validator.normalizeRules(
  $.extend(
    {},
    $.validator.metadataRules(element),
    $.validator.classRules(element),
    $.validator.attributeRules(element),
    $.validator.staticRules(element)
  ), element);

  // make sure required is at front
  if (data.required) {
    var param = data.required;
    delete data.required;
    data = $.extend({required: param}, data);
  }

  return data;
}

});

// Custom selectors $.extend($.expr, {

// http://docs.jquery.com/Plugins/Validation/blank
blank: function(a) {return !$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/filled
filled: function(a) {return !!$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/unchecked
unchecked: function(a) {return !a.checked;}

});

// constructor for validator $.validator = function( options, form ) {

this.settings = $.extend( {}, $.validator.defaults, options );
this.currentForm = form;
this.init();

};

$.validator.format = function(source, params) {

if ( arguments.length == 1 )
  return function() {
    var args = $.makeArray(arguments);
    args.unshift(source);
    return $.validator.format.apply( this, args );
  };
if ( arguments.length > 2 && params.constructor != Array  ) {
  params = $.makeArray(arguments).slice(1);
}
if ( params.constructor != Array ) {
  params = [ params ];
}
$.each(params, function(i, n) {
  source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
});
return source;

};

$.extend($.validator, {

defaults: {
  messages: {},
  groups: {},
  rules: {},
  errorClass: "error",
  validClass: "valid",
  errorElement: "label",
  focusInvalid: true,
  errorContainer: $( [] ),
  errorLabelContainer: $( [] ),
  onsubmit: true,
  ignore: [],
  ignoreTitle: false,
  onfocusin: function(element) {
    this.lastActive = element;

    // hide error label and remove error class on focus if enabled
    if ( this.settings.focusCleanup && !this.blockFocusCleanup ) {
      this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
      this.errorsFor(element).hide();
    }
  },
  onfocusout: function(element) {
    if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) {
      this.element(element);
    }
  },
  onkeyup: function(element) {
    if ( element.name in this.submitted || element == this.lastElement ) {
      this.element(element);
    }
  },
  onclick: function(element) {
    // click on selects, radiobuttons and checkboxes
    if ( element.name in this.submitted )
      this.element(element);
    // or option elements, check parent select in that case
    else if (element.parentNode.name in this.submitted)
      this.element(element.parentNode)
  },
  highlight: function( element, errorClass, validClass ) {
    $(element).addClass(errorClass).removeClass(validClass);
  },
  unhighlight: function( element, errorClass, validClass ) {
    $(element).removeClass(errorClass).addClass(validClass);
  }
},

// http://docs.jquery.com/Plugins/Validation/Validator/setDefaults
setDefaults: function(settings) {
  $.extend( $.validator.defaults, settings );
},

messages: {
  required: "This field is required.",
  remote: "Please fix this field.",
  email: "Please enter a valid email address.",
  url: "Please enter a valid URL.",
  date: "Please enter a valid date.",
  dateISO: "Please enter a valid date (ISO).",
  number: "Please enter a valid number.",
  digits: "Please enter only digits.",
  creditcard: "Please enter a valid credit card number.",
  equalTo: "Please enter the same value again.",
  accept: "Please enter a value with a valid extension.",
  maxlength: $.validator.format("Please enter no more than {0} characters."),
  minlength: $.validator.format("Please enter at least {0} characters."),
  rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
  range: $.validator.format("Please enter a value between {0} and {1}."),
  max: $.validator.format("Please enter a value less than or equal to {0}."),
  min: $.validator.format("Please enter a value greater than or equal to {0}.")
},

autoCreateRanges: false,

prototype: {

  init: function() {
    this.labelContainer = $(this.settings.errorLabelContainer);
    this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
    this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer );
    this.submitted = {};
    this.valueCache = {};
    this.pendingRequest = 0;
    this.pending = {};
    this.invalid = {};
    this.reset();

    var groups = (this.groups = {});
    $.each(this.settings.groups, function(key, value) {
      $.each(value.split(/\s/), function(index, name) {
        groups[name] = key;
      });
    });
    var rules = this.settings.rules;
    $.each(rules, function(key, value) {
      rules[key] = $.validator.normalizeRule(value);
    });

    function delegate(event) {
      var validator = $.data(this[0].form, "validator");
      validator.settings["on" + event.type] && validator.settings["on" + event.type].call(validator, this[0] );
    }
    $(this.currentForm)
      .delegate("focusin focusout keyup", ":text, :password, :file, select, textarea", delegate)
      .delegate("click", ":radio, :checkbox, select, option", delegate);

    if (this.settings.invalidHandler)
      $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
  },

  // http://docs.jquery.com/Plugins/Validation/Validator/form
  form: function() {
    this.checkForm();
    $.extend(this.submitted, this.errorMap);
    this.invalid = $.extend({}, this.errorMap);
    if (!this.valid())
      $(this.currentForm).triggerHandler("invalid-form", [this]);
    this.showErrors();
    return this.valid();
  },

  checkForm: function() {
    this.prepareForm();
    for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
      this.check( elements[i] );
    }
    return this.valid();
  },

  // http://docs.jquery.com/Plugins/Validation/Validator/element
  element: function( element ) {
    element = this.clean( element );
    this.lastElement = element;
    this.prepareElement( element );
    this.currentElements = $(element);
    var result = this.check( element );
    if ( result ) {
      delete this.invalid[element.name];
    } else {
      this.invalid[element.name] = true;
    }
    if ( !this.numberOfInvalids() ) {
      // Hide error containers on last error
      this.toHide = this.toHide.add( this.containers );
    }
    this.showErrors();
    return result;
  },

  // http://docs.jquery.com/Plugins/Validation/Validator/showErrors
  showErrors: function(errors) {
    if(errors) {
      // add items to error list and map
      $.extend( this.errorMap, errors );
      this.errorList = [];
      for ( var name in errors ) {
        this.errorList.push({
          message: errors[name],
          element: this.findByName(name)[0]
        });
      }
      // remove items from success list
      this.successList = $.grep( this.successList, function(element) {
        return !(element.name in errors);
      });
    }
    this.settings.showErrors
      ? this.settings.showErrors.call( this, this.errorMap, this.errorList )
      : this.defaultShowErrors();
  },

  // http://docs.jquery.com/Plugins/Validation/Validator/resetForm
  resetForm: function() {
    if ( $.fn.resetForm )
      $( this.currentForm ).resetForm();
    this.submitted = {};
    this.prepareForm();
    this.hideErrors();
    this.elements().removeClass( this.settings.errorClass );
  },

  numberOfInvalids: function() {
    return this.objectLength(this.invalid);
  },

  objectLength: function( obj ) {
    var count = 0;
    for ( var i in obj )
      count++;
    return count;
  },

  hideErrors: function() {
    this.addWrapper( this.toHide ).hide();
  },

  valid: function() {
    return this.size() == 0;
  },

  size: function() {
    return this.errorList.length;
  },

  focusInvalid: function() {
    if( this.settings.focusInvalid ) {
      try {
                  var elems = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
                  if ($.browser.msie)
          elems.focusout();
      } catch(e) {
        // ignore IE throwing errors when focusing hidden elements
      }
    }
  },

  findLastActive: function() {
    var lastActive = this.lastActive;
    return lastActive && $.grep(this.errorList, function(n) {
      return n.element.name == lastActive.name;
    }).length == 1 && lastActive;
  },

  elements: function() {
    var validator = this,
      rulesCache = {};

    // select all valid inputs inside the form (no submit or reset buttons)
    // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved
    return $([]).add(this.currentForm.elements)
    .filter(":input")
    .not(":submit, :reset, :image, [disabled]")
    .not( this.settings.ignore )
    .filter(function() {
      !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this);

      // select only the first element for each name, and only those with rules specified
      if ( this.name in rulesCache || !validator.objectLength($(this).rules()) )
        return false;

      rulesCache[this.name] = true;
      return true;
    });
  },

  clean: function( selector ) {
    return $( selector )[0];
  },

  errors: function() {
    return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext );
  },

  reset: function() {
    this.successList = [];
    this.errorList = [];
    this.errorMap = {};
    this.toShow = $([]);
    this.toHide = $([]);
    this.currentElements = $([]);
  },

  prepareForm: function() {
    this.reset();
    this.toHide = this.errors().add( this.containers );
  },

  prepareElement: function( element ) {
    this.reset();
    this.toHide = this.errorsFor(element);
  },

  check: function( element ) {
    element = this.clean( element );

    // if radio/checkbox, validate first element in group instead
    if (this.checkable(element)) {
      element = this.findByName( element.name )[0];
    }

    var rules = $(element).rules();
    var dependencyMismatch = false;
    for( method in rules ) {
      var rule = { method: method, parameters: rules[method] };
      try {
        var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters );

        // if a method indicates that the field is optional and therefore valid,
        // don't mark it as valid when there are no other rules
        if ( result == "dependency-mismatch" ) {
          dependencyMismatch = true;
          continue;
        }
        dependencyMismatch = false;

        if ( result == "pending" ) {
          this.toHide = this.toHide.not( this.errorsFor(element) );
          return;
        }

        if( !result ) {
          this.formatAndAdd( element, rule );
          return false;
        }
      } catch(e) {
        this.settings.debug && window.console && console.log("exception occured when checking element " + element.id
           + ", check the '" + rule.method + "' method", e);
        throw e;
      }
    }
    if (dependencyMismatch)
      return;
    if ( this.objectLength(rules) )
      this.successList.push(element);
    return true;
  },

  // return the custom message for the given element and validation method
  // specified in the element's "messages" metadata
  customMetaMessage: function(element, method) {
    if (!$.metadata)
      return;

    var meta = this.settings.meta
      ? $(element).metadata()[this.settings.meta]
      : $(element).metadata();

    return meta && meta.messages && meta.messages[method];
  },

  // return the custom message for the given element name and validation method
  customMessage: function( name, method ) {
    var m = this.settings.messages[name];
    return m && (m.constructor == String
      ? m
      : m[method]);
  },

  // return the first defined argument, allowing empty strings
  findDefined: function() {
    for(var i = 0; i < arguments.length; i++) {
      if (arguments[i] !== undefined)
        return arguments[i];
    }
    return undefined;
  },

  defaultMessage: function( element, method) {
    return this.findDefined(
      this.customMessage( element.name, method ),
      this.customMetaMessage( element, method ),
      // title is never undefined, so handle empty string as undefined
      !this.settings.ignoreTitle && element.title || undefined,
      $.validator.messages[method],
      "<strong>Warning: No message defined for " + element.name + "</strong>"
    );
  },

  formatAndAdd: function( element, rule ) {
    var message = this.defaultMessage( element, rule.method ),
      theregex = /\$?\{(\d+)\}/g;
    if ( typeof message == "function" ) {
      message = message.call(this, rule.parameters, element);
    } else if (theregex.test(message)) {
      message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters);
    }
    this.errorList.push({
      message: message,
      element: element
    });

    this.errorMap[element.name] = message;
    this.submitted[element.name] = message;
  },

  addWrapper: function(toToggle) {
    if ( this.settings.wrapper )
      toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );
    return toToggle;
  },

  defaultShowErrors: function() {
    for ( var i = 0; this.errorList[i]; i++ ) {
      var error = this.errorList[i];
      this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
      this.showLabel( error.element, error.message );
    }
    if( this.errorList.length ) {
      this.toShow = this.toShow.add( this.containers );
    }
    if (this.settings.success) {
      for ( var i = 0; this.successList[i]; i++ ) {
        this.showLabel( this.successList[i] );
      }
    }
    if (this.settings.unhighlight) {
      for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) {
        this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
      }
    }
    this.toHide = this.toHide.not( this.toShow );
    this.hideErrors();
    this.addWrapper( this.toShow ).show();
  },

  validElements: function() {
    return this.currentElements.not(this.invalidElements());
  },

  invalidElements: function() {
    return $(this.errorList).map(function() {
      return this.element;
    });
  },

  showLabel: function(element, message) {
    var label = this.errorsFor( element );
    if ( label.length ) {
      // refresh error/success class
      label.removeClass().addClass( this.settings.errorClass );

      // check if we have a generated label, replace the message then
      label.attr("generated") && label.html(message);
    } else {
      // create label
      label = $("<" + this.settings.errorElement + "/>")
        .attr({"for":  this.idOrName(element), generated: true})
        .addClass(this.settings.errorClass)
        .html(message || "");
      if ( this.settings.wrapper ) {
        // make sure the element is visible, even in IE
        // actually showing the wrapped element is handled elsewhere
        label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
      }
      if ( !this.labelContainer.append(label).length )
        this.settings.errorPlacement
          ? this.settings.errorPlacement(label, $(element) )
          : label.insertAfter(element);
    }
    if ( !message && this.settings.success ) {
      label.text("");
      typeof this.settings.success == "string"
        ? label.addClass( this.settings.success )
        : this.settings.success( label );
    }
    this.toShow = this.toShow.add(label);
  },

  errorsFor: function(element) {
    var name = this.idOrName(element);
      return this.errors().filter(function() {
      return $(this).attr('for') == name
    });
  },

  idOrName: function(element) {
    return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
  },

  checkable: function( element ) {
    return /radio|checkbox/i.test(element.type);
  },

  findByName: function( name ) {
    // select by name and filter by form for performance over form.find("[name=...]")
    var form = this.currentForm;
    return $(document.getElementsByName(name)).map(function(index, element) {
      return element.form == form && element.name == name && element  || null;
    });
  },

  getLength: function(value, element) {
    switch( element.nodeName.toLowerCase() ) {
    case 'select':
      return $("option:selected", element).length;
    case 'input':
      if( this.checkable( element) )
        return this.findByName(element.name).filter(':checked').length;
    }
    return value.length;
  },

  depend: function(param, element) {
    return this.dependTypes[typeof param]
      ? this.dependTypes[typeof param](param, element)
      : true;
  },

  dependTypes: {
    "boolean": function(param, element) {
      return param;
    },
    "string": function(param, element) {
      return !!$(param, element.form).length;
    },
    "function": function(param, element) {
      return param(element);
    }
  },

  optional: function(element) {
    return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch";
  },

  startRequest: function(element) {
    if (!this.pending[element.name]) {
      this.pendingRequest++;
      this.pending[element.name] = true;
    }
  },

  stopRequest: function(element, valid) {
    this.pendingRequest--;
    // sometimes synchronization fails, make sure pendingRequest is never < 0
    if (this.pendingRequest < 0)
      this.pendingRequest = 0;
    delete this.pending[element.name];
    if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) {
      $(this.currentForm).submit();
      this.formSubmitted = false;
    } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
      $(this.currentForm).triggerHandler("invalid-form", [this]);
      this.formSubmitted = false;
    }
  },

  previousValue: function(element) {
    return $.data(element, "previousValue") || $.data(element, "previousValue", {
      old: null,
      valid: true,
      message: this.defaultMessage( element, "remote" )
    });
  }

},

classRuleSettings: {
  required: {required: true},
  email: {email: true},
  url: {url: true},
  date: {date: true},
  dateISO: {dateISO: true},
  dateDE: {dateDE: true},
  number: {number: true},
  numberDE: {numberDE: true},
  digits: {digits: true},
  creditcard: {creditcard: true}
},

addClassRules: function(className, rules) {
  className.constructor == String ?
    this.classRuleSettings[className] = rules :
    $.extend(this.classRuleSettings, className);
},

classRules: function(element) {
  var rules = {};
  var classes = $(element).attr('class');
  classes && $.each(classes.split(' '), function() {
    if (this in $.validator.classRuleSettings) {
      $.extend(rules, $.validator.classRuleSettings[this]);
    }
  });
  return rules;
},

attributeRules: function(element) {
  var rules = {};
  var $element = $(element);

  for (method in $.validator.methods) {
    var value = $element.attr(method);
    if (value) {
      rules[method] = value;
    }
  }

  // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
  if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
    delete rules.maxlength;
  }

  return rules;
},

metadataRules: function(element) {
  if (!$.metadata) return {};

  var meta = $.data(element.form, 'validator').settings.meta;
  return meta ?
    $(element).metadata()[meta] :
    $(element).metadata();
},

staticRules: function(element) {
  var rules = {};
  var validator = $.data(element.form, 'validator');
  if (validator.settings.rules) {
    rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
  }
  return rules;
},

normalizeRules: function(rules, element) {
  // handle dependency check
  $.each(rules, function(prop, val) {
    // ignore rule when param is explicitly false, eg. required:false
    if (val === false) {
      delete rules[prop];
      return;
    }
    if (val.param || val.depends) {
      var keepRule = true;
      switch (typeof val.depends) {
        case "string":
          keepRule = !!$(val.depends, element.form).length;
          break;
        case "function":
          keepRule = val.depends.call(element, element);
          break;
      }
      if (keepRule) {
        rules[prop] = val.param !== undefined ? val.param : true;
      } else {
        delete rules[prop];
      }
    }
  });

  // evaluate parameters
  $.each(rules, function(rule, parameter) {
    rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
  });

  // clean number parameters
  $.each(['minlength', 'maxlength', 'min', 'max'], function() {
    if (rules[this]) {
      rules[this] = Number(rules[this]);
    }
  });
  $.each(['rangelength', 'range'], function() {
    if (rules[this]) {
      rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
    }
  });

  if ($.validator.autoCreateRanges) {
    // auto-create ranges
    if (rules.min && rules.max) {
      rules.range = [rules.min, rules.max];
      delete rules.min;
      delete rules.max;
    }
    if (rules.minlength && rules.maxlength) {
      rules.rangelength = [rules.minlength, rules.maxlength];
      delete rules.minlength;
      delete rules.maxlength;
    }
  }

  // To support custom messages in metadata ignore rule methods titled "messages"
  if (rules.messages) {
    delete rules.messages
  }

  return rules;
},

// Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
normalizeRule: function(data) {
  if( typeof data == "string" ) {
    var transformed = {};
    $.each(data.split(/\s/), function() {
      transformed[this] = true;
    });
    data = transformed;
  }
  return data;
},

// http://docs.jquery.com/Plugins/Validation/Validator/addMethod
addMethod: function(name, method, message) {
  $.validator.methods[name] = method;
  $.validator.messages[name] = message != undefined ? message : $.validator.messages[name];
  if (method.length < 3) {
    $.validator.addClassRules(name, $.validator.normalizeRule(name));
  }
},

methods: {

  // http://docs.jquery.com/Plugins/Validation/Methods/required
  required: function(value, element, param) {
    // check if dependency is met
    if ( !this.depend(param, element) )
      return "dependency-mismatch";
    switch( element.nodeName.toLowerCase() ) {
    case 'select':
      // could be an array for select-multiple or a string, both are fine this way
      var val = $(element).val();
      return val && val.length > 0;
    case 'input':
      if ( this.checkable(element) )
        return this.getLength(value, element) > 0;
    default:
      return $.trim(value).length > 0;
    }
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/remote
  remote: function(value, element, param) {
    if ( this.optional(element) )
      return "dependency-mismatch";

    var previous = this.previousValue(element);
    if (!this.settings.messages[element.name] )
      this.settings.messages[element.name] = {};
    previous.originalMessage = this.settings.messages[element.name].remote;
    this.settings.messages[element.name].remote = previous.message;

    param = typeof param == "string" && {url:param} || param;

    if ( previous.old !== value ) {
      previous.old = value;
      var validator = this;
      this.startRequest(element);
      var data = {};
      data[element.name] = value;
      $.ajax($.extend(true, {
        url: param,
        mode: "abort",
        port: "validate" + element.name,
        dataType: "json",
        data: data,
        success: function(response) {
          validator.settings.messages[element.name].remote = previous.originalMessage;
          var valid = response === true;
          if ( valid ) {
            var submitted = validator.formSubmitted;
            validator.prepareElement(element);
            validator.formSubmitted = submitted;
            validator.successList.push(element);
            validator.showErrors();
          } else {
            var errors = {};
            var message = (previous.message = response || validator.defaultMessage( element, "remote" ));
            errors[element.name] = $.isFunction(message) ? message(value) : message;
            validator.showErrors(errors);
          }
          previous.valid = valid;
          validator.stopRequest(element, valid);
        }
      }, param));
      return "pending";
    } else if( this.pending[element.name] ) {
      return "pending";
    }
    return previous.valid;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/minlength
  minlength: function(value, element, param) {
    return this.optional(element) || this.getLength($.trim(value), element) >= param;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/maxlength
  maxlength: function(value, element, param) {
    return this.optional(element) || this.getLength($.trim(value), element) <= param;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/rangelength
  rangelength: function(value, element, param) {
    var length = this.getLength($.trim(value), element);
    return this.optional(element) || ( length >= param[0] && length <= param[1] );
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/min
  min: function( value, element, param ) {
    return this.optional(element) || value >= param;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/max
  max: function( value, element, param ) {
    return this.optional(element) || value <= param;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/range
  range: function( value, element, param ) {
    return this.optional(element) || ( value >= param[0] && value <= param[1] );
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/email
  email: function(value, element) {
    // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
    return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/url
  url: function(value, element) {
    // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
    return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/date
  date: function(value, element) {
    return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/dateISO
  dateISO: function(value, element) {
    return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/number
  number: function(value, element) {
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/digits
  digits: function(value, element) {
    return this.optional(element) || /^\d+$/.test(value);
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/creditcard
  // based on http://en.wikipedia.org/wiki/Luhn
  creditcard: function(value, element) {
    if ( this.optional(element) )
      return "dependency-mismatch";
    // accept only digits and dashes
    if (/[^0-9-]+/.test(value))
      return false;
    var nCheck = 0,
      nDigit = 0,
      bEven = false;

    value = value.replace(/\D/g, "");

    for (var n = value.length - 1; n >= 0; n--) {
      var cDigit = value.charAt(n);
      var nDigit = parseInt(cDigit, 10);
      if (bEven) {
        if ((nDigit *= 2) > 9)
          nDigit -= 9;
      }
      nCheck += nDigit;
      bEven = !bEven;
    }

    return (nCheck % 10) == 0;
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/accept
  accept: function(value, element, param) {
    param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
    return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
  },

  // http://docs.jquery.com/Plugins/Validation/Methods/equalTo
  equalTo: function(value, element, param) {
    // bind to the blur event of the target in order to revalidate whenever the target field is updated
    // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead
    var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() {
      $(element).valid();
    });
    return value == target.val();
  }

}

});

// deprecated, use $.validator.format instead $.format = $.validator.format;

})(jQuery);

// ajax mode: abort // usage: $.ajax({ mode: “abort”[, port: “uniqueport”]}); // if mode:“abort” is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() ;(function($) {

var ajax = $.ajax;
var pendingRequests = {};
$.ajax = function(settings) {
  // create settings for compatibility with ajaxSetup
  settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
  var port = settings.port;
  if (settings.mode == "abort") {
    if ( pendingRequests[port] ) {
      pendingRequests[port].abort();
    }
    return (pendingRequests[port] = ajax.apply(this, arguments));
  }
  return ajax.apply(this, arguments);
};

})(jQuery);

// provides cross-browser focusin and focusout events // IE has native support, in other browsers, use event caputuring (neither bubbles)

// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation // handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target

// provides triggerEvent(type: String, target: Element) to trigger delegated events ;(function($) {

$.each({
  focus: 'focusin',
  blur: 'focusout'
}, function( original, fix ){
  $.event.special[fix] = {
    setup:function() {
      if ( $.browser.msie ) return false;
      this.addEventListener( original, $.event.special[fix].handler, true );
    },
    teardown:function() {
      if ( $.browser.msie ) return false;
      this.removeEventListener( original,
      $.event.special[fix].handler, true );
    },
    handler: function(e) {
      arguments[0] = $.event.fix(e);
      arguments[0].type = fix;
      return $.event.handle.apply(this, arguments);
    }
  };
});
$.extend($.fn, {
  delegate: function(type, delegate, handler) {
    return this.bind(type, function(event) {
      var target = $(event.target);
      if (target.is(delegate)) {
        return handler.apply(target, arguments);
      }
    });
  },
  triggerEvent: function(type, target) {
    return this.triggerHandler(type, [$.event.fix({ type: type, target: target })]);
  }
})

})(jQuery);

/*

* jQuery Templating Plugin
*   NOTE: Created for demonstration purposes.
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
*/

(function(jQuery){

// Override the DOM manipulation function
var oldManip = jQuery.fn.domManip,
  htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$/;

jQuery.fn.extend({
  render: function( data, options ) {
    return this.map(function(i, tmpl){
      return jQuery.render( tmpl, data, options );
    });
  },

  // This will allow us to do: .append( "template", dataObject )
  domManip: function( args ) {
    // This appears to be a bug in the appendTo, etc. implementation
    // it should be doing .call() instead of .apply(). See #6227
    if ( args.length > 1 && args[0].nodeType ) {
      arguments[0] = [ jQuery.makeArray(args) ];
    }

    if ( args.length >= 2 && typeof args[0] === "string" && typeof args[1] !== "string" ) {
      arguments[0] = [ jQuery.render( args[0], args[1], args[2] ) ];
    }

    return oldManip.apply( this, arguments );
  }
});

jQuery.extend({
  render: function( tmpl, data, options ) {
    var fn, node;

    if ( typeof tmpl === "string" ) {
      // Use a pre-defined template, if available
      fn = jQuery.templates[ tmpl ];
      if ( !fn && !htmlExpr.test( tmpl ) ) {
        // it is a selector
        node = jQuery( tmpl ).get( 0 );
      }
      else {
        fn = jQuery.tmpl( tmpl );
      }
    } else if ( tmpl instanceof jQuery ) {
      node = tmpl.get( 0 );
    } else if ( tmpl.nodeType ) {
      node = tmpl;
    }

    if ( !fn && node ) {
      var elemData = jQuery.data( node );
      fn = elemData.tmpl || (elemData.tmpl = jQuery.tmpl( node.innerHTML ));
    }

    // We assume that if the template string is being passed directly
    // in the user doesn't want it cached. They can stick it in
    // jQuery.templates to cache it.

    var context = {
      data: data,
      index: 0,
      dataItem: data,
      options: options || {}
    };

    if ( jQuery.isArray( data ) ) {
      return jQuery.map( data, function( data, i ) {
        context.index = i;
        context.dataItem = data;
        return fn.call( data, jQuery, context );
      });

    } else {
      return fn.call( data, jQuery, context );
    }
  },

  // You can stick pre-built template functions here
  templates: {},

  /*
   * For example, someone could do:
   *   jQuery.templates.foo = jQuery.tmpl("some long templating string");
   *   $("#test").append("foo", data);
   */

  tmplcmd: {
    "each": {
      _default: [ null, "$i" ],
      prefix: "jQuery.each($1,function($2){with(this){",
      suffix: "}});"
    },
    "if": {
      prefix: "if($1){",
      suffix: "}"
    },
    "else": {
      prefix: "}else{"
    },
    "html": {
      prefix: "_.push(typeof ($1)==='function'?($1).call(this):$1);"
    },
    "=": {
      _default: [ "this" ],
      prefix: "_.push($.encode(typeof ($1)==='function'?($1).call(this):$1));"
    }
  },

  encode: function( text ) {
    return text != null ? document.createTextNode( text.toString() ).nodeValue : "";
  },

  tmpl: function(str, data, i, options) {
    // Generate a reusable function that will serve as a template
    // generator (and which will be cached).

    var fn = new Function("jQuery","$context",
      "var $=jQuery,$data=$context.dataItem,$i=$context.index,_=[];_.data=$data;_.index=$i;" +

      // Introduce the data as local variables using with(){}
      "with($data){_.push('" +

      // Convert the template into pure JavaScript
      str
        .replace(/[\r\t\n]/g, " ")
        .replace(/\${([^}]*)}/g, "{{= $1}}")
        .replace(/{{(\/?)(\w+|.)(?:\((.*?)\))?(?: (.*?))?}}/g, function(all, slash, type, fnargs, args) {
          var tmpl = jQuery.tmplcmd[ type ];

          if ( !tmpl ) {
            throw "Template not found: " + type;
          }

          var def = tmpl._default;

          return "');" + tmpl[slash ? "suffix" : "prefix"]
            .split("$1").join(args || (def ? def[0] : ""))
            .split("$2").join(fnargs || (def ? def[1] : "")) + "_.push('";
        })
      + "');};return $(_.join('')).get();");

    // Provide some basic currying to the user
    // TODO: When currying, the fact that only the dataItem and index are passed
    // in means we cannot know the value of 'data' although we know 'dataItem' and 'index'
    // If this api took the array and index, we could know all 3 values.
    // e.g. instead of this:
    //  tmpl(tmpl, foo[i], i) // foo[i] passed in is the dataItem
    // this:
    //  tmpl(tmpl, foo, i) // foo[i] used internally to get dataItem
    // If you intend data to be as is,
    //  tmpl(tmpl, foo) or tmpl(tmpl, foo, null, options)
    return data ? fn.call( this, jQuery, { data: null, dataItem: data, index: i, options: options } ) : fn;
  }
});

})(jQuery);

// Knockout JavaScript library v1.1.1 // © 2010 Steven Sanderson - knockoutjs.com/ // License: Ms-Pl (www.opensource.org/licenses/ms-pl.html)

function a(f){throw f;}var m=true,o=null,q=false,r=window.ko={};r.b=function(f,b){for(var d=f.split(“.”),c=window,e=0;e];c[d]=b};r.g=function(f,b,d){f=d}; r.a=new function(){var f=/^(s|u00A0)+|(s|u00A0)+$/g;return{ca:[“authenticity_token”,/^_RequestVerificationToken(.*)?$/],h:function(b,d){for(var c=0,e=b.length;c)},i:function(b,d){if(typeof b.indexOf==“function”)return b.indexOf(d);for(var c=0,e=b.length;c==d)return c;return-1},wa:function(b,d,c){for(var e=0,h=b.length;e))return b;return o},Z:function(b,d){var c=r.a.i(b,d);c>=0&&b.splice(c,1)},Y:function(b){b=b||[];for(var d=[],c=0,e=b.length;c< e;c++)r.a.i(d,b)<0&&d.push(b);return d},L:function(b,d){b=b||[];for(var c=[],e=0,h=b.length;e));return c},K:function(b,d){b=b||[];for(var c=[],e=0,h=b.length;e)&&c.push(b);return c},M:function(b,d){for(var c=0,e=d.length;c)},ba:function(b){for(;b.firstChild;){r.a.e.N(b.firstChild);b.removeChild(b.firstChild)}},Ra:function(b,d){r.a.ba(b);d&&r.a.h(d,function©{b.appendChild©})},ka:function(b,d){var c=b.nodeType?:b;if(c.length>0){for(var e= c,h=e.parentNode,g=0,i=d.length;g,e);g=0;for(i=c.length;g<i;g++){r.a.e.N(c);h.removeChild(c)}}},na:function(b,d){if(navigator.userAgent.indexOf(“MSIE 6”)>=0)b.setAttribute(“selected”,d);else b.selected=d},Ha:function(b,d){if(!b||b.nodeType!=1)return[];var c=[];b.getAttribute(d)!==o&&c.push(b);for(var e=b.getElementsByTagName(“*”),h=0,g=e.length;h.getAttribute(d)!==o&&c.push(e);return c},k:function(b){return(b||“”).replace(f,“”)},Ya:function(b,d){for(var c= [],e=(b||“”).split(d),h=0,g=e.length;h<g;h++){var i=r.a.k(e);i!==“”&&c.push(i)}return c},Sa:function(b,d){b=b||“”;if(d.length>b.length)return q;return b.substring(0,d.length)===d},Fa:function(b,d){if(d===undefined)return(new Function(“return ”+b))();with(d)return eval(“(”b“)”)},Da:function(b,d){if(d.compareDocumentPosition)return(d.compareDocumentPosition(b)&16)==16;for(;b!=o;){if(b==d)return m;b=b.parentNode}return q},A:function(b){return r.a.Da(b,document)},q:function(b,d,c){if(typeof jQuery!= “undefined”)jQuery(b).bind(d,c);else if(typeof b.addEventListener==“function”)b.addEventListener(d,c,q);else if(typeof b.attachEvent!=“undefined”)b.attachEvent(“on”+d,function(e){c.call(b,e)});else a(Error(“Browser doesn't support addEventListener or attachEvent”))},Va:function(b,d){if(!(b&&b.nodeType))a(Error(“element must be a DOM node when calling triggerEvent”));if(typeof document.createEvent==“function”)if(typeof b.dispatchEvent==“function”){var c=document.createEvent(d==“click”?“MouseEvents”: “HTMLEvents”);c.initEvent(d,m,m,window,0,0,0,0,0,q,q,q,q,0,b);b.dispatchEvent©}else a(Error(“The supplied element doesn't support dispatchEvent”));else if(typeof b.fireEvent!=“undefined”){if(d==“click”)if(b.tagName==“INPUT”&&(b.type.toLowerCase()==“checkbox”||b.type.toLowerCase()==“radio”))b.checked=b.checked!==m;b.fireEvent(“on”+d)}else a(Error(“Browser doesn't support triggering events”))},d:function(b){return r.C(b)?b():b},Ca:function(b,d){return r.a.i((b.className||“”).split(/s+/),d)>=0},Ua:function(b, d,c){var e=r.a.Ca(b,d);if(c&&!e)b.className=(b.className||“”)+“ ”+d;else if(e&&!c){c=(b.className||“”).split(/s+/);e=“”;for(var h=0;h!=d)e+=c+“ ”;b.className=r.a.k(e)}},Oa:function(b,d){b=r.a.d(b);d=r.a.d(d);for(var c=[],e=b;e<=d;e++)c.push(e);return c},ha:function(b){for(var d=[],c=b.length-1;c>=0;c–)d.push(b);return d},P:/MSIE 6/i.test(navigator.userAgent),ea:function(b,d){for(var c=r.a.ha(b.getElementsByTagName(“INPUT”)).concat(r.a.ha(b.getElementsByTagName(“TEXTAREA”))), e=typeof d==“string”?function(i){return i.name===d}:function(i){return d.test(i.name)},h=[],g=c.length-1;g>=0;g–)e(c)&&h.push(c);return h},G:function(b){if(typeof b==“string”)if(b=r.a.k(b)){if(window.JSON&&window.JSON.parse)return window.JSON.parse(b);return(new Function(“return ”+b))()}return o},T:function(b){if(typeof JSON==“undefined”||typeof JSON.stringify==“undefined”)a(Error(“Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from www.json.org/json2.js”)); return JSON.stringify(r.a.d(b))},Na:function(b,d,c){c=c||{};var e=c.params||{},h=c.includeFields||this.ca,g=b;if(typeof b==“object”&&b.tagName==“FORM”){g=b.action;for(var i=h.length-1;i>=0;i–)for(var j=r.a.ea(b,h),k=j.length-1;k>=0;k–)e[j.name]=j.value}d=r.a.d(d);var l=document.createElement(“FORM”);l.style.display=“none”;l.action=g;l.method=“post”;for(var n in d){b=document.createElement(“INPUT”);b.name=n;b.value=r.a.T(r.a.d(d));l.appendChild(b)}for(n in e){b=document.createElement(“INPUT”); b.name=n;b.value=e;l.appendChild(b)}document.body.appendChild(l);c.submitter?c.submitter(l):l.submit();setTimeout(function(){l.parentNode.removeChild(l)},0)},e:{Wa:0,w:“__ko__”+(new Date).getTime(),Xa:{},t:function(b,d){var c=r.a.e.da(b,q);return c===undefined?undefined:c},la:function(b,d,c){r.a.e.da(b,m)=c},da:function(b,d){var c=b;if(!c){if(!d)return;c=b=“ko”r.a.e.Wa+;r.a.e={}}return r.a.e},$:function(b){var d=b;if(d){delete r.a.e;b=o}},N:function(b){if(!(b.nodeType!= 1&&b.nodeType!=9)){r.a.e.$(b);b=b.getElementsByTagName(“*”);for(var d=0,c=b.length;d)}}}}};r.b(“ko.utils”,r.a);r.b(“ko.utils.arrayForEach”,r.a.h);r.b(“ko.utils.arrayFirst”,r.a.wa);r.b(“ko.utils.arrayFilter”,r.a.K);r.b(“ko.utils.arrayGetDistinctValues”,r.a.Y);r.b(“ko.utils.arrayIndexOf”,r.a.i);r.b(“ko.utils.arrayMap”,r.a.L);r.b(“ko.utils.arrayPushAll”,r.a.M);r.b(“ko.utils.arrayRemoveItem”,r.a.Z);r.b(“ko.utils.fieldsIncludedWithJsonPost”,r.a.ca);r.b(“ko.utils.getFormFields”,r.a.ea); r.b(“ko.utils.postJson”,r.a.Na);r.b(“ko.utils.parseJson”,r.a.G);r.b(“ko.utils.stringifyJson”,r.a.T);r.b(“ko.utils.range”,r.a.Oa);r.b(“ko.utils.triggerEvent”,r.a.Va);r.b(“ko.utils.unwrapObservable”,r.a.d);Function.prototype.bind||(Function.prototype.bind=function(f){var b=this,d=Array.prototype.slice.call(arguments);f=d.shift();return function(){return b.apply(f,d.concat(Array.prototype.slice.call(arguments)))}}); r.j=function(){function f(){return((1+Math.random())*4294967296|0).toString(16).substring(1)}function b(c,e){if©if(c.nodeType==8){var h=r.j.ia(c.nodeValue);h!=o&&e.push({Ba:c,Ka:h})}else if(c.nodeType==1){h=0;for(var g=c.childNodes,i=g.length;h,e)}}var d={};return{R:function©{if(typeof c!=“function”)a(Error(“You can only pass a function to ko.memoization.memoize()”));var e=f()+f();d=c;return“