/* Sourced from WebsiteUI revision: 364 (revision dated: 2011/12/05 13:42:42) */
var WebUI={};WebUI.Core={dayNames:["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],dayNamesShort:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};(function(a){WebUI.Core.Array={indexOf:function b(F,G){var E,D;a.Debug.expectType(["Array"],"array",G,false);a.Debug.checkTypes();for(E=0,D=G.length;E<D;E++){if(G[E]===F){return E}}return -1},toLowerCase:function s(D){a.Debug.expectType(["StringArray"],"array",D,false);a.Debug.checkTypes();return D.join(",").toLowerCase().split(",")}};WebUI.Core.Cookie={getValue:function e(E){var F,D;a.Debug.expectType(["String"],"name",E,false);a.Debug.checkTypes();F=new RegExp("(?:^|;)\\s?"+E+"=([^;]*)(?:;|$)");D=document.cookie.match(F);return(D)?unescape(RegExp.$1):D},remove:function B(E){var D;a.Debug.expectType(["String"],"name",E,false);a.Debug.checkTypes();D=new Date();D.setTime(D.getTime()-1);document.cookie=E+"=; expires="+D.toUTCString()+";"},set:function m(F,H,E){var G,D;a.Debug.expectType(["String"],"name",F,false);a.Debug.expectType(["String"],"value",H,false);a.Debug.checkTypes();G=F+"="+escape(H)+";";if(E){a.Debug.expectType(["Date","PositiveInteger"],"options.expires",E.expires,true);a.Debug.expectType(["String"],"options.path",E.path,true);a.Debug.expectType(["String"],"options.domain",E.domain,true);a.Debug.checkTypes();if(a.Type.isDate(E.expires)){G+="expires="+E.expires.toUTCString()+";"}else{if(a.Type.isPositiveNumber(E.expires)){D=new Date();D.setTime(D.getTime()+(E.expires*86400000));G+="expires="+D.toUTCString()+";"}}if(E.path){G+="path="+escape(E.path)+";"}if(E.domain){G+="domain="+escape(E.domain)+";"}}document.cookie=G}};WebUI.Core.Date={getDaysInMonth:function f(D){a.Debug.expectType(["Date"],"date",D,false);a.Debug.checkTypes();return 32-new Date(D.getFullYear(),D.getMonth(),32).getDate()},fromStringViaPattern:function C(K,L){var F,I,M,J,O,H,N,D=new Error("pattern ("+K+") is not representative of str ("+L+")."),P=new Error("could not identify day, month and year in str ("+L+") via pattern ("+K+")."),G=new Error("an invalid date was determined from str ("+L+") via pattern ("+K+")."),E;a.Debug.expectType(["String"],"pattern",K,false);a.Debug.expectType(["String"],"str",L,false);a.Debug.checkTypes();K=K.replace(/([\W])+/g," ");L=L.replace(/([\W])+/g," ");F=K.split(" ");I=L.split(" ");if(F.length!==I.length){throw D}H=F.length;while(H--){switch(F[H]){case"YYYY":case"YY":case"MM":case"M":case"DD":case"D":if(I[H].length!==F[H].length||!a.String.isInteger(I[H])){throw D}break}switch(F[H]){case"YYYY":M=I[H];break;case"YY":M="20"+I[H];break;case"MMMM":N=a.Array.indexOf(I[H],a.monthNames);if(N!==-1){J=(N+1).toString()}else{throw D}break;case"MMM":N=a.Array.indexOf(I[H],a.monthNamesShort);if(N!==-1){J=(N+1).toString()}else{throw D}break;case"MM":case"M":J=I[H];break;case"DD":case"D":O=I[H];break}}if(!(M&&J&&O)){throw P}E=new Date(J+"/"+O+"/"+M);if(E.getDate()!==parseInt(O,10)||(E.getMonth()+1)!==parseInt(J,10)||E.getFullYear()!==parseInt(M,10)){throw G}return E},toStringViaPattern:function v(Q,H){var S,J,E,K,G,L,P,R,O,N,F,I;a.Debug.expectType(["String"],"pattern",Q,false);a.Debug.expectType(["Date"],"date",H,false);a.Debug.checkTypes();S=H.getMonth();J=H.getDay();J=(J)?J-1:6;E=H.getDate().toString();K=a.String.zeroPad(2,E);G=a.dayNamesShort[J];L=a.dayNames[J];P=(S+1).toString();R=a.String.zeroPad(2,P);O=a.monthNamesShort[S];N=a.monthNames[S];I=H.getFullYear().toString();F=I.slice(-2);Q=Q.replace(/\bYYYY\b/g,I);Q=Q.replace(/\bYY\b/g,F);Q=Q.replace(/\bMMMM\b/g,N);Q=Q.replace(/\bMMM\b/g,O);Q=Q.replace(/\bMM\b/g,R);Q=Q.replace(/\bM\b/g,P);Q=Q.replace(/\bDDDD\b/g,L);Q=Q.replace(/\bDDD\b/g,G);Q=Q.replace(/\bDD\b/g,K);Q=Q.replace(/\bD\b/g,E);return Q}};WebUI.Core.Debug={expectedTypes:[],checkTypes:function z(){var G=a.Debug.expectedTypes,F=G.length,E,I,H,D;G.reverse();while(F--){E=G[F].types;I=G[F].obj;H=G[F].objName;D=G[F].optional;if(!a.Type.is(E,I,D)){a.Debug.clearExpectations();throw new TypeError(H+" is not of type: "+E.toString())}}a.Debug.clearExpectations()},clearExpectations:function c(){a.Debug.expectedTypes.splice(0,a.Debug.expectedTypes.length)},expectType:function n(E,F,G,D){a.Debug.expectedTypes.push({types:E,objName:F,obj:G,optional:D})}};WebUI.Core.Misc={loopBestRoute:function l(H,F,I){var E,D,G=true;a.Debug.expectType(["PositiveInteger"],"fromItem",H,false);a.Debug.expectType(["PositiveInteger"],"toItem",F,false);a.Debug.expectType(["PositiveInteger"],"itemTotal",I,false);a.Debug.checkTypes();if(H>I){throw new RangeError("fromItem ("+H+") is greater than itemTotal.")}if(F>I){throw new RangeError("toItem ("+F+") is greater than itemTotal.")}E={};D=F-H;if(D!==0){if(Math.abs(D)>I/2){if(D<0){D=I+D}else{G=false;D=I-D}}else{if(D<0){G=false;D=Math.abs(D)}}}E.forwards=G;E.moves=D;return E}};WebUI.Core.Number={randomIntInRange:function(E,D){a.Debug.expectType(["Integer"],"min",E,false);a.Debug.expectType(["Integer"],"max",D,false);a.Debug.checkTypes();if(E>D){throw new RangeError("min ("+E+") is greater than max ("+D+").")}return Math.floor(Math.random()*(D-E+1)+E)},surroundingIntRange:function w(E,I,G){var F,H,D;a.Debug.expectType(["Integer"],"seed",E,false);a.Debug.expectType(["PositiveInteger"],"size",I,false);a.Debug.checkTypes();F={};F.start=((I%2)===0)?E-((I/2)-1):E-((I-1)/2);F.end=F.start+I-1;if(G){a.Debug.expectType(["Integer"],"options.min",G.min,true);a.Debug.expectType(["Integer"],"options.max",G.max,true);a.Debug.expectType(["Boolean"],"options.offset",G.offset,true);a.Debug.checkTypes();if(typeof G.min!=="undefined"){H=G.min}if(typeof G.max!=="undefined"){D=G.max}if(H&&D&&H>D){throw new RangeError("options.min ("+G.min+") is greater than options.max ("+G.max+").")}if(G.offset){if(H&&H>F.start){F.start=H;F.end=H+I-1}if(D&&D<F.end){F.start=D-I+1;F.end=D}}if(H&&H>F.start){F.start=H}if(D&&D<F.end){F.end=D}}return F}};WebUI.Core.String={isArray:function j(D){a.Debug.expectType(["String"],"str",D,false);a.Debug.checkTypes();return(/^\[.*\]$/).test(D)},isEmail:function u(D){a.Debug.expectType(["String"],"str",D,false);a.Debug.checkTypes();return(/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,6}$/).test(D)},isInteger:function t(D){a.Debug.expectType(["String"],"str",D,false);a.Debug.checkTypes();return(/^-?\d+$/).test(D)},repeat:function i(D,E){var F=[];a.Debug.expectType(["PositiveInteger"],"repeats",D,false);a.Debug.expectType(["String"],"str",E,false);a.Debug.checkTypes();F.length=D+1;return F.join(E)},zeroPad:function k(D,E){a.Debug.expectType(["PositiveInteger"],"chars",D,false);a.Debug.expectType(["String"],"str",E,false);a.Debug.checkTypes();if(E.length>D){return E}E=a.String.repeat(D,"0")+E;return E.slice(-1*D)}};WebUI.Core.Type={is:function g(F,H,D){var G=false,E;if(D&&typeof H==="undefined"){return true}E=F.length;while(E--){switch(F[E]){case"Boolean":case"Function":case"Number":case"String":case"Undefined":G=(typeof H===F[E].toLowerCase());break;case"Array":case"Date":case"Integer":case"NonNegativeInteger":case"PositiveInteger":case"PositiveNumber":G=a.Type["is"+F[E]](H);break;case"BooleanArray":case"IntegerArray":case"NumberArray":case"StringArray":G=a.Type.isArrayOfType(F[E].slice(0,F[E].length-5),H);break;case"Null":G=(H===null);break;default:G=undefined;break}if(G){return true}else{if(G===undefined){throw new RangeError("type ("+F[E]+") is not supported.")}}}return G},isArray:function j(D){if(typeof D!=="object"||D===null){return false}return D.constructor.toString().indexOf("Array")!==-1},isArrayOfType:function r(E,F){var D;if(typeof E!=="string"){throw new TypeError("type is not of type: String.")}if(!(E==="Boolean"||E==="Integer"||E==="Number"||E==="String")){throw new RangeError("type ("+E+") is not supported.")}if(!a.Type.isArray(F)){return false}D=F.length;if(!D){return false}if(E==="Integer"){while(D--){if(!a.Type.isInteger(F[D])){return false}}return true}else{while(D--){if(typeof(F[D])!==E.toLowerCase()){return false}}return true}},isDate:function y(D){if(typeof D!=="object"||D===null){return false}return D.constructor.toString().indexOf("Date")!==-1},isInteger:function t(D){return parseInt(D,10)===D},isNonNegativeInteger:function q(D){return Math.abs(parseInt(D,10))===D},isPositiveInteger:function x(D){return parseInt(D,10)===D&&D>0},isPositiveNumber:function A(D){return typeof D==="number"&&D>0}};WebUI.Core.Url={getCurrent:function h(){return window.location.href},getHash:function o(E){a.Debug.expectType(["String"],"url",E,false);a.Debug.checkTypes();var D=E.match(/#[^$]*/);return(D)?D[0]:""},getQuery:function p(E){a.Debug.expectType(["String"],"url",E,false);a.Debug.checkTypes();var D=E.match(/\?[^#$]*/);return(D)?D[0]:""},getValue:function e(F,E){var G,D;a.Debug.expectType(["String"],"key",F,false);a.Debug.expectType(["String"],"url",E,false);a.Debug.checkTypes();G=new RegExp("[?&]"+F+"=([^&#$]*)","i");D=E.match(G);return(D)?unescape(RegExp.$1):D},setValue:function d(G,J,E){var I,F,H,D;a.Debug.expectType(["String"],"key",G,false);a.Debug.expectType(["String"],"value",J,false);a.Debug.expectType(["String"],"url",E,false);a.Debug.checkTypes();I=a.Url.getQuery(E);J=escape(J);if(I.length===0){F=E.indexOf("#");E=(F===-1)?E+="?"+G+"="+J:E.slice(0,F)+"?"+G+"="+J+E.slice(F)}else{H=new RegExp("([?&])"+G+"=[^&#$]*","i");D=E.match(H);E=(D)?E=E.replace(H,RegExp.$1+G+"="+J):E=E.replace(I,I+"&"+G+"="+J)}return E}}}(WebUI.Core));(function(b){WebUI.Utils={fixHashAnchors:function a(){var d=window.location.hash,c,e;if(d!==""){c=b(d);if(c.length===0){d=d.substring(1);c=b('A[name="'+d+'"]')}e=c.eq(0).offset();b(window).scrollTop(e.top)}}}}(jQuery));(function(a,b){WebUI.Utils.trackDocsInGA=function(g){var k=a("A"),f,e,h,j={asynch:true,extensions:["pdf","ppt","doc","docx","xls"]};if(g){b.expectType(["Boolean"],"options.asynch",g.asynch,true);b.expectType(["StringArray"],"options.extensions",g.extensions,true);b.checkTypes()}g=a.extend(j,g);function c(i){return function(){_gaq.push(["_trackPageview",i])}}function d(i){return function(){pageTracker._trackPageview(i)}}k.each(function(){f=a(this);e=f.attr("href");if(typeof e!=="undefined"){e=e.toLowerCase();h=g.extensions.length;while(h--){if(e.indexOf("."+g.extensions[h].toLowerCase())!==-1){if(g.asynch){f.click(c(e))}else{f.click(d(e))}return}}}})}}(jQuery,WebUI.Core.Debug));
