

// Objects for storing loaded data in cache
var navigationItemIntroCache;
var topProductsCache;
var mainShopNavigationCache;
var subShopNavigationCache;
var productsCache;

// References to the dataviews
var subNavigationDataView;
var subSubNavigationDataView;
var topProductsListDataView;
var productGroupDataDataView;
var productGroupProductListDataView;
var productGroupFaqListDataView;
var selectedProductsDataView;
var basketProductsDataView;
var basketVouchersDataView;
var orderOverviewProductsDataView;
var orderOverviewAccessoriesDataView;
var orderOverviewVoucherDataView;
var basketAccessoriesDataView;

var userDataForm;
var userDataView;

// Selected items
var mainShopNavigationSelectedItem;
var subNavigationSelectedItem;

// variables for storing the preload id's
var preloadMainNavigationId;
var preloadSubNavigationId;
var preloadSubSubNavigationId;
var preloadSelectedProducts;

//
var mainNavigationId;
var subNavigationId;
var subSubNavigationId;
var arrSelectedProducts;
var selectedProducts;
var arrSelectedProductsData;
var arrAccessoriesData
var arrSelectedAccessoriesData;
var arrVouchers;

var monthNames = new Array();
monthNames[0] = 'Jan';
monthNames[1] = 'Feb';
monthNames[2] = 'Mrt';
monthNames[3] = 'Apr';
monthNames[4] = 'Mei';
monthNames[5] = 'Jun';
monthNames[6] = 'Jul';
monthNames[7] = 'Aug';
monthNames[8] = 'Sep';
monthNames[9] = 'Okt';
monthNames[10] = 'Nov';
monthNames[11] = 'Dec';

var monthNamesFull = new Array();
monthNamesFull[0] = 'januari';
monthNamesFull[1] = 'februari';
monthNamesFull[2] = 'maart';
monthNamesFull[3] = 'april';
monthNamesFull[4] = 'mei';
monthNamesFull[5] = 'juni';
monthNamesFull[6] = 'juli';
monthNamesFull[7] = 'augustus';
monthNamesFull[8] = 'september';
monthNamesFull[9] = 'oktokber';
monthNamesFull[10] = 'november';
monthNamesFull[11] = 'december';

var daysOfWeek = new Array();
daysOfWeek[0] = 'zondag';
daysOfWeek[1] = 'maandag';
daysOfWeek[2] = 'dinsdag';
daysOfWeek[3] = 'woensdag';
daysOfWeek[4] = 'donderdag';
daysOfWeek[5] = 'vrijdag';
daysOfWeek[6] = 'zaterdag';

// Should the texts be cunfon'd?
var cufonEnabled = true;
// Array filled with the days that are not available
var disabledDays = new Array();
// The Selected pickup date
var calendarSelectedStartDate;
// The Selected delivery date
var calendarSelectEndDate;
// How long it will take, in days. To be set later on in the process
var daysForRepair = 0;
//
var shippingCountryId = 1;
var languageCode = 'nl';

//UserData
var userData;


// Lets copy an array!
Array.prototype.clone = function() {
	var a = new Array();
	for (var property in this) {
		a[property] = this[property];
	}
	return a;
}

// Gets a date from the the current datetime object
Date.prototype.getDateOnly = function() {
	return new Date(this.getFullYear(), this.getMonth(), this.getDate());
}

// Gets a formatted date from the object
Date.prototype.getDateOnlyFormatted = function() {
	return this.getFullYear() + '-' + (this.getMonth() + 1) + '-' + this.getDate();
}

Date.prototype.getDateOnlyFormattedAsLongString = function() {
	return daysOfWeek[this.getDay()] + ' ' + this.getDate() + ' ' + monthNamesFull[this.getMonth()] + ' ' + this.getFullYear();
}
Date.prototype.getDateOnlyFormattedAsShortString = function() {
	return daysOfWeek[this.getDay()] + ' ' + this.getDate() + ' ' + monthNamesFull[this.getMonth()];
}


// Adds the days(+/-) to the current date (no return!)
Date.prototype.addDays = function(days) {
	this.setDate(this.getDate() + days);
}

function formatCurrencyWithNBSP(priceInCents) {
	return '€&nbsp;' + (priceInCents / 100).toFixed(2);	
}

function formatCurrency(priceInCents) {
	return '€ ' + (priceInCents / 100).toFixed(2);
}

function escapeText(valueToEscape) {
	return escape(escapeText);
}
/**
 * Interface Elements for jQuery
 * 
 * http://interface.eyecon.ro
 * 
 * Copyright (c) 2006 Stefan Petre
 * Dual licensed under the MIT (MIT-LICENSE.txt) 
 * and GPL (GPL-LICENSE.txt) licenses.
 *   
 *
 */
 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('k.f2={2r:u(M){E q.1E(u(){if(!M.aR||!M.aZ)E;D el=q;el.2l={aq:M.aq||cO,aR:M.aR,aZ:M.aZ,8e:M.8e||\'fV\',aJ:M.aJ||\'fV\',2Y:M.2Y&&2g M.2Y==\'u\'?M.2Y:I,3i:M.2Y&&2g M.3i==\'u\'?M.3i:I,7U:M.7U&&2g M.7U==\'u\'?M.7U:I,as:k(M.aR,q),8f:k(M.aZ,q),H:M.H||8J,67:M.67||0};el.2l.8f.2G().B(\'W\',\'9R\').eq(0).B({W:el.2l.aq+\'U\',19:\'2B\'}).2T();el.2l.as.1E(u(2N){q.7X=2N}).gC(u(){k(q).2R(el.2l.aJ)},u(){k(q).4i(el.2l.aJ)}).1J(\'5h\',u(e){if(el.2l.67==q.7X)E;el.2l.as.eq(el.2l.67).4i(el.2l.8e).2T().eq(q.7X).2R(el.2l.8e).2T();el.2l.8f.eq(el.2l.67).5w({W:0},el.2l.H,u(){q.14.19=\'1o\';if(el.2l.3i){el.2l.3i.1D(el,[q])}}).2T().eq(q.7X).1Y().5w({W:el.2l.aq},el.2l.H,u(){q.14.19=\'2B\';if(el.2l.2Y){el.2l.2Y.1D(el,[q])}}).2T();if(el.2l.7U){el.2l.7U.1D(el,[q,el.2l.8f.K(q.7X),el.2l.as.K(el.2l.67),el.2l.8f.K(el.2l.67)])}el.2l.67=q.7X}).eq(0).2R(el.2l.8e).2T();k(q).B(\'W\',k(q).B(\'W\')).B(\'2U\',\'2K\')})}};k.fn.gN=k.f2.2r;k.aA={2r:u(M){E q.1E(u(){D el=q;D 7E=2*18.2Q/f1;D an=2*18.2Q;if(k(el).B(\'Y\')!=\'2s\'&&k(el).B(\'Y\')!=\'1P\'){k(el).B(\'Y\',\'2s\')}el.1l={1R:k(M.1R,q),2F:M.2F,6q:M.6q,aD:M.aD,an:an,1N:k.1a.2o(q),Y:k.1a.3w(q),26:18.2Q/2,bi:M.bi,8p:M.6r,6r:[],aG:I,7E:2*18.2Q/f1};el.1l.fB=(el.1l.1N.w-el.1l.2F)/2;el.1l.7D=(el.1l.1N.h-el.1l.6q-el.1l.6q*el.1l.8p)/2;el.1l.2D=2*18.2Q/el.1l.1R.1N();el.1l.ba=el.1l.1N.w/2;el.1l.b9=el.1l.1N.h/2-el.1l.6q*el.1l.8p;D ak=1h.3F(\'22\');k(ak).B({Y:\'1P\',3I:1,Q:0,O:0});k(el).1S(ak);el.1l.1R.1E(u(2N){a6=k(\'1T\',q).K(0);W=T(el.1l.6q*el.1l.8p);if(k.3a.4t){3E=1h.3F(\'1T\');k(3E).B(\'Y\',\'1P\');3E.2J=a6.2J;3E.14.5E=\'gE 9n:9w.9y.cC(1G=60, 14=1, gB=0, gA=0, gv=0, gF=0)\'}P{3E=1h.3F(\'3E\');if(3E.fD){4L=3E.fD("2d");3E.14.Y=\'1P\';3E.14.W=W+\'U\';3E.14.Z=el.1l.2F+\'U\';3E.W=W;3E.Z=el.1l.2F;4L.gu();4L.gO(0,W);4L.gk(1,-1);4L.gp(a6,0,0,el.1l.2F,W);4L.6H();4L.gm="gG-4l";D ap=4L.hy(0,0,0,W);ap.fs(1,"fr(1V, 1V, 1V, 1)");ap.fs(0,"fr(1V, 1V, 1V, 0.6)");4L.hx=ap;if(hA.hB.3J(\'hw\')!=-1){4L.hv()}P{4L.hu(0,0,el.1l.2F,W)}}}el.1l.6r[2N]=3E;k(ak).1S(3E)}).1J(\'9z\',u(e){el.1l.aG=1b;el.1l.H=el.1l.7E*0.1*el.1l.H/18.3S(el.1l.H);E I}).1J(\'8B\',u(e){el.1l.aG=I;E I});k.aA.7T(el);el.1l.H=el.1l.7E*0.2;el.1l.ht=1X.6V(u(){el.1l.26+=el.1l.H;if(el.1l.26>an)el.1l.26=0;k.aA.7T(el)},20);k(el).1J(\'8B\',u(){el.1l.H=el.1l.7E*0.2*el.1l.H/18.3S(el.1l.H)}).1J(\'3D\',u(e){if(el.1l.aG==I){1s=k.1a.4a(e);fz=el.1l.1N.w-1s.x+el.1l.Y.x;el.1l.H=el.1l.bi*el.1l.7E*(el.1l.1N.w/2-fz)/(el.1l.1N.w/2)}})})},7T:u(el){el.1l.1R.1E(u(2N){b8=el.1l.26+2N*el.1l.2D;x=el.1l.fB*18.5H(b8);y=el.1l.7D*18.83(b8);f9=T(2a*(el.1l.7D+y)/(2*el.1l.7D));fk=(el.1l.7D+y)/(2*el.1l.7D);Z=T((el.1l.2F-el.1l.aD)*fk+el.1l.aD);W=T(Z*el.1l.6q/el.1l.2F);q.14.Q=el.1l.b9+y-W/2+"U";q.14.O=el.1l.ba+x-Z/2+"U";q.14.Z=Z+"U";q.14.W=W+"U";q.14.3I=f9;el.1l.6r[2N].14.Q=T(el.1l.b9+y+W-1-W/2)+"U";el.1l.6r[2N].14.O=T(el.1l.ba+x-Z/2)+"U";el.1l.6r[2N].14.Z=Z+"U";el.1l.6r[2N].14.W=T(W*el.1l.8p)+"U"})}};k.fn.hI=k.aA.2r;k.23({G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W},hK:u(p,n,1W,1H,1m){E 1H*(n/=1m)*n*n+1W},fl:u(p,n,1W,1H,1m){E-1H*((n=n/1m-1)*n*n*n-1)+1W},hm:u(p,n,1W,1H,1m){if((n/=1m/2)<1)E 1H/2*n*n*n*n+1W;E-1H/2*((n-=2)*n*n*n-2)+1W},8l:u(p,n,1W,1H,1m){if((n/=1m)<(1/2.75)){E 1H*(7.aB*n*n)+1W}P if(n<(2/2.75)){E 1H*(7.aB*(n-=(1.5/2.75))*n+.75)+1W}P if(n<(2.5/2.75)){E 1H*(7.aB*(n-=(2.25/2.75))*n+.gY)+1W}P{E 1H*(7.aB*(n-=(2.h2/2.75))*n+.gX)+1W}},cr:u(p,n,1W,1H,1m){if(k.G.8l)E 1H-k.G.8l(p,1m-n,0,1H,1m)+1W;E 1W+1H},gW:u(p,n,1W,1H,1m){if(k.G.cr&&k.G.8l)if(n<1m/2)E k.G.cr(p,n*2,0,1H,1m)*.5+1W;E k.G.8l(p,n*2-1m,0,1H,1m)*.5+1H*.5+1W;E 1W+1H},gQ:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m)==1)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E-(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W},gT:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}E a*18.6b(2,-10*n)*18.83((n*1m-s)*(2*18.2Q)/p)+1H+1W},gV:u(p,n,1W,1H,1m){D a,s;if(n==0)E 1W;if((n/=1m/2)==2)E 1W+1H;a=1H*0.3;p=1m*.3;if(a<18.3S(1H)){a=1H;s=p/4}P{s=p/(2*18.2Q)*18.cb(1H/a)}if(n<1){E-.5*(a*18.6b(2,10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p))+1W}E a*18.6b(2,-10*(n-=1))*18.83((n*1m-s)*(2*18.2Q)/p)*.5+1H+1W}}});k.6n={2r:u(M){E q.1E(u(){D el=q;el.1F={1R:k(M.1R,q),1Z:k(M.1Z,q),1M:k.1a.3w(q),2F:M.2F,ax:M.ax,7Y:M.7Y,ge:M.ge,51:M.51,6x:M.6x};k.6n.aH(el,0);k(1X).1J(\'gU\',u(){el.1F.1M=k.1a.3w(el);k.6n.aH(el,0);k.6n.7T(el)});k.6n.7T(el);el.1F.1R.1J(\'9z\',u(){k(el.1F.ax,q).K(0).14.19=\'2B\'}).1J(\'8B\',u(){k(el.1F.ax,q).K(0).14.19=\'1o\'});k(1h).1J(\'3D\',u(e){D 1s=k.1a.4a(e);D 5s=0;if(el.1F.51&&el.1F.51==\'cv\')D aI=1s.x-el.1F.1M.x-(el.4c-el.1F.2F*el.1F.1R.1N())/2-el.1F.2F/2;P if(el.1F.51&&el.1F.51==\'2L\')D aI=1s.x-el.1F.1M.x-el.4c+el.1F.2F*el.1F.1R.1N();P D aI=1s.x-el.1F.1M.x;D fP=18.6b(1s.y-el.1F.1M.y-el.5W/2,2);el.1F.1R.1E(u(2N){45=18.ez(18.6b(aI-2N*el.1F.2F,2)+fP);45-=el.1F.2F/2;45=45<0?0:45;45=45>el.1F.7Y?el.1F.7Y:45;45=el.1F.7Y-45;bB=el.1F.6x*45/el.1F.7Y;q.14.Z=el.1F.2F+bB+\'U\';q.14.O=el.1F.2F*2N+5s+\'U\';5s+=bB});k.6n.aH(el,5s)})})},aH:u(el,5s){if(el.1F.51)if(el.1F.51==\'cv\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())/2-5s/2+\'U\';P if(el.1F.51==\'O\')el.1F.1Z.K(0).14.O=-5s/el.1F.1R.1N()+\'U\';P if(el.1F.51==\'2L\')el.1F.1Z.K(0).14.O=(el.4c-el.1F.2F*el.1F.1R.1N())-5s/2+\'U\';el.1F.1Z.K(0).14.Z=el.1F.2F*el.1F.1R.1N()+5s+\'U\'},7T:u(el){el.1F.1R.1E(u(2N){q.14.Z=el.1F.2F+\'U\';q.14.O=el.1F.2F*2N+\'U\'})}};k.fn.hi=k.6n.2r;k.N={1c:S,8R:S,3A:S,2I:S,4y:S,cl:S,1d:S,2h:S,1R:S,5o:u(){k.N.8R.5o();if(k.N.3A){k.N.3A.2G()}},4w:u(){k.N.1R=S;k.N.2h=S;k.N.4y=k.N.1d.2y;if(k.N.1c.B(\'19\')==\'2B\'){if(k.N.1d.1f.fx){3m(k.N.1d.1f.fx.1u){1e\'c6\':k.N.1c.7a(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'1z\':k.N.1c.fq(k.N.1d.1f.fx.1m,k.N.5o);1r;1e\'a7\':k.N.1c.g3(k.N.1d.1f.fx.1m,k.N.5o);1r}}P{k.N.1c.2G()}if(k.N.1d.1f.3i)k.N.1d.1f.3i.1D(k.N.1d,[k.N.1c,k.N.3A])}P{k.N.5o()}1X.bH(k.N.2I)},dQ:u(){D 1d=k.N.1d;D 4d=k.N.aY(1d);if(1d&&4d.3o!=k.N.4y&&4d.3o.1g>=1d.1f.aL){k.N.4y=4d.3o;k.N.cl=4d.3o;81={2n:k(1d).1p(\'hj\')||\'2n\',2y:4d.3o};k.hl({1u:\'hk\',81:k.hf(81),he:u(fZ){1d.1f.4e=k(\'3o\',fZ);1N=1d.1f.4e.1N();if(1N>0){D 5p=\'\';1d.1f.4e.1E(u(2N){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'});if(1d.1f.aU){D 3M=k(\'2y\',1d.1f.4e.K(0)).3g();1d.2y=4d.3j+3M+1d.1f.3N+4d.66;k.N.6J(1d,4d.3o.1g!=3M.1g?(4d.3j.1g+4d.3o.1g):3M.1g,4d.3o.1g!=3M.1g?(4d.3j.1g+3M.1g):3M.1g)}if(1N>0){k.N.cj(1d,5p)}P{k.N.4w()}}P{k.N.4w()}},5N:1d.1f.aN})}},cj:u(1d,5p){k.N.8R.3x(5p);k.N.1R=k(\'8P\',k.N.8R.K(0));k.N.1R.9z(k.N.di).1J(\'5h\',k.N.dj);D Y=k.1a.3w(1d);D 1N=k.1a.2o(1d);k.N.1c.B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').2R(1d.1f.aM);if(k.N.3A){k.N.3A.B(\'19\',\'2B\').B(\'Q\',Y.y+1N.hb+\'U\').B(\'O\',Y.x+\'U\').B(\'Z\',k.N.1c.B(\'Z\')).B(\'W\',k.N.1c.B(\'W\'))}k.N.2h=0;k.N.1R.K(0).3l=1d.1f.7H;k.N.8Q(1d,1d.1f.4e.K(0),\'7J\');if(k.N.1c.B(\'19\')==\'1o\'){if(1d.1f.bV){D cp=k.1a.aT(1d,1b);D cm=k.1a.6U(1d,1b);k.N.1c.B(\'Z\',1d.4c-(k.dF?(cp.l+cp.r+cm.l+cm.r):0)+\'U\')}if(1d.1f.fx){3m(1d.1f.fx.1u){1e\'c6\':k.N.1c.7f(1d.1f.fx.1m);1r;1e\'1z\':k.N.1c.fo(1d.1f.fx.1m);1r;1e\'a7\':k.N.1c.gb(1d.1f.fx.1m);1r}}P{k.N.1c.1Y()}if(k.N.1d.1f.2Y)k.N.1d.1f.2Y.1D(k.N.1d,[k.N.1c,k.N.3A])}},dO:u(){D 1d=q;if(1d.1f.4e){k.N.4y=1d.2y;k.N.cl=1d.2y;D 5p=\'\';1d.1f.4e.1E(u(2N){2y=k(\'2y\',q).3g().6c();fY=1d.2y.6c();if(2y.3J(fY)==0){5p+=\'<8P 4I="\'+k(\'2y\',q).3g()+\'" 8K="\'+2N+\'" 14="9b: ad;">\'+k(\'3g\',q).3g()+\'</8P>\'}});if(5p!=\'\'){k.N.cj(1d,5p);q.1f.9x=1b;E}}1d.1f.4e=S;q.1f.9x=I},6J:u(2n,26,2T){if(2n.b1){D 6t=2n.b1();6t.hp(1b);6t.dI("ck",26);6t.ha("ck",-2T+26);6t.8C()}P if(2n.aF){2n.aF(26,2T)}P{if(2n.5q){2n.5q=26;2n.dN=2T}}2n.6K()},f0:u(2n){if(2n.5q)E 2n.5q;P if(2n.b1){D 6t=1h.6J.dZ();D eX=6t.h9();E 0-eX.dI(\'ck\',-h6)}},aY:u(2n){D 4P={2y:2n.2y,3j:\'\',66:\'\',3o:\'\'};if(2n.1f.aQ){D 8N=I;D 5q=k.N.f0(2n)||0;D 4T=4P.2y.7C(2n.1f.3N);24(D i=0;i<4T.1g;i++){if((4P.3j.1g+4T[i].1g>=5q||5q==0)&&!8N){if(4P.3j.1g<=5q)4P.3o=4T[i];P 4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\');8N=1b}P if(8N){4P.66+=4T[i]+(4T[i]!=\'\'?2n.1f.3N:\'\')}if(!8N){4P.3j+=4T[i]+(4T.1g>1?2n.1f.3N:\'\')}}}P{4P.3o=4P.2y}E 4P},bU:u(e){1X.bH(k.N.2I);D 1d=k.N.aY(q);D 3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40|9/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';P k.N.2h=-1;3m(3K){1e 9:1e 13:if(k.N.2h==-1)k.N.2h=0;D 2h=k.N.1R.K(k.N.2h||0);D 3M=2h.5C(\'4I\');q.2y=1d.3j+3M+q.1f.3N+1d.66;k.N.4y=1d.3o;k.N.6J(q,1d.3j.1g+3M.1g+q.1f.3N.1g,1d.3j.1g+3M.1g+q.1f.3N.1g);k.N.4w();if(q.1f.68){4u=T(2h.5C(\'8K\'))||0;k.N.8Q(q,q.1f.4e.K(4u),\'68\')}if(q.7W)q.7W(I);E 3K!=13;1r;1e 27:q.2y=1d.3j+k.N.4y+q.1f.3N+1d.66;q.1f.4e=S;k.N.4w();if(q.7W)q.7W(I);E I;1r;1e 35:k.N.2h=k.N.1R.1N()-1;1r;1e 36:k.N.2h=0;1r;1e 38:k.N.2h--;if(k.N.2h<0)k.N.2h=k.N.1R.1N()-1;1r;1e 40:k.N.2h++;if(k.N.2h==k.N.1R.1N())k.N.2h=0;1r}k.N.8Q(q,q.1f.4e.K(k.N.2h||0),\'7J\');k.N.1R.K(k.N.2h||0).3l=q.1f.7H;if(k.N.1R.K(k.N.2h||0).7W)k.N.1R.K(k.N.2h||0).7W(I);if(q.1f.aU){D aK=k.N.1R.K(k.N.2h||0).5C(\'4I\');q.2y=1d.3j+aK+q.1f.3N+1d.66;if(k.N.4y.1g!=aK.1g)k.N.6J(q,1d.3j.1g+k.N.4y.1g,1d.3j.1g+aK.1g)}E I}k.N.dO.1D(q);if(q.1f.9x==I){if(1d.3o!=k.N.4y&&1d.3o.1g>=q.1f.aL)k.N.2I=1X.9T(k.N.dQ,q.1f.54);if(k.N.1R){k.N.4w()}}E 1b},8Q:u(2n,3o,1u){if(2n.1f[1u]){D 81={};ar=3o.f3(\'*\');24(i=0;i<ar.1g;i++){81[ar[i].4Y]=ar[i].7c.h4}2n.1f[1u].1D(2n,[81])}},di:u(e){if(k.N.1R){if(k.N.2h!=S)k.N.1R.K(k.N.2h||0).3l=\'\';k.N.1R.K(k.N.2h||0).3l=\'\';k.N.2h=T(q.5C(\'8K\'))||0;k.N.1R.K(k.N.2h||0).3l=k.N.1d.1f.7H}},dj:u(2k){1X.bH(k.N.2I);2k=2k||k.2k.gS(1X.2k);2k.aP();2k.aW();D 1d=k.N.aY(k.N.1d);D 3M=q.5C(\'4I\');k.N.1d.2y=1d.3j+3M+k.N.1d.1f.3N+1d.66;k.N.4y=q.5C(\'4I\');k.N.6J(k.N.1d,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g,1d.3j.1g+3M.1g+k.N.1d.1f.3N.1g);k.N.4w();if(k.N.1d.1f.68){4u=T(q.5C(\'8K\'))||0;k.N.8Q(k.N.1d,k.N.1d.1f.4e.K(4u),\'68\')}E I},eJ:u(e){3K=e.7L||e.7K||-1;if(/13|27|35|36|38|40/.48(3K)&&k.N.1R){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}E I}},2r:u(M){if(!M.aN||!k.1a){E}if(!k.N.1c){if(k.3a.4t){k(\'2e\',1h).1S(\'<3A 14="19:1o;Y:1P;5E:9n:9w.9y.cC(1G=0);" id="ds" 2J="ek:I;" ej="0" ep="cD"></3A>\');k.N.3A=k(\'#ds\')}k(\'2e\',1h).1S(\'<22 id="dr" 14="Y: 1P; Q: 0; O: 0; z-cZ: h3; 19: 1o;"><9h 14="6w: 0;8F: 0; h1-14: 1o; z-cZ: h0;">&7k;</9h></22>\');k.N.1c=k(\'#dr\');k.N.8R=k(\'9h\',k.N.1c)}E q.1E(u(){if(q.4Y!=\'ch\'&&q.5C(\'1u\')!=\'3g\')E;q.1f={};q.1f.aN=M.aN;q.1f.aL=18.3S(T(M.aL)||1);q.1f.aM=M.aM?M.aM:\'\';q.1f.7H=M.7H?M.7H:\'\';q.1f.68=M.68&&M.68.1K==2A?M.68:S;q.1f.2Y=M.2Y&&M.2Y.1K==2A?M.2Y:S;q.1f.3i=M.3i&&M.3i.1K==2A?M.3i:S;q.1f.7J=M.7J&&M.7J.1K==2A?M.7J:S;q.1f.bV=M.bV||I;q.1f.aQ=M.aQ||I;q.1f.3N=q.1f.aQ?(M.3N||\', \'):\'\';q.1f.aU=M.aU?1b:I;q.1f.54=18.3S(T(M.54)||aC);if(M.fx&&M.fx.1K==7M){if(!M.fx.1u||!/c6|1z|a7/.48(M.fx.1u)){M.fx.1u=\'1z\'}if(M.fx.1u==\'1z\'&&!k.fx.1z)E;if(M.fx.1u==\'a7\'&&!k.fx.61)E;M.fx.1m=18.3S(T(M.fx.1m)||8J);if(M.fx.1m>q.1f.54){M.fx.1m=q.1f.54-2a}q.1f.fx=M.fx}q.1f.4e=S;q.1f.9x=I;k(q).1p(\'bU\',\'eN\').6K(u(){k.N.1d=q;k.N.4y=q.2y}).dH(k.N.eJ).6y(k.N.bU).5B(u(){k.N.2I=1X.9T(k.N.4w,hM)})})}};k.fn.hR=k.N.2r;k.1y={2I:S,4Q:S,29:S,2D:10,26:u(el,4J,2D,eG){k.1y.4Q=el;k.1y.29=4J;k.1y.2D=T(2D)||10;k.1y.2I=1X.6V(k.1y.eF,T(eG)||40)},eF:u(){24(i=0;i<k.1y.29.1g;i++){if(!k.1y.29[i].2X){k.1y.29[i].2X=k.23(k.1a.7G(k.1y.29[i]),k.1a.74(k.1y.29[i]),k.1a.6z(k.1y.29[i]))}P{k.1y.29[i].2X.t=k.1y.29[i].3d;k.1y.29[i].2X.l=k.1y.29[i].3c}if(k.1y.4Q.A&&k.1y.4Q.A.7q==1b){69={x:k.1y.4Q.A.2v,y:k.1y.4Q.A.2q,1C:k.1y.4Q.A.1B.1C,hb:k.1y.4Q.A.1B.hb}}P{69=k.23(k.1a.7G(k.1y.4Q),k.1a.74(k.1y.4Q))}if(k.1y.29[i].2X.t>0&&k.1y.29[i].2X.y+k.1y.29[i].2X.t>69.y){k.1y.29[i].3d-=k.1y.2D}P if(k.1y.29[i].2X.t<=k.1y.29[i].2X.h&&k.1y.29[i].2X.t+k.1y.29[i].2X.hb<69.y+69.hb){k.1y.29[i].3d+=k.1y.2D}if(k.1y.29[i].2X.l>0&&k.1y.29[i].2X.x+k.1y.29[i].2X.l>69.x){k.1y.29[i].3c-=k.1y.2D}P if(k.1y.29[i].2X.l<=k.1y.29[i].2X.hP&&k.1y.29[i].2X.l+k.1y.29[i].2X.1C<69.x+69.1C){k.1y.29[i].3c+=k.1y.2D}}},8o:u(){1X.5T(k.1y.2I);k.1y.4Q=S;k.1y.29=S;24(i in k.1y.29){k.1y.29[i].2X=S}}};k.11={1c:S,F:S,4U:u(){E q.1E(u(){if(q.9I){q.A.5e.3q(\'5v\',k.11.bN);q.A=S;q.9I=I;if(k.3a.4t){q.bE="eN"}P{q.14.hq=\'\';q.14.e1=\'\';q.14.e7=\'\'}}})},bN:u(e){if(k.11.F!=S){k.11.9A(e);E I}D C=q.3U;k(1h).1J(\'3D\',k.11.bX).1J(\'5P\',k.11.9A);C.A.1s=k.1a.4a(e);C.A.4B=C.A.1s;C.A.7q=I;C.A.ho=q!=q.3U;k.11.F=C;if(C.A.5i&&q!=q.3U){bS=k.1a.3w(C.31);bQ=k.1a.2o(C);bR={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};dx=C.A.4B.x-bS.x-bQ.1C/2-bR.x;dy=C.A.4B.y-bS.y-bQ.hb/2-bR.y;k.3b.5c(C,[dx,dy])}E k.7n||I},ea:u(e){D C=k.11.F;C.A.7q=1b;D 9G=C.14;C.A.7V=k.B(C,\'19\');C.A.4n=k.B(C,\'Y\');if(!C.A.cz)C.A.cz=C.A.4n;C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.9B=0;C.A.ai=0;if(k.3a.4t){D bW=k.1a.6U(C,1b);C.A.9B=bW.l||0;C.A.ai=bW.t||0}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){9G.Y=\'2s\'}k.11.1c.5o();D 5g=C.fI(1b);k(5g).B({19:\'2B\',O:\'2P\',Q:\'2P\'});5g.14.5K=\'0\';5g.14.5z=\'0\';5g.14.5k=\'0\';5g.14.5j=\'0\';k.11.1c.1S(5g);D 3Y=k.11.1c.K(0).14;if(C.A.bD){3Y.Z=\'9F\';3Y.W=\'9F\'}P{3Y.W=C.A.1B.hb+\'U\';3Y.Z=C.A.1B.1C+\'U\'}3Y.19=\'2B\';3Y.5K=\'2P\';3Y.5z=\'2P\';3Y.5k=\'2P\';3Y.5j=\'2P\';k.23(C.A.1B,k.1a.2o(5g));if(C.A.2V){if(C.A.2V.O){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.2V.O;C.A.1B.x=C.A.1s.x-C.A.2V.O}if(C.A.2V.Q){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.2V.Q;C.A.1B.y=C.A.1s.y-C.A.2V.Q}if(C.A.2V.2L){C.A.2c.x+=C.A.1s.x-C.A.1B.x-C.A.1B.hb+C.A.2V.2L;C.A.1B.x=C.A.1s.x-C.A.1B.1C+C.A.2V.2L}if(C.A.2V.4D){C.A.2c.y+=C.A.1s.y-C.A.1B.y-C.A.1B.hb+C.A.2V.4D;C.A.1B.y=C.A.1s.y-C.A.1B.hb+C.A.2V.4D}}C.A.2v=C.A.2c.x;C.A.2q=C.A.2c.y;if(C.A.8s||C.A.2p==\'94\'){8U=k.1a.6U(C.31,1b);C.A.1B.x=C.8t+(k.3a.4t?0:k.3a.7I?-8U.l:8U.l);C.A.1B.y=C.8G+(k.3a.4t?0:k.3a.7I?-8U.t:8U.t);k(C.31).1S(k.11.1c.K(0))}if(C.A.2p){k.11.c5(C);C.A.5t.2p=k.11.ce}if(C.A.5i){k.3b.ct(C)}3Y.O=C.A.1B.x-C.A.9B+\'U\';3Y.Q=C.A.1B.y-C.A.ai+\'U\';3Y.Z=C.A.1B.1C+\'U\';3Y.W=C.A.1B.hb+\'U\';k.11.F.A.9E=I;if(C.A.gx){C.A.5t.6a=k.11.c7}if(C.A.3I!=I){k.11.1c.B(\'3I\',C.A.3I)}if(C.A.1G){k.11.1c.B(\'1G\',C.A.1G);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=\'+C.A.1G*2a+\')\')}}if(C.A.7O){k.11.1c.2R(C.A.7O);k.11.1c.K(0).7c.14.19=\'1o\'}if(C.A.4o)C.A.4o.1D(C,[5g,C.A.2c.x,C.A.2c.y]);if(k.1x&&k.1x.8D>0){k.1x.ed(C)}if(C.A.46==I){9G.19=\'1o\'}E I},c5:u(C){if(C.A.2p.1K==b0){if(C.A.2p==\'94\'){C.A.28=k.23({x:0,y:0},k.1a.2o(C.31));D 8S=k.1a.6U(C.31,1b);C.A.28.w=C.A.28.1C-8S.l-8S.r;C.A.28.h=C.A.28.hb-8S.t-8S.b}P if(C.A.2p==\'1h\'){D bY=k.1a.bm();C.A.28={x:0,y:0,w:bY.w,h:bY.h}}}P if(C.A.2p.1K==7F){C.A.28={x:T(C.A.2p[0])||0,y:T(C.A.2p[1])||0,w:T(C.A.2p[2])||0,h:T(C.A.2p[3])||0}}C.A.28.dx=C.A.28.x-C.A.1B.x;C.A.28.dy=C.A.28.y-C.A.1B.y},9H:u(F){if(F.A.8s||F.A.2p==\'94\'){k(\'2e\',1h).1S(k.11.1c.K(0))}k.11.1c.5o().2G().B(\'1G\',1);if(1X.71){k.11.1c.B(\'5E\',\'8V(1G=2a)\')}},9A:u(e){k(1h).3q(\'3D\',k.11.bX).3q(\'5P\',k.11.9A);if(k.11.F==S){E}D F=k.11.F;k.11.F=S;if(F.A.7q==I){E I}if(F.A.44==1b){k(F).B(\'Y\',F.A.4n)}D 9G=F.14;if(F.5i){k.11.1c.B(\'9b\',\'8j\')}if(F.A.7O){k.11.1c.4i(F.A.7O)}if(F.A.6N==I){if(F.A.fx>0){if(!F.A.1O||F.A.1O==\'4j\'){D x=12 k.fx(F,{1m:F.A.fx},\'O\');x.1L(F.A.2c.x,F.A.8y)}if(!F.A.1O||F.A.1O==\'49\'){D y=12 k.fx(F,{1m:F.A.fx},\'Q\');y.1L(F.A.2c.y,F.A.8v)}}P{if(!F.A.1O||F.A.1O==\'4j\')F.14.O=F.A.8y+\'U\';if(!F.A.1O||F.A.1O==\'49\')F.14.Q=F.A.8v+\'U\'}k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}P if(F.A.fx>0){F.A.9E=1b;D dh=I;if(k.1x&&k.1t&&F.A.44){dh=k.1a.3w(k.1t.1c.K(0))}k.11.1c.5w({O:dh?dh.x:F.A.1B.x,Q:dh?dh.y:F.A.1B.y},F.A.fx,u(){F.A.9E=I;if(F.A.46==I){F.14.19=F.A.7V}k.11.9H(F)})}P{k.11.9H(F);if(F.A.46==I){k(F).B(\'19\',F.A.7V)}}if(k.1x&&k.1x.8D>0){k.1x.eO(F)}if(k.1t&&F.A.44){k.1t.fC(F)}if(F.A.2Z&&(F.A.8y!=F.A.2c.x||F.A.8v!=F.A.2c.y)){F.A.2Z.1D(F,F.A.b3||[0,0,F.A.8y,F.A.8v])}if(F.A.3T)F.A.3T.1D(F);E I},c7:u(x,y,dx,dy){if(dx!=0)dx=T((dx+(q.A.gx*dx/18.3S(dx))/2)/q.A.gx)*q.A.gx;if(dy!=0)dy=T((dy+(q.A.gy*dy/18.3S(dy))/2)/q.A.gy)*q.A.gy;E{dx:dx,dy:dy,x:0,y:0}},ce:u(x,y,dx,dy){dx=18.3L(18.3r(dx,q.A.28.dx),q.A.28.w+q.A.28.dx-q.A.1B.1C);dy=18.3L(18.3r(dy,q.A.28.dy),q.A.28.h+q.A.28.dy-q.A.1B.hb);E{dx:dx,dy:dy,x:0,y:0}},bX:u(e){if(k.11.F==S||k.11.F.A.9E==1b){E}D F=k.11.F;F.A.4B=k.1a.4a(e);if(F.A.7q==I){45=18.ez(18.6b(F.A.1s.x-F.A.4B.x,2)+18.6b(F.A.1s.y-F.A.4B.y,2));if(45<F.A.6M){E}P{k.11.ea(e)}}D dx=F.A.4B.x-F.A.1s.x;D dy=F.A.4B.y-F.A.1s.y;24(D i in F.A.5t){D 3y=F.A.5t[i].1D(F,[F.A.2c.x+dx,F.A.2c.y+dy,dx,dy]);if(3y&&3y.1K==7M){dx=i!=\'7R\'?3y.dx:(3y.x-F.A.2c.x);dy=i!=\'7R\'?3y.dy:(3y.y-F.A.2c.y)}}F.A.2v=F.A.1B.x+dx-F.A.9B;F.A.2q=F.A.1B.y+dy-F.A.ai;if(F.A.5i&&(F.A.3H||F.A.2Z)){k.3b.3H(F,F.A.2v,F.A.2q)}if(F.A.4m)F.A.4m.1D(F,[F.A.2c.x+dx,F.A.2c.y+dy]);if(!F.A.1O||F.A.1O==\'4j\'){F.A.8y=F.A.2c.x+dx;k.11.1c.K(0).14.O=F.A.2v+\'U\'}if(!F.A.1O||F.A.1O==\'49\'){F.A.8v=F.A.2c.y+dy;k.11.1c.K(0).14.Q=F.A.2q+\'U\'}if(k.1x&&k.1x.8D>0){k.1x.al(F)}E I},2r:u(o){if(!k.11.1c){k(\'2e\',1h).1S(\'<22 id="e8"></22>\');k.11.1c=k(\'#e8\');D el=k.11.1c.K(0);D 4J=el.14;4J.Y=\'1P\';4J.19=\'1o\';4J.9b=\'8j\';4J.eu=\'1o\';4J.2U=\'2K\';if(1X.71){el.bE="e4"}P{4J.gi=\'1o\';4J.e7=\'1o\';4J.e1=\'1o\'}}if(!o){o={}}E q.1E(u(){if(q.9I||!k.1a)E;if(1X.71){q.gh=u(){E I};q.gj=u(){E I}}D el=q;D 5e=o.3v?k(q).gf(o.3v):k(q);if(k.3a.4t){5e.1E(u(){q.bE="e4"})}P{5e.B(\'-gI-7R-8C\',\'1o\');5e.B(\'7R-8C\',\'1o\');5e.B(\'-gH-7R-8C\',\'1o\')}q.A={5e:5e,6N:o.6N?1b:I,46:o.46?1b:I,44:o.44?o.44:I,5i:o.5i?o.5i:I,8s:o.8s?o.8s:I,3I:o.3I?T(o.3I)||0:I,1G:o.1G?2m(o.1G):I,fx:T(o.fx)||S,6R:o.6R?o.6R:I,5t:{},1s:{},4o:o.4o&&o.4o.1K==2A?o.4o:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:0,2V:o.2V?o.2V:I,bD:o.bD?1b:I,7O:o.7O||I};if(o.5t&&o.5t.1K==2A)q.A.5t.7R=o.5t;if(o.4m&&o.4m.1K==2A)q.A.4m=o.4m;if(o.2p&&((o.2p.1K==b0&&(o.2p==\'94\'||o.2p==\'1h\'))||(o.2p.1K==7F&&o.2p.1g==4))){q.A.2p=o.2p}if(o.2O){q.A.2O=o.2O}if(o.6a){if(2g o.6a==\'gz\'){q.A.gx=T(o.6a)||1;q.A.gy=T(o.6a)||1}P if(o.6a.1g==2){q.A.gx=T(o.6a[0])||1;q.A.gy=T(o.6a[1])||1}}if(o.3H&&o.3H.1K==2A){q.A.3H=o.3H}q.9I=1b;5e.1E(u(){q.3U=el});5e.1J(\'5v\',k.11.bN)})}};k.fn.23({aS:k.11.4U,7t:k.11.2r});k.1x={du:u(5J,5G,7Q,7S){E 5J<=k.11.F.A.2v&&(5J+7Q)>=(k.11.F.A.2v+k.11.F.A.1B.w)&&5G<=k.11.F.A.2q&&(5G+7S)>=(k.11.F.A.2q+k.11.F.A.1B.h)?1b:I},cV:u(5J,5G,7Q,7S){E!(5J>(k.11.F.A.2v+k.11.F.A.1B.w)||(5J+7Q)<k.11.F.A.2v||5G>(k.11.F.A.2q+k.11.F.A.1B.h)||(5G+7S)<k.11.F.A.2q)?1b:I},1s:u(5J,5G,7Q,7S){E 5J<k.11.F.A.4B.x&&(5J+7Q)>k.11.F.A.4B.x&&5G<k.11.F.A.4B.y&&(5G+7S)>k.11.F.A.4B.y?1b:I},5r:I,3Q:{},8D:0,3P:{},ed:u(C){if(k.11.F==S){E}D i;k.1x.3Q={};D bJ=I;24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){if(1j.1i.m==I){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));1j.1i.m=1b}if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);1j.1i.ay=k.1t.8x(k.1p(1j,\'id\')).7l;C.14.19=C.A.7V;bJ=1b}if(1j.1i.9i){1j.1i.9i.1D(k.1x.3P[i].K(0),[k.11.F])}}}}if(bJ){k.1t.26()}},dS:u(){k.1x.3Q={};24(i in k.1x.3P){if(k.1x.3P[i]!=S){D 1j=k.1x.3P[i].K(0);if(k(k.11.F).is(\'.\'+1j.1i.a)){1j.1i.p=k.23(k.1a.7G(1j),k.1a.74(1j));if(1j.1i.ac){k.1x.3P[i].2R(1j.1i.ac)}k.1x.3Q[i]=k.1x.3P[i];if(k.1t&&1j.1i.s&&k.11.F.A.44){1j.1i.el=k(\'.\'+1j.1i.a,1j);C.14.19=\'1o\';k.1t.cT(1j);C.14.19=C.A.7V}}}}},al:u(e){if(k.11.F==S){E}k.1x.5r=I;D i;D bK=I;D eQ=0;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(k.1x.5r==I&&k.1x[1j.1i.t](1j.1i.p.x,1j.1i.p.y,1j.1i.p.1C,1j.1i.p.hb)){if(1j.1i.hc&&1j.1i.h==I){k.1x.3Q[i].2R(1j.1i.hc)}if(1j.1i.h==I&&1j.1i.7x){bK=1b}1j.1i.h=1b;k.1x.5r=1j;if(k.1t&&1j.1i.s&&k.11.F.A.44){k.1t.1c.K(0).3l=1j.1i.eV;k.1t.al(1j)}eQ++}P if(1j.1i.h==1b){if(1j.1i.7y){1j.1i.7y.1D(1j,[e,k.11.1c.K(0).7c,1j.1i.fx])}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}1j.1i.h=I}}if(k.1t&&!k.1x.5r&&k.11.F.44){k.1t.1c.K(0).14.19=\'1o\'}if(bK){k.1x.5r.1i.7x.1D(k.1x.5r,[e,k.11.1c.K(0).7c])}},eO:u(e){D i;24(i in k.1x.3Q){D 1j=k.1x.3Q[i].K(0);if(1j.1i.ac){k.1x.3Q[i].4i(1j.1i.ac)}if(1j.1i.hc){k.1x.3Q[i].4i(1j.1i.hc)}if(1j.1i.s){k.1t.7s[k.1t.7s.1g]=i}if(1j.1i.9l&&1j.1i.h==1b){1j.1i.h=I;1j.1i.9l.1D(1j,[e,1j.1i.fx])}1j.1i.m=I;1j.1i.h=I}k.1x.3Q={}},4U:u(){E q.1E(u(){if(q.9j){if(q.1i.s){id=k.1p(q,\'id\');k.1t.5L[id]=S;k(\'.\'+q.1i.a,q).aS()}k.1x.3P[\'d\'+q.c2]=S;q.9j=I;q.f=S}})},2r:u(o){E q.1E(u(){if(q.9j==1b||!o.3C||!k.1a||!k.11){E}q.1i={a:o.3C,ac:o.9J||I,hc:o.a5||I,eV:o.58||I,9l:o.gq||o.9l||I,7x:o.7x||o.dC||I,7y:o.7y||o.fO||I,9i:o.9i||I,t:o.6I&&(o.6I==\'du\'||o.6I==\'cV\')?o.6I:\'1s\',fx:o.fx?o.fx:I,m:I,h:I};if(o.cQ==1b&&k.1t){id=k.1p(q,\'id\');k.1t.5L[id]=q.1i.a;q.1i.s=1b;if(o.2Z){q.1i.2Z=o.2Z;q.1i.ay=k.1t.8x(id).7l}}q.9j=1b;q.c2=T(18.6o()*c9);k.1x.3P[\'d\'+q.c2]=k(q);k.1x.8D++})}};k.fn.23({dR:k.1x.4U,do:k.1x.2r});k.gD=k.1x.dS;k.3B={1c:S,8L:u(){3g=q.2y;if(!3g)E;14={dz:k(q).B(\'dz\')||\'\',4A:k(q).B(\'4A\')||\'\',8Z:k(q).B(\'8Z\')||\'\',dP:k(q).B(\'dP\')||\'\',dT:k(q).B(\'dT\')||\'\',dU:k(q).B(\'dU\')||\'\',c3:k(q).B(\'c3\')||\'\',dY:k(q).B(\'dY\')||\'\'};k.3B.1c.B(14);3x=k.3B.dX(3g);3x=3x.4E(12 bb("\\\\n","g"),"<br />");k.3B.1c.3x(\'gL\');ci=k.3B.1c.K(0).4c;k.3B.1c.3x(3x);Z=k.3B.1c.K(0).4c+ci;if(q.6l.2M&&Z>q.6l.2M[0]){Z=q.6l.2M[0]}q.14.Z=Z+\'U\';if(q.4Y==\'cf\'){W=k.3B.1c.K(0).5W+ci;if(q.6l.2M&&W>q.6l.2M[1]){W=q.6l.2M[1]}q.14.W=W+\'U\'}},dX:u(3g){cg={\'&\':\'&gK;\',\'<\':\'&gJ;\',\'>\':\'&gt;\',\'"\':\'&gs;\'};24(i in cg){3g=3g.4E(12 bb(i,\'g\'),cg[i])}E 3g},2r:u(2M){if(k.3B.1c==S){k(\'2e\',1h).1S(\'<22 id="dE" 14="Y: 1P; Q: 0; O: 0; 3n: 2K;"></22>\');k.3B.1c=k(\'#dE\')}E q.1E(u(){if(/cf|ch/.48(q.4Y)){if(q.4Y==\'ch\'){dB=q.5C(\'1u\');if(!/3g|gr/.48(dB)){E}}if(2M&&(2M.1K==bn||(2M.1K==7F&&2M.1g==2))){if(2M.1K==bn)2M=[2M,2M];P{2M[0]=T(2M[0])||8J;2M[1]=T(2M[1])||8J}q.6l={2M:2M}}k(q).5B(k.3B.8L).6y(k.3B.8L).dH(k.3B.8L);k.3B.8L.1D(q)}})}};k.fn.kc=k.3B.2r;k.4K=u(e){if(/^kd$|^ke$|^ka$|^6L$|^k9$|^k5$|^k4$|^k6$|^k7$|^2e$|^k8$|^kf$|^kg$|^kn$|^ko$|^kp$|^kq$/i.48(e.9N))E I;P E 1b};k.fx.a0=u(e,65){D c=e.7c;D cs=c.14;cs.Y=65.Y;cs.5K=65.3G.t;cs.5j=65.3G.l;cs.5k=65.3G.b;cs.5z=65.3G.r;cs.Q=65.Q+\'U\';cs.O=65.O+\'U\';e.31.ew(c,e);e.31.km(e)};k.fx.9P=u(e){if(!k.4K(e))E I;D t=k(e);D es=e.14;D 73=I;if(t.B(\'19\')==\'1o\'){5Y=t.B(\'3n\');t.B(\'3n\',\'2K\').1Y();73=1b}D V={};V.Y=t.B(\'Y\');V.1q=k.1a.2o(e);V.3G=k.1a.cy(e);D co=e.4Z?e.4Z.ei:t.B(\'hU\');V.Q=T(t.B(\'Q\'))||0;V.O=T(t.B(\'O\'))||0;D eo=\'kl\'+T(18.6o()*c9);D 6u=1h.3F(/^1T$|^br$|^kh$|^hr$|^8C$|^kj$|^8T$|^3A$|^kk$|^k3$|^k2$|^9h$|^dl$|^jM$/i.48(e.9N)?\'22\':e.9N);k.1p(6u,\'id\',eo);D jN=k(6u).2R(\'jO\');D 4h=6u.14;D Q=0;D O=0;if(V.Y==\'2s\'||V.Y==\'1P\'){Q=V.Q;O=V.O}4h.Q=Q+\'U\';4h.O=O+\'U\';4h.Y=V.Y!=\'2s\'&&V.Y!=\'1P\'?\'2s\':V.Y;4h.W=V.1q.hb+\'U\';4h.Z=V.1q.1C+\'U\';4h.5K=V.3G.t;4h.5z=V.3G.r;4h.5k=V.3G.b;4h.5j=V.3G.l;4h.2U=\'2K\';if(k.3a.4t){4h.ei=co}P{4h.jK=co}if(k.3a=="4t"){es.5E="8V(1G="+0.ex*2a+")"}es.1G=0.ex;e.31.ew(6u,e);6u.jF(e);es.5K=\'2P\';es.5z=\'2P\';es.5k=\'2P\';es.5j=\'2P\';es.Y=\'1P\';es.eu=\'1o\';es.Q=\'2P\';es.O=\'2P\';if(73){t.2G();es.3n=5Y}E{V:V,3p:k(6u)}};k.fx.8E={jE:[0,1V,1V],jG:[eD,1V,1V],jH:[e6,e6,jI],jP:[0,0,0],ks:[0,0,1V],jY:[dv,42,42],jZ:[0,1V,1V],k0:[0,0,7w],k1:[0,7w,7w],jX:[cn,cn,cn],jS:[0,2a,0],jR:[jT,jU,eb],jV:[7w,0,7w],kr:[85,eb,47],kP:[1V,eA,0],kN:[kO,50,kx],kF:[7w,0,0],kD:[ku,f8,kt],ky:[kH,0,9C],kL:[1V,0,1V],kM:[1V,kJ,0],kv:[0,6C,0],kA:[75,0,kE],kC:[eD,eB,eA],kG:[kI,kB,eB],kw:[e0,1V,1V],kz:[eL,kK,eL],kQ:[9C,9C,9C],jC:[1V,iy,iz],iA:[1V,1V,e0],iB:[0,1V,0],ix:[1V,0,1V],iv:[6C,0,0],iq:[0,0,6C],ip:[6C,6C,0],ir:[1V,dv,0],it:[1V,ah,iu],iC:[6C,0,6C],iD:[1V,0,0],iK:[ah,ah,ah],iL:[1V,1V,1V],iM:[1V,1V,0]};k.fx.6D=u(4x,dm){if(k.fx.8E[4x])E{r:k.fx.8E[4x][0],g:k.fx.8E[4x][1],b:k.fx.8E[4x][2]};P if(2W=/^6Y\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.a4(4x))E{r:T(2W[1]),g:T(2W[2]),b:T(2W[3])};P if(2W=/6Y\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.a4(4x))E{r:2m(2W[1])*2.55,g:2m(2W[2])*2.55,b:2m(2W[3])*2.55};P if(2W=/^#([a-fA-79-9])([a-fA-79-9])([a-fA-79-9])$/.a4(4x))E{r:T("77"+2W[1]+2W[1]),g:T("77"+2W[2]+2W[2]),b:T("77"+2W[3]+2W[3])};P if(2W=/^#([a-fA-79-9]{2})([a-fA-79-9]{2})([a-fA-79-9]{2})$/.a4(4x))E{r:T("77"+2W[1]),g:T("77"+2W[2]),b:T("77"+2W[3])};P E dm==1b?I:{r:1V,g:1V,b:1V}};k.fx.dD={5Q:1,5b:1,5O:1,4S:1,4D:1,4A:1,W:1,O:1,c3:1,iI:1,5k:1,5j:1,5z:1,5K:1,8b:1,6x:1,8c:1,av:1,1G:1,iE:1,iF:1,5n:1,4X:1,5U:1,5M:1,2L:1,jD:1,Q:1,Z:1,3I:1};k.fx.dA={7i:1,iG:1,iH:1,io:1,im:1,4x:1,i2:1};k.fx.8A=[\'i3\',\'i4\',\'i5\',\'i1\'];k.fx.cc={\'cd\':[\'2E\',\'dK\'],\'a8\':[\'2E\',\'bh\'],\'6w\':[\'6w\',\'\'],\'8F\':[\'8F\',\'\']};k.fn.23({5w:u(5X,H,G,J){E q.1w(u(){D a1=k.H(H,G,J);D e=12 k.dM(q,a1,5X)})},c4:u(H,J){E q.1w(u(){D a1=k.H(H,J);D e=12 k.c4(q,a1)})},8o:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D)})},i0:u(2D){E q.1E(u(){if(q.6d)k.by(q,2D);if(q.1w&&q.1w[\'fx\'])q.1w.fx=[]})}});k.23({c4:u(2f,M){D z=q,3t;z.2D=u(){if(k.fQ(M.21))M.21.1D(2f)};z.2I=6V(u(){z.2D()},M.1m);2f.6d=z},G:{c8:u(p,n,1W,1H,1m){E((-18.5H(p*18.2Q)/2)+0.5)*1H+1W}},dM:u(2f,M,5X){D z=q,3t;D y=2f.14;D fR=k.B(2f,"2U");D 72=k.B(2f,"19");D 2j={};z.9O=(12 7g()).7z();M.G=M.G&&k.G[M.G]?M.G:\'c8\';z.ag=u(2w,43){if(k.fx.dD[2w]){if(43==\'1Y\'||43==\'2G\'||43==\'3R\'){if(!2f.6v)2f.6v={};D r=2m(k.6E(2f,2w));2f.6v[2w]=r&&r>-c9?r:(2m(k.B(2f,2w))||0);43=43==\'3R\'?(72==\'1o\'?\'1Y\':\'2G\'):43;M[43]=1b;2j[2w]=43==\'1Y\'?[0,2f.6v[2w]]:[2f.6v[2w],0];if(2w!=\'1G\')y[2w]=2j[2w][0]+(2w!=\'3I\'&&2w!=\'8Z\'?\'U\':\'\');P k.1p(y,"1G",2j[2w][0])}P{2j[2w]=[2m(k.6E(2f,2w)),2m(43)||0]}}P if(k.fx.dA[2w])2j[2w]=[k.fx.6D(k.6E(2f,2w)),k.fx.6D(43)];P if(/^6w$|8F$|2E$|a8$|cd$/i.48(2w)){D m=43.4E(/\\s+/g,\' \').4E(/6Y\\s*\\(\\s*/g,\'6Y(\').4E(/\\s*,\\s*/g,\',\').4E(/\\s*\\)/g,\')\').d5(/([^\\s]+)/g);3m(2w){1e\'6w\':1e\'8F\':1e\'cd\':1e\'a8\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];24(D i=0;i<k.fx.8A.1g;i++){D 64=k.fx.cc[2w][0]+k.fx.8A[i]+k.fx.cc[2w][1];2j[64]=2w==\'a8\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),2m(m[i])]}1r;1e\'2E\':24(D i=0;i<m.1g;i++){D bd=2m(m[i]);D a9=!hX(bd)?\'dK\':(!/cu|1o|2K|hY|hZ|i6|i7|ii|ij|ik|il/i.48(m[i])?\'bh\':I);if(a9){24(D j=0;j<k.fx.8A.1g;j++){64=\'2E\'+k.fx.8A[j]+a9;2j[64]=a9==\'bh\'?[k.fx.6D(k.6E(2f,64)),k.fx.6D(m[i])]:[2m(k.6E(2f,64)),bd]}}P{y[\'ie\']=m[i]}}1r}}P{y[2w]=43}E I};24(p in 5X){if(p==\'14\'){D 5f=k.bl(5X[p]);24(7A in 5f){q.ag(7A,5f[7A])}}P if(p==\'3l\'){if(1h.af)24(D i=0;i<1h.af.1g;i++){D 7e=1h.af[i].7e||1h.af[i].i9||S;if(7e){24(D j=0;j<7e.1g;j++){if(7e[j].i8==\'.\'+5X[p]){D 6X=12 bb(\'\\.\'+5X[p]+\' {\');D 5Z=7e[j].14.9X;D 5f=k.bl(5Z.4E(6X,\'\').4E(/}/g,\'\'));24(7A in 5f){q.ag(7A,5f[7A])}}}}}}P{q.ag(p,5X[p])}}y.19=72==\'1o\'?\'2B\':72;y.2U=\'2K\';z.2D=u(){D t=(12 7g()).7z();if(t>M.1m+z.9O){5T(z.2I);z.2I=S;24(p in 2j){if(p=="1G")k.1p(y,"1G",2j[p][1]);P if(2g 2j[p][1]==\'8T\')y[p]=\'6Y(\'+2j[p][1].r+\',\'+2j[p][1].g+\',\'+2j[p][1].b+\')\';P y[p]=2j[p][1]+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}if(M.2G||M.1Y)24(D p in 2f.6v)if(p=="1G")k.1p(y,p,2f.6v[p]);P y[p]="";y.19=M.2G?\'1o\':(72!=\'1o\'?72:\'2B\');y.2U=fR;2f.6d=S;if(k.fQ(M.21))M.21.1D(2f)}P{D n=t-q.9O;D 8w=n/M.1m;24(p in 2j){if(2g 2j[p][1]==\'8T\'){y[p]=\'6Y(\'+T(k.G[M.G](8w,n,2j[p][0].r,(2j[p][1].r-2j[p][0].r),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].g,(2j[p][1].g-2j[p][0].g),M.1m))+\',\'+T(k.G[M.G](8w,n,2j[p][0].b,(2j[p][1].b-2j[p][0].b),M.1m))+\')\'}P{D bz=k.G[M.G](8w,n,2j[p][0],(2j[p][1]-2j[p][0]),M.1m);if(p=="1G")k.1p(y,"1G",bz);P y[p]=bz+(p!=\'3I\'&&p!=\'8Z\'?\'U\':\'\')}}}};z.2I=6V(u(){z.2D()},13);2f.6d=z},by:u(2f,2D){if(2D)2f.6d.9O-=iO;P{1X.5T(2f.6d.2I);2f.6d=S;k.2H(2f,"fx")}}});k.bl=u(5Z){D 5f={};if(2g 5Z==\'4V\'){5Z=5Z.6c().7C(\';\');24(D i=0;i<5Z.1g;i++){6X=5Z[i].7C(\':\');if(6X.1g==2){5f[k.g6(6X[0].4E(/\\-(\\w)/g,u(m,c){E c.jo()}))]=k.g6(6X[1])}}}E 5f};k.fn.23({g3:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4F\',G)})},gb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'4r\',G)})},jl:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fJ\',G)})},jk:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'O\',G)})},jg:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'2L\',G)})},jf:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.61(q,H,J,\'fh\',G)})}});k.fx.61=u(e,H,J,2S,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.1N=k.1a.2o(e);z.G=2g J==\'4V\'?J:G||S;if(!e.4s)e.4s=z.el.B(\'19\');if(2S==\'fJ\'){2S=z.el.B(\'19\')==\'1o\'?\'4r\':\'4F\'}P if(2S==\'fh\'){2S=z.el.B(\'19\')==\'1o\'?\'2L\':\'O\'}z.el.1Y();z.H=H;z.J=2g J==\'u\'?J:S;z.fx=k.fx.9P(e);z.2S=2S;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.2S==\'4r\'||z.2S==\'2L\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(z.fx.V.1q.hb,0);1r;1e\'4r\':z.fx.3p.B(\'W\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');63.1L(0,z.fx.V.1q.hb);1r;1e\'O\':63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(z.fx.V.1q.1C,0);1r;1e\'2L\':z.fx.3p.B(\'Z\',\'9R\');z.el.1Y();63=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');63.1L(0,z.fx.V.1q.1C);1r}};k.fn.ji=u(5D,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.f4(q,5D,J);e.bp()})};k.fx.f4=u(e,5D,J){D z=q;z.el=k(e);z.el.1Y();z.J=J;z.5D=T(5D)||40;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.3V=5;z.5y=1;z.bp=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:jj,21:u(){z.e=12 k.fx(z.el.K(0),{1m:80,21:u(){z.5D=T(z.5D/2);if(z.5y<=z.3V)z.bp();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'Q\');z.e.1L(z.V.Q-z.5D,z.V.Q)}},\'Q\');z.e.1L(z.V.Q,z.V.Q-z.5D)}};k.fn.23({jy:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'4l\',G)})},jz:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'in\',G)})},jA:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4r\',\'3R\',G)})},jB:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'4l\',G)})},jx:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'in\',G)})},jw:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'4F\',\'3R\',G)})},js:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'4l\',G)})},jt:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'in\',G)})},ju:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'O\',\'3R\',G)})},jv:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'4l\',G)})},je:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'in\',G)})},jd:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.4f(q,H,J,\'2L\',\'3R\',G)})}});k.fx.4f=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(!e.4s)e.4s=z.el.B(\'19\');if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}z.el.1Y();if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.1u=1u;J=2g J==\'u\'?J:S;8H=1;3m(2S){1e\'4F\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;8H=-1;1r;1e\'4r\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Q\');z.62=2m(z.V.Q)||0;z.9K=z.fG;1r;1e\'2L\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;1r;1e\'O\':z.e=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'O\');z.62=2m(z.V.O)||0;z.9K=z.fy;8H=-1;1r}z.e2=12 k.fx(z.el.K(0),k.H(H,z.G,u(){z.el.B(z.V);if(z.1u==\'4l\'){z.el.B(\'19\',\'1o\')}P z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s);k.2H(z.el.K(0),\'1n\')}),\'1G\');if(1u==\'in\'){z.e.1L(z.62+2a*8H,z.62);z.e2.1L(0,1)}P{z.e.1L(z.62,z.62+2a*8H);z.e2.1L(1,0)}};k.fn.23({j0:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'fp\',G)})},iW:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'9M\',G)})},iV:u(H,W,J,G){E q.1w(\'1n\',u(){12 k.fx.9L(q,H,W,J,\'3R\',G)})}});k.fx.9L=u(e,H,W,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'9M\':\'fp\'}z.H=H;z.W=W&&W.1K==bn?W:20;z.fx=k.fx.9P(e);z.1u=1u;z.21=u(){if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}if(z.1u==\'9M\'){z.el.1Y()}P{z.el.2G()}k.fx.a0(z.fx.3p.K(0),z.fx.V);k.2H(z.el.K(0),\'1n\')};if(z.1u==\'9M\'){z.el.1Y();z.fx.3p.B(\'W\',z.W+\'U\').B(\'Z\',\'9R\');z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'W\');z.ef.1L(z.W,z.fx.V.1q.hb)}),\'Z\');z.ef.1L(0,z.fx.V.1q.1C)}P{z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,u(){z.ef=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G,z.21),\'Z\');z.ef.1L(z.fx.V.1q.1C,0)}),\'W\');z.ef.1L(z.fx.V.1q.hb,z.W)}};k.fn.iR=u(H,4x,J,G){E q.1w(\'fv\',u(){q.6W=k(q).1p("14")||\'\';G=2g J==\'4V\'?J:G||S;J=2g J==\'u\'?J:S;D 9S=k(q).B(\'7i\');D 8I=q.31;7d(9S==\'cu\'&&8I){9S=k(8I).B(\'7i\');8I=8I.31}k(q).B(\'7i\',4x);if(2g q.6W==\'8T\')q.6W=q.6W["9X"];k(q).5w({\'7i\':9S},H,G,u(){k.2H(q,\'fv\');if(2g k(q).1p("14")==\'8T\'){k(q).1p("14")["9X"]="";k(q).1p("14")["9X"]=q.6W}P{k(q).1p("14",q.6W)}if(J)J.1D(q)})})};k.fn.23({iT:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6g\',G)})},iU:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)})},j1:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'4j\',\'6g\',G)}})},j2:u(H,J,G){E q.1w(\'1n\',u(){if(k.B(q,\'19\')==\'1o\'){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)}P{12 k.fx.5m(q,H,J,\'49\',\'6g\',G)}})},j9:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'49\',\'6Z\',G)})},ja:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.5m(q,H,J,\'4j\',\'6Z\',G)})}});k.fx.5m=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;D 73=I;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1u=1u;z.H=H;z.2i=k.1a.2o(e);z.V={};z.V.Y=z.el.B(\'Y\');z.V.19=z.el.B(\'19\');if(z.V.19==\'1o\'){5Y=z.el.B(\'3n\');z.el.1Y();73=1b}z.V.Q=z.el.B(\'Q\');z.V.O=z.el.B(\'O\');if(73){z.el.2G();z.el.B(\'3n\',5Y)}z.V.Z=z.2i.w+\'U\';z.V.W=z.2i.h+\'U\';z.V.2U=z.el.B(\'2U\');z.2i.Q=T(z.V.Q)||0;z.2i.O=T(z.V.O)||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\').B(\'W\',1u==\'6Z\'&&2S==\'49\'?1:z.2i.h+\'U\').B(\'Z\',1u==\'6Z\'&&2S==\'4j\'?1:z.2i.w+\'U\');z.21=u(){z.el.B(z.V);if(z.1u==\'6g\')z.el.2G();P z.el.1Y();k.2H(z.el.K(0),\'1n\')};3m(2S){1e\'49\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'W\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'6g\'){z.eh.1L(z.2i.h,0);z.et.1L(z.2i.Q,z.2i.Q+z.2i.h/2)}P{z.eh.1L(0,z.2i.h);z.et.1L(z.2i.Q+z.2i.h/2,z.2i.Q)}1r;1e\'4j\':z.eh=12 k.fx(z.el.K(0),k.H(H-15,z.G,J),\'Z\');z.et=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'6g\'){z.eh.1L(z.2i.w,0);z.et.1L(z.2i.O,z.2i.O+z.2i.w/2)}P{z.eh.1L(0,z.2i.w);z.et.1L(z.2i.O+z.2i.w/2,z.2i.O)}1r}};k.fn.bg=u(H,3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D fx=12 k.fx.bg(q,H,3V,J);fx.bf()})};k.fx.bg=u(el,H,3V,J){D z=q;z.3V=3V;z.5y=1;z.el=el;z.H=H;z.J=J;k(z.el).1Y();z.bf=u(){z.5y++;z.e=12 k.fx(z.el,k.H(z.H,u(){z.ef=12 k.fx(z.el,k.H(z.H,u(){if(z.5y<=z.3V)z.bf();P{k.2H(z.el,\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el)}}}),\'1G\');z.ef.1L(0,1)}),\'1G\');z.e.1L(1,0)}};k.fn.23({jb:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,1,2a,1b,J,\'fa\',G)})},jc:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,2a,1,1b,J,\'b4\',G)})},j8:u(H,J,G){E q.1w(\'1n\',u(){D G=G||\'fl\';12 k.fx.6G(q,H,2a,f8,1b,J,\'6h\',G)})},6G:u(H,57,30,6H,J,G){E q.1w(\'1n\',u(){12 k.fx.6G(q,H,57,30,6H,J,\'6G\',G)})}});k.fx.6G=u(e,H,57,30,6H,J,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.57=T(57)||2a;z.30=T(30)||2a;z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;z.1m=k.H(H).1m;z.6H=6H||S;z.2i=k.1a.2o(e);z.V={Z:z.el.B(\'Z\'),W:z.el.B(\'W\'),4A:z.el.B(\'4A\')||\'2a%\',Y:z.el.B(\'Y\'),19:z.el.B(\'19\'),Q:z.el.B(\'Q\'),O:z.el.B(\'O\'),2U:z.el.B(\'2U\'),4S:z.el.B(\'4S\'),5O:z.el.B(\'5O\'),5Q:z.el.B(\'5Q\'),5b:z.el.B(\'5b\'),5M:z.el.B(\'5M\'),5U:z.el.B(\'5U\'),5n:z.el.B(\'5n\'),4X:z.el.B(\'4X\')};z.Z=T(z.V.Z)||e.4c||0;z.W=T(z.V.W)||e.5W||0;z.Q=T(z.V.Q)||0;z.O=T(z.V.O)||0;1q=[\'em\',\'U\',\'j7\',\'%\'];24(i in 1q){if(z.V.4A.3J(1q[i])>0){z.fg=1q[i];z.4A=2m(z.V.4A)}if(z.V.4S.3J(1q[i])>0){z.fc=1q[i];z.bw=2m(z.V.4S)||0}if(z.V.5O.3J(1q[i])>0){z.fe=1q[i];z.bc=2m(z.V.5O)||0}if(z.V.5Q.3J(1q[i])>0){z.fL=1q[i];z.bA=2m(z.V.5Q)||0}if(z.V.5b.3J(1q[i])>0){z.g8=1q[i];z.bt=2m(z.V.5b)||0}if(z.V.5M.3J(1q[i])>0){z.g4=1q[i];z.bx=2m(z.V.5M)||0}if(z.V.5U.3J(1q[i])>0){z.g9=1q[i];z.bv=2m(z.V.5U)||0}if(z.V.5n.3J(1q[i])>0){z.gc=1q[i];z.bj=2m(z.V.5n)||0}if(z.V.4X.3J(1q[i])>0){z.fK=1q[i];z.b7=2m(z.V.4X)||0}}if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.el.B(\'2U\',\'2K\');z.1u=1u;3m(z.1u){1e\'fa\':z.4b=z.Q+z.2i.h/2;z.5a=z.Q;z.4k=z.O+z.2i.w/2;z.59=z.O;1r;1e\'b4\':z.5a=z.Q+z.2i.h/2;z.4b=z.Q;z.59=z.O+z.2i.w/2;z.4k=z.O;1r;1e\'6h\':z.5a=z.Q-z.2i.h/4;z.4b=z.Q;z.59=z.O-z.2i.w/4;z.4k=z.O;1r}z.be=I;z.t=(12 7g).7z();z.4w=u(){5T(z.2I);z.2I=S};z.2D=u(){if(z.be==I){z.el.1Y();z.be=1b}D t=(12 7g).7z();D n=t-z.t;D p=n/z.1m;if(t>=z.1m+z.t){9T(u(){o=1;if(z.1u){t=z.5a;l=z.59;if(z.1u==\'6h\')o=0}z.bs(z.30,l,t,1b,o)},13);z.4w()}P{o=1;if(!k.G||!k.G[z.G]){s=((-18.5H(p*18.2Q)/2)+0.5)*(z.30-z.57)+z.57}P{s=k.G[z.G](p,n,z.57,(z.30-z.57),z.1m)}if(z.1u){if(!k.G||!k.G[z.G]){t=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b;l=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k;if(z.1u==\'6h\')o=((-18.5H(p*18.2Q)/2)+0.5)*(-0.9Y)+0.9Y}P{t=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.1m);l=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.1m);if(z.1u==\'6h\')o=k.G[z.G](p,n,0.9Y,-0.9Y,z.1m)}}z.bs(s,l,t,I,o)}};z.2I=6V(u(){z.2D()},13);z.bs=u(4q,O,Q,fM,1G){z.el.B(\'W\',z.W*4q/2a+\'U\').B(\'Z\',z.Z*4q/2a+\'U\').B(\'O\',O+\'U\').B(\'Q\',Q+\'U\').B(\'4A\',z.4A*4q/2a+z.fg);if(z.bw)z.el.B(\'4S\',z.bw*4q/2a+z.fc);if(z.bc)z.el.B(\'5O\',z.bc*4q/2a+z.fe);if(z.bA)z.el.B(\'5Q\',z.bA*4q/2a+z.fL);if(z.bt)z.el.B(\'5b\',z.bt*4q/2a+z.g8);if(z.bx)z.el.B(\'5M\',z.bx*4q/2a+z.g4);if(z.bv)z.el.B(\'5U\',z.bv*4q/2a+z.g9);if(z.bj)z.el.B(\'5n\',z.bj*4q/2a+z.gc);if(z.b7)z.el.B(\'4X\',z.b7*4q/2a+z.fK);if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+1G*2a+")";z.el.K(0).14.1G=1G}if(fM){if(z.6H){z.el.B(z.V)}if(z.1u==\'b4\'||z.1u==\'6h\'){z.el.B(\'19\',\'1o\');if(z.1u==\'6h\'){if(1X.71)z.el.K(0).14.5E="8V(1G="+2a+")";z.el.K(0).14.1G=1}}P z.el.B(\'19\',\'2B\');if(z.J)z.J.1D(z.el.K(0));k.2H(z.el.K(0),\'1n\')}}};k.fn.23({9U:u(H,1O,G){o=k.H(H);E q.1w(\'1n\',u(){12 k.fx.9U(q,o,1O,G)})},j6:u(H,1O,G){E q.1E(u(){k(\'a[@3h*="#"]\',q).5h(u(e){fW=q.3h.7C(\'#\');k(\'#\'+fW[1]).9U(H,1O,G);E I})})}});k.fx.9U=u(e,o,1O,G){D z=q;z.o=o;z.e=e;z.1O=/fT|gd/.48(1O)?1O:I;z.G=G;p=k.1a.3w(e);s=k.1a.6z();z.4w=u(){5T(z.2I);z.2I=S;k.2H(z.e,\'1n\')};z.t=(12 7g).7z();s.h=s.h>s.ih?(s.h-s.ih):s.h;s.w=s.w>s.iw?(s.w-s.iw):s.w;z.5a=p.y>s.h?s.h:p.y;z.59=p.x>s.w?s.w:p.x;z.4b=s.t;z.4k=s.l;z.2D=u(){D t=(12 7g).7z();D n=t-z.t;D p=n/z.o.1m;if(t>=z.o.1m+z.t){z.4w();9T(u(){z.d3(z.5a,z.59)},13)}P{if(!z.1O||z.1O==\'fT\'){if(!k.G||!k.G[z.G]){9V=((-18.5H(p*18.2Q)/2)+0.5)*(z.5a-z.4b)+z.4b}P{9V=k.G[z.G](p,n,z.4b,(z.5a-z.4b),z.o.1m)}}P{9V=z.4b}if(!z.1O||z.1O==\'gd\'){if(!k.G||!k.G[z.G]){9W=((-18.5H(p*18.2Q)/2)+0.5)*(z.59-z.4k)+z.4k}P{9W=k.G[z.G](p,n,z.4k,(z.59-z.4k),z.o.1m)}}P{9W=z.4k}z.d3(9V,9W)}};z.d3=u(t,l){1X.j4(l,t)};z.2I=6V(u(){z.2D()},13)};k.fn.cY=u(3V,J){E q.1w(\'1n\',u(){if(!k.4K(q)){k.2H(q,\'1n\');E I}D e=12 k.fx.cY(q,3V,J);e.cG()})};k.fx.cY=u(e,3V,J){D z=q;z.el=k(e);z.el.1Y();z.3V=T(3V)||3;z.J=J;z.5y=1;z.V={};z.V.Y=z.el.B(\'Y\');z.V.Q=T(z.el.B(\'Q\'))||0;z.V.O=T(z.el.B(\'O\'))||0;if(z.V.Y!=\'2s\'&&z.V.Y!=\'1P\'){z.el.B(\'Y\',\'2s\')}z.cG=u(){z.5y++;z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(z.el.K(0),{1m:60,21:u(){z.e=12 k.fx(e,{1m:60,21:u(){if(z.5y<=z.3V)z.cG();P{z.el.B(\'Y\',z.V.Y).B(\'Q\',z.V.Q+\'U\').B(\'O\',z.V.O+\'U\');k.2H(z.el.K(0),\'1n\');if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}}}},\'O\');z.e.1L(z.V.O-20,z.V.O)}},\'O\');z.e.1L(z.V.O+20,z.V.O-20)}},\'O\');z.e.1L(z.V.O,z.V.O+20)}};k.fn.23({fo:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'in\',G)})},fq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'4l\',G)})},iY:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4F\',\'3R\',G)})},iX:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'in\',G)})},jr:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'4l\',G)})},jq:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'4r\',\'3R\',G)})},jp:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'in\',G)})},jn:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'4l\',G)})},jm:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'O\',\'3R\',G)})},iP:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'in\',G)})},ic:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'4l\',G)})},ib:u(H,J,G){E q.1w(\'1n\',u(){12 k.fx.1z(q,H,J,\'2L\',\'3R\',G)})}});k.fx.1z=u(e,H,J,2S,1u,G){if(!k.4K(e)){k.2H(e,\'1n\');E I}D z=q;z.el=k(e);z.G=2g J==\'4V\'?J:G||S;z.J=2g J==\'u\'?J:S;if(1u==\'3R\'){1u=z.el.B(\'19\')==\'1o\'?\'in\':\'4l\'}if(!e.4s)e.4s=z.el.B(\'19\');z.el.1Y();z.H=H;z.fx=k.fx.9P(e);z.1u=1u;z.2S=2S;z.21=u(){if(z.1u==\'4l\')z.el.B(\'3n\',\'2K\');k.fx.a0(z.fx.3p.K(0),z.fx.V);if(z.1u==\'in\'){z.el.B(\'19\',z.el.K(0).4s==\'1o\'?\'2B\':z.el.K(0).4s)}P{z.el.B(\'19\',\'1o\');z.el.B(\'3n\',\'dd\')}if(z.J&&z.J.1K==2A){z.J.1D(z.el.K(0))}k.2H(z.el.K(0),\'1n\')};3m(z.2S){1e\'4F\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'W\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.hb,0);z.7v.1L(0,z.fx.V.1q.hb)}P{z.ef.1L(0,-z.fx.V.1q.hb);z.7v.1L(z.fx.V.1q.hb,0)}1r;1e\'4r\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'Q\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.hb,0)}P{z.ef.1L(0,z.fx.V.1q.hb)}1r;1e\'O\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');z.7v=12 k.fx(z.fx.3p.K(0),k.H(z.H,z.G),\'Z\');if(z.1u==\'in\'){z.ef.1L(-z.fx.V.1q.1C,0);z.7v.1L(0,z.fx.V.1q.1C)}P{z.ef.1L(0,-z.fx.V.1q.1C);z.7v.1L(z.fx.V.1q.1C,0)}1r;1e\'2L\':z.ef=12 k.fx(z.el.K(0),k.H(z.H,z.G,z.21),\'O\');if(z.1u==\'in\'){z.ef.1L(z.fx.V.1q.1C,0)}P{z.ef.1L(0,z.fx.V.1q.1C)}1r}};k.3f=S;k.fn.ig=u(o){E q.1w(\'1n\',u(){12 k.fx.dG(q,o)})};k.fx.dG=u(e,o){if(k.3f==S){k(\'2e\',1h).1S(\'<22 id="3f"></22>\');k.3f=k(\'#3f\')}k.3f.B(\'19\',\'2B\').B(\'Y\',\'1P\');D z=q;z.el=k(e);if(!o||!o.30){E}if(o.30.1K==b0&&1h.9e(o.30)){o.30=1h.9e(o.30)}P if(!o.30.dq){E}if(!o.1m){o.1m=g5}z.1m=o.1m;z.30=o.30;z.8r=o.3l;z.21=o.21;if(z.8r){k.3f.2R(z.8r)}z.a3=0;z.a2=0;if(k.dF){z.a3=(T(k.3f.B(\'5b\'))||0)+(T(k.3f.B(\'5O\'))||0)+(T(k.3f.B(\'4X\'))||0)+(T(k.3f.B(\'5U\'))||0);z.a2=(T(k.3f.B(\'4S\'))||0)+(T(k.3f.B(\'5Q\'))||0)+(T(k.3f.B(\'5M\'))||0)+(T(k.3f.B(\'5n\'))||0)}z.26=k.23(k.1a.3w(z.el.K(0)),k.1a.2o(z.el.K(0)));z.2T=k.23(k.1a.3w(z.30),k.1a.2o(z.30));z.26.1C-=z.a3;z.26.hb-=z.a2;z.2T.1C-=z.a3;z.2T.hb-=z.a2;z.J=o.21;k.3f.B(\'Z\',z.26.1C+\'U\').B(\'W\',z.26.hb+\'U\').B(\'Q\',z.26.y+\'U\').B(\'O\',z.26.x+\'U\').5w({Q:z.2T.y,O:z.2T.x,Z:z.2T.1C,W:z.2T.hb},z.1m,u(){if(z.8r)k.3f.4i(z.8r);k.3f.B(\'19\',\'1o\');if(z.21&&z.21.1K==2A){z.21.1D(z.el.K(0),[z.30])}k.2H(z.el.K(0),\'1n\')})};k.1v={M:{2E:10,ec:\'1Q/iJ.eZ\',e3:\'<1T 2J="1Q/6g.da" />\',eW:0.8,d8:\'iN a6\',dc:\'57\',3W:8J},jQ:I,jW:I,6j:S,8m:I,8k:I,d1:u(2k){if(!k.1v.8k||k.1v.8m)E;D 3K=2k.7L||2k.7K||-1;3m(3K){1e 35:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jJ\').K(0));1r;1e 36:if(k.1v.6j)k.1v.26(S,k(\'a[@4I=\'+k.1v.6j+\']:jL\').K(0));1r;1e 37:1e 8:1e 33:1e 80:1e kb:D 9p=k(\'#87\');if(9p.K(0).53!=S){9p.K(0).53.1D(9p.K(0))}1r;1e 38:1r;1e 39:1e 34:1e 32:1e gl:1e 78:D 9k=k(\'#88\');if(9k.K(0).53!=S){9k.K(0).53.1D(9k.K(0))}1r;1e 40:1r;1e 27:k.1v.au();1r}},7q:u(M){if(M)k.23(k.1v.M,M);if(1X.2k){k(\'2e\',1h).1J(\'6y\',k.1v.d1)}P{k(1h).1J(\'6y\',k.1v.d1)}k(\'a\').1E(u(){el=k(q);en=el.1p(\'4I\')||\'\';e9=el.1p(\'3h\')||\'\';ev=/\\.da|\\.gw|\\.8X|\\.eZ|\\.gn/g;if(e9.6c().d5(ev)!=S&&en.6c().3J(\'eU\')==0){el.1J(\'5h\',k.1v.26)}});if(k.3a.4t){3A=1h.3F(\'3A\');k(3A).1p({id:\'cN\',2J:\'ek:I;\',ej:\'cD\',ep:\'cD\'}).B({19:\'1o\',Y:\'1P\',Q:\'0\',O:\'0\',5E:\'9n:9w.9y.cC(1G=0)\'});k(\'2e\').1S(3A)}8n=1h.3F(\'22\');k(8n).1p(\'id\',\'cP\').B({Y:\'1P\',19:\'1o\',Q:\'0\',O:\'0\',1G:0}).1S(1h.8M(\' \')).1J(\'5h\',k.1v.au);6A=1h.3F(\'22\');k(6A).1p(\'id\',\'eK\').B({4X:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cE=1h.3F(\'22\');k(cE).1p(\'id\',\'dg\').B({4X:k.1v.M.2E+\'U\',5n:k.1v.M.2E+\'U\'}).1S(1h.8M(\' \'));cF=1h.3F(\'a\');k(cF).1p({id:\'gg\',3h:\'#\'}).B({Y:\'1P\',2L:k.1v.M.2E+\'U\',Q:\'0\'}).1S(k.1v.M.e3).1J(\'5h\',k.1v.au);7m=1h.3F(\'22\');k(7m).1p(\'id\',\'cM\').B({Y:\'2s\',cA:\'O\',6w:\'0 9F\',3I:1}).1S(6A).1S(cE).1S(cF);2b=1h.3F(\'1T\');2b.2J=k.1v.M.ec;k(2b).1p(\'id\',\'eM\').B({Y:\'1P\'});4G=1h.3F(\'a\');k(4G).1p({id:\'87\',3h:\'#\'}).B({Y:\'1P\',19:\'1o\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));4M=1h.3F(\'a\');k(4M).1p({id:\'88\',3h:\'#\'}).B({Y:\'1P\',2U:\'2K\',ey:\'1o\'}).1S(1h.8M(\' \'));1Z=1h.3F(\'22\');k(1Z).1p(\'id\',\'eE\').B({19:\'1o\',Y:\'2s\',2U:\'2K\',cA:\'O\',6w:\'0 9F\',Q:\'0\',O:\'0\',3I:2}).1S([2b,4G,4M]);6F=1h.3F(\'22\');k(6F).1p(\'id\',\'ao\').B({19:\'1o\',Y:\'1P\',2U:\'2K\',Q:\'0\',O:\'0\',cA:\'cv\',7i:\'cu\',hC:\'0\'}).1S([1Z,7m]);k(\'2e\').1S(8n).1S(6F)},26:u(e,C){el=C?k(C):k(q);9t=el.1p(\'4I\');D 6B,4u,4G,4M;if(9t!=\'eU\'){k.1v.6j=9t;8Y=k(\'a[@4I=\'+9t+\']\');6B=8Y.1N();4u=8Y.cZ(C?C:q);4G=8Y.K(4u-1);4M=8Y.K(4u+1)}89=el.1p(\'3h\');6A=el.1p(\'4g\');3O=k.1a.6z();8n=k(\'#cP\');if(!k.1v.8k){k.1v.8k=1b;if(k.3a.4t){k(\'#cN\').B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y()}8n.B(\'W\',18.3r(3O.ih,3O.h)+\'U\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\').1Y().fX(cO,k.1v.M.eW,u(){k.1v.cw(89,6A,3O,6B,4u,4G,4M)});k(\'#ao\').B(\'Z\',18.3r(3O.iw,3O.w)+\'U\')}P{k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.cw(89,6A,3O,6B,4u,4G,4M)}E I},cw:u(89,gP,3O,6B,4u,4G,4M){k(\'#cW\').bk();aX=k(\'#87\');aX.2G();aO=k(\'#88\');aO.2G();2b=k(\'#eM\');1Z=k(\'#eE\');6F=k(\'#ao\');7m=k(\'#cM\').B(\'3n\',\'2K\');k(\'#eK\').3x(6A);k.1v.8m=1b;if(6B)k(\'#dg\').3x(k.1v.M.d8+\' \'+(4u+1)+\' \'+k.1v.M.dc+\' \'+6B);if(4G){aX.K(0).53=u(){q.5B();k.1v.26(S,4G);E I}}if(4M){aO.K(0).53=u(){q.5B();k.1v.26(S,4M);E I}}2b.1Y();82=k.1a.2o(1Z.K(0));56=18.3r(82.1C,2b.K(0).Z+k.1v.M.2E*2);6f=18.3r(82.hb,2b.K(0).W+k.1v.M.2E*2);2b.B({O:(56-2b.K(0).Z)/2+\'U\',Q:(6f-2b.K(0).W)/2+\'U\'});1Z.B({Z:56+\'U\',W:6f+\'U\'}).1Y();dw=k.1a.bm();6F.B(\'Q\',3O.t+(dw.h/15)+\'U\');if(6F.B(\'19\')==\'1o\'){6F.1Y().7f(k.1v.M.3W)}6k=12 9s;k(6k).1p(\'id\',\'cW\').1J(\'hJ\',u(){56=6k.Z+k.1v.M.2E*2;6f=6k.W+k.1v.M.2E*2;2b.2G();1Z.5w({W:6f},82.hb!=6f?k.1v.M.3W:1,u(){1Z.5w({Z:56},82.1C!=56?k.1v.M.3W:1,u(){1Z.bG(6k);k(6k).B({Y:\'1P\',O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\'}).7f(k.1v.M.3W,u(){db=k.1a.2o(7m.K(0));if(4G){aX.B({O:k.1v.M.2E+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}if(4M){aO.B({O:56/2+k.1v.M.2E*2+\'U\',Q:k.1v.M.2E+\'U\',Z:56/2-k.1v.M.2E*3+\'U\',W:6f-k.1v.M.2E*2+\'U\'}).1Y()}7m.B({Z:56+\'U\',Q:-db.hb+\'U\',3n:\'dd\'}).5w({Q:-1},k.1v.M.3W,u(){k.1v.8m=I})})})})});6k.2J=89},au:u(){k(\'#cW\').bk();k(\'#ao\').2G();k(\'#cM\').B(\'3n\',\'2K\');k(\'#cP\').fX(cO,0,u(){k(q).2G();if(k.3a.4t){k(\'#cN\').2G()}});k(\'#87\').K(0).53=S;k(\'#88\').K(0).53=S;k.1v.6j=S;k.1v.8k=I;k.1v.8m=I;E I}};k.R={1A:S,41:S,F:S,1s:S,1q:S,Y:S,9a:u(e){k.R.F=(q.d0)?q.d0:q;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(k.R.F).B(\'Z\'))||0,W:T(k(k.R.F).B(\'W\'))||0};k.R.Y={Q:T(k(k.R.F).B(\'Q\'))||0,O:T(k(k.R.F).B(\'O\'))||0};k(1h).1J(\'3D\',k.R.cR).1J(\'5P\',k.R.cK);if(2g k.R.F.1k.g2===\'u\'){k.R.F.1k.g2.1D(k.R.F)}E I},cK:u(e){k(1h).3q(\'3D\',k.R.cR).3q(\'5P\',k.R.cK);if(2g k.R.F.1k.fN===\'u\'){k.R.F.1k.fN.1D(k.R.F)}k.R.F=S},cR:u(e){if(!k.R.F){E}1s=k.1a.4a(e);7p=k.R.Y.Q-k.R.1s.y+1s.y;7r=k.R.Y.O-k.R.1s.x+1s.x;7p=18.3r(18.3L(7p,k.R.F.1k.8g-k.R.1q.W),k.R.F.1k.7h);7r=18.3r(18.3L(7r,k.R.F.1k.8h-k.R.1q.Z),k.R.F.1k.70);if(2g k.R.F.1k.4m===\'u\'){D 8a=k.R.F.1k.4m.1D(k.R.F,[7r,7p]);if(2g 8a==\'hh\'&&8a.1g==2){7r=8a[0];7p=8a[1]}}k.R.F.14.Q=7p+\'U\';k.R.F.14.O=7r+\'U\';E I},26:u(e){k(1h).1J(\'3D\',k.R.8j).1J(\'5P\',k.R.8o);k.R.1A=q.1A;k.R.41=q.41;k.R.1s=k.1a.4a(e);k.R.1q={Z:T(k(q.1A).B(\'Z\'))||0,W:T(k(q.1A).B(\'W\'))||0};k.R.Y={Q:T(k(q.1A).B(\'Q\'))||0,O:T(k(q.1A).B(\'O\'))||0};if(k.R.1A.1k.4o){k.R.1A.1k.4o.1D(k.R.1A,[q])}E I},8o:u(){k(1h).3q(\'3D\',k.R.8j).3q(\'5P\',k.R.8o);if(k.R.1A.1k.3T){k.R.1A.1k.3T.1D(k.R.1A,[k.R.41])}k.R.1A=S;k.R.41=S},6i:u(dx,az){E 18.3L(18.3r(k.R.1q.Z+dx*az,k.R.1A.1k.av),k.R.1A.1k.6x)},6m:u(dy,az){E 18.3L(18.3r(k.R.1q.W+dy*az,k.R.1A.1k.8c),k.R.1A.1k.8b)},fb:u(W){E 18.3L(18.3r(W,k.R.1A.1k.8c),k.R.1A.1k.8b)},8j:u(e){if(k.R.1A==S){E}1s=k.1a.4a(e);dx=1s.x-k.R.1s.x;dy=1s.y-k.R.1s.y;1I={Z:k.R.1q.Z,W:k.R.1q.W};2z={Q:k.R.Y.Q,O:k.R.Y.O};3m(k.R.41){1e\'e\':1I.Z=k.R.6i(dx,1);1r;1e\'fj\':1I.Z=k.R.6i(dx,1);1I.W=k.R.6m(dy,1);1r;1e\'w\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'5F\':1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1I.W=k.R.6m(dy,1);1r;1e\'76\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,-1);2z.O=k.R.Y.O-1I.Z+k.R.1q.Z;1r;1e\'n\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1r;1e\'at\':1I.W=k.R.6m(dy,-1);2z.Q=k.R.Y.Q-1I.W+k.R.1q.W;1I.Z=k.R.6i(dx,1);1r;1e\'s\':1I.W=k.R.6m(dy,1);1r}if(k.R.1A.1k.4v){if(k.R.41==\'n\'||k.R.41==\'s\')4p=1I.W*k.R.1A.1k.4v;P 4p=1I.Z;4W=k.R.fb(4p*k.R.1A.1k.4v);4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.W=4W;1I.Z=4p}if(2z.Q<k.R.1A.1k.7h){4W=1I.W+2z.Q-k.R.1A.1k.7h;2z.Q=k.R.1A.1k.7h;if(k.R.1A.1k.4v){4p=4W/k.R.1A.1k.4v;3m(k.R.41){1e\'76\':1e\'w\':1e\'5F\':2z.O+=1I.Z-4p;1r}1I.Z=4p}1I.W=4W}if(2z.O<k.R.1A.1k.70){4p=1I.Z+2z.O-k.R.1A.1k.70;2z.O=k.R.1A.1k.70;if(k.R.1A.1k.4v){4W=4p*k.R.1A.1k.4v;3m(k.R.41){1e\'n\':1e\'76\':1e\'at\':2z.Q+=1I.W-4W;1r}1I.W=4W}1I.Z=4p}if(2z.Q+1I.W>k.R.1A.1k.8g){1I.W=k.R.1A.1k.8g-2z.Q;if(k.R.1A.1k.4v){1I.Z=1I.W/k.R.1A.1k.4v}}if(2z.O+1I.Z>k.R.1A.1k.8h){1I.Z=k.R.1A.1k.8h-2z.O;if(k.R.1A.1k.4v){1I.W=1I.Z*k.R.1A.1k.4v}}D 6p=I;if(k.R.1A.1k.f7){6p=k.R.1A.1k.f7.1D(k.R.1A,[1I,2z]);if(6p){if(6p.1q){k.23(1I,6p.1q)}if(6p.Y){k.23(2z,6p.Y)}}}8d=k.R.1A.14;8d.O=2z.O+\'U\';8d.Q=2z.Q+\'U\';8d.Z=1I.Z+\'U\';8d.W=1I.W+\'U\';E I},2r:u(M){if(!M||!M.3Z||M.3Z.1K!=7M){E}E q.1E(u(){D el=q;el.1k=M;el.1k.av=M.av||10;el.1k.8c=M.8c||10;el.1k.6x=M.6x||6P;el.1k.8b=M.8b||6P;el.1k.7h=M.7h||-aC;el.1k.70=M.70||-aC;el.1k.8h=M.8h||6P;el.1k.8g=M.8g||6P;d6=k(el).B(\'Y\');if(!(d6==\'2s\'||d6==\'1P\')){el.14.Y=\'2s\'}fS=/n|at|e|fj|s|5F|w|76/g;24(i in el.1k.3Z){if(i.6c().d5(fS)!=S){if(el.1k.3Z[i].1K==b0){3v=k(el.1k.3Z[i]);if(3v.1N()>0){el.1k.3Z[i]=3v.K(0)}}if(el.1k.3Z[i].4Y){el.1k.3Z[i].1A=el;el.1k.3Z[i].41=i;k(el.1k.3Z[i]).1J(\'5v\',k.R.26)}}}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){aV=k(el.1k.5S);if(aV.1N()>0){aV.1E(u(){q.d0=el});aV.1J(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).1J(\'5v\',k.R.9a)}}})},4U:u(){E q.1E(u(){D el=q;24(i in el.1k.3Z){el.1k.3Z[i].1A=S;el.1k.3Z[i].41=S;k(el.1k.3Z[i]).3q(\'5v\',k.R.26)}if(el.1k.5S){if(2g el.1k.5S===\'4V\'){3v=k(el.1k.5S);if(3v.1N()>0){3v.3q(\'5v\',k.R.9a)}}P if(el.1k.5S==1b){k(q).3q(\'5v\',k.R.9a)}}el.1k=S})}};k.fn.23({hz:k.R.2r,hs:k.R.4U});k.2C=S;k.7n=I;k.3k=S;k.7o=[];k.9v=u(e){D 3K=e.7L||e.7K||-1;if(3K==17||3K==16){k.7n=1b}};k.9u=u(e){k.7n=I};k.dL=u(e){q.f.1s=k.1a.4a(e);q.f.1M=k.23(k.1a.3w(q),k.1a.2o(q));q.f.3e=k.1a.6z(q);q.f.1s.x-=q.f.1M.x;q.f.1s.y-=q.f.1M.y;k(q).1S(k.2C.K(0));if(q.f.hc)k.2C.2R(q.f.hc).B(\'19\',\'2B\');k.2C.B({19:\'2B\',Z:\'2P\',W:\'2P\'});if(q.f.o){k.2C.B(\'1G\',q.f.o)}k.3k=q;k.96=I;k.7o=[];q.f.el.1E(u(){q.1M={x:q.8t+(q.4Z&&!k.3a.7I?T(q.4Z.5b)||0:0)+(k.3k.3c||0),y:q.8G+(q.4Z&&!k.3a.7I?T(q.4Z.4S)||0:0)+(k.3k.3d||0),1C:q.4c,hb:q.5W};if(q.s==1b){if(k.7n==I){q.s=I;k(q).4i(k.3k.f.7j)}P{k.96=1b;k.7o[k.7o.1g]=k.1p(q,\'id\')}}});k.am.1D(q,[e]);k(1h).1J(\'3D\',k.am).1J(\'5P\',k.cX);E I};k.am=u(e){if(!k.3k)E;k.fd.1D(k.3k,[e])};k.fd=u(e){if(!k.3k)E;D 1s=k.1a.4a(e);D 3e=k.1a.6z(k.3k);1s.x+=3e.l-q.f.3e.l-q.f.1M.x;1s.y+=3e.t-q.f.3e.t-q.f.1M.y;D 93=18.3L(1s.x,q.f.1s.x);D 5F=18.3L(18.3S(1s.x-q.f.1s.x),18.3S(q.f.3e.w-93));D 99=18.3L(1s.y,q.f.1s.y);D 9g=18.3L(18.3S(1s.y-q.f.1s.y),18.3S(q.f.3e.h-99));if(q.3d>0&&1s.y-20<q.3d){D 3X=18.3L(3e.t,10);99-=3X;9g+=3X;q.3d-=3X}P if(q.3d+q.f.1M.h<q.f.3e.h&&1s.y+20>q.3d+q.f.1M.h){D 3X=18.3L(q.f.3e.h-q.3d,10);q.3d+=3X;if(q.3d!=3e.t)9g+=3X}if(q.3c>0&&1s.x-20<q.3c){D 3X=18.3L(3e.l,10);93-=3X;5F+=3X;q.3c-=3X}P if(q.3c+q.f.1M.w<q.f.3e.w&&1s.x+20>q.3c+q.f.1M.w){D 3X=18.3L(q.f.3e.w-q.3c,10);q.3c+=3X;if(q.3c!=3e.l)5F+=3X}k.2C.B({O:93+\'U\',Q:99+\'U\',Z:5F+\'U\',W:9g+\'U\'});k.2C.l=93+q.f.3e.l;k.2C.t=99+q.f.3e.t;k.2C.r=k.2C.l+5F;k.2C.b=k.2C.t+9g;k.96=I;q.f.el.1E(u(){aw=k.7o.3J(k.1p(q,\'id\'));if(!(q.1M.x>k.2C.r||(q.1M.x+q.1M.1C)<k.2C.l||q.1M.y>k.2C.b||(q.1M.y+q.1M.hb)<k.2C.t)){k.96=1b;if(q.s!=1b){q.s=1b;k(q).2R(k.3k.f.7j)}if(aw!=-1){q.s=I;k(q).4i(k.3k.f.7j)}}P if((q.s==1b)&&(aw==-1)){q.s=I;k(q).4i(k.3k.f.7j)}P if((!q.s)&&(k.7n==1b)&&(aw!=-1)){q.s=1b;k(q).2R(k.3k.f.7j)}});E I};k.cX=u(e){if(!k.3k)E;k.g0.1D(k.3k,[e])};k.g0=u(e){k(1h).3q(\'3D\',k.am).3q(\'5P\',k.cX);if(!k.3k)E;k.2C.B(\'19\',\'1o\');if(q.f.hc)k.2C.4i(q.f.hc);k.3k=I;k(\'2e\').1S(k.2C.K(0));if(k.96==1b){if(q.f.98)q.f.98(k.cJ(k.1p(q,\'id\')))}P{if(q.f.9d)q.f.9d(k.cJ(k.1p(q,\'id\')))}k.7o=[]};k.cJ=u(s){D h=\'\';D o=[];if(a=k(\'#\'+s)){a.K(0).f.el.1E(u(){if(q.s==1b){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[o.1g]=k.1p(q,\'id\')}})}E{7l:h,o:o}};k.fn.gZ=u(o){if(!k.2C){k(\'2e\',1h).1S(\'<22 id="2C"></22>\').1J(\'7B\',k.9v).1J(\'6y\',k.9u);k.2C=k(\'#2C\');k.2C.B({Y:\'1P\',19:\'1o\'});if(1X.2k){k(\'2e\',1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}P{k(1h).1J(\'7B\',k.9v).1J(\'6y\',k.9u)}}if(!o){o={}}E q.1E(u(){if(q.eP)E;q.eP=1b;q.f={a:o.3C,o:o.1G?2m(o.1G):I,7j:o.eS?o.eS:I,hc:o.58?o.58:I,98:o.98?o.98:I,9d:o.9d?o.9d:I};q.f.el=k(\'.\'+o.3C);k(q).1J(\'5v\',k.dL).B(\'Y\',\'2s\')})};k.3b={bM:1,eH:u(3t){D 3t=3t;E q.1E(u(){q.4z.6s.1E(u(ab){k.3b.5c(q,3t[ab])})})},K:u(){D 3t=[];q.1E(u(cL){if(q.bI){3t[cL]=[];D C=q;D 1q=k.1a.2o(q);q.4z.6s.1E(u(ab){D x=q.8t;D y=q.8G;92=T(x*2a/(1q.w-q.4c));91=T(y*2a/(1q.h-q.5W));3t[cL][ab]=[92||0,91||0,x||0,y||0]})}});E 3t},ct:u(C){C.A.fu=C.A.28.w-C.A.1B.1C;C.A.fw=C.A.28.h-C.A.1B.hb;if(C.9r.4z.bC){9Z=C.9r.4z.6s.K(C.bF+1);if(9Z){C.A.28.w=(T(k(9Z).B(\'O\'))||0)+C.A.1B.1C;C.A.28.h=(T(k(9Z).B(\'Q\'))||0)+C.A.1B.hb}9Q=C.9r.4z.6s.K(C.bF-1);if(9Q){D cU=T(k(9Q).B(\'O\'))||0;D cH=T(k(9Q).B(\'O\'))||0;C.A.28.x+=cU;C.A.28.y+=cH;C.A.28.w-=cU;C.A.28.h-=cH}}C.A.g7=C.A.28.w-C.A.1B.1C;C.A.eC=C.A.28.h-C.A.1B.hb;if(C.A.2O){C.A.gx=((C.A.28.w-C.A.1B.1C)/C.A.2O)||1;C.A.gy=((C.A.28.h-C.A.1B.hb)/C.A.2O)||1;C.A.fU=C.A.g7/C.A.2O;C.A.fH=C.A.eC/C.A.2O}C.A.28.dx=C.A.28.x-C.A.2c.x;C.A.28.dy=C.A.28.y-C.A.2c.y;k.11.1c.B(\'9b\',\'ad\')},3H:u(C,x,y){if(C.A.2O){fE=T(x/C.A.fU);92=fE*2a/C.A.2O;ft=T(y/C.A.fH);91=ft*2a/C.A.2O}P{92=T(x*2a/C.A.fu);91=T(y*2a/C.A.fw)}C.A.b3=[92||0,91||0,x||0,y||0];if(C.A.3H)C.A.3H.1D(C,C.A.b3)},eI:u(2k){3K=2k.7L||2k.7K||-1;3m(3K){1e 35:k.3b.5c(q.3U,[ae,ae]);1r;1e 36:k.3b.5c(q.3U,[-ae,-ae]);1r;1e 37:k.3b.5c(q.3U,[-q.3U.A.gx||-1,0]);1r;1e 38:k.3b.5c(q.3U,[0,-q.3U.A.gy||-1]);1r;1e 39:k.3b.5c(q.3U,[q.3U.A.gx||1,0]);1r;1e 40:k.11.5c(q.3U,[0,q.3U.A.gy||1]);1r}},5c:u(C,Y){if(!C.A){E}C.A.1B=k.23(k.1a.3w(C),k.1a.2o(C));C.A.2c={x:T(k.B(C,\'O\'))||0,y:T(k.B(C,\'Q\'))||0};C.A.4n=k.B(C,\'Y\');if(C.A.4n!=\'2s\'&&C.A.4n!=\'1P\'){C.14.Y=\'2s\'}k.11.c5(C);k.3b.ct(C);dx=T(Y[0])||0;dy=T(Y[1])||0;2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.2O){3y=k.11.c7.1D(C,[2v,2q,dx,dy]);if(3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy}3y=k.11.ce.1D(C,[2v,2q,dx,dy]);if(3y&&3y.1K==7M){dx=3y.dx;dy=3y.dy}2v=C.A.2c.x+dx;2q=C.A.2c.y+dy;if(C.A.5i&&(C.A.3H||C.A.2Z)){k.3b.3H(C,2v,2q)}2v=!C.A.1O||C.A.1O==\'4j\'?2v:C.A.2c.x||0;2q=!C.A.1O||C.A.1O==\'49\'?2q:C.A.2c.y||0;C.14.O=2v+\'U\';C.14.Q=2q+\'U\'},2r:u(o){E q.1E(u(){if(q.bI==1b||!o.3C||!k.1a||!k.11||!k.1x){E}5x=k(o.3C,q);if(5x.1N()==0){E}D 4N={2p:\'94\',5i:1b,3H:o.3H&&o.3H.1K==2A?o.3H:S,2Z:o.2Z&&o.2Z.1K==2A?o.2Z:S,3v:q,1G:o.1G||I};if(o.2O&&T(o.2O)){4N.2O=T(o.2O)||1;4N.2O=4N.2O>0?4N.2O:1}if(5x.1N()==1)5x.7t(4N);P{k(5x.K(0)).7t(4N);4N.3v=S;5x.7t(4N)}5x.7B(k.3b.eI);5x.1p(\'bM\',k.3b.bM++);q.bI=1b;q.4z={};q.4z.er=4N.er;q.4z.2O=4N.2O;q.4z.6s=5x;q.4z.bC=o.bC?1b:I;bZ=q;bZ.4z.6s.1E(u(2N){q.bF=2N;q.9r=bZ});if(o.3t&&o.3t.1K==7F){24(i=o.3t.1g-1;i>=0;i--){if(o.3t[i].1K==7F&&o.3t[i].1g==2){el=q.4z.6s.K(i);if(el.4Y){k.3b.5c(el,o.3t[i])}}}}})}};k.fn.23({hN:k.3b.2r,hS:k.3b.eH,hG:k.3b.K});k.2u={5I:[],eg:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},dp:u(){q.5B();X=q.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}1z=X.L.3u-1;1Q=k(\'1T\',X.L.5u);if(1z<1){1z=X.L.1Q.1g}X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},2I:u(c){X=1h.9e(c);if(X.L.6o){1z=X.L.3u;7d(1z==X.L.3u){1z=1+T(18.6o()*X.L.1Q.1g)}}P{1z=X.L.3u+1;if(X.L.1Q.1g<1z){1z=1}}1Q=k(\'1T\',X.L.5u);X.L.3u=1z;if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}},go:u(o){D X;if(o&&o.1K==7M){if(o.2b){X=1h.9e(o.2b.X);5N=1X.hn.3h.7C("#");o.2b.6S=S;if(5N.1g==2){1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}P{1z=1}}if(o.90){o.90.5B();X=o.90.31.31;id=k.1p(X,\'id\');if(k.2u.5I[id]!=S){1X.5T(k.2u.5I[id])}5N=o.90.3h.7C("#");1z=T(5N[1]);1Y=5N[1].4E(1z,\'\');if(k.1p(X,\'id\')!=1Y){1z=1}}if(X.L.1Q.1g<1z||1z<1){1z=1}X.L.3u=1z;52=k.1a.2o(X);dt=k.1a.aT(X);d9=k.1a.6U(X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}if(X.L.2b){y=T(dt.t)+T(d9.t);if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}if(!X.L.c1){X.L.df=o.2b?o.2b.W:(T(X.L.2b.B(\'W\'))||0);X.L.c1=o.2b?o.2b.Z:(T(X.L.2b.B(\'Z\'))||0)}X.L.2b.B(\'Q\',y+(52.h-X.L.df)/2+\'U\');X.L.2b.B(\'O\',(52.1C-X.L.c1)/2+\'U\');X.L.2b.B(\'19\',\'2B\')}1Q=k(\'1T\',X.L.5u);if(1Q.1N()>0){1Q.7a(X.L.3W,k.2u.95)}P{aj=k(\'a\',X.L.1U.o).K(1z-1);k(aj).2R(X.L.1U.5R);D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=1z-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[1z-1].6L)}}}},95:u(){X=q.31.31;X.L.5u.B(\'19\',\'1o\');if(X.L.1U.5R){aj=k(\'a\',X.L.1U.o).4i(X.L.1U.5R).K(X.L.3u-1);k(aj).2R(X.L.1U.5R)}D 1T=12 9s();1T.X=k.1p(X,\'id\');1T.1z=X.L.3u-1;1T.2J=X.L.1Q[X.L.3u-1].2J;if(1T.21){1T.6S=S;k.2u.19.1D(1T)}P{1T.6S=k.2u.19}if(X.L.2x){X.L.2x.o.3x(X.L.1Q[X.L.3u-1].6L)}},19:u(){X=1h.9e(q.X);if(X.L.3z){X.L.3z.o.B(\'19\',\'1o\')}if(X.L.3s){X.L.3s.o.B(\'19\',\'1o\')}52=k.1a.2o(X);y=0;if(X.L.1U){if(X.L.1U.5A==\'Q\'){y+=X.L.1U.4C.hb}P{52.h-=X.L.1U.4C.hb}}if(X.L.2x){if(X.L.2x&&X.L.2x.6Q==\'Q\'){y+=X.L.2x.4C.hb}P{52.h-=X.L.2x.4C.hb}}hg=k(\'.ca\',X);y=y+(52.h-q.W)/2;x=(52.1C-q.Z)/2;X.L.5u.B(\'Q\',y+\'U\').B(\'O\',x+\'U\').3x(\'<1T 2J="\'+q.2J+\'" />\');X.L.5u.7f(X.L.3W);3s=X.L.3u+1;if(3s>X.L.1Q.1g){3s=1}3z=X.L.3u-1;if(3z<1){3z=X.L.1Q.1g}X.L.3s.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+2*q.Z/3+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3s-1].6L);X.L.3s.o.K(0).3h=\'#\'+3s+k.1p(X,\'id\');X.L.3z.o.B(\'19\',\'2B\').B(\'Q\',y+\'U\').B(\'O\',x+\'U\').B(\'Z\',q.Z/3+\'U\').B(\'W\',q.W+\'U\').1p(\'4g\',X.L.1Q[3z-1].6L);X.L.3z.o.K(0).3h=\'#\'+3z+k.1p(X,\'id\')},2r:u(o){if(!o||!o.1Z||k.2u.5I[o.1Z])E;D 1Z=k(\'#\'+o.1Z);D el=1Z.K(0);if(el.14.Y!=\'1P\'&&el.14.Y!=\'2s\'){el.14.Y=\'2s\'}el.14.2U=\'2K\';if(1Z.1N()==0)E;el.L={};el.L.1Q=o.1Q?o.1Q:[];el.L.6o=o.6o&&o.6o==1b||I;97=el.f3(\'hL\');24(i=0;i<97.1g;i++){7Z=el.L.1Q.1g;el.L.1Q[7Z]={2J:97[i].2J,6L:97[i].4g||97[i].hD||\'\'}}if(el.L.1Q.1g==0){E}el.L.4n=k.23(k.1a.3w(el),k.1a.2o(el));el.L.b5=k.1a.aT(el);el.L.bu=k.1a.6U(el);t=T(el.L.b5.t)+T(el.L.bu.t);b=T(el.L.b5.b)+T(el.L.bu.b);k(\'1T\',el).bk();el.L.3W=o.3W?o.3W:g5;if(o.5A||o.9f||o.5R){el.L.1U={};1Z.1S(\'<22 6T="g1"></22>\');el.L.1U.o=k(\'.g1\',el);if(o.9f){el.L.1U.9f=o.9f;el.L.1U.o.2R(o.9f)}if(o.5R){el.L.1U.5R=o.5R}el.L.1U.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.5A&&o.5A==\'Q\'){el.L.1U.5A=\'Q\';el.L.1U.o.B(\'Q\',t+\'U\')}P{el.L.1U.5A=\'4D\';el.L.1U.o.B(\'4D\',b+\'U\')}el.L.1U.aE=o.aE?o.aE:\' \';24(D i=0;i<el.L.1Q.1g;i++){7Z=T(i)+1;el.L.1U.o.1S(\'<a 3h="#\'+7Z+o.1Z+\'" 6T="gR" 4g="\'+el.L.1Q[i].6L+\'">\'+7Z+\'</a>\'+(7Z!=el.L.1Q.1g?el.L.1U.aE:\'\'))}k(\'a\',el.L.1U.o).1J(\'5h\',u(){k.2u.go({90:q})});el.L.1U.4C=k.1a.2o(el.L.1U.o.K(0))}if(o.6Q||o.9c){el.L.2x={};1Z.1S(\'<22 6T="dn">&7k;</22>\');el.L.2x.o=k(\'.dn\',el);if(o.9c){el.L.2x.9c=o.9c;el.L.2x.o.2R(o.9c)}el.L.2x.o.B(\'Y\',\'1P\').B(\'Z\',el.L.4n.w+\'U\');if(o.6Q&&o.6Q==\'Q\'){el.L.2x.6Q=\'Q\';el.L.2x.o.B(\'Q\',(el.L.1U&&el.L.1U.5A==\'Q\'?el.L.1U.4C.hb+t:t)+\'U\')}P{el.L.2x.6Q=\'4D\';el.L.2x.o.B(\'4D\',(el.L.1U&&el.L.1U.5A==\'4D\'?el.L.1U.4C.hb+b:b)+\'U\')}el.L.2x.4C=k.1a.2o(el.L.2x.o.K(0))}if(o.9D){el.L.3s={9D:o.9D};1Z.1S(\'<a 3h="#2\'+o.1Z+\'" 6T="eY">&7k;</a>\');el.L.3s.o=k(\'.eY\',el);el.L.3s.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3s.9D);el.L.3s.o.1J(\'5h\',k.2u.eg)}if(o.9o){el.L.3z={9o:o.9o};1Z.1S(\'<a 3h="#0\'+o.1Z+\'" 6T="ee">&7k;</a>\');el.L.3z.o=k(\'.ee\',el);el.L.3z.o.B(\'Y\',\'1P\').B(\'19\',\'1o\').B(\'2U\',\'2K\').B(\'4A\',\'eR\').2R(el.L.3z.9o);el.L.3z.o.1J(\'5h\',k.2u.dp)}1Z.bG(\'<22 6T="ca"></22>\');el.L.5u=k(\'.ca\',el);el.L.5u.B(\'Y\',\'1P\').B(\'Q\',\'2P\').B(\'O\',\'2P\').B(\'19\',\'1o\');if(o.2b){1Z.bG(\'<22 6T="dW" 14="19: 1o;"><1T 2J="\'+o.2b+\'" /></22>\');el.L.2b=k(\'.dW\',el);el.L.2b.B(\'Y\',\'1P\');D 1T=12 9s();1T.X=o.1Z;1T.2J=o.2b;if(1T.21){1T.6S=S;k.2u.go({2b:1T})}P{1T.6S=u(){k.2u.go({2b:q})}}}P{k.2u.go({1Z:el})}if(o.cS){fi=T(o.cS)*aC}k.2u.5I[o.1Z]=o.cS?1X.6V(\'k.2u.2I(\\\'\'+o.1Z+\'\\\')\',fi):S}};k.X=k.2u.2r;k.1t={7s:[],5L:{},1c:I,7u:S,26:u(){if(k.11.F==S){E}D 4O,3G,c,cs;k.1t.1c.K(0).3l=k.11.F.A.6R;4O=k.1t.1c.K(0).14;4O.19=\'2B\';k.1t.1c.1B=k.23(k.1a.3w(k.1t.1c.K(0)),k.1a.2o(k.1t.1c.K(0)));4O.Z=k.11.F.A.1B.1C+\'U\';4O.W=k.11.F.A.1B.hb+\'U\';3G=k.1a.cy(k.11.F);4O.5K=3G.t;4O.5z=3G.r;4O.5k=3G.b;4O.5j=3G.l;if(k.11.F.A.46==1b){c=k.11.F.fI(1b);cs=c.14;cs.5K=\'2P\';cs.5z=\'2P\';cs.5k=\'2P\';cs.5j=\'2P\';cs.19=\'2B\';k.1t.1c.5o().1S(c)}k(k.11.F).f5(k.1t.1c.K(0));k.11.F.14.19=\'1o\'},fC:u(e){if(!e.A.44&&k.1x.5r.cQ){if(e.A.3T)e.A.3T.1D(F);k(e).B(\'Y\',e.A.cz||e.A.4n);k(e).aS();k(k.1x.5r).f6(e)}k.1t.1c.4i(e.A.6R).3x(\'&7k;\');k.1t.7u=S;D 4O=k.1t.1c.K(0).14;4O.19=\'1o\';k.1t.1c.f5(e);if(e.A.fx>0){k(e).7f(e.A.fx)}k(\'2e\').1S(k.1t.1c.K(0));D 86=[];D 8q=I;24(D i=0;i<k.1t.7s.1g;i++){D 1j=k.1x.3P[k.1t.7s[i]].K(0);D id=k.1p(1j,\'id\');D 8i=k.1t.8x(id);if(1j.1i.ay!=8i.7l){1j.1i.ay=8i.7l;if(8q==I&&1j.1i.2Z){8q=1j.1i.2Z}8i.id=id;86[86.1g]=8i}}k.1t.7s=[];if(8q!=I&&86.1g>0){8q(86)}},al:u(e,o){if(!k.11.F)E;D 6e=I;D i=0;if(e.1i.el.1N()>0){24(i=e.1i.el.1N();i>0;i--){if(e.1i.el.K(i-1)!=k.11.F){if(!e.5V.b2){if((e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}P{1r}}P{if((e.1i.el.K(i-1).1M.x+e.1i.el.K(i-1).1M.1C/2)>k.11.F.A.2v&&(e.1i.el.K(i-1).1M.y+e.1i.el.K(i-1).1M.hb/2)>k.11.F.A.2q){6e=e.1i.el.K(i-1)}}}}}if(6e&&k.1t.7u!=6e){k.1t.7u=6e;k(6e).h5(k.1t.1c.K(0))}P if(!6e&&(k.1t.7u!=S||k.1t.1c.K(0).31!=e)){k.1t.7u=S;k(e).1S(k.1t.1c.K(0))}k.1t.1c.K(0).14.19=\'2B\'},cT:u(e){if(k.11.F==S){E}e.1i.el.1E(u(){q.1M=k.23(k.1a.74(q),k.1a.7G(q))})},8x:u(s){D i;D h=\'\';D o={};if(s){if(k.1t.5L[s]){o[s]=[];k(\'#\'+s+\' .\'+k.1t.5L[s]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s+\'[]=\'+k.1p(q,\'id\');o[s][o[s].1g]=k.1p(q,\'id\')})}P{24(a in s){if(k.1t.5L[s[a]]){o[s[a]]=[];k(\'#\'+s[a]+\' .\'+k.1t.5L[s[a]]).1E(u(){if(h.1g>0){h+=\'&\'}h+=s[a]+\'[]=\'+k.1p(q,\'id\');o[s[a]][o[s[a]].1g]=k.1p(q,\'id\')})}}}}P{24(i in k.1t.5L){o[i]=[];k(\'#\'+i+\' .\'+k.1t.5L[i]).1E(u(){if(h.1g>0){h+=\'&\'}h+=i+\'[]=\'+k.1p(q,\'id\');o[i][o[i].1g]=k.1p(q,\'id\')})}}E{7l:h,o:o}},fF:u(e){if(!e.dq){E}E q.1E(u(){if(!q.5V||!k(e).is(\'.\'+q.5V.3C))k(e).2R(q.5V.3C);k(e).7t(q.5V.A)})},4U:u(){E q.1E(u(){k(\'.\'+q.5V.3C).aS();k(q).dR();q.5V=S;q.fm=S})},2r:u(o){if(o.3C&&k.1a&&k.11&&k.1x){if(!k.1t.1c){k(\'2e\',1h).1S(\'<22 id="e5">&7k;</22>\');k.1t.1c=k(\'#e5\');k.1t.1c.K(0).14.19=\'1o\'}q.do({3C:o.3C,9J:o.9J?o.9J:I,a5:o.a5?o.a5:I,58:o.58?o.58:I,7x:o.7x||o.dC,7y:o.7y||o.fO,cQ:1b,2Z:o.2Z||o.ia,fx:o.fx?o.fx:I,46:o.46?1b:I,6I:o.6I?o.6I:\'cV\'});E q.1E(u(){D A={6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,4o:o.4o&&o.4o.1K==2A?o.4o:I,4m:o.4m&&o.4m.1K==2A?o.4m:I,3T:o.3T&&o.3T.1K==2A?o.3T:I,1O:/49|4j/.48(o.1O)?o.1O:I,6M:o.6M?T(o.6M)||0:I,2V:o.2V?o.2V:I};k(\'.\'+o.3C,q).7t(A);q.fm=1b;q.5V={3C:o.3C,6N:o.6N?1b:I,ff:6P,1G:o.1G?2m(o.1G):I,6R:o.58?o.58:I,fx:o.fx?o.fx:I,44:1b,46:o.46?1b:I,3v:o.3v?o.3v:S,2p:o.2p?o.2p:S,b2:o.b2?1b:I,A:A}})}}};k.fn.23({j3:k.1t.2r,f6:k.1t.fF,iS:k.1t.4U});k.iZ=k.1t.8x;k.2t={6O:S,7b:I,9m:S,6K:u(e){k.2t.7b=1b;k.2t.1Y(e,q,1b)},cq:u(e){if(k.2t.6O!=q)E;k.2t.7b=I;k.2t.2G(e,q)},1Y:u(e,el,7b){if(k.2t.6O!=S)E;if(!el){el=q}k.2t.6O=el;1M=k.23(k.1a.3w(el),k.1a.2o(el));8u=k(el);4g=8u.1p(\'4g\');3h=8u.1p(\'3h\');if(4g){k.2t.9m=4g;8u.1p(\'4g\',\'\');k(\'#eT\').3x(4g);if(3h)k(\'#bL\').3x(3h.4E(\'jh://\',\'\'));P k(\'#bL\').3x(\'\');1c=k(\'#8z\');if(el.4H.3l){1c.K(0).3l=el.4H.3l}P{1c.K(0).3l=\'\'}bo=k.1a.2o(1c.K(0));ga=7b&&el.4H.Y==\'bO\'?\'4D\':el.4H.Y;3m(ga){1e\'Q\':2q=1M.y-bo.hb;2v=1M.x;1r;1e\'O\':2q=1M.y;2v=1M.x-bo.1C;1r;1e\'2L\':2q=1M.y;2v=1M.x+1M.1C;1r;1e\'bO\':k(\'2e\').1J(\'3D\',k.2t.3D);1s=k.1a.4a(e);2q=1s.y+15;2v=1s.x+15;1r;ad:2q=1M.y+1M.hb;2v=1M.x;1r}1c.B({Q:2q+\'U\',O:2v+\'U\'});if(el.4H.54==I){1c.1Y()}P{1c.7f(el.4H.54)}if(el.4H.2Y)el.4H.2Y.1D(el);8u.1J(\'8B\',k.2t.2G).1J(\'5B\',k.2t.cq)}},3D:u(e){if(k.2t.6O==S){k(\'2e\').3q(\'3D\',k.2t.3D);E}1s=k.1a.4a(e);k(\'#8z\').B({Q:1s.y+15+\'U\',O:1s.x+15+\'U\'})},2G:u(e,el){if(!el){el=q}if(k.2t.7b!=1b&&k.2t.6O==el){k.2t.6O=S;k(\'#8z\').7a(1);k(el).1p(\'4g\',k.2t.9m).3q(\'8B\',k.2t.2G).3q(\'5B\',k.2t.cq);if(el.4H.3i)el.4H.3i.1D(el);k.2t.9m=S}},2r:u(M){if(!k.2t.1c){k(\'2e\').1S(\'<22 id="8z"><22 id="eT"></22><22 id="bL"></22></22>\');k(\'#8z\').B({Y:\'1P\',3I:6P,19:\'1o\'});k.2t.1c=1b}E q.1E(u(){if(k.1p(q,\'4g\')){q.4H={Y:/Q|4D|O|2L|bO/.48(M.Y)?M.Y:\'4D\',3l:M.3l?M.3l:I,54:M.54?M.54:I,2Y:M.2Y&&M.2Y.1K==2A?M.2Y:I,3i:M.3i&&M.3i.1K==2A?M.3i:I};D el=k(q);el.1J(\'9z\',k.2t.1Y);el.1J(\'6K\',k.2t.6K)}})}};k.fn.hO=k.2t.2r;k.84={bq:u(e){3K=e.7L||e.7K||-1;if(3K==9){if(1X.2k){1X.2k.bT=1b;1X.2k.c0=I}P{e.aP();e.aW()}if(q.b1){1h.6J.dZ().3g="\\t";q.dV=u(){q.6K();q.dV=S}}P if(q.aF){26=q.5q;2T=q.dN;q.2y=q.2y.hd(0,26)+"\\t"+q.2y.h8(2T);q.aF(26+1,26+1);q.6K()}E I}},4U:u(){E q.1E(u(){if(q.7P&&q.7P==1b){k(q).3q(\'7B\',k.84.bq);q.7P=I}})},2r:u(){E q.1E(u(){if(q.4Y==\'cf\'&&(!q.7P||q.7P==I)){k(q).1J(\'7B\',k.84.bq);q.7P=1b}})}};k.fn.23({j5:k.84.2r,hH:k.84.4U});k.1a={3w:u(e){D x=0;D y=0;D es=e.14;D bP=I;if(k(e).B(\'19\')==\'1o\'){D 5Y=es.3n;D 9q=es.Y;bP=1b;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\'}D el=e;7d(el){x+=el.8t+(el.4Z&&!k.3a.7I?T(el.4Z.5b)||0:0);y+=el.8G+(el.4Z&&!k.3a.7I?T(el.4Z.4S)||0:0);el=el.dJ}el=e;7d(el&&el.4Y&&el.4Y.6c()!=\'2e\'){x-=el.3c||0;y-=el.3d||0;el=el.31}if(bP==1b){es.19=\'1o\';es.Y=9q;es.3n=5Y}E{x:x,y:y}},7G:u(el){D x=0,y=0;7d(el){x+=el.8t||0;y+=el.8G||0;el=el.dJ}E{x:x,y:y}},2o:u(e){D w=k.B(e,\'Z\');D h=k.B(e,\'W\');D 1C=0;D hb=0;D es=e.14;if(k(e).B(\'19\')!=\'1o\'){1C=e.4c;hb=e.5W}P{D 5Y=es.3n;D 9q=es.Y;es.3n=\'2K\';es.19=\'2B\';es.Y=\'1P\';1C=e.4c;hb=e.5W;es.19=\'1o\';es.Y=9q;es.3n=5Y}E{w:w,h:h,1C:1C,hb:hb}},74:u(el){E{1C:el.4c||0,hb:el.5W||0}},bm:u(e){D h,w,de;if(e){w=e.8W;h=e.8O}P{de=1h.5d;w=1X.d4||aa.d4||(de&&de.8W)||1h.2e.8W;h=1X.cB||aa.cB||(de&&de.8O)||1h.2e.8O}E{w:w,h:h}},6z:u(e){D t=0,l=0,w=0,h=0,iw=0,ih=0;if(e&&e.9N.6c()!=\'2e\'){t=e.3d;l=e.3c;w=e.d7;h=e.d2;iw=0;ih=0}P{if(1h.5d){t=1h.5d.3d;l=1h.5d.3c;w=1h.5d.d7;h=1h.5d.d2}P if(1h.2e){t=1h.2e.3d;l=1h.2e.3c;w=1h.2e.d7;h=1h.2e.d2}iw=aa.d4||1h.5d.8W||1h.2e.8W||0;ih=aa.cB||1h.5d.8O||1h.2e.8O||0}E{t:t,l:l,w:w,h:h,iw:iw,ih:ih}},cy:u(e,7N){D el=k(e);D t=el.B(\'5K\')||\'\';D r=el.B(\'5z\')||\'\';D b=el.B(\'5k\')||\'\';D l=el.B(\'5j\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},aT:u(e,7N){D el=k(e);D t=el.B(\'5M\')||\'\';D r=el.B(\'5U\')||\'\';D b=el.B(\'5n\')||\'\';D l=el.B(\'4X\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)};P E{t:t,r:r,b:b,l:l}},6U:u(e,7N){D el=k(e);D t=el.B(\'4S\')||\'\';D r=el.B(\'5O\')||\'\';D b=el.B(\'5Q\')||\'\';D l=el.B(\'5b\')||\'\';if(7N)E{t:T(t)||0,r:T(r)||0,b:T(b)||0,l:T(l)||0};P E{t:t,r:r,b:b,l:l}},4a:u(2k){D x=2k.hT||(2k.gM+(1h.5d.3c||1h.2e.3c))||0;D y=2k.ki||(2k.iQ+(1h.5d.3d||1h.2e.3d))||0;E{x:x,y:y}},cI:u(4R,cx){cx(4R);4R=4R.7c;7d(4R){k.1a.cI(4R,cx);4R=4R.hQ}},h7:u(4R){k.1a.cI(4R,u(el){24(D 1p in el){if(2g el[1p]===\'u\'){el[1p]=S}}})},hV:u(el,1O){D 5l=k.1a.6z();D b6=k.1a.2o(el);if(!1O||1O==\'49\')k(el).B({Q:5l.t+((18.3r(5l.h,5l.ih)-5l.t-b6.hb)/2)+\'U\'});if(!1O||1O==\'4j\')k(el).B({O:5l.l+((18.3r(5l.w,5l.iw)-5l.l-b6.1C)/2)+\'U\'})},hW:u(el,dk){D 1Q=k(\'1T[@2J*="8X"]\',el||1h),8X;1Q.1E(u(){8X=q.2J;q.2J=dk;q.14.5E="9n:9w.9y.hE(2J=\'"+8X+"\')"})}};[].3J||(7F.hF.3J=u(v,n){n=(n==S)?0:n;D m=q.1g;24(D i=n;i<m;i++)if(q[i]==v)E i;E-1});',62,1293,'||||||||||||||||||||jQuery||||||this||||function||||||dragCfg|css|elm|var|return|dragged|easing|speed|false|callback|get|ss|options|iAuto|left|else|top|iResize|null|parseInt|px|oldStyle|height|slideshow|position|width||iDrag|new||style||||Math|display|iUtil|true|helper|subject|case|autoCFG|length|document|dropCfg|iEL|resizeOptions|carouselCfg|duration|interfaceFX|none|attr|sizes|break|pointer|iSort|type|ImageBox|queue|iDrop|iAutoscroller|slide|resizeElement|oC|wb|apply|each|fisheyeCfg|opacity|delta|newSizes|bind|constructor|custom|pos|size|axis|absolute|images|items|append|img|slideslinks|255|firstNum|window|show|container||complete|div|extend|for||start||cont|elsToScroll|100|loader|oR||body|elem|typeof|selectedItem|oldP|props|event|accordionCfg|parseFloat|field|getSize|containment|ny|build|relative|iTooltip|islideshow|nx|tp|slideCaption|value|newPosition|Function|block|selectHelper|step|border|itemWidth|hide|dequeue|timer|src|hidden|right|limit|nr|fractions|0px|PI|addClass|direction|end|overflow|cursorAt|result|parentData|onShow|onChange|to|parentNode|||||||||browser|iSlider|scrollLeft|scrollTop|scr|transferHelper|text|href|onHide|pre|selectdrug|className|switch|visibility|item|wrapper|unbind|max|nextslide|values|currentslide|handle|getPosition|html|newCoords|prevslide|iframe|iExpander|accept|mousemove|canvas|createElement|margins|onSlide|zIndex|indexOf|pressedKey|min|valueToAdd|multipleSeparator|pageSize|zones|highlighted|toggle|abs|onStop|dragElem|times|fadeDuration|diff|dhs|handlers||resizeDirection||vp|so|distance|ghosting||test|vertically|getPointer|startTop|offsetWidth|subjectValue|lastSuggestion|DropOutDirectiont|title|wrs|removeClass|horizontally|startLeft|out|onDrag|oP|onStart|nWidth|percent|down|ifxFirstDisplay|msie|iteration|ratio|clear|color|lastValue|slideCfg|fontSize|currentPointer|dimm|bottom|replace|up|prevImage|tooltipCFG|rel|els|fxCheckTag|context|nextImage|params|shs|fieldData|elToScroll|nodeEl|borderTopWidth|chunks|destroy|string|nHeight|paddingLeft|tagName|currentStyle||halign|slidePos|onclick|delay||containerW|from|helperclass|endLeft|endTop|borderLeftWidth|dragmoveBy|documentElement|dhe|newStyles|clonedEl|click|si|marginLeft|marginBottom|clientScroll|OpenClose|paddingBottom|empty|toWrite|selectionStart|overzone|toAdd|onDragModifier|holder|mousedown|animate|toDrag|cnt|marginRight|linksPosition|blur|getAttribute|hight|filter|sw|zoney|cos|slideshows|zonex|marginTop|collected|paddingTop|url|borderRightWidth|mouseup|borderBottomWidth|activeLinkClass|dragHandle|clearInterval|paddingRight|sortCfg|offsetHeight|prop|oldVisibility|styles||BlindDirection|point|fxh|nmp|old|post|currentPanel|onSelect|elementData|grid|pow|toLowerCase|animationHandler|cur|containerH|close|puff|getWidth|currentRel|imageEl|Expander|getHeight|iFisheye|random|newDimensions|itemHeight|reflections|sliders|selRange|wr|orig|margin|maxWidth|keyup|getScroll|captionText|totalImages|128|parseColor|curCSS|outerContainer|Scale|restore|tolerance|selection|focus|caption|snapDistance|revert|current|3000|captionPosition|hpc|onload|class|getBorder|setInterval|oldStyleAttr|rule|rgb|open|minLeft|ActiveXObject|oldDisplay|restoreStyle|getSizeLite||nw|0x||F0|fadeOut|focused|firstChild|while|cssRules|fadeIn|Date|minTop|backgroundColor|sc|nbsp|hash|captionEl|selectKeyHelper|selectCurrent|newTop|init|newLeft|changed|Draggable|inFrontOf|efx|139|onHover|onOut|getTime|np|keydown|split|radiusY|increment|Array|getPositionLite|selectClass|opera|onHighlight|keyCode|charCode|Object|toInteger|frameClass|hasTabsEnabled|zonew|user|zoneh|positionItems|onClick|oD|scrollIntoView|accordionPos|proximity|indic||data|containerSize|sin|iTTabs||ts|ImageBoxPrevImage|ImageBoxNextImage|imageSrc|newPos|maxHeight|minHeight|elS|activeClass|panels|maxBottom|maxRight|ser|move|opened|bounceout|animationInProgress|overlay|stop|reflectionSize|fnc|classname|insideParent|offsetLeft|jEl|nRy|pr|serialize|nRx|tooltipHelper|cssSides|mouseout|select|count|namedColors|padding|offsetTop|directionIncrement|parentEl|400|dir|expand|createTextNode|finishedPre|clientHeight|li|applyOn|content|contBorders|object|parentBorders|alpha|clientWidth|png|gallery|fontWeight|link|yproc|xproc|sx|parent|showImage|selectedone|imgs|onselect|sy|startDrag|cursor|captionClass|onselectstop|getElementById|linksClass|sh|ul|onActivate|isDroppable|nextEl|onDrop|oldTitle|progid|prevslideClass|prevEl|oldPosition|SliderContainer|Image|linkRel|selectKeyUp|selectKeyDown|DXImageTransform|inCache|Microsoft|mouseover|dragstop|diffX|211|nextslideClass|prot|auto|dEs|hidehelper|isDraggable|activeclass|unit|DoFold|unfold|nodeName|startTime|buildWrapper|prev|1px|oldColor|setTimeout|ScrollTo|st|sl|cssText|9999|next|destroyWrapper|opt|diffHeight|diffWidth|exec|hoverclass|image|blind|borderColor|sideEnd|self|key||default|2000|styleSheets|getValues|192|diffY|lnk|reflexions|checkhover|selectcheck|maxRotation|ImageBoxOuterContainer|gradient|panelHeight|childs|headers|ne|hideImage|minWidth|iIndex|itemsText|os|side|iCarousel|5625|1000|itemMinWidth|linksSeparator|setSelectionRange|protectRotation|positionContainer|posx|hoverClass|valToAdd|minchars|helperClass|source|nextImageEl|preventDefault|multiple|headerSelector|DraggableDestroy|getPadding|autofill|handleEl|stopPropagation|prevImageEl|getFieldValues|panelSelector|String|createTextRange|floats|lastSi|shrink|oPad|windowSize|paddingLeftSize|angle|paddingY|paddingX|RegExp|borderRightSize|floatVal|firstStep|pulse|Pulsate|Color|rotationSpeed|paddingBottomSize|remove|parseStyle|getClient|Number|helperSize|bounce|doTab||zoom|borderLeftSize|oBor|paddingRightSize|borderTopSize|paddingTopSize|stopAnim|pValue|borderBottomSize|extraWidth|restricted|autoSize|unselectable|SliderIteration|prepend|clearTimeout|isSlider|oneIsSortable|applyOnHover|tooltipURL|tabindex|draginit|mouse|restoreStyles|sliderSize|sliderPos|parentPos|cancelBubble|autocomplete|inputWidth|oldBorder|dragmove|clnt|sliderEl|returnValue|loaderWidth|idsa|letterSpacing|pause|getContainment|fade|snapToGrid|linear|10000|slideshowHolder|asin|cssSidesEnd|borderWidth|fitToContainer|TEXTAREA|entities|INPUT|spacer|writeItems|character|currentValue|paddings|169|oldFloat|borders|hidefocused|bouncein||modifyContainer|transparent|center|loadImage|func|getMargins|initialPosition|textAlign|innerHeight|Alpha|no|captionImages|closeEl|shake|prevTop|traverseDOM|Selectserialize|stopDrag|slider|ImageBoxCaption|ImageBoxIframe|300|ImageBoxOverlay|sortable|moveDrag|autoplay|measure|prevLeft|intersect|ImageBoxCurrentImage|selectstop|Shake|index|dragEl|keyPressed|scrollHeight|scroll|innerWidth|match|elPosition|scrollWidth|textImage|slideBor|jpg|captionSize|textImageFrom|visible||loaderHeight|ImageBoxCaptionImages||hoverItem|clickItem|emptyGIF||notColor|slideshowCaption|Droppable|goprev|childNodes|autocompleteHelper|autocompleteIframe|slidePad|fit|165|clientSize|||fontFamily|colorCssProps|elType|onhover|cssProps|expanderHelper|boxModel|itransferTo|keypress|moveStart|offsetParent|Width|selectstart|fxe|selectionEnd|checkCache|fontStyle|update|DroppableDestroy|remeasure|fontStretch|fontVariant|onblur|slideshowLoader|htmlEntities|wordSpacing|createRange|224|KhtmlUserSelect||closeHTML|on|sortHelper|245|userSelect|dragHelper|hrefAttr|dragstart|107|loaderSRC|highlight|slideshowPrevslide||gonext||styleFloat|frameborder|javascript|||relAttr|wid|scrolling||onslide|||listStyle|imageTypes|insertBefore|999|textDecoration|sqrt|140|230|maxy|240|ImageBoxContainer|doScroll|interval|set|dragmoveByKey|protect|ImageBoxCaptionText|144|ImageBoxLoader|off|checkdrop|isSelectable|hlt|30px|selectedclass|tooltipTitle|imagebox|shc|overlayOpacity|selRange2|slideshowNextSlide|gif|getSelectionStart|360|iAccordion|getElementsByTagName|iBounce|after|SortableAddItem|onResize|150|itemZIndex|grow|getHeightMinMax|borderTopUnit|selectcheckApply|borderRightUnit|zindex|fontUnit|togglehor|time|se|parte|easeout|isSortable||SlideInUp|fold|SlideOutUp|rgba|addColorStop|yfrac|containerMaxx|interfaceColorFX|containerMaxy||leftUnit|mousex||radiusX|check|getContext|xfrac|addItem|topUnit|fracH|cloneNode|togglever|paddingLeftUnit|borderBottomUnit|finish|onDragStop|onout|posy|isFunction|oldOverflow|directions|vertical|fracW|fakeAccordionClass|parts|fadeTo|inputValue|xml|selectstopApply|slideshowLinks|onDragStart|BlindUp|paddingTopUnit|500|trim|maxx|borderLeftUnit|paddingRightUnit|filteredPosition|BlindDown|paddingBottomUnit|horizontal|valign|find|ImageBoxClose|onselectstart|mozUserSelect|ondragstart|scale|110|globalCompositeOperation|bmp||drawImage|ondrop|password|quot||save|starty|jpeg|||number|startx|finishOpacity|hover|recallDroppables|flipv|finishx|destination|khtml|moz|lt|amp|pW|clientX|Accordion|translate|captiontext|elasticin|slideshowLink|fix|elasticout|resize|elasticboth|bounceboth|984375|9375|Selectable|30002|list|625|30001|nodeValue|before|100000|purgeEvents|substr|duplicate|moveEnd|||substring|success|param|par|array|Fisheye|name|POST|ajax|easeboth|location|fromHandler|collapse|MozUserSelect||ResizableDestroy|rotationTimer|fillRect|fill|WebKit|fillStyle|createLinearGradient|Resizable|navigator|appVersion|lineHeigt|alt|AlphaImageLoader|prototype|SliderGetValues|DisableTabs|Carousel|load|easein|IMG|200|Slider|ToolTip|wh|nextSibling|Autocomplete|SliderSetValues|pageX|float|centerEl|fixPNG|isNaN|dotted|dashed|stopAll|Left|outlineColor|Top|Right|Bottom|solid|double|selectorText|rules|onchange|SlideToggleRight|SlideOutRight||borderStyle||TransferTo||groove|ridge|inset|outset|borderTopColor||borderRightColor|olive|navy|orange||pink|203|maroon||magenta|182|193|lightyellow|lime|purple|red|outlineOffset|outlineWidth|borderBottomColor|borderLeftColor|lineHeight|loading|silver|white|yellow|Showing|100000000|SlideInRight|clientY|Highlight|SortableDestroy|CloseVertically|CloseHorizontally|FoldToggle|UnFold|SlideInDown|SlideToggleUp|SortSerialize|Fold|SwitchHorizontally|SwitchVertically|Sortable|scrollTo|EnableTabs|ScrollToAnchors|pt|Puff|OpenVertically|OpenHorizontally|Grow|Shrink|DropToggleRight|DropInRight|BlindToggleHorizontally|BlindRight|http|Bounce|120|BlindLeft|BlindToggleVertically|SlideToggleLeft|SlideOutLeft|toUpperCase|SlideInLeft|SlideToggleDown|SlideOutDown|DropOutLeft|DropInLeft|DropToggleLeft|DropOutRight|DropToggleUp|DropInUp|DropOutDown|DropInDown|DropToggleDown|DropOutUp|lightpink|textIndent|aqua|appendChild|azure|beige|220|last|cssFloat|first|ol|wrapEl|fxWrapper|black|imageLoaded|darkkhaki|darkgreen|189|183|darkmagenta|firstResize|darkgrey|brown|cyan|darkblue|darkcyan|table|form|col|tfoot|colgroup|th|header|thead|tbody|112|Autoexpand|tr|td|script|frame|input|pageY|textarea|button|w_|removeChild|frameset|option|optgroup|meta|darkolivegreen|blue|122|233|green|lightcyan|204|darkviolet|lightgreen|indigo|216|khaki|darksalmon|130|darkred|lightblue|148|173|215|238|fuchsia|gold|darkorchid|153|darkorange|lightgrey'.split('|'),0,{}))

/**
 * Interface Elements for jQuery
 * Fisheye menu
 * 
 * http://interface.eyecon.ro
 * 
 * Copyright (c) 2006 Stefan Petre
 * Dual licensed under the MIT (MIT-LICENSE.txt) 
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 */

/**
 * Build a Fisheye menu from a list of links
 *
 * @name Fisheye
 * @description Build a Fisheye menu from a list of links
 * @param Hash hash A hash of parameters
 * @option String items items selection
 * @option String container container element
 * @option Integer itemWidth the minimum width for each item
 * @option Integer maxWidth the maximum width for each item
 * @option String itemsText selection of element that contains the text for each item
 * @option Integer proximity the distance from element that make item to interact
 * @option String valign vertical alignment
 * @option String halign horizontal alignment
 *
 * @type jQuery
 * @cat Plugins/Interface
 * @author Stefan Petre
 */
jQuery.iFisheye = {
	
	build : function(options)
	{
	
		return this.each(
			function()
			{
				var el = this;
				el.fisheyeCfg = {
					items : jQuery(options.items, this),
					container: jQuery(options.container, this),
					pos : jQuery.iUtil.getPosition(this),
					itemWidth: options.itemWidth,
					itemsText: options.itemsText,
					proximity: options.proximity,
					valign: options.valign,
					halign: options.halign,
					maxWidth : options.maxWidth
				};
				jQuery.iFisheye.positionContainer(el, 0);
				jQuery(window).bind(
					'resize',
					function()
					{
						el.fisheyeCfg.pos = jQuery.iUtil.getPosition(el);
						jQuery.iFisheye.positionContainer(el, 0);
						jQuery.iFisheye.positionItems(el);
					}
				);
				jQuery.iFisheye.positionItems(el);
				el.fisheyeCfg.items
					.bind(
						'mouseover',
						function()
						{
							jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'block';
						}
					)
					.bind(
						'mouseout',
						function()
						{
							jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'none';
						}
					);
				jQuery(document).bind(
					'mousemove',
					function(e)
					{
						var pointer = jQuery.iUtil.getPointer(e);
						var toAdd = 0;
						if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'center')
							var posx = pointer.x - el.fisheyeCfg.pos.x - (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size())/2 - el.fisheyeCfg.itemWidth/2;
						else if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'right')
							var posx = pointer.x - el.fisheyeCfg.pos.x - el.offsetWidth + el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size();
						else 
							var posx = pointer.x - el.fisheyeCfg.pos.x;
						var posy = Math.pow(pointer.y - el.fisheyeCfg.pos.y - el.offsetHeight/2,2);
						el.fisheyeCfg.items.each(
							function(nr)
							{
								distance = Math.sqrt(
									Math.pow(posx - nr*el.fisheyeCfg.itemWidth, 2)
									+ posy
								);
								distance -= el.fisheyeCfg.itemWidth/2;
								
								distance = distance < 0 ? 0 : distance;
								distance = distance > el.fisheyeCfg.proximity ? el.fisheyeCfg.proximity : distance;
								distance = el.fisheyeCfg.proximity - distance;
								
								extraWidth = el.fisheyeCfg.maxWidth * distance/el.fisheyeCfg.proximity;
								
								this.style.width = el.fisheyeCfg.itemWidth + extraWidth + 'px';
								this.style.left = el.fisheyeCfg.itemWidth * nr + toAdd + 'px';
								toAdd += extraWidth;
							}
						);
						jQuery.iFisheye.positionContainer(el, toAdd);
					}
				);
			}
		)
	},
	
	positionContainer : function(el, toAdd)
	{
		if (el.fisheyeCfg.halign)
			if (el.fisheyeCfg.halign == 'center')
				el.fisheyeCfg.container.get(0).style.left = (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size())/2 - toAdd/2 + 'px';
			else if (el.fisheyeCfg.halign == 'left')
				el.fisheyeCfg.container.get(0).style.left =  - toAdd/el.fisheyeCfg.items.size() + 'px';
			else if (el.fisheyeCfg.halign == 'right')
				el.fisheyeCfg.container.get(0).style.left =  (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size()) - toAdd/2 + 'px';
		el.fisheyeCfg.container.get(0).style.width = el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size() + toAdd + 'px';
	},
	
	positionItems : function(el)
	{
		el.fisheyeCfg.items.each(
			function(nr)
			{
				this.style.width = el.fisheyeCfg.itemWidth + 'px';
				this.style.left = el.fisheyeCfg.itemWidth * nr + 'px';
			}
		);
	}
};

jQuery.fn.Fisheye = jQuery.iFisheye.build;
/**
 * jquery.scrollFollow.js
 * Copyright (c) 2008 Net Perspective (http://kitchen.net-perspective.com/)
 * Licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php)
 * 
 * @author R.A. Ray
 *
 * @projectDescription	jQuery plugin for allowing an element to animate down as the user scrolls the page.
 * 
 * @version 0.4.0
 * 
 * @requires jquery.js (tested with 1.2.6)
 * @requires ui.core.js (tested with 1.5.2)
 * 
 * @optional jquery.cookie.js (http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/)
 * @optional jquery.easing.js (http://gsgd.co.uk/sandbox/jquery/easing/ - tested with 1.3)
 * 
 * @param speed		int - Duration of animation (in milliseconds)
 * 								default: 500
 * @param offset			int - Number of pixels box should remain from top of viewport
 * 								default: 0
 * @param easing		string - Any one of the easing options from the easing plugin - Requires jQuery Easing Plugin < http://gsgd.co.uk/sandbox/jquery/easing/ >
 * 								default: 'linear'
 * @param container	string - ID of the containing div
 * 								default: box's immediate parent
 * @param killSwitch	string - ID of the On/Off toggle element
 * 								default: 'killSwitch'
 * @param onText		string - killSwitch text to be displayed if sliding is enabled
 * 								default: 'Turn Slide Off'
 * @param offText		string - killSwitch text to be displayed if sliding is disabled
 * 								default: 'Turn Slide On'
 * @param relativeTo	string - Scroll animation can be relative to either the 'top' or 'bottom' of the viewport
 * 								default: 'top'
 * @param delay			int - Time between the end of the scroll and the beginning of the animation in milliseconds
 * 								default: 0
 */

( function( $ ) {
	
	$.scrollFollow = function ( box, options )
	{ 
		// Convert box into a jQuery object
		box = $( box );
		
		// 'box' is the object to be animated
		var position = box.css( 'position' );
		
		function ani()
		{		
			// The script runs on every scroll which really means many times during a scroll.
			// We don't want multiple slides to queue up.
			box.queue( [ ] );
		
			// A bunch of values we need to determine where to animate to
			var viewportHeight = parseInt( $( window ).height() );	
			var pageScroll =  parseInt( $( document ).scrollTop() );
			var parentTop =  parseInt( box.cont.offset().top );
			var parentHeight = parseInt( box.cont.attr( 'offsetHeight' ) );
			var boxHeight = parseInt( box.attr( 'offsetHeight' ) + ( parseInt( box.css( 'marginTop' ) ) || 0 ) + ( parseInt( box.css( 'marginBottom' ) ) || 0 ) );
			var aniTop;
			
			// Make sure the user wants the animation to happen
			if ( isActive )
			{
				// If the box should animate relative to the top of the window
				if ( options.relativeTo == 'top' )
				{
					// Don't animate until the top of the window is close enough to the top of the box
					if ( box.initialOffsetTop >= ( pageScroll + options.offset ) )
					{
						aniTop = box.initialTop;
					}
					else
					{
						aniTop = Math.min( ( Math.max( ( -parentTop ), ( pageScroll - box.initialOffsetTop + box.initialTop ) ) + options.offset ), ( parentHeight - boxHeight - box.paddingAdjustment ) );
					}
				}
				// If the box should animate relative to the bottom of the window
				else if ( options.relativeTo == 'bottom' )
				{
					// Don't animate until the bottom of the window is close enough to the bottom of the box
					if ( ( box.initialOffsetTop + boxHeight ) >= ( pageScroll + options.offset + viewportHeight ) )
					{
						aniTop = box.initialTop;
					}
					else
					{
						aniTop = Math.min( ( pageScroll + viewportHeight - boxHeight - options.offset ), ( parentHeight - boxHeight ) );
					}
				}
				
				// Checks to see if the relevant scroll was the last one
				// "-20" is to account for inaccuracy in the timeout
				if ( ( new Date().getTime() - box.lastScroll ) >= ( options.delay - 20 ) )
				{
					box.animate(
						{
							top: aniTop
						}, options.speed, options.easing
					);
				}
			}
		};
		
		// For user-initiated stopping of the slide
		var isActive = true;
		
		if ( $.cookie != undefined )
		{
			if( $.cookie( 'scrollFollowSetting' + box.attr( 'id' ) ) == 'false' )
			{
				var isActive = false;
				
				$( '#' + options.killSwitch ).text( options.offText )
					.toggle( 
						function ()
						{
							isActive = true;
							
							$( this ).text( options.onText );
							
							$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), true, { expires: 365, path: '/'} );
							
							ani();
						},
						function ()
						{
							isActive = false;
							
							$( this ).text( options.offText );
							
							box.animate(
								{
									top: box.initialTop
								}, options.speed, options.easing
							);	
							
							$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), false, { expires: 365, path: '/'} );
						}
					);
			}
			else
			{
				$( '#' + options.killSwitch ).text( options.onText )
					.toggle( 
						function ()
						{
							isActive = false;
							
							$( this ).text( options.offText );
							
							box.animate(
								{
									top: box.initialTop
								}, 0
							);	
							
							$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), false, { expires: 365, path: '/'} );
						},
						function ()
						{
							isActive = true;
							
							$( this ).text( options.onText );
							
							$.cookie( 'scrollFollowSetting' + box.attr( 'id' ), true, { expires: 365, path: '/'} );
							
							ani();
						}
					);
			}
		}
		
		// If no parent ID was specified, and the immediate parent does not have an ID
		// options.container will be undefined. So we need to figure out the parent element.
		if ( options.container == '')
		{
			box.cont = box.parent();
		}
		else
		{
			box.cont = $( '#' + options.container );
		}
		
		// Finds the default positioning of the box.
		box.initialOffsetTop =  parseInt( box.offset().top );
		box.initialTop = parseInt( box.css( 'top' ) ) || 0;
		
		// Hack to fix different treatment of boxes positioned 'absolute' and 'relative'
		if ( box.css( 'position' ) == 'relative' )
		{
			box.paddingAdjustment = parseInt( box.cont.css( 'paddingTop' ) ) + parseInt( box.cont.css( 'paddingBottom' ) );
		}
		else
		{
			box.paddingAdjustment = 0;
		}
		
		// Animate the box when the page is scrolled
		$( window ).scroll( function ()
			{
				// Sets up the delay of the animation
				$.fn.scrollFollow.interval = setTimeout( function(){ ani();} , options.delay );
				
				// To check against right before setting the animation
				box.lastScroll = new Date().getTime();
			}
		);
		
		// Animate the box when the page is resized
		$( window ).resize( function ()
			{
				// Sets up the delay of the animation
				$.fn.scrollFollow.interval = setTimeout( function(){ ani();} , options.delay );
				
				// To check against right before setting the animation
				box.lastScroll = new Date().getTime();
			}
		);

		// Run an initial animation on page load
		box.lastScroll = 0;
		
		ani();
	};
	
	$.fn.scrollFollow = function ( options )
	{
		options = options || {};
		options.relativeTo = options.relativeTo || 'top';
		options.speed = options.speed || 500;
		options.offset = options.offset || 0;
		options.easing = options.easing || 'swing';
		options.container = options.container || this.parent().attr( 'id' );
		options.killSwitch = options.killSwitch || 'killSwitch';
		options.onText = options.onText || 'Turn Slide Off';
		options.offText = options.offText || 'Turn Slide On';
		options.delay = options.delay || 0;
		
		this.each( function() 
			{
				new $.scrollFollow( this, options );
			}
		);
		
		return this;
	};
})( jQuery );




/*
 * jQuery Tooltip plugin 1.3
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
 * http://docs.jquery.com/Plugins/Tooltip
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(8($){j e={},9,m,B,A=$.2u.2g&&/29\\s(5\\.5|6\\.)/.1M(1H.2t),M=12;$.k={w:12,1h:{Z:25,r:12,1d:19,X:"",G:15,E:15,16:"k"},2s:8(){$.k.w=!$.k.w}};$.N.1v({k:8(a){a=$.1v({},$.k.1h,a);1q(a);g 2.F(8(){$.1j(2,"k",a);2.11=e.3.n("1g");2.13=2.m;$(2).24("m");2.22=""}).21(1e).1U(q).1S(q)},H:A?8(){g 2.F(8(){j b=$(2).n(\'Y\');4(b.1J(/^o\\(["\']?(.*\\.1I)["\']?\\)$/i)){b=1F.$1;$(2).n({\'Y\':\'1D\',\'1B\':"2r:2q.2m.2l(2j=19, 2i=2h, 1p=\'"+b+"\')"}).F(8(){j a=$(2).n(\'1o\');4(a!=\'2f\'&&a!=\'1u\')$(2).n(\'1o\',\'1u\')})}})}:8(){g 2},1l:A?8(){g 2.F(8(){$(2).n({\'1B\':\'\',Y:\'\'})})}:8(){g 2},1x:8(){g 2.F(8(){$(2)[$(2).D()?"l":"q"]()})},o:8(){g 2.1k(\'28\')||2.1k(\'1p\')}});8 1q(a){4(e.3)g;e.3=$(\'<t 16="\'+a.16+\'"><10></10><t 1i="f"></t><t 1i="o"></t></t>\').27(K.f).q();4($.N.L)e.3.L();e.m=$(\'10\',e.3);e.f=$(\'t.f\',e.3);e.o=$(\'t.o\',e.3)}8 7(a){g $.1j(a,"k")}8 1f(a){4(7(2).Z)B=26(l,7(2).Z);p l();M=!!7(2).M;$(K.f).23(\'W\',u);u(a)}8 1e(){4($.k.w||2==9||(!2.13&&!7(2).U))g;9=2;m=2.13;4(7(2).U){e.m.q();j a=7(2).U.1Z(2);4(a.1Y||a.1V){e.f.1c().T(a)}p{e.f.D(a)}e.f.l()}p 4(7(2).18){j b=m.1T(7(2).18);e.m.D(b.1R()).l();e.f.1c();1Q(j i=0,R;(R=b[i]);i++){4(i>0)e.f.T("<1P/>");e.f.T(R)}e.f.1x()}p{e.m.D(m).l();e.f.q()}4(7(2).1d&&$(2).o())e.o.D($(2).o().1O(\'1N://\',\'\')).l();p e.o.q();e.3.P(7(2).X);4(7(2).H)e.3.H();1f.1L(2,1K)}8 l(){B=S;4((!A||!$.N.L)&&7(9).r){4(e.3.I(":17"))e.3.Q().l().O(7(9).r,9.11);p e.3.I(\':1a\')?e.3.O(7(9).r,9.11):e.3.1G(7(9).r)}p{e.3.l()}u()}8 u(c){4($.k.w)g;4(c&&c.1W.1X=="1E"){g}4(!M&&e.3.I(":1a")){$(K.f).1b(\'W\',u)}4(9==S){$(K.f).1b(\'W\',u);g}e.3.V("z-14").V("z-1A");j b=e.3[0].1z;j a=e.3[0].1y;4(c){b=c.2o+7(9).E;a=c.2n+7(9).G;j d=\'1w\';4(7(9).2k){d=$(C).1r()-b;b=\'1w\'}e.3.n({E:b,14:d,G:a})}j v=z(),h=e.3[0];4(v.x+v.1s<h.1z+h.1n){b-=h.1n+20+7(9).E;e.3.n({E:b+\'1C\'}).P("z-14")}4(v.y+v.1t<h.1y+h.1m){a-=h.1m+20+7(9).G;e.3.n({G:a+\'1C\'}).P("z-1A")}}8 z(){g{x:$(C).2e(),y:$(C).2d(),1s:$(C).1r(),1t:$(C).2p()}}8 q(a){4($.k.w)g;4(B)2c(B);9=S;j b=7(2);8 J(){e.3.V(b.X).q().n("1g","")}4((!A||!$.N.L)&&b.r){4(e.3.I(\':17\'))e.3.Q().O(b.r,0,J);p e.3.Q().2b(b.r,J)}p J();4(7(2).H)e.3.1l()}})(2a);',62,155,'||this|parent|if|||settings|function|current||||||body|return|||var|tooltip|show|title|css|url|else|hide|fade||div|update||blocked|||viewport|IE|tID|window|html|left|each|top|fixPNG|is|complete|document|bgiframe|track|fn|fadeTo|addClass|stop|part|null|append|bodyHandler|removeClass|mousemove|extraClass|backgroundImage|delay|h3|tOpacity|false|tooltipText|right||id|animated|showBody|true|visible|unbind|empty|showURL|save|handle|opacity|defaults|class|data|attr|unfixPNG|offsetHeight|offsetWidth|position|src|createHelper|width|cx|cy|relative|extend|auto|hideWhenEmpty|offsetTop|offsetLeft|bottom|filter|px|none|OPTION|RegExp|fadeIn|navigator|png|match|arguments|apply|test|http|replace|br|for|shift|click|split|mouseout|jquery|target|tagName|nodeType|call||mouseover|alt|bind|removeAttr|200|setTimeout|appendTo|href|MSIE|jQuery|fadeOut|clearTimeout|scrollTop|scrollLeft|absolute|msie|crop|sizingMethod|enabled|positionLeft|AlphaImageLoader|Microsoft|pageY|pageX|height|DXImageTransform|progid|block|userAgent|browser'.split('|'),0,{}))
// JQUERY CUSTOM COMMANDS
$(window).load(function() {

	// BOOKMARK
	if (window.opera) {  	// add a "rel" attrib if Opera 7+  
		if ($("a.bookmark").attr("rel") != "") { // don't overwrite the rel attrib if already set  
			$("a.bookmark").attr("rel", "sidebar");
		}
	}


	$("a.bookmark").click(function(event) {
		event.preventDefault(); // prevent the anchor tag from sending the user off to the link  
		var url = document.location.href;
		var title = document.title; // this.title;

		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title, url, "");
		} else if (window.external && navigator.userAgent.toString().indexOf('Chrome') == -1) { // IE Favorite
			window.external.AddFavorite(url, title);
		} else if (window.opera) { // Opera 7+  
			return false; // do nothing - the rel="sidebar" should do the trick
		} else { // for Safari, Konq etc - browsers who do not support bookmarking scripts (that i could find anyway)
			if (navigator.appVersion.indexOf('Mac') > 0)
				alert('Druk op Apple + D om deze pagina te bewaren ');
			else
				alert('Druk op Ctrl + D om deze pagina te bewaren ');
		}
	});

	// BTW SWITCH (1/2)
	btwSwitch();
	
	$(document).keydown(function(event) {
		var key = event.keyCode || event.which;

		if (key == 17) {
			$('#productGroupDataList .artNumber').show();
		}
	});

	$(document).keyup(function(event) {
		var key = event.keyCode || event.which;

		if (key == 17) {
			$('#productGroupDataList .artNumber').hide();
		}
	});
	



	// REMOVE GIFT REMINDER
	$('#kado input').click(function() {
		$('#giftReminder').hide();
	});

	// FORM FIELDS

	// Input focus / blur / error
	$('input.textfield, textarea.textarea, select.select').focus(function() {
		$(this).addClass("focus");
	});
	$('input.textfield, textarea.textarea, select.select').blur(function() {
		$(this).removeClass("focus");
	});


	//	$(".tooltip").tooltip({
	//		track: false,
	//		delay: 0,
	//		showURL: false,
	//		showBody: " - ",
	//		fade: 0
	//	});

	// CUSTOM SELECT
	// Show on click
	$(".customSelect a.selected").click(function() {
		$(this).parents(".customSelect").css({ position: "relative" });
		$(this).parents(".customSelect").find('ul').show();
		return false;
	});
	// Hide on mouseout
	$(".customSelect").mouseleave(function() {
		$(this).find('ul').hide();
		$(this).css({ position: "static" });
	});
	// Set width from parent to child
	$(".customSelect").each(function(i) {
		var $customSelectWidth = $(this).width();
		$(this).find('ul').width($customSelectWidth);
	});

	// ROLLOVER IMAGES (1/2)
	DNZRollOver.rollover.init();
});

var isIE = false;
function detectIE()
{
	isIE = (navigator.userAgent.indexOf('MSIE') !== -1);
}

// RESIZE COLUMNS (2/2)
function extendContent() {
	var contentHeight = $('#infoContent').height();
	var sidebarHeight = $('#infoNavi').height();
	if (sidebarHeight > contentHeight) {
		// Set height of #content container
		// (DISABLED: makes content disappear) if ($.browser.msie && $.browser.version == 6.0) { $('#content').css({'height': sidebarHeight + 64}); } // min-height for IE6
		$('#infoContent').css({ 'min-height': sidebarHeight }); // Set new height
		// Set height of .content container
		if ($.browser.msie && $.browser.version == 6.0) { $('#infoContent').css({ 'height': sidebarHeight }); } // min-height for IE6
		$('#infoContent').css({ 'min-height': sidebarHeight }); // Set new height
	}
}

function fnFocus() {
	if (elementToFocus && document.getElementById(elementToFocus)) {
		document.getElementById(elementToFocus).scrollIntoView(true);
	}
}

// BTW SWITCH (2/2)
// set btw on default and bind triggers
function btwSwitch() {
	if ($(".btwValue").val() == "ex") {
		$('.btwSwitch .slider').css({ "left": "0px" });
		$('#steps .showPriceExcl').show();
		$('#steps .showPriceIncl').hide();
	}
	else {
		$('.btwSwitch .slider').css({ "left": "57px" });
		$('#steps .showPriceIncl').show();
		$('#steps .showPriceExcl').hide();
	}
	
	$('.btwSwitch').unbind('click').click(function() {
		if ($(".btwValue").val() == "ex") {
			$('.btwSwitch .slider').css({ left: "0px" }).stop().animate({ left: '57px' }, 400);
			$(".btwValue").val("in");
			$('#steps .showPriceExcl').hide();
			$('#steps .showPriceIncl').show();
			return false;
		}
		else {
			$('.btwSwitch .slider').css({ left: "57px" }).stop().animate({ left: '0px' }, 400);
			$(".btwValue").val("ex");
			$('#steps .showPriceIncl').hide();
			$('#steps .showPriceExcl').show();
			return false;
		}
	});
}

function resetBTW() {
	if ($(".btwValue").val() == "in") {
		$('#steps .showPriceExcl').hide();
		$('#steps .showPriceIncl').show();
		return false;
	}
	else {
		$('#steps .showPriceIncl').hide();
		$('#steps .showPriceExcl').show();
		return false;
	}
}

function activateProductSelectorZoom() {
	// APPARAAT SELECTOR
	// Add hover class
	$('#apparaatSelector td').unbind('hover').hover(function() {
		$(this).parent('tr').addClass('hover');
		$(this).parent('tr').find('.zoom').show();
	}, function() {
		$(this).parent('tr').removeClass('hover');
		$(this).parent('tr').find('.zoom').hide();
	});
	// Select input on row click
	$('#apparaatSelector tr').unbind('click').click(function() {
		$(this).find('input').attr({ checked: 'checked' });
	});
	// Vertical align zoom box
	$("#apparaatSelector td.image").each(function() {
		var boxHeight = $(this).find('.imgBox img').height();
		var zoomHeight = ($(this).find('.zoom').height());
		var zoomTop = ((boxHeight) / 2) - ((zoomHeight) / 2);
		$(this).find('.zoom').css('top', zoomTop);
	});
}


function fnActivateToolTips(selector) {
	// TOOLTIPS
	// documentation: http://docs.jquery.com/Plugins/Tooltip/tooltip
	$(selector).tooltip({
		track: false,
		delay: 0,
		showURL: false,
		showBody: "||",
		fade: 0
	});
}

function fnActivateInformationNavigation() {
	// INFO NAVI
	$('#infoNavi li:has(ul):last').addClass('last');
	setTimeout("$('#infoNavi').scrollFollow({ speed: '500'});", 500);
	/* Tijdelijk activate */
	$('#infoNavi li a').click(function() {
		$('#infoNavi li').removeClass('active').removeClass('activeParent');
		$(this).parents('li:has(ul)').addClass('activeParent');
		$(this).parent('li').addClass('active');
		return false;
	});
}

function fnApplyToggleRepairMoreInfoEvents() {
	$('.repairSelections .section a.label').unbind('click').click(function() { // show hide submenu in IE6
		$(this).parents('dt').toggleClass('active');
		return false;
	});
}


function fnApplyRollOver() {
	DNZRollOver.rollover.init();
}


function fnApplyBarEvents() {
	// REPAIR GROUP TOGGLE
	$('.repairSections .bar').unbind('click').click(function() {
		if ($(this).parent().find('.details').is(':hidden')) {
			$(this).parent().find('.details').show();
			$(this).parent().addClass("activeSection");
		} else {
			$(this).parent().removeClass("activeSection");
			$(this).parent().find('.details').hide();
		}
	});

	// REPAIR INFO TOGGLE
	$('.repairSections .section a.label').unbind('click').click(function() {
		if ($(this).parents('dt').find('.info').is(':hidden')) {
			$(this).parents('dt').addClass("active");
		} else {
			$(this).parents('dt').removeClass("active");
		};
		return false;
	});
}

// ROLLOVER IMAGES (2/2)
// Rollover adds '_on' to image source name.
DNZRollOver = {};
DNZRollOver.rollover = {
	init: function() {
		this.preload();
		$(".rollover").hover(
         function() { $(this).attr('src', DNZRollOver.rollover.newimage($(this).attr('src'))); },
         function() { $(this).attr('src', DNZRollOver.rollover.oldimage($(this).attr('src'))); }
      );
      
	},
	preload: function() {
		$(window).bind('load', function() {
			$('.rollover').each(function(key, elm) { $('<img>').attr('src', DNZRollOver.rollover.newimage($(this).attr('src'))); });
		});
	},
	newimage: function(src) {
		return src.substring( 0, src.replace('_on', '').search(/(\.[a-z]+)$/) ) + '_on' + src.match(/(\.[a-z]+)$/)[0];
	},
	oldimage: function(src) {

		return src.replace(/_on\./, '.');
	}
};


// ACTIVATE APPLEDOCK
function appleDock() {
	$('#dock').Fisheye({
		container: '.dock-container',
		items: 'li',
		itemsText: 'span',
		itemWidth: 90,
		maxWidth: 85,
		proximity: 80,
		halign: 'center',
		valign: 'bottom'
	});
}
var Cufon;


function activateFaq() {
	/* FAQ TOGGLE */
	$('.faqList .faqAnswer').hide();
	$('.faqList .faqQuestion a').click(function() {
	$(this).parents('.faqList').find(".faqAnswer:visible").slideUp(200); // Hide all answers
		$(this).parents('.faqList').find('li').removeClass("active");
		$(this).parents('li').find(".faqAnswer").slideDown(200); // Show current answer
		$(this).parents('li').addClass("active");
		return false;
	});
}

function isVisible(selector) {
	return $(selector).is(':visible');
}


/*
--------------------------------------------------------
========================================================
REGION for managing showing and hiding the steps
========================================================
--------------------------------------------------------
*/

function hideSteps(skipSteps) {

	if (!skipSteps)
		skipSteps = '';
		
	if (skipSteps.indexOf('#step1 .content') === -1)
		slideUpStep('#step1 .content');

	slideUpStep('#columnLeft .stepIntro');
	hideStep('#step1A');

	if (skipSteps.indexOf('#step1B') === -1)
		slideUpStep('#step1B');

	slideUpStep('#step2 .content');

	if (skipSteps.indexOf('#step3 .content') === -1)
		slideUpStep('#step3 .content');
	
	if (skipSteps.indexOf('#step4 .content') === -1)
		slideUpStep('#step4 .content');
		
	slideUpStep('#step4B');
	slideUpStep('#step4C');
	slideUpStep('#step4D');
}

function showStep(step) {
	if (!isVisible(step))
		$(step).show();
}
function hideStep(step) {
	if (isVisible(step))
		$(step).hide();
}
function slideDownStep(step) {
	if (!isVisible(step))
	{
		if (isIE)
			$(step).show();
		else
			$(step).slideDown();
	}
}
function slideUpStep(step) {
	if (isVisible(step))
	{
		if (isIE)
			$(step).hide();
		else
			$(step).slideUp(200);
	}
}
function showHourglass() {
	document.body.style.cursor='wait';
}

function hideHourglass() {
	document.body.style.cursor='default';
}
function activateHome() {
	hideSteps('#step1 .content');
	showStep('#columnLeft .stepIntro');
	slideDownStep('#step1 .content');
	slideDownStep('#step1A');
	appleDock(); // not placed in activateStep1 because it will break!
	$('.dock-container').css('visibility', 'visible');
	activateStepHeaders('#step1', activeStepId);
	hideHourglass();
}

function activateStep1A() {
	hideSteps('#step1 .content');
	slideDownStep('#step1 .content');
	slideDownStep('#step1A');
	appleDock(); // not placed in activateStep1 because it will break!
	$('.dock-container').css('visibility', 'visible');
	activateStepHeaders('#step1', activeStepId);
	hideHourglass();
}

function activateStep1B() {
	hideSteps('#step1 .content #step1B');
	//slideUpStep('#step1A');
	showStep('#step1 .content');
	slideUpStep('#step1A');
	slideDownStep('#step1B');
	activateStepHeaders('#step1', activeStepId);
	hideHourglass();
}

function activateStep2() {
	hideSteps();
	slideDownStep('#step2 .content');
	activateStepHeaders('#step2', activeStepId);
	btwSwitch();
	hideHourglass();
}

function activateStep3() {
	hideSteps('#step3 .content');
	slideDownStep('#step3 .content');	
	activateStepHeaders('#step3', activeStepId);
	// timeout because the float will not work
	//setTimeout("$('.repairCosts').stickyfloat();", 500);
	//setTimeout("$('.repairCosts').scrollFollow({ speed: '500'});", 500);
	
	// scrollFollow if screen is big enough
	var windowHeight = $(window).height();
	if (windowHeight > 650) {
		setTimeout("$('.repairCosts').scrollFollow();", 500);
	}
	btwSwitch();
	hideHourglass();
}

function activateStep4() {
	hideSteps('#step4 .content');
	slideDownStep('#step4 .content');
	slideDownStep('#step4B');
	activateStepHeaders('#step4', activeStepId);
	hideHourglass();
}

function activateStep4C() {
	hideSteps('#step4 .content');

	slideDownStep('#step4C');  
	slideDownStep('#step4 .content');

	activateStepHeaders('#step4', activeStepId);
	hideHourglass();
}

function activateStep4D() {
	hideSteps('#step4 .content');
	$('#comments').val($("#commentsStep3").val());

	slideDownStep('#step4D');
	slideDownStep('#step4 .content');

	activateStepHeaders('#step4', activeStepId);
	hideHourglass();
}
/*
 * jQuery validation plug-in 1.5.5
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

(function($) {

$.extend($.fn, {
	// http://docs.jquery.com/Plugins/Validation/validate
	validate: function( options ) {

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

		// check if a validator for this form was already created
		var validator = $.data(this[0], 'validator');
		if ( validator ) {
			return validator;
		}
		
		validator = new $.validator( options, this[0] );
		$.data(this[0], 'validator', validator); 
		
		if ( validator.settings.onsubmit ) {
		
			// allow suppresing validation by adding a cancel class to the submit button
			this.find("input, button").filter(".cancel").click(function() {
				validator.cancelSubmit = true;
			});
			
			// when a submitHandler is used, capture the submitting button
			if (validator.settings.submitHandler) {
				this.find("input, button").filter(":submit").click(function() {
					validator.submitButton = this;
				});
			}
		
			// validate the form on submit
			this.submit( function( event ) {
				if ( validator.settings.debug )
					// prevent form submit to be able to see console output
					event.preventDefault();
					
				function handle() {
					if ( validator.settings.submitHandler ) {
						if (validator.submitButton) {
							// insert a hidden input as a replacement for the missing submit button
							var hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);
						}
						validator.settings.submitHandler.call( validator, validator.currentForm );
						if (validator.submitButton) {
							// and clean up afterwards; thanks to no-block-scope, hidden can be referenced
							hidden.remove();
						}
						return false;
					}
					return true;
				}
					
				// prevent submit for invalid forms or custom submit handlers
				if ( validator.cancelSubmit ) {
					validator.cancelSubmit = false;
					return handle();
				}
				if ( validator.form() ) {
					if ( validator.pendingRequest ) {
						validator.formSubmitted = true;
						return false;
					}
					return handle();
				} else {
					validator.focusInvalid();
					return false;
				}
			});
		}
		
		return validator;
	},
	// http://docs.jquery.com/Plugins/Validation/valid
	valid: function() {
        if ( $(this[0]).is('form')) {
            return this.validate().form();
        } else {
            var valid = true;
            var validator = $(this[0].form).validate();
            this.each(function() {
				valid &= validator.element(this);
            });
            return valid;
        }
    },
	// attributes: space seperated list of attributes to retrieve and remove
	removeAttrs: function(attributes) {
		var result = {},
			$element = this;
		$.each(attributes.split(/\s/), function(index, value) {
			result[value] = $element.attr(value);
			$element.removeAttr(value);
		});
		return result;
	},
	// http://docs.jquery.com/Plugins/Validation/rules
	rules: function(command, argument) {
		var element = this[0];
		
		if (command) {
			var settings = $.data(element.form, 'validator').settings;
			var staticRules = settings.rules;
			var existingRules = $.validator.staticRules(element);
			switch(command) {
			case "add":
				$.extend(existingRules, $.validator.normalizeRule(argument));
				staticRules[element.name] = existingRules;
				if (argument.messages)
					settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages );
				break;
			case "remove":
				if (!argument) {
					delete staticRules[element.name];
					return existingRules;
				}
				var filtered = {};
				$.each(argument.split(/\s/), function(index, method) {
					filtered[method] = existingRules[method];
					delete existingRules[method];
				});
				return filtered;
			}
		}
		
		var data = $.validator.normalizeRules(
		$.extend(
			{},
			$.validator.metadataRules(element),
			$.validator.classRules(element),
			$.validator.attributeRules(element),
			$.validator.staticRules(element)
		), element);
		
		// make sure required is at front
		if (data.required) {
			var param = data.required;
			delete data.required;
			data = $.extend({required: param}, data);
		}
		
		return data;
	}
});

// Custom selectors
$.extend($.expr[":"], {
	// http://docs.jquery.com/Plugins/Validation/blank
	blank: function(a) {return !$.trim(a.value);},
	// http://docs.jquery.com/Plugins/Validation/filled
	filled: function(a) {return !!$.trim(a.value);},
	// http://docs.jquery.com/Plugins/Validation/unchecked
	unchecked: function(a) {return !a.checked;}
});

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

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

$.extend($.validator, {
	
	defaults: {
		messages: {},
		groups: {},
		rules: {},
		errorClass: "error",
		validClass: "valid",
		errorElement: "label",
		focusInvalid: true,
		errorContainer: $( [] ),
		errorLabelContainer: $( [] ),
		onsubmit: true,
		ignore: [],
		ignoreTitle: false,
		onfocusin: function(element) {
			this.lastActive = element;
				
			// hide error label and remove error class on focus if enabled
			if ( this.settings.focusCleanup && !this.blockFocusCleanup ) {
				this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
				this.errorsFor(element).hide();
			}
		},
		onfocusout: function(element) {
			if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) {
				this.element(element);
			}
		},
		onkeyup: function(element) {
			if ( element.name in this.submitted || element == this.lastElement ) {
				this.element(element);
			}
		},
		onclick: function(element) {
			if ( element.name in this.submitted )
				this.element(element);
		},
		highlight: function( element, errorClass, validClass ) {
			$(element).addClass(errorClass).removeClass(validClass);
		},
		unhighlight: function( element, errorClass, validClass ) {
			$(element).removeClass(errorClass).addClass(validClass);
		}
	},

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

	messages: {
		required: "This field is required.",
		remote: "Please fix this field.",
		email: "Please enter a valid email address.",
		url: "Please enter a valid URL.",
		date: "Please enter a valid date.",
		dateISO: "Please enter a valid date (ISO).",
		dateDE: "Bitte geben Sie ein gültiges Datum ein.",
		number: "Please enter a valid number.",
		numberDE: "Bitte geben Sie eine Nummer ein.",
		digits: "Please enter only digits",
		creditcard: "Please enter a valid credit card number.",
		equalTo: "Please enter the same value again.",
		accept: "Please enter a value with a valid extension.",
		maxlength: $.validator.format("Please enter no more than {0} characters."),
		minlength: $.validator.format("Please enter at least {0} characters."),
		rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
		range: $.validator.format("Please enter a value between {0} and {1}."),
		max: $.validator.format("Please enter a value less than or equal to {0}."),
		min: $.validator.format("Please enter a value greater than or equal to {0}.")
	},
	
	autoCreateRanges: false,
	
	prototype: {
		
		init: function() {
			this.labelContainer = $(this.settings.errorLabelContainer);
			this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
			this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer );
			this.submitted = {};
			this.valueCache = {};
			this.pendingRequest = 0;
			this.pending = {};
			this.invalid = {};
			this.reset();
			
			var groups = (this.groups = {});
			$.each(this.settings.groups, function(key, value) {
				$.each(value.split(/\s/), function(index, name) {
					groups[name] = key;
				});
			});
			var rules = this.settings.rules;
			$.each(rules, function(key, value) {
				rules[key] = $.validator.normalizeRule(value);
			});
			
			function delegate(event) {
				var validator = $.data(this[0].form, "validator");
				validator.settings["on" + event.type] && validator.settings["on" + event.type].call(validator, this[0] );
			}
			$(this.currentForm)
				.delegate("focusin focusout keyup", ":text, :password, :file, select, textarea", delegate)
				.delegate("click", ":radio, :checkbox", delegate);

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

		// http://docs.jquery.com/Plugins/Validation/Validator/form
		form: function() {
			this.checkForm();
			$.extend(this.submitted, this.errorMap);
			this.invalid = $.extend({}, this.errorMap);
			if (!this.valid())
				$(this.currentForm).triggerHandler("invalid-form", [this]);
			this.showErrors();
			return this.valid();
		},
		
		checkForm: function() {
			this.prepareForm();
			for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
				this.check( elements[i] );
			}
			return this.valid(); 
		},
		
		// http://docs.jquery.com/Plugins/Validation/Validator/element
		element: function( element ) {
			element = this.clean( element );
			this.lastElement = element;
			this.prepareElement( element );
			this.currentElements = $(element);
			var result = this.check( element );
			if ( result ) {
				delete this.invalid[element.name];
			} else {
				this.invalid[element.name] = true;
			}
			if ( !this.numberOfInvalids() ) {
				// Hide error containers on last error
				this.toHide = this.toHide.add( this.containers );
			}
			this.showErrors();
			return result;
		},

		// http://docs.jquery.com/Plugins/Validation/Validator/showErrors
		showErrors: function(errors) {
			if(errors) {
				// add items to error list and map
				$.extend( this.errorMap, errors );
				this.errorList = [];
				for ( var name in errors ) {
					this.errorList.push({
						message: errors[name],
						element: this.findByName(name)[0]
					});
				}
				// remove items from success list
				this.successList = $.grep( this.successList, function(element) {
					return !(element.name in errors);
				});
			}
			this.settings.showErrors
				? this.settings.showErrors.call( this, this.errorMap, this.errorList )
				: this.defaultShowErrors();
		},
		
		// http://docs.jquery.com/Plugins/Validation/Validator/resetForm
		resetForm: function() {
			if ( $.fn.resetForm )
				$( this.currentForm ).resetForm();
			this.submitted = {};
			this.prepareForm();
			this.hideErrors();
			this.elements().removeClass( this.settings.errorClass );
		},
		
		numberOfInvalids: function() {
			return this.objectLength(this.invalid);
		},
		
		objectLength: function( obj ) {
			var count = 0;
			for ( var i in obj )
				count++;
			return count;
		},
		
		hideErrors: function() {
			this.addWrapper( this.toHide ).hide();
		},
		
		valid: function() {
			return this.size() == 0;
		},
		
		size: function() {
			return this.errorList.length;
		},
		
		focusInvalid: function() {
			if( this.settings.focusInvalid ) {
				try {
					$(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
				} catch(e) {
					// ignore IE throwing errors when focusing hidden elements
				}
			}
		},
		
		findLastActive: function() {
			var lastActive = this.lastActive;
			return lastActive && $.grep(this.errorList, function(n) {
				return n.element.name == lastActive.name;
			}).length == 1 && lastActive;
		},
		
		elements: function() {
			var validator = this,
				rulesCache = {};
			
			// select all valid inputs inside the form (no submit or reset buttons)
			// workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved
			return $([]).add(this.currentForm.elements)
			.filter(":input")
			.not(":submit, :reset, :image, [disabled]")
			.not( this.settings.ignore )
			.filter(function() {
				!this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this);
			
				// select only the first element for each name, and only those with rules specified
				if ( this.name in rulesCache || !validator.objectLength($(this).rules()) )
					return false;
				
				rulesCache[this.name] = true;
				return true;
			});
		},
		
		clean: function( selector ) {
			return $( selector )[0];
		},
		
		errors: function() {
			return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext );
		},
		
		reset: function() {
			this.successList = [];
			this.errorList = [];
			this.errorMap = {};
			this.toShow = $([]);
			this.toHide = $([]);
			this.formSubmitted = false;
			this.currentElements = $([]);
		},
		
		prepareForm: function() {
			this.reset();
			this.toHide = this.errors().add( this.containers );
		},
		
		prepareElement: function( element ) {
			this.reset();
			this.toHide = this.errorsFor(element);
		},
	
		check: function( element ) {
			element = this.clean( element );
			
			// if radio/checkbox, validate first element in group instead
			if (this.checkable(element)) {
				element = this.findByName( element.name )[0];
			}
			
			var rules = $(element).rules();
			var dependencyMismatch = false;
			for( method in rules ) {
				var rule = { method: method, parameters: rules[method] };
				try {
					var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters );
					
					// if a method indicates that the field is optional and therefore valid,
					// don't mark it as valid when there are no other rules
					if ( result == "dependency-mismatch" ) {
						dependencyMismatch = true;
						continue;
					}
					dependencyMismatch = false;
					
					if ( result == "pending" ) {
						this.toHide = this.toHide.not( this.errorsFor(element) );
						return;
					}
					
					if( !result ) {
						this.formatAndAdd( element, rule );
						return false;
					}
				} catch(e) {
					this.settings.debug && window.console && console.log("exception occured when checking element " + element.id
						 + ", check the '" + rule.method + "' method");
					throw e;
				}
			}
			if (dependencyMismatch)
				return;
			if ( this.objectLength(rules) )
				this.successList.push(element);
			return true;
		},
		
		// return the custom message for the given element and validation method
		// specified in the element's "messages" metadata
		customMetaMessage: function(element, method) {
			if (!$.metadata)
				return;
			
			var meta = this.settings.meta
				? $(element).metadata()[this.settings.meta]
				: $(element).metadata();
			
			return meta && meta.messages && meta.messages[method];
		},
		
		// return the custom message for the given element name and validation method
		customMessage: function( name, method ) {
			var m = this.settings.messages[name];
			return m && (m.constructor == String
				? m
				: m[method]);
		},
		
		// return the first defined argument, allowing empty strings
		findDefined: function() {
			for(var i = 0; i < arguments.length; i++) {
				if (arguments[i] !== undefined)
					return arguments[i];
			}
			return undefined;
		},
		
		defaultMessage: function( element, method) {
			return this.findDefined(
				this.customMessage( element.name, method ),
				this.customMetaMessage( element, method ),
				// title is never undefined, so handle empty string as undefined
				!this.settings.ignoreTitle && element.title || undefined,
				$.validator.messages[method],
				"<strong>Warning: No message defined for " + element.name + "</strong>"
			);
		},
		
		formatAndAdd: function( element, rule ) {
			var message = this.defaultMessage( element, rule.method );
			if ( typeof message == "function" ) 
				message = message.call(this, rule.parameters, element);
			this.errorList.push({
				message: message,
				element: element
			});
			this.errorMap[element.name] = message;
			this.submitted[element.name] = message;
		},
		
		addWrapper: function(toToggle) {
			if ( this.settings.wrapper )
				toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );
			return toToggle;
		},
		
		defaultShowErrors: function() {
			for ( var i = 0; this.errorList[i]; i++ ) {
				var error = this.errorList[i];
				this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
				this.showLabel( error.element, error.message );
			}
			if( this.errorList.length ) {
				this.toShow = this.toShow.add( this.containers );
			}
			if (this.settings.success) {
				for ( var i = 0; this.successList[i]; i++ ) {
					this.showLabel( this.successList[i] );
				}
			}
			if (this.settings.unhighlight) {
				for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) {
					this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
				}
			}
			this.toHide = this.toHide.not( this.toShow );
			this.hideErrors();
			this.addWrapper( this.toShow ).show();
		},
		
		validElements: function() {
			return this.currentElements.not(this.invalidElements());
		},
		
		invalidElements: function() {
			return $(this.errorList).map(function() {
				return this.element;
			});
		},
		
		showLabel: function(element, message) {
			var label = this.errorsFor( element );
			if ( label.length ) {
				// refresh error/success class
				label.removeClass().addClass( this.settings.errorClass );
			
				// check if we have a generated label, replace the message then
				label.attr("generated") && label.html(message);
			} else {
				// create label
				label = $("<" + this.settings.errorElement + "/>")
					.attr({"for":  this.idOrName(element), generated: true})
					.addClass(this.settings.errorClass)
					.html(message || "");
				if ( this.settings.wrapper ) {
					// make sure the element is visible, even in IE
					// actually showing the wrapped element is handled elsewhere
					label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
				}
				if ( !this.labelContainer.append(label).length )
					this.settings.errorPlacement
						? this.settings.errorPlacement(label, $(element) )
						: label.insertAfter(element);
			}
			if ( !message && this.settings.success ) {
				label.text("");
				typeof this.settings.success == "string"
					? label.addClass( this.settings.success )
					: this.settings.success( label );
			}
			this.toShow = this.toShow.add(label);
		},
		
		errorsFor: function(element) {
			return this.errors().filter("[for='" + this.idOrName(element) + "']");
		},
		
		idOrName: function(element) {
			return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
		},

		checkable: function( element ) {
			return /radio|checkbox/i.test(element.type);
		},
		
		findByName: function( name ) {
			// select by name and filter by form for performance over form.find("[name=...]")
			var form = this.currentForm;
			return $(document.getElementsByName(name)).map(function(index, element) {
				return element.form == form && element.name == name && element  || null;
			});
		},
		
		getLength: function(value, element) {
			switch( element.nodeName.toLowerCase() ) {
			case 'select':
				return $("option:selected", element).length;
			case 'input':
				if( this.checkable( element) )
					return this.findByName(element.name).filter(':checked').length;
			}
			return value.length;
		},
	
		depend: function(param, element) {
			return this.dependTypes[typeof param]
				? this.dependTypes[typeof param](param, element)
				: true;
		},
	
		dependTypes: {
			"boolean": function(param, element) {
				return param;
			},
			"string": function(param, element) {
				return !!$(param, element.form).length;
			},
			"function": function(param, element) {
				return param(element);
			}
		},
		
		optional: function(element) {
			return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch";
		},
		
		startRequest: function(element) {
			if (!this.pending[element.name]) {
				this.pendingRequest++;
				this.pending[element.name] = true;
			}
		},
		
		stopRequest: function(element, valid) {
			this.pendingRequest--;
			// sometimes synchronization fails, make sure pendingRequest is never < 0
			if (this.pendingRequest < 0)
				this.pendingRequest = 0;
			delete this.pending[element.name];
			if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) {
				$(this.currentForm).submit();
			} else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
				$(this.currentForm).triggerHandler("invalid-form", [this]);
			}
		},
		
		previousValue: function(element) {
			return $.data(element, "previousValue") || $.data(element, "previousValue", previous = {
				old: null,
				valid: true,
				message: this.defaultMessage( element, "remote" )
			});
		}
		
	},
	
	classRuleSettings: {
		required: {required: true},
		email: {email: true},
		url: {url: true},
		date: {date: true},
		dateISO: {dateISO: true},
		dateDE: {dateDE: true},
		number: {number: true},
		numberDE: {numberDE: true},
		digits: {digits: true},
		creditcard: {creditcard: true}
	},
	
	addClassRules: function(className, rules) {
		className.constructor == String ?
			this.classRuleSettings[className] = rules :
			$.extend(this.classRuleSettings, className);
	},
	
	classRules: function(element) {
		var rules = {};
		var classes = $(element).attr('class');
		classes && $.each(classes.split(' '), function() {
			if (this in $.validator.classRuleSettings) {
				$.extend(rules, $.validator.classRuleSettings[this]);
			}
		});
		return rules;
	},
	
	attributeRules: function(element) {
		var rules = {};
		var $element = $(element);
		
		for (method in $.validator.methods) {
			var value = $element.attr(method);
			if (value) {
				rules[method] = value;
			}
		}
		
		// maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
		if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
			delete rules.maxlength;
		}
		
		return rules;
	},
	
	metadataRules: function(element) {
		if (!$.metadata) return {};
		
		var meta = $.data(element.form, 'validator').settings.meta;
		return meta ?
			$(element).metadata()[meta] :
			$(element).metadata();
	},
	
	staticRules: function(element) {
		var rules = {};
		var validator = $.data(element.form, 'validator');
		if (validator.settings.rules) {
			rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
		}
		return rules;
	},
	
	normalizeRules: function(rules, element) {
		// handle dependency check
		$.each(rules, function(prop, val) {
			// ignore rule when param is explicitly false, eg. required:false
			if (val === false) {
				delete rules[prop];
				return;
			}
			if (val.param || val.depends) {
				var keepRule = true;
				switch (typeof val.depends) {
					case "string":
						keepRule = !!$(val.depends, element.form).length;
						break;
					case "function":
						keepRule = val.depends.call(element, element);
						break;
				}
				if (keepRule) {
					rules[prop] = val.param !== undefined ? val.param : true;
				} else {
					delete rules[prop];
				}
			}
		});
		
		// evaluate parameters
		$.each(rules, function(rule, parameter) {
			rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
		});
		
		// clean number parameters
		$.each(['minlength', 'maxlength', 'min', 'max'], function() {
			if (rules[this]) {
				rules[this] = Number(rules[this]);
			}
		});
		$.each(['rangelength', 'range'], function() {
			if (rules[this]) {
				rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
			}
		});
		
		if ($.validator.autoCreateRanges) {
			// auto-create ranges
			if (rules.min && rules.max) {
				rules.range = [rules.min, rules.max];
				delete rules.min;
				delete rules.max;
			}
			if (rules.minlength && rules.maxlength) {
				rules.rangelength = [rules.minlength, rules.maxlength];
				delete rules.minlength;
				delete rules.maxlength;
			}
		}
		
		// To support custom messages in metadata ignore rule methods titled "messages"
		if (rules.messages) {
			delete rules.messages
		}
		
		return rules;
	},
	
	// Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
	normalizeRule: function(data) {
		if( typeof data == "string" ) {
			var transformed = {};
			$.each(data.split(/\s/), function() {
				transformed[this] = true;
			});
			data = transformed;
		}
		return data;
	},
	
	// http://docs.jquery.com/Plugins/Validation/Validator/addMethod
	addMethod: function(name, method, message) {
		$.validator.methods[name] = method;
		$.validator.messages[name] = message || $.validator.messages[name];
		if (method.length < 3) {
			$.validator.addClassRules(name, $.validator.normalizeRule(name));
		}
	},

	methods: {

		// http://docs.jquery.com/Plugins/Validation/Methods/required
		required: function(value, element, param) {
			// check if dependency is met
			if ( !this.depend(param, element) )
				return "dependency-mismatch";
			switch( element.nodeName.toLowerCase() ) {
			case 'select':
				var options = $("option:selected", element);
				return options.length > 0 && ( element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
			case 'input':
				if ( this.checkable(element) )
					return this.getLength(value, element) > 0;
			default:
				return $.trim(value).length > 0;
			}
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/remote
		remote: function(value, element, param) {
			if ( this.optional(element) )
				return "dependency-mismatch";
			
			var previous = this.previousValue(element);
			
			if (!this.settings.messages[element.name] )
				this.settings.messages[element.name] = {};
			this.settings.messages[element.name].remote = typeof previous.message == "function" ? previous.message(value) : previous.message;
			
			param = typeof param == "string" && {url:param} || param; 
			
			if ( previous.old !== value ) {
				previous.old = value;
				var validator = this;
				this.startRequest(element);
				var data = {};
				data[element.name] = value;
				$.ajax($.extend(true, {
					url: param,
					mode: "abort",
					port: "validate" + element.name,
					dataType: "json",
					data: data,
					success: function(response) {
						var valid = response === true;
						if ( valid ) {
							var submitted = validator.formSubmitted;
							validator.prepareElement(element);
							validator.formSubmitted = submitted;
							validator.successList.push(element);
							validator.showErrors();
						} else {
							var errors = {};
							errors[element.name] = previous.message = response || validator.defaultMessage( element, "remote" );
							validator.showErrors(errors);
						}
						previous.valid = valid;
						validator.stopRequest(element, valid);
					}
				}, param));
				return "pending";
			} else if( this.pending[element.name] ) {
				return "pending";
			}
			return previous.valid;
		},

		// http://docs.jquery.com/Plugins/Validation/Methods/minlength
		minlength: function(value, element, param) {
			return this.optional(element) || this.getLength($.trim(value), element) >= param;
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/maxlength
		maxlength: function(value, element, param) {
			return this.optional(element) || this.getLength($.trim(value), element) <= param;
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/rangelength
		rangelength: function(value, element, param) {
			var length = this.getLength($.trim(value), element);
			return this.optional(element) || ( length >= param[0] && length <= param[1] );
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/min
		min: function( value, element, param ) {
			return this.optional(element) || value >= param;
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/max
		max: function( value, element, param ) {
			return this.optional(element) || value <= param;
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/range
		range: function( value, element, param ) {
			return this.optional(element) || ( value >= param[0] && value <= param[1] );
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/email
		email: function(value, element) {
			// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
			return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/url
		url: function(value, element) {
			// contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
			return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
		},
        
		// http://docs.jquery.com/Plugins/Validation/Methods/date
		date: function(value, element) {
			return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/dateISO
		dateISO: function(value, element) {
			return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/dateDE
		dateDE: function(value, element) {
			return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/number
		number: function(value, element) {
			return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
		},
	
		// http://docs.jquery.com/Plugins/Validation/Methods/numberDE
		numberDE: function(value, element) {
			return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/digits
		digits: function(value, element) {
			return this.optional(element) || /^\d+$/.test(value);
		},
		
		// http://docs.jquery.com/Plugins/Validation/Methods/creditcard
		// based on http://en.wikipedia.org/wiki/Luhn
		creditcard: function(value, element) {
			if ( this.optional(element) )
				return "dependency-mismatch";
			// accept only digits and dashes
			if (/[^0-9-]+/.test(value))
				return false;
			var nCheck = 0,
				nDigit = 0,
				bEven = false;

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

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

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

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

})(jQuery);

// ajax mode: abort
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 
;(function($) {
	var ajax = $.ajax;
	var pendingRequests = {};
	$.ajax = function(settings) {
		// create settings for compatibility with ajaxSetup
		settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
		var port = settings.port;
		if (settings.mode == "abort") {
			if ( pendingRequests[port] ) {
				pendingRequests[port].abort();
			}
			return (pendingRequests[port] = ajax.apply(this, arguments));
		}
		return ajax.apply(this, arguments);
	};
})(jQuery);

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

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

// provides triggerEvent(type: String, target: Element) to trigger delegated events
;(function($) {
	$.each({
		focus: 'focusin',
		blur: 'focusout'	
	}, function( original, fix ){
		$.event.special[fix] = {
			setup:function() {
				if ( $.browser.msie ) return false;
				this.addEventListener( original, $.event.special[fix].handler, true );
			},
			teardown:function() {
				if ( $.browser.msie ) return false;
				this.removeEventListener( original,
				$.event.special[fix].handler, true );
			},
			handler: function(e) {
				arguments[0] = $.event.fix(e);
				arguments[0].type = fix;
				return $.event.handle.apply(this, arguments);
			}
		};
	});
	$.extend($.fn, {
		delegate: function(type, delegate, handler) {
			return this.bind(type, function(event) {
				var target = $(event.target);
				if (target.is(delegate)) {
					return handler.apply(target, arguments);
				}
			});
		},
		triggerEvent: function(type, target) {
			return this.triggerHandler(type, [$.event.fix({ type: type, target: target })]);
		}
	})
})(jQuery);

/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
$.browser.msie6 =
$.browser.msie
&& /MSIE 6\.0/i.test(window.navigator.userAgent)
&& !/MSIE 7\.0/i.test(window.navigator.userAgent);
		  
var tb_pathToImage = "/images/ajax-loader.gif";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
$(document).ready(function(){   
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
	$(domChunk).click(function(){
	var t = this.title || this.name || null;
	var a = this.href || this.alt;
	var g = this.rel || false;
	tb_show(t,a,g);
	this.blur();
	return false;
	});
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

	try {
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			$("body","html").css({height: "100%", width: "100%"});
			$("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
				$("#TB_overlay").click(tb_remove);
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
				$("#TB_overlay").click(tb_remove);
			}
		}
		
		if(tb_detectMacXFF()){
			$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
		}else{
			$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
		}
		
		if(caption===null){caption="";}
		$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
		$('#TB_load').show();//show loader
		
		var baseURL;
	   if(url.indexOf("?")!==-1){ //ff there is a query string involved
			baseURL = url.substr(0, url.indexOf("?"));
	   }else{ 
	   		baseURL = url;
	   }
	   
	   var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
	   var urlType = baseURL.toLowerCase().match(urlString);

		if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
				
			TB_PrevCaption = "";
			TB_PrevURL = "";
			TB_PrevHTML = "";
			TB_NextCaption = "";
			TB_NextURL = "";
			TB_NextHTML = "";
			TB_imageCount = "";
			TB_FoundURL = false;
			if(imageGroup){
				TB_TempArray = $("a[@rel="+imageGroup+"]").get();
				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
						if (!(TB_TempArray[TB_Counter].href == url)) {						
							if (TB_FoundURL) {
								TB_NextCaption = TB_TempArray[TB_Counter].title;
								TB_NextURL = TB_TempArray[TB_Counter].href;
								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Volgende&nbsp;&gt;</a></span>";
							} else {
								TB_PrevCaption = TB_TempArray[TB_Counter].title;
								TB_PrevURL = TB_TempArray[TB_Counter].href;
								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt;&nbsp;Vorige</a></span>";
							}
						} else {
							TB_FoundURL = true;
							TB_imageCount = "<span id='TB_count'>" + (TB_Counter + 1) +" van "+ (TB_TempArray.length) +"</span>";											
						}
				}
			}

			imgPreloader = new Image();
			imgPreloader.onload = function(){		
			imgPreloader.onload = null;
				
			// Resizing large images - orginal by Christian Montoya edited by me.
			var pagesize = tb_getPageSize();
			var x = pagesize[0] - 150;
			var y = pagesize[1] - 150;
			var imageWidth = imgPreloader.width;
			var imageHeight = imgPreloader.height;
			if (imageWidth > x) {
				imageHeight = imageHeight * (x / imageWidth); 
				imageWidth = x; 
				if (imageHeight > y) { 
					imageWidth = imageWidth * (y / imageHeight); 
					imageHeight = y; 
				}
			} else if (imageHeight > y) { 
				imageWidth = imageWidth * (y / imageHeight); 
				imageHeight = y; 
				if (imageWidth > x) { 
					imageHeight = imageHeight * (x / imageWidth); 
					imageWidth = x;
				}
			}
			// End Resizing
			
			TB_WIDTH = imageWidth + 30;
			TB_HEIGHT = imageHeight + 60;
			$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close window'>Close</a></div></div><a href='' id='TB_ImageOff' title='Close window'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'><div id='TB_secondLine'>" + TB_PrevHTML + TB_NextHTML + TB_imageCount + "</div></div>"); 		
			
			$("#TB_closeWindowButton").click(tb_remove);
			
			if (!(TB_PrevHTML === "")) {
				function goPrev(){
					if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
					$("#TB_window").remove();
					$("body").append("<div id='TB_window'></div>");
					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
					return false;	
				}
				$("#TB_prev").click(goPrev);
			}
			
			if (!(TB_NextHTML === "")) {		
				function goNext(){
					$("#TB_window").remove();
					$("body").append("<div id='TB_window'></div>");
					tb_show(TB_NextCaption, TB_NextURL, imageGroup);				
					return false;	
				}
				$("#TB_next").click(goNext);
				
			}

			document.onkeydown = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				} else if(keycode == 190){ // display previous image
					if(!(TB_NextHTML == "")){
						document.onkeydown = "";
						goNext();
					}
				} else if(keycode == 188){ // display next image
					if(!(TB_PrevHTML == "")){
						document.onkeydown = "";
						goPrev();
					}
				}	
			};
			
			tb_position();
			$("#TB_load").remove();
			$("#TB_ImageOff").click(tb_remove);
			$("#TB_window").css({display:"block"}); //for safari using css instead of show
			};
			
			imgPreloader.src = url;
		}else{//code to show html
			
			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = tb_parseQuery( queryString );

			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
			ajaxContentW = TB_WIDTH - 30;
			ajaxContentH = TB_HEIGHT - 45;
			
			if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window		
					urlNoQuery = url.split('TB_');
					$("#TB_iframeContent").remove();
					if(params['modal'] != "true"){//iframe no modal
						$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close window'>Close window</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
					}else{//iframe modal
					$("#TB_overlay").unbind();
						$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
					}
			}else{// not an iframe, ajax
					if($("#TB_window").css("display") != "block"){
						if(params['modal'] != "true"){//ajax no modal
						$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>Close window</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
						}else{//ajax modal
						$("#TB_overlay").unbind();
						$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	
						}
					}else{//this means the window is already up, we are just loading new content via ajax
						$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
						$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
						$("#TB_ajaxContent")[0].scrollTop = 0;
						$("#TB_ajaxWindowTitle").html(caption);
					}
			}
					
			$("#TB_closeWindowButton").click(tb_remove);
			
				if(url.indexOf('TB_inline') != -1){	
					$("#TB_ajaxContent").append($('#' + params['inlineId']).children());
					$("#TB_window").unload(function () {
						$('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished
					});
					tb_position();
					$("#TB_load").remove();
					$("#TB_window").css({display:"block"}); 
				}else if(url.indexOf('TB_iframe') != -1){
					tb_position();
					if($.browser.safari){//safari needs help because it will not fire iframe onload
						$("#TB_load").remove();
						$("#TB_window").css({display:"block"});
					}
				}else{
					$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
						tb_position();
						$("#TB_load").remove();
						tb_init("#TB_ajaxContent a.thickbox");
						$("#TB_window").css({display:"block"});
					});
				}
			
		}

		if(!params['modal']){
			document.onkeyup = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				}	
			};
		}
		
	} catch(e) {
		//nothing here
	}
}

//helper functions below
function tb_showIframe(){
	$("#TB_load").remove();
	$("#TB_window").css({display:"block"});
}

function tb_remove() {
 	$("#TB_imageOff").unbind("click");
	$("#TB_closeWindowButton").unbind("click");
	$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
	$("#TB_load").remove();
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		$("body","html").css({height: "auto", width: "auto"});
		$("html").css("overflow","");
	}
	document.onkeydown = "";
	document.onkeyup = "";
	return false;
}

function tb_position() {
$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
	if ( !(jQuery.browser.msie6 && jQuery.browser.version < 7)) { // take away IE6
		$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
	}
}

function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function tb_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}

function tb_detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}



/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 */
var Cufon=(function(){var L=function(){return L.replace.apply(null,arguments)};var W=L.DOM={ready:(function(){var b=false,d={loaded:1,complete:1};var a=[],c=function(){if(b){return}b=true;for(var e;e=a.shift();e()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",c,false);window.addEventListener("pageshow",c,false)}if(!window.opera&&document.readyState){(function(){d[document.readyState]?c():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");c()}catch(f){setTimeout(arguments.callee,1)}})()}P(window,"load",c);return function(e){if(!arguments.length){c()}else{b?e():a.push(e)}}})()};var M=L.CSS={Size:function(b,a){this.value=parseFloat(b);this.unit=String(b).match(/[a-z%]*$/)[0]||"px";this.convert=function(c){return c/a*this.value};this.convertFrom=function(c){return c/this.value*a};this.toString=function(){return this.value+this.unit}},color:I(function(b){var a={};a.color=b.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(d,c,e){a.opacity=parseFloat(e);return"rgb("+c+")"});return a}),getStyle:function(b){var a=document.defaultView;if(a&&a.getComputedStyle){return new A(a.getComputedStyle(b,null))}if(b.currentStyle){return new A(b.currentStyle)}return new A(b.style)},gradient:I(function(e){var f={id:e,type:e.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},b=e.substr(e.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var d=0,a=b.length,c;d<a;++d){c=b[d].split("=",2).reverse();f.stops.push([c[1]||d/(a-1),c[0]])}return f}),quotedList:I(function(d){var c=[],b=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,a;while(a=b.exec(d)){c.push(a[3]||a[1])}return c}),recognizesMedia:I(function(d){var c=document.createElement("style"),b,a;c.type="text/css";c.media=d;b=F("head")[0];b.insertBefore(c,b.firstChild);a=!!(c.sheet||c.styleSheet);b.removeChild(c);return a}),supports:function(c,b){var a=document.createElement("span").style;if(a[c]===undefined){return false}a[c]=b;return a[c]===b},textAlign:function(d,c,a,b){if(c.get("textAlign")=="right"){if(a>0){d=" "+d}}else{if(a<b-1){d+=" "}}return d},textDecoration:function(f,e){if(!e){e=this.getStyle(f)}var b={underline:null,overline:null,"line-through":null};for(var a=f;a.parentNode&&a.parentNode.nodeType==1;){var d=true;for(var c in b){if(!J(b,c)||b[c]){continue}if(e.get("textDecoration").indexOf(c)!=-1){b[c]=e.get("color")}d=false}if(d){break}e=this.getStyle(a=a.parentNode)}return b},textShadow:I(function(e){if(e=="none"){return null}var d=[],f={},a,b=0;var c=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(a=c.exec(e)){if(a[0]==","){d.push(f);f={},b=0}else{if(a[1]){f.color=a[1]}else{f[["offX","offY","blur"][b++]]=a[2]}}}d.push(f);return d}),textTransform:function(b,a){return b[{uppercase:"toUpperCase",lowercase:"toLowerCase"}[a.get("textTransform")]||"toString"]()},whiteSpace:(function(){var a={inline:1,"inline-block":1,"run-in":1};return function(d,b,c){if(a[b.get("display")]){return d}if(!c.previousSibling){d=d.replace(/^\s+/,"")}if(!c.nextSibling){d=d.replace(/\s+$/,"")}return d}})()};M.ready=(function(){var c=!M.recognizesMedia("all"),b=false;var a=[],e=function(){c=true;for(var h;h=a.shift();h()){}};var f=F("link"),g={stylesheet:1};function d(){var j,h,k;for(h=0;k=f[h];++h){if(k.disabled||!g[k.rel.toLowerCase()]||!M.recognizesMedia(k.media||"screen")){continue}j=k.sheet||k.styleSheet;if(!j||j.disabled){return false}}return true}W.ready(function(){if(!b){b=M.getStyle(document.body).isUsable()}if(c||(b&&d())){e()}else{setTimeout(arguments.callee,10)}});return function(h){if(c){h()}else{a.push(h)}}})();function R(b){var a=this.face=b.face;this.glyphs=b.glyphs;this.w=b.w;this.baseSize=parseInt(a["units-per-em"],10);this.family=a["font-family"].toLowerCase();this.weight=a["font-weight"];this.style=a["font-style"]||"normal";this.viewBox=(function(){var d=a.bbox.split(/\s+/);var c={minX:parseInt(d[0],10),minY:parseInt(d[1],10),maxX:parseInt(d[2],10),maxY:parseInt(d[3],10)};c.width=c.maxX-c.minX,c.height=c.maxY-c.minY;c.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return c})();this.ascent=-parseInt(a.ascent,10);this.descent=-parseInt(a.descent,10);this.height=-this.ascent+this.descent}function E(){var b={},a={oblique:"italic",italic:"oblique"};this.add=function(c){(b[c.style]||(b[c.style]={}))[c.weight]=c};this.get=function(g,h){var f=b[g]||b[a[g]]||b.normal||b.italic||b.oblique;if(!f){return null}h={normal:400,bold:700}[h]||parseInt(h,10);if(f[h]){return f[h]}var d={1:1,99:0}[h%100],j=[],e,c;if(d===undefined){d=h>400}if(h==500){h=400}for(var i in f){if(!J(f,i)){continue}i=parseInt(i,10);if(!e||i<e){e=i}if(!c||i>c){c=i}j.push(i)}if(h<e){h=e}if(h>c){h=c}j.sort(function(l,k){return(d?(l>h&&k>h)?l<k:l>k:(l<h&&k<h)?l>k:l<k)?-1:1});return f[j[0]]}}function Q(){function c(e,f){if(e.contains){return e.contains(f)}return e.compareDocumentPosition(f)&16}function a(g){var f=g.relatedTarget;if(!f||c(this,f)){return}b(this)}function d(f){b(this)}function b(e){setTimeout(function(){L.replace(e,D.get(e).options,true)},10)}this.attach=function(e){if(e.onmouseenter===undefined){P(e,"mouseover",a);P(e,"mouseout",a)}else{P(e,"mouseenter",d);P(e,"mouseleave",d)}}}function T(){var b=[],c={};function a(g){var d=[],f;for(var e=0;f=g[e];++e){d[e]=b[c[f]]}return d}this.add=function(e,d){c[e]=b.push(d)-1};this.repeat=function(){var d=arguments.length?a(arguments):b,e;for(var f=0;e=d[f++];){L.replace(e[0],e[1],true)}}}function Z(){var c={},a=0;function b(d){return d.cufid||(d.cufid=++a)}this.get=function(d){var e=b(d);return c[e]||(c[e]={})}}function A(a){var c={},b={};this.extend=function(d){for(var e in d){if(J(d,e)){c[e]=d[e]}}return this};this.get=function(d){return c[d]!=undefined?c[d]:a[d]};this.getSize=function(e,d){return b[e]||(b[e]=new M.Size(this.get(e),d))};this.isUsable=function(){return !!a}}function P(b,a,c){if(b.addEventListener){b.addEventListener(a,c,false)}else{if(b.attachEvent){b.attachEvent("on"+a,function(){return c.call(b,window.event)})}}}function U(b,a){var c=D.get(b);if(c.options){return b}if(a.hover&&a.hoverables[b.nodeName.toLowerCase()]){B.attach(b)}c.options=a;return b}function I(a){var b={};return function(c){if(!J(b,c)){b[c]=a.apply(null,arguments)}return b[c]}}function C(f,e){if(!e){e=M.getStyle(f)}var b=M.quotedList(e.get("fontFamily").toLowerCase()),d;for(var c=0,a=b.length;c<a;++c){d=b[c];if(H[d]){return H[d].get(e.get("fontStyle"),e.get("fontWeight"))}}return null}function F(a){return document.getElementsByTagName(a)}function J(b,a){return b.hasOwnProperty(a)}function G(){var a={},c,e;for(var d=0,b=arguments.length;c=arguments[d],d<b;++d){for(e in c){if(J(c,e)){a[e]=c[e]}}}return a}function N(d,n,b,o,e,c){var m=o.separate;if(m=="none"){return Y[o.engine].apply(null,arguments)}var k=document.createDocumentFragment(),g;var h=n.split(O[m]),a=(m=="words");if(a&&S){if(/^\s/.test(n)){h.unshift("")}if(/\s$/.test(n)){h.push("")}}for(var j=0,f=h.length;j<f;++j){g=Y[o.engine](d,a?M.textAlign(h[j],b,j,f):h[j],b,o,e,c,j<f-1);if(g){k.appendChild(g)}}return k}function K(b,j){var c,a,d,g,f,i;for(d=U(b,j).firstChild;d;d=f){g=d.nodeType;f=d.nextSibling;i=false;if(g==1){if(!d.firstChild){continue}if(!/cufon/.test(d.className)){arguments.callee(d,j);continue}else{i=true}}else{if(g!=3){continue}}if(!a){a=M.getStyle(b).extend(j)}if(!c){c=C(b,a)}if(!c){continue}if(i){Y[j.engine](c,null,a,j,d,b);continue}var h=M.whiteSpace(d.data,a,d);if(h===""){continue}var e=N(c,h,a,j,d,b);if(e){d.parentNode.replaceChild(e,d)}else{d.parentNode.removeChild(d)}}}var S=" ".split(/\s+/).length==0;var D=new Z();var B=new Q();var X=new T();var Y={},H={},V={enableTextDecoration:false,engine:null,hover:false,hoverables:{a:true},printable:true,selector:(window.Sizzle||(window.jQuery&&function(a){return jQuery(a)})||(window.dojo&&dojo.query)||(window.$$&&function(a){return $$(a)})||(window.$&&function(a){return $(a)})||(document.querySelectorAll&&function(a){return document.querySelectorAll(a)})||F),separate:"words",textShadow:"none"};var O={words:/[^\S\u00a0]+/,characters:""};L.now=function(){W.ready();return L};L.refresh=function(){X.repeat.apply(X,arguments);return L};L.registerEngine=function(b,a){if(!a){return L}Y[b]=a;return L.set("engine",b)};L.registerFont=function(c){var a=new R(c),b=a.family;if(!H[b]){H[b]=new E()}H[b].add(a);return L.set("fontFamily",'"'+b+'"')};L.replace=function(c,b,a){b=G(V,b);if(!b.engine){return L}if(typeof b.textShadow=="string"){b.textShadow=M.textShadow(b.textShadow)}if(typeof b.color=="string"&&/^-/.test(b.color)){b.textGradient=M.gradient(b.color)}if(!a){X.add(c,arguments)}if(c.nodeType||typeof c=="string"){c=[c]}M.ready(function(){for(var e=0,d=c.length;e<d;++e){var f=c[e];if(typeof f=="string"){L.replace(b.selector(f),b,true)}else{K(f,b)}}});return L};L.set=function(a,b){V[a]=b;return L};return L})();Cufon.registerEngine("canvas",(function(){var B=document.createElement("canvas");if(!B||!B.getContext||!B.getContext.apply){return}B=null;var A=Cufon.CSS.supports("display","inline-block");var E=!A&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var F=document.createElement("style");F.type="text/css";F.appendChild(document.createTextNode(".cufon-canvas{text-indent:0}@media screen,projection{.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle"+(E?"":";font-size:1px;line-height:1px")+"}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden}"+(A?".cufon-canvas canvas{position:relative}":".cufon-canvas canvas{position:absolute}")+"}@media print{.cufon-canvas{padding:0 !important}.cufon-canvas canvas{display:none}.cufon-canvas .cufon-alt{display:inline}}"));document.getElementsByTagName("head")[0].appendChild(F);function D(O,H){var M=0,L=0;var G=[],N=/([mrvxe])([^a-z]*)/g,J;generate:for(var I=0;J=N.exec(O);++I){var K=J[2].split(",");switch(J[1]){case"v":G[I]={m:"bezierCurveTo",a:[M+~~K[0],L+~~K[1],M+~~K[2],L+~~K[3],M+=~~K[4],L+=~~K[5]]};break;case"r":G[I]={m:"lineTo",a:[M+=~~K[0],L+=~~K[1]]};break;case"m":G[I]={m:"moveTo",a:[M=~~K[0],L=~~K[1]]};break;case"x":G[I]={m:"closePath"};break;case"e":break generate}H[G[I].m].apply(H,G[I].a)}return G}function C(K,J){for(var I=0,H=K.length;I<H;++I){var G=K[I];J[G.m].apply(J,G.a)}}return function(AD,Z,u,V,d,AE){var I=(Z===null);if(I){Z=d.alt}var b=AD.viewBox;var K=u.getSize("fontSize",AD.baseSize);var s=u.get("letterSpacing");s=(s=="normal")?0:K.convertFrom(parseInt(s,10));var c=0,t=0,r=0,X=0;var a=V.textShadow,p=[];if(a){for(var AC=a.length;AC--;){var h=a[AC];var o=K.convertFrom(parseFloat(h.offX));var n=K.convertFrom(parseFloat(h.offY));p[AC]=[o,n];if(n<c){c=n}if(o>t){t=o}if(n>r){r=n}if(o<X){X=o}}}var AH=Cufon.CSS.textTransform(Z,u).split(""),T;var J=AD.glyphs,W,M,w;var G=0,P,f=[];for(var AC=0,AA=0,v=AH.length;AC<v;++AC){W=J[T=AH[AC]]||AD.missingGlyph;if(!W){continue}if(M){G-=w=M[T]||0;f[AA-1]-=w}G+=P=f[AA++]=~~(W.w||AD.w)+s;M=W.k}if(P===undefined){return null}t+=b.width-P;X+=b.minX;var U,L;if(I){U=d;L=d.firstChild}else{U=document.createElement("span");U.className="cufon cufon-canvas";U.alt=Z;L=document.createElement("canvas");U.appendChild(L);if(V.printable){var z=document.createElement("span");z.className="cufon-alt";z.appendChild(document.createTextNode(Z));U.appendChild(z)}}var AI=U.style;var m=L.style;var H=K.convert(b.height);var AG=Math.ceil(H);var q=AG/H;L.width=Math.ceil(K.convert(G*q+t-X));L.height=Math.ceil(K.convert(b.height-c+r));c+=b.minY;m.top=Math.round(K.convert(c-AD.ascent))+"px";m.left=Math.round(K.convert(X))+"px";var S=Math.ceil(K.convert(G*q))+"px";if(A){AI.width=S;AI.height=K.convert(AD.height)+"px"}else{AI.paddingLeft=S;AI.paddingBottom=(K.convert(AD.height)-1)+"px"}var AF=L.getContext("2d"),e=H/b.height;AF.scale(e,e*q);AF.translate(-X,-c);AF.lineWidth=AD.face["underline-thickness"];AF.save();function N(i,g){AF.strokeStyle=g;AF.beginPath();AF.moveTo(0,i);AF.lineTo(G,i);AF.stroke()}var O=V.enableTextDecoration?Cufon.CSS.textDecoration(AE,u):{};if(O.underline){N(-AD.face["underline-position"],O.underline)}if(O.overline){N(AD.ascent,O.overline)}function AB(){AF.scale(q,1);for(var x=0,k=0,g=AH.length;x<g;++x){var y=J[AH[x]]||AD.missingGlyph;if(!y){continue}if(y.d){AF.beginPath();if(y.code){C(y.code,AF)}else{y.code=D("m"+y.d,AF)}AF.fill()}AF.translate(f[k++],0)}AF.restore()}if(a){for(var AC=a.length;AC--;){var h=a[AC];AF.save();AF.fillStyle=h.color;AF.translate.apply(AF,p[AC]);AB()}}var R=V.textGradient;if(R){var Y=R.stops,Q=AF.createLinearGradient(0,b.minY,0,b.maxY);for(var AC=0,v=Y.length;AC<v;++AC){Q.addColorStop.apply(Q,Y[AC])}AF.fillStyle=Q}else{AF.fillStyle=u.get("color")}AB();if(O["line-through"]){N(-AD.descent,O["line-through"])}return U}})());Cufon.registerEngine("vml",(function(){if(!document.namespaces){return}if(document.namespaces.cvml==null){document.namespaces.add("cvml","urn:schemas-microsoft-com:vml")}var B=document.createElement("cvml:shape");B.style.behavior="url(#default#VML)";if(!B.coordsize){return}B=null;document.write('<style type="text/css">.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}</style>');function C(F,G){return A(F,/(?:em|ex|%)$/i.test(G)?"1em":G)}function A(I,J){if(/px$/i.test(J)){return parseFloat(J)}var H=I.style.left,G=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;I.style.left=J;var F=I.style.pixelLeft;I.style.left=H;I.runtimeStyle.left=G;return F}var E={};function D(K){var L=K.id;if(!E[L]){var I=K.stops,J=document.createElement("cvml:fill"),F=[];J.type="gradient";J.angle=180;J.focus="0";J.method="sigma";J.color=I[0][1];for(var H=1,G=I.length-1;H<G;++H){F.push(I[H][0]*100+"% "+I[H][1])}J.colors=F.join(",");J.color2=I[G][1];E[L]=J}return E[L]}return function(AB,b,v,Y,f,AC,t){var I=(b===null);if(I){b=f.alt}var d=AB.viewBox;var K=v.computedFontSize||(v.computedFontSize=new Cufon.CSS.Size(C(AC,v.get("fontSize"))+"px",AB.baseSize));var s=v.computedLSpacing;if(s==undefined){s=v.get("letterSpacing");v.computedLSpacing=s=(s=="normal")?0:~~K.convertFrom(A(AC,s))}var V,L;if(I){V=f;L=f.firstChild}else{V=document.createElement("span");V.className="cufon cufon-vml";V.alt=b;L=document.createElement("span");L.className="cufon-vml-canvas";V.appendChild(L);if(Y.printable){var y=document.createElement("span");y.className="cufon-alt";y.appendChild(document.createTextNode(b));V.appendChild(y)}if(!t){V.appendChild(document.createElement("cvml:shape"))}}var AH=V.style;var n=L.style;var G=K.convert(d.height),AE=Math.ceil(G);var r=AE/G;var q=d.minX,p=d.minY;n.height=AE;n.top=Math.round(K.convert(p-AB.ascent));n.left=Math.round(K.convert(q));AH.height=K.convert(AB.height)+"px";var P=Y.enableTextDecoration?Cufon.CSS.textDecoration(AC,v):{};var a=v.get("color");var AG=Cufon.CSS.textTransform(b,v).split(""),U;var J=AB.glyphs,Z,M,x;var F=0,g=[],o=0,Q;var S,c=Y.textShadow;for(var AA=0,z=0,w=AG.length;AA<w;++AA){Z=J[U=AG[AA]]||AB.missingGlyph;if(!Z){continue}if(M){F-=x=M[U]||0;g[z-1]-=x}F+=Q=g[z++]=~~(Z.w||AB.w)+s;M=Z.k}if(Q===undefined){return null}var T=-q+F+(d.width-Q);var AF=K.convert(T*r),u=Math.round(AF);var m=T+","+d.height,H;var e="r"+m+"ns";var R=Y.textGradient&&D(Y.textGradient);for(AA=0,z=0;AA<w;++AA){Z=J[AG[AA]]||AB.missingGlyph;if(!Z){continue}if(I){S=L.childNodes[z];while(S.firstChild){S.removeChild(S.firstChild)}}else{S=document.createElement("cvml:shape");L.appendChild(S)}S.stroked="f";S.coordsize=m;S.coordorigin=H=(q-o)+","+p;S.path=(Z.d?"m"+Z.d+"xe":"")+"m"+H+e;S.fillcolor=a;if(R){S.appendChild(R.cloneNode(false))}var AD=S.style;AD.width=u;AD.height=AE;if(c){var O=c[0],N=c[1];var X=Cufon.CSS.color(O.color),W;var h=document.createElement("cvml:shadow");h.on="t";h.color=X.color;h.offset=O.offX+","+O.offY;if(N){W=Cufon.CSS.color(N.color);h.type="double";h.color2=W.color;h.offset2=N.offX+","+N.offY}h.opacity=X.opacity||(W&&W.opacity)||1;S.appendChild(h)}o+=g[z++]}AH.width=Math.max(Math.ceil(K.convert(F*r)),0);return V}})());
Cufon.registerFont({"w":201,"face":{"font-family":"NimbusSanNovTBolRo1","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"0 0 0 0 0 0 0 0 0 0","ascent":"288","descent":"-72","x-height":"5","bbox":"-9.77373 -333 319.607 74.0626","underline-thickness":"30.9375","underline-position":"-20.918","unicode-range":"U+0020-U+00FF"},"glyphs":{" ":{"w":90},"!":{"d":"36,-233v8,-13,57,-14,50,9v1,55,-5,102,-14,148v-10,6,-28,5,-25,-12v-5,-47,-13,-91,-11,-145xm35,-45v11,-11,57,-15,52,9v-3,16,7,40,-16,36v-15,-2,-36,8,-36,-16r0,-29","w":114},"\"":{"d":"108,-144v-11,2,-23,2,-21,-14r-7,-72v0,-11,13,-10,25,-10v15,0,17,5,15,16r-6,66v0,10,-2,11,-6,14xm43,-144v-12,2,-23,1,-21,-14r-7,-72v0,-11,13,-10,25,-10v15,0,16,4,15,16r-6,66v0,10,-2,11,-6,14","w":136},"#":{"d":"175,-104v12,5,8,34,-10,29r-26,0r-7,46v-1,13,-4,16,-17,15v-26,-1,-4,-41,-6,-61r-32,0v-8,20,6,62,-23,61v-28,-1,-5,-41,-7,-61v-13,-1,-33,4,-35,-9v-3,-25,18,-20,40,-20r4,-30v-13,-1,-35,5,-36,-9v-2,-24,17,-21,40,-20v3,-16,4,-40,9,-53v9,-7,35,-4,26,14r-5,39r31,0v9,-21,-7,-62,30,-56v15,9,0,39,0,56v14,2,37,-6,39,9v3,24,-20,21,-43,20r-4,30r32,0xm117,-134r-31,0r-5,30r32,0"},"$":{"d":"183,-179v0,16,-48,15,-45,-1v-3,-13,-12,-21,-28,-23r0,61v44,11,82,23,81,72v-1,45,-32,73,-81,74v-1,13,4,35,-9,33v-15,1,-9,-19,-10,-33v-49,-3,-76,-25,-82,-70v-2,-14,27,-10,40,-9v5,1,7,5,7,11v3,19,14,29,35,31r0,-69v-43,-12,-76,-21,-76,-69v0,-41,31,-66,76,-67v1,-13,-4,-31,10,-29v12,-2,9,16,9,29v41,2,73,20,73,59xm91,-203v-30,0,-40,28,-25,46v5,5,13,8,25,11r0,-57xm110,-33v35,0,46,-39,22,-56v-4,-2,-16,-7,-22,-8r0,64"},"%":{"d":"200,-241v13,-7,32,3,19,18r-122,231v-16,4,-29,-1,-20,-18xm176,-59v0,-43,19,-68,58,-68v36,0,55,24,55,64v0,41,-19,68,-56,68v-38,0,-57,-25,-57,-64xm255,-62v0,-22,-3,-40,-22,-40v-19,0,-22,17,-22,42v0,23,2,40,21,40v20,0,23,-18,23,-42xm12,-173v0,-40,19,-65,58,-65v36,1,55,25,55,64v0,41,-18,67,-56,67v-38,0,-57,-25,-57,-66xm68,-131v29,1,25,-52,18,-73v-21,-23,-42,0,-40,33v2,23,2,39,22,40","w":301},"&":{"d":"161,-88v4,-16,12,-38,41,-27v20,7,-7,45,-14,58v12,16,29,31,38,48v-2,14,-45,13,-55,1r-13,-16v-36,50,-145,33,-145,-42v0,-32,27,-60,54,-71v-41,-35,-21,-106,42,-106v34,0,63,24,62,57v0,26,-14,46,-41,60xm109,-209v-29,-1,-25,39,-7,50v3,4,4,5,4,5v14,-8,24,-16,25,-33v0,-12,-9,-23,-22,-22xm92,-106v-38,9,-45,70,1,71v15,0,28,-7,40,-21","w":238},"'":{"d":"43,-144v-12,2,-23,1,-21,-14r-7,-72v0,-11,13,-10,25,-10v15,0,17,5,15,16r-6,66v0,10,-2,11,-6,14","w":71},"(":{"d":"91,-231v-38,75,-42,212,0,284v0,12,-21,9,-32,8v-57,-67,-63,-222,-1,-300v9,-1,34,-5,33,8","w":112},")":{"d":"21,53v40,-73,42,-213,0,-284v0,-12,18,-9,32,-9v58,68,65,228,-1,302v-13,0,-31,2,-31,-9","w":112},"*":{"d":"138,-207v16,-11,25,11,18,21v-8,5,-24,8,-34,12v6,9,18,21,21,31v-2,13,-22,23,-27,6r-16,-22v-9,9,-12,27,-26,31v-7,0,-25,-14,-11,-25r16,-21v-12,-6,-33,-5,-37,-18v2,-10,7,-25,21,-15r24,9v3,-17,-9,-45,14,-42v22,-3,10,25,13,42"},"+":{"d":"18,-122v4,-23,45,-7,67,-12v6,-23,-18,-70,20,-66v24,3,7,45,12,66v25,5,71,-16,67,21v-3,23,-45,8,-67,12v-5,24,16,71,-21,66v-22,-3,-7,-45,-11,-66v-26,-4,-73,14,-67,-21"},",":{"d":"30,0v-11,-10,-15,-57,9,-53v17,3,38,-7,38,16v0,48,-6,85,-45,90v-11,2,-12,-18,-5,-21v8,-4,22,-17,20,-32r-17,0","w":100,"k":{"1":33}},"-":{"d":"16,-111v24,3,63,-7,75,7v-1,16,6,40,-15,36v-24,-3,-64,8,-76,-7v1,-17,-6,-39,16,-36","w":91,"k":{"\u00c1":-8,"\u00c6":-6,"\u00c5":-8,"\u00c4":-8,"Y":13,"W":-5,"V":-1,"T":14,"A":-8}},".":{"d":"23,-38v-4,-25,49,-18,54,-9v-3,17,11,50,-15,47v-16,-2,-43,8,-39,-16r0,-22","w":100,"k":{"1":33}},"\/":{"d":"98,-234v8,-20,46,-8,37,15r-101,274v-5,17,-41,12,-38,-8v0,-10,2,-9,6,-21","w":154},"0":{"d":"14,-117v0,-69,23,-121,88,-121v62,0,85,55,85,121v-1,68,-22,121,-85,121v-63,0,-88,-55,-88,-121xm140,-117v0,-42,-4,-82,-39,-82v-36,0,-40,40,-40,85v1,42,4,75,40,79v34,-4,39,-38,39,-82","k":{"7":12,"4":2,"1":16}},"1":{"d":"142,-16v3,23,-21,14,-42,16v-5,-3,-6,-7,-6,-16r0,-139v-22,-3,-61,14,-57,-19v-3,-26,31,-11,43,-24v16,-7,18,-23,26,-37v17,1,36,-8,36,15r0,204","k":{"9":16,"8":16,"7":28,"6":17,"5":17,"4":24,"3":18,"2":19,"1":36,"0":16,".":16,",":16}},"2":{"d":"104,-238v76,0,106,93,49,135v-27,20,-60,35,-80,63r101,-1v16,-2,10,18,11,34v-1,6,-7,8,-15,7r-141,0v-32,0,-8,-43,0,-56v18,-30,72,-49,100,-83v18,-22,3,-57,-27,-57v-29,0,-34,28,-41,49v-9,2,-44,9,-43,-9v4,-49,37,-82,86,-82","k":{"7":9,"4":11,"1":15}},"3":{"d":"83,-123v0,-13,1,-18,15,-18v20,0,34,-10,34,-29v0,-19,-14,-28,-33,-29v-24,-2,-31,20,-39,38v-10,2,-41,8,-41,-8v0,-88,159,-92,159,-5v0,23,-13,42,-33,47v25,5,42,26,42,55v0,45,-40,76,-88,76v-50,0,-82,-28,-87,-75v-1,-13,17,-11,31,-11v10,1,14,0,15,9v1,48,80,46,79,1v0,-24,-20,-39,-45,-35v-7,-1,-9,-4,-9,-16","k":{"7":11,"4":1,"1":18}},"4":{"d":"190,-78v4,22,-7,27,-30,24v-2,29,11,67,-40,54v-14,-4,-4,-36,-7,-54r-94,0v-9,-6,-10,-40,-1,-52r98,-129v13,0,44,-10,44,15r0,126v16,1,33,-4,30,16xm114,-93r0,-92v-20,36,-40,62,-63,92r63,0","k":{"7":18,"1":27}},"5":{"d":"39,-220v0,-12,4,-15,16,-14r111,0v11,3,14,48,-9,41r-81,0r-10,52v42,-40,120,-7,120,60v0,48,-39,86,-89,85v-46,-1,-80,-23,-85,-64v-2,-15,39,-13,47,-5v10,48,83,33,78,-15v5,-42,-52,-59,-73,-28v-9,7,-48,11,-43,-14","k":{"7":12,"4":2,"1":26}},"6":{"d":"166,-175v-38,7,-31,-28,-59,-26v-29,2,-44,32,-45,70v34,-53,126,-21,126,51v0,48,-37,85,-83,84v-62,-2,-90,-48,-89,-117v1,-72,24,-122,92,-125v38,-1,68,22,74,54v-1,7,-3,10,-16,9xm104,-35v32,0,48,-46,29,-72v-20,-30,-66,-10,-66,28v0,23,14,44,37,44","k":{"7":9,"1":16}},"7":{"d":"54,-10v8,-71,43,-141,80,-182r-107,1v-11,-4,-14,-50,9,-43r139,0v11,3,4,25,6,40v-41,42,-73,107,-77,187v-3,11,-48,13,-50,-3","k":{":":23,"7":8,"6":14,"4":30,"1":20,".":33,",":33}},"8":{"d":"12,-68v-1,-29,19,-51,44,-58v-69,-28,-23,-112,45,-112v42,0,79,24,79,63v0,25,-14,42,-34,49v82,29,36,130,-45,130v-49,0,-88,-26,-89,-72xm137,-172v0,-19,-15,-30,-36,-30v-20,0,-36,11,-36,30v0,21,15,32,36,32v21,0,36,-12,36,-32xm142,-70v1,-23,-17,-38,-41,-38v-23,0,-42,15,-41,37v0,23,17,38,41,38v25,0,40,-16,41,-37","k":{"7":10,"1":17}},"9":{"d":"35,-60v40,-6,30,30,60,27v36,-3,39,-33,44,-71v-33,55,-126,20,-126,-50v0,-48,35,-84,85,-84v62,0,88,47,88,115v0,67,-30,128,-91,127v-38,0,-70,-22,-76,-54v1,-9,4,-8,16,-10xm135,-155v0,-24,-15,-44,-37,-44v-23,0,-38,20,-38,43v0,24,15,44,38,44v21,0,38,-21,37,-43","k":{"7":12,"4":2,"1":16}},":":{"d":"29,-167v10,-12,60,-15,54,9v-3,15,8,41,-15,37v-16,-2,-39,9,-39,-15r0,-31xm29,-38v-4,-25,49,-18,54,-9v-3,17,11,50,-15,47v-16,-2,-43,8,-39,-16r0,-22","w":105},";":{"d":"66,39v-8,15,-47,20,-33,-7v10,-4,22,-16,21,-32v-14,0,-27,2,-24,-16v2,-16,-8,-40,15,-37v16,2,38,-7,38,16v0,32,2,62,-17,76xm29,-167v10,-12,60,-15,54,9v-4,15,9,41,-15,37v-16,-2,-39,9,-39,-15r0,-31","w":105},"=":{"d":"34,-131v-17,1,-16,-6,-16,-21v1,-10,4,-11,16,-11r134,0v15,-1,16,6,16,20v-1,11,-5,11,-16,12r-134,0xm34,-72v-16,1,-16,-5,-16,-20v1,-11,4,-11,16,-12r134,0v15,-1,16,6,16,20v-1,11,-5,11,-16,12r-134,0"},"?":{"d":"120,-82v-1,12,-16,9,-29,9v-13,0,-15,-2,-16,-11v-5,-52,50,-51,55,-94v-5,-40,-64,-32,-64,6v0,13,-19,8,-33,9v-13,1,-15,-2,-16,-10v5,-44,36,-73,84,-73v46,0,78,26,80,69v3,52,-56,50,-61,95xm86,-52v17,2,40,-6,37,16v-2,16,7,39,-16,36v-16,-2,-39,7,-37,-16v1,-17,-5,-39,16,-36","w":193},"@":{"d":"172,-54v-12,0,-24,-6,-28,-14v-32,30,-81,8,-81,-36v0,-49,60,-108,103,-68v6,-15,46,-10,33,11r-26,80v0,3,3,5,7,5v82,-24,44,-151,-41,-145v-59,4,-99,41,-99,101v0,55,40,99,99,100v35,1,70,-25,84,-46v7,-2,24,-1,21,8v-12,38,-64,65,-106,64v-73,-3,-126,-52,-126,-126v0,-73,53,-126,127,-126v63,0,114,42,114,105v0,48,-34,87,-81,87xm101,-94v-2,19,20,25,29,11v10,-14,20,-43,25,-64v0,-8,-4,-16,-13,-15v-27,5,-37,40,-41,68","w":265},"A":{"d":"229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"\u00d9":8,"\u00db":8,"\u00da":8,"\u00ab":3,"\u00e7":5,"\u00dc":8,"\u00d6":11,"\u00c7":11,"y":9,"w":7,"v":7,"u":3,"t":4,"q":4,"o":5,"g":6,"e":5,"d":4,"c":5,"b":1,"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,"-":-8,",":-6}},"B":{"d":"23,-224v-1,-13,3,-17,16,-16v77,2,176,-16,175,61v0,25,-14,40,-32,49v77,24,45,130,-41,130r-111,0v-6,-4,-7,-5,-7,-16r0,-208xm163,-171v0,-37,-51,-26,-87,-28r0,56v36,-2,87,9,87,-28xm173,-74v0,-43,-55,-32,-97,-33r0,66v42,-1,97,9,97,-33","w":238,"k":{"\u00d2":2,"\u00d4":2,"\u00d3":2,"\u00c1":4,"\u00c2":4,"\u00c3":4,"\u00c6":4,"\u00d6":2,"\u00c5":4,"\u00c4":4,"Y":8,"W":4,"V":7,"O":2,"A":4}},"C":{"d":"233,-169v0,15,-32,8,-48,8v-11,-21,-24,-41,-56,-41v-42,0,-59,38,-64,82v-8,79,100,118,117,35v2,-12,51,-14,53,2v-8,52,-48,89,-107,89v-71,0,-115,-54,-115,-126v0,-70,47,-128,117,-126v56,0,93,32,103,77","w":245,"k":{"\u00d3":1,"\u00c1":7,"\u00c6":8,"\u00d6":1,"\u00c5":7,"\u00c4":7,"O":1,"K":-1,"H":-1,"A":7}},"D":{"d":"23,-224v-1,-13,3,-17,16,-16r81,0v79,-1,117,44,117,117v0,75,-35,123,-116,123r-91,0v-6,-4,-7,-5,-7,-16r0,-208xm184,-121v0,-62,-41,-81,-108,-74r0,151v69,7,108,-13,108,-77","w":249,"k":{"\u00c1":11,"\u00c2":11,"\u00c3":11,"\u00c0":11,"\u00c5":11,"\u00c4":11,"Y":13,"X":10,"W":4,"V":8,"T":8,"J":-3,"A":11}},"E":{"d":"23,-224v-1,-13,3,-17,16,-16r158,0v9,5,13,50,-9,45r-112,0r0,51r110,0v11,4,14,47,-9,41r-101,0r0,59r123,0v11,4,14,51,-9,44r-160,0v-6,-4,-7,-5,-7,-16r0,-208","w":219},"F":{"d":"23,-224v-1,-13,3,-17,16,-16r146,0v11,4,14,50,-9,45r-100,0r0,55r85,0v21,-3,15,16,16,35v-2,4,-8,6,-16,6r-85,0r-1,92v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":199,"k":{"\u00c1":17,"\u00c2":17,"\u00c3":17,"\u00c0":17,"\u00f8":6,"\u00e6":9,"\u00f6":6,"\u00f3":6,"\u00e9":6,"\u00e5":9,"\u00e4":9,"\u00e1":9,"\u00d6":5,"\u00c5":17,"\u00c4":17,"u":9,"r":10,"o":6,"j":3,"i":2,"e":6,"a":9,"O":5,"J":6,"A":17,".":25,"-":-7,",":25}},"G":{"d":"236,-7v-5,12,-40,12,-36,-7r-2,-13v-18,22,-42,33,-72,33v-72,-2,-112,-51,-113,-125v-2,-72,48,-128,118,-127v52,1,93,30,100,76v2,13,-45,14,-50,2v-31,-66,-126,-27,-116,49v-14,86,115,116,124,28v-26,-3,-62,14,-53,-32v17,-15,63,-2,94,-6v5,2,7,7,6,15r0,107","w":256,"k":{"\u00c6":-1,"Y":12,"W":4,"V":7,"T":7}},"H":{"d":"23,-224v-3,-25,24,-13,46,-16v16,16,3,63,7,91r98,0r0,-84v4,-11,44,-11,52,0r0,226v-5,12,-29,5,-46,7v-4,-2,-6,-8,-6,-16r0,-88r-98,0r-1,97v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":249},"I":{"d":"23,-224v-3,-25,24,-13,46,-16v5,4,7,5,7,16r-1,217v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":99},"J":{"d":"116,-240v22,2,46,-9,46,16r0,145v1,56,-28,85,-79,85v-54,0,-80,-28,-80,-85v0,-15,19,-10,33,-11v12,0,16,2,16,16v-1,26,7,37,29,37v24,0,28,-13,28,-40r0,-147v0,-11,2,-12,7,-16","w":181,"k":{"\u00c6":7,"\u00c5":7,"\u00c4":7,"A":7}},"K":{"d":"23,-224v-3,-25,24,-13,46,-16v16,22,4,62,6,102r95,-101v16,-3,71,-6,46,19r-74,75r89,125v8,11,7,22,-11,20v-18,-2,-39,5,-48,-9r-66,-99r-30,30r-1,71v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":240,"k":{"\u00d3":13,"\u00e6":1,"\u00fc":6,"\u00f6":10,"\u00f3":10,"\u00d6":13,"y":18,"u":6,"o":10,"e":9,"T":-1,"S":7,"O":13,"G":13,"C":13,"-":4}},"L":{"d":"23,-224v-3,-25,24,-13,46,-16v5,4,7,5,7,16r0,180r110,0v12,4,14,51,-9,44r-147,0v-6,-4,-7,-5,-7,-16r0,-208","w":202,"k":{"\u00d2":11,"\u00d4":11,"\u00d3":11,"\u00c1":-6,"\u00d5":11,"\u00c6":-7,"\u00fc":4,"\u00dc":8,"\u00d6":11,"\u00c7":11,"\u00c5":-6,"\u00c4":-6,"y":18,"u":4,"Y":34,"W":19,"V":25,"U":8,"T":31,"S":1,"O":11,"G":11,"C":11,"A":-6,"-":1}},"M":{"d":"23,-224v-1,-30,48,-12,74,-14v22,55,44,115,57,178v11,-55,36,-127,56,-179v19,-2,45,-1,66,-1v4,2,6,8,6,16r0,217v-4,13,-26,5,-43,7v-13,-12,-6,-48,-6,-72v0,-46,1,-86,3,-122v-16,63,-40,129,-61,190v-9,6,-46,10,-47,-8r-34,-95v-10,-31,-18,-60,-24,-85r3,185v-4,10,-50,17,-50,-9r0,-208","w":306},"N":{"d":"74,-16v3,24,-22,14,-44,16v-5,-4,-7,-5,-7,-16r1,-217v5,-12,53,-13,59,3r64,103v15,26,26,44,31,56r-2,-162v4,-11,56,-15,50,9r0,217v-6,11,-50,12,-59,-3r-87,-142v-2,-4,-5,-10,-8,-18","w":249,"k":{"\u00d3":-1,"\u00c1":1,"\u00f8":-2,"\u00e6":-1,"\u00fc":-1,"\u00f6":-1,"\u00f3":-1,"\u00e9":-1,"\u00e5":-1,"\u00e4":-1,"\u00e1":-1,"\u00d6":-1,"\u00c7":-1,"\u00c5":1,"\u00c4":1,"u":-1,"o":-1,"e":-1,"a":-1,"O":-1,"G":-1,"C":-1,"A":1,".":-2,",":-2}},"O":{"d":"13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"\u00c1":11,"\u00c6":13,"\u00c5":11,"\u00c4":11,"Y":12,"X":10,"W":4,"V":7,"T":7,"A":11}},"P":{"d":"23,-224v-1,-13,3,-17,16,-16r81,0v60,-3,94,25,95,77v2,68,-62,84,-139,77r-1,79v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208xm164,-162v0,-39,-48,-33,-88,-33r0,67v40,0,88,7,88,-34","w":225,"k":{"\u00c1":20,"\u00f8":6,"\u00e6":5,"\u00c6":24,"\u00f6":5,"\u00f3":5,"\u00e9":6,"\u00e5":4,"\u00e4":4,"\u00e1":4,"\u00c5":20,"\u00c4":20,"o":5,"e":6,"a":4,"J":12,"A":20,".":31,"-":-2,",":31}},"Q":{"d":"249,-121v0,38,-12,71,-33,90v22,11,37,39,6,51v-12,-4,-23,-20,-35,-29v-80,43,-179,-13,-174,-111v4,-75,46,-126,119,-126v72,0,117,50,117,125xm65,-120v0,53,35,96,88,78v-24,-9,-21,-45,6,-42r21,19v32,-45,17,-139,-49,-137v-43,1,-66,36,-66,82","w":260},"R":{"d":"225,0v-22,-2,-52,8,-52,-15v0,-15,-4,-72,-19,-73v-16,-10,-53,-5,-79,-6r0,87v-4,11,-44,11,-52,0r0,-226v3,-6,7,-8,16,-7v83,1,186,-17,185,68v-1,29,-16,50,-39,59v42,4,32,71,44,109v0,3,-1,4,-4,4xm172,-166v0,-43,-55,-31,-97,-33r0,66v42,-2,97,11,97,-33","w":248,"k":{"\u00d3":5,"\u00e6":3,"\u00fc":3,"\u00fa":3,"\u00f6":4,"\u00f3":4,"\u00e9":4,"\u00e5":3,"\u00e4":3,"\u00e1":3,"\u00dc":2,"\u00d6":5,"\u00c7":5,"y":2,"u":3,"o":4,"e":4,"a":3,"Y":10,"W":6,"V":8,"U":2,"T":5,"O":5,"G":5,"C":5,"-":-7}},"S":{"d":"199,-179v1,16,-32,10,-47,8v-1,-37,-86,-51,-86,-6v0,37,84,28,114,52v19,15,29,30,29,53v-2,55,-42,78,-98,78v-59,0,-99,-24,-104,-76v-2,-17,27,-8,46,-10v5,2,7,5,7,13v5,40,95,45,96,0v-8,-31,-25,-23,-65,-36v-42,-14,-76,-23,-76,-71v0,-45,41,-73,93,-72v48,1,87,22,91,67","w":220,"k":{"\u00c1":5,"\u00c6":4,"\u00c5":5,"\u00c4":5,"t":1,"Y":7,"W":4,"V":6,"T":3,"A":5}},"T":{"d":"197,-240v10,10,12,51,-9,45r-58,0r0,188v-4,11,-44,11,-52,0r0,-188r-66,-1v-10,-3,-13,-51,9,-44r176,0","w":209,"k":{"\u00d2":7,"\u00d4":7,"\u00d3":7,"\u00c1":28,"\u00c2":28,"\u00d5":7,"\u00c3":28,"\u00c0":28,"\u00ab":25,"\u00f8":27,"\u00e6":28,"\u00d8":8,"\u00c6":28,"\u00d6":7,"\u00c5":28,"\u00c4":28,"y":29,"w":29,"v":29,"u":27,"s":25,"r":26,"o":28,"j":2,"i":2,"g":29,"e":28,"c":28,"a":28,"Y":-9,"W":-8,"V":-8,"O":7,"J":28,"G":7,"C":7,"A":28,";":31,":":30,".":26,"-":14,",":26}},"U":{"d":"179,-240v22,2,46,-9,46,16r0,126v1,73,-32,104,-102,104v-71,0,-103,-30,-103,-105r0,-134v4,-13,28,-5,45,-7v6,4,7,5,7,16v0,73,-30,190,52,186v36,-1,49,-18,48,-57r0,-129v0,-11,2,-12,7,-16","w":244,"k":{"\u00c1":9,"\u00c2":9,"\u00c3":9,"\u00c6":10,"\u00c5":9,"\u00c4":9,"r":-1,"p":-1,"n":-1,"m":-1,"A":9,".":4,",":4}},"V":{"d":"6,-222v-11,-22,17,-18,36,-18v14,0,12,0,17,13r27,84v12,42,20,73,23,93v11,-46,31,-147,59,-190v19,2,53,-9,44,18r-75,220v-16,1,-57,10,-63,-10","w":217,"k":{"\u00d2":7,"\u00d4":7,"\u00d3":7,"\u00c1":17,"\u00c2":17,"\u00d5":7,"\u00c3":17,"\u00c0":17,"\u00ab":11,"\u00f8":12,"\u00e6":14,"\u00d8":6,"\u00c6":21,"\u00d6":7,"\u00c5":17,"\u00c4":17,"y":1,"u":10,"r":11,"o":14,"i":1,"g":14,"e":14,"a":14,"T":-8,"S":3,"O":7,"G":8,"C":8,"A":17,";":14,":":14,".":19,",":20}},"W":{"d":"256,-13v-2,22,-60,19,-60,0v-13,-58,-29,-105,-37,-170r-40,178v-7,10,-31,3,-49,5v-6,-2,-7,-6,-9,-13r-57,-218v1,-16,27,-7,44,-9v6,2,7,5,8,13v11,51,33,126,36,175v8,-49,22,-145,47,-188v18,3,44,-9,48,13v10,60,31,110,38,175v5,-47,27,-131,39,-183v7,-9,62,-12,48,13","w":317,"k":{"\u00d2":4,"\u00d4":4,"\u00d3":4,"\u00c1":14,"\u00c2":14,"\u00d5":4,"\u00c3":14,"\u00c0":14,"\u00ab":7,"\u00f8":8,"\u00e6":9,"\u00d8":3,"\u00c6":17,"\u00d6":4,"\u00c5":14,"\u00c4":14,"u":8,"r":7,"o":9,"i":1,"g":9,"e":10,"a":9,"T":-7,"S":2,"O":4,"G":5,"C":5,"A":14,";":12,":":12,".":14,"-":-4,",":14}},"X":{"d":"155,-230v10,-19,75,-14,51,10r-64,94r71,106v8,11,7,22,-11,20v-18,-2,-40,7,-45,-10r-46,-77v-13,24,-37,62,-54,86v-17,1,-65,9,-46,-19r71,-106v-23,-35,-50,-67,-70,-105v3,-16,35,-7,53,-8v15,22,39,60,48,80v10,-20,31,-49,42,-71","w":223,"k":{"\u00d6":10,"y":15,"u":7,"o":10,"e":10,"a":1,"Q":10,"O":10,"C":10,"-":3}},"Y":{"d":"135,-16v4,24,-24,14,-46,16v-14,-17,-2,-64,-6,-93r-78,-127v-8,-12,-4,-22,11,-20v17,2,39,-6,43,10r51,93v17,-38,35,-70,57,-102v15,-1,63,-10,46,19r-78,128r0,76","w":218,"k":{"\u00d2":12,"\u00d4":12,"\u00d3":12,"\u00c1":25,"\u00c2":25,"\u00d5":12,"\u00c3":25,"\u00c0":25,"\u00ab":24,"\u00f8":23,"\u00e6":24,"\u00d8":13,"\u00c6":29,"\u00d6":12,"\u00c5":25,"\u00c4":25,"v":7,"u":16,"p":17,"o":25,"g":24,"e":25,"a":24,"T":-9,"S":4,"O":12,"G":12,"C":12,"A":25,";":20,":":20,".":28,"-":14,",":28}},"Z":{"d":"191,-240v22,-5,16,23,15,40r-133,157r131,-1v12,3,14,50,-9,44r-180,0v-11,-6,-10,-40,-1,-50r126,-147v-41,3,-76,5,-116,1v-12,-1,-14,-51,9,-44r158,0","w":219,"k":{"y":8,"v":8}},"[":{"d":"95,-240v11,7,12,41,-9,35r-27,0r0,232v23,1,52,-8,42,28v-10,15,-49,5,-71,7v-14,1,-15,-2,-16,-16r1,-279v12,-16,53,-3,80,-7","w":112},"]":{"d":"11,55v0,-16,-3,-28,15,-28r28,0r0,-232v-27,6,-59,-5,-37,-35r74,0v5,4,8,5,7,16r0,270v1,31,-48,11,-72,16v-8,2,-13,-2,-15,-7","w":112},"_":{"d":"0,36v0,-14,2,-15,16,-15r148,0v14,0,16,1,16,15v0,14,-2,15,-16,16r-148,0v-14,0,-16,-1,-16,-16","w":180},"`":{"d":"84,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","w":180},"a":{"d":"160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24","w":187,"k":{"y":2,"j":-2}},"b":{"d":"21,-233v8,-12,55,-15,47,9r0,71v43,-56,130,-13,130,64v0,51,-31,95,-78,94v-26,-1,-43,-10,-54,-27v8,25,-23,27,-42,19v-5,-1,-3,-8,-3,-13r0,-217xm108,-34v56,0,56,-107,1,-108v-27,1,-42,23,-42,54v0,30,14,54,41,54","w":209,"k":{"y":5,"w":3,"v":3}},"c":{"d":"180,-122v0,13,-42,14,-47,2v-20,-45,-80,-17,-74,33v-8,54,60,78,76,29v0,-14,45,-15,46,1v-8,39,-37,61,-82,62v-52,1,-88,-38,-88,-90v0,-55,35,-94,89,-94v41,-1,73,20,80,57","w":191,"k":{"k":1,"h":1}},"d":{"d":"188,-7v-9,13,-56,14,-45,-15v-42,60,-143,12,-132,-66v-9,-77,87,-121,130,-65r0,-80v4,-12,53,-14,47,9r0,217xm142,-88v0,-32,-13,-54,-41,-54v-29,0,-42,23,-42,54v0,31,14,54,42,54v28,0,41,-24,41,-54","w":209},"e":{"d":"184,-87v0,10,-2,12,-16,12r-109,0v-5,46,57,61,74,26v4,-8,43,-11,44,4v-8,30,-42,50,-77,50v-54,0,-88,-37,-89,-91v-2,-52,38,-94,87,-93v53,1,86,38,86,92xm136,-105v1,-35,-39,-51,-64,-29v-7,7,-11,17,-12,29r76,0","w":194,"k":{"y":6,"x":6,"w":4,"v":5,"t":2}},"f":{"d":"86,-241v24,-2,32,11,24,32v-16,8,-43,-4,-35,35v18,1,40,-5,34,21v2,16,-20,10,-34,11r0,135v-3,11,-53,15,-47,-9r0,-126v-17,0,-33,3,-29,-21v-2,-14,16,-10,29,-11v-4,-47,16,-63,58,-67","w":115,"k":{"\u00f8":7,"\u00e6":4,"\u00f6":7,"\u00f3":7,"\u00e9":7,"\u00e5":4,"\u00e4":4,"\u00e1":4,"t":-9,"o":7,"l":2,"j":2,"i":2,"f":-8,"e":7,"a":4}},"g":{"d":"139,-151v-5,-26,14,-24,39,-23v5,4,7,5,7,16r0,136v2,61,-29,87,-86,87v-41,0,-74,-11,-79,-46v-2,-14,30,-8,43,-8v8,12,15,22,37,22v36,0,40,-27,39,-65v-40,56,-138,17,-128,-59v-10,-75,91,-120,128,-60xm99,-41v41,3,51,-64,27,-89v-25,-27,-67,-3,-67,38v0,31,13,49,40,51","w":205},"h":{"d":"105,-140v-54,1,-33,78,-37,133v-4,11,-54,14,-47,-9r0,-217v3,-11,54,-14,47,9r0,74v28,-49,117,-35,116,39r-1,104v-3,12,-53,15,-47,-9v-6,-46,19,-125,-31,-124","w":203,"k":{"y":5}},"i":{"d":"68,-206v-11,13,-59,14,-47,-18v-4,-22,20,-15,41,-16v9,3,5,21,6,34xm21,-167v9,-12,54,-14,47,9r0,151v-3,12,-53,15,-47,-9r0,-151","w":89,"k":{"T":2}},"j":{"d":"-1,63v-13,-7,-12,-44,6,-39v20,-2,15,-13,16,-38r0,-153v3,-11,53,-15,47,9r1,172v-1,37,-26,53,-70,49xm68,-206v-11,13,-59,14,-47,-18v-4,-22,20,-15,41,-16v9,3,5,21,6,34","w":89},"k":{"d":"122,-167v13,-16,67,-10,43,13r-45,44r60,90v9,11,5,22,-10,20v-17,-2,-36,6,-40,-10r-42,-67r-20,18v3,31,6,76,-44,56v-5,-1,-3,-8,-3,-13r0,-217v3,-11,54,-14,47,9r0,115v17,-24,36,-37,54,-58","w":192,"k":{"\u00e6":3,"\u00fc":8,"\u00f6":10,"\u00f3":10,"\u00e9":10,"\u00e5":3,"\u00e4":3,"\u00e1":3,"u":8,"s":4,"o":10,"g":11,"e":10,"a":3,"-":5}},"l":{"d":"21,-233v9,-12,54,-14,47,9r0,217v-3,12,-53,15,-47,-9r0,-217","w":89,"k":{"y":1,"v":1}},"m":{"d":"177,-16v3,23,-20,14,-41,16v-5,-4,-6,-5,-7,-16v-5,-43,20,-124,-26,-124v-53,0,-30,80,-35,133v-4,12,-53,14,-47,-9r0,-151v6,-13,57,-14,45,17v18,-35,90,-40,104,0v27,-46,116,-36,116,33r0,110v-4,11,-53,15,-47,-9v-6,-44,20,-123,-29,-124v-49,0,-29,76,-33,124","w":306,"k":{"y":5,"w":3,"v":3}},"n":{"d":"177,0v-21,-2,-44,7,-41,-16v-6,-45,20,-124,-30,-124v-55,0,-33,78,-38,133v-1,12,-53,15,-47,-9r0,-151v7,-13,57,-14,45,17v30,-47,118,-37,118,40r0,94v0,11,-2,12,-7,16","w":203,"k":{"y":5,"w":2,"v":3,"T":27}},"o":{"d":"11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56","k":{"y":5,"x":6,"w":3,"v":4,"t":2,"T":28}},"p":{"d":"68,55v-7,12,-54,14,-47,-9r0,-213v5,-12,56,-15,45,15v43,-60,142,-11,132,66v8,77,-85,122,-130,65r0,76xm150,-86v0,-30,-14,-54,-41,-54v-30,0,-42,22,-42,54v0,31,14,53,41,53v29,0,42,-23,42,-53","w":209,"k":{"y":5,"t":2}},"q":{"d":"188,55v-7,11,-54,14,-47,-9r0,-68v-43,58,-130,14,-130,-64v0,-52,29,-93,78,-93v25,0,43,9,54,26v-8,-25,24,-25,42,-18v5,1,3,8,3,13r0,213xm142,-87v0,-31,-13,-53,-41,-53v-30,0,-42,24,-42,55v0,29,12,53,42,52v29,0,41,-23,41,-54","w":209},"r":{"d":"21,-167v7,-12,53,-14,45,9r0,16v10,-20,28,-34,55,-36v15,-1,12,14,12,28v-1,18,-4,15,-22,15v-54,0,-42,70,-43,128v-4,12,-53,14,-47,-9r0,-151","w":133,"k":{"\u00f8":1,"\u00f6":1,"\u00f4":1,"\u00f2":1,"\u00f3":1,"\u00ea":1,"\u00e8":1,"\u00e9":1,"z":-3,"y":-9,"x":-5,"w":-9,"v":-9,"u":-1,"t":-12,"s":-5,"q":1,"o":1,"g":-1,"f":-11,"e":1,"c":1,";":3,":":3,".":22,"-":9,",":22}},"s":{"d":"143,-123v-38,4,-27,-28,-59,-24v-24,-3,-37,22,-17,31v33,14,101,11,101,62v0,78,-156,79,-160,7v-2,-15,29,-10,41,-8v2,30,65,41,71,6v-16,-42,-112,-10,-111,-77v1,-37,34,-53,76,-53v38,0,72,16,74,47v-1,7,-4,8,-16,9","w":178,"k":{"t":-1}},"t":{"d":"33,-226v17,-1,46,-7,41,15r0,37v18,1,41,-7,35,21v2,16,-21,10,-35,11r0,82v-9,45,46,0,35,55v-2,9,-16,7,-27,7v-79,0,-51,-79,-56,-144v-17,0,-34,3,-29,-21v-2,-14,16,-10,29,-11v2,-17,-6,-46,7,-52","w":116,"k":{"\u00e6":-1,"\u00f6":6,"\u00f3":6,"\u00e9":6,"\u00e5":-1,"\u00e4":-1,"\u00e1":-1,"o":6,"h":1,"e":6,"a":-1,";":6,":":5}},"u":{"d":"182,-7v-12,14,-57,13,-45,-18v-31,50,-117,38,-117,-39r0,-103v3,-12,53,-15,47,9v6,45,-20,124,30,124v53,0,35,-78,38,-133v3,-11,53,-15,47,9r0,151","w":203},"v":{"d":"119,-162v5,-18,61,-19,46,6r-54,154v-15,1,-55,10,-57,-10r-52,-153v0,-14,33,-9,45,-7v15,33,31,95,39,128v5,-31,24,-84,33,-118","w":169,"k":{"\u00f8":3,"\u00e6":4,"\u00f6":4,"\u00f2":4,"\u00f3":4,"\u00ea":4,"\u00e8":4,"\u00e9":4,"\u00e5":4,"\u00e3":4,"\u00e4":4,"\u00e2":4,"\u00e0":4,"\u00e1":4,"s":-1,"o":4,"l":1,"g":3,"e":4,"c":4,"a":4,";":4,":":4,".":12,"-":-8,",":12}},"w":{"d":"218,-12v-1,20,-58,18,-56,-1r-28,-116v-8,49,-18,80,-29,124v-8,8,-54,12,-55,-7r-47,-153v-1,-15,39,-12,48,-4r17,61v5,17,9,38,14,64v8,-45,16,-86,29,-125v6,-8,52,-11,50,8r27,117v8,-52,20,-80,31,-125v7,-9,59,-12,45,13","w":268,"k":{"\u00f8":2,"\u00e6":4,"\u00f6":4,"\u00f2":4,"\u00f3":4,"\u00ea":4,"\u00e8":4,"\u00e9":4,"\u00e5":4,"\u00e3":4,"\u00e4":4,"\u00e2":4,"\u00e0":4,"\u00e1":4,"s":-1,"o":4,"l":1,"g":4,"e":4,"c":3,"a":4,";":4,":":4,".":11,"-":-9,",":12}},"x":{"d":"111,-165v8,-17,66,-17,46,11r-44,61v18,28,40,53,56,84v0,14,-45,14,-52,0v-10,-19,-20,-28,-31,-50v-11,22,-22,40,-37,58v-16,3,-58,7,-40,-19r50,-72v-16,-24,-36,-46,-49,-73v1,-15,46,-15,52,0v10,16,14,19,25,40","w":173,"k":{"\u00e9":6,"q":5,"o":6,"e":6,"c":6,"a":2}},"y":{"d":"98,36v-7,23,-60,37,-82,19v-1,-18,-5,-37,20,-33v21,3,30,-14,24,-32r-57,-155v0,-15,32,-8,46,-7v17,40,28,76,41,124v12,-50,21,-84,40,-124v11,-3,57,-8,41,16","w":175,"k":{"\u00f8":4,"\u00e6":4,"\u00f6":5,"\u00f2":5,"\u00f3":5,"\u00ea":5,"\u00e8":5,"\u00e9":5,"\u00e5":4,"\u00e3":4,"\u00e4":4,"\u00e2":4,"\u00e0":4,"\u00e1":4,"s":-1,"o":5,"l":1,"g":4,"e":5,"c":5,"a":4,";":4,":":4,".":14,"-":-7,",":14}},"z":{"d":"147,-174v20,-5,16,20,15,35r-71,81v-4,5,-12,12,-22,22v33,-2,60,0,93,-1v11,4,12,45,-9,37r-138,0v-10,-6,-11,-36,0,-44r63,-70v5,-5,13,-13,24,-23r-80,0v-11,-4,-12,-45,9,-37r116,0","w":172},"\u00c4":{"d":"139,-265v-12,-5,-12,-46,9,-38v26,-10,42,19,24,38r-33,0xm58,-296v11,-14,57,-14,46,16v4,21,-20,14,-40,15v-9,-2,-6,-19,-6,-31xm229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"\u00ab":3,"y":9,"w":7,"v":7,"u":3,"t":4,"q":4,"o":5,"g":6,"d":4,"c":5,"b":1,"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,"-":-8,",":-6}},"\u00c5":{"d":"229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0xm78,-294v0,-21,18,-39,41,-39v20,0,39,18,39,39v0,22,-19,40,-40,40v-22,0,-40,-17,-40,-40xm137,-294v0,-10,-8,-18,-19,-18v-9,0,-19,8,-19,18v-1,11,8,20,19,19v11,0,19,-8,19,-19","w":236,"k":{"\u00ab":3,"y":9,"w":7,"v":7,"u":3,"t":4,"q":4,"o":5,"g":6,"e":5,"d":4,"c":5,"b":1,"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,"-":-8,",":-6}},"\u00c7":{"d":"86,61v5,-17,45,10,47,-16v0,-15,-22,-10,-32,-13v-4,-9,9,-20,13,-27v-63,-7,-100,-53,-101,-124v-1,-71,46,-128,117,-127v56,1,95,30,102,77v2,16,-31,7,-47,8v-12,-21,-25,-41,-56,-41v-40,0,-64,37,-64,81v0,80,101,117,117,36v2,-12,51,-14,53,2v-9,53,-45,87,-105,88r-10,16v21,-7,42,3,42,22v1,21,-18,32,-41,31v-15,0,-33,-1,-35,-13","w":245,"k":{"A":8}},"\u00c9":{"d":"154,-294v-9,15,-43,50,-62,25v9,-16,17,-42,50,-35v8,0,12,3,12,10xm23,-224v-1,-13,3,-17,16,-16r158,0v9,5,13,50,-9,45r-112,0r0,51r110,0v11,4,14,47,-9,41r-101,0r0,59r123,0v11,4,14,51,-9,44r-160,0v-6,-4,-7,-5,-7,-16r0,-208","w":219},"\u00d1":{"d":"187,-296v-4,42,-59,34,-88,21v-13,-1,-9,17,-26,15v-5,0,-10,-5,-10,-10v1,-13,21,-39,39,-35v22,-1,52,27,66,0v8,-2,19,0,19,9xm74,-16v3,24,-22,14,-44,16v-5,-4,-7,-5,-7,-16r1,-217v5,-12,53,-13,59,3r64,103v15,26,26,44,31,56r-2,-162v4,-11,56,-15,50,9r0,217v-6,11,-50,12,-59,-3r-87,-142v-2,-4,-5,-10,-8,-18","w":249},"\u00d6":{"d":"145,-296v11,-13,57,-14,46,16v4,21,-19,14,-39,15v-10,-2,-6,-19,-7,-31xm77,-303v24,1,45,-7,40,23v3,21,-20,14,-40,15v-10,-2,-10,-36,0,-38xm13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"Y":12,"X":10,"W":4,"V":7,"T":7,"A":11}},"\u00dc":{"d":"143,-303v24,1,45,-7,40,23v3,21,-20,14,-40,15v-10,-3,-10,-35,0,-38xm62,-296v12,-13,57,-14,46,16v4,21,-19,14,-39,15v-10,-2,-6,-19,-7,-31xm179,-240v22,2,46,-9,46,16r0,126v1,73,-32,104,-102,104v-71,0,-103,-30,-103,-105r0,-134v4,-13,28,-5,45,-7v6,4,7,5,7,16v0,73,-30,190,52,186v36,-1,49,-18,48,-57r0,-129v0,-11,2,-12,7,-16","w":244,"k":{"r":-1,"p":-1,"n":-1,"m":-1,"b":-1,"A":9,".":4,",":4}},"\u00e1":{"d":"160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24xm92,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","w":187,"k":{"y":2}},"\u00e0":{"d":"160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24xm88,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","w":187,"k":{"y":2}},"\u00e2":{"d":"115,-248v7,11,42,37,19,48v-25,4,-30,-16,-41,-29v-11,10,-12,30,-34,29v-16,0,-20,-11,-9,-20v11,-10,12,-30,33,-29v9,0,26,-1,32,1xm160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24","w":187},"\u00e4":{"d":"160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24xm151,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm80,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","w":187,"k":{"y":2}},"\u00e3":{"d":"150,-237v-4,42,-52,31,-79,21v-12,-2,-10,16,-22,14v-6,0,-10,-5,-11,-10v1,-16,18,-34,35,-34v17,0,26,11,44,13v11,1,11,-15,22,-14v6,0,11,4,11,10xm160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24","w":187},"\u00e5":{"d":"160,0v-18,0,-36,3,-33,-17v-33,36,-118,29,-118,-31v0,-55,73,-50,113,-63v12,-15,2,-36,-26,-36v-19,0,-31,7,-33,19v-2,12,-45,13,-45,-2v7,-33,35,-49,79,-49v63,0,76,22,76,96v0,22,-1,61,3,74v-1,7,-4,9,-16,9xm85,-26v30,0,47,-22,42,-59v-19,14,-69,3,-69,35v1,16,10,24,27,24xm54,-231v0,-22,19,-40,40,-40v22,0,40,19,40,40v0,21,-18,40,-40,40v-22,1,-40,-18,-40,-40xm113,-231v0,-10,-9,-19,-19,-19v-11,0,-19,9,-19,19v0,10,9,19,19,19v10,0,19,-9,19,-19","w":187,"k":{"y":2}},"\u00e7":{"d":"181,-57v-9,36,-35,62,-81,62r-11,16v22,-7,44,3,43,23v-1,19,-19,30,-41,30v-19,0,-47,-9,-28,-19v15,2,38,7,40,-10v2,-20,-48,0,-28,-28r10,-13v-46,-7,-73,-38,-74,-89v-1,-55,35,-94,89,-94v41,-1,72,20,80,57v0,13,-42,14,-47,2v-20,-45,-80,-17,-74,33v-8,54,60,78,76,29v0,-14,45,-15,46,1","w":190},"\u00e9":{"d":"184,-87v0,10,-2,12,-16,12r-109,0v-5,46,57,61,74,26v4,-8,43,-11,44,4v-8,30,-42,50,-77,50v-54,0,-88,-37,-89,-91v-2,-52,38,-94,87,-93v53,1,86,38,86,92xm136,-105v1,-35,-39,-51,-64,-29v-7,7,-11,17,-12,29r76,0xm95,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","w":194,"k":{"y":6,"w":4,"v":5}},"\u00e8":{"d":"184,-87v0,10,-2,12,-16,12r-109,0v-5,46,57,61,74,26v4,-8,43,-11,44,4v-8,30,-42,50,-77,50v-54,0,-88,-37,-89,-91v-2,-52,38,-94,87,-93v53,1,86,38,86,92xm136,-105v1,-35,-39,-51,-64,-29v-7,7,-11,17,-12,29r76,0xm91,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","w":194},"\u00ea":{"d":"119,-248v6,12,43,37,18,48v-24,4,-29,-15,-40,-29v-11,10,-14,31,-34,29v-32,-4,0,-29,6,-40v4,-15,30,-8,50,-8xm184,-87v0,10,-2,12,-16,12r-109,0v-5,46,57,61,74,26v4,-8,43,-11,44,4v-8,30,-42,50,-77,50v-54,0,-88,-37,-89,-91v-2,-52,38,-94,87,-93v53,1,86,38,86,92xm136,-105v1,-35,-39,-51,-64,-29v-7,7,-11,17,-12,29r76,0","w":194,"k":{"y":6,"w":4,"v":5}},"\u00eb":{"d":"184,-87v0,10,-2,12,-16,12r-109,0v-5,46,57,61,74,26v4,-8,43,-11,44,4v-8,30,-42,50,-77,50v-54,0,-88,-37,-89,-91v-2,-52,38,-94,87,-93v53,1,86,38,86,92xm136,-105v1,-35,-39,-51,-64,-29v-7,7,-11,17,-12,29r76,0xm154,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm83,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","w":194},"\u00ed":{"d":"68,-167r0,160v-4,11,-54,14,-47,-9r0,-151v3,-11,41,-11,47,0xm43,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","w":89},"\u00ec":{"d":"68,-167r0,160v-4,11,-54,14,-47,-9r0,-151v3,-11,41,-11,47,0xm39,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","w":89},"\u00ee":{"d":"66,-248v7,12,42,35,19,48v-25,4,-30,-16,-41,-29v-11,10,-13,30,-34,29v-16,0,-20,-11,-9,-20v11,-10,12,-30,33,-29v9,0,26,-1,32,1xm21,-167v9,-12,54,-14,47,9r0,151v-3,12,-53,15,-47,-9r0,-151","w":89},"\u00ef":{"d":"21,-167v9,-12,54,-14,47,9r0,151v-3,12,-53,15,-47,-9r0,-151xm94,-212v-9,13,-53,13,-41,-17v-4,-19,16,-15,34,-15v11,2,6,19,7,32xm36,-212v-14,17,-55,7,-40,-26v6,-11,52,-13,40,17r0,9","w":89},"\u00f1":{"d":"158,-237v-4,42,-52,32,-79,21v-12,-2,-10,16,-22,14v-5,0,-11,-4,-11,-10v1,-16,18,-34,35,-34v17,0,25,11,44,13v10,1,11,-14,21,-14v7,0,12,4,12,10xm177,0v-21,-2,-44,7,-41,-16v-6,-45,20,-124,-30,-124v-55,0,-33,78,-38,133v-1,12,-53,15,-47,-9r0,-151v7,-13,57,-14,45,17v30,-47,118,-37,118,40r0,94v0,11,-2,12,-7,16","w":203},"\u00f3":{"d":"11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56xm99,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","k":{"y":5,"w":3,"v":4}},"\u00f2":{"d":"11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56xm95,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","k":{"y":5,"w":3,"v":4}},"\u00f4":{"d":"122,-248v7,11,42,37,19,48v-25,4,-30,-16,-41,-29v-8,14,-32,44,-49,20v11,-23,28,-50,71,-39xm11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56","k":{"t":2}},"\u00f6":{"d":"11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56xm158,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm87,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","k":{"y":5,"x":6,"w":3,"v":4,"t":2}},"\u00f5":{"d":"157,-237v-4,42,-52,31,-79,21v-12,-2,-9,16,-22,14v-5,0,-10,-5,-10,-10v0,-17,18,-34,35,-34v15,0,26,11,43,13v11,1,11,-15,22,-14v6,0,11,4,11,10xm11,-87v0,-56,38,-93,92,-92v52,0,88,39,88,92v0,54,-36,92,-90,92v-53,0,-91,-37,-90,-92xm143,-87v0,-32,-13,-55,-42,-56v-28,0,-42,25,-42,56v0,32,13,55,42,56v30,0,42,-24,42,-56"},"\u00fa":{"d":"182,-7v-12,14,-57,13,-45,-18v-31,50,-117,38,-117,-39r0,-103v3,-12,53,-15,47,9v6,45,-20,124,30,124v53,0,35,-78,38,-133v3,-11,53,-15,47,9r0,151xm100,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","w":203},"\u00f9":{"d":"182,-7v-12,14,-57,13,-45,-18v-31,50,-117,38,-117,-39r0,-103v3,-12,53,-15,47,9v6,45,-20,124,30,124v53,0,35,-78,38,-133v3,-11,53,-15,47,9r0,151xm96,-200v-10,-11,-52,-36,-24,-48v15,2,27,-4,32,10v5,11,23,27,12,38v-2,0,-18,2,-20,0","w":203},"\u00fb":{"d":"123,-248v7,12,44,37,19,48v-25,4,-30,-16,-41,-29v-11,9,-12,29,-33,29v-17,0,-20,-10,-10,-20v12,-19,27,-37,65,-28xm182,-7v-12,14,-57,13,-45,-18v-31,50,-117,38,-117,-39r0,-103v3,-12,53,-15,47,9v6,45,-20,124,30,124v53,0,35,-78,38,-133v3,-11,53,-15,47,9r0,151","w":203},"\u00fc":{"d":"182,-7v-12,14,-57,13,-45,-18v-31,50,-117,38,-117,-39r0,-103v3,-12,53,-15,47,9v6,45,-20,124,30,124v53,0,35,-78,38,-133v3,-11,53,-15,47,9r0,151xm159,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm88,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","w":203},"\u00a2":{"d":"115,-66v34,-1,14,-49,66,-35v3,1,8,5,7,9v-6,34,-32,62,-73,62v-1,14,4,36,-10,36v-15,0,-9,-21,-10,-36v-52,-1,-79,-38,-79,-90v0,-53,29,-88,79,-92v0,-13,-3,-29,10,-29v12,0,10,16,10,29v41,2,67,22,72,57v2,13,-29,9,-41,8v-7,-12,-13,-30,-31,-30r0,111xm95,-176v-44,6,-42,106,0,110r0,-110"},"\u00a3":{"d":"108,-198v-39,-2,-33,44,-19,66v20,2,53,-10,44,22v-3,9,-23,5,-35,6v10,32,-5,49,-25,66v34,-19,76,14,104,-8v12,1,16,20,20,28v-30,50,-114,-9,-156,19v-10,-1,-21,-20,-19,-30v20,-11,42,-43,27,-75v-19,1,-41,2,-33,-23v2,-6,11,-5,21,-5v-33,-53,7,-106,70,-106v48,0,80,23,84,67v1,14,-25,8,-41,9v-11,-5,-5,-24,-18,-29v-7,-4,-15,-7,-24,-7"},"\u00a7":{"d":"67,-3v7,13,12,28,34,28v17,0,26,-8,27,-21v-17,-52,-114,-40,-116,-107v0,-26,15,-41,35,-48v-36,-39,5,-93,56,-89v37,3,62,18,68,53v1,11,-14,9,-27,9v-11,0,-13,0,-15,-7v-1,-26,-51,-27,-51,0v0,18,19,23,32,30v47,27,79,26,79,72v0,24,-14,42,-34,48v41,34,5,97,-54,97v-40,0,-68,-19,-72,-56v-2,-15,26,-10,38,-9xm118,-61v14,12,29,-1,30,-15v-10,-32,-51,-35,-78,-53v-9,2,-18,11,-17,21v3,28,45,30,65,47"},"\u00b6":{"d":"12,-177v-2,-77,93,-63,171,-63r0,22r-15,0r0,280r-29,0r0,-280r-29,0r0,280r-28,0r0,-177v-42,1,-69,-21,-70,-62"},"\u00df":{"d":"89,-141v14,-10,46,-9,41,-36v1,-18,-12,-32,-31,-31v-26,1,-32,17,-31,46r0,155v-4,11,-54,14,-47,-9r0,-137v-4,-63,25,-88,80,-90v41,-1,75,22,75,62v0,23,-13,42,-31,47v74,21,47,136,-36,136v-20,0,-22,-3,-21,-21v0,-12,2,-16,11,-16v29,0,42,-17,42,-41v0,-25,-14,-41,-42,-40v-12,1,-12,-16,-10,-25","w":199},"\u00b4":{"d":"88,-238v6,-16,42,-14,44,0v-12,13,-23,39,-47,39v-28,0,-1,-29,3,-39","w":180},"\u00a8":{"d":"147,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm76,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","w":180},"\u00c6":{"d":"308,-138v-1,18,5,35,-15,35r-91,0r0,59r110,0v10,3,13,51,-9,44r-144,0v-12,-7,-4,-34,-6,-52r-77,0v-6,15,-15,29,-20,45v-5,14,-72,12,-51,-12r102,-214v5,-7,4,-7,16,-7r186,0v11,5,14,51,-9,45r-98,0r0,51r100,0v3,0,6,3,6,6xm153,-90r0,-108r-12,0r-48,108r60,0","w":332},"\u00d8":{"d":"207,-220v8,-9,30,-41,39,-14v-3,12,-17,21,-24,30v61,73,14,219,-91,210v-33,-3,-53,-8,-75,-26v-10,11,-31,43,-41,16v4,-13,17,-21,25,-31v-60,-75,-16,-211,91,-211v34,0,56,10,76,26xm131,-202v-59,0,-81,76,-56,127r100,-110v-9,-10,-25,-17,-44,-17xm87,-54v62,53,142,-32,100,-111","w":262,"k":{"A":9}},"\u00e6":{"d":"287,-45v-13,54,-110,68,-140,20v-27,41,-138,46,-138,-22v0,-59,66,-48,111,-63v16,-14,4,-37,-24,-37v-22,0,-30,13,-36,26v-11,1,-43,6,-42,-8v4,-56,108,-65,137,-27v11,-13,30,-23,54,-23v51,1,83,38,84,90v0,11,-4,13,-15,13r-109,0v-5,51,62,59,78,23v10,0,40,-7,40,8xm246,-104v3,-39,-49,-53,-69,-25v-4,6,-7,14,-8,25r77,0xm86,-25v32,1,45,-23,41,-60v-15,16,-70,3,-69,35v0,16,12,24,28,25","w":303,"k":{"y":6,"w":4,"v":5}},"\u00f8":{"d":"155,-161v5,-6,21,-29,28,-10v-1,9,-11,13,-15,21v48,52,16,161,-66,155v-25,-2,-39,-6,-56,-17v-7,6,-10,16,-21,18v-18,-6,5,-24,9,-30v-50,-55,-13,-160,67,-155v25,2,38,7,54,18xm130,-132v-40,-35,-92,19,-67,75xm72,-42v41,35,91,-19,67,-75"},"\u00bf":{"d":"74,-92v1,-12,16,-8,29,-9v12,0,15,2,16,11v5,52,-55,51,-55,94v0,16,13,27,29,27v22,0,32,-12,35,-33v2,-13,20,-8,33,-9v11,0,15,2,15,10v0,46,-36,73,-84,73v-45,0,-79,-27,-79,-69v0,-53,56,-50,61,-95xm123,-129v-11,11,-57,15,-52,-9v3,-16,-7,-40,16,-36v15,2,36,-8,36,16r0,29","w":193},"\u00a1":{"d":"78,-5v-1,36,17,81,-34,71v-29,2,-11,-42,-16,-64r15,-100v9,-6,27,-5,25,11xm80,-138v4,24,-46,18,-52,9v3,-17,-10,-48,15,-45v16,2,40,-7,37,16r0,20","w":114},"\u00ab":{"d":"49,-138v11,-13,23,-2,20,14v2,21,-20,22,-31,35v12,13,35,15,31,44v-13,25,-39,-16,-53,-22v2,-19,-8,-44,8,-51xm83,-111v12,-8,40,-47,52,-22v4,26,-17,31,-31,44v12,13,35,14,31,43v-12,25,-39,-14,-52,-22v-2,-9,-2,-33,0,-43","w":154},"\u00bb":{"d":"139,-67v-14,7,-40,47,-53,22v-4,-26,17,-31,31,-44v-12,-13,-34,-14,-31,-44v1,-12,12,-15,20,-5v20,14,43,29,33,71xm72,-68v-13,7,-39,47,-52,22v-4,-25,17,-30,30,-43v-12,-13,-34,-15,-30,-44v12,-26,39,16,52,22v1,9,2,34,0,43","w":154,"k":{"\u00c1":2,"\u00c6":5,"\u00c5":2,"\u00c4":2,"Y":24,"W":6,"V":10,"T":25,"A":2}},"\u00c0":{"d":"82,-283v-11,-8,-11,-21,4,-21v16,0,29,-4,34,9v9,11,29,35,-3,35v-16,0,-24,-15,-35,-23xm229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,",":-6}},"\u00c3":{"d":"180,-296v-4,42,-59,34,-88,21v-12,-1,-9,17,-25,15v-6,0,-11,-4,-11,-10v2,-13,21,-39,40,-35v17,-1,28,13,47,13v11,0,28,-28,37,-4xm229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,",":-6}},"\u00d5":{"d":"192,-296v-3,44,-58,33,-87,21v-13,-1,-9,17,-26,15v-5,0,-10,-5,-10,-10v1,-13,21,-39,39,-35v22,-1,52,27,66,0v8,-2,19,-1,18,9xm13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"Y":12,"V":7,"T":7}},"\u00ff":{"d":"98,36v-7,23,-60,37,-82,19v-1,-18,-5,-37,20,-33v21,3,30,-14,24,-32r-57,-155v0,-15,32,-8,46,-7v17,40,28,76,41,124v12,-50,21,-84,40,-124v11,-3,57,-8,41,16xm145,-212v-10,13,-55,13,-44,-17v-5,-21,18,-14,38,-15v10,2,5,20,6,32xm74,-212v-9,13,-56,13,-44,-17v-4,-21,19,-15,38,-15v10,0,7,23,6,32","w":175},"\u00c2":{"d":"140,-305v7,10,45,37,18,44v-24,6,-29,-10,-41,-23v-10,8,-13,25,-32,23v-34,-4,-4,-26,4,-37v6,-14,32,-7,51,-7xm229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,",":-6}},"\u00ca":{"d":"132,-305v7,10,44,36,18,44v-23,7,-29,-10,-41,-23v-7,14,-36,36,-50,14v11,-22,32,-45,73,-35xm23,-224v-1,-13,3,-17,16,-16r158,0v9,5,13,50,-9,45r-112,0r0,51r110,0v11,4,14,47,-9,41r-101,0r0,59r123,0v11,4,14,51,-9,44r-160,0v-6,-4,-7,-5,-7,-16r0,-208","w":219},"\u00c1":{"d":"162,-295v-9,16,-42,51,-61,26v8,-18,15,-35,49,-35v8,0,12,3,12,9xm229,-18v5,12,3,19,-12,18v-17,-2,-38,6,-40,-12r-15,-42r-89,0v-6,16,-12,38,-20,52v-13,3,-62,9,-46,-16r80,-211v1,-19,37,-9,57,-10v33,69,55,149,85,221xm150,-92r-32,-96v-6,23,-23,68,-32,96r64,0","w":236,"k":{"\u00ab":3,"y":9,"w":7,"v":7,"u":3,"t":4,"q":4,"o":5,"g":6,"e":5,"d":4,"c":5,"b":1,"Y":25,"W":13,"V":17,"U":8,"T":28,"Q":11,"O":11,"G":11,"C":11,".":-6,"-":-8,",":-6}},"\u00cb":{"d":"124,-296v12,-13,57,-14,46,16v4,21,-19,14,-39,15v-10,-2,-6,-19,-7,-31xm50,-271v-14,-37,35,-41,46,-25v-1,14,6,35,-16,31v-11,-1,-26,3,-30,-6xm23,-224v-1,-13,3,-17,16,-16r158,0v9,5,13,50,-9,45r-112,0r0,51r110,0v11,4,14,47,-9,41r-101,0r0,59r123,0v11,4,14,51,-9,44r-160,0v-6,-4,-7,-5,-7,-16r0,-208","w":219},"\u00c8":{"d":"74,-283v-12,-8,-11,-21,4,-21v16,0,29,-4,34,9v6,10,28,33,2,35v-20,2,-27,-14,-40,-23xm23,-224v-1,-13,3,-17,16,-16r158,0v9,5,13,50,-9,45r-112,0r0,51r110,0v11,4,14,47,-9,41r-101,0r0,59r123,0v11,4,14,51,-9,44r-160,0v-6,-4,-7,-5,-7,-16r0,-208","w":219},"\u00cd":{"d":"93,-294v-8,15,-43,51,-61,25v8,-17,16,-42,49,-35v8,0,12,3,12,10xm23,-224v-3,-25,24,-13,46,-16v5,4,7,5,7,16r-1,217v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":99},"\u00ce":{"d":"72,-305v7,10,43,34,18,44v-24,4,-29,-10,-41,-23v-11,8,-12,23,-32,23v-19,0,-23,-10,-11,-20v11,-8,12,-27,32,-25v10,0,26,-1,34,1xm23,-224v-3,-25,24,-13,46,-16v5,4,7,5,7,16r-1,217v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":99},"\u00cf":{"d":"30,-240v22,2,46,-9,46,16r0,208v3,25,-24,13,-46,16v-5,-4,-7,-5,-7,-16r1,-217v0,-4,4,-5,6,-7xm66,-303v23,0,41,-5,36,23v3,20,-17,14,-36,15v-11,-2,-10,-36,0,-38xm-2,-296v11,-14,53,-13,42,16v4,20,-17,14,-36,15v-9,-2,-6,-19,-6,-31","w":99},"\u00cc":{"d":"53,-260v-25,0,-62,-36,-35,-44v30,-9,40,15,49,35v0,6,-6,9,-14,9xm23,-224v-3,-25,24,-13,46,-16v5,4,7,5,7,16r-1,217v-4,13,-28,5,-45,7v-6,-4,-7,-5,-7,-16r0,-208","w":99},"\u00d3":{"d":"175,-294v-9,15,-43,50,-62,25v9,-16,17,-42,50,-35v8,0,12,3,12,10xm13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"Y":12,"W":4,"V":7,"T":7,"A":11}},"\u00d4":{"d":"153,-305v7,10,44,37,18,44v-23,7,-29,-10,-41,-23v-10,8,-13,25,-32,23v-34,-4,-4,-26,4,-37v5,-14,32,-7,51,-7xm13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"Y":12,"V":7,"T":7}},"\u00d2":{"d":"95,-283v-10,-9,-10,-19,4,-21v30,-5,41,15,49,35v-13,24,-44,-6,-53,-14xm13,-120v1,-78,42,-126,120,-126v72,0,116,51,116,126v1,73,-47,127,-118,126v-73,-2,-119,-49,-118,-126xm196,-121v0,-45,-21,-81,-64,-81v-43,0,-68,36,-67,82v0,48,21,82,67,82v44,0,64,-35,64,-83","w":261,"k":{"Y":12,"V":7,"T":7}},"\u00da":{"d":"166,-294v-9,15,-43,51,-61,25v8,-17,16,-42,49,-35v8,0,12,3,12,10xm179,-240v22,2,46,-9,46,16r0,126v1,73,-32,104,-102,104v-71,0,-103,-30,-103,-105r0,-134v4,-13,28,-5,45,-7v6,4,7,5,7,16v0,73,-30,190,52,186v36,-1,49,-18,48,-57r0,-129v0,-11,2,-12,7,-16","w":244,"k":{"r":-1,"p":-1,"n":-1,"m":-1,"A":9,".":4,",":4}},"\u00db":{"d":"144,-305v8,9,44,34,19,44v-24,4,-30,-10,-41,-23v-11,8,-12,23,-32,23v-19,0,-22,-9,-12,-20v11,-18,31,-31,66,-24xm179,-240v22,2,46,-9,46,16r0,126v1,73,-32,104,-102,104v-71,0,-103,-30,-103,-105r0,-134v4,-13,28,-5,45,-7v6,4,7,5,7,16v0,73,-30,190,52,186v36,-1,49,-18,48,-57r0,-129v0,-11,2,-12,7,-16","w":244,"k":{"A":9}},"\u00d9":{"d":"126,-260v-25,1,-62,-33,-36,-44v15,1,30,-4,34,9v6,11,30,34,2,35xm179,-240v22,2,46,-9,46,16r0,126v1,73,-32,104,-102,104v-71,0,-103,-30,-103,-105r0,-134v4,-13,28,-5,45,-7v6,4,7,5,7,16v0,73,-30,190,52,186v36,-1,49,-18,48,-57r0,-129v0,-11,2,-12,7,-16","w":244,"k":{"A":9}},"\u00af":{"d":"39,-224v0,-10,4,-13,15,-12r84,0v16,-3,17,7,15,19v-20,14,-68,6,-99,6v-13,0,-15,-2,-15,-13","w":180},"\u00b8":{"d":"97,45v4,-21,-47,0,-27,-28v6,-9,9,-21,28,-17r-14,21v22,-7,43,3,43,23v0,20,-18,30,-42,30v-18,0,-46,-9,-28,-19v15,2,40,8,40,-10","w":180},"\u00d7":{"d":"60,-54v-9,15,-27,2,-30,-11v11,-22,33,-34,48,-53v-14,-20,-43,-30,-47,-56v7,-8,16,-21,29,-8r41,42v18,-16,31,-36,52,-49v12,2,27,21,12,30r-41,41v15,19,37,31,48,53v-3,11,-21,29,-30,11r-41,-41"},"\u00a0":{"w":90},"\u00ad":{"d":"16,-111v24,3,63,-7,75,7v-1,16,6,40,-15,36v-24,-3,-64,8,-76,-7v1,-17,-6,-39,16,-36","w":91},"\u00b7":{"d":"23,-110v10,-11,48,-9,54,0v-3,17,11,50,-15,47v-16,-2,-39,9,-39,-16r0,-31","w":100}}});

if (cufonEnabled) {
	Cufon.replace('h1, h2, .stepIntro h4, #steps .header h4');

	Cufon.replace('#mainMenu a', {
		hover: true
	});
}



var Debug = {}

// Loads the sub-navigation for the supplied
Debug.Log = function(textToLog, color) {
	if (!debugWindow)
		CreateDebugWindow();

	logEntry = document.createElement("div");
	if (color)
		logEntry.setAttribute("style", "padding: 3px; color:" + color + ";");
	else
		logEntry.setAttribute("style", "padding: 3px;");

	logEntry.innerHTML = new Date().format('h:m:s.fff') + '> ' + textToLog;

	debugWindow.appendChild(logEntry);
	debugWindow.scrollTop = debugWindow.scrollHeight;

}

var currentRunningEntries;
Debug.Start = function(keyForLogging, textToLog) {
	if (!currentRunningEntries)
		currentRunningEntries = new Array();

	if (!currentRunningEntries[keyForLogging]) {
		currentRunningEntries[keyForLogging] = new Date().getTime();
		Debug.Log('started ' + keyForLogging + '> ' + textToLog, 'Green');
	}
}

Debug.Update = function(keyForLogging, textToLog) {
	if (currentRunningEntries[keyForLogging]) {
		Debug.Log('updated ' + keyForLogging + '> ' + textToLog, 'Orange');
	}
}

Debug.Stop = function(stoppedQueue) {
	if (currentRunningEntries[stoppedQueue] && currentRunningEntries[stoppedQueue] != '') {
		Debug.Log('stopped ' + stoppedQueue + '> took ' + ((new Date().getTime()) - currentRunningEntries[stoppedQueue]) + 'ms', 'Red');
		currentRunningEntries[stoppedQueue] = '';
	}
}


var debugWindow;
function CreateDebugWindow() {
	debugWindow = document.createElement("div");
	debugWindow.setAttribute("id", "debugWindow");
	debugWindow.setAttribute("style", "position: absolute; overflow: scroll; font-size: 11px; color: #444; width: 10px; height: 10px; top: 0px; right: 0px; border: solid 2px #000; background-color: #fff;");
	debugWindow.setAttribute("onclick", "this.style.width='500px'; this.style.height='400px'");

	document.body.appendChild(debugWindow);
	$('#debugWindow').scrollFollow({ speed: '500'});
}



function GetMainShopNavigationUrl() {
	return "?Select-Your-Apple";
}


function GetSubShopNavigationItemUrl(mainNavigationId, navigationTitle) {
	return "?Select-Your-Apple-Type=" + escape(navigationTitle) + "(" + mainNavigationId + ")";
}


function GetSubSubShopNavigationItemUrl(mainNavigationId, subNavigationId, navigationTitle) {
	return "?Select-Your-Apple-Model=" + escape(navigationTitle) + "(" + mainNavigationId + "." + subNavigationId + ")";
}


function GetSelectProductUrl(mainNavigationId, subNavigationId, subSubNavigationId, navigationTitle) {
	return "?Select-Your-Product=" + escape(navigationTitle) + "(" + mainNavigationId + "." + subNavigationId + "." + subSubNavigationId + ")";
}


function GetSelectCheckoutOptions(mainNavigationId, subNavigationId, subSubNavigationId, familyId, productId, productName) {
	prevProducts = "";

	if (arrSelectedProducts && typeof(arrSelectedProducts) == 'object' && typeof(arrSelectedProducts.length) == 'number') {
		for (iC = 0; iC < arrSelectedProducts.length; iC++) {
			if (arrSelectedProducts[iC].ProductId != productId)
				prevProducts += arrSelectedProducts[iC].FamilyId + ":" + arrSelectedProducts[iC].ProductId + ":" + arrSelectedProducts[iC].Confirmed.toString() + "|";
		}
	}
	return "?Select-Your-Checkout-Options=" + productName + "(" + mainNavigationId + "." + subNavigationId + "." + subSubNavigationId + "." + prevProducts + familyId + ":" + productId + ":false)";
}


function GetShowBasket(mainNavigationId, subNavigationId, subSubNavigationId) {
	prevProducts = new String();

	if (arrSelectedProducts && typeof (arrSelectedProducts) == 'object' && typeof (arrSelectedProducts.length) == 'number') {
		for (iC = 0; iC < arrSelectedProducts.length; iC++) {
			prevProducts += arrSelectedProducts[iC].FamilyId + ":" + arrSelectedProducts[iC].ProductId + ":" + arrSelectedProducts[iC].Confirmed.toString() + ((iC < arrSelectedProducts.length - 1) ? "|" : "");
		}
	}
	return "?Select-Your-Checkout-Options=" + arrSelectedProducts[0].ProductName + "(" + mainNavigationId + "." + subNavigationId + "." + subSubNavigationId + "." + prevProducts + ")";
}


function GetSelectYourTimeframeUrl() {
	return "?Select-Your-Timeframe";
}

function GetUserDataUrl() {
	return "?Type-Your-Userdata";
}

function GetOrderOverviewUrl() {
	return "?Order-Overview";
}



var activeStep;
var previousStep;
var elementToFocus;
function ParseUrl(event) {
	hash = event.value;
	
	if (hash.substring(0, 3) == "/?/")
		hash = hash.substring(3);
	else if (hash.substring(0, 2) == "/?")
		hash = hash.substring(2);

	previousStep = activeStep;
	activeStep = event.value;
	var stepParam;

	if (hash.toString().indexOf("=") > 0) {
		// arrHash = hash.toString().substring(0, hash.toString().indexOf("="));
		activeStep = hash.toString().substring(0, hash.toString().indexOf("="));  //arrHash[0];
		arrParams = hash.toString().substring(hash.toString().indexOf("=") + 1, hash.toString().indexOf("&", hash.toString().indexOf("=")));  // arrHash[1].toString().split("(");
		arrStepParameters = hash.substring(hash.indexOf('(') + 1, hash.indexOf(')')).split("."); //  .split(")")[0].split(".");

		var arrAdditionalParameters = new Array();
		if (hash.indexOf("&", hash.indexOf(')')) > -1)
			arrAdditionalParameters = hash.toString().substring(hash.indexOf("&", hash.indexOf(')')) + 1, hash.length).split('&');
		
		if (arrStepParameters.length > 0) {
			mainNavigationId = parseInt(arrStepParameters[0]);
			if (arrStepParameters.length > 1) {
				subNavigationId = parseInt(arrStepParameters[1]);
				if (arrStepParameters.length > 2) {
					subSubNavigationId = parseInt(arrStepParameters[2]);
					if (arrStepParameters.length > 3) {
						arrTmpSelectedProducts = arrStepParameters[3].split('|');

						arrSelectedProducts = new Array();
						for (i = 0; i < arrTmpSelectedProducts.length; i++) {
							selectedProduct = arrTmpSelectedProducts[i].split(":");
							arrSelectedProducts[i] = new SelectedProduct(parseInt(selectedProduct[0]), parseInt(selectedProduct[1]), arrParams[0], (selectedProduct[2] == 'true'));
						}
					}
				}
			}
			
			for (iParam = 0; iParam < arrAdditionalParameters.length; iParam++)
			{
				param = arrAdditionalParameters[iParam].split('=');

				switch (param[0]) {
					case 'focus':
						elementToFocus = param[1];
						break;
					default:
				}
			}
		}
	}
	else
		activeStep = hash;


	switch (activeStep) {
		case 'Select-Your-Apple':
			firstLoad = false;
			showHourglass();
			setTimeout("activateStep1A();", 1);
			break;
		case 'Select-Your-Apple-Type':
			if (firstLoad) {
				preloadMainNavigationId = mainNavigationId;
				
				preloadNavigationData();
			}
			else
				Step1.SelectMainShopNavigation(mainNavigationId);
			break;
		case 'Select-Your-Apple-Model':
			if (firstLoad) {
				preloadMainNavigationId = mainNavigationId;
				preloadSubNavigationId = subNavigationId;

				preloadNavigationData();
			}
			else
				Step1.SelectSubShopNavigation(mainNavigationId, subNavigationId);
			break;
		case 'Select-Your-Product':
			if (firstLoad) {
				preloadMainNavigationId = mainNavigationId;
				preloadSubNavigationId = subNavigationId;
				preloadSubSubNavigationId = subSubNavigationId;

				preloadNavigationData();
			}
			else {
				Step2.SelectSubSubShopNavigation(mainNavigationId, subNavigationId, subSubNavigationId);
			}
			break;
		case 'Select-Your-Checkout-Options':
			if (!arrSelectedProductsData)
				arrSelectedProductsData = new Array();

			if (!arrVouchers)
				arrVouchers = new Array();

			if (!arrSelectedAccessoriesData)
				arrSelectedAccessoriesData = new Array();

			if (firstLoad || productsCache == null) {
				preloadMainNavigationId = mainNavigationId;
				preloadSubNavigationId = subNavigationId;
				preloadSubSubNavigationId = subSubNavigationId;
				//preloadSelectedProducts = arrSelectedProducts;

				preloadNavigationData();
			}
			else {					
				if (arrSelectedProducts.length > 0) {
					var productFound = false;
					var lastProduct = arrSelectedProducts[arrSelectedProducts.length - 1];
					for (iC = 0; iC < arrSelectedProductsData.length; iC++) {
						if (arrSelectedProductsData[iC].Id == lastProduct.ProductId)
							productFound = true;
					}

					if (!productFound) {
						var p = GetProduct(lastProduct.FamilyId, lastProduct.ProductId, productsCache.DataSet);
						arrSelectedProductsData[arrSelectedProductsData.length] = p;
					}
				}
				Step3.SelectCheckoutOptions(mainNavigationId, subNavigationId, subSubNavigationId, arrSelectedProductsData);
			}
			break;
		case 'Select-Your-Timeframe':
			if (firstLoad) {
				showHourglass();
				setTimeout("activateHome();", 1);
			}
			else {
				Step4.SelectTimeFrame();
			}
			break;
		case 'Type-Your-Userdata':
			if (firstLoad) {
				showHourglass();
				setTimeout("activateHome();", 1);
			}
			else {				
				Step4.TypeUserData();
			}
			break;
		case 'Order-Overview':
			//Able to deeplink, if a payment has failed.
			Step4.ShowOrderOverview();
			break;
		default:
			firstLoad = false;
			showHourglass();
			setTimeout("activateHome();", 1);
			break;
	}
}



function activateStepHeaders(activeStep, prevStep) {
	switch (activeStep) {
		case '#step1':
			$('#step1').removeClass().addClass('active');
			$('#step1 .header').unbind('click').removeAttr('style');
			$('#step2').removeClass().addClass('inactive');
			$('#step2 .header').unbind('click').removeAttr('style');
			$('#step3').removeClass().addClass('inactive');
			$('#step3 .header').unbind('click').removeAttr('style');
			$('#step4').removeClass().addClass('inactive');
			$('#step4 .header').unbind('click').removeAttr('style');
			break;
		case '#step2':
			$('#step1').removeClass().addClass('nextActive');
			$('#step1 .header').click($('#step1 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step2').removeClass().addClass('active');
			$('#step2 .header').unbind('click').removeAttr('style');
			$('#step3').removeClass().addClass('inactive');
			$('#step3 .header').unbind('click').removeAttr('style');
			$('#step4').removeClass().addClass('inactive');
			$('#step4 .header').unbind('click').removeAttr('style');
			break;
		case '#step3':
			$('#step1').removeClass().addClass('done');
			$('#step1 .header').click($('#step1 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step2').removeClass().addClass('nextActive');
			$('#step2 .header').click($('#step2 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step3').removeClass().addClass('active');
			$('#step3 .header').unbind('click').removeAttr('style');
			$('#step4').removeClass().addClass('inactive');
			$('#step4 .header').unbind('click').removeAttr('style');
			break;
		case '#step4':
			$('#step1').removeClass().addClass('done');
			$('#step1 .header').click($('#step1 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step2').removeClass().addClass('done');
			$('#step2 .header').click($('#step2 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step3').removeClass().addClass('nextActive');
			$('#step3 .header').click($('#step3 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			$('#step4').removeClass().addClass('active');
			$('#step4 .header').unbind('click').removeAttr('style');
			break;
	}

	var step = ExtractNumbersFromString(activeStep);

	if (step < 2) {
		if (Step2.Validate()) {
			$('#step2').removeClass().addClass('done');
			$('#step2 .header').click($('#step2 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
		}
	}
	if (step < 3) {
		if (Step2.Validate() && Step3.Validate()) {
			$('#step3').removeClass().addClass('done');
			$('#step3 .header').click($('#step3 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
		}
	}
	if (step < 4) {
		$('#step4 .header').unbind('click');
		if (Step2.Validate()) {
			if (Step3.Validate())
				$('#step4').removeClass().addClass('done');

			if (arrSelectedProducts.length > 0) {
				$('#step4 .header').unbind('click').click(function() { Step3.NextStep(); }); // .removeAttr('style');
				$('#step4 .header').click($('#step4 .header .done a:first').attr('onclick')).attr('style', 'cursor: pointer;');
			}
		}
	}

	// Update all cufons
	updateCufon('#step1');
	updateCufon('#step2');
	updateCufon('#step3');
	updateCufon('#step4');
	activeStepId = activeStep;
}









/*
--------------------------------------------------------
========================================================
REGION Preloading:

The functions for preloading data
========================================================
--------------------------------------------------------
*/

// called from initial function when first load is true
function preloadNavigationData() {
	if (preloadMainNavigationId && !mainShopNavigationCache) {
		//Debug.Log('preloadNavigationData mainShopNavigationCache');
		mainShopNavigationCache = new CachedDataset(preloadMainNavigationId, null);
		DataServices.LoadNavigationData("nl", preloadMainNavigationId, loaded1);
	}
	if (preloadSubNavigationId && !subShopNavigationCache) {
		//Debug.Log('preloadNavigationData subShopNavigationCache');
		subShopNavigationCache = new CachedDataset(preloadSubNavigationId, null);
		DataServices.LoadProducts("nl", preloadSubNavigationId, loaded2);
	}
	if (preloadSubSubNavigationId && !productsCache && !preloadSelectedProducts) {
		//Debug.Log('preloadNavigationData productsCache');
		productsCache = new CachedDataset(preloadSubSubNavigationId, null);
		DataServices.LoadProductGroupData("nl", preloadSubSubNavigationId, loaded3);

		if (arrSelectedProducts) {
			ps = new Array();
			for (i = 0; i < arrSelectedProducts.length; i++) {
				ps[ps.length] = arrSelectedProducts[i].ProductId;
			}

			DataServices.GetProducts('nl', ps, loaded4);
		}
	}
}

// Functions called after loaded data
function loaded1(data) { mainShopNavigationCache.DataSet = data; preloadDone(); }
function loaded2(data) { subShopNavigationCache.DataSet = data; preloadDone(); }
function loaded3(data) { productsCache.DataSet = data; preloadDone(); }
function loaded4(data) { arrSelectedProductsData = data; preloadSelectedProducts = data; preloadDone(); }

// Called when some data is loaded. When all required data is loaded the correct view is shown
function preloadDone()
{
	if ((preloadMainNavigationId && mainShopNavigationCache.DataSet) && !preloadSubNavigationId && !preloadSubSubNavigationId && !preloadSelectedProducts) {
		Step1.SelectMainShopNavigation(preloadMainNavigationId);

		showHourglass();
		setTimeout("activateStep1B();", 1);
		firstLoad = false;
	}
	else if ((preloadMainNavigationId && mainShopNavigationCache.DataSet) && (preloadSubNavigationId && subShopNavigationCache.DataSet) && !preloadSubSubNavigationId && !preloadSelectedProducts) {
		Step1.SelectMainShopNavigation(preloadMainNavigationId);
		Step1.SelectSubShopNavigation(preloadMainNavigationId, preloadSubNavigationId);

		showHourglass();
		setTimeout("activateStep1B();", 1);
		firstLoad = false;
	}
	else if ((preloadMainNavigationId && mainShopNavigationCache.DataSet) && (preloadSubNavigationId && subShopNavigationCache.DataSet) && (preloadSubSubNavigationId && productsCache.DataSet) && !preloadSelectedProducts) {
		Step1.SelectMainShopNavigation(preloadMainNavigationId);
		Step1.SelectSubShopNavigation(preloadMainNavigationId, preloadSubNavigationId);
		Step2.SelectSubSubShopNavigation(preloadMainNavigationId, preloadSubNavigationId, preloadSubSubNavigationId);

		showHourglass();
		setTimeout("activateStep2();", 1);
		firstLoad = false;
	}
	else if ((preloadMainNavigationId && mainShopNavigationCache.DataSet) && (preloadSubNavigationId && subShopNavigationCache.DataSet) && (preloadSubSubNavigationId && productsCache.DataSet) && preloadSelectedProducts) {
		Step1.SelectMainShopNavigation(preloadMainNavigationId);
		Step1.SelectSubShopNavigation(preloadMainNavigationId, preloadSubNavigationId);
		Step2.SelectSubSubShopNavigation(preloadMainNavigationId, preloadSubNavigationId, preloadSubSubNavigationId);		
		Step3.SelectCheckoutOptions(preloadMainNavigationId, preloadSubNavigationId, preloadSubSubNavigationId, preloadSelectedProducts);
		
		showHourglass();
		setTimeout("activateStep3();", 1);
		firstLoad = false;

	}
	Cufon.replace('#steps h2, #steps h4');
}
/*
--------------------------------------------------------
========================================================
END REGION Preloading
========================================================
--------------------------------------------------------
*/












var arrPreloaders = new Array();
function preloaderShow(containerIdentifier, selectorToHide, noBorder) {

	if (selectorToHide) {
		arrPreloaders[containerIdentifier] = selectorToHide;
		$(selectorToHide).hide();
	}
	
	if (noBorder) {
		$(containerIdentifier).append($('#preloaderNoBorder').clone().removeAttr('id'));
		$(containerIdentifier + ' .ajaxLoaderNoBorder').show();
	}
	else {
		$(containerIdentifier).append($('#preloader').clone().removeAttr('id'));
		$(containerIdentifier + ' .ajaxLoader').show();
	}
}


function preloaderHide(containerIdentifier) {
	$(containerIdentifier + ' .ajaxLoader, ' + containerIdentifier + ' .ajaxLoaderNoBorder').remove();
	if (arrPreloaders[containerIdentifier])
		$(arrPreloaders[containerIdentifier]).show();
}




// Visits the basket
function ShowBasket(mainNavigationId, subNavigationId, subSubNavigationId) {
	$.address.value(GetShowBasket(mainNavigationId, subNavigationId, subSubNavigationId));
	//return false;
}


// Adds the product to the basket and goes to the Options page
function AddProductToBasket(mainNavigationId, subNavigationId, subSubNavigationId, familyId, productId, productName) {
	$.address.value(GetSelectCheckoutOptions(mainNavigationId, subNavigationId, subSubNavigationId, familyId, productId, productName));
	//return false;
}

// Removes a product and goes to the options page or home if no products in basket anymore
function RemoveProductFromBasket(familyId, productId, linkThrough) {
	var newProducts = new Array();
	var newProdutsData = new Array();

	for (iC = 0; iC < arrSelectedProducts.length; iC++) {
		if (arrSelectedProducts[iC].ProductId != productId)
			newProducts[newProducts.length] = arrSelectedProducts[iC];
	}

	if (arrSelectedProductsData) {
		for (iC = 0; iC < arrSelectedProductsData.length; iC++) {
			if (arrSelectedProductsData[iC].Id != productId)
				newProdutsData[newProdutsData.length] = arrSelectedProductsData[iC];
		}
	}

	arrSelectedProductsData = newProdutsData;
	arrSelectedProducts = newProducts;
	
	if (arrSelectedProducts.length > 0) {
		if (linkThrough) {
			$.address.value(GetSelectCheckoutOptions(mainNavigationId, subNavigationId, subSubNavigationId, arrSelectedProducts[0].FamilyId, arrSelectedProducts[0].ProductId, arrSelectedProducts[0].ProductName));
		}
	}
	else {
		resetSelectedOptions();
		
		if (linkThrough) {
			$.address.value(GetSelectProductUrl(mainNavigationId, subNavigationId, subSubNavigationId, subNavigationSelectedItem.Name));  
		}
		//GetSelectProductUrl( GetMainShopNavigationUrl());
	}
	return false;
}


// Removes a accessory and re-binds the totals
function RemoveAccessoryFromBasket(productId) {
	var newAccessories = new Array();
	var newAccessoriesData = new Array();

	for (iC = 0; iC < selectedAccessories.length; iC++) {
		if (selectedAccessories[iC].Id != productId)
			newAccessories[newAccessories.length] = selectedAccessories[iC];
		else
			$('#sale_' + productId).attr('checked', '');
	}

	selectedAccessories = newAccessories;
	calculateTotals();
}





// removes existing click events and adds a ajax based click event to the control
function addHistoryClickToObject(object, address) {
	if (typeof (object) != 'object')
		object = document.getElementById(object);
		
	$(object).attr('href', '/#/' + address);
	$(object).unbind('click').click( function() { $.address.value(address); return false; } );
}


// Seaches a navigationitem in the supplied navigation
function GetNavigationItemByTypeId(navigatioTypenId, navigation) {
	for (i = 0; navigation.length > i; i += 1) {
		if (navigation[i].NavigationTypeId == navigatioTypenId) {
			return navigation[i];
		}
	}
	return;
}



function GetTopProduct(productId, productDataSet) {
	for (i = 0; productDataSet.length > i; i += 1) {
		if (productDataSet[i].Id == productId)
			return productDataSet[i];
	}
	return;
}

function GetProduct(familyId, productId, productDataSet) {
	for (i = 0; productDataSet.length > i; i += 1) {
		if (productDataSet[i].Id == familyId) {
			for (i2 = 0; productDataSet[i].Products.length > i2; i2 += 1) {
				if (productDataSet[i].Products[i2].Id == productId)
					return productDataSet[i].Products[i2];
			}
		}
	}
	return;
}

function Search(searchFor, url) {
	document.location.replace(url.toString().replace('{0}', escape(searchFor)));
	return false;
}

// Object definition for caching a dataset
function CachedDataset(parentId, data) {
	this.ParentId = parentId;
	this.DataSet = data;
}

// Object for storing selected products
function SelectedProduct(familyId, productId, productName, confirmed) {
	this.FamilyId = familyId;
	this.ProductId = productId;
	this.ProductName = productName;

	if (confirmed)
		this.Confirmed = confirmed;
	else
		this.Confirmed = false;
}

//TODO: NOT working when going back.
var activeStepId;
// function that re-activates the cufons for the newly activated step and the current step
function updateCufon(newStepId, previousStepId) {
	if (cufonEnabled && Cufon) {
		Cufon.replace(newStepId + ' h2');
		Cufon.replace(newStepId + ' .header h4');

		if (previousStepId) {
			Cufon.replace(previousStepId + ' h2');
			Cufon.replace(previousStepId + ' .header h4');
		}
			
	}
}

function trim(value) {
	value = value.replace(/^\s+/, '');
	value = value.replace(/\s+$/, '');
	return value;
}

// Extract al numbers from a string at returns it as an int
function ExtractNumbersFromString(stringToExtractFrom) {
	var numericRegex = new RegExp("\\d+", "gi");
	var result = stringToExtractFrom.match(numericRegex);

	return parseInt(result);
}


function toUpper(value) {
	//alert('toUpper ' + value);
	return value ? value.toUpperCase() : "";
}

function checkLength(sender, length, nextControl) {
	if (sender && sender.value && sender.value.length == length) {
		$('#' + nextControl).focus();
	}

}
function ShowSkype(linkContainer, name) {
	document.getElementById(linkContainer).href = 'skype:' + name + '?call';
}


function ShowEmail(linkContainer, firstPart, secondPart) {
	as = '@';

	document.getElementById(linkContainer).href = 'mailto:' + firstPart + as + secondPart;
}



function MapToBasket() {
	var _Basket = new MacRepair.MacRepairBasket();

	_Basket.Comments = ($("#comments").val() == "Vermeld hier uw wensen en opmerkingen met betrekking tot uw bestelling...") ? "" : $("#comments").val();
	_Basket.products = arrSelectedProductsData;
	_Basket.accessories = arrSelectedAccessoriesData;
	_Basket.vouchers = arrVouchers;
	_Basket.userData = userData;

	_Basket.repairSpeed = selectedRepairSpeed;
	_Basket.defaultRepairSpeed = defaultRepairSpeedPrice;

	_Basket.transport = selectedTransport;
	_Basket.defaultTransport = defaultTransportPrice;

	_Basket.payment = selectedPayment;
	_Basket.defaultPayment = defaultPaymentPrice;

	_Basket.present = selectedPresent;
	_Basket.defaultPresent = defaultPresentPrice;

	_Basket.defaultProductGuarantees = defaultGuaranteePrices;

	if (calendarSelectedStartDate)
		_Basket.pickupdate = new PriceComponent(0, calendarSelectedStartDate.getDateOnlyFormatted(), 0, 0);
	if (calendarSelectEndDate)
		_Basket.deliverydate = new PriceComponent(0, calendarSelectEndDate.getDateOnlyFormatted(), 0, 0);

	_Basket.shippingCountryID = shippingCountryId;
	_Basket.languageCode = languageCode;

	_Basket.mainNavigationId = mainNavigationId;
	_Basket.subNavigationId = subNavigationId;
	_Basket.subSubNavigationId = subSubNavigationId;

	return _Basket;
}

function resetNavigationData() {
	firstLoad = true;
	arrSelectedProductsData = null;
	mainShopNavigationCache = null;
	subShopNavigationCache = null;
	productsCache = null;
	preloadSelectedProducts = null;
}

var Step1 = {}

// Public
Step1.SelectMainShopNavigation = function(topNavigationId) {
	$("#subNavigationList").hide();
	$('#subSubNavigationDisplay').hide();


	if (!firstLoad)
	{
		showHourglass();
		setTimeout("activateStep1B();", 1);
	}

	// Load texts and image for the selected navigationitem (like Laptop or iPod)
	if (navigationItemIntroCache && navigationItemIntroCache.ParentId && navigationItemIntroCache.ParentId == topNavigationId && navigationItemIntroCache.DataSet) {
		BindMainShopNavigationItemIntro(navigationItemIntroCache.DataSet);
	}
	else {
		navigationItemIntroCache = new CachedDataset(topNavigationId, null);
		BindMainShopNavigationItemIntro(null);
		preloaderShow('#msniContents', null, true);
		DataServices.LoadNavigationItemIntro("nl", topNavigationId, mainShopNavigationItemIntroLoaded);
	}

	if (mainShopNavigationCache && mainShopNavigationCache.ParentId && mainShopNavigationCache.ParentId == topNavigationId && mainShopNavigationCache.DataSet) {
		$("#subNavigationList").show();
		BindMainShopNavigation(mainShopNavigationCache.DataSet);
	}
	else {
		preloaderShow('.modelSelection .selectionArea', '#subNavigationList', true);
		mainShopNavigationCache = new CachedDataset(topNavigationId, null);
		DataServices.LoadNavigationData("nl", topNavigationId, mainShopNavigationLoaded);
	}


	// Loads the top products for the selected navigationitem (like laptop or iPod)
	if (topProductsCache && topProductsCache.ParentId && topProductsCache.ParentId == topNavigationId && topProductsCache.DataSet) {
		mainShopNavigationTopProductsLoaded(topProductsCache.DataSet);
	}
	else {
		preloaderShow('#topRepairsDisplay .middle', '#topRepairsList', true);
		topProductsCache = new CachedDataset(topNavigationId, null);
		BindMainShopNavigationTopProducts(null);
		DataServices.LoadTopProducts("nl", topNavigationId, mainShopNavigationTopProductsLoaded);
	}
}


Step1.SelectSubShopNavigation = function(topnavigationId, subNavigationId) {
	mainShopNavigationSelectedItem = GetNavigationItemByTypeId(subNavigationId, mainShopNavigationCache.DataSet);
	$("#ssniImage").attr('src', mainShopNavigationSelectedItem.Image);
	$("#ssniImageTitle").html('<strong>' + mainShopNavigationSelectedItem.Title + '</strong>');
	$("#ssniTitle").text('Kies uw ' + mainShopNavigationSelectedItem.Title);
	addHistoryClickToObject('ssniCloseButton', GetSubShopNavigationItemUrl(mainShopNavigationSelectedItem.ParentNavigationId, mainShopNavigationSelectedItem.Title));
	$('#subSubNavigationDisplay').show();
	
	if (subShopNavigationCache && subShopNavigationCache.ParentId && subShopNavigationCache.ParentId == mainShopNavigationSelectedItem.NavigationTypeId && subShopNavigationCache.DataSet) {
		bindSubShopNavigation(subShopNavigationCache.DataSet);
	}
	else {
		preloaderShow('#subSubNavigationDisplay .choice', '#subSubNavigationList', true);
		subShopNavigationCache = new CachedDataset(subNavigationId, null);
		DataServices.LoadProducts("nl", mainShopNavigationSelectedItem.NavigationTypeId, subShopNavigationLoaded);
	}
}















/* 
============================
----------------------------
PRIVATE FUNCTIONS
----------------------------
============================
*/


// data voor main shop navigation is loaded. Cache and bind
function mainShopNavigationLoaded(results) {
	mainShopNavigationCache.DataSet = results;
	BindMainShopNavigation(mainShopNavigationCache.DataSet);
}

// 
function mainShopNavigationItemIntroLoaded(results) {
	navigationItemIntroCache.DataSet = results;
	BindMainShopNavigationItemIntro(navigationItemIntroCache.DataSet);
}

//
function mainShopNavigationTopProductsLoaded(results) {
	topProductsCache.DataSet = results;
	BindMainShopNavigationTopProducts(topProductsCache.DataSet);
}



// Binds the supplied dataset to the dataview
function BindMainShopNavigation(dataset) {
	if (!subNavigationDataView) {
		subNavigationDataView = $create(Sys.UI.DataView, null, null, null, $get("subNavigationList"));
		subNavigationDataView.add_itemRendered(onMainShopNavigationItemRendered);
	}
	subNavigationDataView.set_data(dataset);
	preloaderHide('.modelSelection .selectionArea');
}


// Event is called on itemCreated to set additional data like URLs
function onMainShopNavigationItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	if (item.NavigationType == 1 && item.NavigationUrl == "")
		addHistoryClickToObject(Sys.get("a", args), GetSubSubShopNavigationItemUrl(item.ParentNavigationId, item.NavigationTypeId, item.Title));
	else
		Sys.bind(Sys.get("a", args), "href", item, "NavigationUrl");

	Sys.bind(Sys.get("strong", args), "innerHTML", item, "Title");
	Sys.bind(Sys.get("img", args), "src", item, "Image");
	Sys.bind(Sys.get("img", args), "alt", item, "Title");
	Sys.bind(Sys.get("img", args), "width", 60);
	Sys.bind(Sys.get("img", args), "height", 60);
}


// Text and image for the navigation item is loaded. Now bind
function BindMainShopNavigationItemIntro(results) {
	
	if (results) {
		$("#msniImage").attr('src', results.Image);
		$("#msniTitle").html('<h3>' + results.Title + '</h3>');
		$("#msniContents").html(results.Description);
		$('.categoryDescription A').show();
	}
	else {
		$("#msniImage").attr('src', '/images/e.gif');
		$("#msniTitle").html('<h3></h3>');
		$('.categoryDescription A').hide();
		$("#msniContents").html('');
	}
}



function BindMainShopNavigationTopProducts(dataset) {
	if (!topProductsListDataView)
		topProductsListDataView = $create(Sys.UI.DataView, null, null, null, $get("topRepairsList"));

	if (dataset) {
		topProductsListDataView.set_data(dataset.Products);
		$("#topRepairsDisplay h3").html(dataset.Title);
		$("#topRepairsList").show();
		
		preloaderHide('#topRepairsDisplay .middle');
	}
	else {
		topProductsListDataView.set_data(null);
		$("#topRepairsDisplay h3").html('');
		$("#topRepairsList").hide();
	}
}




// Event called after the data is loaded from the webservice
function subShopNavigationLoaded(results) {
	subShopNavigationCache.DataSet = results;
	bindSubShopNavigation(subShopNavigationCache.DataSet);
	
}


// Binds the supplied dataset to the sub-shop navigation and shows
function bindSubShopNavigation(dataset) {
	if (!subSubNavigationDataView) {
		subSubNavigationDataView = $create(Sys.UI.DataView, null, null, null, $get("subSubNavigationList"));
		subSubNavigationDataView.add_itemRendered(subSubNavigationDataViewListItemRendered);
	}
	subSubNavigationDataView.set_data(dataset);
	if (!firstLoad)
	{
		showHourglass();
		setTimeout("activateStep1B();", 1);
	}

	if (subSubNavigationId)
		$('#subsub_' + subSubNavigationId).attr('checked', 'checked');

	preloaderHide('#subSubNavigationDisplay .choice');

	// Automaticly forward to the products page if there is just one machine
	if (activeStep == "Select-Your-Apple-Model" && previousStep == 'Select-Your-Apple-Type' && dataset.length == 1) {
		// preloaderShow('#subSubNavigationList', '#subSubNavigationList LI', true);
		document.location.href = "/#/" + GetSelectProductUrl(mainShopNavigationCache.ParentId, subShopNavigationCache.ParentId, dataset[0].Id, dataset[0].Name);
	}
}

function subSubNavigationDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	addHistoryClickToObject('subsub_' + item.Id, GetSelectProductUrl(mainShopNavigationCache.ParentId, subShopNavigationCache.ParentId, item.Id, item.Name));
}





var Step2 = {}

// Public
Step2.SelectSubSubShopNavigation = function(mainNavigationId, subNavigationId, navigationId) {
		
	//Debug.Start('3','selectSubSubShopNavigation(' + mainNavigationId + ',' + subNavigationId + ',' + navigationId + ')');
	subNavigationSelectedItem = GetTopProduct(navigationId, subShopNavigationCache.DataSet);
	//Debug.Update('3', subNavigationSelectedItem.Name);
	subSubShopNavigationItemIntroLoaded(subNavigationSelectedItem);

	if (productsCache && productsCache.ParentId && productsCache.ParentId == subNavigationSelectedItem.Id && productsCache.DataSet) {
		bindProductGroupData(productsCache.DataSet);
	}
	else {
		preloaderShow('#subSubNavigationList', '#subSubNavigationList LI', true);
		productsCache = new CachedDataset(subNavigationSelectedItem.Id, null);
		DataServices.LoadProductGroupData("nl", subNavigationSelectedItem.Id, productGroupDataLoaded);
	}
}

Step2.Validate = function() {
	var valid = false;

	if (arrSelectedProducts && arrSelectedProducts.length > 0)
		valid = true;

	return valid;
}



















/* 
============================
----------------------------
PRIVATE FUNCTIONS
----------------------------
============================
*/

// Data is retrieved from service, now bind
function productGroupDataLoaded(results) {
	preloaderHide('#subSubNavigationList');
	productsCache.DataSet = results;
	bindProductGroupData(productsCache.DataSet);
}



// Bind the product families and products
function bindProductGroupData(dataset) {

	if (!productGroupDataDataView) {
		productGroupDataDataView = $create(Sys.UI.DataView, null, null, null, $get("productGroupDataList"));
		productGroupDataDataView.add_itemRendered(productGroupDataDataViewListItemRendered);
	}
	productGroupDataDataView.set_data(dataset);

	fnApplyToggleRepairMoreInfoEvents();
	fnApplyRollOver();
	fnApplyBarEvents();
	if (!firstLoad)
	{
		showHourglass();
		setTimeout("activateStep2();", 1);
	}
		

	
	//Debug.Stop('3');
}



// New product family is created in the dataview (ie. Display or Harddisk)
function productGroupDataDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	
	// First one should get an additional class
	if (args.index == 0)
		$('#fam_' + subNavigationSelectedItem.Id + '_' + item.Id).addClass('starter');

	// Set the icon for the family if it's there
	if (item.Icon && item.Icon != '')
		$('#fam_' + subNavigationSelectedItem.Id + '_' + item.Id + ' .bar h3').css('background-image', 'url(..' + item.Icon + ')');

	// Create data store objects and bind
	productGroupProductListDataView = $create(Sys.UI.DataView, null, null, null, Sys.get("dl", args));
	productGroupProductListDataView.add_itemRendered(onProductItemRendered);
	productGroupProductListDataView.set_data(item.Products);

	productGroupFaqListDataView = $create(Sys.UI.DataView, null, null, null, Sys.get("ul", args));
	productGroupFaqListDataView.set_data(item.Faqs);

	setTimeout('fnFocus();', 500);
}


function onProductItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	if (elementToFocus && elementToFocus == 'product_' + item.Id) {
		$('#' + elementToFocus).toggleClass('active');
		$('#fam_' + subSubNavigationId + '_' + item.Family.Id).addClass('activeSection');
		$('#fam_' + subSubNavigationId + '_' + item.Family.Id + ' .details').show();
	}
	
	$('#productGroupProductList_ShortDescription_' + item.Id).html(item.ShortDescription);
	$('#lnkSelectProduct_' + item.Id).click(function() { AddProductToBasket(mainNavigationId, subNavigationId, subSubNavigationId, item.Family.Id, item.Id, item.Name.replace('(','').replace(')','')); scroll(0, 0); return false; });
}


function checkProducts(checked, productIds) {
	productsToShow = productIds.split(',');

	for (i = 0; i < productsToShow.length; i++) {
		if (checked)
			$('#product_' + productsToShow[i]).addClass('active');
		else
			$('#product_' + productsToShow[i]).removeClass('active');
	}
}


// The text and image for the product are loaded... show the results!
function subSubShopNavigationItemIntroLoaded(results) {
	if (results) {
		$("#sssniImage").attr('src', results.ImageFilename);
		$("#sssniTitle").html(results.Name);
		$("#sssniContents").html(results.ShortDescription);
		$("#sssniSelectedModel").html('Kies uw Reparatie of Upgrade'); // + results.Name);

		$('#step2A .categoryImage').show();
		$('#step2A .categoryDescription').show();
		if (results.ResearchAllowed == true)
			$('#sssniResearch').show();
		else
			$('#sssniResearch').hide();
	}
	else {
		$('#step2A .categoryImage').hide();
		$('#step2A .categoryDescription').hide();

		$("#sssniImage").attr('src', '/images/e.gif');
		$("#sssniTitle").html('');
		$("#sssniContents").html('');
		$("#sssniSelectedModel").html('');
	}
}


var Step3 = {}

var selectOptionNotFound = false;
Step3.SelectCheckoutOptions = function(mainNavigationId, subNavigationId, navigationId, arrSelectedProducts) {
	var lastProduct = arrSelectedProducts[arrSelectedProducts.length - 1];
	var productIds = new Array();
	for (iCount = 0; iCount < arrSelectedProducts.length; iCount++) {
		productIds[iCount] = arrSelectedProducts[iCount].Id;
	}

	bindSelectedProducts(arrSelectedProducts.clone());
	bindSelectedAccessories(selectedAccessories.clone());
	setProducts(arrSelectedProducts.clone());

	loadTransporterOptions(productIds);
	loadPaymentMethodOptions(productIds);
	loadRepairSpeedOptions(productIds);
	loadPresentOptions(productIds);
	loadAccessories(lastProduct.Id);

	bindVouchers(arrVouchers.clone());

	calculateTotals();

	if (!firstLoad)
	{
		showHourglass();
		setTimeout("activateStep3();", 1);
	}
		
	
	// re-show the current prices and re-hide the other one after a timeout 
	// to make sure that the retrieved values are bound to the page
	setTimeout("resetBTW();", 1000);
}

Step3.Validate = function() {	
	var valid = true;
	if (selectedRepairSpeed.Id == 0) {
		valid = false;
	}
	if (selectedTransport.Id == 0) {
		valid = false;
	}

	if (selectedPayment.Id == 0) {
		valid = false;
	}
	return valid;
}

Step3.NextStep = function() {
	Step3.ConfirmProducts();
	$('#repairSpeedError').html('');
	$('#transportError').html('');
	$('#paymentError').html('');

	if (Step3.Validate()) {
		$.address.value(GetSelectYourTimeframeUrl());
	}
	else {
		if (selectedRepairSpeed.Id == 0) {
			$('#repairSpeedError').html('Kies de snelheid van uw reparatie');
		}
		if (selectedTransport.Id == 0) {
			$('#transportError').html('Kies de transportwijze die bij u past');
		}
		if (selectedPayment.Id == 0) {
			$('#paymentError').html('Kies uw gewenste betaalwijze');
		}
	}
}


Step3.EmailBasket = function(senderName, senderEmail, senderPhone, remarks) {
	var Basket = MapToBasket();
	Basket.userData = new function() { };

	Basket.userData.InvoiceLastName = senderName;
	Basket.userData.InvoiceEmail = senderEmail;
	Basket.userData.InvoiceTelephoneNumber = senderPhone;
	Basket.Comments = remarks;

	DataServices.EmailBasket(Basket, EmailBasketFinished, EmailBasketError);

	// GetNewUserDataForContact();

}


//function GetNewUserDataForContact() {
//	if (!userData) {
//		DataServices.GetNewUserData(GetNewUserDataLoadedForContact);
//	}
//}

function GetNewUserDataLoadedForContact(results) {
	
}

function EmailBasketFinished(result) {
	document.getElementById('TB_iframeContent').src = document.getElementById('TB_iframeContent').src + '&succes=true';
	//'document.location.replace(document.('TB_iframeContent.location.href + '&succes=true');
	// clicked = false;
	//tb_remove();
	//window.top.location = result;
}

function EmailBasketError(error) {
	//clicked = false;
	// tb_remove();
	alert(error._message);
	// $("#fc_conditionsError").html(error._message);
}


Step3.AddExtraProduct = function() {
	Step3.ConfirmProducts();
	$.address.value(GetSelectProductUrl(mainNavigationId, subNavigationId, subSubNavigationId, subNavigationSelectedItem.Name));
}

Step3.ConfirmProducts = function() {
	for (iCount = 0; iCount < arrSelectedProducts.length; iCount++) {
		arrSelectedProducts[iCount].Confirmed = true;
	}
}


Step3.ClearNonConfirmedProducts = function() {
	if (arrSelectedProducts && typeof (arrSelectedProducts) == 'object' && typeof (arrSelectedProducts.length) == 'number') {
		var newProducts = new Array();
		var newProdutsData = new Array();
		
		var deleteIdList = new Array();
		var deleteFamilyList = new Array();
		
		for (iC = 0; iC < arrSelectedProducts.length; iC++) {
			if (arrSelectedProducts[iC].Confirmed == false)
			{
			    deleteIdList[iC] = arrSelectedProducts[iC].ProductId;
			    deleteFamilyList[iC] = arrSelectedProducts[iC].FamilyId;
			}
		}
		
		for (iC = 0; iC < deleteIdList.length; iC++) {
		    RemoveProductFromBasket(deleteFamilyList[iC], deleteIdList[iC]);
		}

		if (arrSelectedProducts.length == 0) {
			selectedRepairSpeed.Id = 0;
			selectedTransport.Id = 0;
			selectedPayment.Id = 0;
		}
	}
}




/* 
============================
----------------------------
PRIVATE FUNCTIONS
----------------------------
============================
*/

// Bind the product families and products
function bindSelectedProducts(dataset) {
	if (!selectedProductsDataView) {
		selectedProductsDataView = $create(Sys.UI.DataView, null, null, null, $get("selectedProductsList"));
		selectedProductsDataView.add_itemRendered(selectedProductsDataViewListItemRendered);
	}
	if (!basketProductsDataView) {
		basketProductsDataView = $create(Sys.UI.DataView, null, null, null, $get("basketProductsList"));
		basketProductsDataView.add_itemRendered(basketProductsDataViewListItemRendered);
	}
	basketProductsDataView.set_data(dataset);
	selectedProductsDataView.set_data(dataset);
}


function selectedProductsDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	$('#lnkToDetail1_' + item.Id).click(function() { tb_show(item.Name, '/Thickboxes/tb_Details.aspx?ref=' + item.Number + '&KeepThis=true&TB_iframe=true&width=950&height=540', ''); return false; });
	$('#lnkToDetail2_' + item.Id).click(function() { tb_show(item.Name, '/Thickboxes/tb_Details.aspx?ref=' + item.Number + '&KeepThis=true&TB_iframe=true&width=950&height=540', ''); return false; });
	$('#sPLImage_' + item.Id).attr('src', item.ImageFilenameBasket);
	$('#desc_' + item.Id).html(item.ShortDescription);
	DataServices.LoadGuaranteeOptions("nl", item.Id, guaranteeOptionsLoaded);
}

function basketProductsDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	
	$('#basketProductsListPrice_' + item.Id).html(formatCurrency(getProductTotal(item.Price)));  //{binding Price, convert=formatCurrency }
	$('#basketProductsListPriceExcl_' + item.Id).html(formatCurrency(getProductTotalExcl(item.PriceExcl)));  //{binding PriceExcl, convert=formatCurrency }
}


function bindSelectedAccessories(dataset) {
	
	if (!basketAccessoriesDataView) {
		basketAccessoriesDataView = $create(Sys.UI.DataView, null, null, null, $get("selectedAccessoriesList"));
		basketAccessoriesDataView.add_itemRendered(basketAccessoriesDataViewListItemRendered);
	}
	basketAccessoriesDataView.set_data(dataset);

	if (dataset.length > 0)
		$('.rowMeebestellen').show();
	else
		$('.rowMeebestellen').hide();
}

function basketAccessoriesDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	
	$('#selectedAccessoriesListPrice_' + item.Id).html(formatCurrency(item.Price));
	$('#selectedAccessoriesListPriceExcl_' + item.Id).html(formatCurrency(item.PriceExcl));
}

/*
--------------------------------------------------------
========================================================
REGION Garantuee:
========================================================
--------------------------------------------------------
*/


function guaranteeOptionsLoaded(results) {
	if (results && results.Options && results.Options.length > 0) {
		guaranteeListDataView = $create(Sys.UI.DataView, null, null, null, $get("guaranteeList_" + results.Options[0].ProductId));
		guaranteeListDataView.add_itemRendered(onGuaranteeItemRendered);
		guaranteeListDataView.set_data(results.Options);
		fnActivateToolTips('#guaranteeList_' + results.Options[0].ProductId + ' .help img');
		$('#repairChoice_' + results.Options[0].ProductId).show();
	}
}

function onGuaranteeItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	//GarantueePrice has already been selected, then check the right radiobutton OR the default garantuee is going to be selected.
	if ((typeof (productGuaranteePrices[item.ProductId]) == 'object' && productGuaranteePrices[item.ProductId].Id == item.Id) ||
		(typeof (productGuaranteePrices[item.ProductId]) != 'object' && item.DefaultSelected == true)) {
		$('#gar_' + item.ProductId + '_' + item.Id).attr('checked', 'checked');
		setGuarantee(item.ProductId, item.Id, item.Title, item.Price, item.PriceExcl, item.DefaultSelected);
	}	
	
	if (item.DefaultSelected == true)
		$('#garlbl_' + item.ProductId + '_' + item.Id).text($('#garlbl_' + item.ProductId + '_' + item.Id).text() + ' (standaard)');

}

/*
--------------------------------------------------------
========================================================
END REGION Garantuee
========================================================
--------------------------------------------------------
*/

/*
--------------------------------------------------------
========================================================
REGION Transport:
========================================================
--------------------------------------------------------
*/

function loadTransporterOptions(productIds) {
	preloaderShow('#transport .choice', '#transport .hideOnPreload', true);
	DataServices.LoadTransportOptions("nl", productIds, transportersLoaded);
}

var transporterListDataView;
function transportersLoaded(results) {
	if (results) {

		if (!transporterListDataView) {
			transporterListDataView = $create(Sys.UI.DataView, null, null, null, $get("transporterList"));
			transporterListDataView.add_itemRendered(onTransporterItemRendered);
		}
		transporterListDataView.set_data(results.Options);
		fnActivateToolTips('#transport .help img');
	}
	preloaderHide('#transport .choice');
}

function onTransporterItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	var transportSet = false;
	
	if (selectedTransport.Id == item.Id || (selectedTransport.Id == 0 && item.DefaultSelected == true)) {
		$('#transport_' + item.Id).attr('checked', 'checked');
		setTransport(item.Id, item.Title, item.OptionCode, item.Price, item.PriceExcl, item.DefaultSelected);
		transportSet = true;
	}

	//If selectedPayment is not present in the current collection, reset it.
	if (transportSet == false && selectedTransport.Id == 0) {
		selectedTransport = new PriceComponent(0, 0, 0, 0);
		selectOptionNotFound = true;
	}

	if (item.DefaultSelected == true) {
		defaultTransportPrice.Price = item.Price;
		defaultTransportPrice.PriceExcl = item.PriceExcl;
		$('#transportLbl_' + item.Id).text($('#transportLbl_' + item.Id).text() + (item.DefaultSelected ? ' (standaard)' : ''));
	}
}

/*
--------------------------------------------------------
========================================================
END REGION Transport
========================================================
--------------------------------------------------------
*/


/*
--------------------------------------------------------
========================================================
REGION Payment:
========================================================
--------------------------------------------------------
*/

function loadPaymentMethodOptions(productIds) {
	preloaderShow('#betaling .choice', '#betaling .hideOnPreload', true);
	DataServices.LoadPaymentOptions("nl", productIds, paymentMethodsLoaded);
}

var paymentListDataView;
function paymentMethodsLoaded(results) {
	if (results) {

		if (!paymentListDataView) {
			paymentListDataView = $create(Sys.UI.DataView, null, null, null, $get("paymentList"));
			paymentListDataView.add_itemRendered(onPaymentMethodOptionItemRendered);
		}
		paymentListDataView.set_data(results.Options);
		fnActivateToolTips('#betaling .help img');
	}
	preloaderHide('#betaling .choice');
}

function onPaymentMethodOptionItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	var paymentSet = false;

	if (selectedPayment.Id == item.Id || (selectedPayment.Id == 0 && item.DefaultSelected == true)) {
		$('#payment_' + item.Id).attr('checked', 'checked');
		setPayment(item.Id, item.Title, item.OptionCode, item.Price, item.PriceExcl, item.DefaultSelected);
		paymentSet = true;
	}

	//If selectedPayment is not present in the current collection, reset it.
	if (paymentSet == false && selectedPayment.Id == 0) {
		selectedPayment = new PriceComponent(0, 0, 0, 0);
		selectOptionNotFound = true;
	}

	if (item.DefaultSelected == true) {
		defaultPaymentPrice.Price = item.Price;
		defaultPaymentPrice.PriceExcl = item.PriceExcl;
		$('#paymentLbl_' + item.Id).text($('#paymentLbl_' + item.Id).text() + ' (standaard)');
	}
}

/*
--------------------------------------------------------
========================================================
END REGION Payment
========================================================
--------------------------------------------------------
*/

/*
--------------------------------------------------------
========================================================
REGION Repair Speed:
========================================================
--------------------------------------------------------
*/

function loadRepairSpeedOptions(productIds) {
	preloaderShow('#snelheid .choice', '#snelheid .hideOnPreload', true);
	DataServices.LoadRepairSpeedOptions("nl", productIds, repairSpeedLoaded);
}

var repairSpeedListDataView;
function repairSpeedLoaded(results) {
	if (results) {

		if (!repairSpeedListDataView) {
			repairSpeedListDataView = $create(Sys.UI.DataView, null, null, null, $get("repairSpeedList"));
			repairSpeedListDataView.add_itemRendered(onRepairSpeedOptionItemRendered);
		}
		repairSpeedListDataView.set_data(results.Options);
		fnActivateToolTips('#snelheid .help img');
	}
	preloaderHide('#snelheid .choice');
}

function onRepairSpeedOptionItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	var repairSpeedSet = false;
	
	//Select the chose repairspeed or the default.
	if (selectedRepairSpeed.Id == item.Id || (selectedRepairSpeed.Id == 0 && item.DefaultSelected == true)) {
		$('#repairSpeed_' + item.Id).attr('checked', 'checked');
		setRepairSpeed(item.Id, item.Title, item.OptionCode, item.Price, item.PriceExcl, item.DefaultSelected);
		repairSpeedSet = true;
	}
	
	//If selectedRepairSpeed is not present in the current collection, reset it.
	if (repairSpeedSet == false && selectedRepairSpeed.Id == 0) {
		selectedRepairSpeed = new PriceComponent(0, 0, 0, 0);
		selectOptionNotFound = true;
	}

	if (item.DefaultSelected == true) {
		defaultRepairSpeedPrice.Price = item.Price;
		defaultRepairSpeedPrice.PriceExcl = item.PriceExcl;
		$('#repairSpeedLbl_' + item.Id).text($('#repairSpeedLbl_' + item.Id).text() + ' (standaard)');
	}
}
/*
--------------------------------------------------------
========================================================
END REGION Repair Speed
========================================================
--------------------------------------------------------
*/

/*
--------------------------------------------------------
========================================================
REGION Accessories:
========================================================
--------------------------------------------------------
*/


function loadAccessories(productId) {
	arrAccessoriesData = new Array();
	DataServices.LoadProductAccessories("nl", productId, accessoriesLoaded);
}

var accessoriesListDataView;
function accessoriesLoaded(results) {
	if (results) {
		arrAccessoriesData = results;
		if (!accessoriesListDataView) {
			accessoriesListDataView = $create(Sys.UI.DataView, null, null, null, $get("accessoriesList"));
			accessoriesListDataView.add_itemRendered(onAccessoriesItemRendered);
		}
		if (results.length == 0)
			$('.sales, .salesRow').hide();
		else
			$('.sales, .salesRow').show();
		
		accessoriesListDataView.set_data(results);
	}
}

function onAccessoriesItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	for (i = 0; i < selectedAccessories.length; i++) {
		//Is Checked
		if (selectedAccessories[i].Id == item.Id)
			$('#sale_' + item.Id).attr('checked', true);
	}

	$('#accessdesc_' + item.Id).html(item.ShortDescription);
	$('#accessImg_' + item.Id).attr('src', item.ImageFilename);
	if (!item.NormalPrice || item.NormalPrice == 0)
		$('#fromPrice_' + item.Id).hide();

	if (item.DefaultSelected) {
		$('#sale_' + item.Id).attr('checked', true);
		setAccessory(document.getElementById('sale_' + item.Id), item.Id, item.Name, item.Price, item.PriceExcl);
	}
}

/*
--------------------------------------------------------
========================================================
END REGION Accessories
========================================================
--------------------------------------------------------
*/

/*
--------------------------------------------------------
========================================================
REGION Presents:
========================================================
--------------------------------------------------------
*/




function loadPresentOptions(productIds) {
	preloaderShow('#kado .choice', '#kado .hideOnPreload', true);
	DataServices.LoadPresentOptions("nl", productIds, presentsLoaded);
}

var presentsListDataView;
function presentsLoaded(results) {
	if (results) {

		if (!presentsListDataView) {
			presentsListDataView = $create(Sys.UI.DataView, null, null, null, $get("presentsList"));
			presentsListDataView.add_itemRendered(onPresentsListItemRendered);
		}

		if (!results.Options || results.Options.length == 0) {
			$('#kadoContainer, .giftRow').hide();
			$('#giftReminder').hide();
			$('#introKorting').show();
		}
		else {
			$('#kadoContainer, .giftRow').show();
			$('#giftReminder').show();
			$('#introKorting').hide();
		}
			
		presentsListDataView.set_data(results.Options);
		fnActivateToolTips('#kado .help img');
	}
	preloaderHide('#kado .choice');
}





function onPresentsListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	if (selectedPresent.Id == item.Id || (selectedPresent.Id == 0 && item.DefaultSelected == true)) {
		$('#gift_' + item.Id).attr('checked', 'checked');		
		setPresent(item.Id, item.Title, item.OptionCode, item.Price, item.PriceExcl, item.DefaultSelected);
	}
	
	if (item.DefaultSelected == true)
		$('#giftLbl_' + item.Id).text($('#giftLbl_' + item.Id).text() + ' (standaard)');
}


/*
--------------------------------------------------------
========================================================
END REGION Presents
========================================================
--------------------------------------------------------
*/


/*
--------------------------------------------------------
========================================================
REGION Vouchers:
========================================================
--------------------------------------------------------
*/


function bindVouchers(result) {
	if (arrVouchers) {
		if (!basketVouchersDataView) {
			basketVouchersDataView = $create(Sys.UI.DataView, null, null, null, $get("basketVouchersList"));
		}

		basketVouchersDataView.set_data(result);
	}
}

function AddVoucher() {
	$('#couponError').html('');
	var voucherCode = trim(escape($('#fc_kortingscode').val()));
	if (voucherCode != '') {
		var voucherPresent = false;
		for (i = 0; arrVouchers.length > i; i += 1) {
			if (arrVouchers[i].voucherCode == voucherCode) {
				voucherPresent = true;
			}
		}

		if (!voucherPresent) {
			DataServices.GetVoucher(voucherCode, IsValidVoucherSuccess, IsValidVoucherError);	
		}
		else
			$('#couponError').html('Coupon staat al in de lijst.');
	}
	else
		$('#couponError').html('Deze code is niet geldig');
}

function RemoveVoucherFromBasket(voucherID) {
	var newArrVouchers = new Array();

	for (iC = 0; iC < arrVouchers.length; iC++) {
		if (arrVouchers[iC].voucherID != voucherID)
			newArrVouchers[newArrVouchers.length] = arrVouchers[iC];
	}

	arrVouchers = newArrVouchers;

	calculateTotals();
}

var voucher;
function IsValidVoucherSuccess(results) {
	$('#couponError').html('');

	var addVoucher = true;

	voucher = results;
	
	if (results.discount > 0)
	{
		results.description += " (Korting)";
	}
	else if (results.discountPercentage > 0)
	{
		//Check if theres already an voucher with a discount percentage. If so, then its invalid.
		for (i = 0; arrVouchers.length > i; i += 1) {
			if (arrVouchers[i].discountPercentage > 0) {
				$('#couponError').html('Mag maar 1 voucher met een percentage korting.');
				addVoucher = false;
			}
		}

		results.Description += " (Kortingspercentage)";
	}
	else if (results.noShippingCost)
	{
		results.description += " (Geen bezorgkosten)";
	}
		
	addVoucherToBasket(voucher);
	
}

function IsValidVoucherError(error) {
	$('#couponError').html(error._message);
}

function addVoucherToBasket(voucher) {
	arrVouchers[arrVouchers.length] = voucher;

	calculateTotals();
}

/*
--------------------------------------------------------
========================================================
END REGION Vouchers
========================================================
--------------------------------------------------------
*/


var Step4 = {}

Step4.SelectTimeFrame = function() {
	showHourglass();
	setTimeout("activateStep4();", 1);
	if (daysForRepair > 1)
		$("#cs4DaysForRepair").text(daysForRepair + ' werkdagen');
	else
		$("#cs4DaysForRepair").text(daysForRepair + ' werkdag');
	loadDisabledDays();
}

Step4.ShowButtonsNextStep = function() {
	//Show the Next Step Button, if a date has been selected.
	
	if (Step4.Validate() == true)
		$('#step4BBtns').show()
	else
		$('#step4BBtns').hide()
}

Step4.TypeUserData = function() {
	//Show the control where the user, can type in their user data.
	showHourglass();
	setTimeout("activateStep4C();", 1);
	
	GetNewUserData();
	InitValidationStep4();
}

Step4.ShowOrderOverview = function() {
	if (firstLoad)
		GetBasketSession();
	else
		showOrderOverview();
}

Step4.Validate = function() {
	if (!calendarSelectedStartDate || !calendarSelectEndDate)
		return false;
	else
		return true;
}

















/*
--------------------------------------------------------
========================================================
REGION OrdeOverview:
========================================================
--------------------------------------------------------
*/
function showOrderOverview() {
	$("#fc_conditionsError").html('');
	//Show OrderView
	showHourglass();
	setTimeout("activateStep4D();", 1);
	//Bind the chose mac product.
	bindOrderOverview(subNavigationSelectedItem);
	//Bind the BasketProducts
	bindOrderOverviewProducts(arrSelectedProductsData.clone());
	//Bind the BasketAccessories
	bindOrderOverviewAccessories(arrSelectedAccessoriesData.clone());
	//Bind the BasketVouchers
	bindOrdeOverviewVouchers(arrVouchers.clone());
	//Bind order configurations
	bindOrderConfigurations();
	//Calculate totals
	calculateTotals();
	//Bind the userdata
	bindUserDataView(userData);
}

function bindOrderOverview(result) {
	if (result) {
		$('#OrderOverviewYourMac').html(subNavigationSelectedItem.Name);
		$("#OrderOverviewYourMacImage").attr('alt', subNavigationSelectedItem.Name);
		$("#OrderOverviewYourMacImage").attr('src', subNavigationSelectedItem.ImageFilenameBasket);
	}

	$('#orderOverviewPickUpDate').html(calendarSelectedStartDate.getDateOnlyFormattedAsShortString());
	$('#orderOverviewDeliveryDate').html(calendarSelectEndDate.getDateOnlyFormattedAsShortString());
}

// Bind the product families and products
function bindOrderOverviewProducts(dataset) {
	if (!orderOverviewProductsDataView) {
		orderOverviewProductsDataView = $create(Sys.UI.DataView, null, null, null, $get("OrderOverviewProductList"));
		orderOverviewProductsDataView.add_itemRendered(orderOverviewProductsDataViewListItemRendered);
	}
	orderOverviewProductsDataView.set_data(dataset);
}

function orderOverviewProductsDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;
	
	if (defaultGuaranteePrices[item.Id] && defaultGuaranteePrices[item.Id].Price && item && item.Warranty) {
		$('#OrderOverviewProductList .description .warranty').show();  //{ { Warranty.Title } }
		$("#ooWarranty_PriceIncl").html(formatCurrency((-defaultGuaranteePrices[item.Id].Price + item.Warranty.Price)));
		$("#ooWarranty_PriceExcl").html(formatCurrency((-defaultGuaranteePrices[item.Id].PriceExcl + item.Warranty.PriceExcl)));
	}
	else {
		$('#OrderOverviewProductList .description .warranty').hide();
	}
	if (args.index == 0)
		$('#ooProductRow_tr_' + item.Id).addClass("first");
	else
		$('#ooProductRow_tr_' + item.Id).addClass("extra");

	$('#ooProductRow_img_' + item.Id).attr('src', item.ImageFilenameBasket);
}


function bindOrderOverviewAccessories(dataset) {	
	if (!orderOverviewAccessoriesDataView) {
		orderOverviewAccessoriesDataView = $create(Sys.UI.DataView, null, null, null, $get("OrderOverviewAccessoryList"));
		orderOverviewAccessoriesDataView.add_itemRendered(orderOverviewAccessoriesDataViewListItemRendered);
	}
	orderOverviewAccessoriesDataView.set_data(dataset);
}

function orderOverviewAccessoriesDataViewListItemRendered(sender, args) {
	var dataView = sender;
	var item = args.dataItem;

	$('#ooAccessoryRow_img_' + item.Id).attr('src', item.ImageFilenameBasket);
}


function bindOrdeOverviewVouchers(dataset) {
	if (!orderOverviewVoucherDataView) {
		orderOverviewVoucherDataView = $create(Sys.UI.DataView, null, null, null, $get("OrderOverviewVoucherList"));
		//orderOverviewVoucherDataView.add_itemCreated(orderOverviewVoucherDataViewListItemCreated);
	}
	orderOverviewVoucherDataView.set_data(dataset);
}

function bindOrderConfigurations() {
	if (selectedRepairSpeed) {
		$("#ooRepairSpeed_Name").html(selectedRepairSpeed.Name);
		$("#ooRepairSpeed_PriceIncl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultRepairSpeedPrice.Price : 0) + selectedRepairSpeed.Price));
		$("#ooRepairSpeed_PriceExcl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultRepairSpeedPrice.PriceExcl : 0) + selectedRepairSpeed.PriceExcl));
	}
	if (selectedTransport) {
		$("#ooTransport_Name").html(selectedTransport.Name);
		$("#ooTransport_PriceIncl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultTransportPrice.Price : 0) + selectedTransport.Price));
		$("#ooTransport_PriceExcl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultTransportPrice.PriceExcl : 0) + selectedTransport.PriceExcl));
	}
	if (selectedPayment) {
		$("#ooPayment_Name").html(selectedPayment.Name);
		$("#ooPayment_PriceIncl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultPaymentPrice.Price : 0) + selectedPayment.Price));
		$("#ooPayment_PriceExcl").html(formatCurrency(((arrSelectedProductsData.length == 1) ? -defaultPaymentPrice.PriceExcl : 0) + selectedPayment.PriceExcl));
	}
	if (selectedPresent && selectedPresent.Id != 0) {
		$('#step4D .present').show();
		$("#ooPresent_Name").html(selectedPresent.Name);
		$("#ooPresent_PriceIncl").html(formatCurrency(selectedPresent.Price));
		$("#ooPresent_PriceExcl").html(formatCurrency(selectedPresent.PriceExcl));
	}
	else {
		$('#step4D .present').hide();
	}
}

function bindUserDataView(dataset) {
	if (!userDataView) {
		userDataView = $create(Sys.UI.DataView, null, null, null, $get("userDataOverView"));
	}
	
	var title = '';
	if (dataset.InvoiceGenderIsMan)
		title = 'Dhr.';
	else
		title = 'Mevr.';

	var deliveryTitle = '';
	if (dataset.DeliveryGenderIsMan)
		deliveryTitle = 'Dhr.';
	else
		deliveryTitle = 'Mevr.';

	var pickupTitle = '';
	if (dataset.PickUpGenderIsMan)
		pickupTitle = 'Dhr.';
	else
		pickupTitle = 'Mevr.';

	$("#userDataTitle").text(title + ' ' + dataset.InvoiceFirstName + ' ' + trim(' ' + dataset.InvoiceLastNamePrefix + ' ' + dataset.InvoiceLastName));
	$("#userDataPickUpTitle").text(pickupTitle + ' ' + dataset.PickUpFirstName + ' ' + trim(' ' + dataset.PickUpLastNamePrefix + ' ' + dataset.PickUpLastName));
	$("#userDataDeliveryTitle").text(deliveryTitle + ' ' + dataset.DeliveryFirstName + ' ' + trim(' ' + dataset.DeliveryLastNamePrefix + ' ' + dataset.DeliveryLastName));

	if (dataset.InvoiceIsBusiness) {
		$("#userDataBusinessData").html(dataset.InvoiceCompanyName + '<br/>' + dataset.InvoiceVatNumber + '<br/>' + dataset.InvoiceCocNumber + '<br/>');
	} else {
		$("#userDataBusinessData").html('');
	}

	if (!dataset.DifferentPickUpAddress)
		$("#userDataPickUpAddress").hide();
	else
		$("#userDataPickUpAddress").show();
	if (!dataset.DifferentDeliveryAddress)
		$("#userDataDeliveryAddress").hide();
	else
		$("#userDataDeliveryAddress").show();

	userDataView.set_data(dataset);
}

var clicked =false;
function ValidateOrderOverview() {
		if ($("#fc_conditions").is(":checked")) {
			$("#fc_conditionsError").html('');

			if (checkSubmit()) {
				clicked = true;
				
				//preloaderShow('#orderPreLoader', null, true);
				tb_show('loading...', '/preloader.html?modal=true&amp;KeepThis=true&amp;TB_iframe=false&amp;width=94&amp;height=94', '')

				var Basket = MapToBasket();
				DataServices.InsertBasket(Basket, InsertBasketFinished, InsertBasketError);
			}
			else
				alert('Moment, uw bestelling wordt verwerkt...');
		}
		else {
			$("#fc_conditionsError").html('U moet akkoord gaan met de algemene voorwaarden en de privacy verklaring');
		}
		
}

//Checks if the ValidateOrderOverview is already in process
function checkSubmit() {
	if (clicked == false)
		return true;
	else
		return false;
}

function InsertBasketFinished(result) {
	clicked = false;
	tb_remove();
	window.top.location = result;
}

function InsertBasketError(error) {
	clicked = false;
	tb_remove();
	alert(error._message);
	$("#fc_conditionsError").html(error._message);
}

function GetBasketSession() {
	DataServices.GetBasketSession(GetBasketSessionLoaded);
}

function GetBasketSessionLoaded(results) {
	if (results != null) {
		//TODO:
		arrSelectedProductsData = results.products;
		arrSelectedAccessoriesData = results.accessories;
		arrVouchers = results.vouchers;
		userData = results.userData;
		selectedRepairSpeed	= results.repairSpeed;
		selectedTransport = results.transport;
		selectedPayment	= results.payment;
		selectedPresent	= results.present;
		selectedGuarantee = results.guarantee;

		calendarSelectedStartDate = getDateFromFormattedDate(results.pickupdate.Name);
		calendarSelectEndDate = getDateFromFormattedDate(results.deliverydate.Name);

		arrSelectedProducts = new Array();

		for (i = 0; i < arrSelectedProductsData.length; i++) {
			arrSelectedProducts[i] = new SelectedProduct(arrSelectedProductsData[0].Family.Id, arrSelectedProductsData[0].Id, arrSelectedProductsData[0].Name);
		}

		mainNavigationId = results.mainNavigationId;
		subNavigationId = results.subNavigationId;
		subSubNavigationId = results.subSubNavigationId;

		preloadMainNavigationId = mainNavigationId;
		preloadSubNavigationId = subNavigationId;
		preloadSubSubNavigationId = subSubNavigationId;
		
		//preloadNavigationData();
		
		showOrderOverview();		
	}
}

//Gets a new UserData object
function GetNewUserData() {
	if (!userData) {
		DataServices.GetNewUserData(GetNewUserDataLoaded);
	}	
}

function GetNewUserDataLoaded(results) {
	userData = results;
	bindUserDataForm(userData);
	SetJQuery();
}

function bindUserDataForm(dataset) {
	if (!userDataForm) {
		userDataForm = $create(Sys.UI.DataView, null, null, null, $get("customerData"));
	}
	userDataForm.set_data(dataset);
}

/* 
============================
----------------------------
Calendar FUNCTIONS
----------------------------
============================
*/


function loadDisabledDays()
{
	DataServices.GetDisabledDays(disabledDaysLoaded);
}

function disabledDaysLoaded(results) {
	if (results) {
		for (i = 0; i < results.length; i++) {
			disabledDays[results[i]] = true;
		}
	}

	fnActivateCalendar();
}


/*
--------------------------------------------------------
========================================================
REGION UserData:
========================================================
--------------------------------------------------------
*/



function SaveUserData() {
	//Save the UserData to the object.
	userData.InvoiceFirstName = $('#fc_voornaam').val();
	userData.InvoiceLastNamePrefix = $('#fc_tussenvoegsel').val();
	userData.InvoiceLastName = $('#fc_achternaam').val();
	userData.InvoiceStreet = $('#fc_straat').val();
	userData.InvoiceHousNumber = $('#fc_huisnummer').val();
	userData.InvoiceHouseNumberAddition = $('#fc_toevoeging').val();
	userData.InvoicePostalCode = $('#fc_postcode').val();
	userData.InvoicePostalCode2 = $('#fc_postcode2').val();
	userData.InvoiceCity = $('#fc_plaatsnaam').val();
	userData.InvoiceEmail = $('#fc_emailadres').val();
	userData.InvoiceTelephoneNumber = $('#fc_telefoon1').val();
	if ($("#fc_particulier").is(":checked"))
		userData.InvoiceIsBusiness = false;
	else
		userData.InvoiceIsBusiness = true;
	if ($("#fc_man").is(":checked"))
		userData.InvoiceGenderIsMan = true;
	else
		userData.InvoiceGenderIsMan = false;

	userData.NewsletterSubscription = $("#fc_nieuwsbrief").is(":checked");

	if ($("#fc_afleverGelijk").is(":checked"))
		userData.DifferentDeliveryAddress = false;
	else
		userData.DifferentDeliveryAddress = true;

	if ($("#fc_ophaalGelijk").is(":checked"))
		userData.DifferentPickUpAddress = false;
	else
		userData.DifferentPickUpAddress = true;

	//Next Step: OrderOverview
	$.address.value(GetOrderOverviewUrl());
}

function ValidateUserData() {
	$("#aspnetForm").submit();
}


function phoneNumberValidation(value, element, param) {
    element.value = value.replace(/[^\d\.]+/g, '');
    return (element.value.toString().length == 10 || element.value.toString().length == 0);
}


function postalCodeValidation(value, element, param) {
	if (param == "fc_oph") {
		if (!$("#fc_ophaalAfwijkend").is(":checked")) 
			return true
	}
	else if (param == "fc_afl") {
		if (!$("#fc_afleverAfwijkend").is(":checked"))
			return true
	}
		
	value = $("#" + param + "_postcode").val() + $("#" + param + "_postcode2").val();
    return /^[1-9]{1}[0-9]{3}[a-zA-Z]{2}$/.test(value);
}


function InitValidationStep4() {
	$.validator.setDefaults({
		submitHandler: function() {
			//Userdata
			SaveUserData();		
		},
		debug: true,
		onfocusout: false,
		onkeyup: false,
		onclick: false
	});
	
	$.validator.addMethod("postalCode", postalCodeValidation);
	$.validator.addMethod("phoneNumber", phoneNumberValidation);

	$("#aspnetForm").validate({
		wrapper: "div",
		errorElement: "div",
		errorClass: "message",
		errorPlacement: function(error, element) {
			if (element.is(":radio")) {
				error.insertAfter(element.parent("div"));
				error.addClass('error');
			}
			else {
				error.insertAfter(element.parent("div").parent("div"));
				error.addClass('error');
			}
		},
		success: function(label) {
			label.parent().removeClass('error');
			label.remove();
		},
		rules: {
			//invoice
			klantsoort: { required: true },

			fc_bedrijfsnaam: { required: "#fc_zakelijk:checked" },
			fc_kvk: { required: "#fc_zakelijk:checked" },
			fc_btw: { required: "#fc_zakelijk:checked" },
			fc_gender: { required: true },
			fc_voornaam: { required: true },
			fc_achternaam: { required: true },
			fc_straat: { required: true },
			fc_huisnummer: { required: true },
			fc_postcode: { required: true, postalCode: "fc" },
			fc_plaatsnaam: { required: true },
			fc_emailadres: { required: true, email: true },
			fc_telefoon1: { required: true , phoneNumber: true },
			fc_telefoon2: { phoneNumber: true },

			//pickup
			ophaaladres: { required: true },
			fc_oph_gender: { required: "#fc_ophaalAfwijkend:checked" },
			fc_oph_voornaam: { required: "#fc_ophaalAfwijkend:checked" },
			fc_oph_achternaam: { required: "#fc_ophaalAfwijkend:checked" },
			fc_oph_straat: { required: "#fc_ophaalAfwijkend:checked" },
			fc_oph_huisnummer: { required: "#fc_ophaalAfwijkend:checked" },
			fc_oph_postcode: { required: "#fc_ophaalAfwijkend:checked", postalCode: "fc_oph" },
			fc_oph_plaatsnaam: { required: "#fc_ophaalAfwijkend:checked" },

			//delivery	
			afleveradres: { required: true },
			fc_afl_gender: { required: "#fc_afleverAfwijkend:checked" },
			fc_afl_voornaam: { required: "#fc_afleverAfwijkend:checked" },
			fc_afl_achternaam: { required: "#fc_afleverAfwijkend:checked" },
			fc_afl_straat: { required: "#fc_afleverAfwijkend:checked" },
			fc_afl_huisnummer: { required: "#fc_afleverAfwijkend:checked" },
			fc_afl_postcode: { required: "#fc_afleverAfwijkend:checked", postalCode: "fc_afl" },
			fc_afl_plaatsnaam: { required: "#fc_afleverAfwijkend:checked" }

		},
		messages: {
			klantsoort: "Maak een keuze tussen Particulier en Zakelijk",

			fc_bedrijfsnaam: "Bedrijfsnaam is niet ingevuld",
			fc_kvk: "KVK nummer is niet ingevuld",
			fc_btw: "BTW nummer is niet ingevuld",
			fc_gender: "Titel is niet ingevuld",
			fc_voornaam: "Voornaam is niet ingevuld",
			fc_achternaam: "Achternaam is niet ingevuld",
			fc_straat: "Straat is niet ingevuld",
			fc_huisnummer: "Huisnummer is niet ingevuld",
			fc_postcode:
			{
				required: "Postcode is niet ingevuld",
				postalCode: "Postcode is niet correct ingevuld"
			},
			fc_plaatsnaam: "Plaatsnaam is niet ingevuld",
			fc_emailadres:
			{
				required: "Emailadres is niet ingevuld",
				email: "Emailadres is niet correct"
			},
			
			fc_telefoon1:
			{
			    required: "Telefoon is niet ingevuld",
			    phoneNumber: "Telefoonnummer bestaat niet uit 10 cijfers"
			},
			fc_telefoon2:
			{
			    phoneNumber: "Telefoonnummer bestaat niet uit 10 cijfers"
			},

			ophaaladres: "Maak een keuze of u een afwijkend ophaal adres wilt.",
			fc_oph_gender: "Titel is niet ingevuld",
			fc_oph_voornaam: "Voornaam is niet ingevuld",
			fc_oph_achternaam: "Achternaam is niet ingevuld",
			fc_oph_straat: "Straat is niet ingevuld",
			fc_oph_huisnummer: "Huisnummer is niet ingevuld",
			fc_oph_postcode:
			{
				required: "Postcode is niet ingevuld",
				postalCode: "Postcode is niet correct ingevuld"
			},

			fc_oph_plaatsnaam: "Plaatsnaam is niet ingevuld",

			afleveradres: "Maak een keuze of u een afwijkend aflever adres wilt.",
			fc_afl_gender: "Titel is niet ingevuld",
			fc_afl_voornaam: "Voornaam is niet ingevuld",
			fc_afl_achternaam: "Achternaam is niet ingevuld",
			fc_afl_straat: "Straat is niet ingevuld",
			fc_afl_huisnummer: "Huisnummer is niet ingevuld",
			fc_afl_postcode:
			{
				required: "Postcode is niet ingevuld",
				postalCode: "Postcode is niet correct ingevuld"
			},
			fc_afl_plaatsnaam: "Plaatsnaam is niet ingevuld"

		}
	});
}

function SetJQuery() {
	// ACCOUNT DATA TOGGLE
	$("#fc_particulier:checked").parents('ul').find('li.zakelijk').hide();
	$("#fc_zakelijk:checked").parents('ul').find('li.zakelijk').show();
	$("#fc_particulier").click(function() {
		$(this).parents('ul').find('li.zakelijk').hide();
	})
	$("#fc_zakelijk").click(function() {
		$(this).parents('ul').find('li.zakelijk').show();
	})

	if ($("#fc_ophaalGelijk").is(":checked")) {
		$("#fc_ophaalGelijk").parents('ul').find('li.oph').hide();
	}
	if ($("#fc_ophaalAfwijkend").is(":checked")) {
		$("#fc_ophaalAfwijkend").parents('ul').find('li.oph').show();
	}
	$("#fc_ophaalGelijk").click(function() {
		if ($("#fc_ophaalGelijk:checked")) {
			//$(this).parents('ul').find('div.error').removeClass("error");
			$(this).parents('ul').find('li.oph').hide();
		}
	})
	$("#fc_ophaalAfwijkend").click(function() {
		if ($("#fc_ophaalAfwijkend:checked")) {
			$(this).parents('ul').find('li.oph').show();
		}
	})

	if ($("#fc_afleverGelijk").is(":checked")) {
		$("#fc_afleverGelijk").parents('ul').find('li.afl').hide();
	}
	if ($("#fc_afleverAfwijkend").is(":checked")) {
		$("#fc_afleverAfwijkend").parents('ul').find('li.afl').show();
	}

	$("#fc_afleverGelijk").click(function() {
		if ($("#fc_afleverGelijk:checked")) {
			$(this).parents('ul').find('li.afl').hide();
		}
	})
	$("#fc_afleverAfwijkend").click(function() {
		if ($("#fc_afleverAfwijkend:checked")) {
			$(this).parents('ul').find('li.afl').show();
		}
	})
}

	




var DataServices = {}

// Loads the sub-navigation for the supplied
DataServices.LoadNavigationData = function(culture, parentNavigationId, eventAfterLoad) {
	IPublicDataService.GetSubnavigation(culture, parentNavigationId, eventAfterLoad);
}


// Loads the navigation intro block for the supplied navigation id
DataServices.LoadNavigationItemIntro = function(languageCode, navigationId, eventAfterLoad) {
	IPublicDataService.GetNavigationIntro(languageCode, navigationId, eventAfterLoad);
}


// Loads the navigation intro block for the supplied navigation id
DataServices.LoadPrice = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.TotalForProductOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}

// Loads the top products from the webservice
DataServices.LoadTopProducts = function(languageCode, navigationId, eventAfterLoad) {
	IPublicDataService.GetTopProducts(languageCode, navigationId, eventAfterLoad);
}


// Loads the products per family for the selected product
DataServices.LoadProductGroupData = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetProductGroupData(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Load the transport options for the product
DataServices.LoadTransportOptions = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetTransportOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Load the guarantee options for the product
DataServices.LoadGuaranteeOptions = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetGuaranteeOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Load the payment options for the product
DataServices.LoadPaymentOptions = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetPaymentOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Load the repair speed options for the product
DataServices.LoadRepairSpeedOptions = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetRepairSpeedOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}

// Load the free present options for the product
DataServices.LoadPresentOptions = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetPresentOptions(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Loads the accessories for the product
DataServices.LoadProductAccessories = function(languageCode, productId, eventAfterLoad) {
	IPublicDataService.GetProductAccessories(languageCode, productId, shippingCountryId, eventAfterLoad);
}


// Loads the products for the supplied group
DataServices.LoadProducts = function(languageCode, productGroupId, eventAfterLoad) {
	IPublicDataService.GetProductData(languageCode, productGroupId, shippingCountryId, eventAfterLoad);
}


DataServices.GetProducts = function(languageCode, productIds, eventAfterLoad) {
	IPublicDataService.GetProducts(languageCode, productIds, shippingCountryId, eventAfterLoad);
}

DataServices.GetDisabledDays = function(eventAfterLoad) {
	IPublicDataService.GetDisabledDays(eventAfterLoad);
}

DataServices.GetNewUserData = function(eventAfterLoad) {
	IPublicDataService.GetNewUserData(eventAfterLoad);
}
DataServices.GetBasketSession = function(eventAfterLoad) {
	IPublicDataService.GetBasketSession(eventAfterLoad);
}
DataServices.InsertBasket = function(basket, eventAfterLoad, eventAfterError) {
	IPublicDataService.InsertBasket(basket, eventAfterLoad, eventAfterError);
}
DataServices.EmailBasket = function(basket, eventAfterLoad, eventAfterError) {
	IPublicDataService.EmailBasket(basket, eventAfterLoad, eventAfterError);
}
DataServices.GetVoucher = function(voucherCode, eventAfterLoad, eventAfterError) {
	IPublicDataService.GetVoucher(voucherCode, eventAfterLoad, eventAfterError);
}




var selectedBasketProduct = new PriceComponent(0, 0, 0, 0);
var selectedRepairSpeed = new PriceComponent(0, 0, 0, 0);
var selectedGuarantee = new PriceComponent(0, 0, 0, 0);
var selectedTransport = new PriceComponent(0, 0, 0, 0);
var selectedPayment = new PriceComponent(0, 0, 0, 0);
var selectedPresent = new PriceComponent(0, 0, 0, 0);
var selectedAccessories = new Array();



function resetSelectedOptions() {
	selectedRepairSpeed = new PriceComponent(0, 0, 0, 0);
	selectedGuarantee = new PriceComponent(0, 0, 0, 0);
	selectedTransport = new PriceComponent(0, 0, 0, 0);
	selectedPayment = new PriceComponent(0, 0, 0, 0);
	selectedPresent = new PriceComponent(0, 0, 0, 0);
	selectedAccessories = new Array();
}


function setProducts(selectedProducts) {
	p = 0;
	pEx = 0;
	for (i = 0; i < selectedProducts.length; i++) {
		p += selectedProducts[i].Price;
		pEx += selectedProducts[i].PriceExcl;
	}

	selectedBasketProduct = new PriceComponent(-1, 'products', p, pEx);

	calculateTotals();
}


var defaultTransportPrice = new PriceComponent(0, 0, 0, 0);
function setTransport(id, name, value, price, priceExcl, defaultPrice) {
	selectedTransport = new PriceComponent(id, name, price, priceExcl);
	if (defaultPrice)
		defaultTransportPrice = selectedTransport;	
	
	calculateTotals();
}


var defaultRepairSpeedPrice = new PriceComponent(0, 0, 0, 0);
function setRepairSpeed(id, name, value, price, priceExcl, defaultPrice) {
	//Reset the calendar when repair speed is changed
	if (selectedRepairSpeed.Id != 0 && selectedRepairSpeed.Id != id) {
		calendarSelectedStartDate = null;
		calendarSelectEndDate = null;
		$('.calendarDates .pickup .data').text('');
		$('.calendarDates .return .data').text('');
		fnResetCalendar(calendarSelectedStartDate);
	}
	
	selectedRepairSpeed = new PriceComponent(id, name, price, priceExcl);
	if (defaultPrice)
		defaultRepairSpeedPrice = selectedRepairSpeed;

	daysForRepair = ExtractNumbersFromString(value);
	
	calculateTotals();
}

var defaultGuaranteePrices = new Array();
var productGuaranteePrices = new Array();
var totalDefaultGuaranteePrices = 0;
var totalDefaultGuaranteePricesExcl = 0;
function setGuarantee(productId, id, name, price, priceExcl, defaultPrice) {
	productGuaranteePrices[productId] = new PriceComponent(id, name, price, priceExcl);
	if (defaultPrice)
		defaultGuaranteePrices[productId] = productGuaranteePrices[productId];
	$('#garProd_' + productId).html(name + ' garantie');

	var totalForGuarantee = 0;
	var totalForGuaranteeExcl = 0;
	totalDefaultGuaranteePrices = 0;
	totalDefaultGuaranteePricesExcl = 0;
	for (i = 0; i < arrSelectedProductsData.length; i++) {
		if (arrSelectedProductsData[i].Id == productId) {
			arrSelectedProductsData[i].Warranty.Title = name + ' garantie';
			arrSelectedProductsData[i].Warranty.Id = id;
			arrSelectedProductsData[i].Warranty.ProductId = productId;
			arrSelectedProductsData[i].Warranty.Price = price;
			arrSelectedProductsData[i].Warranty.PriceExcl = priceExcl;
		}

		if (productGuaranteePrices[arrSelectedProductsData[i].Id]) {
			totalForGuarantee += productGuaranteePrices[arrSelectedProductsData[i].Id].Price;
			totalForGuaranteeExcl += productGuaranteePrices[arrSelectedProductsData[i].Id].PriceExcl;
			if (defaultGuaranteePrices[arrSelectedProductsData[i].Id]) {
				totalDefaultGuaranteePrices += defaultGuaranteePrices[arrSelectedProductsData[i].Id].Price;
				totalDefaultGuaranteePricesExcl += defaultGuaranteePrices[arrSelectedProductsData[i].Id].PriceExcl;
			}
		}
	}

	selectedGuarantee = new PriceComponent(-1, 'totalForGuarantee', totalForGuarantee, totalForGuaranteeExcl);
	calculateTotals();
}

var defaultPaymentPrice = new PriceComponent(0, 0, 0, 0);
function setPayment(id, name, value, price, priceExcl, defaultPrice) {
	selectedPayment = new PriceComponent(id, name, price, priceExcl);
	if (defaultPrice)
		defaultPaymentPrice = selectedPayment;
	
	calculateTotals();
}

var defaultPresentPrice = new PriceComponent(0, 0, 0, 0);
function setPresent(id, name, value, price, priceExcl, defaultPrice) {
	selectedPresent = new PriceComponent(id, name, price, priceExcl);
	if (defaultPrice)
		defaultPresentPrice = selectedPresent;
		
	calculateTotals();
}

function setAccessory(sender, id, name, price, priceExcl) {
	var newSet = new Array();
	var newSetData = new Array();
	
	for (i = 0; i < selectedAccessories.length; i++) {
		if (selectedAccessories[i].Id != id)
			newSet[newSet.length] = selectedAccessories[i];

		for (x = 0; x < arrSelectedAccessoriesData.length; x++) {
			if (selectedAccessories[i].Id == arrSelectedAccessoriesData[x].Id)
				newSetData[newSetData.length] = arrSelectedAccessoriesData[x]; 
		}		
	}

	if (sender.checked) {
		newSet[newSet.length] = new PriceComponent(id, name, price, priceExcl);

		for (x = 0; x < arrAccessoriesData.length; x++) {
			if (arrAccessoriesData[x].Id == id)
				newSetData[newSetData.length] = arrAccessoriesData[x];
		}			
	}

	selectedAccessories = newSet;
	arrSelectedAccessoriesData = newSetData;

	calculateTotals();
	
	clampDetailsToBottom();
}

function clampDetailsToBottom() {
	var parentHeight = $('.repairDetails').height();
	var boxHeight = $('.orderCosts').height();
	
	var additionalOrderHeight = $('#selectedAccessoriesList').height();
	var additionalOrderHeight2 = $('#additionalOrder').height();
	var additionalOrderHeight3 = $('#additionalOrderSpacer').height();
	
	var combinedHeight = additionalOrderHeight + additionalOrderHeight2 + additionalOrderHeight3;
	if (combinedHeight == 0)
		combinedHeight = 80;
		
	var newPosition = parentHeight - boxHeight - combinedHeight;

	$('.repairCosts').animate(
		{
			top: newPosition
		}, 500, 'swing'
	);
}

function calculateTotals() {
	var totalForAccessories = 0;
	var totalForAccessoriesExcl = 0;
	for (i = 0; i < selectedAccessories.length; i++) {
		totalForAccessories = totalForAccessories + selectedAccessories[i].Price;
		totalForAccessoriesExcl = totalForAccessoriesExcl + selectedAccessories[i].PriceExcl;
	}

	var totalForBasket = 0;
	var totalForBasketExcl = 0;
	for (i = 0; i < arrSelectedProductsData.length; i++) {
		totalForBasket += getProductTotal(arrSelectedProductsData[i].Price);
		totalForBasketExcl += getProductTotalExcl(arrSelectedProductsData[i].PriceExcl);
	}
	totalForBasket += totalForAccessories;
	totalForBasketExcl += totalForAccessoriesExcl;
	

	if (arrVouchers) {
		//Calculate Voucher discount
		var totalDiscount = 0;
		for (i = 0; arrVouchers.length > i; i += 1) {
			if (arrVouchers[i].discount > 0) {
				arrVouchers[i].calculatedDiscount = arrVouchers[i].discount;
			}
			else if (arrVouchers[i].discountPercentage > 0) {
				var totalForVoucher = 0;
				totalForVoucher = selectedBasketProduct.Price + totalForAccessories;
				for (x = 0; arrVouchers.length > x; x += 1) {
					totalForVoucher -= arrVouchers[x].calculatedDiscount;
				}
				arrVouchers[i].calculatedDiscount = Math.round((totalForVoucher / 100) * parseFloat(arrVouchers[i].discountPercentage));
			}
			else if (arrVouchers[i].noShippingCost) {
				arrVouchers[i].calculatedDiscount = (-defaultTransportPrice.Price + selectedTransport.Price)
			}

			arrVouchers[i].calculatedDiscount = 0 - arrVouchers[i].calculatedDiscount;

			totalDiscount += arrVouchers[i].calculatedDiscount;
		}

		totalForBasket += totalDiscount;
	}

	for (ip = 0; ip < arrSelectedProductsData.length; ip++) {
		$('#basketProductsListPrice_' + arrSelectedProductsData[ip].Id).html(formatCurrency(getProductTotal(arrSelectedProductsData[ip].Price))); // click(eval('function() { alert(getProductTotal(' + arrSelectedProducts[ip].Price + ')); }'));
		$('#basketProductsListPriceExcl_' + arrSelectedProductsData[ip].Id).html(formatCurrency(getProductTotalExcl(arrSelectedProductsData[ip].PriceExcl)));  //{binding PriceExcl, convert=formatCurrency }
	}

	// bindSelectedProducts(arrSelectedProductsData.clone());

	//Bind vouchers, after the discount has been calculated.
	bindSelectedAccessories(selectedAccessories.clone());
	bindVouchers(arrVouchers.clone());
	
	$('#basketProduct').html(formatCurrency(selectedBasketProduct.Price));
	$('#basketDelivery').html(selectedRepairSpeed.Name);
	//$('#basketGuarantee').html(formatCurrency(selectedGuarantee.Price));
	$('#basketTransport').html(selectedTransport.Name);
	$('#basketPaymentMethod').html(selectedPayment.Name);
	if (selectedPresent.Id != 0) {
		$('.giftRow th').show();
		$('#basketPresent').html(selectedPresent.Name);
		
		//A gift has been selected, hide the reminder
		$('.giftReminder').hide();
	}
	else {
		$('.giftRow th').hide();
	}
	
	$('#basketAccessories').html(formatCurrencyWithNBSP(totalForAccessories));
	$('#basketTotal').html('<strong>' + formatCurrency(totalForBasket) + '</strong>');
	$('#basketTotalExcl').html('<strong>' + formatCurrency(totalForBasketExcl) + '</strong>');
	$('#OrderOverviewTotal').html(formatCurrency(totalForBasket) + '<br /><em>' + formatCurrency(totalForBasketExcl) + ' (excl. btw)</em>');
}



function getProductTotalExcl(productPrice) {

	if (arrSelectedProducts && arrSelectedProducts.length && arrSelectedProducts.length > 1) {
		additionalValue = parseInt(
							(selectedRepairSpeed.PriceExcl + selectedGuarantee.PriceExcl + selectedTransport.PriceExcl + selectedPayment.PriceExcl + selectedPresent.PriceExcl)
							/ parseFloat(arrSelectedProducts.length)
							);
	}
	else {
		additionalValue = parseInt(
							(
								(
									  (-defaultRepairSpeedPrice.PriceExcl + selectedRepairSpeed.PriceExcl)
									+ (-totalDefaultGuaranteePricesExcl + selectedGuarantee.PriceExcl)
									+ (-defaultTransportPrice.PriceExcl + selectedTransport.PriceExcl)
									+ (-defaultPaymentPrice.PriceExcl + selectedPayment.PriceExcl)
									+ (-defaultPresentPrice.PriceExcl + selectedPresent.PriceExcl)
								)
								/ parseFloat((arrSelectedProducts && arrSelectedProducts.length) ? arrSelectedProducts.length : 1)
							)
							);
	}

	return productPrice + additionalValue;
}

function getProductTotal(productPrice) {

	if (arrSelectedProducts && arrSelectedProducts.length && arrSelectedProducts.length > 1) {
		additionalValue = parseInt(
							(selectedRepairSpeed.Price + selectedGuarantee.Price + selectedTransport.Price + selectedPayment.Price + selectedPresent.Price)
							/ parseFloat(arrSelectedProducts.length)
							);
	}
	else {
		additionalValue = parseInt(
							(
								(
									  (-defaultRepairSpeedPrice.Price + selectedRepairSpeed.Price)
									+ (-totalDefaultGuaranteePrices + selectedGuarantee.Price)
									+ (-defaultTransportPrice.Price + selectedTransport.Price)
									+ (-defaultPaymentPrice.Price + selectedPayment.Price)
									+ (-defaultPresentPrice.Price + selectedPresent.Price)
								)
								/ parseFloat((arrSelectedProducts && arrSelectedProducts.length) ? arrSelectedProducts.length : 1)
							)
							);
	}
	
	return productPrice + additionalValue;	
}



function PriceComponent(id, name, price, priceExcl) {
	this.Id = id;
	this.Name = name;
	this.Price = price;
	this.PriceExcl = priceExcl;
}



// Initiates the calendar
function fnActivateCalendar() {
	fnResetCalendar(new Date());

	if (calendarSelectedStartDate) {
		fnSelectCalendarRange(calendarSelectedStartDate.getDateOnlyFormatted());
	}

	Step4.ShowButtonsNextStep();
}


var numberOfDaysForTransport = 2;
// Selects a range of X days starting at the supplied date
// selectedStartDate: formatted string (2009-7-21)
function fnSelectCalendarRange(selectedStartDate) {
	var iDayCounter = 0;
	
	calendarSelectedStartDate = getDateFromFormattedDate(selectedStartDate);
	calendarSelectEndDate = getDateFromFormattedDate(selectedStartDate);
	var lastDateOnCalendar = getDateFromFormattedDate($('#calD_4-6').attr('dtm'));
	
	// Calculate the real end date including the weekends and disabled days
	while (iDayCounter < daysForRepair + numberOfDaysForTransport - 1) {
		calendarSelectEndDate.addDays(1);
		if (!IsValidDay(calendarSelectEndDate))
			continue;
		iDayCounter++;
	}

	// Reset calendar if the real end date is out of scope of the currently viewed calendar
	if (calendarSelectedStartDate > lastDateOnCalendar || calendarSelectEndDate > lastDateOnCalendar) {
		fnResetCalendar(calendarSelectedStartDate);
		setTimeout(function() { fnSelectCalendarRange(calendarSelectedStartDate.getDateOnlyFormatted()); }, 200);
		return;
	}

	var calendarDate = new Date(calendarSelectedStartDate);
	// Selected the new repair date range
	$('#calendar td:not(td.disabled)').removeClass();
	$('.calendarDates .pickup .data').text(calendarSelectedStartDate.getDateOnlyFormattedAsLongString());
	$('.calendarDates .return .data').text(calendarSelectEndDate.getDateOnlyFormattedAsLongString());
	iDayCounter = 0;
	while (iDayCounter < daysForRepair+2) {
		var item = $('TD:[dtm="' + calendarDate.getDateOnlyFormatted() + '"]')[0];

		if (!IsValidDay(calendarDate)) {
			calendarDate.addDays(1);
			continue;
		}

		if (iDayCounter == 0) // First day
			$('#' + item.id).addClass('pickup');
		else if (iDayCounter == daysForRepair + numberOfDaysForTransport - 1) // Last day
			$('#' + item.id).addClass('return');
		else // Between!
			$('#' + item.id).addClass('busy');

		calendarDate.addDays(1);
		iDayCounter++;
	}

	Step4.ShowButtonsNextStep();
}


// Resets the calendar setting the date as its starting point
function fnResetCalendar(startDate) {	
	var todayDate = new Date().getDateOnly();

	// No date? Take today
	if (!startDate)
		startDate = new Date(todayDate).getDateOnly();
	else
		startDate = new Date(startDate).getDateOnly();

	// Find the first monday back in time
	while (startDate.getDay() != 1) {
		startDate.addDays(-1);
	}

	var calendarDate = new Date(startDate);
	// Loops through 4 weeks and it's days
	for (iWk = 0; iWk < 5; iWk++) {
		for (iD = 0; iD < 7; iD++) {
			$('#calD_' + iWk + '-' + iD).text(calendarDate.getDate() + ' ' + monthNames[calendarDate.getMonth()]);
			$('#calD_' + iWk + '-' + iD).attr('dtm', calendarDate.getDateOnlyFormatted());
			if (!IsValidDay(calendarDate))
				fnDeActivateDate('#calD_' + iWk + '-' + iD);
			else
				fnActivateDay('#calD_' + iWk + '-' + iD);

			calendarDate.addDays(1);
		}
	}

	// Disable the scroll up button if you want back in time
	if (startDate < todayDate) {
		$('#lnkCalendarUp').removeClass().addClass('disabled');
		$('#lnkCalendarUp').unbind('click').click(function() {
			return false;
		});
	}
	else { // Add click events for scrolling the calendar
		$('#lnkCalendarUp').removeClass();
		$('#lnkCalendarUp').unbind('click').click(function() {
			var dtm = getDateFromFormattedDate($('#calD_0-1').attr('dtm'));
			dtm.addDays(-7);
			fnResetCalendar(dtm.getDateOnly());
			return false;
		});
	}

	// The calendar down event
	$('#lnkCalendarDown').unbind('click').click(function() {
		var dtm = getDateFromFormattedDate($('#calD_0-1').attr('dtm'));
		dtm.addDays(7);
		fnResetCalendar(dtm.getDateOnly());
		return false;
	});

	// Find today
	var item = $('TD:[dtm="' + todayDate.getDateOnlyFormatted() + '"]')[0];
	if (item)
		$('#' + item.id).addClass('today');
}


// Checks the date if it's valid
function IsValidDay(date) {
	var todayDate = new Date().getDateOnly();
	if (date.getDay() == 0 || date.getDay() == 6 || date.getDateOnly() < todayDate || (disabledDays[date.getDateOnlyFormatted()] && disabledDays[date.getDateOnlyFormatted()] == true))
		return false;

	return true;
}

// Gets a date from a date string
function getDateFromFormattedDate(formattedDate) {
	var date = formattedDate.split('-');
	return new Date(date[0], date[1] - 1, date[2]);
}

// disables the day (incl. hover and click removal)
function fnDeActivateDate(id) {
	$(id).addClass('disabled');
	$(id).unbind('hover');
	$(id).unbind('click');
}

// activates the day (incl. hover and click addition)
function fnActivateDay(id) {
	$('#calD_' + iWk + '-' + iD).removeClass();

	$(id).unbind('hover').hover(function() {
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
	});
	$(id).unbind('click').click(function() {
		fnSelectCalendarRange($(this).attr('dtm'));
	});
}

(function(){var t="MicrosoftAjax",f=-1,d="",k="/",l="#",o="$",i=".",h=" ",p="load",s="initialize",r="set_",e="undefined",m=")",n="(",c=false,q="on",j="string",a=null,b=true,g="function";(function(){function u(A,u){var U="Globalization",D="WebServices",L="Network",z="Serialization",C="ComponentModel",K="Core",T="%/MicrosoftAjax",G="jQuery",P="_loadedScripts",B="_notify",O="onreadystatechange",F="_domReadyQueue",N="_readyQueue",x="script",E="_composites",J="_parents",y="dependencies",w="executionDependencies",tb=0,lb=1,W=2,mb=3,bb=!!document.attachEvent;function X(b,e,d){var c=b[e],a=typeof c===g;if(a)c.call(b,d);return a}function M(a,c){for(var b in a)c(a[b],b)}function fb(a,b){if(a)a instanceof Array?v(a,b):b(a)}function v(c,e,f){var d;if(c)for(var a=f||0,g=c.length;a<g;a++)if(e(c[a],a)){d=b;break}return !d}function R(a,e){var d;if(a)for(var c=0,f=a.length;c<f;c++)if(e(Z(a[c]))){d=b;break}return !d}function V(c,b,d){var e=c[b];delete c[b];fb(e,function(b){b.apply(a,d||[])})}function sb(c){var a={};v(c,function(c){a[c]=b});return a}function H(a,c,b){return a?(a[c]=a[c]||b):b}function kb(c,b,a){H(c,b,[]).push(a)}function rb(d,b,c,a){H(d,b,{})[c]=a}function Z(a){return Y(a)||(u.scripts[a]={name:a})}function I(a,b){var c=(a._state=b||a._state)||0;if(b)R(a.contains,function(a){I(a,b)});return c}function eb(a){return !a||I(a)>W}function hb(a){return a._composite}function nb(b,c){var a=[];R(b.contains,function(d){v(H(d,c?w:y),function(c){if(!b._contains[c])a.push(c)})});return a}function ob(b,c){var a;if(b.contains)a=nb(b,c);else{var d=hb(b);if(d)a=nb(d,c);else a=H(b,c?w:y)}return a}function pb(c){M(c[J],function(c){M(c[E],function(c){ab(c,a,a,b)});ab(c,a,a,b)})}function ab(a,b,d,c){return u.loader._requireScript(a,b,d,c)}function jb(b,c,e,d){var a;v(b,function(b){b=Y(b);a|=ab(b,c,e,d)});return a}function S(b,a){return (a||document).getElementsByTagName(b)}function qb(a){return document.createElement(a)}function Y(b,d){var c=typeof b===j?u.scripts[b]||u.composites[b]||!d&&(H(u.components[b],x)||H(u.plugins[b],x)):b?b.script||b:a;if(c&&!c._isScript)c=a;return c}function Q(a){a=a||{};v(arguments,function(b){if(b)M(b,function(c,b){a[b]=c})},1);return a}function cb(b,e,g,i,h,f){function d(){if(!bb||!h||/loaded|complete/.test(b.readyState)){if(bb)b.detachEvent(g||q+e,d);else{b.removeEventListener(e,d,c);if(f)b.removeEventListener("error",d,c)}i.apply(b);b=a}}if(bb)b.attachEvent(g||q+e,d);else{b.addEventListener(e,d,c);if(f)b.addEventListener("error",d,c)}}function ib(){if(!u.loader._loading&&u._ready)V(u,N)}A.Sys=u=Q(u,{debug:c,activateDom:b,scripts:{},composites:{},components:{},plugins:{},create:{},converters:{},_create:function(f,b){if(typeof b===j)b=u.get(b);var d=this._type||(this._type=A.eval(n+this.typeName+m)),a=typeof b===e?new d:new d(b);X(a,"beginUpdate");M(f,function(c,b){X(a,"add_"+b,c)||X(a,r+b,c)||(a[b]=c)});var c=u.Component;if(!c||!c._register(a))X(a,"endUpdate")||X(a,s);return a},_domReady:function(){function c(){if(!u._ready){u._ready=b;V(u,F);ib()}}cb(A,p,a,c);var d;if(bb)if(A==A.top&&document.documentElement.doScroll){var f,g,e=qb("div");d=function(){try{e.doScroll("left")}catch(b){f=A.setTimeout(d,0);return}e=a;c()};d()}else cb(document,a,O,c,b);else if(document.addEventListener)cb(document,"DOMContentLoaded",a,c)},_getById:function(c,d,g,f,a){if(a)if(f&&a.id===d)c[0]=a;else v(S("*",a),function(a){if(a.id===d){c[0]=a;return b}});else{var e=document.getElementById(d);if(e)c[0]=e}return c.length},_getByClass:function(l,d,g,m,a){function j(c){var e,a=c.className;if(a&&(a===d||a.indexOf(h+d)>=0||a.indexOf(d+h)>=0)){l.push(c);e=b}return e}var c,f,e;if(m&&j(a)&&g)return b;a=a||document;var k=a.querySelectorAll||a.getElementsByClassName;if(k){if(a.querySelectorAll)d=i+d;e=k.call(a,d);for(c=0,f=e.length;c<f;c++){l.push(e[c]);if(g)return b}}else{e=S("*",a);for(c=0,f=e.length;c<f;c++)if(j(e[c])&&g)return b}},query:function(b,a){return a&&typeof a.find===g?a.find(b):this._find(b,a)},"get":function(c,a){return a&&typeof a.get===g?a.get(c):this._find(c,a,b)},_find:function(c,e,f){var d=[];if(typeof c!==j)d.push(c);else{var h=e instanceof Array,g=/^([\$#\.])((\w|[$:\.\-])+)$/.exec(c);if(g&&g.length===4){c=g[2];var m=g[1];if(m===o)u._getComponent(d,c,e);else{var i=m===l?u._getById:u._getByClass;if(e)fb(e,function(a){if(a.nodeType===1)return i(d,c,f,h,a)});else i(d,c,f)}}else if(/^\w+$/.test(c))if(h)fb(e,function(a){if(a.nodeType===1){if(a.tagName.toLowerCase()===c){d.push(a);if(f)return b}if(!v(S(c,a),function(a){d.push(a);if(f)return b}))return b}});else{var k=S(c,e);if(f)return k[0]||a;v(k,function(a){d.push(a)})}else if(A.jQuery)d=jQuery(c).get()}return d.length?f?d[0]:d:a},onReady:function(a){kb(this,N,a);ib()},"require":function(g,d,i){var k=u.loader._session++,a,h;function e(){if(d)u._ready?d(g,i):kb(u,F,e)}function f(){if(!h&&!a&&!j()){h=b;e()}ib()}function j(){a=b;var d=[];fb(g,function(a){a=Y(a);if(a){var b=a.contains;if(b)R(b,function(a){d.push(a)});else d.push(a)}});if(u.loader.combine)u.loader._findComposites(d);var e=jb(d,f,k);a=c;return e}f()},loadScripts:function(c,a,b){this.loader.loadScripts(c,a,b)},loader:{combine:b,basePath:a,_loading:0,_session:0,_eval:{},_init:function(){var b=S(x),c=b.length?b[b.length-1].src:a;this.basePath=c?c.slice(0,c.lastIndexOf(k)):d},_load:function(a,d,g){var e;if(eb(a))d();else{e=b;var c=H(a,B,[]),f="session"+g;if(!c[f]){c[f]=b;c.push(d)}if(I(a)<lb){I(a,lb);this._loadSrc(this._getUrl(a),this._getHandler(a))}}return e},_loadSrc:function(f,c,e){var a=Q(qb(x),{type:"text/javascript",src:f}),d=H(this,P,{});if(!e)v(S(x),function(c){var a=c.src;if(a)d[a]=b});if(!e&&d[a.src]){if(c)c()}else{cb(a,p,O,c,b,b);this._loading++;d[a.src]=b;S("head")[0].appendChild(a)}},_requireScript:function(a,e,f,c){var i;if(!eb(a)){var d=jb(ob(a),e,f,c),g=jb(ob(a,b),e,f,c);if(!d&&!g&&I(a)===W){I(a,mb);V(a,"_callback");if(a.name===G&&A.jQuery){var j=u.loader;M(u.components,j._createPlugin);M(u.plugins,function(a){j._createPlugin(a,b)})}if(c){var h=a.contains;if(h)R(h,function(a){pb(a)});else pb(Z(a))}}else if(!c&&!d)this._load(hb(a)||a,e,f);i|=d||g}return i||!eb(a)},_getUrl:function(a){var f=u.debug,g=a.name,b=(f?a.debugUrl||a.releaseUrl:a.releaseUrl).replace(/\{0\}/,g)||d;if(b.substr(0,2)==="%/"){var c=this.basePath,e=c.charAt(c.length-1)===k;b=c+(e?d:k)+b.substr(2)}return b},_getHandler:function(a){return function(){u.loader._loading--;if(I(a)<W)I(a,W);V(a,B);R(a.contains,function(a){V(a,B)})}},_findComposites:function(f){var d={},a={},e;function c(a){a=Y(a);var f=I(a);if(f<lb&&!hb(a)){d[a.name]=a;e=b;v(a[y],c)}if(f<mb)v(a[w],c)}v(f,c);if(e){M(u.composites,function(c){if(R(c.contains,function(a){if(!d[a.name])return b})){var e={},f=0;v(c.contains,function(c){var b=a[c];if(b&&!e[b.name]){e[b.name]=b;f+=b.contains.length-1}});if(c.contains.length-1>f){M(e,function(b){v(b.contains,function(b){delete a[b]})});v(c.contains,function(b){a[b]=c})}}});M(a,function(a,b){u.scripts[b]._composite=a})}},_getCreate:function(b,c,e,g){var d=b.name;function f(){return u.loader._callPlugin.call(this,d,c?b.plugin:u._create,arguments,e,this)}var h=e?function(){var b=arguments;if(!c&&!u.create[d].defaults)u.create[d].defaults=arguments.callee.defaults||a;return this.each(function(){f.apply(this,b)})}:f;if(!g)this._createPlugin(b,c);return h},_registerParents:function(a){function b(b){var c=Z(b);rb(c,J,a.name,a)}v(a[y],b);v(a[w],b)},_createPlugin:function(a,d){if(A.jQuery){var f=a.name,c=a._isBehavior,g=u.loader._getCreate(a,d===b,c,b),e=c?jQuery.fn:jQuery;e[f]=g}},defineScript:function(a){var h=u.scripts,c=a.name,d=a.contains;if(d){var f=u.composites;f[c]=a=Q(f[c],a);a._contains=sb(d);R(d,function(b){rb(b,E,c,a)})}else{a=h[c]=Q(h[c],a);this._registerParents(a);var g;function e(c){var b;if(typeof c===j)c={typeName:c};else b=c.name;if(!b){b=c.typeName;var d=b.lastIndexOf(i);if(d>=0)b=b.substr(d+1);b=b.substr(0,1).toLowerCase()+b.substr(1);c.name=b}c._isBehavior=g;c.script=a;u.create[b]=u.loader._getCreate(c);u.components[b]=Q(u.components[b],c)}v(a.components,e);g=b;v(a.behaviors,e);v(a.plugins,function(c){var d=c.name;c.script=a;u.plugins[d]=Q(u.plugins[d],c);u[d]=u.loader._getCreate(c,b)})}if(a.isLoaded)a._state=mb;a._isScript=b},_callPlugin:function(h,b,c,p,t){var w=u.plugins[h],d=u.components[h],q=w||d,s=q.script;if(eb(s)){var r=u.loader._eval,x=typeof b===g?b:r[b]||(r[b]=A.eval(n+b+m));if(d){var o=d.parameters||[],l=d._isBehavior,k=l?[a,p?t:c[0]]:[],i=l&&!p?1:0,f=c[o.length+i]||{};k[0]=f=Q({},u.create[h].defaults,f);v(o,function(a,g){var d=typeof a===j?a:a.name,b=c[g+i];if(typeof b!==e&&typeof f[d]===e)f[d]=b});c=k}return x.apply(q,c)}},defineScripts:function(b,c){v(c,function(c){u.loader.defineScript(Q(a,b,c))})},registerScript:function(h,e,f){var c=Z(h);c._callback=f;var d=H(c,w,[]),g=sb(d);v(e,function(a){if(!g[a])d.push(a)});this._registerParents(c);I(c,W);ab(c,a,a,b)},loadScripts:function(b,c,g){var e=f,h=H(this,P,{});b=b instanceof Array?Array.apply(a,b):[b];function d(){if(++e<b.length)u.loader._loadSrc(b[e],d);else if(c)c(b,g)}d()}}});var gb=u.loader;u._getComponent=u._getComponent||function(){};gb._init();gb.defineScripts({releaseUrl:T+"{0}.js",debugUrl:T+"{0}.debug.js",executionDependencies:[K]},[{name:K,executionDependencies:a,isLoaded:!!A.Type},{name:C,isLoaded:!!u.Component,plugins:[{name:"setCommand",plugin:"Sys.UI.DomElement.setCommand",parameters:["commandSource","commandName","commandArgument","commandTarget"]}]},{name:"History",executionDependencies:[C,z],isLoaded:!!(u.Application&&u.Application.get_stateString)},{name:z,isLoaded:!!u.Serialization},{name:L,executionDependencies:[z],isLoaded:!!(u.Net&&u.Net.WebRequest)},{name:D,executionDependencies:[L],isLoaded:!!(u.Net&&u.Net.WebServiceProxy)},{name:"ApplicationServices",executionDependencies:[D],isLoaded:!!(u.Services&&u.Services.RoleService&&u.Services.RoleService.get_path)},{name:U,isLoaded:!!Number._parse},{name:"AdoNet",executionDependencies:[D],components:["Sys.Data.AdoNetServiceProxy"],isLoaded:!!(u.Data&&u.Data.AdoNetServiceProxy)},{name:"DataContext",executionDependencies:[C,z,D,"AdoNet"],components:["Sys.Data.DataContext","Sys.Data.AdoNetDataContext"],isLoaded:!!(u.Data&&u.Data.DataContext)},{name:"Templates",executionDependencies:[C,z],behaviors:["Sys.UI.DataView"],plugins:[{name:"bind",plugin:"Sys.Binding.bind",parameters:["target","property","source","path","options"]}],isLoaded:!!(u.UI&&u.UI.Template)},{name:t,releaseUrl:"%/MicrosoftAjax.js",debugUrl:"%/MicrosoftAjax.debug.js",executionDependencies:a,contains:[K,C,"History",z,L,D,U]}]);var db=(A.location.protocol==="https"?"https":"http")+"://ajax.microsoft.com/ajax/";gb.defineScripts(a,[{name:G,releaseUrl:db+"jquery/jquery-1.3.2.min.js",debugUrl:db+"jquery/jquery-1.3.2.js",isLoaded:!!A.jQuery},{name:"jQueryValidate",releaseUrl:db+"jquery.validate/1.5.5/jquery.validate.min.js",debugUrl:db+"jquery.validate/1.5.5/jquery.validate.js",dependencies:[G],isLoaded:!!(A.jQuery&&jQuery.fn.validate)}]);gb=a;if(!A.Type){A.Type=Function;Type.registerNamespace=Type.registerNamespace||function(c){kb(u,"_ns",c);var b=A;v(c.split(i),function(a){b=b[a]=b[a]||{}});b=a}}u._domReady()}if(!window.Sys||!Sys.loader)u(window,window.Sys)})();function u(){var qb="callback",K="completed",Z="completedRequest",Y="invokingRequest",tb="Sys.Net.XMLHttpExecutor",J="Content-Type",cb="text/xml",pb="SelectionLanguage",X="navigate",W="dispose",V="init",I="unload",H="none",U="TABLE",T="HTML",B="absolute",G="BODY",ob="InternetExplorer",S="disposing",nb="Abbreviated",F="object",A="+",y="0",x="-",R="yyyy",Q="MMMM",P="dddd",u=100,mb="YearMonthPattern",lb="SortableDateTimePattern",kb="MonthDayPattern",jb="FullDateTimePattern",ib="LongTimePattern",O="ShortTimePattern",N="LongDatePattern",hb="ShortDatePattern",D="collectionChanged",M="get_",z="propertyChanged",C=",",gb="TEXTAREA",fb="#TraceConsole",bb="Safari",L="Firefox",t=10,w="\n",v="number";Function.__typeName="Function";Function.__class=b;Function.createCallback=function(b,a){return function(){var e=arguments.length;if(e>0){var d=[];for(var c=0;c<e;c++)d[c]=arguments[c];d[e]=a;return b.apply(this,d)}return b.call(this,a)}};Function.createDelegate=function(a,b){return function(){return b.apply(a,arguments)}};Function.emptyFunction=Function.emptyMethod=function(){};Function.validateParameters=function(c,b,a){return Function._validateParams(c,b,a)};Function._validateParams=function(i,g,d){var b,f=g.length;d=d||typeof d===e;b=Function._validateParameterCount(i,g,d);if(b){b.popStackFrame();return b}for(var c=0,k=i.length;c<k;c++){var h=g[Math.min(c,f-1)],j=h.name;if(h.parameterArray)j+="["+(c-f+1)+"]";else if(!d&&c>=f)break;b=Function._validateParameter(i[c],h,j);if(b){b.popStackFrame();return b}}return a};Function._validateParameterCount=function(m,g,l){var d,f,e=g.length,h=m.length;if(h<e){var i=e;for(d=0;d<e;d++){var j=g[d];if(j.optional||j.parameterArray)i--}if(h<i)f=b}else if(l&&h>e){f=b;for(d=0;d<e;d++)if(g[d].parameterArray){f=c;break}}if(f){var k=Error.parameterCount();k.popStackFrame();return k}return a};Function._validateParameter=function(d,b,j){var c,i=b.type,n=!!b.integer,m=!!b.domElement,o=!!b.mayBeNull;c=Function._validateParameterType(d,i,n,m,o,j);if(c){c.popStackFrame();return c}var g=b.elementType,h=!!b.elementMayBeNull;if(i===Array&&typeof d!==e&&d!==a&&(g||!h)){var l=!!b.elementInteger,k=!!b.elementDomElement;for(var f=0;f<d.length;f++){var p=d[f];c=Function._validateParameterType(p,g,l,k,h,j+"["+f+"]");if(c){c.popStackFrame();return c}}}return a};Function._validateParameterType=function(c,d,m,l,j,f){var b,i;if(typeof c===e)if(j)return a;else{b=Error.argumentUndefined(f);b.popStackFrame();return b}if(c===a)if(j)return a;else{b=Error.argumentNull(f);b.popStackFrame();return b}if(d&&d.__enum){if(typeof c!==v){b=Error.argumentType(f,Object.getType(c),d);b.popStackFrame();return b}if(c%1===0){var g=d.prototype;if(!d.__flags||c===0){for(i in g)if(g[i]===c)return a}else{var k=c;for(i in g){var h=g[i];if(h===0)continue;if((h&c)===h)k-=h;if(k===0)return a}}}b=Error.argumentOutOfRange(f,c,String.format(Sys.Res.enumInvalidValue,c,d.getName()));b.popStackFrame();return b}if(l&&(!Sys._isDomElement(c)||c.nodeType===3)){b=Error.argument(f,Sys.Res.argumentDomElement);b.popStackFrame();return b}if(d&&!Sys._isInstanceOfType(d,c)){b=Error.argumentType(f,Object.getType(c),d);b.popStackFrame();return b}if(d===Number&&m)if(c%1!==0){b=Error.argumentOutOfRange(f,c,Sys.Res.argumentInteger);b.popStackFrame();return b}return a};Error.__typeName="Error";Error.__class=b;Error.create=function(c,b){var a=new Error(c);a.message=c;if(b)for(var d in b)a[d]=b[d];a.popStackFrame();return a};Error.argument=function(a,c){var b="Sys.ArgumentException: "+(c?c:Sys.Res.argument);if(a)b+=w+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentException",paramName:a});d.popStackFrame();return d};Error.argumentNull=function(a,c){var b="Sys.ArgumentNullException: "+(c?c:Sys.Res.argumentNull);if(a)b+=w+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentNullException",paramName:a});d.popStackFrame();return d};Error.argumentOutOfRange=function(d,b,f){var c="Sys.ArgumentOutOfRangeException: "+(f?f:Sys.Res.argumentOutOfRange);if(d)c+=w+String.format(Sys.Res.paramName,d);if(typeof b!==e&&b!==a)c+=w+String.format(Sys.Res.actualValue,b);var g=Error.create(c,{name:"Sys.ArgumentOutOfRangeException",paramName:d,actualValue:b});g.popStackFrame();return g};Error.argumentType=function(d,c,b,e){var a="Sys.ArgumentTypeException: ";if(e)a+=e;else if(c&&b)a+=String.format(Sys.Res.argumentTypeWithTypes,c.getName(),b.getName());else a+=Sys.Res.argumentType;if(d)a+=w+String.format(Sys.Res.paramName,d);var f=Error.create(a,{name:"Sys.ArgumentTypeException",paramName:d,actualType:c,expectedType:b});f.popStackFrame();return f};Error.argumentUndefined=function(a,c){var b="Sys.ArgumentUndefinedException: "+(c?c:Sys.Res.argumentUndefined);if(a)b+=w+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentUndefinedException",paramName:a});d.popStackFrame();return d};Error.format=function(a){var c="Sys.FormatException: "+(a?a:Sys.Res.format),b=Error.create(c,{name:"Sys.FormatException"});b.popStackFrame();return b};Error.invalidOperation=function(a){var c="Sys.InvalidOperationException: "+(a?a:Sys.Res.invalidOperation),b=Error.create(c,{name:"Sys.InvalidOperationException"});b.popStackFrame();return b};Error.notImplemented=function(a){var c="Sys.NotImplementedException: "+(a?a:Sys.Res.notImplemented),b=Error.create(c,{name:"Sys.NotImplementedException"});b.popStackFrame();return b};Error.parameterCount=function(a){var c="Sys.ParameterCountException: "+(a?a:Sys.Res.parameterCount),b=Error.create(c,{name:"Sys.ParameterCountException"});b.popStackFrame();return b};Error.prototype.popStackFrame=function(){var b=this;if(typeof b.stack===e||b.stack===a||typeof b.fileName===e||b.fileName===a||typeof b.lineNumber===e||b.lineNumber===a)return;var c=b.stack.split(w),g=c[0],i=b.fileName+":"+b.lineNumber;while(typeof g!==e&&g!==a&&g.indexOf(i)===f){c.shift();g=c[0]}var h=c[1];if(typeof h===e||h===a)return;var d=h.match(/@(.*):(\d+)$/);if(typeof d===e||d===a)return;b.fileName=d[1];b.lineNumber=parseInt(d[2]);c.shift();b.stack=c.join(w)};Object.__typeName="Object";Object.__class=b;Object.getType=function(b){var a=b.constructor;if(!a||typeof a!==g||!a.__typeName||a.__typeName==="Object")return Object;return a};Object.getTypeName=function(a){return Object.getType(a).getName()};String.__typeName="String";String.__class=b;String.prototype.endsWith=function(a){return this.substr(this.length-a.length)===a};String.prototype.startsWith=function(a){return this.substr(0,a.length)===a};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,d)};String.prototype.trimEnd=function(){return this.replace(/\s+$/,d)};String.prototype.trimStart=function(){return this.replace(/^\s+/,d)};String.format=function(){return String._toFormattedString(c,arguments)};String._toFormattedString=function(p,n){var g=d,i=n[0];for(var c=0;b;){var j=i.indexOf("{",c),h=i.indexOf("}",c);if(j<0&&h<0){g+=i.slice(c);break}if(h>0&&(h<j||j<0)){g+=i.slice(c,h+1);c=h+2;continue}g+=i.slice(c,j);c=j+1;if(i.charAt(c)==="{"){g+="{";c++;continue}if(h<0)break;var l=i.substring(c,h),k=l.indexOf(":"),o=parseInt(k<0?l:l.substring(0,k),t)+1,m=k<0?d:l.substring(k+1),f=n[o];if(typeof f===e||f===a)f=d;if(f.toFormattedString)g+=f.toFormattedString(m);else if(p&&f.localeFormat)g+=f.localeFormat(m);else if(f.format)g+=f.format(m);else g+=f.toString();c=h+1}return g};Boolean.__typeName="Boolean";Boolean.__class=b;Boolean.parse=function(d){var a=d.trim().toLowerCase();if(a==="false")return c;if(a==="true")return b};Date.__typeName="Date";Date.__class=b;Number.__typeName="Number";Number.__class=b;RegExp.__typeName="RegExp";RegExp.__class=b;var Bb=Sys._merge=function(a){a=a||{};vb(arguments,function(b){if(b)Ab(b,function(c,b){a[b]=c})},1);return a},Ab=Sys._forIn=function(a,c){for(var b in a)if(a.hasOwnProperty(b))c(a[b],b)},vb=Sys._foreach=function(a,e,f){var d;if(a){a=a instanceof Array?a:typeof a.length===v&&!/function|string/.test(typeof a)?a:[a];for(var c=f||0,g=a.length;c<g;c++)if(e(a[c],c)){d=b;break}}return !d};Sys._isInstanceOfType=function(g,f){if(typeof f===e||f===a)return c;if(f instanceof g)return b;var d=Object.getType(f);return !!(d===g)||d.inheritsFrom&&d.inheritsFrom(g)||d.implementsInterface&&d.implementsInterface(g)};Sys._getBaseMethod=function(e,f,d){var c=e.getBaseType();if(c){var b=c.prototype[d];return b instanceof Function?b:a}return a};Sys._isDomElement=function(a){var d=c;if(typeof a.nodeType!==v){var b=a.ownerDocument||a.document||a;if(b!=a){var f=b.defaultView||b.parentWindow;d=f!=a}else d=typeof b.body===e}return !d};var ab=Sys._isBrowser=function(a){return Sys.Browser.agent===Sys.Browser[a]};if(!window)this.window=this;window.Type=Function;Type.prototype.callBaseMethod=function(a,d,b){var c=Sys._getBaseMethod(this,a,d);if(!b)return c.apply(a);else return c.apply(a,b)};Type.prototype.getBaseMethod=function(a,b){return Sys._getBaseMethod(this,a,b)};Type.prototype.getBaseType=function(){return typeof this.__baseType===e?a:this.__baseType};Type.prototype.getInterfaces=function(){var a=[],b=this;while(b){var c=b.__interfaces;if(c)for(var d=0,f=c.length;d<f;d++){var e=c[d];if(!Array.contains(a,e))a[a.length]=e}b=b.__baseType}return a};Type.prototype.getName=function(){return typeof this.__typeName===e?d:this.__typeName};Type.prototype.implementsInterface=function(i){var g=this;g.resolveInheritance();var h=i.getName(),a=g.__interfaceCache;if(a){var j=a[h];if(typeof j!==e)return j}else a=g.__interfaceCache={};var d=g;while(d){var k=d.__interfaces;if(k)if(Array.indexOf(k,i)!==f)return a[h]=b;d=d.__baseType}return a[h]=c};Type.prototype.inheritsFrom=function(d){this.resolveInheritance();var a=this.__baseType;while(a){if(a===d)return b;a=a.__baseType}return c};Type.prototype.initializeBase=function(b,c){var a=this;a.resolveInheritance();if(a.__baseType)if(!c)a.__baseType.apply(b);else a.__baseType.apply(b,c);return b};Type.prototype.isImplementedBy=function(b){if(typeof b===e||b===a)return c;var d=Object.getType(b);return !!(d.implementsInterface&&d.implementsInterface(this))};Type.prototype.isInstanceOfType=function(a){return Sys._isInstanceOfType(this,a)};Type.prototype.registerClass=function(e,d,f){var a=this;a.prototype.constructor=a;a.__typeName=e;a.__class=b;if(d){a.__baseType=d;a.__basePrototypePending=b}Sys.__upperCaseTypes[e.toUpperCase()]=a;if(f){a.__interfaces=[];for(var c=2,h=arguments.length;c<h;c++){var g=arguments[c];a.__interfaces.push(g)}}return a};Type.prototype.registerInterface=function(c){var a=this;Sys.__upperCaseTypes[c.toUpperCase()]=a;a.prototype.constructor=a;a.__typeName=c;a.__interface=b;return a};Type.prototype.resolveInheritance=function(){var a=this;if(a.__basePrototypePending){var c=a.__baseType;c.resolveInheritance();for(var b in c.prototype){var d=c.prototype[b];if(!a.prototype[b])a.prototype[b]=d}delete a.__basePrototypePending}};Type.getRootNamespaces=function(){return Array.clone(Sys.__rootNamespaces)};Type.isClass=function(b){if(typeof b===e||b===a)return c;return !!b.__class};Type.isInterface=function(b){if(typeof b===e||b===a)return c;return !!b.__interface};Type.isNamespace=function(b){if(typeof b===e||b===a)return c;return !!b.__namespace};Type.parse=function(c,d){var b;if(d){b=Sys.__upperCaseTypes[d.getName().toUpperCase()+i+c.toUpperCase()];return b||a}if(!c)return a;if(!Type.__htClasses)Type.__htClasses={};b=Type.__htClasses[c];if(!b){b=window.eval(c);Type.__htClasses[c]=b}return b};Type.registerNamespace=function(a){Type._registerNamespace(a)};Type._registerNamespace=function(f){var e=window,d=f.split(i);for(var c=0,h=d.length;c<h;c++){var g=d[c],a=e[g];if(!a)a=e[g]={};if(!a.__namespace){if(!c&&f!=="Sys")Sys.__rootNamespaces.push(a);a.__namespace=b;a.__typeName=d.slice(0,c+1).join(i);a.getName=function(){return this.__typeName}}e=a}};Type._checkDependency=function(d,a){var f=Type._registerScript._scripts,b=f?!!f[d]:c;if(typeof a!==e&&!b)throw Error.invalidOperation(String.format(Sys.Res.requiredScriptReferenceNotIncluded,a,d));return b};Type._registerScript=function(a,d){var c=Type._registerScript._scripts;if(!c)Type._registerScript._scripts=c={};if(c[a])throw Error.invalidOperation(String.format(Sys.Res.scriptAlreadyLoaded,a));c[a]=b;if(d)for(var e=0,g=d.length;e<g;e++){var f=d[e];if(!Type._checkDependency(f))throw Error.invalidOperation(String.format(Sys.Res.scriptDependencyNotFound,a,f))}};Type._registerNamespace("Sys");Sys.__upperCaseTypes={};Sys.__rootNamespaces=[Sys];vb(Sys._ns,Type._registerNamespace);delete Sys._ns;Array.__typeName="Array";Array.__class=b;Array.add=Array.enqueue=function(a,b){a[a.length]=b};Array.addRange=function(a,b){a.push.apply(a,b)};Array.clear=function(a){a.length=0};Array.clone=function(b){if(b.length===1)return [b[0]];else return Array.apply(a,b)};Array.contains=function(a,b){return rb(a,b)>=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,f,d){for(var a=0,g=b.length;a<g;a++){var c=b[a];if(typeof c!==e)f.call(d,c,a,b)}};Array.indexOf=function(a,c,b){return rb(a,c,b)};Array.insert=function(a,b,c){a.splice(b,0,c)};Array.parse=function(a){if(!a)return [];return window.eval(n+a+m)};Array.remove=function(b,c){var a=rb(b,c);if(a>=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};var rb=Sys._indexOf=function(d,g,a){if(typeof g===e)return f;var c=d.length;if(c!==0){a=a-0;if(isNaN(a))a=0;else{if(isFinite(a))a=a-a%1;if(a<0)a=Math.max(0,c+a)}for(var b=a;b<c;b++)if(typeof d[b]!==e&&d[b]===g)return b}return f};Type._registerScript._scripts={"MicrosoftAjaxCore.js":b,"MicrosoftAjaxGlobalization.js":b,"MicrosoftAjaxSerialization.js":b,"MicrosoftAjaxComponentModel.js":b,"MicrosoftAjaxHistory.js":b,"MicrosoftAjaxNetwork.js":b,"MicrosoftAjaxWebServices.js":b};Sys.IDisposable=function(){};Sys.IDisposable.registerInterface("Sys.IDisposable");Sys.StringBuilder=function(b){this._parts=typeof b!==e&&b!==a&&b!==d?[b.toString()]:[];this._value={};this._len=0};Sys.StringBuilder.prototype={append:function(a){this._parts.push(a);return this},appendLine:function(b){this._parts.push(typeof b===e||b===a||b===d?"\r\n":b+"\r\n");return this},clear:function(){this._parts=[];this._value={};this._len=0},isEmpty:function(){if(this._parts.length===0)return b;return this.toString()===d},toString:function(b){var f=this;b=b||d;var c=f._parts;if(f._len!==c.length){f._value={};f._len=c.length}var h=f._value;if(typeof h[b]===e){if(b!==d)for(var g=0;g<c.length;)if(typeof c[g]===e||c[g]===d||c[g]===a)c.splice(g,1);else g++;h[b]=f._parts.join(b)}return h[b]}};Sys.StringBuilder.registerClass("Sys.StringBuilder");var db=navigator.userAgent,E=Sys.Browser={InternetExplorer:{},Firefox:{},Safari:{},Opera:{},agent:a,hasDebuggerStatement:c,name:navigator.appName,version:parseFloat(navigator.appVersion),documentMode:0};if(db.indexOf(" MSIE ")>f){E.agent=E.InternetExplorer;E.version=parseFloat(db.match(/MSIE (\d+\.\d+)/)[1]);if(E.version>7&&document.documentMode>6)E.documentMode=document.documentMode;E.hasDebuggerStatement=b}else if(db.indexOf(" Firefox/")>f){E.agent=E.Firefox;E.version=parseFloat(db.match(/ Firefox\/(\d+\.\d+)/)[1]);E.name=L;E.hasDebuggerStatement=b}else if(db.indexOf(" AppleWebKit/")>f){E.agent=E.Safari;E.version=parseFloat(db.match(/ AppleWebKit\/(\d+(\.\d+)?)/)[1]);E.name=bb}else if(db.indexOf("Opera/")>f)E.agent=E.Opera;Sys.EventArgs=function(){};Sys.EventArgs.registerClass("Sys.EventArgs");Sys.EventArgs.Empty=new Sys.EventArgs;Sys.CancelEventArgs=function(){Sys.CancelEventArgs.initializeBase(this);this._cancel=c};Sys.CancelEventArgs.prototype={get_cancel:function(){return this._cancel},set_cancel:function(a){this._cancel=a}};Sys.CancelEventArgs.registerClass("Sys.CancelEventArgs",Sys.EventArgs);Type.registerNamespace("Sys.UI");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!==e&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=Sys.get(fb);if(a&&a.tagName.toUpperCase()===gb)a.value+=b+w},"assert":function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=Sys.get(fb);if(a&&a.tagName.toUpperCase()===gb)a.value=d},fail:function(a){this._appendConsole(a);if(Sys.Browser.hasDebuggerStatement)window.eval("debugger")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,c){var d=this._traceDump(a,c,b)},_traceDump:function(b,f,k,c,h){var g=this;f=f?f:"traceDump";c=c?c:d;if(b===a){g.trace(c+f+": null");return}switch(typeof b){case e:g.trace(c+f+": Undefined");break;case v:case j:case "boolean":g.trace(c+f+": "+b);break;default:if(Date.isInstanceOfType(b)||RegExp.isInstanceOfType(b)){g.trace(c+f+": "+b.toString());break}if(!h)h=[];else if(Array.contains(h,b)){g.trace(c+f+": ...");return}Array.add(h,b);if(b==window||b===document||window.HTMLElement&&b instanceof HTMLElement||typeof b.nodeName===j){var p=b.tagName?b.tagName:"DomElement";if(b.id)p+=" - "+b.id;g.trace(c+f+" {"+p+"}")}else{var n=Object.getTypeName(b);g.trace(c+f+(typeof n===j?" {"+n+"}":d));if(c===d||k){c+="    ";var i,o,q,l,m;if(Array.isInstanceOfType(b)){o=b.length;for(i=0;i<o;i++)g._traceDump(b[i],"["+i+"]",k,c,h)}else for(l in b){m=b[l];if(!Function.isInstanceOfType(m))g._traceDump(m,l,k,c,h)}}}Array.remove(h,b)}}};Sys._Debug.registerClass("Sys._Debug");Sys.Debug=new Sys._Debug;Sys.Debug.isDebug=c;function Fb(d,f){var b=this,a,c,j;if(f){a=b.__lowerCaseValues;if(!a){b.__lowerCaseValues=a={};var g=b.prototype;for(var i in g)a[i.toLowerCase()]=g[i]}}else a=b.prototype;if(!b.__flags){j=f?d.toLowerCase():d;c=a[j.trim()];if(typeof c!==v)throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,d,b.__typeName));return c}else{var h=(f?d.toLowerCase():d).split(C),k=0;for(var e=h.length-1;e>=0;e--){var l=h[e].trim();c=a[l];if(typeof c!==v)throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,d.split(C)[e].trim(),b.__typeName));k|=c}return k}}function Eb(f){var g=this;if(typeof f===e||f===a)return g.__string;var h=g.prototype,b;if(!g.__flags||f===0){for(b in h)if(h[b]===f)return b}else{var c=g.__sortedValues;if(!c){c=[];for(b in h)c[c.length]={key:b,value:h[b]};c.sort(function(a,b){return a.value-b.value});g.__sortedValues=c}var i=[],k=f;for(b=c.length-1;b>=0;b--){var l=c[b],j=l.value;if(j===0)continue;if((j&f)===j){i[i.length]=l.key;k-=j;if(k===0)break}}if(i.length&&k===0)return i.reverse().join(", ")}return d}Type.prototype.registerEnum=function(c,e){var a=this;Sys.__upperCaseTypes[c.toUpperCase()]=a;for(var d in a.prototype)a[d]=a.prototype[d];a.__typeName=c;a.parse=Fb;a.__string=a.toString();a.toString=Eb;a.__flags=e;a.__enum=b};Type.isEnum=function(b){if(typeof b===e||b===a)return c;return !!b.__enum};Type.isFlags=function(b){if(typeof b===e||b===a)return c;return !!b.__flags};Sys.CollectionChange=function(h,b,e,c,g){var d=this;d.action=h;if(b)if(!(b instanceof Array))b=[b];d.newItems=b||a;if(typeof e!==v)e=f;d.newStartingIndex=e;if(c)if(!(c instanceof Array))c=[c];d.oldItems=c||a;if(typeof g!==v)g=f;d.oldStartingIndex=g};Sys.CollectionChange.registerClass("Sys.CollectionChange");Sys.NotifyCollectionChangedAction=function(){};Sys.NotifyCollectionChangedAction.prototype={add:0,remove:1,reset:2};Sys.NotifyCollectionChangedAction.registerEnum("Sys.NotifyCollectionChangedAction");Sys.NotifyCollectionChangedEventArgs=function(a){this._changes=a;Sys.NotifyCollectionChangedEventArgs.initializeBase(this)};Sys.NotifyCollectionChangedEventArgs.prototype={get_changes:function(){return this._changes||[]}};Sys.NotifyCollectionChangedEventArgs.registerClass("Sys.NotifyCollectionChangedEventArgs",Sys.EventArgs);Sys.Observer=function(){};Sys.Observer.registerClass("Sys.Observer");Sys.Observer.makeObservable=function(a){var c=a instanceof Array,b=Sys.Observer;if(a.setValue===b._observeMethods.setValue)return a;b._addMethods(a,b._observeMethods);if(c)b._addMethods(a,b._arrayMethods);return a};Sys.Observer._addMethods=function(c,a){for(var b in a)c[b]=a[b]};Sys.Observer._addEventHandler=function(d,a,c){Sys.Observer._getContext(d,b).events._addHandler(a,c)};Sys.Observer.addEventHandler=function(c,a,b){Sys.Observer._addEventHandler(c,a,b)};Sys.Observer._removeEventHandler=function(d,a,c){Sys.Observer._getContext(d,b).events._removeHandler(a,c)};Sys.Observer.removeEventHandler=function(c,a,b){Sys.Observer._removeEventHandler(c,a,b)};Sys.Observer.clearEventHandlers=function(c,a){Sys.Observer._getContext(c,b).events._removeHandlers(a)};Sys.Observer.raiseEvent=function(b,e,d){var c=Sys.Observer._getContext(b);if(!c)return;var a=c.events.getHandler(e);if(a)a(b,d||Sys.EventArgs.Empty)};Sys.Observer.addPropertyChanged=function(b,a){Sys.Observer._addEventHandler(b,z,a)};Sys.Observer.removePropertyChanged=function(b,a){Sys.Observer._removeEventHandler(b,z,a)};Sys.Observer.beginUpdate=function(a){Sys.Observer._getContext(a,b).updating=b};Sys.Observer.endUpdate=function(e){var b=Sys.Observer._getContext(e);if(!b||!b.updating)return;b.updating=c;var g=b.dirty;b.dirty=c;if(g){if(e instanceof Array){var f=b.changes;b.changes=a;Sys.Observer.raiseCollectionChanged(e,f)}Sys.Observer.raisePropertyChanged(e,d)}};Sys.Observer.isUpdating=function(b){var a=Sys.Observer._getContext(b);return a?a.updating:c};Sys.Observer._setValue=function(c,o,l){var d,k,p=c,h=o.split(i);for(var n=0,s=h.length-1;n<s;n++){var q=h[n];d=c[M+q];if(typeof d===g)c=d.call(c);else c=c[q];var t=typeof c;if(c===a||t===e)throw Error.invalidOperation(String.format(Sys.Res.nullReferenceInPath,o))}var j,f=h[s];d=c[M+f];k=c[r+f];if(typeof d===g)j=d.call(c);else j=c[f];if(typeof k===g)k.call(c,l);else c[f]=l;if(j!==l){var m=Sys.Observer._getContext(p);if(m&&m.updating){m.dirty=b;return}Sys.Observer.raisePropertyChanged(p,h[0])}};Sys.Observer.setValue=function(b,a,c){Sys.Observer._setValue(b,a,c)};Sys.Observer.raisePropertyChanged=function(b,a){Sys.Observer.raiseEvent(b,z,new Sys.PropertyChangedEventArgs(a))};Sys.Observer.addCollectionChanged=function(b,a){Sys.Observer._addEventHandler(b,D,a)};Sys.Observer.removeCollectionChanged=function(b,a){Sys.Observer._removeEventHandler(b,D,a)};Sys.Observer._collectionChange=function(e,d){var a=Sys.Observer._getContext(e);if(a&&a.updating){a.dirty=b;var c=a.changes;if(!c)a.changes=c=[d];else c.push(d)}else{Sys.Observer.raiseCollectionChanged(e,[d]);Sys.Observer.raisePropertyChanged(e,"length")}};Sys.Observer.add=function(a,b){var c=new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,[b],a.length);Array.add(a,b);Sys.Observer._collectionChange(a,c)};Sys.Observer.addRange=function(a,b){var c=new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,b,a.length);Array.addRange(a,b);Sys.Observer._collectionChange(a,c)};Sys.Observer.clear=function(b){var c=Array.clone(b);Array.clear(b);Sys.Observer._collectionChange(b,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.reset,a,f,c,0))};Sys.Observer.insert=function(a,b,c){Array.insert(a,b,c);Sys.Observer._collectionChange(a,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,[c],b))};Sys.Observer.remove=function(d,e){var g=Array.indexOf(d,e);if(g!==f){Array.remove(d,e);Sys.Observer._collectionChange(d,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove,a,f,[e],g));return b}return c};Sys.Observer.removeAt=function(c,b){if(b>f&&b<c.length){var d=c[b];Array.removeAt(c,b);Sys.Observer._collectionChange(c,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove,a,f,[d],b))}};Sys.Observer.raiseCollectionChanged=function(b,a){Sys.Observer.raiseEvent(b,D,new Sys.NotifyCollectionChangedEventArgs(a))};Sys.Observer._observeMethods={add_propertyChanged:function(a){Sys.Observer._addEventHandler(this,z,a)},remove_propertyChanged:function(a){Sys.Observer._removeEventHandler(this,z,a)},addEventHandler:function(a,b){Sys.Observer._addEventHandler(this,a,b)},removeEventHandler:function(a,b){Sys.Observer._removeEventHandler(this,a,b)},clearEventHandlers:function(a){Sys.Observer._getContext(this,b).events._removeHandlers(a)},get_isUpdating:function(){return Sys.Observer.isUpdating(this)},beginUpdate:function(){Sys.Observer.beginUpdate(this)},endUpdate:function(){Sys.Observer.endUpdate(this)},setValue:function(b,a){Sys.Observer._setValue(this,b,a)},raiseEvent:function(c,b){Sys.Observer.raiseEvent(this,c,b||a)},raisePropertyChanged:function(a){Sys.Observer.raiseEvent(this,z,new Sys.PropertyChangedEventArgs(a))}};Sys.Observer._arrayMethods={add_collectionChanged:function(a){Sys.Observer._addEventHandler(this,D,a)},remove_collectionChanged:function(a){Sys.Observer._removeEventHandler(this,D,a)},add:function(a){Sys.Observer.add(this,a)},addRange:function(a){Sys.Observer.addRange(this,a)},clear:function(){Sys.Observer.clear(this)},insert:function(a,b){Sys.Observer.insert(this,a,b)},remove:function(a){return Sys.Observer.remove(this,a)},removeAt:function(a){Sys.Observer.removeAt(this,a)},raiseCollectionChanged:function(a){Sys.Observer.raiseEvent(this,D,new Sys.NotifyCollectionChangedEventArgs(a))}};Sys.Observer._getContext=function(c,d){var b=c._observerContext;if(b)return b();if(d)return (c._observerContext=Sys.Observer._createContext())();return a};Sys.Observer._createContext=function(){var a={events:new Sys.EventHandlerList};return function(){return a}};Date._appendPreOrPostMatch=function(f,b){var e=0,a=c;for(var d=0,h=f.length;d<h;d++){var g=f.charAt(d);switch(g){case "'":if(a)b.append("'");else e++;a=c;break;case "\\":if(a)b.append("\\");a=!a;break;default:b.append(g);a=c}}return e};Date._expandFormat=function(a,b){if(!b)b="F";var c=b.length;if(c===1)switch(b){case "d":return a[hb];case "D":return a[N];case "t":return a[O];case "T":return a[ib];case "f":return a[N]+h+a[O];case "F":return a[jb];case "M":case "m":return a[kb];case "s":return a[lb];case "Y":case "y":return a[mb];default:throw Error.format(Sys.Res.formatInvalidString)}else if(c===2&&b.charAt(0)==="%")b=b.charAt(1);return b};Date._expandYear=function(c,a){var d=new Date,e=Date._getEra(d);if(a<u){var b=Date._getEraYear(d,c,e);a+=b-b%u;if(a>c.Calendar.TwoDigitYearMax)a-=u}return a};Date._getEra=function(f,d){if(!d)return 0;var c,e=f.getTime();for(var b=0,g=d.length;b<g;b+=4){c=d[b+2];if(c===a||e>=c)return b}return 0};Date._getEraYear=function(d,b,e,c){var a=d.getFullYear();if(!c&&b.eras)a-=b.eras[e+3];return a};Date._getParseRegExp=function(c,f){if(!c._parseRegExp)c._parseRegExp={};else if(c._parseRegExp[f])return c._parseRegExp[f];var d=Date._expandFormat(c,f);d=d.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var b=new Sys.StringBuilder("^"),l=[],g=0,j=0,i=Date._getTokenRegExp(),e;while((e=i.exec(d))!==a){var p=d.slice(g,e.index);g=i.lastIndex;j+=Date._appendPreOrPostMatch(p,b);if(j%2===1){b.append(e[0]);continue}switch(e[0]){case P:case "ddd":case Q:case "MMM":case "gg":case "g":b.append("(\\D+)");break;case "tt":case "t":b.append("(\\D*)");break;case R:b.append("(\\d{4})");break;case "fff":b.append("(\\d{3})");break;case "ff":b.append("(\\d{2})");break;case "f":b.append("(\\d)");break;case "dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case "H":case "hh":case "h":case "mm":case "m":case "ss":case "s":b.append("(\\d\\d?)");break;case "zzz":b.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case "z":b.append("([+-]?\\d\\d?)");break;case k:b.append("(\\"+c.DateSeparator+m)}Array.add(l,e[0])}Date._appendPreOrPostMatch(d.slice(g),b);b.append(o);var n=b.toString().replace(/\s+/g,"\\s+"),h={regExp:n,groups:l};c._parseRegExp[f]=h;return h};Date._getTokenRegExp=function(){return /\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(k,g,l){var d,f,e,i,h,j=c;for(d=1,f=l.length;d<f;d++){i=l[d];if(i){j=b;e=Date._parseExact(k,i,g);if(e)return e}}if(!j){h=g._getDateTimeFormats();for(d=0,f=h.length;d<f;d++){e=Date._parseExact(k,h[d],g);if(e)return e}}return a};Date._parseExact=function(C,J,n){C=C.trim();var j=n.dateTimeFormat,G=Date._getParseRegExp(j,J),I=(new RegExp(G.regExp)).exec(C);if(I===a)return a;var H=G.groups,D=a,h=a,f=a,m=a,l=a,g=0,k,s=0,v=0,i=0,o=a,B=c;for(var y=0,K=H.length;y<K;y++){var d=I[y+1];if(d)switch(H[y]){case "dd":case "d":m=parseInt(d,t);if(m<1||m>31)return a;break;case Q:f=n._getMonthIndex(d);if(f<0||f>11)return a;break;case "MMM":f=n._getMonthIndex(d,b);if(f<0||f>11)return a;break;case "M":case "MM":f=parseInt(d,t)-1;if(f<0||f>11)return a;break;case "y":case "yy":h=Date._expandYear(j,parseInt(d,t));if(h<0||h>9999)return a;break;case R:h=parseInt(d,t);if(h<0||h>9999)return a;break;case "h":case "hh":g=parseInt(d,t);if(g===12)g=0;if(g<0||g>11)return a;break;case "H":case "HH":g=parseInt(d,t);if(g<0||g>23)return a;break;case "m":case "mm":s=parseInt(d,t);if(s<0||s>59)return a;break;case "s":case "ss":v=parseInt(d,t);if(v<0||v>59)return a;break;case "tt":case "t":var F=d.toUpperCase();B=F===j.PMDesignator.toUpperCase();if(!B&&F!==j.AMDesignator.toUpperCase())return a;break;case "f":i=parseInt(d,t)*u;if(i<0||i>999)return a;break;case "ff":i=parseInt(d,t)*t;if(i<0||i>999)return a;break;case "fff":i=parseInt(d,t);if(i<0||i>999)return a;break;case P:l=n._getDayIndex(d);if(l<0||l>6)return a;break;case "ddd":l=n._getDayIndex(d,b);if(l<0||l>6)return a;break;case "zzz":var A=d.split(/:/);if(A.length!==2)return a;k=parseInt(A[0],t);if(k<-12||k>13)return a;var p=parseInt(A[1],t);if(p<0||p>59)return a;o=k*60+(d.startsWith(x)?-p:p);break;case "z":case "zz":k=parseInt(d,t);if(k<-12||k>13)return a;o=k*60;break;case "g":case "gg":var r=d;if(!r||!j.eras)return a;r=r.toLowerCase().trim();for(var w=0,L=j.eras.length;w<L;w+=4)if(r===j.eras[w+1].toLowerCase()){D=w;break}if(D===a)return a}}var e=new Date,z,q=j.Calendar.convert;if(q)z=q.fromGregorian(e)[0];else z=e.getFullYear();if(h===a)h=z;else if(j.eras)h+=j.eras[(D||0)+3];if(f===a)f=0;if(m===a)m=1;if(q){e=q.toGregorian(h,f,m);if(e===a)return a}else{e.setFullYear(h,f,m);if(e.getDate()!==m)return a;if(l!==a&&e.getDay()!==l)return a}if(B&&g<12)g+=12;e.setHours(g,s,v,i);if(o!==a){var E=e.getMinutes()-(o+e.getTimezoneOffset());e.setHours(e.getHours()+parseInt(E/60,t),E%60)}return e};Date.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Date.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Date.prototype._toFormattedString=function(g,m){var a=this,d=m.dateTimeFormat,q=d.Calendar.convert;if(!g||!g.length||g==="i")if(m&&m.name.length)if(q)return a._toFormattedString(d.FullDateTimePattern,m);else{var w=new Date(a.getTime()),F=Date._getEra(a,d.eras);w.setFullYear(Date._getEraYear(a,d,F));return w.toLocaleString()}else return a.toString();var o=d.eras,n=g==="s";g=Date._expandFormat(d,g);var c=new Sys.StringBuilder,e;function f(a){if(a<t)return y+a;return a.toString()}function p(a){if(a<t)return "00"+a;if(a<u)return y+a;return a.toString()}function D(a){if(a<t)return "000"+a;else if(a<u)return "00"+a;else if(a<1e3)return y+a;return a.toString()}var j,s,B=/([^d]|^)(d|dd)([^d]|$)/g;function z(){if(j||s)return j;j=B.test(g);s=b;return j}var v=0,r=Date._getTokenRegExp(),h;if(!n&&q)h=q.fromGregorian(a);for(;b;){var E=r.lastIndex,l=r.exec(g),C=g.slice(E,l?l.index:g.length);v+=Date._appendPreOrPostMatch(C,c);if(!l)break;if(v%2===1){c.append(l[0]);continue}function i(a,b){if(h)return h[b];switch(b){case 0:return a.getFullYear();case 1:return a.getMonth();case 2:return a.getDate()}}switch(l[0]){case P:c.append(d.DayNames[a.getDay()]);break;case "ddd":c.append(d.AbbreviatedDayNames[a.getDay()]);break;case "dd":j=b;c.append(f(i(a,2)));break;case "d":j=b;c.append(i(a,2));break;case Q:c.append(d.MonthGenitiveNames&&z()?d.MonthGenitiveNames[i(a,1)]:d.MonthNames[i(a,1)]);break;case "MMM":c.append(d.AbbreviatedMonthGenitiveNames&&z()?d.AbbreviatedMonthGenitiveNames[i(a,1)]:d.AbbreviatedMonthNames[i(a,1)]);break;case "MM":c.append(f(i(a,1)+1));break;case "M":c.append(i(a,1)+1);break;case R:c.append(D(h?h[0]:Date._getEraYear(a,d,Date._getEra(a,o),n)));break;case "yy":c.append(f((h?h[0]:Date._getEraYear(a,d,Date._getEra(a,o),n))%u));break;case "y":c.append((h?h[0]:Date._getEraYear(a,d,Date._getEra(a,o),n))%u);break;case "hh":e=a.getHours()%12;if(e===0)e=12;c.append(f(e));break;case "h":e=a.getHours()%12;if(e===0)e=12;c.append(e);break;case "HH":c.append(f(a.getHours()));break;case "H":c.append(a.getHours());break;case "mm":c.append(f(a.getMinutes()));break;case "m":c.append(a.getMinutes());break;case "ss":c.append(f(a.getSeconds()));break;case "s":c.append(a.getSeconds());break;case "tt":c.append(a.getHours()<12?d.AMDesignator:d.PMDesignator);break;case "t":c.append((a.getHours()<12?d.AMDesignator:d.PMDesignator).charAt(0));break;case "f":c.append(p(a.getMilliseconds()).charAt(0));break;case "ff":c.append(p(a.getMilliseconds()).substr(0,2));break;case "fff":c.append(p(a.getMilliseconds()));break;case "z":e=a.getTimezoneOffset()/60;c.append((e<=0?A:x)+Math.floor(Math.abs(e)));break;case "zz":e=a.getTimezoneOffset()/60;c.append((e<=0?A:x)+f(Math.floor(Math.abs(e))));break;case "zzz":e=a.getTimezoneOffset()/60;c.append((e<=0?A:x)+f(Math.floor(Math.abs(e)))+":"+f(Math.abs(a.getTimezoneOffset()%60)));break;case "g":case "gg":if(d.eras)c.append(d.eras[Date._getEra(a,o)+1]);break;case k:c.append(d.DateSeparator)}}return c.toString()};String.localeFormat=function(){return String._toFormattedString(b,arguments)};Number.parseLocale=function(a){return Number._parse(a,Sys.CultureInfo.CurrentCulture)};Number.parseInvariant=function(a){return Number._parse(a,Sys.CultureInfo.InvariantCulture)};Number._parse=function(c,s){c=c.trim();if(c.match(/^[+-]?infinity$/i))return parseFloat(c);if(c.match(/^0x[a-f0-9]+$/i))return parseInt(c);var b=s.numberFormat,k=Number._parseNumberNegativePattern(c,b,b.NumberNegativePattern),l=k[0],g=k[1];if(l===d&&b.NumberNegativePattern!==1){k=Number._parseNumberNegativePattern(c,b,1);l=k[0];g=k[1]}if(l===d)l=A;var n,f,j=g.indexOf("e");if(j<0)j=g.indexOf("E");if(j<0){f=g;n=a}else{f=g.substr(0,j);n=g.substr(j+1)}var e,o,q=f.indexOf(b.NumberDecimalSeparator);if(q<0){e=f;o=a}else{e=f.substr(0,q);o=f.substr(q+b.NumberDecimalSeparator.length)}e=e.split(b.NumberGroupSeparator).join(d);var r=b.NumberGroupSeparator.replace(/\u00A0/g,h);if(b.NumberGroupSeparator!==r)e=e.split(r).join(d);var p=l+e;if(o!==a)p+=i+o;if(n!==a){var m=Number._parseNumberNegativePattern(n,b,1);if(m[0]===d)m[0]=A;p+="e"+m[0]+m[1]}if(p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/))return parseFloat(p);return Number.NaN};Number._parseNumberNegativePattern=function(a,e,f){var b=e.NegativeSign,c=e.PositiveSign;switch(f){case 4:b=h+b;c=h+c;case 3:if(a.endsWith(b))return [x,a.substr(0,a.length-b.length)];else if(a.endsWith(c))return [A,a.substr(0,a.length-c.length)];break;case 2:b+=h;c+=h;case 1:if(a.startsWith(b))return [x,a.substr(b.length)];else if(a.startsWith(c))return [A,a.substr(c.length)];break;case 0:if(a.startsWith(n)&&a.endsWith(m))return [x,a.substr(1,a.length-2)]}return [d,a]};Number.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Number.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Number.prototype._toFormattedString=function(k,q){var h=this;if(!k||k.length===0||k==="i")if(q&&q.name.length>0)return h.toLocaleString();else return h.toString();var z=["n %","n%","%n"],w=["-n %","-n%","-%n"],A=["(n)","-n","- n","n-","n -"],v=["$n","n$","$ n","n $"],s=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function m(a,c,d){for(var b=a.length;b<c;b++)a=d?y+a:a+y;return a}function p(n,l,p,r,u){var k=p[0],o=1,s=Math.pow(t,l),q=Math.round(n*s)/s;if(!isFinite(q))q=n;n=q;var e=n.toString(),a=d,f,h=e.split(/e/i);e=h[0];f=h.length>1?parseInt(h[1]):0;h=e.split(i);e=h[0];a=h.length>1?h[1]:d;var v;if(f>0){a=m(a,f,c);e+=a.slice(0,f);a=a.substr(f)}else if(f<0){f=-f;e=m(e,f+1,b);a=e.slice(-f,e.length)+a;e=e.slice(0,-f)}if(l>0){if(a.length>l)a=a.slice(0,l);else a=m(a,l,c);a=u+a}else a=d;var g=e.length-1,j=d;while(g>=0){if(k===0||k>g)if(j.length>0)return e.slice(0,g+1)+r+j+a;else return e.slice(0,g+1)+a;if(j.length>0)j=e.slice(g-k+1,g+1)+r+j;else j=e.slice(g-k+1,g+1);g-=k;if(o<p.length){k=p[o];o++}}return e.slice(0,g+1)+r+j+a}var a=q.numberFormat,j=Math.abs(h);if(!k)k="D";var e=f;if(k.length>1)e=parseInt(k.slice(1),t);var g;switch(k.charAt(0)){case "d":case "D":g="n";if(e!==f)j=m(d+j,e,b);if(h<0)j=-j;break;case "c":case "C":if(h<0)g=s[a.CurrencyNegativePattern];else g=v[a.CurrencyPositivePattern];if(e===f)e=a.CurrencyDecimalDigits;j=p(Math.abs(h),e,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case "n":case "N":if(h<0)g=A[a.NumberNegativePattern];else g="n";if(e===f)e=a.NumberDecimalDigits;j=p(Math.abs(h),e,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case "p":case "P":if(h<0)g=w[a.PercentNegativePattern];else g=z[a.PercentPositivePattern];if(e===f)e=a.PercentDecimalDigits;j=p(Math.abs(h)*u,e,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var r=/n|\$|-|%/g,l=d;for(;b;){var B=r.lastIndex,n=r.exec(g);l+=g.slice(B,n?n.index:g.length);if(!n)break;switch(n[0]){case "n":l+=j;break;case o:l+=a.CurrencySymbol;break;case x:if(/[1-9]/.test(j))l+=a.NegativeSign;break;case "%":l+=a.PercentSymbol}}return l};function xb(a){return a.split("\u00a0").join(h).toUpperCase()}function ub(b){var a=[];vb(b,function(b,c){a[c]=xb(b)});return a}function zb(c){var b={};Ab(c,function(c,d){b[d]=c instanceof Array?c.length===1?[c]:Array.apply(a,c):typeof c===F?zb(c):c});return b}Sys.CultureInfo=function(c,b,a){this.name=c;this.numberFormat=b;this.dateTimeFormat=a};Sys.CultureInfo.prototype={_getDateTimeFormats:function(){var b=this._dateTimeFormats;if(!b){var a=this.dateTimeFormat;this._dateTimeFormats=b=[a[kb],a[mb],a[hb],a[O],a[N],a[ib],a[jb],a["RFC1123Pattern"],a[lb],a["UniversalSortableDateTimePattern"]]}return b},_getMonthIndex:function(b,h){var a=this,c=h?"_upperAbbrMonths":"_upperMonths",f=c+"Genitive",i=a[c];if(!i){var g=h?nb:d;a[c]=ub(a.dateTimeFormat[g+"MonthNames"]);a[f]=ub(a.dateTimeFormat[g+"MonthGenitiveNames"])}b=xb(b);var e=rb(a[c],b);if(e<0)e=rb(a[f],b);return e},_getDayIndex:function(f,c){var a=this,b=c?"_upperAbbrDays":"_upperDays",e=a[b];if(!e)a[b]=ub(a.dateTimeFormat[(c?nb:d)+"DayNames"]);return rb(a[b],xb(f))}};Sys.CultureInfo.registerClass("Sys.CultureInfo");Bb(Sys.CultureInfo,{_parse:function(a){var b=a.dateTimeFormat;if(b&&!b.eras)b.eras=a.eras;return new Sys.CultureInfo(a.name,a.numberFormat,b)},_setup:function(){var c=this,b=window.__cultureInfo,g=["January","February","March","April","May","June","July","August","September","October","November","December",d],f=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",d],h={name:d,numberFormat:{CurrencyDecimalDigits:2,CurrencyDecimalSeparator:i,CurrencyGroupSizes:[3],NumberGroupSizes:[3],PercentGroupSizes:[3],CurrencyGroupSeparator:C,CurrencySymbol:"\u00a4",NaNSymbol:"NaN",CurrencyNegativePattern:0,NumberNegativePattern:1,PercentPositivePattern:0,PercentNegativePattern:0,NegativeInfinitySymbol:"-Infinity",NegativeSign:x,NumberDecimalDigits:2,NumberDecimalSeparator:i,NumberGroupSeparator:C,CurrencyPositivePattern:0,PositiveInfinitySymbol:"Infinity",PositiveSign:A,PercentDecimalDigits:2,PercentDecimalSeparator:i,PercentGroupSeparator:C,PercentSymbol:"%",PerMilleSymbol:"\u2030",NativeDigits:[y,"1","2","3","4","5","6","7","8","9"],DigitSubstitution:1},dateTimeFormat:{AMDesignator:"AM",Calendar:{MinSupportedDateTime:"@-62135568000000@",MaxSupportedDateTime:"@253402300799999@",AlgorithmType:1,CalendarType:1,Eras:[1],TwoDigitYearMax:2029},DateSeparator:k,FirstDayOfWeek:0,CalendarWeekRule:0,FullDateTimePattern:"dddd, dd MMMM yyyy HH:mm:ss",LongDatePattern:"dddd, dd MMMM yyyy",LongTimePattern:"HH:mm:ss",MonthDayPattern:"MMMM dd",PMDesignator:"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'",ShortDatePattern:"MM/dd/yyyy",ShortTimePattern:"HH:mm",SortableDateTimePattern:"yyyy'-'MM'-'dd'T'HH':'mm':'ss",TimeSeparator:":",UniversalSortableDateTimePattern:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",YearMonthPattern:"yyyy MMMM",AbbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ShortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],DayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],AbbreviatedMonthNames:f,MonthNames:g,NativeCalendarName:"Gregorian Calendar",AbbreviatedMonthGenitiveNames:Array.clone(f),MonthGenitiveNames:Array.clone(g)},eras:[1,"A.D.",a,0]};c.InvariantCulture=c._parse(h);switch(typeof b){case j:b=window.eval(n+b+m);case F:c.CurrentCulture=c._parse(b);delete __cultureInfo;break;default:b=zb(h);b.name="en-US";b.numberFormat.CurrencySymbol=o;var e=b.dateTimeFormat;e.FullDatePattern="dddd, MMMM dd, yyyy h:mm:ss tt";e.LongDatePattern="dddd, MMMM dd, yyyy";e.LongTimePattern="h:mm:ss tt";e.ShortDatePattern="M/d/yyyy";e.ShortTimePattern="h:mm tt";e.YearMonthPattern="MMMM, yyyy";c.CurrentCulture=c._parse(b)}}});Sys.CultureInfo._setup();Type.registerNamespace("Sys.Serialization");Sys.Serialization.JavaScriptSerializer=function(){};Sys.Serialization.JavaScriptSerializer.registerClass("Sys.Serialization.JavaScriptSerializer");Bb(Sys.Serialization.JavaScriptSerializer,{_esc:{charsRegExs:{'"':/\"/g,"\\":/\\/g},chars:["\\",'"'],dateRegEx:/(^|[^\\])\"\\\/Date\((-?[0-9]+)(?:[a-zA-Z]|(?:\+|-)[0-9]{4})?\)\\\/\"/g,escapeChars:{"\\":"\\\\",'"':'\\"',"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r"},escapeRegExG:/[\"\\\x00-\x1F]/g,escapeRegEx:/[\"\\\x00-\x1F]/i,jsonRegEx:/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/g,jsonStringRegEx:/\"(\\.|[^\"\\])*\"/g},_init:function(){var d=this._esc,g=d.chars,f=d.charsRegExs,e=d.escapeChars;for(var c=0;c<32;c++){var a=String.fromCharCode(c);g[c+2]=a;f[a]=new RegExp(a,"g");e[a]=e[a]||"\\u"+("000"+c.toString(16)).slice(-4)}this._load=b},_serializeNumberWithBuilder:function(a,b){if(!isFinite(a))throw Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);b.append(String(a))},_serializeStringWithBuilder:function(a,e){e.append('"');var b=this._esc;if(b.escapeRegEx.test(a)){if(!this._load)this._init();if(a.length<128)a=a.replace(b.escapeRegExG,function(a){return b.escapeChars[a]});else for(var d=0;d<34;d++){var c=b.chars[d];if(a.indexOf(c)!==f){var g=b.escapeChars[c];a=ab("Opera")||ab(L)?a.split(c).join(g):a.replace(b.charsRegExs[c],g)}}}e.append(a).append('"')},_serializeWithBuilder:function(b,a,m,l){var f=this,d;switch(typeof b){case F:if(b)if(Number.isInstanceOfType(b))f._serializeNumberWithBuilder(b,a);else if(Boolean.isInstanceOfType(b))a.append(b);else if(String.isInstanceOfType(b))f._serializeStringWithBuilder(b,a);else if(b instanceof Array){a.append("[");for(d=0;d<b.length;++d){if(d)a.append(C);f._serializeWithBuilder(b[d],a,c,l)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.append('"\\/Date(').append(b.getTime()).append(')\\/"');break}var h=[],i=0;for(var k in b)if(k.charAt(0)!==o)if(k==="__type"&&i){h[i++]=h[0];h[0]=k}else h[i++]=k;if(m)h.sort();a.append("{");for(d=0;d<i;d++){var p=h[d],n=b[p],q=typeof n;if(q!==e&&q!==g){if(d)a.append(C);f._serializeWithBuilder(p,a,m,l);a.append(":");f._serializeWithBuilder(n,a,m,l)}}a.append("}")}else a.append("null");break;case v:f._serializeNumberWithBuilder(b,a);break;case j:f._serializeStringWithBuilder(b,a);break;case "boolean":a.append(b);break;default:a.append("null")}}});Sys.Serialization.JavaScriptSerializer.serialize=function(b){var a=new Sys.StringBuilder;Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b,a,c);return a.toString()};Sys.Serialization.JavaScriptSerializer.deserialize=function(c,f){if(!c.length)throw Error.argument("data",Sys.Res.cannotDeserializeEmptyString);var g,b=Sys.Serialization.JavaScriptSerializer._esc;try{var e=c.replace(b.dateRegEx,"$1new Date($2)");if(f&&b.jsonRegEx.test(e.replace(b.jsonStringRegEx,d)))throw a;return window.eval(n+e+m)}catch(g){throw Error.argument("data",Sys.Res.cannotDeserializeInvalidJson)}};Type.registerNamespace("Sys.UI");Sys.EventHandlerList=function(){this._list={}};Sys.EventHandlerList.prototype={_addHandler:function(c,a){Array.add(this._getEvent(c,b),a)},addHandler:function(b,a){this._addHandler(b,a)},_removeHandler:function(c,b){var a=this._getEvent(c);if(!a)return;Array.remove(a,b)},_removeHandlers:function(b){if(!b)this._list={};else{var a=this._getEvent(b);if(!a)return;a.length=0}},removeHandler:function(b,a){this._removeHandler(b,a)},getHandler:function(c){var b=this._getEvent(c);if(!b||b.length===0)return a;b=Array.clone(b);return function(c,d){for(var a=0,e=b.length;a<e;a++)b[a](c,d)}},_getEvent:function(b,c){if(!this._list[b]){if(!c)return a;this._list[b]=[]}return this._list[b]}};Sys.EventHandlerList.registerClass("Sys.EventHandlerList");Sys.CommandEventArgs=function(d,b,c){var a=this;Sys.CommandEventArgs.initializeBase(a);a._commandName=d;a._commandArgument=b;a._commandSource=c};Sys.CommandEventArgs.prototype={_commandName:a,_commandArgument:a,_commandSource:a,get_commandName:function(){return this._commandName},get_commandArgument:function(){return this._commandArgument},get_commandSource:function(){return this._commandSource}};Sys.CommandEventArgs.registerClass("Sys.CommandEventArgs",Sys.CancelEventArgs);Sys.INotifyPropertyChange=function(){};Sys.INotifyPropertyChange.registerInterface("Sys.INotifyPropertyChange");Sys.PropertyChangedEventArgs=function(a){Sys.PropertyChangedEventArgs.initializeBase(this);this._propertyName=a};Sys.PropertyChangedEventArgs.prototype={get_propertyName:function(){return this._propertyName}};Sys.PropertyChangedEventArgs.registerClass("Sys.PropertyChangedEventArgs",Sys.EventArgs);Sys.INotifyDisposing=function(){};Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");Sys.Component=function(){if(Sys.Application)Sys.Application.registerDisposableObject(this)};Sys.Component.prototype={get_events:function(){return Sys.Observer._getContext(this,b).events},get_id:function(){return this._id||a},set_id:function(a){this._id=a},get_isInitialized:function(){return !!this._initialized},get_isUpdating:function(){return !!this._updating},add_disposing:function(a){this._addHandler(S,a)},remove_disposing:function(a){this._removeHandler(S,a)},add_propertyChanged:function(a){this._addHandler(z,a)},remove_propertyChanged:function(a){this._removeHandler(z,a)},_addHandler:function(a,b){Sys.Observer.addEventHandler(this,a,b)},_removeHandler:function(a,b){Sys.Observer.removeEventHandler(this,a,b)},beginUpdate:function(){this._updating=b},dispose:function(){var a=this;Sys.Observer.raiseEvent(a,S);Sys.Observer.clearEventHandlers(a);Sys.Application.unregisterDisposableObject(a);Sys.Application.removeComponent(a)},endUpdate:function(){var a=this;a._updating=c;if(!a._initialized)a.initialize();a.updated()},initialize:function(){this._initialized=b},raisePropertyChanged:function(a){Sys.Observer.raisePropertyChanged(this,a)},updated:function(){}};Sys.Component.registerClass("Sys.Component",a,Sys.IDisposable,Sys.INotifyPropertyChange,Sys.INotifyDisposing);Sys.Component._setProperties=function(b,k){var d,l=Object.getType(b),f=l===Object||l===Sys.UI.DomElement,j=Sys.Component.isInstanceOfType(b)&&!b.get_isUpdating();if(j)b.beginUpdate();for(var e in k){var c=k[e],h=f?a:b[M+e];if(f||typeof h!==g){var m=b[e];if(!c||typeof c!==F||f&&!m)b[e]=c;else this._setProperties(m,c)}else{var n=b[r+e];if(typeof n===g)n.apply(b,[c]);else if(c instanceof Array){d=h.apply(b);for(var i=0,o=d.length,p=c.length;i<p;i++,o++)d[o]=c[i]}else if(typeof c===F&&Object.getType(c)===Object){d=h.apply(b);this._setProperties(d,c)}}}if(j)b.endUpdate()};Sys.Component._setReferences=function(b,a){for(var c in a){var e=b[r+c],d=$find(a[c]);e.apply(b,[d])}};$create=Sys.Component.create=function(f,c,b,g,d){var a=d?new f(d):new f;a.beginUpdate();if(c)Sys.Component._setProperties(a,c);if(b)for(var e in b)a["add_"+e](b[e]);Sys.Component._register(a,g);return a};Sys.Component._register=function(a,c,e){var f;if(Sys.Component.isInstanceOfType(a)){f=b;var d=Sys.Application;if(a.get_id())d.addComponent(a);if(d.get_isCreatingComponents()){d._createdComponents.push(a);if(c)d._addComponentToSecondPass(a,c);else if(!e)a.endUpdate()}else{if(c)Sys.Component._setReferences(a,c);if(!e)a.endUpdate()}}return f};Sys._getComponent=function(c,b){var a=Sys.Application.findComponent(b);if(a)c.push(a)};Sys.UI.MouseButton=function(){};Sys.UI.MouseButton.prototype={leftButton:0,middleButton:1,rightButton:2};Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");Sys.UI.Key=function(){};Sys.UI.Key.prototype={backspace:8,tab:9,enter:13,esc:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:127};Sys.UI.Key.registerEnum("Sys.UI.Key");Sys.UI.Point=function(a,b){this.x=a;this.y=b};Sys.UI.Point.registerClass("Sys.UI.Point");Sys.UI.Bounds=function(d,e,c,b){var a=this;a.x=d;a.y=e;a.height=b;a.width=c};Sys.UI.Bounds.registerClass("Sys.UI.Bounds");Sys.UI.DomEvent=function(g){var b=this,a=g,c=b.type=a.type.toLowerCase();b.rawEvent=a;b.altKey=a.altKey;if(typeof a.button!==e)b.button=typeof a.which!==e?a.button:a.button===4?Sys.UI.MouseButton.middleButton:a.button===2?Sys.UI.MouseButton.rightButton:Sys.UI.MouseButton.leftButton;if(c==="keypress")b.charCode=a.charCode||a.keyCode;else if(a.keyCode&&a.keyCode===46)b.keyCode=127;else b.keyCode=a.keyCode;b.clientX=a.clientX;b.clientY=a.clientY;b.ctrlKey=a.ctrlKey;b.target=a.target?a.target:a.srcElement;if(!c.startsWith("key"))if(typeof a.offsetX!==e&&typeof a.offsetY!==e){b.offsetX=a.offsetX;b.offsetY=a.offsetY}else if(b.target&&b.target.nodeType!==3&&typeof a.clientX===v){var d=Sys.UI.DomElement.getLocation(b.target),f=Sys.UI.DomElement._getWindow(b.target);b.offsetX=(f.pageXOffset||0)+a.clientX-d.x;b.offsetY=(f.pageYOffset||0)+a.clientY-d.y}b.screenX=a.screenX;b.screenY=a.screenY;b.shiftKey=a.shiftKey};Sys.UI.DomEvent.prototype={preventDefault:function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=c},stopPropagation:function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=b}};Sys.UI.DomEvent.registerClass("Sys.UI.DomEvent");$addHandler=Sys.UI.DomEvent.addHandler=function(a,e,f,g){if(!a._events)a._events={};var d=a._events[e];if(!d)a._events[e]=d=[];var b;if(a.addEventListener){b=function(b){return f.call(a,new Sys.UI.DomEvent(b))};a.addEventListener(e,b,c)}else if(a.attachEvent){b=function(){var c,b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return f.call(a,new Sys.UI.DomEvent(b))};a.attachEvent(q+e,b)}d[d.length]={handler:f,browserHandler:b,autoRemove:g};if(g)Sys.UI.DomElement._onDispose(a,Sys.UI.DomEvent._disposeHandlers)};$addHandlers=Sys.UI.DomEvent.addHandlers=function(g,d,b,f){for(var e in d){var a=d[e];if(b)a=Function.createDelegate(b,a);$addHandler(g,e,a,f||c)}};$clearHandlers=Sys.UI.DomEvent.clearHandlers=function(a){Sys.UI.DomEvent._clearHandlers(a,c)};Sys.UI.DomEvent._clearHandlers=function(a,g){if(a._events){var d=a._events;for(var f in d){var c=d[f];for(var b=c.length-1;b>=0;b--){var e=c[b];if(!g||e.autoRemove)$removeHandler(a,f,e.handler)}}}};Sys.UI.DomEvent._disposeHandlers=function(){Sys.UI.DomEvent._clearHandlers(this,b)};$removeHandler=Sys.UI.DomEvent.removeHandler=function(b,a,c){Sys.UI.DomEvent._removeHandler(b,a,c)};Sys.UI.DomEvent._removeHandler=function(b,g,h){var f=a,e=b._events[g];for(var d=0,i=e.length;d<i;d++)if(e[d].handler===h){f=e[d].browserHandler;break}if(b.removeEventListener)b.removeEventListener(g,f,c);else if(b.detachEvent)b.detachEvent(q+g,f);e.splice(d,1)};Sys.UI.DomElement=function(){};Sys.UI.DomElement.registerClass("Sys.UI.DomElement");Sys.UI.DomElement.addCssClass=function(a,b){if(!Sys.UI.DomElement.containsCssClass(a,b))if(a.className===d)a.className=b;else a.className+=h+b};Sys.UI.DomElement.containsCssClass=function(b,a){return Array.contains(b.className.split(h),a)};Sys.UI.DomElement.getBounds=function(a){var b=Sys.UI.DomElement.getLocation(a);return new Sys.UI.Bounds(b.x,b.y,a.offsetWidth||0,a.offsetHeight||0)};$get=Sys.UI.DomElement.getElementById=function(c,b){return Sys.get(l+c,b||a)};if(document.documentElement.getBoundingClientRect)Sys.UI.DomElement.getLocation=function(c){if(c.self||c.nodeType===9||c===document.documentElement||c.parentNode===c.ownerDocument.documentElement)return new Sys.UI.Point(0,0);var g=c.getBoundingClientRect();if(!g)return new Sys.UI.Point(0,0);var l,f=c.ownerDocument.documentElement,d=Math.round(g.left)+f.scrollLeft,e=Math.round(g.top)+f.scrollTop;if(ab(ob)){try{var h=c.ownerDocument.parentWindow.frameElement||a;if(h){var i=h.frameBorder===y||h.frameBorder==="no"?2:0;d+=i;e+=i}}catch(l){}if(Sys.Browser.version===7&&!document.documentMode){var j=document.body,k=j.getBoundingClientRect(),b=(k.right-k.left)/j.clientWidth;b=Math.round(b*u);b=(b-b%5)/u;if(!isNaN(b)&&b!==1){d=Math.round(d/b);e=Math.round(e/b)}}if((document.documentMode||0)<8){d-=f.clientLeft;e-=f.clientTop}}return new Sys.UI.Point(d,e)};else if(ab(bb))Sys.UI.DomElement.getLocation=function(d){if(d.window&&d.window===d||d.nodeType===9)return new Sys.UI.Point(0,0);var e=0,f=0,b,k=a,h=a,c;for(b=d;b;k=b,h=c,b=b.offsetParent){c=Sys.UI.DomElement._getCurrentStyle(b);var g=b.tagName?b.tagName.toUpperCase():a;if((b.offsetLeft||b.offsetTop)&&(g!==G||(!h||h.position!==B))){e+=b.offsetLeft;f+=b.offsetTop}if(k&&Sys.Browser.version>=3){e+=parseInt(c.borderLeftWidth);f+=parseInt(c.borderTopWidth)}}c=Sys.UI.DomElement._getCurrentStyle(d);var i=c?c.position:a;if(!i||i!==B)for(b=d.parentNode;b;b=b.parentNode){g=b.tagName?b.tagName.toUpperCase():a;if(g!==G&&g!==T&&(b.scrollLeft||b.scrollTop)){e-=b.scrollLeft||0;f-=b.scrollTop||0}c=Sys.UI.DomElement._getCurrentStyle(b);var j=c?c.position:a;if(j&&j===B)break}return new Sys.UI.Point(e,f)};else Sys.UI.DomElement.getLocation=function(e){if(e.window&&e.window===e||e.nodeType===9)return new Sys.UI.Point(0,0);var f=0,g=0,b,j=a,h=a,c=a;for(b=e;b;j=b,h=c,b=b.offsetParent){var d=b.tagName?b.tagName.toUpperCase():a;c=Sys.UI.DomElement._getCurrentStyle(b);if((b.offsetLeft||b.offsetTop)&&!(d===G&&(!h||h.position!==B))){f+=b.offsetLeft;g+=b.offsetTop}if(j!==a&&c){if(d!==U&&d!=="TD"&&d!==T){f+=parseInt(c.borderLeftWidth)||0;g+=parseInt(c.borderTopWidth)||0}if(d===U&&(c.position==="relative"||c.position===B)){f+=parseInt(c.marginLeft)||0;g+=parseInt(c.marginTop)||0}}}c=Sys.UI.DomElement._getCurrentStyle(e);var i=c?c.position:a;if(!i||i!==B)for(b=e.parentNode;b;b=b.parentNode){d=b.tagName?b.tagName.toUpperCase():a;if(d!==G&&d!==T&&(b.scrollLeft||b.scrollTop)){f-=b.scrollLeft||0;g-=b.scrollTop||0;c=Sys.UI.DomElement._getCurrentStyle(b);if(c){f+=parseInt(c.borderLeftWidth)||0;g+=parseInt(c.borderTopWidth)||0}}}return new Sys.UI.Point(f,g)};Sys.UI.DomElement.isDomElement=function(a){return Sys._isDomElement(a)};Sys.UI.DomElement.removeCssClass=function(d,c){var a=h+d.className+h,b=a.indexOf(h+c+h);if(b>=0)d.className=(a.substr(0,b)+h+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.resolveElement=function(c,d){var b=c;if(!b)return a;if(typeof b===j)b=Sys.get(l+b,d);return b};Sys.UI.DomElement.raiseBubbleEvent=function(c,d){var b=c;while(b){var a=b.control;if(a&&a.onBubbleEvent&&a.raiseBubbleEvent){if(!a.onBubbleEvent(c,d))a._raiseBubbleEvent(c,d);return}b=b.parentNode}};Sys.UI.DomElement._ensureGet=function(b,c,d){var a=Sys.get(b,c);if(!a&&typeof b===j)throw Error.invalidOperation(String.format(Sys.Res.selectorNotFound,b));else if(a&&!this.isDomElement(a))throw Error.invalidOperation(String.format(Sys.Res.expectedDomElementOrSelector,d));return a};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position=B;a.left=c+"px";a.top=d+"px"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===c)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display=H;a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(c){var a=c.currentStyle||Sys.UI.DomElement._getCurrentStyle(c);if(!a)return b;return a.visibility!=="hidden"&&a.display!==H};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?"visible":"hidden";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display=H}};Sys.UI.DomElement.setCommand=function(c,e,a,d){Sys.UI.DomEvent.addHandler(c,"click",function(){var b=d||this;Sys.UI.DomElement.raiseBubbleEvent(b,new Sys.CommandEventArgs(e,a,this))},b)};Sys.UI.DomElement._ensureOldDisplayMode=function(b){if(!b._oldDisplayMode){var c=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);b._oldDisplayMode=c?c.display:a;if(!b._oldDisplayMode||b._oldDisplayMode===H)switch(b.tagName.toUpperCase()){case "DIV":case "P":case "ADDRESS":case "BLOCKQUOTE":case G:case "COL":case "COLGROUP":case "DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":case "HR":case "IFRAME":case "LEGEND":case "OL":case "PRE":case U:case "TD":case "TH":case "TR":case "UL":b._oldDisplayMode="block";break;case "LI":b._oldDisplayMode="list-item";break;default:b._oldDisplayMode="inline"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(b){if(b.nodeType===3)return a;var d=Sys.UI.DomElement._getWindow(b);if(b.documentElement)b=b.documentElement;var c=d&&b!==d&&d.getComputedStyle?d.getComputedStyle(b,a):b.currentStyle||b.style;if(!c&&ab(bb)&&b.style){var h=b.style.display,g=b.style.position;b.style.position=B;b.style.display="block";var e=d.getComputedStyle(b,a);b.style.display=h;b.style.position=g;c={};for(var f in e)c[f]=e[f];c.display=H}return c};Sys.UI.DomElement._onDispose=function(a,d){var b,c=a.dispose;if(c!==Sys.UI.DomElement._dispose){a.dispose=Sys.UI.DomElement._dispose;a.__msajaxdispose=b=[];if(typeof c===g)b.push(c)}else b=a.__msajaxdispose;b.push(d)};Sys.UI.DomElement._dispose=function(){var b=this,c=b.__msajaxdispose;if(c)for(var d=0,e=c.length;d<e;d++)c[d].apply(b);if(b.control&&typeof b.control.dispose===g)b.control.dispose();b.__msajaxdispose=a;b.dispose=a};Sys.IContainer=function(){};Sys.IContainer.registerInterface("Sys.IContainer");Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.ApplicationLoadEventArgs",Sys.EventArgs);Sys._Application=function(){var a=this;Sys._Application.initializeBase(a);a._disposableObjects=[];a._components={};a._createdComponents=[];a._secondPassComponents=[];a._unloadHandlerDelegate=Function.createDelegate(a,a._unloadHandler);Sys.UI.DomEvent.addHandler(window,I,a._unloadHandlerDelegate);var b=a;Sys.onReady(function(){b._doInitialize()})};Sys._Application.prototype={_deleteCount:0,get_isCreatingComponents:function(){return !!this._creatingComponents},get_isDisposing:function(){return !!this._disposing},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this._addHandler(V,a)},remove_init:function(a){this._removeHandler(V,a)},add_load:function(a){this._addHandler(p,a)},remove_load:function(a){this._removeHandler(p,a)},add_unload:function(a){this._addHandler(I,a)},remove_unload:function(a){this._removeHandler(I,a)},addComponent:function(a){this._components[a.get_id()]=a},beginCreateComponents:function(){this._creatingComponents=b},dispose:function(){var a=this;if(!a._disposing){a._disposing=b;if(a._timerCookie){window.clearTimeout(a._timerCookie);delete a._timerCookie}if(a._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(a._endRequestHandler);delete a._endRequestHandler}if(a._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(a._beginRequestHandler);delete a._beginRequestHandler}if(window.pageUnload)window.pageUnload(a,Sys.EventArgs.Empty);Sys.Observer.raiseEvent(a,I);var d=Array.clone(a._disposableObjects);for(var c=0,h=d.length;c<h;c++){var f=d[c];if(typeof f!==e)f.dispose()}a._disposableObjects.length=0;Sys.UI.DomEvent.removeHandler(window,I,a._unloadHandlerDelegate);if(Sys._ScriptLoader){var g=Sys._ScriptLoader.getInstance();if(g)g.dispose()}Sys._Application.callBaseMethod(a,W)}},disposeElement:function(d,m){var i=this;if(d.nodeType===1){var h,e,c,b,k=d.getElementsByTagName("*"),j=k.length,l=new Array(j);for(c=0;c<j;c++)l[c]=k[c];for(c=j-1;c>=0;c--){var f=l[c];h=f.dispose;if(h&&typeof h===g)f.dispose();else{e=f.control;if(e&&typeof e.dispose===g)e.dispose()}b=f._behaviors;if(b)i._disposeComponents(b);b=f._components;if(b){i._disposeComponents(b);f._components=a}}if(!m){h=d.dispose;if(h&&typeof h===g)d.dispose();else{e=d.control;if(e&&typeof e.dispose===g)e.dispose()}b=d._behaviors;if(b)i._disposeComponents(b);b=d._components;if(b){i._disposeComponents(b);d._components=a}}}},endCreateComponents:function(){var b=this._secondPassComponents;for(var a=0,f=b.length;a<f;a++){var e=b[a],d=e.component;Sys.Component._setReferences(d,e.references);d.endUpdate()}this._secondPassComponents=[];this._creatingComponents=c},findComponent:function(c,b){return b?Sys.IContainer.isInstanceOfType(b)?b.findComponent(c):b[c]||a:Sys.Application._components[c]||a},getComponents:function(){var c=[],a=this._components;for(var b in a)if(a.hasOwnProperty(b))c.push(a[b]);return c},initialize:function(){window.setTimeout(Function.createDelegate(this,this._doInitialize),0)},_doInitialize:function(){var a=this;if(!a.get_isInitialized()&&!a._disposing){Sys._Application.callBaseMethod(a,s);a._raiseInit();if(a.get_stateString){if(Sys.WebForms&&Sys.WebForms.PageRequestManager){a._beginRequestHandler=Function.createDelegate(a,a._onPageRequestManagerBeginRequest);Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(a._beginRequestHandler);a._endRequestHandler=Function.createDelegate(a,a._onPageRequestManagerEndRequest);Sys.WebForms.PageRequestManager.getInstance().add_endRequest(a._endRequestHandler)}var b=a.get_stateString();if(b!==a._currentEntry)a._navigate(b);else a._ensureHistory()}a.raiseLoad()}},notifyScriptLoaded:function(){},registerDisposableObject:function(b){if(!this._disposing){var a=this._disposableObjects,c=a.length;a[c]=b;b.__msdisposeindex=c}},raiseLoad:function(){var a=this,c=new Sys.ApplicationLoadEventArgs(Array.clone(a._createdComponents),!!a._loaded);a._loaded=b;Sys.Observer.raiseEvent(a,p,c);if(window.pageLoad)window.pageLoad(a,c);a._createdComponents=[]},removeComponent:function(b){var a=b.get_id();if(a)delete this._components[a]},unregisterDisposableObject:function(a){var b=this;if(!b._disposing){var g=a.__msdisposeindex;if(typeof g===v){var c=b._disposableObjects;delete c[g];delete a.__msdisposeindex;if(++b._deleteCount>1e3){var d=[];for(var f=0,h=c.length;f<h;f++){a=c[f];if(typeof a!==e){a.__msdisposeindex=d.length;d.push(a)}}b._disposableObjects=d;b._deleteCount=0}}}},_addComponentToSecondPass:function(b,a){this._secondPassComponents.push({component:b,references:a})},_disposeComponents:function(a){if(a)for(var b=a.length-1;b>=0;b--){var c=a[b];if(typeof c.dispose===g)c.dispose()}},_raiseInit:function(){this.beginCreateComponents();Sys.Observer.raiseEvent(this,V);this.endCreateComponents()},_unloadHandler:function(){this.dispose()}};Sys._Application.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;window.$find=Sys.Application.findComponent;Sys.UI.Behavior=function(a){Sys.UI.Behavior.initializeBase(this);this._element=a;var b=a._behaviors=a._behaviors||[];b.push(this)};Sys.UI.Behavior.prototype={get_element:function(){return this._element},get_id:function(){var a=this,b=Sys.UI.Behavior.callBaseMethod(a,"get_id");if(b)return b;if(!a._element||!a._element.id)return d;return a._element.id+o+a.get_name()},get_name:function(){var a=this;if(a._name)return a._name;var b=Object.getTypeName(a),c=b.lastIndexOf(i);if(c!==f)b=b.substr(c+1);if(!a._initialized)a._name=b;return b},set_name:function(a){this._name=a},initialize:function(){var a=this;Sys.UI.Behavior.callBaseMethod(a,s);var b=a.get_name();if(b)a._element[b]=a},dispose:function(){var b=this;Sys.UI.Behavior.callBaseMethod(b,W);var c=b._element;if(c){var e=b.get_name();if(e)c[e]=a;var d=c._behaviors;Array.remove(d,b);if(!d.length)c._behaviors=a;delete b._element}}};Sys.UI.Behavior.registerClass("Sys.UI.Behavior",Sys.Component);Sys.UI.Behavior.getBehaviorByName=function(c,d){var b=c[d];return b&&Sys.UI.Behavior.isInstanceOfType(b)?b:a};Sys.UI.Behavior.getBehaviors=function(a){if(!a._behaviors)return [];return Array.clone(a._behaviors)};Sys.UI.Behavior.getBehaviorsByType=function(d,e){var a=d._behaviors,c=[];if(a)for(var b=0,f=a.length;b<f;b++)if(e.isInstanceOfType(a[b]))c.push(a[b]);return c};Sys.UI.VisibilityMode=function(){};Sys.UI.VisibilityMode.prototype={hide:0,collapse:1};Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");Sys.UI.Control=function(b){var a=this;Sys.UI.Control.initializeBase(a);a._element=b;b.control=a;var c=a.get_role();if(c)b.setAttribute("role",c)};Sys.UI.Control.prototype={_parent:a,_visibilityMode:Sys.UI.VisibilityMode.hide,get_element:function(){return this._element},get_id:function(){return this._id||(this._element?this._element.id:d)},get_parent:function(){var c=this;if(c._parent)return c._parent;if(!c._element)return a;var b=c._element.parentNode;while(b){if(b.control)return b.control;b=b.parentNode}return a},set_parent:function(a){this._parent=a},get_role:function(){return a},get_visibilityMode:function(){return Sys.UI.DomElement.getVisibilityMode(this._element)},set_visibilityMode:function(a){Sys.UI.DomElement.setVisibilityMode(this._element,a)},get_visible:function(){return Sys.UI.DomElement.getVisible(this._element)},set_visible:function(a){Sys.UI.DomElement.setVisible(this._element,a)},addCssClass:function(a){Sys.UI.DomElement.addCssClass(this._element,a)},dispose:function(){var b=this;Sys.UI.Control.callBaseMethod(b,W);if(b._element){b._element.control=a;delete b._element}if(b._parent)delete b._parent},onBubbleEvent:function(){return c},raiseBubbleEvent:function(a,b){this._raiseBubbleEvent(a,b)},_raiseBubbleEvent:function(b,c){var a=this.get_parent();while(a){if(a.onBubbleEvent(b,c))return;a=a.get_parent()}},removeCssClass:function(a){Sys.UI.DomElement.removeCssClass(this._element,a)},toggleCssClass:function(a){Sys.UI.DomElement.toggleCssClass(this._element,a)}};Sys.UI.Control.registerClass("Sys.UI.Control",Sys.Component);Sys.HistoryEventArgs=function(a){Sys.HistoryEventArgs.initializeBase(this);this._state=a};Sys.HistoryEventArgs.prototype={get_state:function(){return this._state}};Sys.HistoryEventArgs.registerClass("Sys.HistoryEventArgs",Sys.EventArgs);Sys.Application._appLoadHandler=a;Sys.Application._beginRequestHandler=a;Sys.Application._clientId=a;Sys.Application._currentEntry=d;Sys.Application._endRequestHandler=a;Sys.Application._history=a;Sys.Application._enableHistory=c;Sys.Application._historyFrame=a;Sys.Application._historyInitialized=c;Sys.Application._historyPointIsNew=c;Sys.Application._ignoreTimer=c;Sys.Application._initialState=a;Sys.Application._state={};Sys.Application._timerCookie=0;Sys.Application._timerHandler=a;Sys.Application._uniqueId=a;Sys._Application.prototype.get_stateString=function(){var b=a;if(ab(L)){var e=window.location.href,c=e.indexOf(l);if(c!==f)b=e.substring(c+1);else b=d;return b}else b=window.location.hash;if(b.length>0&&b.charAt(0)===l)b=b.substring(1);return b};Sys._Application.prototype.get_enableHistory=function(){return this._enableHistory};Sys._Application.prototype.set_enableHistory=function(a){this._enableHistory=a};Sys._Application.prototype.add_navigate=function(a){this._addHandler(X,a)};Sys._Application.prototype.remove_navigate=function(a){this._removeHandler(X,a)};Sys._Application.prototype.addHistoryPoint=function(g,j){var c=this;c._ensureHistory();var d=c._state;for(var f in g){var h=g[f];if(h===a){if(typeof d[f]!==e)delete d[f]}else d[f]=h}var i=c._serializeState(d);c._historyPointIsNew=b;c._setState(i,j);c._raiseNavigate()};Sys._Application.prototype.setServerId=function(a,b){this._clientId=a;this._uniqueId=b};Sys._Application.prototype.setServerState=function(a){this._ensureHistory();this._state.__s=a;this._updateHiddenField(a)};Sys._Application.prototype._deserializeState=function(a){var g={};a=a||d;var b=a.indexOf("&&");if(b!==f&&b+2<a.length){g.__s=a.substr(b+2);a=a.substr(0,b)}var i=a.split("&");for(var h=0,l=i.length;h<l;h++){var e=i[h],c=e.indexOf("=");if(c!==f&&c+1<e.length){var k=e.substr(0,c),j=e.substr(c+1);g[k]=decodeURIComponent(j)}}return g};Sys._Application.prototype._enableHistoryInScriptManager=function(){this._enableHistory=b};Sys._Application.prototype._ensureHistory=function(){var a=this;if(!a._historyInitialized&&a._enableHistory){if(ab(ob)&&Sys.Browser.documentMode<8){a._historyFrame=Sys.get("#__historyFrame");a._ignoreIFrame=b}a._timerHandler=Function.createDelegate(a,a._onIdle);a._timerCookie=window.setTimeout(a._timerHandler,u);try{a._initialState=a._deserializeState(a.get_stateString())}catch(c){}a._historyInitialized=b}};Sys._Application.prototype._navigate=function(e){var a=this;a._ensureHistory();var c=a._deserializeState(e);if(a._uniqueId){var f=a._state.__s||d,b=c.__s||d;if(b!==f){a._updateHiddenField(b);__doPostBack(a._uniqueId,b);a._state=c;return}}a._setState(e);a._state=c;a._raiseNavigate()};Sys._Application.prototype._onIdle=function(){var a=this;delete a._timerCookie;var b=a.get_stateString();if(b!==a._currentEntry){if(!a._ignoreTimer){a._historyPointIsNew=c;a._navigate(b)}}else a._ignoreTimer=c;a._timerCookie=window.setTimeout(a._timerHandler,u)};Sys._Application.prototype._onIFrameLoad=function(b){var a=this;a._ensureHistory();if(!a._ignoreIFrame){a._historyPointIsNew=c;a._navigate(b)}a._ignoreIFrame=c};Sys._Application.prototype._onPageRequestManagerBeginRequest=function(){this._ignoreTimer=b};Sys._Application.prototype._onPageRequestManagerEndRequest=function(j,i){var a=this,g=i.get_dataItems()[a._clientId],f=Sys.get("#__EVENTTARGET");if(f&&f.value===a._uniqueId)f.value=d;if(typeof g!==e){a.setServerState(g);a._historyPointIsNew=b}else a._ignoreTimer=c;var h=a._serializeState(a._state);if(h!==a._currentEntry){a._ignoreTimer=b;a._setState(h);a._raiseNavigate()}};Sys._Application.prototype._raiseNavigate=function(){var b={};for(var a in this._state)if(a!=="__s")b[a]=this._state[a];var c=new Sys.HistoryEventArgs(b);Sys.Observer.raiseEvent(this,X,c);var d;try{if(ab(L)&&window.location.hash&&(!window.frameElement||window.top.location.hash))window.history.go(0)}catch(d){}};Sys._Application.prototype._serializeState=function(e){var a=[];for(var b in e){var f=e[b];if(b==="__s")var c=f;else a[a.length]=b+"="+encodeURIComponent(f)}return a.join("&")+(c?"&&"+c:d)};Sys._Application.prototype._setState=function(h,i){var g=this;if(g._enableHistory){h=h||d;if(h!==g._currentEntry){if(window.theForm){var k=window.theForm.action,m=k.indexOf(l);window.theForm.action=(m!==f?k.substring(0,m):k)+l+h}if(g._historyFrame&&g._historyPointIsNew){g._ignoreIFrame=b;var j=g._historyFrame.contentWindow.document;j.open("javascript:'<html></html>'");j.write("<html><head><title>"+(i||document.title)+'</title><script type="text/javascript">parent.Sys.Application._onIFrameLoad('+Sys.Serialization.JavaScriptSerializer.serialize(h)+");</script></head><body></body></html>");j.close()}g._ignoreTimer=c;g._currentEntry=h;if(g._historyFrame||g._historyPointIsNew){var n=g.get_stateString();if(h!==n){window.location.hash=h;g._currentEntry=g.get_stateString();if(typeof i!==e&&i!==a)document.title=i}}g._historyPointIsNew=c}}};Sys._Application.prototype._updateHiddenField=function(b){if(this._clientId){var a=document.getElementById(this._clientId);if(a)a.value=b}};if(!window.XMLHttpRequest)window.XMLHttpRequest=function(){var c=["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP"];for(var b=0,e=c.length;b<e;b++)try{return new ActiveXObject(c[b])}catch(d){}return a};Type.registerNamespace("Sys.Net");Sys.Net.WebRequestExecutor=function(){this._webRequest=a;this._resultObject=a};Sys.Net.WebRequestExecutor.prototype={get_webRequest:function(){return this._webRequest},_set_webRequest:function(a){this._webRequest=a},get_started:function(){},get_responseAvailable:function(){},get_timedOut:function(){},get_aborted:function(){},get_responseData:function(){},get_statusCode:function(){},get_statusText:function(){},get_xml:function(){},get_object:function(){var a=this;if(!a._resultObject)a._resultObject=Sys.Serialization.JavaScriptSerializer.deserialize(a.get_responseData());return a._resultObject},executeRequest:function(){},abort:function(){},getResponseHeader:function(){},getAllResponseHeaders:function(){}};Sys.Net.WebRequestExecutor.registerClass("Sys.Net.WebRequestExecutor");Sys.Net.XMLDOM=function(f){if(!window.DOMParser){var e=["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var d=0,i=e.length;d<i;d++)try{var b=new ActiveXObject(e[d]);b.async=c;b.loadXML(f);b.setProperty(pb,"XPath");return b}catch(g){}}else try{var h=new window.DOMParser;return h.parseFromString(f,cb)}catch(g){}return a};Sys.Net.XMLHttpExecutor=function(){var f=this;Sys.Net.XMLHttpExecutor.initializeBase(f);var d=f;f._xmlHttpRequest=a;f._webRequest=a;f._responseAvailable=c;f._timedOut=c;f._timer=a;f._aborted=c;f._started=c;f._onReadyStateChange=function(){if(d._xmlHttpRequest.readyState===4){try{if(typeof d._xmlHttpRequest.status===e)return}catch(c){return}d._clearTimer();d._responseAvailable=b;try{d._webRequest.completed(Sys.EventArgs.Empty)}finally{if(d._xmlHttpRequest!=a){d._xmlHttpRequest.onreadystatechange=Function.emptyMethod;d._xmlHttpRequest=a}}}};f._clearTimer=function(){if(d._timer!=a){window.clearTimeout(d._timer);d._timer=a}};f._onTimeout=function(){if(!d._responseAvailable){d._clearTimer();d._timedOut=b;d._xmlHttpRequest.onreadystatechange=Function.emptyMethod;d._xmlHttpRequest.abort();d._webRequest.completed(Sys.EventArgs.Empty);d._xmlHttpRequest=a}}};Sys.Net.XMLHttpExecutor.prototype={get_timedOut:function(){return this._timedOut},get_started:function(){return this._started},get_responseAvailable:function(){return this._responseAvailable},get_aborted:function(){return this._aborted},executeRequest:function(){var c=this;c._webRequest=c.get_webRequest();var f=c._webRequest.get_body(),e=c._webRequest.get_headers();c._xmlHttpRequest=new XMLHttpRequest;c._xmlHttpRequest.onreadystatechange=c._onReadyStateChange;var j=c._webRequest.get_httpVerb();c._xmlHttpRequest.open(j,c._webRequest.getResolvedUrl(),b);c._xmlHttpRequest.setRequestHeader("X-Requested-With","XMLHttpRequest");if(e)for(var i in e){var k=e[i];if(typeof k!==g)c._xmlHttpRequest.setRequestHeader(i,k)}if(j.toLowerCase()==="post"){if(e===a||!e[J])c._xmlHttpRequest.setRequestHeader(J,"application/x-www-form-urlencoded; charset=utf-8");if(!f)f=d}var h=c._webRequest.get_timeout();if(h>0)c._timer=window.setTimeout(Function.createDelegate(c,c._onTimeout),h);c._xmlHttpRequest.send(f);c._started=b},getResponseHeader:function(b){var a;try{a=this._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a=d;return a},getAllResponseHeaders:function(){return this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function(){return this._xmlHttpRequest.responseText},get_statusCode:function(){var a=0;try{a=this._xmlHttpRequest.status}catch(b){}return a},get_statusText:function(){return this._xmlHttpRequest.statusText},get_xml:function(){var c="parsererror",b=this._xmlHttpRequest.responseXML;if(!b||!b.documentElement){b=Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);if(!b||!b.documentElement)return a}else if(navigator.userAgent.indexOf("MSIE")!==f)b.setProperty(pb,"XPath");if(b.documentElement.namespaceURI==="http://www.mozilla.org/newlayout/xml/parsererror.xml"&&b.documentElement.tagName===c)return a;if(b.documentElement.firstChild&&b.documentElement.firstChild.tagName===c)return a;return b},abort:function(){var c=this;if(c._aborted||c._responseAvailable||c._timedOut)return;c._aborted=b;c._clearTimer();if(c._xmlHttpRequest&&!c._responseAvailable){c._xmlHttpRequest.onreadystatechange=Function.emptyMethod;c._xmlHttpRequest.abort();c._xmlHttpRequest=a;c._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExecutor.registerClass(tb,Sys.Net.WebRequestExecutor);Sys.Net._WebRequestManager=function(){this._defaultTimeout=0;this._defaultExecutorType=tb};Sys.Net._WebRequestManager.prototype={add_invokingRequest:function(a){Sys.Observer.addEventHandler(this,Y,a)},remove_invokingRequest:function(a){Sys.Observer.removeEventHandler(this,Y,a)},add_completedRequest:function(a){Sys.Observer.addEventHandler(this,Z,a)},remove_completedRequest:function(a){Sys.Observer.removeEventHandler(this,Z,a)},get_defaultTimeout:function(){return this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=a},get_defaultExecutorType:function(){return this._defaultExecutorType},set_defaultExecutorType:function(a){this._defaultExecutorType=a},executeRequest:function(d){var a=d.get_executor();if(!a){var h,g=c;try{var f=window.eval(this._defaultExecutorType);a=new f}catch(h){g=b}d.set_executor(a)}if(a.get_aborted())return;var e=new Sys.Net.NetworkRequestEventArgs(d);Sys.Observer.raiseEvent(this,Y,e);if(!e.get_cancel())a.executeRequest()}};Sys.Net._WebRequestManager.registerClass("Sys.Net._WebRequestManager");Sys.Net.WebRequestManager=new Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=function(a){Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=a};Sys.Net.NetworkRequestEventArgs.prototype={get_webRequest:function(){return this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass("Sys.Net.NetworkRequestEventArgs",Sys.CancelEventArgs);Sys.Net.WebRequest=function(){var b=this;b._url=d;b._headers={};b._body=a;b._userContext=a;b._httpVerb=a;b._executor=a;b._invokeCalled=c;b._timeout=0};Sys.Net.WebRequest.prototype={add_completed:function(a){Sys.Observer.addEventHandler(this,K,a)},remove_completed:function(a){Sys.Observer.removeEventHandler(this,K,a)},completed:function(d){var a=this;function c(f,e,c){var a=Sys.Observer._getContext(f,b).events.getHandler(c);if(a)a(e,d)}c(Sys.Net.WebRequestManager,a._executor,Z);c(a,a._executor,K);Sys.Observer.clearEventHandlers(a,K)},get_url:function(){return this._url},set_url:function(a){this._url=a},get_headers:function(){return this._headers},get_httpVerb:function(){if(this._httpVerb===a){if(this._body===a)return "GET";return "POST"}return this._httpVerb},set_httpVerb:function(a){this._httpVerb=a},get_body:function(){return this._body},set_body:function(a){this._body=a},get_userContext:function(){return this._userContext},set_userContext:function(a){this._userContext=a},get_executor:function(){return this._executor},set_executor:function(a){this._executor=a;this._executor._set_webRequest(this)},get_timeout:function(){if(this._timeout===0)return Sys.Net.WebRequestManager.get_defaultTimeout();return this._timeout},set_timeout:function(a){this._timeout=a},getResolvedUrl:function(){return Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebRequestManager.executeRequest(this);this._invokeCalled=b}};Sys.Net.WebRequest._resolveUrl=function(b,a){if(b&&b.indexOf("://")!==f)return b;if(!a||a.length===0){var d=document.getElementsByTagName("base")[0];if(d&&d.href&&d.href.length>0)a=d.href;else a=document.URL}var c=a.indexOf("?");if(c!==f)a=a.substr(0,c);c=a.indexOf(l);if(c!==f)a=a.substr(0,c);a=a.substr(0,a.lastIndexOf(k)+1);if(!b||b.length===0)return a;if(b.charAt(0)===k){var e=a.indexOf("://"),h=a.indexOf(k,e+3);return a.substr(0,h)+b}else{var g=a.lastIndexOf(k);return a.substr(0,g+1)+b}};Sys.Net.WebRequest._createQueryString=function(c,b,f){b=b||encodeURIComponent;var i=0,e,h,d,a=new Sys.StringBuilder;if(c)for(d in c){e=c[d];if(typeof e===g)continue;h=Sys.Serialization.JavaScriptSerializer.serialize(e);if(i++)a.append("&");a.append(d);a.append("=");a.append(b(h))}if(f){if(i)a.append("&");a.append(f)}return a.toString()};Sys.Net.WebRequest._createUrl=function(b,c,d){if(!c&&!d)return b;var e=Sys.Net.WebRequest._createQueryString(c,a,d);return e.length?b+(b&&b.indexOf("?")>=0?"&":"?")+e:b};Sys.Net.WebRequest.registerClass("Sys.Net.WebRequest");Type.registerNamespace("Sys.Net");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext===e?a:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||a},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||a},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||a},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||qb},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(g,h,j,i,f,d,c){var b=this;f=f||b.get_defaultSucceededCallback();d=d||b.get_defaultFailedCallback();if(c===a||typeof c===e)c=b.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(g,h,j,i,f,d,c,b.get_timeout(),b.get_enableJsonp(),b.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(w,g,s,r,q,h,n,l,B,v){var p=B!==c?Sys.Net.WebServiceProxy._xdomain.exec(w):a,i,t=p&&p.length===3&&(p[1]!==location.protocol||p[2]!==location.host);s=t||s;if(t){v=v||qb;i="_jsonp"+Sys._jsonp++}if(!r)r={};var x=r;if(!s||!x)x={};var o,m=a,u=a,z=Sys.Net.WebRequest._createUrl(g?w+k+encodeURIComponent(g):w,x,t?v+"=Sys."+i:a);if(t){function A(){if(m===a)return;m=a;o=new Sys.Net.WebServiceError(b,String.format(Sys.Res.webServiceTimedOut,g));delete Sys[i];if(h)h(o,n,g)}function y(b,d){if(m!==a){window.clearTimeout(m);m=a}delete Sys[i];i=a;if(typeof d!==e&&d!==200){if(h){o=new Sys.Net.WebServiceError(c,b.Message||String.format(Sys.Res.webServiceFailedNoMsg,g),b.StackTrace||a,b.ExceptionType||a,b);o._statusCode=d;h(o,n,g)}}else if(q)q(b,n,g)}Sys[i]=y;l=l||Sys.Net.WebRequestManager.get_defaultTimeout();if(l>0)m=window.setTimeout(A,l);Sys.loader._loadSrc(z,function(){if(i)y({Message:String.format(Sys.Res.webServiceFailedNoMsg,g)},f)},b);return a}var j=new Sys.Net.WebRequest;j.set_url(z);j.get_headers()[J]="application/json; charset=utf-8";if(!s){u=Sys.Serialization.JavaScriptSerializer.serialize(r);if(u==="{}")u=d}j.set_body(u);j.add_completed(C);if(l&&l>0)j.set_timeout(l);j.invoke();function C(i){var f="application/json";if(i.get_responseAvailable()){var r,k=i.get_statusCode(),b=a;try{var j=i.getResponseHeader(J);b=j.startsWith(f)?i.get_object():j.startsWith(cb)?i.get_xml():i.get_responseData()}catch(r){}var o=i.getResponseHeader("jsonerror"),l=o==="true";if(l){if(b)b=new Sys.Net.WebServiceError(c,b.Message,b.StackTrace,b.ExceptionType,b)}else if(j.startsWith(f))b=!b||typeof b.d===e?b:b.d;if(k<200||k>=300||l){if(h){if(!b||!l)b=new Sys.Net.WebServiceError(c,String.format(Sys.Res.webServiceFailedNoMsg,g));b._statusCode=k;h(b,n,g)}}else if(q)q(b,n,g)}else{var m=i.get_timedOut(),p=String.format(m?Sys.Res.webServiceTimedOut:Sys.Res.webServiceFailedNoMsg,g);if(h)h(new Sys.Net.WebServiceError(m,p,d,d),n,g)}}return j};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;Sys.Net.WebServiceError=function(e,g,d,b,c){var a=this;a._timedOut=e;a._message=g;a._stackTrace=d;a._exceptionType=b;a._errorObject=c;a._statusCode=f};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||d},get_exceptionType:function(){return this._exceptionType||d},get_errorObject:function(){return this._errorObject||a}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");Type.registerNamespace("Sys.Services");var eb=Sys.Services,sb="Service",Db="Role",Cb="Authentication",yb="Profile";function wb(a){this._path=a}eb[Cb+sb]={set_path:wb,_setAuthenticated:function(a){this._auth=a}};eb["_"+Cb+sb]={};eb[yb+sb]={set_path:wb};eb["_"+yb+sb]={};eb.ProfileGroup=function(a){this._propertygroup=a};eb[Db+sb]={set_path:wb};eb["_"+Db+sb]={}}if(window.Sys&&Sys.loader)Sys.loader.registerScript(t,a,u);else u()})();var $get,$create,$addHandler,$addHandlers,$clearHandlers;
Type.registerNamespace('Sys');Sys.Res={'argumentInteger':'Value must be an integer.','argumentType':'Object cannot be converted to the required type.','argumentNull':'Value cannot be null.','scriptAlreadyLoaded':'The script \'{0}\' has been referenced multiple times. If referencing Microsoft AJAX scripts explicitly, set the MicrosoftAjaxMode property of the ScriptManager to Explicit.','scriptDependencyNotFound':'The script \'{0}\' failed to load because it is dependent on script \'{1}\'.','formatBadFormatSpecifier':'Format specifier was invalid.','requiredScriptReferenceNotIncluded':'\'{0}\' requires that you have included a script reference to \'{1}\'.','webServiceFailedNoMsg':'The server method \'{0}\' failed.','argumentDomElement':'Value must be a DOM element.','actualValue':'Actual value was {0}.','enumInvalidValue':'\'{0}\' is not a valid value for enum {1}.','scriptLoadFailed':'The script \'{0}\' could not be loaded.','parameterCount':'Parameter count mismatch.','cannotDeserializeEmptyString':'Cannot deserialize empty string.','formatInvalidString':'Input string was not in a correct format.','argument':'Value does not fall within the expected range.','cannotDeserializeInvalidJson':'Cannot deserialize. The data does not correspond to valid JSON.','cannotSerializeNonFiniteNumbers':'Cannot serialize non finite numbers.','argumentUndefined':'Value cannot be undefined.','webServiceInvalidReturnType':'The server method \'{0}\' returned an invalid type. Expected type: {1}','servicePathNotSet':'The path to the web service has not been set.','argumentTypeWithTypes':'Object of type \'{0}\' cannot be converted to type \'{1}\'.','paramName':'Parameter name: {0}','nullReferenceInPath':'Null reference while evaluating data path: \'{0}\'.','format':'One of the identified items was in an invalid format.','assertFailedCaller':'Assertion Failed: {0}\r\nat {1}','argumentOutOfRange':'Specified argument was out of the range of valid values.','webServiceTimedOut':'The server method \'{0}\' timed out.','notImplemented':'The method or operation is not implemented.','assertFailed':'Assertion Failed: {0}','invalidOperation':'Operation is not valid due to the current state of the object.','breakIntoDebugger':'{0}\r\n\r\nBreak into debugger?'};

(function(){var eb=null;function execute(){var t="isFetching",h="itemTemplate",E="itemPlaceholder",e="fetchSucceeded",d="fetchFailed",c="itemRendering",b="itemRendered",D="rendered",C="rendering",g="initialize",j="propertyChanged",B="optionsChanged",f="get_",q="command",p="selectedIndex",o="selectedindex",bb="function",ab="selected",a="readonly",Z="checked",Y="disabled",X="sys-template",Bb="select",Ab="className",zb="style.cssText",yb="sys:attach",xb="name",wb="type",vb="input",ub="button",tb="nodeValue",sb="value",rb="textarea",qb="InternetExplorer",k="class:",W=-1,pb="string",ob="null",nb=false,mb=", ",lb="  ",kb=");\n",V="innerHTML",jb=";\n",ib="",hb="));\n",gb="document.createTextNode(",fb=true,U="undefined";Type._registerScript("MicrosoftAjaxTemplates.js",["MicrosoftAjaxComponentModel.js","MicrosoftAjaxSerialization.js"]);var merge=Sys._merge,foreach=Sys._foreach,forIn=Sys._forIn,isBrowser=Sys._isBrowser;function serialize(a){return Sys.Serialization.JavaScriptSerializer.serialize(a)}Type.registerNamespace("Sys.Net");Sys.Net.WebRequestEventArgs=function(c,d,b){var a=this;a._executor=c;a._error=d||eb;a._result=typeof b===U?eb:b;Sys.Net.WebRequestEventArgs.initializeBase(a)};Sys.Net.WebRequestEventArgs.prototype={get_error:function(){return this._error||eb},get_executor:function(){return this._executor},get_result:function(){return this._result}};Sys.Net.WebRequestEventArgs.registerClass("Sys.Net.WebRequestEventArgs",Sys.EventArgs);Type.registerNamespace("Sys.Data");Sys.Data.DataEventArgs=function(a){this._data=a;Sys.Data.DataEventArgs.initializeBase(this)};Sys.Data.DataEventArgs.prototype={get_data:function(){var a=this._data;return typeof a===U?eb:a},set_data:function(a){this._data=a},get_itemPlaceholder:function(){return this._placeholder||eb},set_itemPlaceholder:function(a){this._placeholder=a},get_itemTemplate:function(){return this._itemTemplate||eb},set_itemTemplate:function(a){this._itemTemplate=a}};Sys.Data.DataEventArgs.registerClass("Sys.Data.DataEventArgs",Sys.CancelEventArgs);if(!Sys.Data.IDataProvider){Sys.Data.IDataProvider=function(){};Sys.Data.IDataProvider.registerInterface("Sys.Data.IDataProvider")}if(!Sys.Data.MergeOption){Sys.Data.MergeOption=function(){};Sys.Data.MergeOption.prototype={appendOnly:0,overwriteChanges:1};Sys.Data.MergeOption.registerEnum("Sys.Data.MergeOption")}Type.registerNamespace("Sys.UI");Sys.Application.registerMarkupExtension=function(b,c,a){if(!this._extensions)this._extensions={};a=typeof a===U||a===fb;this._extensions[b]={expression:a,extension:c}};Sys.Application._getMarkupExtension=function(b){var a=this._extensions?this._extensions[b]:eb;if(!a)throw Error.invalidOperation(String.format(Sys.UI.TemplatesRes.cannotFindMarkupExtension,b));return a};Sys.UI.Template=function(a){this._element=a;this._instantiateIn=eb;this._instanceId=0};Sys.UI.Template.prototype={get_element:function(){return this._element},dispose:function(){this._element=eb;this._instantiateIn=eb},_appendTextNode:function(b,a,c){b.push(a+gb+serialize(c)+hb)},_appendAttributeSetter:function(b,o,f,a,i,l){var e="  $component.",d="  $component = $element;\n  ",g="  $component = $element;\n  $element.",k=f.ns,c=f.name,n=!k&&Sys.UI.Template._isRestricted(c);if(n)a="Sys.UI.Template._checkAttribute('"+c+"', "+a+")";switch(f.type){case 1:if(i)if(f.textNode)b.push(Sys.UI.Template._createTextNode.replace("%1",a).replace("%2",ib));else b.push(g+c+" = "+a+jb);else if(f.textNode)b.push(Sys.UI.Template._createTextNode.replace("%1","''").replace("%2",a+jb));else b.push(d+a+jb);if(f.textNode||c===V)return fb;break;case 2:if(i){c=serialize(c);b.push("  $component = $element;\n    ("+a+") ? Sys.UI.DomElement.addCssClass($element, "+c+") : Sys.UI.DomElement.removeCssClass($element, "+c+kb)}else b.push(d+a+jb);break;case 3:var j=o[k];if(j.isClass){b.push("  $component = __componentIndex['"+k+"'];\n");if(i){var h=f.map;if(h.type===1)b.push(e+h.setterName+"("+a+kb);else if(h.type===2)b.push("  __f = "+a+jb,e+h.setterName+'(typeof(__f) === "function" ? __f : new Function("sender", "args", __f));\n');else b.push(e+h.name+" = "+a+jb)}else b.push(lb+a+jb)}else{var m=serialize(f.name)+": "+a;if(!j.props)j.props=m;else j.props+=mb+m}break;case 4:this["_"+c]=a;break;default:if(i)if(/^on/i.test(c))b.push(g+c+" = new Function("+(document.attachEvent?ib:"'event', ")+a+kb);else if(l)b.push("  $component = $element;\n  if ("+a+") {\n    __e = document.createAttribute('"+c+"');\n    __e.nodeValue = \""+l+'";\n    $element.setAttributeNode(__e);\n  }\n');else b.push("  $component = $element;\n  __e = document.createAttribute('"+c+"');\n  __e.nodeValue = "+a+";\n  $element.setAttributeNode(__e);\n");else b.push(d+a+jb)}return nb},_processAttribute:function(e,d,b,a,c){a=this._getAttributeExpression(b,a);if(a)return this._appendAttributeSetter(e,d,b,a.code,a.isExpression,c);return nb},_getAttributeExpression:function(b,a,f){var j=typeof a;if(j===U)return eb;if(a===eb)return {isExpression:fb,code:ob};if(!b.isNative&&j===pb)if(a.startsWith("{{")&&a.endsWith("}}"))return {isExpression:fb,code:a.slice(2,-2).trim()};else if(a.startsWith("{")&&a.endsWith("}")){var e=Sys.Application._getExtensionCode(a.slice(1,W)),g=e.properties,c=ib;for(var h in g){var d=this._getAttributeExpression(b,g[h]);if(d&&d.isExpression){var i=serialize(h)+":"+d.code;if(c)c+=","+i;else c=i}}return {isExpression:e.instance.expression,code:"Sys.Application._getMarkupExtension("+serialize(e.name)+").extension($component, "+serialize((b.type===2?k:ib)+b.name)+", $context, {"+c+"})"}}if(b.isId){f=fb;a="$id("+serialize(a)+")"}return {isExpression:fb,code:f?a:serialize(a)}},_processBooleanAttribute:function(d,g,f,b){var a,e,c=d.getAttributeNode("sys:"+b);if(!c){e=fb;c=d.getAttributeNode(b);if(c&&(c.specified||c.nodeValue===fb))a=fb;else if(d.getAttribute(b)===b)a=fb;else return}else{a=c.nodeValue;if(a==="true")a=fb;else if(a==="false")return}this._processAttribute(g,f,{name:b,isNative:e},a,b)},_processBooleanAttributes:function(d,e,c,b){var h,i,g;for(var a=0,f=b.length;a<f;a++)this._processBooleanAttribute(d,e,c,b[a])},_processCodeBlock:function(b,c,d){var a=this._getExplicitAttribute(eb,eb,c,b);if(a){a=this._getAttributeExpression({name:b},a,fb).code;d.push(b==="sys:if"?"  if ("+a+") {\n":lb+a+"\n")}return !!a},_getExplicitAttribute:function(i,f,c,e,d,g,h){var j,b,a;if(e==="style"&&c.style)a=c.style.cssText;else try{b=c.getAttributeNode(e);if(b&&b.specified)a=b.nodeValue}catch(j){}if(a&&d)this._processAttribute(i,f,merge({name:d,type:1,isNative:g},h),a);return a},_buildTemplateCode:function(B,E,a,H){var e="id",b=this,z,f,V,p,g,s,D,M=Sys.UI.Template._expressionRegExp,h=lb+(H?"__p[__d-1].appendChild(":"__topElements.push("),bb=isBrowser(qb);a.push("  __d++;\n");for(z=0,V=E.childNodes.length;z<V;z++){var c=E.childNodes[z],i=c.nodeValue;if(c.nodeType===8)a.push(h+"document.createComment("+serialize(i)+hb);else if(c.nodeType===3){var r=i.trim();if(r.startsWith("{")&&r.endsWith("}")&&(!r.startsWith("{{")||!r.endsWith("}}"))){var C,A;if(E.tagName.toLowerCase()===rb){C=sb;A="$component=$element;\n"}else{C=tb;A=h+'$element=$component=document.createTextNode(""));\n'}var J=b._getAttributeExpression({name:C},r);if(J.isExpression)a.push(h+gb+J.code+hb);else a.push(A+lb+J.code+jb)}else{var n=M.exec(i),w=0;while(n){var O=i.substring(w,n.index);if(O)b._appendTextNode(a,h,O);a.push(h+gb+n[1]+hb);w=n.index+n[0].length;n=M.exec(i)}if(w<i.length)b._appendTextNode(a,h,i.substr(w))}}else{var P=c.attributes,m=eb,db=eb,d={},t=c.tagName.toLowerCase(),q,cb=H+1;if(t==="script")continue;var W=b._processCodeBlock("sys:if",c,a);b._processCodeBlock("sys:codebefore",c,a);D=t===ub;s=D||t===vb;if(s){var Z=b._getAttributeExpression({name:wb,isNative:fb},c.getAttribute(wb))||b._getAttributeExpression({name:wb},c.getAttribute("sys:type")),X=b._getAttributeExpression({name:xb,isNative:fb},c.getAttribute(xb))||b._getAttributeExpression({name:xb},c.getAttribute("sys:name"));a.push("  $element=__p[__d]=Sys.UI.Template._createInput("+Z.code+mb+X.code+mb+D+kb);q=Sys.UI.Template._inputBooleanAttributes;b._processBooleanAttributes(c,a,d,q[" list"])}else a.push("  $element=__p[__d]=document.createElement('"+c.nodeName+"');\n");if(!H)a.push(" $element.__mstcindex = $context._tcindex;\n");b._getExplicitAttribute(a,d,c,"sys:id",e,nb,{isId:fb})||b._getExplicitAttribute(a,d,c,e,e,fb,{isId:fb});m=b._getExplicitAttribute(a,d,c,yb);if(m){m=m.split(",");a.push("  __componentIndex = {}\n");for(f=0,p=m.length;f<p;f++){g=m[f].trim();if(d[g])continue;var j=Sys.Application._findType(c,g,bb),v,L,Q,F=typeof j!==pb;if(F){v=j.inheritsFrom(Sys.Component);L=v&&(j.inheritsFrom(Sys.UI.Behavior)||j.inheritsFrom(Sys.UI.Control));Q=j.implementsInterface(Sys.UI.ITemplateContextConsumer)}d[g]={type:j,isClass:F,isComponent:v};if(F){a.push("  __componentIndex['"+g+"'] = $component = new "+j.getName());if(L)a.push("($element);\n");else a.push("();\n  Sys.Application._registerComponent($element, $component);\n");if(v)a.push("  $component.beginUpdate();\n");if(Q)a.push("  $component.set_templateContext($context);\n");var T=g+":id",S=Sys.Application._splitAttribute(T,nb,d);S.isId=fb;b._getExplicitAttribute(a,d,c,T,e,nb,S)}}}b._getExplicitAttribute(a,d,c,"style",zb,fb);b._getExplicitAttribute(a,d,c,"class",Ab,fb);if(!s){q=Sys.UI.Template._booleanAttributes[t]||Sys.UI.Template._commonBooleanAttributes;b._processBooleanAttributes(c,a,d,q[" list"])}var R=t===Bb,k=eb,ab=Sys.Application._splitAttribute,N=nb,K={id:1,"class":1,style:1,"sys:attach":1,"sys:id":1,"sys:disabled":1,"sys:checked":1,"sys:readonly":1,"sys:ismap":1,"sys:multiple":1,"sys:selected":1,"sys:if":1,"sys:codebefore":1,"sys:codeafter":1};for(f=0,p=P.length;f<p;f++){var l=P[f],o=l.nodeName,x=o.toLowerCase();if(!l.specified&&(!s||x!==sb))continue;if(K[x]||q[x])continue;if(s&&Sys.UI.Template._inputRequiredAttributes[x])continue;var u=ab(o,R,d),y=u.ns,U=l.nodeValue,G=u.type;o=u.name;if(G===1){if(R&&(!y||y==="sys")){k=k||[];k.push([u,U]);continue}K[o.toLowerCase()]=fb}else if(G===0)K[o.toLowerCase()]=fb;else if(G===3&&o===e&&d[y]&&d[y].isClass)continue;if(b._processAttribute(a,d,u,U))N=fb}if(b._command){a.push(" Sys.UI.DomElement.setCommand($element, "+b._command+mb+(b._commandargument||ob)+", Sys.UI.DomElement._ensureGet("+(b._commandtarget||ob)+", $context, 'sys:commandtarget'));\n");b._command=eb}b._commandargument=eb;b._commandtarget=eb;a.push(h+"$element);\n");for(g in d){var I=d[g];if(I.isClass)a.push("  $context._registerComponent(__componentIndex['"+g+"']);\n");else{a.push("  $context._registerIf(");a.push(I.type);a.push("($element, ");a.push("{"+(I.props||ib)+"}, $context));\n")}}if(Sys.UI.Template._isTemplate(c)){var Y=new Sys.UI.Template(c);Y.recompile();B.push(c._msajaxtemplate);a.push("  $element._msajaxtemplate = this.get_element()._msajaxtemplate[1]["+(B.length-1)+"];\n")}else if(!N){b._buildTemplateCode(B,c,a,cb);a.push("  $element=__p[__d];\n")}if(k)for(f=0,p=k.length;f<p;f++){l=k[f];b._processAttribute(a,d,l[0],l[1])}b._processCodeBlock("sys:codeafter",c,a);if(W)a.push("  }\n")}}a.push("  --__d;\n")},_ensureCompiled:function(){var a=this;if(!a._instantiateIn){var b=a.get_element();if(b._msajaxtemplate)a._instantiateIn=b._msajaxtemplate[0];else a.recompile()}},recompile:function(){var c=this.get_element(),a=[" $index = (typeof($index) === 'number' ? $index : __instanceId);\n var $component, __componentIndex, __e, __f, __topElements = [], __d = 0, __p = [__containerElement], $element = __containerElement, $context = new Sys.UI.TemplateContext(), $id = function(prefix) { return $context.getInstanceId(prefix); };\n $context.data = (typeof(__data) === 'undefined' ? null : __data);\n $context.components = [];\n $context.nodes = __topElements;\n $context.dataItem = $dataItem;\n $context.index = $index;\n $context.parentContext = __parentContext;\n $context.containerElement = __containerElement;\n $context.insertBeforeNode = __referenceNode;\n $context.template = this;\n with($dataItem || {}) {\n"],b=[];this._buildTemplateCode(b,c,a,0);a.push("}\n $context._onInstantiated(__referenceNode);\n return $context;");a=a.join(ib);c._msajaxtemplate=[this._instantiateIn=new Function("__containerElement","__data","$dataItem","$index","__referenceNode","__parentContext","__instanceId",a),b]},instantiateIn:function(b,f,e,d,a,c){b=Sys.UI.DomElement._ensureGet(b,eb,"containerElement");a=Sys.UI.DomElement._ensureGet(a,eb,"nodeToInsertTemplateBefore");this._ensureCompiled();return this._instantiateIn(b,f,e,d,a,c,this._instanceId++)}};Sys.UI.Template._isRestricted=function(b){var a=Sys.UI.Template._getRestrictedIndex();return a.attributes[b.toLowerCase()]};Sys.UI.Template._checkAttribute=function(e,a){if(!a)return a;var c=a,b=Sys.UI.Template._getRestrictedIndex();if(b.attributes[e.toLowerCase()]){if(typeof a!==pb)a=a.toString();var d=Sys.UI.Template._protocolRegExp.exec(a.toLowerCase());if(d)if(!b.protocols[d[1]])c=ib}return c};Sys.UI.Template._getIdFunction=function(a){return function(b){return b+a}};Sys.UI.Template._createInput=function(e,d,b){var h,a,g=arguments.callee,c=g._dynamic;if(c===fb){a=document.createElement(b?ub:vb);if(e)a.setAttribute(wb,e);if(d)a.setAttribute(xb,d)}else{var f=b?"<button ":"<input ";if(e)f+="type='"+e+"' ";if(d)f+="name='"+d+"' ";f+=b?"></button>":"/>";try{a=document.createElement(f)}catch(h){c=fb}if(typeof c===U)dynamc=a.tagName.toLowerCase()!==(b?ub:vb);g._dynamic=c;if(c)a=g(e,d,b)}return a};Sys.UI.Template._isTemplate=function(b){var a=b.className;return a&&(a===X||/(^| )sys\-template($| )/.test(a))};Sys.UI.Template._inputRequiredAttributes={type:1,name:1};Sys.UI.Template._commonBooleanAttributes={disabled:fb," list":[Y]};Sys.UI.Template._inputBooleanAttributes={disabled:fb,checked:fb,readonly:fb," list":[Y,Z,a]};Sys.UI.Template._booleanAttributes={input:Sys.UI.Template._inputBooleanAttributes,select:{disabled:fb,multiple:fb," list":[Y,"multiple"]},option:{disabled:fb,selected:fb," list":[Y,ab]},img:{disabled:fb,ismap:fb," list":[Y,"ismap"]},textarea:{disabled:fb,readonly:fb," list":[Y,a]}};Sys.UI.Template._expressionRegExp=/\{\{\s*([\w\W]*?)\s*\}\}/g;Sys.UI.Template.allowedProtocols=["http","https"];Sys.UI.Template.restrictedAttributes=["src","href","codebase","cite","background","action","longdesc","profile","usemap","classid","data"];Sys.UI.Template._getRestrictedIndex=function(){var b,e,g,f,d=Sys.UI.Template.allowedProtocols||[],c=Sys.UI.Template.restrictedAttributes||[],a=Sys.UI.Template._restrictedIndex;if(!a||a.allowedProtocols!==d||a.restrictedAttributes!==c){a={allowedProtocols:d,restrictedAttributes:c};a.protocols=g={};for(b=0,e=d.length;b<e;b++)g[d[b]]=fb;a.attributes=f={};for(b=0,e=c.length;b<e;b++)f[c[b]]=fb;Sys.UI.Template._restrictedIndex=a}return a};Sys.UI.Template.registerClass("Sys.UI.Template",eb,Sys.IDisposable);Sys.UI.Template._protocolRegExp=/^\s*([a-zA-Z0-9\+\-\.]+)\:/;Sys.UI.Template._createTextNode="  $element.appendChild($component=$element=document.createTextNode(%1));\n  %2$component=$element=$element.parentNode;\n";Sys.UI.Template.findContext=function(a){var b;for(b=Sys.UI.TemplateContext._contexts[a.__mstcindex];!b&&a;a=a.parentNode);return b||Sys.Application.get_templateContext()};Sys._Application.prototype.get_templateContext=function(){return this._context||eb};Sys._Application.prototype._baseDispose=Sys._Application.prototype.dispose;Sys._Application.prototype.dispose=function(){var a=this._context;if(a)a.dispose();this._context=eb;this._baseDispose()};Sys._Application.prototype.removeComponent=function(c){var d=c.get_id();if(d)delete this._components[d];var a=this._context;if(a){var b=c.__tc;if(b&&b[0]===a._tcindex)delete a.components[b[1]]}};Sys.UI.TemplateContext=function(){var a=this,b=a._tcindex=Sys.UI.TemplateContext._tcindex++;Sys.UI.TemplateContext._contexts[b]=a;a._completed=[];Sys.UI.TemplateContext.initializeBase(a)};Sys.UI.TemplateContext.prototype={data:eb,dataItem:eb,index:0,parentContext:eb,containerElement:eb,insertBeforeNode:eb,components:eb,nodes:eb,isDisposed:nb,_lastIndex:W,dispose:function(){var a=this;if(!a._global){var b=a.nodes;if(b)for(var c=0,e=b.length;c<e;c++){var d=b[c];if(d.nodeType===1)Sys.Application.disposeElement(d,nb)}}delete Sys.UI.TemplateContext._contexts[a._tcindex];a.nodes=a.dataItem=a.components=a.getInstanceId=a.containerElement=a.insertBeforeNode=a.parentContext=a.data=eb;a.isDisposed=fb},query:function(a){return this._find(a)},"get":function(a){return this._find(a,fb)},_find:function(a,b){return /^[#\$](\w|[$:\.])+$/.test(a)?this._findById(a.substr(0,1),a.substr(1)):Sys._find(a,this.nodes,b)},_findById:function(e,f){var b=eb;for(var a=this;!b&&a;a=a.parentContext){var d=a.nodes,c=e+a.getInstanceId(f);if(a._global)b=Sys.get(c)||Sys.get(c,d);else b=Sys.get(c,d)}return b||Sys.get(e+f)},getInstanceId:function(b){var a;if(this._global)a=ib;else{a=this.index,ctx=this.parentContext;while(ctx&&!ctx._global){a=ctx.index+"_"+a;ctx=ctx.parentContext}}return b+a},initializeComponents:function(){var c=this.components;if(c){var b=c.length-1,d=this._lastIndex;this._lastIndex=b;for(;b>d;b--){var a=c[b];if(a&&Sys.Component.isInstanceOfType(a))if(a.get_isUpdating())a.endUpdate();else if(!a.get_isInitialized())a.initialize()}}},_onInstantiated:function(b,d){var a=this;foreach(a._completed,function(a){a()});a._completed=[];if(!d){var c=a.containerElement;foreach(a.nodes,function(a){c.insertBefore(a,b||eb)})}},_registerComponent:function(a){var b=this.components;a.__tc=[this._tcindex,b.length];b.push(a);Sys.Component._register(a,eb,fb)},_registerIf:function(a){if(a instanceof Array)for(var b=0,c=a.length;b<c;b++)this._registerComponent(a[b]);else if(a&&typeof a==="object")this._registerComponent(a)}};Sys.UI.TemplateContext.registerClass("Sys.UI.TemplateContext",eb,Sys.IDisposable);Sys.UI.TemplateContext._tcindex=0;Sys.UI.TemplateContext._contexts=0;Sys.UI.ITemplateContextConsumer=function(){};Sys.UI.ITemplateContextConsumer.registerInterface("Sys.UI.ITemplateContextConsumer");Sys.Application._caseIndex={};Sys.Application._prototypeIndex={};Sys.Application._context=new Sys.UI.TemplateContext;Sys.Application._context._global=fb;Sys.Application.activateElement=function(c,b,a){a=a!==nb;return Sys.Application.activateElements([c],b||eb,a)};Sys.Application.activateElements=function(c,e,b){var a=this._context,f=isBrowser(qb);a.dataItem=typeof e===U?eb:e;a.components=a.components||[];a.nodes=c;b=b!==nb;for(var d=0,h=c.length;d<h;d++){var g=c[d];Sys.Application._activateElement(g,a,f,b)}a.initializeComponents();a._onInstantiated(eb,fb);return a};Sys.Application._findType=function(b,g,f){var h,c,a,e="xmlns:"+g;function d(){var c;try{c=f?b[e]:b.getAttribute(e)}catch(d){}if(c&&c.substr(0,11)==="javascript:"){c=c.substr(11);a=eb;a=Type.parse(c);if(a&&a.__class)return;else a=c}}for(;b;b=b.parentNode){d();if(c)throw Error.invalidOperation(c);if(a)return a}b=document.body;d();if(c)throw Error.invalidOperation(c);return a};Sys.Application._activateElement=function(p,j,n,r){if(r)r=!Sys.UI.Template._isTemplate(p);var A=W,C=r?n?p.all:p.getElementsByTagName("*"):[],O=/(^| )sys\-template($| )/;expandosAreLast=n&&Sys.Browser.version<=7,element=p;do{if(element.nodeType!==1)continue;var S,f,L,t=eb,c=eb,i=eb,l=eb,D=nb,s=eb,x=element.attributes,y=x.length-1,m=eb;if(y>=0&&(!expandosAreLast||x[y].expando)&&!element.__msajaxactivated){for(f=y;f>=0;f--){var h=x[f];if(expandosAreLast&&!h.expando)break;if(!h.specified||h.nodeName.indexOf(":")<0)continue;D=fb;s=h.nodeName;var a=h.nodeValue;switch(s){case yb:t=a.split(",");break;case "sys:command":var P=Sys.Application._getPropertyValue(eb,eb,eb,a,j,eb,fb),N=Sys.Application._getCommandAttr(element,"sys:commandargument",n),M=Sys.Application._getCommandAttr(element,"sys:commandtarget",n);Sys.UI.DomElement.setCommand(element,P||ib,N||eb,M||eb);break;default:m=m||[];m.push(h)}}if(D){element.__msajaxactivated=fb;if(t){i={};for(var B=0,R=t.length;B<R;B++){var o=t[B].trim();if(i[o])continue;var g=Sys.Application._findType(element,o,n),J=eb,w=0,v=0,E=0,Q=typeof g!==pb,k=eb;if(Q){w=g.inheritsFrom(Sys.Component);v=w&&(g.inheritsFrom(Sys.UI.Behavior)||g.inheritsFrom(Sys.UI.Control));E=g.implementsInterface(Sys.UI.ITemplateContextConsumer);k=v?new g(element):new g;if(w)k.beginUpdate();if(!v)Sys.Application._registerComponent(element,k);if(E)k.set_templateContext(j);c={instance:k,isClass:fb,typeName:o,type:g}}else{J={};k=Type.parse(g);c={instance:k,props:J,typeName:o,type:g};if(!l)l=[c];else l[l.length]=c}i[o]=c}}if(m)for(f=m.length-1;f>=0;f--){h=m[f];s=h.nodeName;a=h.nodeValue;var G=/^select$/i.test(element.tagName),e=Sys.Application._splitAttribute(s,G,i),z=e.type,T=e.ns,b=e.name;if(z<0)continue;if(z===3){c=e.index;var u=c.instance;a=Sys.Application._getPropertyValue(e,u,b,a,j);if(typeof a===U)continue;if(c.isClass)switch(e.map.type){case 1:e.map.setter.call(u,a);break;case 2:e.map.setter.call(u,typeof a===bb?a:new Function("sender","args",a));break;default:u[b]=a}else c.props[b]=a}else if(z<=2){if(e.textNode||b===V){Sys.Application._clearContent(element);if(e.textNode)element.appendChild(element=document.createTextNode(ib))}a=Sys.Application._getPropertyValue(e,element,b,a,j);if(typeof a===U)continue;switch(e.type){case 0:if(/^on/i.test(b)){element[b]=document.attachEvent?new Function(a):new Function("event",a);break}if(G&&b===sb){element.value=a;break}var F=Sys.UI.Template._booleanAttributes,H=element.tagName.toLowerCase(),I=b===Y||F[H]&&F[H][b];if(I){if(b===ab)element.selected=a;if(!a){element.removeAttribute(b);break}else if(b===Z){element.setAttribute(b,b);break}}var K=document.createAttribute(b);K.nodeValue=I?b:a;element.setAttributeNode(K);break;case 1:Sys.Observer.setValue(element,b,a);break;case 2:a?Sys.UI.DomElement.addCssClass(element,b):Sys.UI.DomElement.removeCssClass(element,b)}}}if(l)for(f=0,L=l.length;f<L;f++){c=l[f];j._registerIf(c.instance(element,c.props,j))}if(i)for(c in i)if(i.hasOwnProperty(c)){c=i[c];if(c&&c.isClass)j._registerComponent(c.instance)}}}if(r){var q=element.className;if(q&&q.length>=12&&(q===X||O.test(q))){var d=element.nextSibling;while(d&&d.nodeType!==1)d=d.nextSibling;while(!d){element=element.parentNode;if(element===p)break;d=element.nextSibling;while(d&&d.nodeType!==1)d=d.nextSibling}if(!d||d.nodeType!==1)break;do{element=C[A+1];if(element===d)break;A++}while(element)}}}while(!!(element=C[++A]))};Sys.Application._clearContent=function(a){var b;Sys.Application.disposeElement(a,fb);try{a.innerHTML=ib}catch(b){while(a.firstChild)a.removeChild(a.firstChild)}};Sys.Application._getCommandAttr=function(b,c,d){var e,a=eb;try{a=d?b[c]:b.getAttribute(c);a=a?Sys.Application._getPropertyValue(eb,eb,eb,a,templateContext,eb,fb):eb}catch(e){}return a};Sys.Application._directAttributes={style:zb,"class":Ab,cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",valign:"vAlign"};Sys.Application._splitAttribute=function(l,n,i){var e=l.split(":"),c=e.length>1?e[0]:eb,a=e[c?1:0],b=W,j,g,d,f=c==="sys",h=a.toLowerCase(),m=!c;if(!c||f){var k=Sys.Application._directAttributes[h];if(k){b=1;a=k}else if(n){if(h===o){a=p;b=1}else if(a===sb)b=1;else if(f){b=0;c=eb}}else if(f)if(a===q||a==="commandargument"||a==="commandtarget")b=4;else if(a.indexOf("style-")===0){a="style."+Sys.Application._translateStyleName(a.substr(6));b=1}else if(a.indexOf("class-")===0){a=a.substr(6);b=2}else if(a==="innerhtml"){b=1;a=V}else if(a==="innertext"){b=1;j=fb;a=tb}else{c=eb;b=0}}else if(i){d=i[c];if(d){b=3;if(d.isClass){g=Sys.Application._translateName(a,d.type);a=g.name}}else{a=c+":"+a;c=eb;b=W}}else{a=c+":"+a;c=eb;b=W}return {ns:c,name:a,type:b,map:g,index:d,textNode:j,isNative:m}};Sys.Application._translateStyleName=function(b){if(b.indexOf("-")===W)return b;var a=b.toLowerCase().split("-"),d=a[0];for(var c=1,f=a.length;c<f;c++){var e=a[c];d+=e.substr(0,1).toUpperCase()+e.substr(1)}return d};Sys.Application._getExtensionCode=function(b,l,k){b=b.trim();var e,a,j={},g=b.indexOf(" ");if(g!==W){e=b.substr(0,g);a=b.substr(g+1);if(a){a=a.replace(/\\,/g,"\0").split(",");for(var i=0,m=a.length;i<m;i++){var d=a[i].replace(/\u0000/g,","),f=d.indexOf("="),c,h;if(f!==W){h=d.substr(0,f).trim();c=d.substr(f+1).trim();if(l)c=this._getPropertyValue(eb,eb,eb,c,k,fb)}else{h="$default";c=d.trim()}j[h]=c}}}else e=b;return {instance:Sys.Application._getMarkupExtension(e),name:e,properties:j}};Sys.Application._getPropertyValue=function(g,h,i,a,b,f,e){var c=a;if(a.startsWith("{{")&&a.endsWith("}}"))c=this._evaluateExpression(a.slice(2,-2),b);else if(!e&&!f&&a.startsWith("{")&&a.endsWith("}")){var d=this._getExtensionCode(a.slice(1,W),fb,b);c=d.instance.extension(h,(g.type===2?k:ib)+i,b,d.properties)}return c};Sys.Application._tryName=function(a,f){var c=f.prototype,b="set_"+a,d=c[b];if(d)return {name:a,setterName:b,setter:d,type:1};if(a.startsWith("on")){b="add_"+a.substr(2);var e=c[b];if(e)return {name:a,setterName:b,setter:e,type:2}}if(typeof c[a]!==U)return {name:a};return eb};Sys.Application._translateName=function(b,c){var a,d=Sys.Application._prototypeIndex[c.__typeName];if(d){a=d[b];if(a)return a}else d={};c.resolveInheritance();a=Sys.Application._tryName(b,c);if(!a){var e=Sys.Application._mapToPrototype(b,c);if(e&&e!==b)a=Sys.Application._tryName(e,c);if(!a)a={name:b}}d[b]=a;return a};Sys.Application._mapToPrototype=function(d,e){var c,b=Sys.Application._caseIndex[e.__typeName];if(!b){b={};e.resolveInheritance();for(var a in e.prototype){if(a.startsWith(f)||a.startsWith("set_")||a.startsWith("add_"))a=a.substr(4);else if(a.startsWith("remove_"))a=a.substr(7);b[a.toLowerCase()]=a}Sys.Application._caseIndex[e.__typeName]=b}d=d.toLowerCase();if(d.startsWith("on")){c=b[d.substr(2)];if(c)c="on"+c;else c=b[d]}else c=b[d];return c};Sys.Application._doEval=function(__expression,$context){with($context.dataItem||{})return eval("("+__expression+")")};Sys.Application._evaluateExpression=function(b,a){return Sys.Application._doEval.call(a.dataItem,b,a)};Sys.Application._registerComponent=function(b,c){var a=b._components;if(!a)b._components=a=[];a[a.length]=c};Sys.Application._activateOnPartial=function(a,b){this._doUpdatePanel(a,b);if(Sys.activateDom)Sys.Application.activateElement(a)};Sys.Application._raiseInit=function(){this.beginCreateComponents();Sys.Observer.raiseEvent(this,"init");if(Sys.activateDom)Sys.Application.activateElement(document.documentElement);if(Sys.WebForms&&Sys.WebForms.PageRequestManager){var a=Sys.WebForms.PageRequestManager.getInstance();a._doUpdatePanel=a._updatePanel;a._updatePanel=Sys.Application._activateOnPartial}this.endCreateComponents()};Sys.BindingMode=function(){};Sys.BindingMode.prototype={auto:0,oneTime:1,oneWay:2,twoWay:3,oneWayToSource:4};Sys.BindingMode.registerEnum("Sys.BindingMode");Sys.Binding=function(){var a=this;Sys.Binding.initializeBase(a);a._sourceHandlers=[];a._targetHandlers=[];a._onSourceChanged=Function.createDelegate(a,a._sourceChanged);a._onTargetChanged=Function.createDelegate(a,a._targetChanged);a._onOptionsUpdated=Function.createDelegate(a,a._optionsUpdated);a._onDispose=Function.createDelegate(a,a.dispose)};Sys.Binding.prototype={_defaultValue:eb,get_convert:function(){return this._convert||eb},set_convert:function(a){this._convert=a;this._convertFn=this._resolveFunction(a)},get_convertBack:function(){return this._convertBack||eb},set_convertBack:function(a){this._convertBack=a;this._convertBackFn=this._resolveFunction(a)},get_ignoreErrors:function(){return !!this._ignoreErrors},set_ignoreErrors:function(a){this._ignoreErrors=a},get_mode:function(){return this._mode||Sys.BindingMode.auto},set_mode:function(a){this._mode=a},get_defaultValue:function(){return this._defaultValue},set_defaultValue:function(a){this._defaultValue=a},get_source:function(){return this._source||eb},set_source:function(a){this._source=a},get_templateContext:function(){return this._templateContext||eb},set_templateContext:function(a){this._templateContext=a},get_path:function(){return this._path||ib},set_path:function(a){this._path=a;this._pathArray=a?a.split("."):eb},get_target:function(){return this._target||eb},set_target:function(a){this._target=a},get_targetProperty:function(){return this._targetProperty||ib},set_targetProperty:function(a){this._targetProperty=a;this._targetPropertyArray=a?a.split("."):eb},_addBinding:function(a){if(a.nodeType===3){a=a.parentNode;if(!a)return}var b=a.__msajaxbindings=a.__msajaxbindings||[];b.push(this);Sys.UI.DomElement._onDispose(a,Sys.Binding._disposeBindings)},dispose:function(){var a=this;if(!a._disposed){a._disposed=fb;a._watchObject(eb);a._watchObject(eb,fb);a._targetHandlers=eb;a._sourceHandlers=eb;var b=a._source,c=a._target;if(b){if(a._sourceOption)Sys.Observer.removeEventHandler(b,B,a._onOptionsUpdated);if(Sys.INotifyDisposing.isImplementedBy(b))b.remove_disposing(a._onDispose)}if(c){if(a._targetOption)Sys.Observer.removeEventHandler(c,B,a._onOptionsUpdated);if(Sys.INotifyDisposing.isImplementedBy(c))c.remove_disposing(a._onDispose)}a._convert=eb;a._convertBack=eb;a._convertFn=eb;a._convertBackFn=eb;a._lastSource=eb;a._lastTarget=eb;a._source=eb;a._target=eb;a._pathArray=eb;a._defaultValue=eb;a._targetPropertyArray=eb;a._templateContext=eb}Sys.Binding.callBaseMethod(a,"dispose")},_getPropertyFromIndex:function(a,e,c,d){for(var b=c;b<=d;b++){if(a===eb||typeof a===U)return eb;a=this._getPropertyData(a,e[b])}return a},_getPropertyData:function(b,a){if(typeof b[f+a]===bb)return b[f+a]();else return b[a]},_watchObject:function(a,g){var b=this,h=g?b._pathArray:b._targetPropertyArray,f=g?b._sourceHandlers:b._targetHandlers,e=!!a;if(h)for(var c=0,j=h.length;c<j;c++){var i=h[c],d=f[c];if(!d||d.object!==a){if(d){b._forget(d);f[c]=eb}if(e)f[c]=b._listen(a,i,g)}if(e){a=b._getPropertyData(a,i);e=a&&(typeof a==="object"||a instanceof Array||Sys._isDomElement(a))}else a=eb}},_isInput:function(c,b){var d,a=Sys.UI.DomElement.isDomElement(c)&&c.nodeType===1&&c.tagName?c.tagName.toLowerCase():ib;if(a===Bb||a===vb||a===rb){b=(b||ib).toLowerCase();if(b===sb||b===o||b===Z)if(a!==vb||a===vb&&!/button|image|hidden|submit|reset/i.test(c.type))d=a}return d},_listen:function(a,g,h){var d=this,i=d,c=h?d._onSourceChanged:d._onTargetChanged,b={listener:c,object:a,pc:function(d,b){var a=b.get_propertyName();if(!a||a===g)c()},dom:[]};Sys.Observer._addEventHandler(a,j,b.pc);var e=d._isInput(a,g),f=Sys.UI.DomEvent.addHandler;if(e){b.dom.push("change");f(a,"change",c);if(e!==rb){b.dom.push("click");f(a,"click",c);if(e===Bb){b.dom.push("keyup");f(a,"keyup",c)}}}a=eb;return b},_forget:function(a){var c=a.object,d=a.dom;Sys.Observer._removeEventHandler(c,j,a.pc);for(var b=0,e=d.length;b<e;b++)Sys.UI.DomEvent.removeHandler(c,d[b],a.listener)},_resolveFunction:function(a){var c,b;if(typeof a===bb)b=a;else{b=Sys.converters[a];if(!b)try{b=Type.parse(a)}catch(c){throw Error.invalidOperation(String.format(Sys.UI.TemplatesRes.functionNotFound,a))}}return b},update:function(a){a=a||this.get_mode();if(a===Sys.BindingMode.oneWayToSource)this._targetChanged(fb);else this._sourceChanged(fb)},initialize:function(){var a=this;if(!a.get_isInitialized()){var b=a.get_templateContext();if(!b)a._doInitialize();else b._completed.push(Function.createDelegate(a,a._doInitialize))}},_doInitialize:function(){var a=this,d=a.get_source(),b=a.get_target();if(typeof d===pb)a.set_source(d=a._resolveReference(d)||eb);if(typeof b===pb)a.set_target(b=a._resolveReference(b)||eb);var c=a.get_mode();if(b&&c===Sys.BindingMode.auto){c="oneWay";if(a._isInput(b,a._targetPropertyArray?a._targetPropertyArray[0]:ib)||Sys.INotifyPropertyChange.isImplementedBy(b))c="twoWay";c=Sys.BindingMode[c];a.set_mode(c)}Sys.Binding.callBaseMethod(a,g);a.update(c);if(c!==Sys.BindingMode.oneTime){if(d){if(c!==Sys.BindingMode.oneWayToSource){a._watchObject(d,fb);if(Sys.INotifyDisposing.isImplementedBy(d))d.add_disposing(a._onDispose)}if(Sys.UI.DomElement.isDomElement(d))a._addBinding(d)}if(b){if(c!==Sys.BindingMode.oneWay){a._watchObject(b);if(Sys.INotifyDisposing.isImplementedBy(b))b.add_disposing(a._onDispose)}if(Sys.UI.DomElement.isDomElement(b))a._addBinding(b)}}function e(a,b){if(Sys.UI.DomElement.isDomElement(a)&&/^select$/i.test(a.tagName)&&/^(selectedIndex|value)$/i.test(b)){Sys.Observer.addEventHandler(a,B,this._onOptionsUpdated);return fb}return nb}if(d&&c>=3)a._sourceOption=e.call(a,d,a.get_path());if(b&&c<=3)a._targetOption=e.call(a,b,a.get_targetProperty())},_isChecked:function(a,b){return b===Z&&a.tagName.toLowerCase()===vb},_optionsUpdated:function(a){if(!this._disposed)this.update(a===this.get_source()?4:2)},_sourceChanged:function(e){var a=this;if(a._disposed)return;e=e===fb;var j,c=a.get_target(),b=a.get_source();if(!c)return;b=b&&a._pathArray?a._getPropertyFromIndex(b,a._pathArray,0,a._pathArray.length-1):b;if(!a._updateSource&&(e||b!==a._lastSource))try{a._updateTarget=fb;a._lastSource=a._lastTarget=b;if(a._convertFn)if(a._ignoreErrors)try{b=a._convertFn(b,a)}catch(j){}else b=a._convertFn(b,a);if(b===eb||typeof b===U)b=a.get_defaultValue();if(a._targetProperty&&a._targetProperty.startsWith(k)){var g=a._targetProperty.substr(6).trim();b?Sys.UI.DomElement.addCssClass(c,g):Sys.UI.DomElement.removeCssClass(c,g)}else{var f=a._targetPropertyArray.length;c=a._getPropertyFromIndex(c,a._targetPropertyArray,0,f-2);if(c!==eb&&typeof c!==U){var d=a._targetPropertyArray[f-1],h=Sys.UI.DomElement.isDomElement(c);if(h){b=Sys.UI.Template._checkAttribute(d,b);if(d===V)Sys.Application._clearContent(c)}Sys.Observer._setValue(c,d,b);if(b&&h&&a._isChecked(c,d)){var i=document.createAttribute(d);i.nodeValue=d;c.setAttributeNode(i)}}}}finally{a._updateTarget=nb}if(!e)a._watchObject(a.get_source(),fb)},_targetChanged:function(e){var a=this;if(a._disposed)return;e=e===fb;var b=a.get_target(),c=a.get_source();if(!c)return;b=!b?eb:a._getPropertyFromIndex(b,a._targetPropertyArray,0,a._targetPropertyArray.length-1);if(!a._updateTarget&&(e||b!==a._lastTarget))try{a._updateSource=fb;a._lastTarget=a._lastSource=b;if(a._convertBackFn)if(a._ignoreErrors)try{b=a._convertBackFn(b,a)}catch(i){}else b=a._convertBackFn(b,a);if(a._pathArray){var f=a._pathArray.length;c=a._getPropertyFromIndex(c,a._pathArray,0,f-2);if(c!==eb&&typeof c!==U){var d=a._pathArray[f-1],g=Sys.UI.DomElement.isDomElement(c);if(g){b=Sys.UI.Template._checkAttribute(d,b);if(d===V)Sys.Application._clearContent(c)}Sys.Observer._setValue(c,d,b);if(b&&g&&a._isChecked(c,d)){var h=document.createAttribute(d);h.nodeValue=d;c.setAttributeNode(h)}}}}finally{a._updateSource=nb}if(!e)a._watchObject(a.get_target())},_resolveReference:function(b){var a=Sys.get(b,this.get_templateContext());return a||eb}};Sys.Binding._disposeBindings=function(){var a=this.__msajaxbindings;if(a)for(var b=0,c=a.length;b<c;b++)a[b].dispose();this.__msajaxbindings=eb};Sys.Binding.registerClass("Sys.Binding",Sys.Component,Sys.UI.ITemplateContextConsumer);Sys.converters=Sys.converters||{};Sys.Binding.bind=function(d,e,f,g,a){if(arguments.length>1)a=merge({target:d,targetProperty:e,source:f,path:g,templateContext:Sys._isInstanceOfType(Sys.UI.TemplateContext,this)?this:eb},a);else a=d;var b=a.mode;if(typeof b===pb)a.mode=Sys.BindingMode.parse(b);b=a.ignoreErrors;if(typeof b===pb)a.ignoreErrors=Boolean.parse(b);var c=new Sys.Binding;forIn(a,function(a,b){if(typeof a!==U)Sys.Observer.setValue(c,b,a)});c.initialize();return c};Sys.Application.registerMarkupExtension("binding",function(e,c,b,d){var a=merge({source:b.dataItem,templateContext:b,target:e,targetProperty:c},d);a.path=a.path||a.$default;delete a.$default;var f=Sys.Binding.bind(a);b.components.push(f)},nb);Sys.UI.DataView=function(a){Sys.UI.DataView.initializeBase(this,[a])};Sys.UI.DataView.prototype={_autoFetch:nb,_fetching:nb,_changed:nb,_data:eb,_dataProvider:eb,_wsp:eb,_wspClass:eb,_dirty:nb,_stale:fb,_dvTemplate:eb,_eventType:0,_httpVerb:eb,_initialSelectedIndex:W,_fetchParameters:eb,_parentContext:eb,_placeholder:eb,_query:eb,_contexts:eb,_selectedIndex:W,_selectedItemClass:eb,_template:eb,_timeout:0,_request:eb,add_command:function(a){this._addHandler(q,a)},remove_command:function(a){this._removeHandler(q,a)},add_rendering:function(a){this._addHandler(C,a)},remove_rendering:function(a){this._removeHandler(C,a)},add_rendered:function(a){this._addHandler(D,a)},remove_rendered:function(a){this._removeHandler(D,a)},add_itemRendered:function(a){this._addHandler(b,a)},remove_itemRendered:function(a){this._removeHandler(b,a)},add_itemRendering:function(a){this._addHandler(c,a)},remove_itemRendering:function(a){this._removeHandler(c,a)},add_fetchFailed:function(a){this._addHandler(d,a)},remove_fetchFailed:function(a){this._removeHandler(d,a)},add_fetchSucceeded:function(a){this._addHandler(e,a)},remove_fetchSucceeded:function(a){this._removeHandler(e,a)},get_viewData:function(){return this._viewData||eb},get_data:function(){return this._data},set_data:function(a){if(!this._setData||this._data!==a)this._loadData(a)},get_dataProvider:function(){return this._provider||eb},set_dataProvider:function(b){var a=this;a._dataProvider=a._wsp=a._wspClass=eb;if(Sys.Data.IDataProvider.isImplementedBy(b))a._dataProvider=b;else if(Sys.Net.WebServiceProxy.isInstanceOfType(b))a._wsp=b;else if(Type.isClass(b)&&b.inheritsFrom(Sys.Net.WebServiceProxy)&&typeof b.get_path===bb)a._wspClass=b;a._provider=b;if(a.get_autoFetch()&&a._isActive()){if(b)a._doAutoFetch()}else a._stale=fb},get_autoFetch:function(){return this._autoFetch},set_autoFetch:function(b){var a=this,c=a._autoFetch;if(typeof b===pb)b=Boolean.parse(b);a._autoFetch=b;if(a._isActive()&&a._stale&&!c&&b)a._doAutoFetch()},get_isFetching:function(){return this._fetching},get_httpVerb:function(){return this._httpVerb||"POST"},set_httpVerb:function(a){this._httpVerb=a},get_contexts:function(){return this._contexts},get_fetchParameters:function(){return this._fetchParameters},set_fetchParameters:function(b){var a=this;if(a._fetchParameters!==b){a._fetchParameters=b;if(a.get_autoFetch()&&a._isActive())a._doAutoFetch();else a._stale=fb}},get_selectedData:function(){var a=this.get_selectedIndex();if(a>W){var b=this.get_viewData();if(b instanceof Array&&a<b.length)return b[a]}return eb},get_selectedIndex:function(){return this._selectedIndex},set_selectedIndex:function(b){var a=this;b=a._validateIndexInput(b);if(!a.get_isInitialized()||!a._setData)a._selectedIndex=b;else a._applySelectedIndex(b)},get_initialSelectedIndex:function(){return this._initialSelectedIndex},set_initialSelectedIndex:function(b){var a=this;b=a._validateIndexInput(b);if(b!==a.get_initialSelectedIndex()){a._initialSelectedIndex=b;a._raiseChanged("initialSelectedIndex")}},get_selectedItemClass:function(){return this._selectedItemClass||ib},set_selectedItemClass:function(b){var a=this,d=a.get_selectedItemClass();if(b!==d){var c=a.get_selectedIndex();a._addRemoveCssClass(c,d,Sys.UI.DomElement.removeCssClass);a._addRemoveCssClass(c,b,Sys.UI.DomElement.addCssClass);a._selectedItemClass=b}},get_timeout:function(){return this._timeout},set_timeout:function(a){this._timeout=a},get_fetchOperation:function(){return this._query||ib},set_fetchOperation:function(b){var a=this;if(a._query!==b){a._query=b;if(a.get_autoFetch()&&a._isActive()){if(b)a._doAutoFetch()}else a._stale=fb}},get_itemPlaceholder:function(){return this._placeholder||eb},set_itemPlaceholder:function(b){var a=this;if(a._placeholder!==b){a._placeholder=b;a._dirty=fb;a._raiseChanged(E)}},get_templateContext:function(){return this._parentContext||Sys.UI.Template.findContext(this.get_element())},set_templateContext:function(b){var a=this;if(a._parentContext!==b){a._parentContext=b;a._dirty=fb;a._raiseChanged("templateContext")}},get_itemTemplate:function(){return this._template||eb},set_itemTemplate:function(b){var a=this;if(a._template!==b){a._template=b;a._dirty=fb;if(a._dvTemplate){a._dvTemplate.dispose();a._dvTemplate=eb}if(a._isActive()){a.raisePropertyChanged(h);a.refresh()}else a._changed=fb}},_applySelectedIndex:function(b,g){var a=this,d=a.get_selectedIndex();if(g||b!==d){var c=a.get_viewData();if(!(c instanceof Array))c=[c];var f=b<W||b>=c.length;a._selectedIndex=b;a._currentData=b===W||f?eb:c[b];var e=a.get_selectedItemClass();a._addRemoveCssClass(d,e,Sys.UI.DomElement.removeCssClass);a._addRemoveCssClass(b,e,Sys.UI.DomElement.addCssClass);if(!a.get_isUpdating()){if(b!==d)a.raisePropertyChanged(p)}else a._changed=fb}if(!a.get_isUpdating())a._raiseSelectedData();else a._changed=fb},_addRemoveCssClass:function(b,e,h){if(e&&b>W){var c=this.get_contexts(),g=c?c.length:W;if(g&&b<g){var a=c[b].nodes;if(a)for(var d=0,i=a.length;d<i;d++){var f=a[d];if(f.nodeType===1)h(f,e)}}}},_collectionChanged:function(n,l){var b=this,i=b._currentData,e=l.get_changes(),a=b.get_selectedIndex(),k=a;if(b._isActive()){b._changing=fb;b.refresh()}else{b._dirty=fb;return}var g=b.get_viewData();if(a!==W&&a<g.length&&g[a]===i)return;for(var d=0,m=e.length;d<m;d++){var c=e[d];if(c.action===Sys.NotifyCollectionChangedAction.add){if(a>=c.newStartingIndex)a+=c.newItems.length}else{var f=c.oldStartingIndex,h=c.oldItems.length,j=f+h-1;if(a>j)a-=h;else if(a>=f){a=W;break}}}if(a!==k)b.set_selectedIndex(a)},_elementContains:function(b,a,c){if(b===a)return !c;do{a=a.parentNode;if(a===b)return fb}while(a);return nb},_raiseChanged:function(a){if(this._isActive())this.raisePropertyChanged(a);else this._changed=fb},_raiseFailed:function(a,c){var b=new Sys.Net.WebRequestEventArgs(a?a.get_executor():eb,c);this.onFetchFailed(b);Sys.Observer.raiseEvent(this,d,b)},_raiseSelectedData:function(){var a=this;if(a._lastData!==a._currentData){a._lastData=a._currentData;a.raisePropertyChanged("selectedData")}},_raiseSucceeded:function(a,c){var b=new Sys.Net.WebRequestEventArgs(a?a.get_executor():eb,eb,c);this.onFetchSucceeded(b);Sys.Observer.raiseEvent(this,e,b)},_ensureTemplate:function(a){if(!Sys.UI.Template.isInstanceOfType(a)){a=Sys.UI.DomElement._ensureGet(a,this.get_templateContext(),h);if(a)a=new Sys.UI.Template(a)}return a},_getTemplate:function(){var b=this;if(b._dvTemplate)return b._dvTemplate;var a=b.get_itemTemplate();if(!a){var c=b.get_element();if(Sys.UI.Template._isTemplate(c))b._dvTemplate=a=new Sys.UI.Template(c)}else if(!Sys.UI.Template.isInstanceOfType(a)){a=Sys.UI.DomElement._ensureGet(a,b.get_templateContext(),h);b._dvTemplate=a=new Sys.UI.Template(a)}return a},_loadData:function(b){var a=this;a._swapData(a._data,b);a._data=b;a._setData=fb;a._stale=nb;a._dirty=fb;if(a._isActive()){a.refresh();a.raisePropertyChanged("data")}else a._changed=fb},_resetSelectedIndex:function(){var a=this,d=a.get_viewData(),b=a.get_initialSelectedIndex(),c=a.get_selectedIndex();if(!(d instanceof Array)||b>=d.length){if(c!==W){a.set_selectedIndex(W);return}}else if(c!==b){a.set_selectedIndex(b);return}a._currentData=a.get_selectedData();a._raiseSelectedData()},_initializeResults:function(){for(var a=0,c=this._contexts.length;a<c;a++){var b=this._contexts[a];if(b)b.initializeComponents()}},_isActive:function(){return this.get_isInitialized()&&!this.get_isUpdating()},_raiseCommand:function(a){this.onCommand(a);Sys.Observer.raiseEvent(this,q,a)},_raiseItem:function(b,a){this["onItem"+b](a);Sys.Observer.raiseEvent(this,"item"+b,a)},abortFetch:function(){var a=this;if(a._request){a._request.get_executor().abort();a._request=eb}if(a._fetching){a._fetching=nb;a._raiseChanged(t)}},onBubbleEvent:function(d,a){if(Sys.CommandEventArgs.isInstanceOfType(a)){this._raiseCommand(a);if(a.get_cancel())return fb;else{var c=a.get_commandName();if(c&&c.toLowerCase()===Bb){var b=this._findContextIndex(d);if(b!==W){this.set_selectedIndex(b);return fb}}}}return nb},onRendering:function(){},onFetchFailed:function(){},onFetchSucceeded:function(){},_doAutoFetch:function(){var a=this,b;try{if(a._dataProvider||a._provider){a.fetchData();a._stale=nb}}catch(b){a._raiseFailed(eb,eb)}},_findContextIndex:function(i){var c=this,e=c._containers;if(i&&e){var f=c.get_contexts();if(f){var b=Sys.UI.DomElement._ensureGet(i,c.get_templateContext(),"source");if(b){var a=b.parentNode,k=c.get_element(),g=W;while(a&&(g=Sys._indexOf(e,a))<0&&a!==k){b=a;a=a.parentNode}if(g>W){var j=e[g];for(var d=0,l=f.length;d<l;d++){var h=f[d];if(h.containerElement===j&&Sys._indexOf(h.nodes,b)>W)return d}}}}}return W},findContext:function(b){var a=this._findContextIndex(b);return a!==W?this.get_contexts()[a]:eb},_clearContainer:function(b,a){var d=a?a.__msajaxphcount:W;if(d>W&&a)a.__msajaxphcount=0;if(d<0){if(a)b.removeChild(a);Sys.Application.disposeElement(b,fb);try{b.innerHTML=ib}catch(j){var g;while(g=b.firstChild)b.removeChild(g)}if(a)b.appendChild(a)}else if(d>0){var c,i,h,e=b.childNodes;for(c=0,i=e.length;c<i;c++)if(e[c]===a)break;h=c-d;for(c=0;c<d;c++){var f=e[h];Sys.Application.disposeElement(f,nb);b.removeChild(f)}}},_clearContainers:function(e){var b=this,a,c;for(a=0,c=e.length;a<c;a++){var d=e[a],g=d?d.parentNode:b.get_element();b._clearContainer(g,d)}for(a=0,c=b._contexts.length;a<c;a++){var f=b._contexts[a];f.nodes=eb;f.dispose()}},_isAlone:function(b,f){var e=b.childNodes;if(e.length===1)return fb;var a=b.firstChild,d=/\S/;while(a){if(a!==f){var c=a.nodeType;if(c===3){if(d.test(a.nodeValue))return nb}else if(c!==8)return nb}a=a.nextSibling}return fb},refresh:function(){var a=this;if(!a._setData)return;var y=a._changing;a._changing=nb;var c=a.get_data(),l=a.get_templateContext(),f=new Sys.Data.DataEventArgs(c);f._itemTemplate=a._getTemplate();f._placeholder=Sys.UI.DomElement._ensureGet(a.get_itemPlaceholder(),l,E);a.onRendering(f);Sys.Observer.raiseEvent(a,C,f);if(f.get_cancel())return;c=f.get_data();a._viewData=c;var q=a._ensureTemplate(f._itemTemplate);a._dirty=nb;var A=Sys.UI.DomElement._ensureGet(f._placeholder,l,E),g=a.get_element(),j,m,h;if(a._placeholders)a._clearContainers(a._placeholders);var x=c,k;if(c===eb||typeof c===U)k=0;else if(!(c instanceof Array)){x=[c];k=1}else k=c.length;function u(){if(!this._cleared){if(Sys.UI.Template._isTemplate(g)){var a=new Sys.UI.Template(g);a._ensureCompiled();a.dispose();Sys.UI.DomElement.removeCssClass(g,X)}this._clearContainer(g,eb);g.__msajaxphcount=W;this._cleared=fb}}if(!k&&q&&q.get_element()===g)u.call(a);var b,v,o,d,p,i;a._placeholders=o=[];a._containers=p=[];a._contexts=new Array(k);for(var e=0;e<k;e++){var r=x[e];h=new Sys.UI.DataViewItemEventArgs(r);h._itemTemplate=q;h._placeholder=A;a._raiseItem("Rendering",h);m=a._ensureTemplate(h._itemTemplate);b=Sys.UI.DomElement._ensureGet(h._placeholder,l,E);b=b?b.__msajaxphoption||b:eb;if(b!==v){d=b?b.parentNode:g;if(Sys._indexOf(o,b)<0){if(b){if(/^option$/i.test(b.tagName)&&/select/i.test(d.tagName)){var n=document.createElement("_hiddenPlaceholder");d.replaceChild(n,b);b.__msajaxphoption=n;n.appendChild(b);b=n}b.style.display="none";var z=b.__msajaxphcount;if(typeof z===U&&a._isAlone(d,b)){b.__msajaxphcount=W;a._clearContainer(d,b)}}else u.call(a);o.push(b);if(Sys._indexOf(p,d)<0){p.push(d);if(/^select$/i.test(d.tagName)){i=i||[];i.push(d)}}}}v=b;if(m)j=m.instantiateIn(d,c,r,e,b,l);else j=merge(new Sys.UI.TemplateContext,{nodes:[],dataItem:r,data:c,index:e,parentContext:l});h._ctx=j;a._contexts[e]=j;a._raiseItem("Rendered",j);if(m&&b){var w=b.__msajaxphcount||0;if(w>W)b.__msajaxphcount=w+j.nodes.length}}if(i)for(e=0;e<i.length;e++)Sys.Observer.raiseEvent(i[e],B,Sys.EventArgs.Empty);if(!y)if(!a._rendered&&a.get_selectedIndex()>W)a._applySelectedIndex(a.get_selectedIndex(),fb);else a._resetSelectedIndex();a._rendered=fb;var s=a.get_selectedItemClass();if(s){var t=a.get_selectedIndex();if(t!==W)a._addRemoveCssClass(t,s,Sys.UI.DomElement.addCssClass)}a.raisePropertyChanged("viewData");Sys.Observer.raiseEvent(a,D,f);a._initializeResults()},_swapData:function(c,b){var a=this;if(c)switch(a._eventType){case 1:c.remove_collectionChanged(a._changedHandler);break;case 2:Sys.Observer.removeCollectionChanged(c,a._changedHandler)}a._eventType=0;if(b){if(!a._changedHandler)a._changedHandler=Function.createDelegate(a,a._collectionChanged);if(typeof b.add_collectionChanged===bb){b.add_collectionChanged(a._changedHandler);a._eventType=1}else if(b instanceof Array){Sys.Observer.addCollectionChanged(b,a._changedHandler);a._eventType=2}}},_validateIndexInput:function(a){var b=typeof a;if(b===pb)a=parseInt(a);return a},dispose:function(){var a=this;if(a._placeholders&&!Sys.Application.get_isDisposing())a._clearContainers(a._placeholders);if(a._dvTemplate)a._dvTemplate.dispose();if(a.get_isFetching()){a.abortFetch();a._fetching=nb}a._swapData(a._data,eb);a._currentData=a._lastData=a._placeholders=a._containers=a._placeholder=a._contexts=a._parentContext=a._dvTemplate=a._request=a._dataProvider=a._wsp=a._wspClass=a._provider=a._data=a._fetchParameters=a._query=eb;Sys.UI.DataView.callBaseMethod(a,"dispose")},initialize:function(){Sys.UI.DataView.callBaseMethod(this,g);this.refresh();this.updated()},fetchData:function(q,r,l,m){var c="fetchData",a=this;a._stale=nb;var d,b=a;function f(a){b._loadData(a);b._fetching=nb;b._request=eb;b._raiseChanged(t);b._raiseSucceeded(d,a);if(q)q(a,m,c)}function i(a){b._fetching=nb;b._request=eb;b._raiseChanged(t);b._raiseFailed(d,a);if(r)r(a,m,c)}if(a._fetching)a.abortFetch();var s=a._dataProvider,k=a._wsp,p=a._wspClass,j=a.get_fetchOperation(),e=a.get_fetchParameters()||eb,g=a.get_httpVerb()||"POST",h=a.get_timeout()||0;if(typeof l===U)l=eb;if(s)d=s.fetchData(j,e,l,g,f,i,h,m);else if(k){var n=k.get_path();if(!n){var o=Object.getType(k);if(o&&typeof o.get_path===bb)n=o.get_path()}d=Sys.UI.DataView._fetchWSP(eb,n,j,e,g,f,i,h||k.get_timeout())}else if(p)d=Sys.UI.DataView._fetchWSP(eb,p.get_path(),j,e,g,f,i,h||p.get_timeout());else d=Sys.UI.DataView._fetchWSP(eb,a._provider,j,e,g,f,i,h);a._request=d;a._fetching=fb;a._raiseChanged(t);return d},onCommand:function(){},onItemRendering:function(){},onItemRendered:function(){},updated:function(){var a=this;if(a._stale&&a.get_autoFetch())a._doAutoFetch();if(a._dirty)a.refresh();if(a._changed){a.raisePropertyChanged(ib);a._changed=nb}}};Sys.UI.DataView.registerClass("Sys.UI.DataView",Sys.UI.Control,Sys.UI.ITemplateContextConsumer);Sys.UI.DataView._fetchWSP=function(i,h,d,c,e,a,b,g,f){return Sys.Net.WebServiceProxy.invoke(h,d,e==="GET",c,a,b,f,g)};Sys.UI.DataViewItemEventArgs=function(b,a){Sys.UI.DataViewItemEventArgs.initializeBase(this);this._ctx=a;this._data=b||eb};Sys.UI.DataViewItemEventArgs.prototype={get_dataItem:function(){return this._data},get_itemContext:function(){return this._ctx||eb},get_itemPlaceholder:function(){return this._placeholder||eb},set_itemPlaceholder:function(a){this._placeholder=a},get_itemTemplate:function(){return this._itemTemplate||eb},set_itemTemplate:function(a){this._itemTemplate=a}};Sys.UI.DataViewItemEventArgs.registerClass("Sys.UI.DataViewItemEventArgs",Sys.EventArgs)}if(window.Sys&&Sys.loader)Sys.loader.registerScript("Templates",eb,execute);else execute()})();
Type.registerNamespace('Sys.UI');Sys.UI.TemplatesRes={'cannotFindMarkupExtension':'A markup extension with the name \'{0}\' could not be found.'};

(function(){var a=null;function b(){var m="\r\n--",f="\r\n",e="--",r="DataServiceVersion",h="GET",d="application/json",c="Content-Type",l="DELETE",k="MERGE",j="POST",i="undefined",b=false,g=true,q="$filter",p="$orderby",o="$top",n="$skip";Type._registerScript("MicrosoftAjaxAdoNet.js",["MicrosoftAjaxWebServices.js"]);var s=Sys._merge;Type.registerNamespace("Sys.Data");if(!Sys.Data.IDataProvider){Sys.Data.IDataProvider=function(){};Sys.Data.IDataProvider.registerInterface("Sys.Data.IDataProvider")}if(!Sys.Data.MergeOption){Sys.Data.MergeOption=function(){};Sys.Data.MergeOption.prototype={appendOnly:0,overwriteChanges:1};Sys.Data.MergeOption.registerEnum("Sys.Data.MergeOption")}Sys.Data.AdoNetQueryBuilder=function(b){var a=this;a._queryParameters={};a._uri=b;var c=b.indexOf("?");if(c>=0){a._uri=b.substr(0,c);var e=b.substr(c+1).split("&");for(var f in e){param=e[f];var d=param.indexOf("=");if(d>=0)a._queryParameters[decodeURIComponent(param.substr(0,d))]=decodeURIComponent(param.substr(d+1));else a._queryParameters[decodeURIComponent(param)]=""}}};Sys.Data.AdoNetQueryBuilder.prototype={_queryParameters:a,_uri:a,get_skip:function(){return this._getIntParam(n)},set_skip:function(a){this._setParam(n,a)},get_top:function(){return this._getIntParam(o)},set_top:function(a){this._setParam(o,a)},get_orderby:function(){return this._getStringParam(p)},set_orderby:function(a){this._setParam(p,a)},get_filter:function(){return this._getStringParam(q)},set_filter:function(a){this._setParam(q,a)},get_expand:function(){return this._getStringParam("$expand")},set_expand:function(a){this._setParam("$expand",a)},get_resourcePath:function(){return this._uri},get_queryParameters:function(){return this._queryParameters},set_queryParameters:function(a){this._queryParameters=a},toString:function(){var c,f,e,d=[],i=this._queryParameters,j=Sys.Data.AdoNetQueryBuilder._queryOptions;for(c in i)if(i.hasOwnProperty(c)&&!Array.contains(j,c)){e=i[c];if(e!=a)d.push({key:c,value:e})}for(f in j){c=j[f];e=i[c];if(e!=a)d.push({key:c,value:e})}var h=new Sys.StringBuilder(this._uri),k=g;for(f in d)if(d.hasOwnProperty(f)){h.append(k?"?":"&");h.append(encodeURIComponent(d[f].key));h.append("=");h.append(encodeURIComponent(d[f].value));k=b}return h.toString()},_getIntParam:function(c){var b=parseInt(this._queryParameters[c]);return isNaN(b)?a:b},_getStringParam:function(c){var b=this._queryParameters[c];return b||a},_setParam:function(c,b){if(typeof b===i||b===a)delete this._queryParameters[c];else this._queryParameters[c]=b}};Sys.Data.AdoNetQueryBuilder._queryOptions=[q,p,n,o];Sys.Data.AdoNetQueryBuilder.registerClass("Sys.Data.AdoNetQueryBuilder");Sys.Data._AdoNetUtil=function(){};Sys.Data._AdoNetUtil.concatUris=function(b,a){if(a.indexOf("//")>=0)return a;if(b.endsWith("/"))b=b.substr(0,b.length-1);if(a.startsWith("/"))a=a.substr(1);return b+"/"+a};Sys.Data._AdoNetUtil.extractETag=function(b){return b.__metadata?b.__metadata.etag||a:a};Sys.Data._AdoNetUtil.extractUri=function(b){return b.__metadata?b.__metadata.uri||a:a};Sys.Data._AdoNetUtil.registerClass("Sys.Data._AdoNetUtil");Sys.Data.AdoNetActionResult=function(e,c,b,d){var a=this;a._result=e;a._headers=c||{};a._actionContext=b;a._operation=d};Sys.Data.AdoNetActionResult.prototype={_actionContext:a,_operation:a,_result:a,_headers:a,get_httpHeaders:function(){return this._headers},get_actionContext:function(){return this._actionContext},get_operation:function(){return this._operation},get_result:function(){return this._result}};Sys.Data.AdoNetActionResult.registerClass("Sys.Data.AdoNetActionResult");Sys.Data.AdoNetActionSequence=function(a){this._actionQueue=[];this._dataService=a};Sys.Data.AdoNetActionSequence.prototype={get_serviceProxy:function(){return this._dataService},addInsertAction:function(d,b,c){var a=this._actionQueue;a[a.length]=[0,b,d,c]},addUpdateAction:function(e,d,c){var b=this._actionQueue;b[b.length]=[1,d||a,e,c]},addRemoveAction:function(d,c){var b=this._actionQueue;b[b.length]=[2,a,d,c]},clearActions:function(){this._actionQueue=[]},execute:function(p,q,r){var g=this,m=g._actionQueue,d=new Sys.Data._AdoNetBatchWriter(window.location.host),o=g._dataService;g._actionQueue=[];d.startChangeSet();for(var i=0,s=m.length;i<s;i++){var e=m[i],f=e[1],h=e[2],n=Sys.Data._AdoNetUtil.extractETag(h);switch(e[0]){case 0:e[0]="insert";d.addChange(f,n,j,Sys.Serialization.JavaScriptSerializer.serialize(h),i);break;case 1:e[0]="edit";if(!f)f=Sys.Data._AdoNetUtil.extractUri(h);d.addChange(f,n,o.get_replaceOnUpdate()?"PUT":k,Sys.Serialization.JavaScriptSerializer.serialize(h));break;case 2:e[0]="remove";f=Sys.Data._AdoNetUtil.extractUri(h);d.addChange(f,n,l,a)}}d.endChangeSet();var b=new Sys.Net.WebRequest;b.set_url(Sys.Data._AdoNetUtil.concatUris(o.get_serviceUri(),"$batch"));b.get_headers()[c]="multipart/mixed; boundary="+d.get_topBoundary();b.set_httpVerb(j);b.set_timeout(o.get_timeout());b.set_body(d.get_requestBody());b.set_userContext({q:m,bw:d,c:r,s:p,f:q});b.add_completed(Function.createDelegate(g,g._batchCompleted));b.invoke();return b},_batchCompleted:function(k){var e="actionSequence",j,f,g,l=k.get_webRequest().get_userContext(),u=l.q,s=l.f,r=l.s,p=l.c,y=l.bw,h=this._dataService._checkForError(k,e,b);function w(){var f=g.status?parseFloat(g.status.code):-1;if(f<200||f>300){var j;if(g.headers[c]===d){var i=Sys.Serialization.JavaScriptSerializer.deserialize(g.body);h=Sys.Data.AdoNetActionSequence._getError(b,f,a,i,e)}else h=Sys.Data.AdoNetActionSequence._getError(b,f,String.format(Sys.Data.AdoNetRes.operationFailed,e))}}function n(){if(s)s(h,p,e)}if(h){n();return}f=Sys.Data._AdoNetBatchReader._parseResponse(k);if(f.length!==1){h=Sys.Data.AdoNetActionSequence._getError(b,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,k.get_webRequest().get_url()));n();return}f=f[0];if(f.length===1){g=f[0];w();if(h){n();return}}if(f.length!==u.length){h=Sys.Data.AdoNetActionSequence._getError(b,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,k.get_webRequest().get_url()));n();return}if(r){var v=f.length,t=new Array(v);for(var m=0;m<v;m++){g=f[m],body=g.body;j=a;if(body){j=Sys.Serialization.JavaScriptSerializer.deserialize(body);if(j&&j.d)j=j.d}var q=u[m],o=q[3],x=q[0];if(typeof o===i)o=a;t[m]=new Sys.Data.AdoNetActionResult(j,g.headers,o,x)}r(t,p,e)}}};Sys.Data.AdoNetActionSequence.registerClass("Sys.Data.AdoNetActionSequence");Sys.Data.AdoNetActionSequence._getError=function(h,l,i,d,g){var c,f=d?d.error:a;if(!f)c=new Sys.Net.WebServiceError(h,String.format(i||Sys.Data.AdoNetRes.operationFailed,g));else{var b=f.message,e=f.innererror,j,k;b=b&&b.value?b.value:a;if(e){k=e.type;j=e.stacktrace}c=new Sys.Net.WebServiceError(h,String.format(i||b||Sys.Data.AdoNetRes.operationFailed,g),j||a,k||a,d)}c._statusCode=l;return c};Sys.Data.AdoNetInvokeParametersBuilder=function(){this._queryBuilder=new Sys.Data.AdoNetQueryBuilder("");this._parameters=this._queryBuilder.get_queryParameters()};Sys.Data.AdoNetInvokeParametersBuilder.prototype={_parameters:a,_queryBuilder:a,get_parameters:function(){return this._parameters},addBoolean:function(b,a){this._parameters[b]=a.toString()},addDate:function(d,a,b){var c=b?a.format("yyyy-MM-ddTHH:mm:ss.fffffffzzz"):a.format("yyyy-MM-ddTHH:mm:ss.fffffff");this._parameters[d]="datetime'"+c+"'"},addDecimal:function(b,a){this._parameters[b]=a.toString()+"M"},addDouble:function(b,a){this._parameters[b]=a.toString()},addGuid:function(b,a){this._parameters[b]="guid'"+a+"'"},addInteger:function(b,a){this._parameters[b]=a.toString()},addString:function(b,a){this._parameters[b]="'"+a.replace(new RegExp("'","g"),"''")+"'"},toString:function(){return this._queryBuilder.toString()}};Sys.Data.AdoNetInvokeParametersBuilder.registerClass("Sys.Data.AdoNetInvokeParametersBuilder");Sys.Data.AdoNetServiceProxy=function(a){this._serviceUri=a;Sys.Data.AdoNetServiceProxy.initializeBase(this)};Sys.Data.AdoNetServiceProxy.prototype={_replaceOnUpdate:b,_serviceUri:a,_usePostTunneling:g,get_path:function(){return this.get_serviceUri()},get_replaceOnUpdate:function(){return this._replaceOnUpdate},set_replaceOnUpdate:function(a){this._replaceOnUpdate=a},get_serviceUri:function(){return this._serviceUri},createActionSequence:function(){return new Sys.Data.AdoNetActionSequence(this)},insert:function(g,d,b,c,e,f){var a=this._prepareWebRequest(g,d,j,b,c,e,"insert",f);a.invoke();return a},invoke:function(d,b,j,f,g,i,k){var c=new Sys.Data.AdoNetQueryBuilder(d);c._queryParameters=s(a,c._queryParameters,j);b=b||h;var e=this._prepareWebRequest(a,c.toString(),b,f,g,i,d,k);e.invoke();return e},fetchData:function(e,b,m,n,j,k,h,l){var c=this,g,d=a;if(typeof h!==i){d=c.get_timeout();c.set_timeout(h)}if(b)for(var f in b)if(b.hasOwnProperty(f))e+=(e.indexOf("?")<0?"?":"&")+encodeURIComponent(f)+"="+encodeURIComponent(b[f]);g=c.query(e,j,k,l);if(d!==a)c.set_timeout(d);return g},fetchDeferredProperty:function(b,c,f,i,j,k){var g=Function.createDelegate(this,function(g,e,d){b[c]=g;var a=f||this.get_defaultSucceededCallback();if(a)a(b,e,d)}),d;if(b[c]&&b[c].__deferred&&b[c].__deferred.uri)d=b[c].__deferred.uri;else if(b.__metadata&&b.__metadata.uri)d=b.__metadata.uri+"/"+c;var e=this._prepareWebRequest(a,d,h,g,i,j,c,k);e.invoke();return e},query:function(c,d,e,f,g){var b=this._prepareWebRequest(a,c,h,d,e,f,c,g);b.invoke();return b},update:function(g,c,d,e,f){var h=this._replaceOnUpdate?"PUT":k,b=this._prepareWebRequest(g,a,h,c,d,e,"update",f);b.invoke();return b},remove:function(h,d,e,f,g){var b=this._prepareWebRequest(h,a,l,d,e,f,"remove",g);b.set_body(a);delete b.get_headers()[c];b.invoke();return b},_checkForError:function(g,n,p){var h=this,e,k=a,l=b,f=0;if(!g.get_responseAvailable()){l=g.get_timedOut();e=l?Sys.Data.AdoNetRes.operationTimedOut:String.format(Sys.Data.AdoNetRes.operationFailed,n)}else{f=g.get_statusCode();if(f===1223||f===0)f=204;if(p){var m=g.getResponseHeader(r);if(!m.startsWith("1.0;")&&f!==204)e=m.length>0?String.format(Sys.Data.AdoNetRes.serviceVersionTooHigh,h.get_serviceUri()):String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}if(!e&&(f<200||f>=300)){var i=g.getResponseHeader(c);if(i.startsWith(d))k=g.get_object();else if(i.startsWith("application/xml")||i.startsWith("text/xml")){var q=g.get_xml(),j=q.documentElement.getElementsByTagName("message");if(j&&j.length){var o=j[0];if(o.childNodes.length)e=o.childNodes[0].nodeValue}if(!e)e=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}else e=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}}if(e||k)return Sys.Data.AdoNetActionSequence._getError(l,f,e,k,n);return a},_onResponseComplete:function(f,j,i,h,e){var k=this._checkForError(f,e,g);if(k){if(i)i(k,h,e)}else if(j){var l=f.getResponseHeader(c),b=a;if(l.startsWith(d)){b=f.get_object();b=b.d||b}j(b,h,e)}},_prepareWebRequest:function(m,t,q,o,n,h,u,b){var e=this;b=b||new Sys.Net.WebRequest;b.set_url(Sys.Data._AdoNetUtil.concatUris(e._serviceUri,t||""));b.set_timeout(e.get_timeout());var f=b.get_headers();f["Accept"]=d;f[r]="1.0;AspNetAjax";f["MaxDataServiceVersion"]="1.0;";b.set_httpVerb(q);if(e._usePostTunneling){var g=q.toUpperCase();if(g==="PUT"||g===l||g===k){b.set_httpVerb(j);f["X-HTTP-Method"]=g}}if(m){b.set_body(Sys.Serialization.JavaScriptSerializer.serialize(m));f[c]=d;var p=Sys.Data._AdoNetUtil.extractETag(m);if(p)f["If-Match"]=p;var s=Sys.Data._AdoNetUtil.extractUri(m);if(s)b.set_url(s)}o=o||e.get_defaultSucceededCallback();n=n||e.get_defaultFailedCallback();if(typeof h===i||h===a)h=e.get_defaultUserContext();b.add_completed(Function.createDelegate(e,function(a){this._onResponseComplete(a,o,n,h,u)}));return b}};Sys.Data.AdoNetServiceProxy.registerClass("Sys.Data.AdoNetServiceProxy",Sys.Net.WebServiceProxy,Sys.Data.IDataProvider);Sys.Data._AdoNetBatchReader=function(b,c){var a=this;a._responseBody=b;a._boundary=[c];a._position=0;a._responses=[];a._parseParts(a._responses)};Sys.Data._AdoNetBatchReader.prototype={get_responses:function(){return this._responses},_parseParts:function(h){var b=this;if(b._readToMark(e+b._currentBoundary(),g)===a)return;b._readLine();var i=a;while(i!==e&&!b._eof()){var f=[];b._parseHeaders(f);var d=f[c];if(d.indexOf("multipart/mixed")===0){var j=[];b._boundary.push(Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(d));b._parseParts(j);b._boundary.pop();h.push(j);var k=b._readToMark(e+b._currentBoundary(),g)}else if(d.indexOf("application/http")===0)h.push(b._parseHttpResponse());i=b._peek(2);b._readLine()}},_parseHttpResponse:function(){var a=this,h=a._readLine(),d=a._parseStatus(h),c=[];a._parseHeaders(c);var b=a._readToMark(e+a._currentBoundary(),g);if(b===f)b="";return {status:d,headers:c,body:b}},_parseHeaders:function(c){for(var a=this._readLine();a;a=this._readLine()){var b=this._parseHeader(a);c[b.name]=b.value}},_parseHeader:function(b){if(b===a)return a;var c=b.indexOf(":");return c===-1?a:{name:b.substring(0,c).trim(),value:b.substring(c+1).trim()}},_parseStatus:function(c){var b=Sys.Data._AdoNetBatchReader._statusRegExp.exec(c);return b?{code:b[1],text:b[2]}:a},_currentBoundary:function(){return this._boundary[this._boundary.length-1]},_eof:function(){return this._position===-1},_readLine:function(){return this._readToMark(f,b)},_readToMark:function(e,f){var b=this;if(b._eof())return a;var c,d=b._responseBody.indexOf(e,b._position);if(d<0)if(f)c=a;else{c=b._responseBody.substring(b._position);b._position=-1}else{c=b._responseBody.substring(b._position,d);b._position=d+e.length}return c},_peek:function(b){var a=this;if(a._eof())return "";return a._responseBody.substring(a._position,a._position+b)}};Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader=function(c){var d=/;\s*boundary=(.*)$/i,b=d.exec(c);return b?b[1]:a};Sys.Data._AdoNetBatchReader._parseResponse=function(a){var b=new Sys.Data._AdoNetBatchReader(a.get_responseData(),Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(a.getResponseHeader(c)));return b.get_responses()};Sys.Data._AdoNetBatchReader._statusRegExp=new RegExp("^HTTP\\/1\\.[01] (\\d{3}) (.*)$","i");Sys.Data._AdoNetBatchReader.registerClass("Sys.Data._AdoNetBatchReader");Sys.Data._AdoNetBatchWriter=function(c){var b=this;b._host=c;b._content="";b._boundary=a;b._changesetBoundary=a;b._changesetEntries=a;b._contentType=d};Sys.Data._AdoNetBatchWriter.prototype={get_contentType:function(){return this._contentType},set_contentType:function(a){this._contentType=a},get_requestBody:function(){return this._content+e+this.get_topBoundary()+e},get_topBoundary:function(){var a=this;if(!a._boundary)a._boundary="batch_"+a._createBoundary();return a._boundary},addChange:function(b,e,c,d,a){this._changesetEntries.push({uri:b,eTag:e,method:c,body:d,contentId:a})},addQuery:function(b){this._content+=this._startPart(this.get_topBoundary(),h,b,a)+f},endChangeSet:function(){var b=this,c="";for(var e in b._changesetEntries){var d=b._changesetEntries[e];c+=b._startPart(b._changesetBoundary,d.method,d.uri,d.eTag,d.contentId);if(d.body)c+="Content-Type: "+b._contentType+";charset=utf-8\r\n";c+=f;if(d.body)c+=d.body}if(c)c+=m+b._changesetBoundary+"--\r\n";b._content+=m+b.get_topBoundary()+"\r\nContent-Type: multipart/mixed;boundary="+b._changesetBoundary+"\r\n\r\n"+c;b._changesetBoundary=a;b._changesetEntries=a},startChangeSet:function(){this._changesetBoundary="changeset_"+this._createBoundary();this._changesetEntries=[]},_createBoundary:function(){function a(){return Math.floor((1+Math.random())*65536).toString(16).substr(1)}return a()+"-"+a()+"-"+a()},_startPart:function(d,e,g,c,b){var a=m+d+"\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\n\r\n"+e+" "+g+" HTTP/1.1\r\n";if(typeof b==="number")a+="Content-ID: "+b+f;if(c)a+="If-Match: "+c+f;a+="Host: "+this._host+"\r\nAccept: "+this.get_contentType()+"\r\nAccept-Charset: utf-8\r\n";return a}};Sys.Data._AdoNetBatchWriter.registerClass("Sys.Data._AdoNetBatchWriter")}if(window.Sys&&Sys.loader)Sys.loader.registerScript("AdoNet",a,b);else b()})();
Type.registerNamespace('Sys.Data');Sys.Data.AdoNetRes={'uriNotAdoNetService':'The URI \'{0}\' does not point to an ADO.NET Data Service.','invalidBatchResponse':'The batch operation failed due to an invalid response from \'{0}\'.','operationTimedOut':'The data operation \'{0}\' timed out.','operationFailed':'The data operation \'{0}\' failed.','serviceVersionTooHigh':'The URI \'{0}\' points to an ADO.NET Data Service of a higher version than is supported by this library.'};

