/********************************************************************************************************************
 * $ Packer v1.1
 *
 * Packed javascripts on Thu, 23 Feb 2012 01:36:48 +0100:
 *     Shared : jquery-1.6, jquery.validation, jquery.swfobject2, googlemap, jquery.overlay2, jquery.selectbox, oddslider/v1.0/jquery.oddslider
 *     Local  : default, jquery.suggest
 *
 * Copyright (c) 2012 Flink BV - www.flink.nl
 ********************************************************************************************************************/


/*!
 * jQuery JavaScript Library v1.6.1
 * http://jquery.com/
 *
 * Copyright 2011, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2011, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu May 12 15:04:36 2011 -0400
 */
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.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[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!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:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.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){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<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>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.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!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
;;
/**
 * $ jQuery Form Validation
 * Version 1.4.20 (2008-09-05)
 *
 * Copyright (c) 2008 Flink BV - www.flink.nl
 */


/************************************************************************************************

ENABLE VALIDATION:

		Enable validation by using:

			$.validatorEnable(object Options, object ErrorMessages)


		Examples:

			All forms on load : 		$('form').validatorEnable();
			One specific form :			$('form#frm_reg').validatorEnable();
			Specific options :			$('form#frm_reg').validatorEnable({hdlCallback: setPage, showTooltip: true});
			Custom error messages :		$('form#frm_reg').validatorEnable({}, {required: 'Field is required'});



ADD VALIDATORS:

		Add each validator to the class attribute of an input, select or textarea by prefixing it with 'validator-'.
			<input type="text" class="validator-required validator-date">

		An argument to a validator can be added as suffix with '-' as seperator.
		Eg. a minimum length validation:
			<input type="text" class="validator-required validator-minlength-4">



EXAMPLE HTML FORM SETUP:

		<form action="post" id="frm_test" action="">

			<div class="formRow">
				<div class="formLabel"><label for="SFRM_Test">Test</label></div>
				<div class="formCtrl>
					<input class="validator-required" type="text" name="SFRM_Test" id="SFRM_Test" value="">
					<div id="errMsg-SFRM_Test" class="errMsg">
						<div class="errMsg-required">Require error message specific for this field</div>
						<div class="errMsg-unique">Unique error message specific for this field</div>
						<div class="errMsg-dynamic">Overwrite all other error messages in here</div>
					</div>
				</div>
			</div>

		</form>
		<script language="text/javascript">
			$('#frm_test').validatorEnable();
		</script>


************************************************************************************************/

(function($) {


$.fn.extend({

	/**
	 * Returns a value of a field as a string.
	 * Will return checkbox lists etc as a comma separated string
	 * @return string 
	 */ 
	fieldStringVal: function() {
		var retval = new String();
		if (this.length > 0){
			var elm = this[0];
			var name = new String(elm.name);
			var t = elm.type;
			if (t == "checkbox" || t == "radio"){

				if (name == ""){
					if (elm.checked) retval = elm.id;
				}
				else{
					$(":input[name='" + name + "']").each(function(){
						if (this.checked){
							if (retval != "") retval += ",";
							retval += this.id;
						}
					});
				}
			}
			else if (t == "select-one" || t == "select-multiple"){
				for (var i=0; i<elm.length; i++){
					if (elm.options[i].selected){
						if (retval != "") retval += ",";
						retval += elm.options[i].value;
					}
				}
			}
			else{
				retval = elm.value;
			}
		}

		return $.trim(retval);
	},
	
	validatorTokenEnable:function(options){
	
		if (typeof $.validator == 'object') {
			jQuery.each(options, function(frm, key) {
		      $('#'+frm).validatorEnable();
		    });
		}
	},

	/**
	 * Enable validator
	 * @param object options		Validator options
	 * @param object errorMessages	Error messages
	 * @return jQuery
	 */
	validatorEnable: function(options, errorMessages){
		return $.each(this, function()
		{
			var form = this;
			if (typeof(form.id) == 'undefined' || typeof form.validator == 'object' || !$(form).is('form')) return;
			
			
			// set form specific settings
			form.validator = {
				options : $.extend({}, $.validator.defaultOptions, options),
				errorMessages : $.extend({}, $.validator.defaultErrorMessages, errorMessages),
				groups : []
			};

			// set focus handler
			if (form.validator.options.fieldFocusCssClass) {
				$('input[type=password], input[type=text], select, textarea', form)
					.focus(function()
					{
						if ($.browser.msie && (this.type=='select-one' || this.type=='select-multiple')) return;
						$(this).addClass($(this).parents('form')[0].validator.options.fieldFocusCssClass);
						return true;
					})
					.blur(function()
					{
						if ($.browser.msie && (this.type=='select-one' || this.type=='select-multiple')) return;
						$(this).removeClass($(this).parents('form')[0].validator.options.fieldFocusCssClass);
						return true;
					});
			}

			// set maxlength trigger for textarea's
			if (form.validator.options.fieldMaxlengthTrigger) $('textarea[class*=validator-maxlength]', form).setFieldLengthTrigger();

			// set focus to first field
			if (form.validator.options.autoFocus)
				$(':input:visible:enabled:first', form).focus();
				
			// add hidden field
			if (form.validator.options.validatorKey)
				$(form).append('<input type="hidden" name="SFRM_validator_key" value="'+form.validator.options.validatorKey+'">');
			
			// add unload handler
			if (form.validator.options.unloadWarning) {
				$(':input', form).change(function(){ $.validator.formChangeCnt++; });
				window.onbeforeunload = function() {
			    	if ($.validator.formChangeCnt > 0 && $.validator.onUnloadEnabled) {
						return form.validator.errorMessages.unload;
					}
			    };
			    $.validator.onUnloadEnabled = true;
			}
			
			// set submit handler
			$(form).bind("submit", function(){
				//var start_time = new Date();
				var result = $.validator.validateForm(this);
				//var end_time = new Date();
				//alert('Validated in '+((end_time-start_time)/1000)+' seconds');
				return result; 
			});
			
		});
	},


	/**
	 * Set length trigger on a field
	 * @return jQuery
	 */
	setFieldLengthTrigger: function(){
		$(this).each(function(){
			var m = 0;
			var cssClassesStr = new String($(this).attr("class"));
			var cssClasses = cssClassesStr.split(" ");
			for (var i=0; i<cssClasses.length; i++){
				if (cssClasses[i].substr(0,20) == 'validator-maxlength-'){
					m = parseInt(cssClasses[i].substr(20));
					break;
				}
			}
			this.maxlength = m;
			$('#'+this.id+'_size').text(this.value.length);

			$(this).keyup(function(){
				if (this.value.length > this.maxlength && this.maxlength > 0) this.value = this.value.substr(0,this.maxlength);
				$('#'+this.id+'_size').text(this.value.length);
			});
		});
		return this;
	},
	
	/**
	 * Set unfocus value
	 * @param value
	 * @return jQuery
	 */
	setUnfocusValue: function(value){
		$(this).each(function(){
			if (typeof(this.unfocusValue)!='undefined') return;
			this.unfocusValue = value;
			this.origType = this.type;
			
			if (this.type=='password') {
				$(this).after('<input type="text" style="display:none" class="formUnfocus" id="'+this.id+'-overlay" value="'+this.unfocusValue+'">');
				$('#'+this.id+'-overlay').focus(function(){
					$(this).hide().siblings('#'+this.id.substring(0,this.id.length-8)).show().focus();
				});
				$(this).blur(function(){
					if (this.value=='' && this.value!=this.unfocusValue) {
						$('#'+this.id+'-overlay').removeClass('formFocus').show();
						$(this).hide();
					}
				}).blur();
			} else {
				$(this).focus(function(){ 
					if (this.value==this.unfocusValue){
						$(this).val('').removeClass('formUnfocus');
					}
				}).blur(function(){
					if (this.value=='' || this.value==this.unfocusValue) {
						$(this).val(this.unfocusValue).addClass('formUnfocus');
					} else { //incase event is called manually
						$(this).removeClass('formUnfocus');
					}
				}).blur();
			}
			
			$.validator.unfocusValueFields.push(this);
		});
		return this;
	}
});


//
// indexOf on an array for IE
//
if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}

//
// Static methods
//
$.validator = {
	
	/**
	 * Array of fields with unfocus handler
	 * @var object
	 */
	unfocusValueFields: [],

	/**
	 * Array of custom validators
	 * @var object
	 */
	customValidators : {},
	
	/**
	 * Current change form elements (used by onUnload handler)
	 * @var int
	 */
	formChangeCnt: 0,
	
	/**
	 * onUnload handler state
	 * @var bool
	 */
	onUnloadEnabled: false,
	
	/**
	 * Default validator options
	 * @var object
	 */
	defaultOptions : {
		showInlineMessages 			: true,
		inlineMessageElementIdPrefix: "errMsg-",
		headElementCssClass 		: "sfrm_errors",
		fieldErrorCssClass 			: "errHilite",
		fieldFocusCssClass 			: 'formFocus',
		formRowCssClass				: 'formRow',
		showTooltip 				: false,
		tooltipElementClass 		: 'formInfo',
		hdlCallback					: false,
		fieldMaxlengthTrigger		: true,
		autoFocus					: false,
		formOverlay					: true,
		validatorKey				: false,
		unloadWarning				: false
	},

	/**
	 * Default error messages
	 * @var object
	 */
	defaultErrorMessages : {
		required: 	'Vul aub bovenstaand veld in',
		requiredby: 'Vul aub bovenstaand veld in',
		postcode: 	'Onjuiste postcode',
		email: 		'Onjuist e-mailadres',
		emailunique:'E-mailadres is al geregistreerd',
		loginunique:'Gebruikersnaam is al geregistreerd',
		select: 	'Selecteer aub een optie',
		time:		'Onjuiste tijd',
		date: 		'Onjuiste datum',
		mindate:	'Datum ligt te ver in het verleden',
		maxdate:	'Datum ligt te ver in de toekomst',
		phone:		'Vul aub een geldig telefoonnummer in',
		phonenl:	'Vul aub een geldig telefoonnummer in',
		minlength: 	'Ingevulde tekst is te kort',
		maxlength:	'Ingevulde tekst is te lang',
		minvalue:	'Grotere waarde verwacht',
		maxvalue:	'Kleinere waarde verwacht',
		pattern:	'Onjuiste invoer',
		equalto:	'Velden komen niet overeen',
		notequalto:	'Velden mogen niet gelijk zijn',
		user:		'Gebruikersnaam is onjuist',
		website:	'Website adres is onjuist. Een adres moet altijd beginnen met http://',
		name:		'Ongeldige tekens in naam',
		initials:	'Onjuiste voorletters. Vul aub voorletters in gescheiden met een punt',
		unique:		'Dubbele waarde',
		chars:		'Alleen letters worden toegestaan',
		numeric:	'Alleen nummers worden toegestaan',
		bank:		'Onjuist giro- of bankrekeningnummer',
		greater:	'Waarde is groter dan de gekoppelde waarde',
		less:		'Waarde is kleiner dan de gekoppelde waarde',
		file: {
			image:	'Bestand is geen geldig afbeelding (ondersteunde formaten: jpg/png/gif)',
			doc:	'Bestand is geen geldig document (ondersteunde formaten: doc/docx/xls/xlsx/ppt/pptx/pdf)',
			video:	'Bestand is geen geldig video bestand (ondersteunde formaten: mov/avi/wmv/mpg)'
		},
		ajax:		'Er is een fout ontstaan bij het valideren van dit veld. Probeer het aub nogmaals. Wanneer u het probleem blijft houden, raden wij u aan contact op te nemen met de website beheerder.',
		unload:		'Bij het verlaten van deze pagina zullen alle wijzigingen verloren gaan.'
	},

	/**
	 * Reset form state
	 * @param object form		Form object
	 * @param object options	Validator options
	 */
	resetForm : function (form, options){
		
		$('.'+options.headElementCssClass, form).hide();

		// reset validator groups
		form.validator.groups = [];

		$("div[id^='"+options.inlineMessageElementIdPrefix+"'], div[class*='"+options.inlineMessageElementIdPrefix+"']", form).hide();
		$('div.'+options.fieldErrorCssClass+', :input.'+options.fieldErrorCssClass, form).removeClass(options.fieldErrorCssClass);
	},
	
	disableUnfocusValueFields: function(form)
	{
		$.each($.validator.unfocusValueFields, function(){
			if ($(this).val()==this.unfocusValue && this.type!='password') $(this).val('');
		});
	},
	
	enableUnfocusValueFields: function(form)
	{
		$.each($.validator.unfocusValueFields, function(){
			if ($(this).val()=='' && this.type!='password') $(this).val(this.unfocusValue);
		});
	},

	/**
	 * Perform validation on all form elements
	 * @param object form	Form object
	 * @return bool			Validation state
	 */
	validateForm : function(form){
			
		var options = (form.validator ? form.validator.options : $.validator.defaultOptions)
			,validatedOK = true
			,idx = new Object, dateIdx = [], timeIdx = []
			,data = [], e=0
			,focusField;

		//set tinyMCE values to textarea's:
		if (typeof tinyMCE == 'object') {
			tinyMCE.triggerSave();
		}		
		// reset errors
		$.validator.resetForm(form, options);
		
		// disable form
		if (options.formOverlay) $.validator.setOverlay(form);
		
		// disable unfocus value fields
		$.validator.disableUnfocusValueFields();
		
		// check functions
		function isDateObject(id) {
	    	var ob = document.getElementById(id);
	    	return (ob&&ob.className.indexOf('validator-date') > -1);
	    }
	    function isTimeObject(id) {
	    	var ob = document.getElementById(id);
	    	return (ob&&ob.className.indexOf('validator-time') > -1);
	    }
		
		// Loop through each input and validate
		$(':input', form).each(function(i)
		{
			var fieldElm, value, type, name = this.name;
			if (name == "" || typeof(name) == 'undefined') return;
			
			// set type for special input fields
			var spos = name.lastIndexOf('_'), suffix = name.substring(spos+1), prefix = name.substring(0, spos);
			if (isDateObject(this.id.substring(0,this.id.lastIndexOf('_'))) && (suffix=='day' || suffix=='month' || suffix=='year')) {
				if(typeof(idx[prefix])=='undefined') idx[prefix] = new Object;
				idx[prefix].type = 'date';
				idx[prefix][suffix] = this;
				return;
			} else if (isTimeObject(this.id.substring(0,this.id.lastIndexOf('_'))) && (suffix=='hour' || suffix=='min')) {
				if(typeof(idx[prefix])=='undefined') idx[prefix] = new Object;
				idx[prefix].type = 'time';
				idx[prefix][suffix] = this;
				return;
			}
			
			// convert to jQuery element
			fieldElm = $(this);
			
			// already validated
			if(typeof(idx[name])!='undefined') {
				if (idx[name].type=='date' && idx[name].year && idx[name].month && idx[name].day) {
					// date object
					value = idx[name].year.value+'-'+idx[name].month.value+'-'+idx[name].day.value;
					if (value.length!=10) value = '';
				} else if (idx[name].type=='time' && idx[name].hour && idx[name].min) {
					// time object
					value = idx[name].hour.value+':'+idx[name].min.value;
					if (value.length!=5) value = '';
				} else {
					// object already set
					return;
				}
				fieldElm.val(value);
			} else {
				idx[name] = new Object;
				idx[name].type = this.type;
			}
						
			// log validation
			idx[name].elm = this;
			
			// set type
			type = idx[name].type;
			value = fieldElm.fieldStringVal();

			// get validators
			var validators = [];
			var cssClasses = (new String(fieldElm.attr("class"))).split(" ");
			for (var i=0; i<cssClasses.length; i++){
				if (cssClasses[i].indexOf('validator-') == 0)
					validators.push(cssClasses[i].substring(10));
			}

			
			// default resultset
			var result = {name: name, result: true, msg: null, validator: null, value: null};

			// attributes
			var attr = {
				validators: validators,
				minvalue: fieldElm.attr('minvalue')||'',
				maxvalue: fieldElm.attr('maxvalue')||''
			};

			// go through each validator methods
			for (var i=0; i<validators.length; i++)
			{
				result = $.validator.validateField(name, value, validators[i], form, attr);
				if (!result.result) break;
			}

			// validation succeed
			if (result.result)
			{
				if (result.value!=null && (type=='text'||type=='hidden'||type=='textarea')) {
					fieldElm.val(result.value);
				}
			}
			else 
			{
				validatedOK = false;

				// Set focus and scroll to the first errored element
				if (!focusField) {
					focusField = $(
					type=='date' ? ":input[name='"+name+"_day']:visible, :input[name='"+name+"_month']:visible, :input[name='"+name+"_year']:visible" : (
							type=='time' ? ":input[name='"+name+"_hour']:visible,:input[name='"+name+"_min']:visible" :
							":input[name='"+name+"']:visible")
					, form);
				}

				$.validator.setErrorField(idx[name], result.msg, result.validator, form, options);
			}

			// remember results
			data[e]=result;
			e++;
		});
		
		// show head error message
		if (!validatedOK) $('.' + options.headElementCssClass, form).filter(':first').show();
		
		// set focus to first error field
		if (focusField && focusField.length) focusField.filter(':first').focus();

		// post through an hdlCallback instead of a normal post
		if (typeof options.hdlCallback == 'function')
			validatedOK = options.hdlCallback(validatedOK,form,data);
			
		// enable form again
		if (!validatedOK) {
			if (options.formOverlay) $.validator.unsetOverlay(form);
			
			// enable unfocus value fields
			$.validator.enableUnfocusValueFields();
		}
		
		// set validator key
		// TODO: generate a dynamic key
		if (validatedOK && options.validatorKey)
			$(":input[name='SFRM_validator_key']", form).val(options.validatorKey);
			
		// disable onunload handler
		if (validatedOK) $.validator.onUnloadEnabled = false;
		
		// return state
		return validatedOK;
	},

	/**
	 * Validate a field with a validator method
	 * @param string name 		Name of field
	 * @param string value 		Value of field
	 * @param string validator 	Name of validator with arguments
	 * @param object form 		Form object
	 * @param object attr		Field attributes
	 * @return object {name, result, msg, validator, value}
	 */
	validateField: function(name, value, validator, form, attr)
	{
		var msg, arg, required, method, external = false, result = true;
		var msgs = (form.validator ? form.validator.errorMessages : $.validator.defaultErrorMessages);

		var div = validator.indexOf('-');
		if (div > 0)
		{
			method = validator.substring(0,div);
			arg = validator.substring(div+1);
		}
		else
		{
			method = validator;
			switch (method) {
				case 'telefoon' : method='phone'; break;
				case 'number' : method='numeric'; break;
			}
		}
		
		/**
		 * helper function: string repeat
		 * @param string str 	String
		 * @param int i			Increment
		 * @return string
		 */
		function strRepeat(str, i) {
	        var newstr = ''; 
	        for (var j=0; j < i; j++) newstr += str; 
	        return newstr;
	    } 
		
		/**
		 * Helper function: string compare
		 * @param string str1	String 1
		 * @param string str2	String 2
		 * @param string op		Operator
		 * @return bool
		 */
		function strCompare(str1, str2, op) 
		{
			var ml = (str1.length > str2.length ? str1.length : str2.length);
			str1 = strRepeat('0',ml-str1.length)+str1;
			str2 = strRepeat('0',ml-str2.length)+str2;
			var rs = false;
			switch(op)
			{
				case 'le' : // less-equal
					rs = str1 <= str2;
					break;
				case 'ge' : // greater-equal
					rs = str1 >= str2;
					break;
				case 'e' : // equal
					rs = str1 == str2;
					break;
			}
			return rs;
		}

		// execute current validator method
		switch (method)
		{
			case 'required' :
				result = (value!='');
				msg = msgs.required;

				if (!attr.validators.indexOf('date'))
				{
					if (result && attr.minvalue!='')
					{
						method = 'minvalue';
						result = value >= attr.minvalue;
					}

					if (result && attr.maxvalue!='')
					{
						method = 'maxvalue';
						result = value <= attr.maxvalue;
					}
				}
				break;
			case 'requiredby':
				if(arg && $('#'+$.validator.filterName(arg)).fieldStringVal())
				{
					result = (value!='');
				}
				break;
			case 'postcode':
				if (value!='')
				{
					var regex = /^(\d{4})\s*([A-Za-z]{2})$/;
					result = regex.test(value);
					if (result) value = value.replace(regex, '$1 $2');
				}
				break;
			case 'email':
				if (value!='')
				{
					result = /^([\w\-]+[.])*[\w\-]+[@]([\w\-]+[.])*[\w\-]{2,}[.]\w{2,6}$/.test(value);
				}
				break;
			case 'emailunique':
				if (value!='') external = true;
				break;
			case 'loginunique':
				if (value!='') external = true;
				break;
			case 'select':
				result = (value!='');
				break;
			case 'phone':
				if (value!='')
				{
					result = /^[\d\+\-\s.,]{6,}$/.test(value);
				}
				break;
			case 'phonenl':
				//default true
				result = true;
				if (value!='')
				{
					//if value default false
					result = false;
					
					//regular check
					validFormat = /^[\d\+\-\s.,]{6,}$/.test(value);
					if(validFormat) {
						
						var bMobile = false;
						var iStart	= 3;
					  	
					  	//strip spaces
					  	value = value.replace(/(\s)/g, '');
					  	sCleanVal = value.replace(/(-)/g, '');
					  	
					  	//replace countrycode
					  	sCleanVal = sCleanVal.replace(/(0031)/g, '0');
					  	sCleanVal = sCleanVal.replace(/(\+31)/g, '0');
					  						  	
					  	//check for 10 digits
					  	if(sCleanVal.length == 10) {
						  	//determine if mobile number
						  	if(sCleanVal.substr(0,2) == '06') {
						  		bMobile = true;
						  		iStart = 2;
						  	}
						  	//check for 0 at start
							if(sCleanVal.substr(iStart,1)!= '0') {
								
								//check for number trick
								if((bMobile && sCleanVal.substr(iStart) != '12345678') || (!bMobile && sCleanVal.substr(iStart) != '1234567')) {
									result = true;
									//$(':input#'+name).val();
								}		
							}
					  	}
					  	//set clean phonenumber
					  	if (result) value = sCleanVal.substr(0,iStart)+'-'+sCleanVal.substr(iStart);
					}
				}
				break;
			case 'date':
				if (value!='')
				{
					var regex = /^(\d{4})-(\d{2})-(\d{2})$/;
					if(regex.test(value))
					{
						var d = new Date(value.replace(regex, '$2/$3/$1'));
						result = ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) &&
										(parseInt(RegExp.$3, 10) == d.getDate()) &&
										(parseInt(RegExp.$1, 10) == d.getFullYear() );
						msg = msgs.date;
					}
					else
					{
						result = false;
						msg = msgs.required;
					}

					if (result && attr.minvalue!='')
					{
						method = 'minvalue';
						result = value >= attr.minvalue;
						msg = msgs.mindate;
					}

					if (result && attr.maxvalue!='')
					{
						method = 'maxvalue';
						result = value <= attr.maxvalue;
						msg = msgs.maxdate;
					}
					
				}
				break;
			case 'time' :
				if (value.length==5)
				{
					var regex = /^(\d{2}):(\d{2})$/;
					if (regex.test(value))
					{
						var h = parseInt(value.replace(regex, '$1')), m = parseInt(value.replace(regex, '$2'));
						if (h<0 || h>23 || m<0 || m>59)
						{
							result = false;
						}
					}
					else
					{
						result = false;
					}
				}
				break;
			case 'equalto' :
				if (arg)
				{
					var revalue = $('#'+$.validator.filterName(arg)).fieldStringVal();
					if ((revalue!='' || value!='') && revalue!=value)
					{
						result = false;
					}
				}
				break;
			case 'notequalto' :
				if (arg)
				{
					var revalue = $('#'+$.validator.filterName(arg)).fieldStringVal();
					if ((revalue!='' || value!='') && revalue==value)
					{
						result = false;
					}
				}
				break;
			case 'user':
				if (value!='')
				{
					result = /^[a-zA-Z0-9_\-]{3,64}$/.test(value);
				}
				break;
			case 'maxlength' :
				arg = parseInt(arg);
				if (arg > 0)
				{
					result = (value.length <= arg);
				}
				break;
			case 'minlength' :
				arg = parseInt(arg);
				if (value!='' && arg > 0)
				{
					result = (value.length >= arg);
				}
				break;
			case 'website' :
				if (value!='')
				{
					if (!/^(ftp|http|https):\/\//.test(value)) value = 'http://'+value;
					result = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/.test(value);
				}
			case 'name' :
				if (value!='')
				{
					result = /^[^0-9~!@#$%^&*+={}\[\]|\\<>_]+$/.test(value);
				}
				break;
			case 'pattern' :
				if (value!='')
				{
					var pattern,regExp;
					pattern = $('#'+$.validator.filterName(name)).attr('pattern');
					patternoptions = $('#'+$.validator.filterName(name)).attr('patternoptions');
					regExp = new RegExp(pattern,patternoptions);				
					result = regExp.test(value);
				}
				break;
			case 'initials' :
				if (value!='')
				{
					value = value.replace(/([a-z]{1}|th)([\s,\.]+|$)/gi, '$1.').toUpperCase();
					result = /^(([a-z]{1}|th)\.)+$/i.test(value);
				}
				break;
			case 'unique' :
				if (value!='')
				{
					if (!arg) arg = 0;
					if (form.validator && form.validator.groups && form.validator.groups[arg])
					{
						if (form.validator.groups[arg].indexOf(value) > -1)
						{
							result = false;
						}
						else
						{
							form.validator.groups[arg].push(value);
						}

					}
					else
					{
						form.validator.groups[arg] = [];
						form.validator.groups[arg].push(value);
					}
				}
				break;
			case 'chars' :
				if (value!='')
				{
					result = /^([a-zA-Z])$/.test(value);
				}
				break;
			case 'numeric' :
				if (value!='')
				{
					result = /\d+$/.test(value);
					if (result && attr.minvalue!='')
					{
						method = 'minvalue';
						result = value >= attr.minvalue;
					}

					if (result && attr.maxvalue!='')
					{
						method = 'maxvalue';
						result = value <= attr.maxvalue;
					}
				}
				break;
			case 'bank' :
				result = true;
				var len = value.length;
				if (len == 9 ) {
					var berekening = 0;
					while (len > 0) {
						berekening += len*value.substr((9-len),1);
						len--;
					}
					result = (berekening % 11 == 0);
				} 
				else if (len < 7 || len > 9) 
				{
					result = false;
				}
				else if (value.substr(0,1) == '0') {
					result = false;
				}
				break;
			case 'greater' :
				if (value!='' && arg && !strCompare(value, $('#'+$.validator.filterName(arg)).fieldStringVal(), 'ge'))
				{
					result = false;
				} 
				break;
			case 'less' :
				if (value!='' && arg && !strCompare(value, $('#'+$.validator.filterName(arg)).fieldStringVal(), 'le'))
				{
					result = false;
				} 
				break;
			case 'file' :
				if (value != '') 
				{
					switch (arg)
					{
						case 'image' :
							result = /\.(jpg|gif|jpeg|png)$/i.test(value);
							msg = msgs.file.image;
							break;
						case 'doc' :
							result = /\.(doc|xls|pdf|ppt|pps|docx|xlsx|pptx)$/i.test(value);
							msg = msgs.file.doc;
							break;
						case 'video' :
							result = /\.(mov|avi|wmv|mpg|mpeg)$/i.test(value);
							msg = msgs.file.video;
							break;
					}
				}
				break;
			default :
				if (typeof($.validator.customValidators[method]) == 'function')
				{
					return $.validator.customValidators[method](name, value, method, form, attr, arg);
				}
				break;
		}
		
		// specific external validation?
		if (external)
		{
			$.ajax({
				url: '/dynamics/validator.php',
				async:false,
				dataType:'json',
				data: {
					validator:validator,
					value:value,
					argument: arg
				},
				success: function(dr){
					result=dr.result;
				},
				error: function(){
					result=false;
					msg=msgs.ajax;
				}
			});
		}
		
		if (!result && !msg) {
			msg = msgs[method];
		}

		return {name: name, result: result, msg: msg, validator: method, value: value};
	},

	/**
	 * Set error for a specific field
	 * @param object field			Field properties
	 * @param string fieldMessage 	Error message
	 * @param string validator		Validator method
	 * @param object form			Form object
	 * @param object options		Validator options
	 */
	setErrorField: function(field, fieldMessage, validator, form, options)
	{
		var fieldElm = $(field.elm);
		var elmName = field.elm.name;
		var errMsgElm = $('#'+options.inlineMessageElementIdPrefix + $.validator.filterName(elmName), form);
		fieldElm.addClass(options.fieldErrorCssClass).parents('div.'+options.formRowCssClass+':first').addClass(options.fieldErrorCssClass);

		if (field.type=='date')	{
			$(field.year).addClass(options.fieldErrorCssClass);
			$(field.month).addClass(options.fieldErrorCssClass);
			$(field.day).addClass(options.fieldErrorCssClass);
		} else if (field.type=='time') {
			$(field.hour).addClass(options.fieldErrorCssClass);
			$(field.min).addClass(options.fieldErrorCssClass);
		}

		// show inline error messages
		if (options.showInlineMessages && errMsgElm.length){
			errMsgElm.show();
			if ($('div.'+options.inlineMessageElementIdPrefix+validator, errMsgElm).length){ // text predefined; just show
				$('div.'+options.inlineMessageElementIdPrefix+validator, errMsgElm).show();
			} else {
				if (!$('div.'+options.inlineMessageElementIdPrefix+'dynamic', errMsgElm).length){
					errMsgElm.append('<div class="'+options.inlineMessageElementIdPrefix+'dynamic"></div>');
				}
				$('div.'+options.inlineMessageElementIdPrefix+'dynamic', errMsgElm).show().html(fieldMessage);
			}
		}
	},

	/**
	 * Set overlay on form
	 * @param object form		Form object
	 */
	setOverlay: function(form)
	{
		var	formElm = $(form),
			overlayElm = $('div.formOverlay', form),
			warningElm = $('div.formWarning', form);
			
		if (overlayElm.length==0) return;
			
		if ($.browser.msie && $.browser.version <= 6) $('select', form).css('visibility', 'hidden');			
		overlayElm.height(formElm.height()).width(formElm.width()).show();
		warningElm.css({top: parseInt((formElm.height()-warningElm.height())/2)+'px'}).show();
	},
	
	/**
	 * Unset overlay from form
	 * @param object form		Form object
	 */
	unsetOverlay: function(form)
	{
		if ($.browser.msie && $.browser.version <= 6) $('select', form).css('visibility', 'visible');
		$('div.formWarning,div.formOverlay', form).hide();
	},

	/**
	 * Filter form input name
	 * @param string name	Name
	 * @return string
	 */
	filterName: function(name)
	{
		return (name ? name.replace(/([\[\]])/g, '\\$1') : '');
	},

	/**
	 * Add new validator method
	 * @param string name		Name
	 * @param function func		Function
	 */
	addValidator: function(name, func)
	{
		$.validator.customValidators[name] = func;
	},
	
	/**
	 * Enable validator with tokens
	 * @param object options form and assigned token
	 */	
	tokenEnable: function(options){
	
		jQuery.each(options, function(frm, key) {
	      $('#'+frm).validatorEnable({validatorKey:key});
	    });
		
	},
	
	/**
	 * Assign single token to all forms
	 * @param string key assigned token
	 */	
	tokenEnableAll: function(key){
		
		$('form').each(function(){
			$('#'+this.id).validatorEnable({validatorKey:key});
		});	
	}
	
	
};

})(jQuery);
;;
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();

$.swfVersion = '9.0.0';
$.swfExpressInstall = '/includes/flash/expressinstall.swf';
$.swfEmbed = function(file,contId,width,height,vars,params) {

	vars = $.extend({}, vars);
	$.each(vars, function(k,v){
		vars[k] = new String(v).replace(/"/g, "%22").replace(/&/g, "%26"); // filter special chars
	});

	params = $.extend({
		quality: 'high',
		scale: 'noscale',
		align: 'right',
		salign: 'tl',
		wmode: 'transparent',
		allowfullscreen: 'true',
		allowscriptaccess: 'always'
	}, params);

	swfobject.embedSWF(file, contId, width, height, $.swfVersion, $.swfExpressInstall, vars, params);
};
;;
//central declaration of maps and markers
var GGMaps = new Array;
var GGMarkers = new Array;

//load map with lat and lng
function loadGGMap(ctrl,lat,lng) {
	if (lat && lng && GBrowserIsCompatible())
	{
  		GGMaps[ctrl] = new GMap2(document.getElementById(ctrl+"_map"));
  		GGMaps[ctrl].clearOverlays();
  		
  		var center1 = new GLatLng(lat, lng);
  		
        GGMaps[ctrl].addControl(new GSmallMapControl());
        GGMaps[ctrl].addControl(new GMapTypeControl());

       	GGMaps[ctrl].setCenter(center1, 7, G_HYBRID_MAP); //G_SATELLITE_MAP

		//set values to inputs
       	document.getElementById(ctrl+"_lat").value = center1.lat().toFixed(5);
        document.getElementById(ctrl+"_lng").value = center1.lng().toFixed(5);
        
        GGMarkers[ctrl] = new GMarker(center1, {draggable: true});
        GGMaps[ctrl].addOverlay(GGMarkers[ctrl]);

  	 	GEvent.addListener(GGMarkers[ctrl], "dragend", function() {
			setGGMapLocation(ctrl);
        });
	}
}

/**
 * Fix all GoogleMaps after hiding or unhiding a div
 * @obsolete This is now handled by setting a fixed width and heigth when loading the map
 */
function checkResizeGGMaps()
{
	for ( var ctrl in GGMaps )
	{
		//GGMaps[ctrl].checkResize();
		updateGGMap(ctrl,true);
	}
}

//update map with input values
function updateGGMap(ctrl,forceUpdate) {
	if (!document.getElementById(ctrl+'_map')) return;
	
	var lat = parseFloat(document.getElementById(ctrl+"_lat").value).toFixed(5);
	var lng = parseFloat(document.getElementById(ctrl+"_lng").value).toFixed(5);

	if(lat!='' && lng!='') {
		//check if new point specified
		var setPoint = GGMarkers[ctrl].getPoint();
		if((typeof(forceUpdate)!='undefined' && forceUpdate) || document.getElementById(ctrl+"_lat").value != setPoint.lat().toFixed(5) || document.getElementById(ctrl+"_lng").value != setPoint.lng().toFixed(5)) {
			loadGGMap(ctrl,parseFloat(lat), parseFloat(lng));
		}
	}
}

//show conversion options
function toggleGGMapOptions(ctrl)
{
	var convert_block = document.getElementById(ctrl+'_convert');
	
	//document.getElementById(ctrl+'_convert').style.display=((document.getElementById(ctrl+'_convert').style.display=='none')?'':'none');
	convert_block.style.display = 'block';
	
	//on open show rd coordinates
	//if(document.getElementById(ctrl+'_convert').style.display!='none') latLngGGMap(ctrl);
	latLngGGMap(ctrl);
	
	//set togglestatus
	var ctrl_pop = document.getElementById(ctrl+'_pop');
	if (ctrl_pop) {
		if(document.getElementById(ctrl+'_convert').style.display!='none') {
			ctrl_pop.style.backgroundImage = 'url(/images/bg_meer_waarden_clicked.jpg)';
		} else {
			ctrl_pop.style.backgroundImage = 'url(/images/bg_meer_waarden.jpg)';
		}
	}
}

//convert RD
function rdsGGMap(ctrl,rdX,rdY)
{
	$.get('/dynamics/googlemap.php',{ x: rdX, y: rdY },
		function(msg) {
			var result = eval('(' + msg + ')');
			if(result.lat && result.lng) {
				loadGGMap(ctrl,parseFloat(result.lat), parseFloat(result.lng));
			}
			if(result.error) {
				alert(result.error);
			} else {
				toggleGGMapOptions(ctrl);
			}
		});
}

//convert LatLng
function latLngGGMap(ctrl)
{
	
	var setPoint = GGMarkers[ctrl].getPoint();
	var lat = setPoint.lat().toFixed(5);
	var lng = setPoint.lng().toFixed(5);	
	
	
	$.get('/dynamics/googlemap.php',{ latt: lat, long: lng },
		function(msg) {
			var result = eval('(' + msg + ')');
			if(result.x && result.y) {
				document.getElementById(ctrl+"_rd_X").value = result.x;
				document.getElementById(ctrl+"_rd_Y").value = result.y;
			}
		});
}

//convert zip
function zipGGMap(ctrl,zip)
{
	$.get('/dynamics/googlemap.php',{ zip: zip },
		function(msg) {
			var result = eval('(' + msg + ')');
			if(result.lat && result.lng) {
				loadGGMap(ctrl,parseFloat(result.lat), parseFloat(result.lng));
			}
			if(result.error) {
				alert(result.error);
			} else {
				toggleGGMapOptions(ctrl);
			}
		});
}

//convert address
function addressGGMap(ctrl,address)
{
	if (GBrowserIsCompatible())
	{
		geocoder = new GClientGeocoder();
		if (geocoder) {
			geocoder.getLocations(
		          address,
		          function(location) {
		            if (!location || location.Status.code!=200) {
		              alert('Er is een fout opgetreden: adres of postcode kan niet worden gevonden');
		            } else {
		            	loadGGMap(ctrl,parseFloat(location.Placemark[0].Point.coordinates[1]), parseFloat(location.Placemark[0].Point.coordinates[0]));
		    			toggleGGMapOptions(ctrl);
		    		}
		          }
		        );
		}
	}
}

//show default map: marker to drag no value set
function loadDefaultGGMap(ctrl) 
{
	if (GBrowserIsCompatible())
	{
  		GGMaps[ctrl]  = new GMap2(document.getElementById(ctrl+"_map"),{size: new GSize(332, 332)});
  		GGMaps[ctrl] .clearOverlays();

  		//flink location:
  		var center1 = new GLatLng(52.09368, 4.35501);

        GGMaps[ctrl] .addControl(new GSmallMapControl());
        GGMaps[ctrl] .addControl(new GMapTypeControl());
       	GGMaps[ctrl] .setCenter(center1, 6, G_SATELLITE_MAP);
 
        GGMarkers[ctrl] = new GMarker(center1, {draggable: true});
        GGMaps[ctrl] .addOverlay(GGMarkers[ctrl]);

  	 	GEvent.addListener(GGMarkers[ctrl], "dragend", function() {
			setGGMapLocation(ctrl);
        });
	}
}

//set new marker location to inputs
function setGGMapLocation(ctrl)
{
	var setPoint = GGMarkers[ctrl].getPoint();
	document.getElementById(ctrl+"_lat").value = setPoint.lat().toFixed(5);
	document.getElementById(ctrl+"_lng").value = setPoint.lng().toFixed(5);
	
	//on open conversion show rd coordinates
	if(document.getElementById(ctrl+'_convert').style.display!='none') {
		 latLngGGMap(ctrl);
		 document.getElementById(ctrl+"_address").value = "";
	}
		
}

//show location
var map;

function showGGMap(id,lat,lng,params)
{
	if (typeof params != 'object') params = {};
	
	if (lat && lng && GBrowserIsCompatible() && document.getElementById(id))
	{
  		map = new GMap2(document.getElementById(id));
  		map.clearOverlays();
  		
        var showMapCtrl 	 = (params.mapControl ? params.mapControl : "true");
        var showTypeCtrl 	 = (params.typeControl ? params.typeControl : "true");
        var showHybrideMap	 = (params.hybrideMap ? params.hybrideMap : "true");
        var showPhysicalMap	 = (params.physicalMap ? params.physicalMap : "true");
        var showSatelliteMap = (params.satelliteMap ? params.satelliteMap : "true");
        var zoom 			 = (params.zoom ? params.zoom : 7);
        var defaultMap 		 = (params.defaultMap ? params.defaultMap : G_SATELLITE_MAP);
             
        if(showMapCtrl == "true")		map.addControl(new GSmallMapControl());
        if(showTypeCtrl == "true")		map.addControl(new GMapTypeControl());
        
        if(showHybrideMap != "true")	map.removeMapType(G_HYBRID_MAP);
		if(showPhysicalMap != "true") 	map.removeMapType(G_PHYSICAL_MAP);
		if(showSatelliteMap != "true") 	map.removeMapType(G_SATELLITE_MAP);
        
        var center1 = new GLatLng(lat, lng);
                
       	map.setCenter(center1, zoom, defaultMap);
		
        var marker = new GMarker(center1, {draggable: false});
        map.addOverlay(marker);
	}
}
//show location
function testGGMap(id,lat,lng)
{

	if (lat && lng && GBrowserIsCompatible() && document.getElementById(id))
	{
  		var point = new GLatLng(52.35909, 5.38521);
  	 	var map = new GMap2(document.getElementById(id));
        var marker = new GMarker(point);
        map.addControl(new GSmallMapControl());
        map.setCenter(point, 13);
		map.removeMapType(G_HYBRID_MAP);
		//map.addMapType(G_PHYSICAL_MAP);
		map.addControl(new GMapTypeControl());
        map.setMapType(G_SATELLITE_MAP);
        map.addOverlay(marker);   
	}
}


function setGGMapMarker(object,clear)
{
	if(map == null) {
		alert('first show GGMap');
		return;
	}
	
	if (GBrowserIsCompatible())
	{			
		var markerIcon = new GIcon(G_DEFAULT_ICON);
		markerIcon.shadow = (object.iconShadow ? object.iconShadow : "/images/shared/gmaps/shadow.png");
		markerIcon.image = (object.iconImage ? object.iconImage : "/images/shared/gmaps/marker.png") ;
		markerIcon.iconSize = new GSize(20, 34);
		markerIcon.shadowSize = new GSize(37, 34);
		markerIcon.iconAnchor = new GPoint(9, 34);
		markerIcon.infoWindowAnchor = new GPoint(9, 2);
				
		var center = new GLatLng(object.lat, object.lng);
		var marker = new GMarker(center, {draggable: false, icon: markerIcon});
	  	if(object.html)  {
	  		//alert('<p><b>'+object.scientificname+'</b><br/>'+object.nederlandsenaam+'</p><p>'+object.collectingdate+', '+object.vindplaats+'<br/>'+object.collector+'<br/><br/>'+object.chronoterm_low+' - '+object.chronoterm_high+'</p><a href="/fossielvondst/'+object.objectid+'">details</a>');
	  		marker.bindInfoWindowHtml(object.html);
	  	}
	  	if(clear) {
	  		map.clearOverlays();
	  		map.setCenter(center);
	  	}
	    map.addOverlay(marker);
	}
}
;;
/**
 * $ jQuery Site Overlay
 * Version 2.0.6 (2008-12-02)
 *
 * Copyright (c) 2008 Flink BV - www.flink.nl
 */


$.overlay = {

	// array of current popups
	popups : [],

	// array of global event handlers
	event: $(),

	// default options
	defaultOptions: {
		name: 'default',						// name of popup; id of popup will be "popup_<name>"
		startWidth: 150,						// always open a popup with these geometries
		startHeight: 150,						// ....
		minWidth: 500,							// popup geometries must be at least these geometries after animation
		minHeight: 300,							// ....
		maxWidth: 800,							// maximum geometries allowed on a image popup (could be overwritten by maximum window geometries)
		maxHeight: 600,							// ....
		showAnimation: 'stretch',				// show animation type
		transitionAnimation: 'stretch',			// transition animation type
		hideAnimation: 'none',					// hide animation type
		animation: null,						// animation type used for all actions: show, hide and transition
		showTime: 1000,							// show animation time
		transitionTime: 1000,					// transition animation time
		hideTime: 600,							// hide animation time
		time: null,								// animation time used for all actions: show, hide and transition
		align: 'center',						// horizontal popup alignment
		vAlign: 'center',						// vertical popup alignment
		url: null,								// shortcut to 'content.url'
		content: '',							// html content or an object with argument used with $.ajax
		openHandler: null,						// user's open handler, executed when popup is shown first time
		showHandler: null,						// user's show handler (also used with transition)
		hideHandler: null,						// user's hide handler
		formValidation: true,					// enable form validation with true or an object with options passthrough to $.validatorEnable()
		imageNavText: 'Image % of %',			// Text used in image navigation text
		enableImgTitle: true,					// show image title when available
		enableImgNav: true,						// show image navigation when more then 1 image
		enableCloseButton: true,				// show close button
		marginX: 60,							// margins substracted from maximum window size
		marginY: 60,							// ....
		maskTrigger: true,						// use different mask trigger
		enableMask: true,						// enabled/disable overlay mask
		isGallery: false,						// internal: popup is a gallery
		spacerImg: '/images/shared/x.gif',		// spacer image: must be a transparent gif
		attribImgTitle: 'title'					// attribute to get image title from
	},

	/**
	 * Open popup
	 * @param Map options
	 */
	open: function(options)
	{
		
		
		// merge with default options
		options = $.extend({}, this.defaultOptions, options);
		
		// some special options
		if (options.maskTrigger===true) options.maskTrigger = this.close;
		if (options.animation) options.showAnimation = options.hideAnimation = options.transitionAnimation = options.animation;
		if (options.time) options.showTime = options.hideTime = options.transitionTime = options.time;
		if (options.url && !options.content) options.content = $.extend({}, {url: options.url}, options.content);
		
		// defaults
		var name = options.name
			,newpopup = false
			,$popup = $('#popup_'+name)
			,$mask = $('#overlay')
		;

		// set mask
		if (options.enableMask && !$mask.length) {
			$mask = $('<div id="overlay"></div>').appendTo('body');
			if (options.maskTrigger) $mask.click(options.maskTrigger);
			if($.browser.msie && $.browser.version < 7) $('select').css('visibility', 'hidden');
		}

		// create new popup
		if (!$popup.length) {
			$popup = $('<div id="popup_'+name+'" class="popup">'
				+ '<table class="popupFrame" cellspacing="0" border="0" cellpadding="0">'
				+ '<tr><td class="tl"><img src="'+options.spacerImg+'"></td><td class="t"></td><td class="tr"><img src="'+options.spacerImg+'"></td></tr>'
    			+ '<tr><td class="l"></td><td class="popupContainer"><div class="popupLoader" /><div class="popupContent" /><div class="popupAnimator" />'
    			+ (options.enableCloseButton ? '<a href="#" class="closeBtn" rel="popupClose" />' : '')
    			+ '</td><td class="r"></td></tr>'
    			+ '<tr><td class="bl"></td><td class="b"></td><td class="br"></td></tr></table>'
				+ '</div>').appendTo('body');

			options.popupMarginX = $popup.outerWidth() - $('.popupContainer', $popup).outerWidth();
			options.popupMarginY = $popup.outerHeight() - $('.popupContainer', $popup).outerHeight();
			$popup[0].options = options;

			newpopup = true;
			this.popups.push(name);
		}

		// get page sizes
		var p = this.getDocSize()
			,absolute = ($popup.css('position')=='absolute')
			,maxWidth = p.innerWidth - options.marginX - options.popupMarginX
			,maxHeight = p.innerHeight - options.marginY - options.popupMarginY
		;

		// set maximum width & height
		if(options.maxWidth && maxWidth>options.maxWidth) maxWidth = options.maxWidth;
		if(options.maxHeight && maxHeight>options.maxHeight) maxHeight = options.maxHeight;

		// setup
		var $animator = $('.popupAnimator', $popup)
			,$content = $('.popupContent', $popup)
			,$loader = $('.popupLoader', $popup).show()
			,$closeBtn = $('.closeBtn', $popup).hide()
			,animating = false
			,params = {
				animation: (newpopup ? options.showAnimation : options.transitionAnimation),
				time: (newpopup ? options.showTime : options.transitionTime),
				call: (newpopup ? 'show' : 'transition'),
				end: showHandler,
				width: 0,
				height: 0
			}
		;

		// set animator start width and height
		if (newpopup && (options.startWidth || options.startHeight)) {
			$animator.width(options.startWidth).height(options.startHeight).show();
		} else {
			$animator.width($content.width()).height($content.height()).show();
		}

		// hide after determined geometries.. could be unpredictable otherwise
		$content.hide();

		// fix cursor problem in firefox
		if (absolute && $.browser.mozilla && $.browser.version < '1.9.0.0') {
		    tmp = $('<div id="tmp_bottom"></div>').appendTo('body');
		    $('#overlay').css({position: 'absolute', height: tmp.offset().top});
		    tmp.remove();
		}

		// set horizontal align
		switch (options.align)
		{
			case 'left': $popup.css({left: (absolute ? 0+p.scrollLeft : 0)}); break;
			case 'right': $popup.css({right: 0}); break;
			case 'center' : $popup.css({left: '50%', marginLeft: '-'+parseInt($popup.width()/2)+'px'}); break;
		}

		
		// set vertical align
		switch (options.vAlign)
		{
			case 'top': $popup.css({top: (absolute ? 0+p.scrollTop : 0)}); break;
			case 'bottom': $popup.css({bottom: 0});	break;
			case 'center': $popup.css({top: (absolute ? p.scrollTop + (p.innerHeight/2) : '50%'), marginTop: '-'+parseInt($popup.height()/2)+'px'}); break;
		}

		// custom open event handler
		if ($.isFunction(options.openHandler)) options.openHandler();
		$.overlay.event.triggerHandler('open', [$popup,options]);

		// show handler
		function showHandler()
		{
			// hide loader
			$loader.hide();

			// show close button
			$closeBtn.show();

			// enable validation
			if (options.formValidation && typeof($.validator)=='object') {
				$('form', $popup).validatorEnable($.extend({hdlCallback: $.overlay.formHandler}, options.formValidation));
			}

			// resize handler
			if (newpopup && !options.isGallery) {
				$popup.bind('resize', function(){
					if (!animating) {
						params.animation = 'none';
						params.end = function(){ animating = false; };
						showPopup();
					}
				});
			}

			// custom resize event trigger for non IE
			if (!($.browser.msie && $.browser.version>=7)) {
				$popup[0].resizer = {
					width: $popup.width(),
					height: $popup.height(),
					interval: setInterval(function(){
						if (!animating) {
							var resizer = $popup[0].resizer, curWidth = $popup.width(), curHeight = $popup.height();
							if (curWidth!=resizer.width || curHeight!=resizer.height) {
								//alert('resize: '+curHeight+' '+resizer.height);
								resizer.width = curWidth;
								resizer.height = curHeight;
								$popup.triggerHandler('resize');
							}
						}
					}, 100)
				};
			}

			// bind close handler
			$('a[rel*=popupClose]', $popup).unbind('click').click(function(){ $.overlay.hide($popup, options); return false; });

			// throw popup event
			$popup.triggerHandler('show', [$popup,options]);

			// throw overlay event
			$.overlay.event.triggerHandler('show', [$popup,options]);

			// custom handler
			if ($.isFunction(options.showHandler)) options.showHandler($popup, options);

			// animation ended
			animating = false;
		}

		// animation function
		function showPopup()
		{
			var p = $.overlay.getDocSize()
				,maxWidth = p.innerWidth - options.marginX - options.popupMarginX
				,maxHeight = p.innerHeight - options.marginY - options.popupMarginY
			;

			// animating
			animating = true;

			// get width from content
			params.width = $content.outerWidth();

			// set minimum width
			if (params.width < options.minWidth) {
				$content.width(params.width = options.minWidth);
			}

			// get height from content
			params.height = $content.outerHeight();

			// set minimum height
			if (params.height < options.minHeight) {
				$content.height(params.height = options.minHeight);
			}

			// switch to absolute position when popup is to high
			if (params.height > maxHeight || params.width > maxWidth) {
				options.vAlign = 'top';
				absolute = true;
				$popup.css({position: 'absolute', top: 0+p.scrollTop, marginTop: (p.innerHeight-$popup.height())/2});
			}

			// set maximum geometries
//			if (params.width > options.maxWidth) $content.width(params.width = maxWidth);
//			if (params.height > options.maxHeight) $content.height(params.height = maxHeight);

			// start animation
			$.overlay.animate($popup, options, params);
		}

		// popup is gallery
		if (options.isGallery) {
			//define title attribute
			var titleAttr = options.attribImgTitle;
			
			// define current image
			var img = options.galCollection[options.galCurrent]
				,title = $(img).attr(titleAttr) || ''
				,imgSrc = img.src
					.replace(/&thumbnail=\d+$/, (options.thumbId!==false ? '&thumbnail='+options.thumbId : ''))
					.replace(/&thumb_nr=\d+$/, (options.thumbId!==false ? '&thumb_nr='+options.thumbId : ''))
			;
			
			options.galTotal = options.galCollection.length;

			// after image is loaded
			function onload()
			{
				this.onload=null;
				var imgHeight = this.height
					,imgWidth = this.width
				;

				// define maximum geometries
				while (true)
				{
					if (imgWidth > maxWidth) {
						imgHeight = imgHeight * (maxWidth / imgWidth);
						imgWidth = maxWidth;
					} else if (imgHeight > maxHeight) {
						imgWidth = imgWidth * (maxHeight / imgHeight);
						imgHeight = maxHeight;
					} else break;
				}

				// build html
				var imgText='', content = '<div class="imgContainer"><table border="0" cellpadding="0" cellspacing="0"><tr><td><img src="'+imgSrc+'" width="'+imgWidth+'" height="'+imgHeight+'"></td></tr></table>';
				if (options.enableImgNav && options.galCurrent > 0) content+= '<a href="#" class="imgPrev"></a>';
				if (options.enableImgNav && options.galCurrent < options.galTotal-1) content+= '<a href="#" class="imgNext"></a>';
				content+= '</div>';

				if (options.enableImgTitle && title) imgText+= '<div class="title">'+title+'</div>';
				if (options.enableImgNav && options.galTotal>1) imgText+= '<div class="navInfo">'+options.imageNavText.replace(/%/, options.galCurrent+1).replace(/%/, options.galTotal)+'</div>';
				if (imgText) content+= '<div class="imgDetails">'+imgText+'</div>';

				// set content
				$content.html(content).show();

				// used layers
				var $imgContainer = $('.imgContainer', $popup).hide()
					,$imgDetails = $('.imgDetails', $popup).hide()
				;

				// not preceeding minimum size?
				if (imgWidth < options.minWidth) $imgContainer.width(imgWidth = options.minWidth);
				if (imgHeight < options.minHeight) $imgContainer.height(imgHeight = options.minHeight);

				// set fixed width for details
				$imgDetails.width(imgWidth);

				// calculate extra height
				var detailHeight =  $imgDetails.outerHeight();

				// hide content
				$content.hide();

				// use detail height during animation
				if (newpopup) options.popupMarginY += detailHeight;

				// hide image details
				$imgDetails.show().css({visibility: 'hidden', marginTop: '-'+detailHeight+'px'});

				// add additional parameters
				$.extend(params, {
					width: imgWidth,
					height: imgHeight,
					end: function()
					{
						// hide loader
						$loader.hide();

						// set click handler on previous button
						$('.imgPrev').click(function(){
							$(this).unbind('click');
							if (options.galCurrent>0) {
								options.galCurrent-=1;
								$.overlay.open(options);
							}
							return false;
						});

						// set click handler on next button
						$('.imgNext').click(function(){
							$(this).unbind('click');
							if (options.galCurrent<options.galTotal-1) {
								options.galCurrent+=1;
								$.overlay.open(options);
							}
							return false;
						});

						// fade image
						$imgContainer.fadeIn('slow', function() {
							// default show handler
							showHandler();

							// recalculate height (height could have been changed, eg sIFR)
							detailHeight = $imgDetails.outerHeight();

							// slide down image details
							$imgDetails.css({marginTop: '-'+detailHeight+'px', visibility: 'visible'}).animate({marginTop: 0},'slow');
						});
					}
				});

				// animate
				$.overlay.animate($popup, options, params);
			}

			// preload image
			imgPopup = new Image();
			imgPopup.onload = onload;
			imgPopup.onabort = imgPopup.onerror = $.overlay.close;
			imgPopup.src = imgSrc;
		}

		// content from ajax request
		else if (typeof(options.content) == 'object') {
			
			// execute ajax call
			$.ajax($.extend(options.content, {
				success: function(content) {
					$content.html(content);
					showPopup();
				},
				type: 'post',
				error: $.overlay.hide
			}));
		}

		// static content
		else {
			$content.html(options.content);
			showPopup();
		}
	},

	/**
	 * Hide popup
	 * @param jQuery $popup
	 * @param Map options
	 */
 	hide: function($popup, options)
	{
		// popup doesn't exists
		if ($popup.length==0) return;

		// get options
		if (!options) options = $popup[0].options;
		if (!options) return;

		// execute animation
		function hidePopup()
		{
			var $content = $('.popupContent', $popup).hide()
				,width = $content.outerWidth()
				,height = $content.outerHeight()
				,$animator = $('.popupAnimator', $popup).width(width).height(height).show()
				,$closeBtn = $('.closeBtn', $popup).hide()
			;

			// set to start geometries (only when popup isn't smaller)
			if (width>options.startWidth) width = options.startWidth;
			if (height>options.startHeight) height = options.startHeight;

			// start animation
			$.overlay.animate($popup, options, {
				animation: options.hideAnimation,
				time: options.hideTime,
				width: width,
				height: height,
				call: 'hide',
				end: hideHandler
			});
		}

		// hide handler
		function hideHandler()
		{
			$popup.hide();
			if ($.isFunction(options.hideHandler)) options.hideHandler($popup,options);
			$popup.triggerHandler('hide', [$popup,options]);
			$.overlay.event.triggerHandler('hide', [$popup,options]);
			$popup.remove();
			var newpopups = [];
			for(var i=0; i < $.overlay.popups.length; i++) if ($.overlay.popups[i]!=options.name) newpopups.push($.overlay.popups[i]);
			$.overlay.popups = newpopups;
			if (newpopups.length==0) $.overlay.close();
		}

		// unbind resize event handlers
		$popup.unbind('resize');
		if (!($.browser.msie && $.browser.version>=7)) clearInterval($popup[0].resizer.interval);

		// close without hassle
		if (options.close) {
			options.hideAnimation = 'none';
			hidePopup();
		}

		// start gallery hide animation
		else if (options.isGallery) {
			var preAnimate = function(){$('.imgContainer', $popup).fadeTo('slow', 0, hidePopup);}
				,$imgDetails = $('.imgDetails', $popup)
			;

			if ($imgDetails.length) $imgDetails.slideUp('slow', preAnimate);
			else preAnimate();
		}

		// start normal hide animation
		else {
			hidePopup();
		}
	},

	/**
	 * Animate popup
	 * @param jQuery $popup
	 * @param Map options
	 * @param Map params
	 * @return void
	 */
	animate: function($popup, options, params)
	{
		var $animator = $('.popupAnimator', $popup)
			,$content = $('.popupContent', $popup)
			,end = function(){ $animator.hide(); $content.show(); params.end(); }
			,marginLeft = (options.align=='center' ? '-'+parseInt((params.width+options.popupMarginX)/2)+'px' : 0)
			,marginTop = (options.vAlign=='center' ? '-'+parseInt((params.height+options.popupMarginY)/2)+'px' : 0)
			,time = params.time
			,ease = 'swing'
		;

		// set hide animaion
		switch (params.animation)
		{
			case 'grow':
				$popup.animate({marginTop: marginTop, marginLeft: marginLeft},time,ease);
				$animator.animate({width: params.width,	height: params.height},time,ease,end);
				break;
			case 'stretch':
				time = parseInt(time/2);
				$popup.animate({marginTop: marginTop},time, ease);
				$animator.animate({height: params.height}, time, ease, function(){
					if ($animator.width()!=params.width) {
						$animator.animate({width: params.width}, time, ease);
						$popup.animate({marginLeft: marginLeft},time, ease, end);
					} else {
						end();
					}
				});
				break;
			case 'slide':
				if (params.call!='hide') $animator.width(params.width).css({marginTop: marginTop, marginLeft: marginLeft});
				$animator.animate({height: params.height}, time, ease, end);
				break;
			case 'fade' :
				if (params.call=='hide') {
					$animator.hide();
					$content.show();
					$popup.fadeOut(time, end);
				} else {
					$popup.hide();
					$content.show();
					$animator.hide();
					$popup.css({marginTop: marginTop, marginLeft: marginLeft}).fadeIn(time, end);
				}
				break;
			default :
				//$content.width(params.width).height(params.height);
				$popup.css({marginTop: marginTop, marginLeft: marginLeft});
				end();
				break;
		}
	},


	/**
	 * Remove overlay and all popups
	 * @return false
	 */
 	close: function()
	{
		for (var i=$.overlay.popups.length-1; i >= 0 ; i--) {
			var $popup = $.getPopup($.overlay.popups[i]);
			$.overlay.hide($popup, $.extend($popup[0].options, {close: true}));
		}
		$.overlay.popups = [];
		$('#overlay').remove();
		if($.browser.msie && $.browser.version < 7) $('select').css('visibility', 'visible');
		return false;
	},

	/**
	 * Get document sizes
	 * @return object
	 */
	getDocSize: function()
	{
		var dE = document.documentElement;
		return {
			innerWidth: (window.innerWidth || self.innerWidth || (dE&&dE.clientWidth) || document.body.clientWidth),
			innerHeight: (window.innerHeight || self.innerHeight || (dE&&dE.clientHeight) || document.body.clientHeight),
			//scrollWidth: (dE&&dE.scrollWidth || document.body.scrollWidth),
			//scrollHeight: (dE&&dE.scrollHeight || document.body.scrollHeight),
			scrollTop: (dE&&dE.scrollTop || document.body.scrollTop),
			scrollLeft: (dE&&dE.scrollLeft || document.body.scrollLeft)
		};
	},

	/**
	 * Handler for jquery.validation
	 * @param bool validatedOK
	 * @param jQuery form
	 * @param Map data
	 */
	formHandler: function(validatedOK,form,data)
	{
		var $popup = $(form).parents('.popup');

		// continue post when popup not found
		if ($popup.length == 0) return validatedOK;

		// no errors found
		if (validatedOK)
		{
			
			// get options
			var options = $popup[0].options;

			// options not found, popup does not exist => continue post
			if (!options) return true;

			// set content
			options.content.data = $(':input', form).serialize();
			options.content.type = form.method;
 			if (form.action) options.content.url = form.action;

			// show popup
			$.overlay.open(options);

		} else {
			// errors found, possible resize of popup
			$popup.triggerHandler('resize');
		}

		return false;
	}

};


/*------------------------------------------------------------------------------
	Element handlers
------------------------------------------------------------------------------*/

$.extend({
	/**
	 * Just a wrapper for $.overlay.open
	 * @param Map|string url|options
	 * @return false
	 */
	openPopup: function(options){
		if (typeof(options)=='string') options = {url: options};
		$.overlay.open(options);
		return false;
	},

	/**
	 * Get popup as jQuery object by name
	 * @param string name
	 * @return jQuery
	 */
	getPopup: function(name)
	{
		return $('#popup_'+name);
	},

	/**
	 * Show a single image in a popup
	 * @param string src
	 * @param string title
	 * @param map options
	 * @return false
	 */
	imagePopup: function(src, title, options)
	{
		//set title attribute to default ('title') because title is set to image
		var img = {src: src, title:title}
			,options = $.extend({}, {attribImgTitle: 'title', thumbId: false, galCollection: [img], galCurrent: 0}, options, {isGallery: true});

		$.overlay.open(options);
		return false;
	},

	/**
	 * Show a single flash object in a popup
	 * Use options.swfvars and options.swfparams to manage swfobject
	 * @param string file
	 * @param int width
	 * @param int height
	 * @param map options
	 * @return false
	 */
	flashPopup: function(file,width,height,options)
	{

		//set options
		var options = $.extend({name: 'flash'}, options);

		//execute when swfobject is available
		if(typeof swfobject == 'object') {

			//default update flash message
			if (!options.updateFlashMsg) {
				options.updateFlashMsg = '<div class="flashUpdate"><span>Flash plug-in vereist</span><br>Deze website maakt gebruik van de Flash plug-in. U kunt de plug-in downloaden via de onderstaande link.<br><br><a href="http://www.adobe.com/go/getflashplayer">Download flash plug-in</a></div>';
			}

			//check op versie
			var oVersion = swfobject.getFlashPlayerVersion();
			
			//get minimal dimensions
			var contentHeight 	= $.overlay.defaultOptions.minHeight;
			var contentWidth 	= $.overlay.defaultOptions.minWidth;
			
			
			//get from options set
			if(options.minHeight) {
				contentHeight = options.minHeight;
			} 
			if(options.minWidth) {
				contentHeight = options.minWidth;
			}

			//compare with flash dimensions
			if(contentWidth < width) {
				 contentWidth = width;
				 options.minWidth = contentWidth;
			}
			if(contentHeight < height) {
				contentHeight = height;
				options.minHeight = contentHeight;
			}

			// build html for popup
			var flashHTML = '<div class="flashContainer"><table border="0" cellpadding="0" cellspacing="0"><tr><td width="'+contentWidth+'" height="'+contentHeight+'"><div id="overlayFlash">&nbsp;</div></td></tr></table></div>';
			if (options.title) flashHTML += '<div class="flashDetails"><div class="title">'+options.title+'</div></div>';
			options.content = flashHTML;

			//set showHandler to embed flash with swfobject
			options.showHandler = function() {
				//check if flash is available and 6 or higher (use express instal)
				if (!oVersion.major || oVersion.major < 6) {
					$('#overlayFlash').html(options.updateFlashMsg);
				}
				else {
					$.swfEmbed(file,'overlayFlash',width,height,options.swfvars,options.swfparams);
				}
			};
		}

		$.overlay.open(options);
		return false;
	},

	/**
	 * Show gallery in a popup
	 * @param map options
	 * @return false
	 */
	galleryPopup: function(url, options)
	{
		var options = $.extend({}, {thumbId: false, galCollection: [], galCurrent: 0}, options, {isGallery: true});

		function ajaxError()
		{
			alert('Unable to read gallery information!');
		}

		$.ajax({
			url: url,
			success: function(xml)
			{
				$('file',xml).each(function(i)
				{
					// add image to gallery
					options.galCollection.push({
						src: $('url', this).text(),
						title: $('name', this).text()
					});
				});

				if (options.galCollection.length) {
					$.overlay.open(options);
				} else {
					ajaxError();
				}
			},
			error: ajaxError
		});
		return false;
	},

	/**
	 * Show iFrame in a popup
	 *
	 * @param string url
	 * @param string title (optional)
	 * @param map options (optional)
	 * @return false
	 */
	iframePopup: function(url, title, options){
		var options = $.extend({name: 'iframe'}, options),
			title = title ? '<h2>'+title+'</h2>' : '',
			width = options.width || $.overlay.defaultOptions.minWidth,
			height = options.height || $.overlay.defaultOptions.minHeight
		;

		options.content = title+'<iframe name="popup_iframe" scrolling="auto" vspace="0" hspace="0" marginheight="0" marginwidth="0" width="'+width+'" height="'+height+'" allowtransparency frameborder="0"></iframe>';
		options.showHandler = function($popup)
		{
			$('iframe', $popup).attr('src', url);
		};

		$.overlay.open(options);
		return false;
	}
});

$.fn.extend({
	/**
	 * Set an onclick zoom event on a jQuery object
	 *
	 * @param Object options (optional) Options passthrough $.overlay.showPopup(). Set options.thumbnr to set thumbnail number. Enable gallery alike behavior by enabling options.gallery.
	 * @return jQuery object
	 */
	setGallery: function(options)
	{
		var options = $.extend({}, {thumbId: false, galCollection: [], galCurrent: 0}, options, {isGallery: true});

		// collect images
		$.each(this, function(){
			
			// get image object
			var img = (this.src ? this : $('img', this)[0]);
			if (!img.src || img.options) return;

			// add image to gallery
			options.galCollection.push(img);

			// set options
			img.options = options;
		});
		
		// set click event handler
		return $(this).css({cursor: 'pointer'}).click(function()
		{
			img = (this.src ? this : $('img', this)[0]);
			if (!img.src || !img.options) return false;
			
			img.options.galCurrent = $.inArray(img, img.options.galCollection);
			
			$.overlay.open(img.options);
			return false;
		});
	},

	/**
	 * Set an onclick popup event on an object
	 *
	 * @see jQuery.overlay.showPopup
	 * @param Object options
	 * @return jQuery object
	 */
	openPopup: function(options)
	{
		return $.each(this, function()
		{
			if (this.popup == 'object') return;

			this.popup = options || {};

			$(this).css({cursor: 'pointer'}).click(function() {
				$.overlay.open($.extend({url: this.href}, this.popup));
				return false;
			});
		});
	},

	/**
	 * A onclick wrapper for $.iframePopup()
	 *
	 * @see jQuery.iframePopup
	 * @param map		options
	 * @return jQuery object
	 */
	iframePopup: function(options)
	{
		return $(this).click(function(){
			return $.iframePopup(this.href, this.title, options);
		});
	}
});
;;
/**
 * jQuery custom selectboxes
 * 
 * Copyright (c) 2008 Krzysztof Suszyński (suszynski.org)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * Modified by Flink (2008-07-30) 
 * Modified by Flink (2011-08-22): Added Chrome support
 *
 * @version 0.6.1
 * @category visual
 * @package jquery
 * @subpakage ui.selectbox
 * @author Krzysztof Suszyński <k.suszynski@wit.edu.pl>
**/
jQuery.fn.selectbox = function(options){
	/* Default settings */
	var settings = {
		className: 'jquery-selectbox',
		animationSpeed: "normal",
		listboxMaxSize: 10,
		replaceInvisible: false
	};
	var commonClass = 'jquery-custom-selectboxes-replaced';
	var listOpen = false;
	var showList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.parents('.' + settings.className + '-drop').show();
		listObj.slideDown(settings.animationSpeed, function(){
			listOpen = true;
//			if(typeof supersleight == 'object') {
//				supersleight.limitTo(selectbox[0]);
//				supersleight.run();
//			}
		});
		selectbox.addClass('selecthover');
		jQuery(document).bind('click', onBlurList);
		return listObj;
	};
	var hideList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.slideUp(settings.animationSpeed, function(){
			listOpen = false;
			listObj.parents('.' + settings.className + '-drop').hide();
			jQuery(this).parents('.' + settings.className + '').removeClass('selecthover');
		});
		jQuery(document).unbind('click', onBlurList);
		return listObj;
	};
	var onBlurList = function(e) {
		var trgt = e.target;
		var currentListElements = jQuery('.' + settings.className + '-list:visible').parent().find('*').andSelf();
		if(jQuery.inArray(trgt, currentListElements)<0 && listOpen) {
			hideList( jQuery('.' + commonClass + '-list') );
		}
		return false;
	};
	
	/* Processing settings */
	settings = jQuery.extend(settings, options || {});
	/* Wrapping all passed elements */
	return this.each(function() {
		var _this = jQuery(this);
		if(_this.filter(':visible').length == 0 && !settings.replaceInvisible)
			return;
		var replacement = jQuery(
			'<div class="' + settings.className + ' ' + commonClass + '">' +
				'<div class="' + settings.className + '-moreButton" />' +
				'<div class="' + settings.className + '-drop">' +
					'<div class="' + settings.className + '-list ' + commonClass + '-list" />' +
					//'<div class="' + settings.className + '-bottom" />' +
				'</div>' +
				'<span class="' + settings.className + '-currentItem" />' +
			'</div>'
		);
		jQuery('option', _this).each(function(k,v){
			var v = jQuery(v);
			var listElement =  jQuery('<span class="' + settings.className + '-item item-'+k+' value-'+v.val()+' '+v.attr('class')+'">' + v.text() + '</span>');	
			listElement.click(function(){
				var thisListElement = jQuery(this);
				var thisReplacment = thisListElement.parents('.'+settings.className);
				var thisIndex = thisListElement[0].className.split(' ');
				for( k1 in thisIndex ) {
					if(/^item-[0-9]+$/.test(thisIndex[k1])) {
						thisIndex = parseInt(thisIndex[k1].replace('item-',''), 10);
						break;
					}
				};
				var thisValue = thisListElement[0].className.split(' ');
				for( k1 in thisValue ) {
					if(/^value-.+$/.test(thisValue[k1])) {
						thisValue = thisValue[k1].replace('value-','');
						break;
					}
				};
				thisReplacment
					.find('.' + settings.className + '-currentItem')
					.text(thisListElement.text())
					.attr('class', settings.className + '-currentItem '+v.attr('class'));
				thisReplacment
					.find('select')
					.val(thisValue)
					.triggerHandler('change');
				var thisSublist = thisReplacment.find('.' + settings.className + '-list');
				if(thisSublist.filter(":visible").length > 0) {
					hideList( thisSublist );
				}else{
					showList( thisSublist );
				}
			}).bind('mouseenter',function(){
				jQuery(this).addClass('listelementhover');
			}).bind('mouseleave',function(){
				jQuery(this).removeClass('listelementhover');
			});
			jQuery('.' + settings.className + '-list', replacement).append(listElement);
			if(v.filter(':selected').length > 0) {
				jQuery('.'+settings.className + '-currentItem', replacement)
					.text(v.text())
					.attr('class', settings.className + '-currentItem '+v.attr('class'))
					;
			}
		});
		replacement.find('.' + settings.className + '-moreButton').click(function(){
			var thisMoreButton = jQuery(this);
			var otherLists = jQuery('.' + settings.className + '-list')
				.not(thisMoreButton.siblings('.' + settings.className + '-list'));
			hideList( otherLists );
			var thisList = thisMoreButton.siblings('.' + settings.className + '-drop').find('.' + settings.className + '-list');
			if(thisList.filter(":visible").length > 0) {
				hideList( thisList );
			}else{
				showList( thisList );
			}
		}).bind('mouseenter',function(){
			jQuery(this).addClass('morebuttonhover');
		}).bind('mouseleave',function(){
			jQuery(this).removeClass('morebuttonhover');
		});
		_this.hide().replaceWith(replacement).appendTo(replacement);
		var thisListBox = replacement.find('.' + settings.className + '-list');
		var thisListBoxSize = thisListBox.find('.' + settings.className + '-item').length;
		if(thisListBoxSize > settings.listboxMaxSize)
			thisListBoxSize = settings.listboxMaxSize;
		if(thisListBoxSize == 0)
			thisListBoxSize = 1;	
		var thisListBoxWidth = Math.round(_this.width() + 5);
		
		/**
		 * @author Paul
		 * @since 22/08/2011
		 * Added  && !(/chrome/.test(navigator.userAgent.toLowerCase())  to detect that it's not Chrome
		 */
		if(jQuery.browser.safari && !(/chrome/.test(navigator.userAgent.toLowerCase()))) thisListBoxWidth += 29;
//			thisListBoxWidth = thisListBoxWidth * 0.94;
		replacement.css('width', thisListBoxWidth + 'px');
		thisListBox.css({
			width: Math.round(thisListBoxWidth-5) + 'px'/*,
			height: thisListBoxSize + 'em'*/
		});
	});
};
jQuery.fn.unselectbox = function(){
	var commonClass = 'jquery-custom-selectboxes-replaced';
	return this.each(function() {
		var selectToRemove = jQuery(this).filter('.' + commonClass);
		selectToRemove.replaceWith(selectToRemove.find('select').show());		
	});
};
;;

/**
 * OddSlider v1.0
 * Author: Paul Dudink
 * 
 * v1.0.2: Created initNextButtons function.
 * v1.0.1: Fixed rollout bug on active element
 */

/**
 * TODO: Add stop functionality (optional) after clicking on a button
 * TODO: Add pause functionality (optional) when hovering
 * TODO: Get rid of console.log (or wrap safely)
 * TODO: Make up a good name for this project :)
 */
var oddslider = {
	
	id: null,
	slides: [],
	numSlides: 0,
	activeSlide: 0, // First slide active by default
	
	timer: null,
	
	slideSelector: 	'.oddsldr-slide',
	buttonSelector: '.oddsldr-btn',
	nextButtonSelector: '.oddsldr-btn-next',
	prevButtonSelector: '.oddsldr-btn-prev',
	
	defaultZ: 100, 	// Default zIndex
		
	timeout: 4000,
	fadeTime: 1000,
	
	pauseOnHover: true, //TODO
	
	setOptions: function(settings){
		$.extend(this, this, settings);
	},
		
	init: function(settings){
		
		this.setOptions(settings);
	
		try{
			if (this.fadeTime>=this.timeout) {
				throw 'fadeTime must be smaller than timeout';
			}
			
			this.$container = $('#'+this.id);
			
			this.initSlides();
			this.initButtons();
			this.initNextButtons();
			this.start();
			
		}catch(er)
		{
			this.log('kvpaul failure: '+er);
		}
	},
	
	log: function(msg){
		if (typeof console === 'undefined') return;
		console.log(msg);
	},
	
	initSlides: function(){
		
		/**
		 * Select all slides
		 * Note that you may change this.slideSelector
		 * to customize the selection of slides
		 * You may for example only want to find
		 * div's that have class "slide"
		 * e.g.: this.slideSelector = '.slides div.slide'
		 */
		this.slides = $('#'+this.id+' '+this.slideSelector);
		
		// Any slides found?
		this.numSlides = this.slides.length;
		if (!this.numSlides) throw 'No slides found!';
		this.log(this.numSlides+' slides found');
		
		var $elm = null;
		// Loop over slides
		for(var i=0; i<this.slides.length; i++){
			$elm = $(this.slides[i]);

			// Hide slide
			$elm.hide();
			$elm.css('zIndex',this.defaultZ);
			
			/**
			 * If slide has data-slideactive attr set
			 * overwrite active slide 
			 */
			if ($elm.attr('data-slideactive')=='1') {
				this.activeSlide = i;
			}
		};
		
		this.log('Slide '+this.activeSlide+' active');
	},
	
	initButtons: function(){
		
		/**
		 * Select all buttons
		 * Note that you may change this.buttonSelector
		 * to customize the selection of buttons
		 * You may for example only want to find
		 * div's that have class "button"
		 * e.g.: this.slideSelector = '.buttons div.button'
		 */
		this.buttons = $('#'+this.id+' '+this.buttonSelector);
		this.log(this.buttons.length+' buttons initialized');
		
		// Any slides found?
		var foundButtons = this.buttons.length;
		if (!foundButtons){
			this.log('No buttons found (not an error!)');
			return;
		}
		this.log(foundButtons+' buttons found');
		
		var $elm = null;
		// Loop over buttons
		for(var i=0; i<this.buttons.length; i++){
						
			/**
			 * Create a closure to isolate i
			 */
			(function(obj,j){
				$elm = $(obj.buttons[j]);
				
				/**
				 * If slide has no data-slide attr set
				 * set it now
				 */
				if ($elm.attr('data-slide')!==null) {
					/**
					 * data-slide is optional
					 * if set, it must be a number between
					 * 1 and numSlides
					 * Because it starts at 1, we substract 1
					 */
					j = parseInt($elm.attr('data-slide'))-1;
					
					if (j<0 || j>=this.numSlides){
						this.log('Warning: data-slide was an invalid value: '+j);
						j = 0;
					}
				}
				
				$elm.addClass('oddsldr-btn-'+j);
				
				/**
				 * Create a closure to isolate obj and i
				 * Read more at http://bitstructures.com/2007/11/javascript-method-callbacks
				 */
				$elm.click(function(){ obj.buttonClicked(j) });
				
				/**
				 * Create a closure to isolate obj and $elm
				 */
				(function(obj,$elm){
					$elm.hover(	function(){ obj.buttonRollover($elm); },
								function(){ obj.buttonRollout($elm); } );
				})(obj,$elm);
				
			})(this,i);
			
		};
	},
	
	//New function to create Next en Previous buttons. 
	initNextButtons: function(){
		if (!this.initNextButtons) return;
		
		var callbackObj = this;
		
		/**
		 * Select all buttons
		 * Note that you may change this.buttonSelector
		 * to customize the selection of buttons
		 * You may for example only want to find
		 * div's that have class "button"
		 * e.g.: this.slideSelector = '.buttons div.button'
		 */
		this.nextbutton = $('#'+this.id+' '+this.nextButtonSelector);
		this.prevbutton = $('#'+this.id+' '+this.prevButtonSelector);
		
		this.log(this.nextbutton.length+' buttons next initialized');
		this.log(this.prevbutton.length+' button prev initialized');
		
		// Any slides found?
		var foundNextButton = this.nextbutton.length;
		if (foundNextButton){
			this.log('button next found)');	
			$elm = $(this.nextbutton);
			$elm.click(function(){ callbackObj.showNextSlide() }); 		
		
			/**
			 * Create a closure to isolate obj and $elm
			 */
			(function(callbackObj,$elm){
				$elm.hover(	function(){ callbackObj.buttonRollover($elm);  },
							function(){ callbackObj.buttonRollout($elm); } );
			})(callbackObj,$elm);
		}
		
		var foundPrevButton = this.prevbutton.length;
		if (foundPrevButton){
			this.log('btn prev found');
			
			$elm = $(this.prevbutton);
			$elm.click(function(){ callbackObj.showPrevSlide() }); 	
			
			/**
			 * Create a closure to isolate obj and $elm
			 */
			(function(callbackObj,$elm){
				$elm.hover(	function(){ callbackObj.buttonRollover($elm);  },
							function(){ callbackObj.buttonRollout($elm); } );
			})(callbackObj,$elm);
			
		}
	},
	
	setTimer: function(){
		var callbackObj = this;
		this.timer = setTimeout(function(){ callbackObj.showNextSlide(); },this.timeout);
	},
	
	/**
	 * TODO: The first slide should be shown by the showSlide() method
	 * instead, which at this time is not possible
	 */
	start: function(){
		var $act = $(this.slides[this.activeSlide]);
		$act.css('zIndex',this.defaultZ+1);
		$act.show();
		
		// Activate buttons
		this.activateButtons();
		
		this.setTimer();
	},
	
	buttonClicked: function(slideNum) {
		if (this.startshownextslide) return;
		
		// Clear current timer
		clearTimeout(this.timer);
		
		// If the button was clicked for the currently active slide, we only reset the timer
		if (slideNum==this.activeSlide){
			this.setTimer();
			return;
		}
		
		// show slide
		this.showSlide(slideNum);
	},
	
	showNextSlide: function(){
		
		this.startshownextslide = true;
		
		// Clear current timer
		clearTimeout(this.timer);
		
		var nextSlide = this.activeSlide+1;
		
		// Reset slideNum to 0 if exceeding number of slides
		if (nextSlide>=this.numSlides){
			nextSlide = 0;
		}
		
		// show slide
		this.showSlide(nextSlide);
	},
	
	showPrevSlide: function(){
		
		this.startshownextslide = true;
		
		// Clear current timer
		clearTimeout(this.timer);
		
		var prevSlide = this.activeSlide-1;
		
		// Reset slideNum to 0 if exceeding number of slides
		if (prevSlide<= 0){
			prevSlide = this.numSlides-1;
		}
		
		// show slide
		this.showSlide(prevSlide);
	},
	
	showSlide: function(slideNum){	
		
		// Stop current animation
		this.stopBusy();
		
		// Get current slide
		this.$prevSlide = $(this.slides[this.activeSlide]);
		
		// Move active slide to the back
		this.$prevSlide.css('zIndex',this.defaultZ);
		
		// Set new active slide
		this.activeSlide = slideNum;
		
		// Show new slide and hide old one
		var callbackObj = this;
		$(this.slides[this.activeSlide]).css('zIndex',this.defaultZ+1);
		$(this.slides[this.activeSlide]).fadeIn(this.fadeTime,
				function(){
					callbackObj.hidePrevious();
				}
		);
		
		// Activate buttons
		this.activateButtons();
		
		this.setTimer();
	},
	
	stopBusy: function(){
		// Stop current animation and jump to end
		$(this.slides[this.activeSlide]).stop(true,true);
		// Hide previous element
		// TODO: not needed? this.hidePrevious();
	},
	
	hidePrevious: function(){
		this.startshownextslide = false;
		if (!this.$prevSlide) return;
		this.$prevSlide.hide();
	},
	
	activateButtons: function()
	{
		var callbackObj = this;
		
		// Make button active
		$(this.buttons).not('.oddsldr-btn-hover').each(function(){
			callbackObj.buttonInactive($(this));
		});
		this.buttonActive($('.oddsldr-btn-'+this.activeSlide,this.$container));
	},
	
	buttonActive: function($elm)
	{
		$elm.addClass('oddsldr-btn-active');
		this.buttonActiveCB($elm);
	},
	buttonActiveCB: function($elm){},
	
	buttonInactive: function($elm)
	{
		$elm.removeClass('oddsldr-btn-active');
		this.buttonInactiveCB($elm);
	},
	buttonInactiveCB: function($elm){},
	
	buttonRollover: function($elm)
	{
		$elm.addClass('oddsldr-btn-hover');
		this.buttonRolloverCB($elm);
	},
	buttonRolloverCB: function($elm)
	{
		this.buttonActiveCB($elm);
	},
	
	buttonRollout: function($elm)
	{
		$elm.removeClass('oddsldr-btn-hover');
		this.buttonRolloutCB($elm);
	},
	buttonRolloutCB: function($elm)
	{
		if ($elm.hasClass('oddsldr-btn-active')){ return; }
		this.buttonInactiveCB($elm);
	}
}

;;
/*------------------------------------------------------------------------------
	Methode om CSS background-image cache te forceren voor IE6
------------------------------------------------------------------------------*/

try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


/*------------------------------------------------------------------------------
	onLoad handler
------------------------------------------------------------------------------*/

var bodyInit = false; //set initial load
var root = 'body'; //set root
var popWidth = 492;

function onLoad(loadRoot, formTokens)
{
	// set root
	if (typeof(loadRoot) == 'string') root = loadRoot;

	// one time initializations in here
	if (!bodyInit) {

		// on show event handler for overlay
		if (typeof $.overlay == 'object') $.overlay.event.bind('show', function(e,$popup,options){ onLoad('#popup_'+options.name); });

		// image rollover handler
		if (typeof $.fn.addRollOverHandler == 'function') $('.navMain img').addRollOverHandler();

		// remember intialization
		bodyInit = true;
	}

	//form validation
	if (typeof $.validator == 'object') {
	    //load tokens if specified
	    if(typeof formTokens == 'object') {
	    	$.validator.tokenEnable(formTokens);
	    } 
			
		/**
		 * Extra callback function for TAF-forms
		 * Make sure first to set form-specific validator-callbacks and then the validator-enable
		 */
    	$(root+' #frm_newsalerts').validatorEnable({hdlCallback:form_ajax_submit});
    	
    	/**
    	 * Make sure first to set form-specific validator-callbacks and then the validator-enable
    	 */
    	$(root+' form').validatorEnable();
	}

	//search form submit handler 
	$('form#frm_search_side, form#frm_search').bind('submit', function() {
		var $form       = $(this);
		var $input      = $form.find('input.search')
		var action      = $form.attr('action');
		if ($('form#frm_search_side input#search').hasClass('errHilite') == false) {
			window.location = action+'/'+searchVal.replace(' ', '/');
		}
		return false;
	});
	
	//form input unfocus values
	//	Zit in template voor taalonafhankelijkheid	
	//	$('input#search, input#search_content').setUnfocusValue('Zoeken');
	
	
	// overlay
	if (typeof $.overlay == 'object') {
		$(root+' img[rel=zoom]').setGallery({thumbId: 4, enableImgNav: false});
		if(root == 'body') setPopWidth();		
		$(root+' a[rel=popup-inline]').openPopup({minWidth:popWidth,maxWidth:popWidth});
		$(root+' a[rel=popup-iframe]').iframePopup({width: 800, height: 600});
	}

	if (typeof $.fn.selectbox == 'function') {
		$('#lngChooser').selectbox({className: 'lngChooser', animationSpeed: 100}).bind('change', function(){ location.href=this.value; });
	}
}

//plaats in default js:
function openFlashPopup() {
	
	//standaard overlay opties:
	var options = {}; 

	//Flash popup 1 (voorbeeld)
	var flash_vars = {"url1":"http://www.flink.nl","xmlPath":"\/flash\/xml\/images.xml"} //standaard swfobject vars hier
	var flash_params = {} //standaard swfobject params hier

	//geef swf opties aan overlay door
	options.swfvars = flash_vars;
	options.swfparams = flash_params;
	
	$.flashPopup("/flash/keyvisual.swf",806,137,options);
	
}


function setPopWidth()
{
	if($('.loContent').css('width') && root == 'body') {
		cssWidth = new String($('.loContent').css('width'));
		if(cssWidth.indexOf('px') > 0) {
			popWidth = parseInt(cssWidth.substr(0,cssWidth.indexOf('px')));
		}
		else {
			popWidth = parseInt($('.loContent').css('width'));
		}
	}	
}

/*------------------------------------------------------------------------------
	AJAX handlers
------------------------------------------------------------------------------*/

function setIndex(pub_Id, page, archive)
{
	$.get(location.href,{ pub_Id: pub_Id, page: page, archive: archive, action: 'index'},
		function(msg) {
			$('#index_container').html(msg);
			onLoad('#index_container');
		}
	);
}

function hrefSubmit(frm) {
	if($.validator.validateForm(frm)) {
		frm.submit();
	}
}

/*------------------------------------------------------------------------------
	Various
------------------------------------------------------------------------------*/

function checkCookies(redirect)
{
	var cookieName = 'testCookie';
	document.cookie = cookieName + '=cookieValue';
	var cookiesEnabled = document.cookie.indexOf(cookieName) != -1;
	if (!cookiesEnabled)
	{
		location.href=redirect;
	}
}

function createCleanSearchUrl()
{	
	var searchVal = $('form#frm_search_side input#search').val();
	var action = $('form#frm_search_side').attr('action');
	if ($('form#frm_search_side input#search').hasClass('errHilite') == false) {
		window.location = '../..'+action+'/'+searchVal.replace(' ', '/');
	}
	return false;
}

/**
 * TODO: generate clean url
 * 
 * @param formId
 * @return
 */
function createCleanFormSubmit(formId)
{	
	/**
	 * Here all inputs and selects and all should be reformed to a clean url like /p/item/value/item/value/etc
	 */
	
	// For now just a regular submit
	$('#'+formId).submit();
}

/*------------------------------------------------------------------------------
FLASH CHECK:
------------------------------------------------------------------------------*/
function checkVersion()
{ 
	//check op versie
	var fobj = swfobject.getFlashPlayerVersion();
	
	//bepaal of versie voldoende is (minimaal 6 zodat in flash de update opgehaald kan worden):
	if (!fobj.major || fobj.major < 6) {
		return false;
	}
	else {
		return true;
	}
}

/*------------------------------------------------------------------------------
BOOKMARKS
------------------------------------------------------------------------------*/
function CreateBookmarkLink(url,title)
{
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; 
	}
}

/*------------------------------------------------------------------------------
Google map overlay
------------------------------------------------------------------------------*/
function loadMap(latitude,longitude,infoTableHTML) {
	latitude = parseFloat(latitude);
	longitude = parseFloat(longitude);
	//showGGMap('gmap',parseFloat(52.0271671552), parseFloat(6.0150978947),{zoom:13,hybrideMap:'false'});
	$.overlay.open({
		name: 'GMap',
		content: '<div id="gmap" style="width:500px;height:500px"></div>',
		showAnimation: 'slide', 
		hideAnimation: 'none',
		minWidth: 500,
		minHeight: 500,
		//showHandler: function(){ showGGMap('gmap',latitude,longitude,{zoom:13,hybrideMap:'false'}); }
		showHandler: function(){ loadGoogleMap(latitude,longitude,infoTableHTML); }
	});
}

/**
 * 
 */
var gmapLoaded = false;
function loadGoogleMap(latitude,longitude,infoTableHTML) {
	var map = new GMap(document.getElementById("gmap"));
	var point = new GPoint(longitude,latitude);
	var marker = new GMarker(point);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.centerAndZoom(point, 3);
	if (!gmapLoaded && infoTableHTML){
		marker.openInfoWindowHtml(infoTableHTML);
		gmapLoaded = true;
	}
	map.addOverlay(marker);
}

/*function loadMap(latitude,longitude) {
	latitude = parseFloat(latitude);
	longitude = parseFloat(longitude);
	$.overlay.open({
		name: 'GMap',
		content: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.nl/maps?f=q&amp;source=s_q&amp;hl=nl&amp;geocode=&amp;sll='+latitude+','+longitude+'&amp;sspn=4.986778,14.27124&amp;ie=UTF8&amp;hq=&amp;hnear=2274VK&amp;t=h&amp;ll=52.070488,4.350312&amp;spn=0.018466,0.036478&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe><br /><small><a href="http://www.google.nl/maps?f=q&amp;source=embed&amp;hl=nl&amp;geocode=&amp;sll='+latitude+','+longitude+'&amp;sspn=4.986778,14.27124&amp;ie=UTF8&amp;hq=&amp;hnear=&amp;t=h&amp;ll=52.070488,4.350312&amp;spn=0.018466,0.036478&amp;z=14&amp;iwloc=A" style="color:#0000FF;text-align:left">Grotere kaart weergeven</a></small>',
		showAnimation: 'slide', 
		hideAnimation: 'none',
		minWidth: 500,
		minHeight: 500
	});
}*/

/*------------------------------------------------------------------------------
Video overlay
------------------------------------------------------------------------------*/
/*
 * Indien hoogte en/of breedte wijzigt, ook wijzigen in overlay.css!
 default (4:3) vheight = 506
 breedbeeld (16:9) vheight = 412
 */
function loadVideo(videofile,title,caption,playerFile,widescreen) {
	var vwidth = 500, vheight = 511;
	if(widescreen) {
		vheight = 422;
	}
	$.overlay.open({
		name: 'Video',
		content: '<table id="player" cellspacing="0"><tr><td><embed type="application/x-shockwave-flash" src="'+playerFile+'" style="" id="player" name="player" quality="high" allowfullscreen="true" allowscriptaccess="always" wmode="transparent" scale="noscale" salign="lt" flashvars="width='+vwidth+'&amp;height='+vheight+'&amp;usefullscreen=false&amp;file='+videofile+'&amp;link=&amp;title='+escape(title)+'&amp;caption='+escape(caption)+'" width="'+vwidth+'" align="center" height="'+vheight+'"></td></tr></table>',
		showAnimation: 'slide', 
		hideAnimation: 'none',
		minWidth: vwidth,
		minHeight: vheight
	});
}

function loadYoutubeVideo(embedcode) {
	var vwidth = 100, vheight = 100;
	$.overlay.open({
		name: 'Video',
		content: '<div>'+embedcode+'</div>',
		showAnimation: 'slide', 
		hideAnimation: 'none',
		minWidth: vwidth,
		minHeight: vheight
	});
}

/*------------------------------------------------------------------------------
Forms
------------------------------------------------------------------------------*/
function form_ajax_submit(validatedOK,form,data) {
	if (validatedOK) {
		dat = Array();
	
		// set content
		dat['data'] = $(':input', form).serialize();
		dat['type'] = form.method;
				
		if (form.action){
			dat['url'] = form.action;
		}else{
			dat['url'] = document.location.href;
		}
		
		$.ajax({
		   type: dat['type'],
		   url: dat['url'],
		   data: dat['data'],
		   success: function(msg){
		   	 // Div container id
		     $('#' + form.name + '_container').html(msg);
		   }
		 });
	}
	return false;	
}

/**
 * This method validates and submits the little searchform on top of the site
 * @return
 */
function submitGlobalSearchForm()
{
	term 		= $('#search').val();
		
	if($.validator.validateForm(document.getElementById('frm_search_side'))) {	
		var uri = $('#frm_search_side').attr('action');
		
		uri += ParamSeperator;
		uri += 'term/'+term+'/';
				
		document.location.href = uri;
	}
}

/**
 * This method validates and submits the searchform on the searchresults page
 * @return
 */
function submitGlobalSearchFormLarge()
{
	term 		= $('#search_content').val();
	filter		= $('#search_filter').val();
		
	if($.validator.validateForm(document.getElementById('frm_search'))) {	
		var uri = $('#frm_search').attr('action');
		
		uri += ParamSeperator;
		uri += 'term/'+term+'/';
		
		if (filter) {
			uri += 'filter/'+filter+'/';
		}
				
		document.location.href = uri;
	}
}

;;

	/*
	 *	jquery.suggest 1.1 - 2007-08-06
	 *
	 *	Uses code and techniques from following libraries:
	 *	1. http://www.dyve.net/jquery/?autocomplete
	 *	2. http://dev.jquery.com/browser/trunk/plugins/interface/iautocompleter.js
	 *
	 *	All the new stuff written by Peter Vulgaris (www.vulgarisoip.com)
	 *	Feel free to do whatever you want with this file
	 *
	 */

	(function($) {

		$.suggest = function(input, options) {
			var $input = $(input).attr("autocomplete", "off");
			var $results = $(document.createElement("ul"));

			var timeout = false;		// hold timeout ID for suggestion results to appear
			var prevLength = 0;			// last recorded length of $input.val()
			var cache = [];				// cache MRU list
			var cacheSize = 0;			// size of cache in chars (bytes?)

			$results.addClass(options.resultsClass).appendTo('body').width(input.offsetWidth-2);


			resetPosition();
			$(window)
				.load(resetPosition)		// just in case user is changing size of page while loading
				.resize(resetPosition);

			$input.blur(function() {
				setTimeout(function() { $results.hide(); if ($.browser.msie && $.browser.version <= 6) $('select').css({visibility: 'visible'}); }, 200);
			});


			// help IE users if possible
			try {
				$results.bgiframe();
			} catch(e) { }


			// I really hate browser detection, but I don't see any other way
			if ($.browser.mozilla)
				$input.keypress(processKey);	// onkeypress repeats arrow keys in Mozilla/Opera
			else
				$input.keydown(processKey);		// onkeydown repeats arrow keys in IE/Safari

			function resetPosition() {
				// requires jquery.dimension plugin
				var offset = $input.offset();
				$results.css({
					top: (offset.top + input.offsetHeight) + 'px',
					left: offset.left + 'px'
				});
			}


			function processKey(e) {
				// handling up/down/escape requires results to be visible
				// handling enter/tab requires that AND a result to be selected
				if ((/27$|38$|40$/.test(e.keyCode) && ($results.is(':visible') || suggest())) ||
					(/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {

		            if (e.preventDefault)
		                e.preventDefault();
					if (e.stopPropagation)
		                e.stopPropagation();

					e.cancelBubble = true;
					e.returnValue = false;

					switch(e.keyCode) {

						case 38: // up
							prevResult();
							break;

						case 40: // down
							nextResult();
							break;

						case 9:  // tab
						case 13: // return
							selectCurrentResult();
							break;

						case 27: //	escape
							$results.hide();
							break;

					}

				} else if ($input.val().length != prevLength) {

					if (timeout)
						clearTimeout(timeout);
					timeout = setTimeout(suggest, options.delay);
					prevLength = $input.val().length;

				}


			}


			function suggest() {

				var q = new String();
				q = $.trim($input.val());
				
				if (q.length >= options.minchars) {

					var c = new Array();
					if(options.criteria) {
						for (i = 0;  i < options.criteria.length; i++) {
							c[i] = $.trim($(options.criteria[i]).val());
						}
					}
				

					cached = checkCache(q, c);

					if (cached) {

						displayItems(cached['items']);

					} else {
						
						$.get(options.source, {q: q, c: c}, function(txt) {

							$results.hide();

							var items = parseTxt(txt, q);

							displayItems(items);
							addToCache(q, c, items, txt.length);

						});

					}

				} else {

					$results.hide();

				}

			}


			function checkCache(q, c) {

				for (var i = 0; i < cache.length; i++)
				{
					if (cache[i]['q'] == q) {
						
						var matched = true;
						for (j = 0;  j < c.length; j++) {
							if(c[j] != cache[i]['c'][j]) matched = false;
						}
						if(matched)	{
							cache.unshift(cache.splice(i, 1)[0]);
							return cache[0];
						}
					}
				}
				return false;

			}

			function addToCache(q, c, items, size) {

				while (cache.length && (cacheSize + size > options.maxCacheSize)) {
					var cached = cache.pop();
					cacheSize -= cached['size'];
				}

				cache.push({
					q: q,
					c: c,
					size: size,
					items: items
					});

				cacheSize += size;

			}

			function displayItems(items) {

				if (!items)
					return;

				if (!items.length) {
					$results.hide();
					return;
				}

				var max = (items.length > options.maxItems ? options.maxItems : items.length);

				var html = '';
				for (var i = 0; i < max; i++)
					html += '<li>' + items[i] + '</li>';

				if ($.browser.msie && $.browser.version <= 6) $('select').css({visibility: 'hidden'});

				$results
					.html(html)
					.show()
					.children('li')
						.mouseover(function() {
							$results.children('li').removeClass(options.selectClass);
							$(this).addClass(options.selectClass);
						})
						.click(function(e) {
							e.preventDefault();
							e.stopPropagation();
							selectCurrentResult();
						});

			}

			function parseTxt(txt, q) {

				var items = [];
				var tokens = txt.split(options.delimiter);

				// parse returned data for non-empty items
				for (var i = 0; i < tokens.length; i++) {
					var token = $.trim(tokens[i]);
					if (token) {
						token = token.replace(
							new RegExp(q, 'ig'),
							function(q) { return '<span class="' + options.matchClass + '">' + q + '</span>' }
							);
						items[items.length] = token;
					}
				}

				return items;
			}

			function getCurrentResult() {

				if (!$results.is(':visible'))
					return false;

				var $currentResult = $results.children('li.' + options.selectClass);

				if (!$currentResult.length)
					$currentResult = false;

				return $currentResult;

			}

			function selectCurrentResult() {

				$currentResult = getCurrentResult();

				if ($currentResult) {
					$input.val($currentResult.text()).change();
					$results.hide();

					prevLength = $currentResult.text().length;

					if (options.onSelect)
						options.onSelect.apply($input[0]);

				}

			}

			function nextResult() {

				$currentResult = getCurrentResult();

				if ($currentResult)
					$currentResult
						.removeClass(options.selectClass)
						.next()
							.addClass(options.selectClass);
				else
					$results.children('li:first-child').addClass(options.selectClass);

			}

			function prevResult() {

				$currentResult = getCurrentResult();

				if ($currentResult)
					$currentResult
						.removeClass(options.selectClass)
						.prev()
							.addClass(options.selectClass);
				else
					$results.children('li:last-child').addClass(options.selectClass);

			}

		}

		$.fn.suggest = function(source, options) {
			
			if (!source)
				return;

			options = options || {};
			options.source = source;
			options.delay = options.delay || 10;
			options.maxItems = options.maxItems || 100;
			options.resultsClass = options.resultsClass || 'ac_results';
			options.selectClass = options.selectClass || 'ac_over';
			options.matchClass = options.matchClass || 'ac_match';
			options.minchars = options.minchars || 2;
			options.delimiter = options.delimiter || '\n';
			options.onSelect = options.onSelect || false;
			options.maxCacheSize = options.maxCacheSize || 65536;

			this.each(function() {
				new $.suggest(this, options);
			});

			return this;

		};

	})(jQuery);


;;

