/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,A=l.jQuery,r=l.$,p=l.jQuery=l.$=function(G,H){return new p.fn.init(G,H)},F=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;p.fn=p.prototype={init:function(G,J){G=G||document;if(G.nodeType){this[0]=G;this.length=1;this.context=G;return this}if(typeof G==="string"){var I=F.exec(G);if(I&&(I[1]||!J)){if(I[1]){G=p.clean([I[1]],J)}else{var K=document.getElementById(I[3]);if(K&&K.id!=I[3]){return p().find(G)}var H=p(K||[]);H.context=document;H.selector=G;return H}}else{return p(J).find(G)}}else{if(p.isFunction(G)){return p(document).ready(G)}}if(G.selector&&G.context){this.selector=G.selector;this.context=G.context}return this.setArray(p.isArray(G)?G:p.makeArray(G))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(G){return G===g?Array.prototype.slice.call(this):this[G]},pushStack:function(H,J,G){var I=p(H);I.prevObject=this;I.context=this.context;if(J==="find"){I.selector=this.selector+(this.selector?" ":"")+G}else{if(J){I.selector=this.selector+"."+J+"("+G+")"}}return I},setArray:function(G){this.length=0;Array.prototype.push.apply(this,G);return this},each:function(H,G){return p.each(this,H,G)},index:function(G){return p.inArray(G&&G.jquery?G[0]:G,this)},attr:function(H,J,I){var G=H;if(typeof H==="string"){if(J===g){return this[0]&&p[I||"attr"](this[0],H)}else{G={};G[H]=J}}return this.each(function(K){for(H in G){p.attr(I?this.style:this,H,p.prop(this,G[H],I,K,H))}})},css:function(G,H){if((G=="width"||G=="height")&&parseFloat(H)<0){H=g}return this.attr(G,H,"curCSS")},text:function(H){if(typeof H!=="object"&&H!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(H))}var G="";p.each(H||this,function(){p.each(this.childNodes,function(){if(this.nodeType!=8){G+=this.nodeType!=1?this.nodeValue:p.fn.text([this])}})});return G},wrapAll:function(G){if(this[0]){var H=p(G,this[0].ownerDocument).clone();if(this[0].parentNode){H.insertBefore(this[0])}H.map(function(){var I=this;while(I.firstChild){I=I.firstChild}return I}).append(this)}return this},wrapInner:function(G){return this.each(function(){p(this).contents().wrapAll(G)})},wrap:function(G){return this.each(function(){p(this).wrapAll(G)})},append:function(){return this.domManip(arguments,true,function(G){if(this.nodeType==1){this.appendChild(G)}})},prepend:function(){return this.domManip(arguments,true,function(G){if(this.nodeType==1){this.insertBefore(G,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(G){this.parentNode.insertBefore(G,this)})},after:function(){return this.domManip(arguments,false,function(G){this.parentNode.insertBefore(G,this.nextSibling)})},end:function(){return this.prevObject||p([])},push:[].push,sort:[].sort,splice:[].splice,find:function(G){if(this.length===1){var H=this.pushStack([],"find",G);H.length=0;p.find(G,this[0],H);return H}else{return this.pushStack(p.unique(p.map(this,function(I){return p.find(G,I)})),"find",G)}},clone:function(I){var G=this.map(function(){if(!p.support.noCloneEvent&&!p.isXMLDoc(this)){var K=this.outerHTML;if(!K){var L=this.ownerDocument.createElement("div");L.appendChild(this.cloneNode(true));K=L.innerHTML}return p.clean([K.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(I===true){var J=this.find("*").andSelf(),H=0;G.find("*").andSelf().each(function(){if(this.nodeName!==J[H].nodeName){return}var K=p.data(J[H],"events");for(var M in K){for(var L in K[M]){p.event.add(this,M,K[M][L],K[M][L].data)}}H++})}return G},filter:function(G){return this.pushStack(p.isFunction(G)&&p.grep(this,function(I,H){return G.call(I,H)})||p.multiFilter(G,p.grep(this,function(H){return H.nodeType===1})),"filter",G)},closest:function(G){var I=p.expr.match.POS.test(G)?p(G):null,H=0;return this.map(function(){var J=this;while(J&&J.ownerDocument){if(I?I.index(J)>-1:p(J).is(G)){p.data(J,"closest",H);return J}J=J.parentNode;H++}})},not:function(G){if(typeof G==="string"){if(f.test(G)){return this.pushStack(p.multiFilter(G,this,true),"not",G)}else{G=p.multiFilter(G,this)}}var H=G.length&&G[G.length-1]!==g&&!G.nodeType;return this.filter(function(){return H?p.inArray(this,G)<0:this!=G})},add:function(G){return this.pushStack(p.unique(p.merge(this.get(),typeof G==="string"?p(G):p.makeArray(G))))},is:function(G){return !!G&&p.multiFilter(G,this).length>0},hasClass:function(G){return !!G&&this.is("."+G)},val:function(M){if(M===g){var G=this[0];if(G){if(p.nodeName(G,"option")){return(G.attributes.value||{}).specified?G.value:G.text}if(p.nodeName(G,"select")){var K=G.selectedIndex,N=[],O=G.options,J=G.type=="select-one";if(K<0){return null}for(var H=J?K:0,L=J?K+1:O.length;H<L;H++){var I=O[H];if(I.selected){M=p(I).val();if(J){return M}N.push(M)}}return N}return(G.value||"").replace(/\r/g,"")}return g}if(typeof M==="number"){M+=""}return this.each(function(){if(this.nodeType!=1){return}if(p.isArray(M)&&/radio|checkbox/.test(this.type)){this.checked=(p.inArray(this.value,M)>=0||p.inArray(this.name,M)>=0)}else{if(p.nodeName(this,"select")){var P=p.makeArray(M);p("option",this).each(function(){this.selected=(p.inArray(this.value,P)>=0||p.inArray(this.text,P)>=0)});if(!P.length){this.selectedIndex=-1}}else{this.value=M}}})},html:function(G){return G===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(G)},replaceWith:function(G){return this.after(G).remove()},eq:function(G){return this.slice(G,+G+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(G){return this.pushStack(p.map(this,function(I,H){return G.call(I,H,I)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(L,O,N){if(this[0]){var K=(this[0].ownerDocument||this[0]).createDocumentFragment(),H=p.clean(L,(this[0].ownerDocument||this[0]),K),J=K.firstChild;if(J){for(var I=0,G=this.length;I<G;I++){N.call(M(this[I],J),this.length>1||I>0?K.cloneNode(true):K)}}if(H){p.each(H,C)}}return this;function M(P,Q){return O&&p.nodeName(P,"table")&&p.nodeName(Q,"tr")?(P.getElementsByTagName("tbody")[0]||P.appendChild(P.ownerDocument.createElement("tbody"))):P}}};p.fn.init.prototype=p.fn;function C(G,H){if(H.src){p.ajax({url:H.src,async:false,dataType:"script"})}else{p.globalEval(H.text||H.textContent||H.innerHTML||"")}if(H.parentNode){H.parentNode.removeChild(H)}}function e(){return +new Date}p.extend=p.fn.extend=function(){var L=arguments[0]||{},J=1,K=arguments.length,G=false,I;if(typeof L==="boolean"){G=L;L=arguments[1]||{};J=2}if(typeof L!=="object"&&!p.isFunction(L)){L={}}if(K==J){L=this;--J}for(;J<K;J++){if((I=arguments[J])!=null){for(var H in I){var M=L[H],N=I[H];if(L===N){continue}if(G&&N&&typeof N==="object"&&!N.nodeType){L[H]=p.extend(G,M||(N.length!=null?[]:{}),N)}else{if(N!==g){L[H]=N}}}}}return L};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,s=document.defaultView||{},u=Object.prototype.toString;p.extend({noConflict:function(G){l.$=r;if(G){l.jQuery=A}return p},isFunction:function(G){return u.call(G)==="[object Function]"},isArray:function(G){return u.call(G)==="[object Array]"},isXMLDoc:function(G){return G.nodeType===9&&G.documentElement.nodeName!=="HTML"||!!G.ownerDocument&&p.isXMLDoc(G.ownerDocument)},globalEval:function(I){if(I&&/\S/.test(I)){var H=document.getElementsByTagName("head")[0]||document.documentElement,G=document.createElement("script");G.type="text/javascript";if(p.support.scriptEval){G.appendChild(document.createTextNode(I))}else{G.text=I}H.insertBefore(G,H.firstChild);H.removeChild(G)}},nodeName:function(H,G){return H.nodeName&&H.nodeName.toUpperCase()==G.toUpperCase()},each:function(I,M,H){var G,J=0,K=I.length;if(H){if(K===g){for(G in I){if(M.apply(I[G],H)===false){break}}}else{for(;J<K;){if(M.apply(I[J++],H)===false){break}}}}else{if(K===g){for(G in I){if(M.call(I[G],G,I[G])===false){break}}}else{for(var L=I[0];J<K&&M.call(L,J,L)!==false;L=I[++J]){}}}return I},prop:function(J,K,I,H,G){if(p.isFunction(K)){K=K.call(J,H)}return typeof K==="number"&&I=="curCSS"&&!b.test(G)?K+"px":K},className:{add:function(G,H){p.each((H||"").split(/\s+/),function(I,J){if(G.nodeType==1&&!p.className.has(G.className,J)){G.className+=(G.className?" ":"")+J}})},remove:function(G,H){if(G.nodeType==1){G.className=H!==g?p.grep(G.className.split(/\s+/),function(I){return !p.className.has(H,I)}).join(" "):""}},has:function(H,G){return H&&p.inArray(G,(H.className||H).toString().split(/\s+/))>-1}},swap:function(J,I,K){var G={};for(var H in I){G[H]=J.style[H];J.style[H]=I[H]}K.call(J);for(var H in I){J.style[H]=G[H]}},css:function(J,H,L,G){if(H=="width"||H=="height"){var N,I={position:"absolute",visibility:"hidden",display:"block"},M=H=="width"?["Left","Right"]:["Top","Bottom"];function K(){N=H=="width"?J.offsetWidth:J.offsetHeight;if(G==="border"){return}p.each(M,function(){if(!G){N-=parseFloat(p.curCSS(J,"padding"+this,true))||0}if(G==="margin"){N+=parseFloat(p.curCSS(J,"margin"+this,true))||0}else{N-=parseFloat(p.curCSS(J,"border"+this+"Width",true))||0}})}if(J.offsetWidth!==0){K()}else{p.swap(J,I,K)}return Math.max(0,Math.round(N))}return p.curCSS(J,H,L)},curCSS:function(K,H,I){var N,G=K.style;if(H=="opacity"&&!p.support.opacity){N=p.attr(G,"opacity");return N==""?"1":N}if(H.match(/float/i)){H=y}if(!I&&G&&G[H]){N=G[H]}else{if(s.getComputedStyle){if(H.match(/float/i)){H="float"}H=H.replace(/([A-Z])/g,"-$1").toLowerCase();var O=s.getComputedStyle(K,null);if(O){N=O.getPropertyValue(H)}if(H=="opacity"&&N==""){N="1"}}else{if(K.currentStyle){var L=H.replace(/\-(\w)/g,function(P,Q){return Q.toUpperCase()});N=K.currentStyle[H]||K.currentStyle[L];if(!/^\d+(px)?$/i.test(N)&&/^\d/.test(N)){var J=G.left,M=K.runtimeStyle.left;K.runtimeStyle.left=K.currentStyle.left;G.left=N||0;N=G.pixelLeft+"px";G.left=J;K.runtimeStyle.left=M}}}}return N},clean:function(H,M,K){M=M||document;if(typeof M.createElement==="undefined"){M=M.ownerDocument||M[0]&&M[0].ownerDocument||document}if(!K&&H.length===1&&typeof H[0]==="string"){var J=/^<(\w+)\s*\/?>$/.exec(H[0]);if(J){return[M.createElement(J[1])]}}var I=[],G=[],N=M.createElement("div");p.each(H,function(R,U){if(typeof U==="number"){U+=""}if(!U){return}if(typeof U==="string"){U=U.replace(/(<(\w+)[^>]*?)\/>/g,function(W,X,V){return V.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?W:X+"></"+V+">"});var Q=U.replace(/^\s+/,"").substring(0,10).toLowerCase();var S=!Q.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!Q.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||Q.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!Q.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!Q.indexOf("<td")||!Q.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!Q.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!p.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];N.innerHTML=S[1]+U+S[2];while(S[0]--){N=N.lastChild}if(!p.support.tbody){var T=/<tbody/i.test(U),P=!Q.indexOf("<table")&&!T?N.firstChild&&N.firstChild.childNodes:S[1]=="<table>"&&!T?N.childNodes:[];for(var O=P.length-1;O>=0;--O){if(p.nodeName(P[O],"tbody")&&!P[O].childNodes.length){P[O].parentNode.removeChild(P[O])}}}if(!p.support.leadingWhitespace&&/^\s/.test(U)){N.insertBefore(M.createTextNode(U.match(/^\s*/)[0]),N.firstChild)}U=p.makeArray(N.childNodes)}if(U.nodeType){I.push(U)}else{I=p.merge(I,U)}});if(K){for(var L=0;I[L];L++){if(p.nodeName(I[L],"script")&&(!I[L].type||I[L].type.toLowerCase()==="text/javascript")){G.push(I[L].parentNode?I[L].parentNode.removeChild(I[L]):I[L])}else{if(I[L].nodeType===1){I.splice.apply(I,[L+1,0].concat(p.makeArray(I[L].getElementsByTagName("script"))))}K.appendChild(I[L])}}return G}return I},attr:function(L,I,M){if(!L||L.nodeType==3||L.nodeType==8){return g}var J=!p.isXMLDoc(L),N=M!==g;I=J&&p.props[I]||I;if(L.tagName){var H=/href|src|style/.test(I);if(I=="selected"&&L.parentNode){L.parentNode.selectedIndex}if(I in L&&J&&!H){if(N){if(I=="type"&&p.nodeName(L,"input")&&L.parentNode){throw"type property can't be changed"}L[I]=M}if(p.nodeName(L,"form")&&L.getAttributeNode(I)){return L.getAttributeNode(I).nodeValue}if(I=="tabIndex"){var K=L.getAttributeNode("tabIndex");return K&&K.specified?K.value:L.nodeName.match(/(button|input|object|select|textarea)/i)?0:L.nodeName.match(/^(a|area)$/i)&&L.href?0:g}return L[I]}if(!p.support.style&&J&&I=="style"){return p.attr(L.style,"cssText",M)}if(N){L.setAttribute(I,""+M)}var G=!p.support.hrefNormalized&&J&&H?L.getAttribute(I,2):L.getAttribute(I);return G===null?g:G}if(!p.support.opacity&&I=="opacity"){if(N){L.zoom=1;L.filter=(L.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(M)+""=="NaN"?"":"alpha(opacity="+M*100+")")}return L.filter&&L.filter.indexOf("opacity=")>=0?(parseFloat(L.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}I=I.replace(/-([a-z])/ig,function(O,P){return P.toUpperCase()});if(N){L[I]=M}return L[I]},trim:function(G){return(G||"").replace(/^\s+|\s+$/g,"")},makeArray:function(I){var G=[];if(I!=null){var H=I.length;if(H==null||typeof I==="string"||p.isFunction(I)||I.setInterval){G[0]=I}else{while(H){G[--H]=I[H]}}}return G},inArray:function(I,J){for(var G=0,H=J.length;G<H;G++){if(J[G]===I){return G}}return -1},merge:function(J,G){var H=0,I,K=J.length;if(!p.support.getAll){while((I=G[H++])!=null){if(I.nodeType!=8){J[K++]=I}}}else{while((I=G[H++])!=null){J[K++]=I}}return J},unique:function(M){var H=[],G={};try{for(var I=0,J=M.length;I<J;I++){var L=p.data(M[I]);if(!G[L]){G[L]=true;H.push(M[I])}}}catch(K){H=M}return H},grep:function(H,L,G){var I=[];for(var J=0,K=H.length;J<K;J++){if(!G!=!L(H[J],J)){I.push(H[J])}}return I},map:function(G,L){var H=[];for(var I=0,J=G.length;I<J;I++){var K=L(G[I],I);if(K!=null){H[H.length]=K}}return H.concat.apply([],H)}});var E=navigator.userAgent.toLowerCase();p.browser={version:(E.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(E),opera:/opera/.test(E),msie:/msie/.test(E)&&!/opera/.test(E),mozilla:/mozilla/.test(E)&&!/(compatible|webkit)/.test(E)};if(p.browser.msie){var n;if(E.indexOf("msie 6")>=0){n="6"}if(E.indexOf("msie 7")>=0){n="7"}if(E.indexOf("msie 8")>=0){n="8"}var q=E.indexOf("msie "+n);if(q>=0){p.browser.version=n+E.substr(q+6,2)}}p.each({parent:function(G){return G.parentNode},parents:function(G){return p.dir(G,"parentNode")},next:function(G){return p.nth(G,2,"nextSibling")},prev:function(G){return p.nth(G,2,"previousSibling")},nextAll:function(G){return p.dir(G,"nextSibling")},prevAll:function(G){return p.dir(G,"previousSibling")},siblings:function(G){return p.sibling(G.parentNode.firstChild,G)},children:function(G){return p.sibling(G.firstChild)},contents:function(G){return p.nodeName(G,"iframe")?G.contentDocument||G.contentWindow.document:p.makeArray(G.childNodes)}},function(G,H){p.fn[G]=function(I){var J=p.map(this,H);if(I&&typeof I=="string"){J=p.multiFilter(I,J)}return this.pushStack(p.unique(J),G,I)}});p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(G,H){p.fn[G]=function(I){var L=[],N=p(I);for(var M=0,J=N.length;M<J;M++){var K=(M>0?this.clone(true):this).get();p.fn[H].apply(p(N[M]),K);L=L.concat(K)}return this.pushStack(L,G,I)}});p.each({removeAttr:function(G){p.attr(this,G,"");if(this.nodeType==1){this.removeAttribute(G)}},addClass:function(G){p.className.add(this,G)},removeClass:function(G){p.className.remove(this,G)},toggleClass:function(H,G){if(typeof G!=="boolean"){G=!p.className.has(this,H)}p.className[G?"add":"remove"](this,H)},remove:function(G){if(!G||p.filter(G,[this]).length){p("*",this).add([this]).each(function(){p.event.remove(this);p.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){p(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(G,H){p.fn[G]=function(){return this.each(H,arguments)}});function j(G,H){return G[0]&&parseInt(p.curCSS(G[0],H,true),10)||0}var h="jQuery"+e(),x=0,B={};p.extend({cache:{},data:function(H,G,I){H=H==l?B:H;var J=H[h];if(!J){J=H[h]=++x}if(G&&!p.cache[J]){p.cache[J]={}}if(I!==g){p.cache[J][G]=I}return G?p.cache[J][G]:J},removeData:function(H,G){H=H==l?B:H;var J=H[h];if(G){if(p.cache[J]){delete p.cache[J][G];G="";for(G in p.cache[J]){break}if(!G){p.removeData(H)}}}else{try{delete H[h]}catch(I){if(H.removeAttribute){H.removeAttribute(h)}}delete p.cache[J]}},queue:function(H,G,J){if(H){G=(G||"fx")+"queue";var I=p.data(H,G);if(!I||p.isArray(J)){I=p.data(H,G,p.makeArray(J))}else{if(J){I.push(J)}}}return I},dequeue:function(J,I){var G=p.queue(J,I),H=G.shift();if(!I||I==="fx"){H=G[0]}if(H!==g){H.call(J)}}});p.fn.extend({data:function(G,I){var J=G.split(".");J[1]=J[1]?"."+J[1]:"";if(I===g){var H=this.triggerHandler("getData"+J[1]+"!",[J[0]]);if(H===g&&this.length){H=p.data(this[0],G)}return H===g&&J[1]?this.data(J[0]):H}else{return this.trigger("setData"+J[1]+"!",[J[0],I]).each(function(){p.data(this,G,I)})}},removeData:function(G){return this.each(function(){p.removeData(this,G)})},queue:function(G,H){if(typeof G!=="string"){H=G;G="fx"}if(H===g){return p.queue(this[0],G)}return this.each(function(){var I=p.queue(this,G,H);if(G=="fx"&&I.length==1){I[0].call(this)}})},dequeue:function(G){return this.each(function(){p.dequeue(this,G)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var T=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,N=0,J=Object.prototype.toString;var H=function(aa,W,ad,ae){ad=ad||[];W=W||document;if(W.nodeType!==1&&W.nodeType!==9){return[]}if(!aa||typeof aa!=="string"){return ad}var ab=[],Y,ah,ak,V,af,X,Z=true;T.lastIndex=0;while((Y=T.exec(aa))!==null){ab.push(Y[1]);if(Y[2]){X=RegExp.rightContext;break}}if(ab.length>1&&O.exec(aa)){if(ab.length===2&&K.relative[ab[0]]){ah=L(ab[0]+ab[1],W)}else{ah=K.relative[ab[0]]?[W]:H(ab.shift(),W);while(ab.length){aa=ab.shift();if(K.relative[aa]){aa+=ab.shift()}ah=L(aa,ah)}}}else{var ag=ae?{expr:ab.pop(),set:G(ae)}:H.find(ab.pop(),ab.length===1&&W.parentNode?W.parentNode:W,S(W));ah=H.filter(ag.expr,ag.set);if(ab.length>0){ak=G(ah)}else{Z=false}while(ab.length){var aj=ab.pop(),ai=aj;if(!K.relative[aj]){aj=""}else{ai=ab.pop()}if(ai==null){ai=W}K.relative[aj](ak,ai,S(W))}}if(!ak){ak=ah}if(!ak){throw"Syntax error, unrecognized expression: "+(aj||aa)}if(J.call(ak)==="[object Array]"){if(!Z){ad.push.apply(ad,ak)}else{if(W.nodeType===1){for(var ac=0;ak[ac]!=null;ac++){if(ak[ac]&&(ak[ac]===true||ak[ac].nodeType===1&&M(W,ak[ac]))){ad.push(ah[ac])}}}else{for(var ac=0;ak[ac]!=null;ac++){if(ak[ac]&&ak[ac].nodeType===1){ad.push(ah[ac])}}}}}else{G(ak,ad)}if(X){H(X,W,ad,ae);if(I){hasDuplicate=false;ad.sort(I);if(hasDuplicate){for(var ac=1;ac<ad.length;ac++){if(ad[ac]===ad[ac-1]){ad.splice(ac--,1)}}}}}return ad};H.matches=function(V,W){return H(V,null,null,W)};H.find=function(ac,V,ad){var ab,Z;if(!ac){return[]}for(var Y=0,X=K.order.length;Y<X;Y++){var aa=K.order[Y],Z;if((Z=K.match[aa].exec(ac))){var W=RegExp.leftContext;if(W.substr(W.length-1)!=="\\"){Z[1]=(Z[1]||"").replace(/\\/g,"");ab=K.find[aa](Z,V,ad);if(ab!=null){ac=ac.replace(K.match[aa],"");break}}}}if(!ab){ab=V.getElementsByTagName("*")}return{set:ab,expr:ac}};H.filter=function(af,ae,ai,Y){var X=af,ak=[],ac=ae,aa,V,ab=ae&&ae[0]&&S(ae[0]);while(af&&ae.length){for(var ad in K.filter){if((aa=K.match[ad].exec(af))!=null){var W=K.filter[ad],aj,ah;V=false;if(ac==ak){ak=[]}if(K.preFilter[ad]){aa=K.preFilter[ad](aa,ac,ai,ak,Y,ab);if(!aa){V=aj=true}else{if(aa===true){continue}}}if(aa){for(var Z=0;(ah=ac[Z])!=null;Z++){if(ah){aj=W(ah,aa,Z,ac);var ag=Y^!!aj;if(ai&&aj!=null){if(ag){V=true}else{ac[Z]=false}}else{if(ag){ak.push(ah);V=true}}}}}if(aj!==g){if(!ai){ac=ak}af=af.replace(K.match[ad],"");if(!V){return[]}break}}}if(af==X){if(V==null){throw"Syntax error, unrecognized expression: "+af}else{break}}X=af}return ac};var K=H.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(V){return V.getAttribute("href")}},relative:{"+":function(ac,V,ab){var Z=typeof V==="string",ad=Z&&!/\W/.test(V),aa=Z&&!ad;if(ad&&!ab){V=V.toUpperCase()}for(var Y=0,X=ac.length,W;Y<X;Y++){if((W=ac[Y])){while((W=W.previousSibling)&&W.nodeType!==1){}ac[Y]=aa||W&&W.nodeName===V?W||false:W===V}}if(aa){H.filter(V,ac,true)}},">":function(ab,W,ac){var Z=typeof W==="string";if(Z&&!/\W/.test(W)){W=ac?W:W.toUpperCase();for(var X=0,V=ab.length;X<V;X++){var aa=ab[X];if(aa){var Y=aa.parentNode;ab[X]=Y.nodeName===W?Y:false}}}else{for(var X=0,V=ab.length;X<V;X++){var aa=ab[X];if(aa){ab[X]=Z?aa.parentNode:aa.parentNode===W}}if(Z){H.filter(W,ab,true)}}},"":function(Y,W,aa){var X=N++,V=U;if(!W.match(/\W/)){var Z=W=aa?W:W.toUpperCase();V=R}V("parentNode",W,X,Y,Z,aa)},"~":function(Y,W,aa){var X=N++,V=U;if(typeof W==="string"&&!W.match(/\W/)){var Z=W=aa?W:W.toUpperCase();V=R}V("previousSibling",W,X,Y,Z,aa)}},find:{ID:function(W,X,Y){if(typeof X.getElementById!=="undefined"&&!Y){var V=X.getElementById(W[1]);return V?[V]:[]}},NAME:function(X,aa,ab){if(typeof aa.getElementsByName!=="undefined"){var W=[],Z=aa.getElementsByName(X[1]);for(var Y=0,V=Z.length;Y<V;Y++){if(Z[Y].getAttribute("name")===X[1]){W.push(Z[Y])}}return W.length===0?null:W}},TAG:function(V,W){return W.getElementsByTagName(V[1])}},preFilter:{CLASS:function(Y,W,X,V,ab,ac){Y=" "+Y[1].replace(/\\/g,"")+" ";if(ac){return Y}for(var Z=0,aa;(aa=W[Z])!=null;Z++){if(aa){if(ab^(aa.className&&(" "+aa.className+" ").indexOf(Y)>=0)){if(!X){V.push(aa)}}else{if(X){W[Z]=false}}}}return false},ID:function(V){return V[1].replace(/\\/g,"")},TAG:function(W,V){for(var X=0;V[X]===false;X++){}return V[X]&&S(V[X])?W[1]:W[1].toUpperCase()},CHILD:function(V){if(V[1]=="nth"){var W=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(V[2]=="even"&&"2n"||V[2]=="odd"&&"2n+1"||!/\D/.test(V[2])&&"0n+"+V[2]||V[2]);V[2]=(W[1]+(W[2]||1))-0;V[3]=W[3]-0}V[0]=N++;return V},ATTR:function(Z,W,X,V,aa,ab){var Y=Z[1].replace(/\\/g,"");if(!ab&&K.attrMap[Y]){Z[1]=K.attrMap[Y]}if(Z[2]==="~="){Z[4]=" "+Z[4]+" "}return Z},PSEUDO:function(Z,W,X,V,aa){if(Z[1]==="not"){if(Z[3].match(T).length>1||/^\w/.test(Z[3])){Z[3]=H(Z[3],null,null,W)}else{var Y=H.filter(Z[3],W,X,true^aa);if(!X){V.push.apply(V,Y)}return false}}else{if(K.match.POS.test(Z[0])||K.match.CHILD.test(Z[0])){return true}}return Z},POS:function(V){V.unshift(true);return V}},filters:{enabled:function(V){return V.disabled===false&&V.type!=="hidden"},disabled:function(V){return V.disabled===true},checked:function(V){return V.checked===true},selected:function(V){V.parentNode.selectedIndex;return V.selected===true},parent:function(V){return !!V.firstChild},empty:function(V){return !V.firstChild},has:function(X,W,V){return !!H(V[3],X).length},header:function(V){return/h\d/i.test(V.nodeName)},text:function(V){return"text"===V.type},radio:function(V){return"radio"===V.type},checkbox:function(V){return"checkbox"===V.type},file:function(V){return"file"===V.type},password:function(V){return"password"===V.type},submit:function(V){return"submit"===V.type},image:function(V){return"image"===V.type},reset:function(V){return"reset"===V.type},button:function(V){return"button"===V.type||V.nodeName.toUpperCase()==="BUTTON"},input:function(V){return/input|select|textarea|button/i.test(V.nodeName)}},setFilters:{first:function(W,V){return V===0},last:function(X,W,V,Y){return W===Y.length-1},even:function(W,V){return V%2===0},odd:function(W,V){return V%2===1},lt:function(X,W,V){return W<V[3]-0},gt:function(X,W,V){return W>V[3]-0},nth:function(X,W,V){return V[3]-0==W},eq:function(X,W,V){return V[3]-0==W}},filter:{PSEUDO:function(ab,X,Y,ac){var W=X[1],Z=K.filters[W];if(Z){return Z(ab,Y,X,ac)}else{if(W==="contains"){return(ab.textContent||ab.innerText||"").indexOf(X[3])>=0}else{if(W==="not"){var aa=X[3];for(var Y=0,V=aa.length;Y<V;Y++){if(aa[Y]===ab){return false}}return true}}}},CHILD:function(V,Y){var ab=Y[1],W=V;switch(ab){case"only":case"first":while(W=W.previousSibling){if(W.nodeType===1){return false}}if(ab=="first"){return true}W=V;case"last":while(W=W.nextSibling){if(W.nodeType===1){return false}}return true;case"nth":var X=Y[2],ae=Y[3];if(X==1&&ae==0){return true}var aa=Y[0],ad=V.parentNode;if(ad&&(ad.sizcache!==aa||!V.nodeIndex)){var Z=0;for(W=ad.firstChild;W;W=W.nextSibling){if(W.nodeType===1){W.nodeIndex=++Z}}ad.sizcache=aa}var ac=V.nodeIndex-ae;if(X==0){return ac==0}else{return(ac%X==0&&ac/X>=0)}}},ID:function(W,V){return W.nodeType===1&&W.getAttribute("id")===V},TAG:function(W,V){return(V==="*"&&W.nodeType===1)||W.nodeName===V},CLASS:function(W,V){return(" "+(W.className||W.getAttribute("class"))+" ").indexOf(V)>-1},ATTR:function(aa,Y){var X=Y[1],V=K.attrHandle[X]?K.attrHandle[X](aa):aa[X]!=null?aa[X]:aa.getAttribute(X),ab=V+"",Z=Y[2],W=Y[4];return V==null?Z==="!=":Z==="="?ab===W:Z==="*="?ab.indexOf(W)>=0:Z==="~="?(" "+ab+" ").indexOf(W)>=0:!W?ab&&V!==false:Z==="!="?ab!=W:Z==="^="?ab.indexOf(W)===0:Z==="$="?ab.substr(ab.length-W.length)===W:Z==="|="?ab===W||ab.substr(0,W.length+1)===W+"-":false},POS:function(Z,W,X,aa){var V=W[2],Y=K.setFilters[V];if(Y){return Y(Z,X,W,aa)}}}};var O=K.match.POS;for(var Q in K.match){K.match[Q]=RegExp(K.match[Q].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var G=function(W,V){W=Array.prototype.slice.call(W);if(V){V.push.apply(V,W);return V}return W};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(P){G=function(Z,Y){var W=Y||[];if(J.call(Z)==="[object Array]"){Array.prototype.push.apply(W,Z)}else{if(typeof Z.length==="number"){for(var X=0,V=Z.length;X<V;X++){W.push(Z[X])}}else{for(var X=0;Z[X];X++){W.push(Z[X])}}}return W}}var I;if(document.documentElement.compareDocumentPosition){I=function(W,V){var X=W.compareDocumentPosition(V)&4?-1:W===V?0:1;if(X===0){hasDuplicate=true}return X}}else{if("sourceIndex" in document.documentElement){I=function(W,V){var X=W.sourceIndex-V.sourceIndex;if(X===0){hasDuplicate=true}return X}}else{if(document.createRange){I=function(Y,W){var X=Y.ownerDocument.createRange(),V=W.ownerDocument.createRange();X.selectNode(Y);X.collapse(true);V.selectNode(W);V.collapse(true);var Z=X.compareBoundaryPoints(Range.START_TO_END,V);if(Z===0){hasDuplicate=true}return Z}}}}(function(){var W=document.createElement("form"),X="script"+(new Date).getTime();W.innerHTML="<input name='"+X+"'/>";var V=document.documentElement;V.insertBefore(W,V.firstChild);if(!!document.getElementById(X)){K.find.ID=function(Z,aa,ab){if(typeof aa.getElementById!=="undefined"&&!ab){var Y=aa.getElementById(Z[1]);return Y?Y.id===Z[1]||typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id").nodeValue===Z[1]?[Y]:g:[]}};K.filter.ID=function(aa,Y){var Z=typeof aa.getAttributeNode!=="undefined"&&aa.getAttributeNode("id");return aa.nodeType===1&&Z&&Z.nodeValue===Y}}V.removeChild(W)})();(function(){var V=document.createElement("div");V.appendChild(document.createComment(""));if(V.getElementsByTagName("*").length>0){K.find.TAG=function(W,aa){var Z=aa.getElementsByTagName(W[1]);if(W[1]==="*"){var Y=[];for(var X=0;Z[X];X++){if(Z[X].nodeType===1){Y.push(Z[X])}}Z=Y}return Z}}V.innerHTML="<a href='#'></a>";if(V.firstChild&&typeof V.firstChild.getAttribute!=="undefined"&&V.firstChild.getAttribute("href")!=="#"){K.attrHandle.href=function(W){return W.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var V=H,W=document.createElement("div");W.innerHTML="<p class='TEST'></p>";if(W.querySelectorAll&&W.querySelectorAll(".TEST").length===0){return}H=function(aa,Z,X,Y){Z=Z||document;if(!Y&&Z.nodeType===9&&!S(Z)){try{return G(Z.querySelectorAll(aa),X)}catch(ab){}}return V(aa,Z,X,Y)};H.find=V.find;H.filter=V.filter;H.selectors=V.selectors;H.matches=V.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var V=document.createElement("div");V.innerHTML="<div class='test e'></div><div class='test'></div>";if(V.getElementsByClassName("e").length===0){return}V.lastChild.className="e";if(V.getElementsByClassName("e").length===1){return}K.order.splice(1,0,"CLASS");K.find.CLASS=function(W,X,Y){if(typeof X.getElementsByClassName!=="undefined"&&!Y){return X.getElementsByClassName(W[1])}}})()}function R(W,ab,aa,af,ac,ae){var ad=W=="previousSibling"&&!ae;for(var Y=0,X=af.length;Y<X;Y++){var V=af[Y];if(V){if(ad&&V.nodeType===1){V.sizcache=aa;V.sizset=Y}V=V[W];var Z=false;while(V){if(V.sizcache===aa){Z=af[V.sizset];break}if(V.nodeType===1&&!ae){V.sizcache=aa;V.sizset=Y}if(V.nodeName===ab){Z=V;break}V=V[W]}af[Y]=Z}}}function U(W,ab,aa,af,ac,ae){var ad=W=="previousSibling"&&!ae;for(var Y=0,X=af.length;Y<X;Y++){var V=af[Y];if(V){if(ad&&V.nodeType===1){V.sizcache=aa;V.sizset=Y}V=V[W];var Z=false;while(V){if(V.sizcache===aa){Z=af[V.sizset];break}if(V.nodeType===1){if(!ae){V.sizcache=aa;V.sizset=Y}if(typeof ab!=="string"){if(V===ab){Z=true;break}}else{if(H.filter(ab,[V]).length>0){Z=V;break}}}V=V[W]}af[Y]=Z}}}var M=document.compareDocumentPosition?function(W,V){return W.compareDocumentPosition(V)&16}:function(W,V){return W!==V&&(W.contains?W.contains(V):true)};var S=function(V){return V.nodeType===9&&V.documentElement.nodeName!=="HTML"||!!V.ownerDocument&&S(V.ownerDocument)};var L=function(V,ac){var Y=[],Z="",aa,X=ac.nodeType?[ac]:ac;while((aa=K.match.PSEUDO.exec(V))){Z+=aa[0];V=V.replace(K.match.PSEUDO,"")}V=K.relative[V]?V+"*":V;for(var ab=0,W=X.length;ab<W;ab++){H(V,X[ab],Y)}return H.filter(Z,Y)};p.find=H;p.filter=H.filter;p.expr=H.selectors;p.expr[":"]=p.expr.filters;H.selectors.filters.hidden=function(V){return V.offsetWidth===0||V.offsetHeight===0};H.selectors.filters.visible=function(V){return V.offsetWidth>0||V.offsetHeight>0};H.selectors.filters.animated=function(V){return p.grep(p.timers,function(W){return V===W.elem}).length};p.multiFilter=function(X,V,W){if(W){X=":not("+X+")"}return H.matches(X,V)};p.dir=function(X,W){var V=[],Y=X[W];while(Y&&Y!=document){if(Y.nodeType==1){V.push(Y)}Y=Y[W]}return V};p.nth=function(Z,V,X,Y){V=V||1;var W=0;for(;Z;Z=Z[X]){if(Z.nodeType==1&&++W==V){break}}return Z};p.sibling=function(X,W){var V=[];for(;X;X=X.nextSibling){if(X.nodeType==1&&X!=W){V.push(X)}}return V};return;l.Sizzle=H})();p.event={add:function(K,H,J,M){if(K.nodeType==3||K.nodeType==8){return}if(K.setInterval&&K!=l){K=l}if(!J.guid){J.guid=this.guid++}if(M!==g){var I=J;J=this.proxy(I);J.data=M}var G=p.data(K,"events")||p.data(K,"events",{}),L=p.data(K,"handle")||p.data(K,"handle",function(){return typeof p!=="undefined"&&!p.event.triggered?p.event.handle.apply(arguments.callee.elem,arguments):g});L.elem=K;p.each(H.split(/\s+/),function(O,P){var Q=P.split(".");P=Q.shift();J.type=Q.slice().sort().join(".");var N=G[P];if(p.event.specialAll[P]){p.event.specialAll[P].setup.call(K,M,Q)}if(!N){N=G[P]={};if(!p.event.special[P]||p.event.special[P].setup.call(K,M,Q)===false){if(K.addEventListener){K.addEventListener(P,L,false)}else{if(K.attachEvent){K.attachEvent("on"+P,L)}}}}N[J.guid]=J;p.event.global[P]=true});K=null},guid:1,global:{},remove:function(M,J,L){if(M.nodeType==3||M.nodeType==8){return}var I=p.data(M,"events"),H,G;if(I){if(J===g||(typeof J==="string"&&J.charAt(0)==".")){for(var K in I){this.remove(M,K+(J||""))}}else{if(J.type){L=J.handler;J=J.type}p.each(J.split(/\s+/),function(O,Q){var S=Q.split(".");Q=S.shift();var P=RegExp("(^|\\.)"+S.slice().sort().join(".*\\.")+"(\\.|$)");if(I[Q]){if(L){delete I[Q][L.guid]}else{for(var R in I[Q]){if(P.test(I[Q][R].type)){delete I[Q][R]}}}if(p.event.specialAll[Q]){p.event.specialAll[Q].teardown.call(M,S)}for(H in I[Q]){break}if(!H){if(!p.event.special[Q]||p.event.special[Q].teardown.call(M,S)===false){if(M.removeEventListener){M.removeEventListener(Q,p.data(M,"handle"),false)}else{if(M.detachEvent){M.detachEvent("on"+Q,p.data(M,"handle"))}}}H=null;delete I[Q]}}})}for(H in I){break}if(!H){var N=p.data(M,"handle");if(N){N.elem=null}p.removeData(M,"events");p.removeData(M,"handle")}}},trigger:function(K,M,J,G){var I=K.type||K;if(!G){K=typeof K==="object"?K[h]?K:p.extend(p.Event(I),K):p.Event(I);if(I.indexOf("!")>=0){K.type=I=I.slice(0,-1);K.exclusive=true}if(!J){K.stopPropagation();if(this.global[I]){p.each(p.cache,function(){if(this.events&&this.events[I]){p.event.trigger(K,M,this.handle.elem)}})}}if(!J||J.nodeType==3||J.nodeType==8){return g}K.result=g;K.target=J;M=p.makeArray(M);M.unshift(K)}K.currentTarget=J;var L=p.data(J,"handle");if(L){L.apply(J,M)}if((!J[I]||(p.nodeName(J,"a")&&I=="click"))&&J["on"+I]&&J["on"+I].apply(J,M)===false){K.result=false}if(!G&&J[I]&&!K.isDefaultPrevented()&&!(p.nodeName(J,"a")&&I=="click")){this.triggered=true;try{J[I]()}catch(N){}}this.triggered=false;if(!K.isPropagationStopped()){var H=J.parentNode||J.ownerDocument;if(H){p.event.trigger(K,M,H,true)}}},handle:function(M){var L,G;M=arguments[0]=p.event.fix(M||l.event);M.currentTarget=this;var N=M.type.split(".");M.type=N.shift();L=!N.length&&!M.exclusive;var K=RegExp("(^|\\.)"+N.slice().sort().join(".*\\.")+"(\\.|$)");G=(p.data(this,"events")||{})[M.type];for(var I in G){var J=G[I];if(L||K.test(J.type)){M.handler=J;M.data=J.data;var H=J.apply(this,arguments);if(H!==g){M.result=H;if(H===false){M.preventDefault();M.stopPropagation()}}if(M.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(J){if(J[h]){return J}var H=J;J=p.Event(H);for(var I=this.props.length,L;I;){L=this.props[--I];J[L]=H[L]}if(!J.target){J.target=J.srcElement||document}if(J.target.nodeType==3){J.target=J.target.parentNode}if(!J.relatedTarget&&J.fromElement){J.relatedTarget=J.fromElement==J.target?J.toElement:J.fromElement}if(J.pageX==null&&J.clientX!=null){var K=document.documentElement,G=document.body;J.pageX=J.clientX+(K&&K.scrollLeft||G&&G.scrollLeft||0)-(K.clientLeft||0);J.pageY=J.clientY+(K&&K.scrollTop||G&&G.scrollTop||0)-(K.clientTop||0)}if(!J.which&&((J.charCode||J.charCode===0)?J.charCode:J.keyCode)){J.which=J.charCode||J.keyCode}if(!J.metaKey&&J.ctrlKey){J.metaKey=J.ctrlKey}if(!J.which&&J.button){J.which=(J.button&1?1:(J.button&2?3:(J.button&4?2:0)))}return J},proxy:function(H,G){G=G||function(){return H.apply(this,arguments)};G.guid=H.guid=H.guid||G.guid||this.guid++;return G},special:{ready:{setup:D,teardown:function(){}}},specialAll:{live:{setup:function(G,H){p.event.add(this,H[0],c)},teardown:function(I){if(I.length){var G=0,H=RegExp("(^|\\.)"+I[0]+"(\\.|$)");p.each((p.data(this,"events").live||{}),function(){if(H.test(this.type)){G++}});if(G<1){p.event.remove(this,I[0],c)}}}}}};p.Event=function(G){if(!this.preventDefault){return new p.Event(G)}if(G&&G.type){this.originalEvent=G;this.type=G.type}else{this.type=G}this.timeStamp=e();this[h]=true};function k(){return false}function w(){return true}p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var G=this.originalEvent;if(!G){return}if(G.preventDefault){G.preventDefault()}G.returnValue=false},stopPropagation:function(){this.isPropagationStopped=w;var G=this.originalEvent;if(!G){return}if(G.stopPropagation){G.stopPropagation()}G.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(H){var G=H.relatedTarget;while(G&&G!=this){try{G=G.parentNode}catch(I){G=this}}if(G!=this){H.type=H.data;p.event.handle.apply(this,arguments)}};p.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(H,G){p.event.special[G]={setup:function(){p.event.add(this,H,a,G)},teardown:function(){p.event.remove(this,H,a)}}});p.fn.extend({bind:function(H,I,G){return H=="unload"?this.one(H,I,G):this.each(function(){p.event.add(this,H,G||I,G&&I)})},one:function(I,J,H){var G=p.event.proxy(H||J,function(K){p(this).unbind(K,G);return(H||J).apply(this,arguments)});return this.each(function(){p.event.add(this,I,G,H&&J)})},unbind:function(H,G){return this.each(function(){p.event.remove(this,H,G)})},trigger:function(G,H){return this.each(function(){p.event.trigger(G,H,this)})},triggerHandler:function(G,I){if(this[0]){var H=p.Event(G);H.preventDefault();H.stopPropagation();p.event.trigger(H,I,this[0]);return H.result}},toggle:function(I){var G=arguments,H=1;while(H<G.length){p.event.proxy(I,G[H++])}return this.click(p.event.proxy(I,function(J){this.lastToggle=(this.lastToggle||0)%H;J.preventDefault();return G[this.lastToggle++].apply(this,arguments)||false}))},hover:function(G,H){return this.mouseenter(G).mouseleave(H)},ready:function(G){D();if(p.isReady){G.call(document,p)}else{p.readyList.push(G)}return this},live:function(I,H){var G=p.event.proxy(H);G.guid+=this.selector+I;p(document).bind(i(I,this.selector),this.selector,G);return this},die:function(H,G){p(document).unbind(i(H,this.selector),G?{guid:G.guid+this.selector+H}:null);return this}});function c(J){var G=RegExp("(^|\\.)"+J.type+"(\\.|$)"),I=true,H=[];p.each(p.data(this,"events").live||[],function(K,L){if(G.test(L.type)){var M=p(J.target).closest(L.data)[0];if(M){H.push({elem:M,fn:L})}}});H.sort(function(L,K){return p.data(L.elem,"closest")-p.data(K.elem,"closest")});p.each(H,function(){if(this.fn.call(this.elem,J,this.fn.data)===false){return(I=false)}});return I}function i(H,G){return["live",H,G.replace(/\./g,"`").replace(/ /g,"|")].join(".")}p.extend({isReady:false,readyList:[],ready:function(){if(!p.isReady){p.isReady=true;if(p.readyList){p.each(p.readyList,function(){this.call(document,p)});p.readyList=null}p(document).triggerHandler("ready")}}});var z=false;function D(){if(z){return}z=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);p.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);p.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(p.isReady){return}try{document.documentElement.doScroll("left")}catch(G){setTimeout(arguments.callee,0);return}p.ready()})()}}}p.event.add(l,"load",p.ready)}p.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(H,G){p.fn[G]=function(I){return I?this.bind(G,I):this.trigger(G)}});p(l).bind("unload",function(){for(var G in p.cache){if(G!=1&&p.cache[G].handle){p.event.remove(p.cache[G].handle.elem)}}});(function(){p.support={};var H=document.documentElement,I=document.createElement("script"),M=document.createElement("div"),L="script"+(new Date).getTime();M.style.display="none";M.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var J=M.getElementsByTagName("*"),G=M.getElementsByTagName("a")[0];if(!J||!J.length||!G){return}p.support={leadingWhitespace:M.firstChild.nodeType==3,tbody:!M.getElementsByTagName("tbody").length,objectAll:!!M.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!M.getElementsByTagName("link").length,style:/red/.test(G.getAttribute("style")),hrefNormalized:G.getAttribute("href")==="/a",opacity:G.style.opacity==="0.5",cssFloat:!!G.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};I.type="text/javascript";try{I.appendChild(document.createTextNode("window."+L+"=1;"))}catch(K){}H.insertBefore(I,H.firstChild);if(l[L]){p.support.scriptEval=true;delete l[L]}H.removeChild(I);if(M.attachEvent&&M.fireEvent){M.attachEvent("onclick",function(){p.support.noCloneEvent=false;M.detachEvent("onclick",arguments.callee)});M.cloneNode(true).fireEvent("onclick")}p(function(){var N=document.createElement("div");N.style.width=N.style.paddingLeft="1px";document.body.appendChild(N);p.boxModel=p.support.boxModel=N.offsetWidth===2;document.body.removeChild(N).style.display="none"})})();var y=p.support.cssFloat?"cssFloat":"styleFloat";p.props={"for":"htmlFor","class":"className","float":y,cssFloat:y,styleFloat:y,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};p.fn.extend({_load:p.fn.load,load:function(I,L,M){if(typeof I!=="string"){return this._load(I)}var K=I.indexOf(" ");if(K>=0){var G=I.slice(K,I.length);I=I.slice(0,K)}var J="GET";if(L){if(p.isFunction(L)){M=L;L=null}else{if(typeof L==="object"){L=p.param(L);J="POST"}}}var H=this;p.ajax({url:I,type:J,dataType:"html",data:L,complete:function(O,N){if(N=="success"||N=="notmodified"){H.html(G?p("<div/>").append(O.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(G):O.responseText)}if(M){H.each(M,[O.responseText,N,O])}}});return this},serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(G,H){var I=p(this).val();return I==null?null:p.isArray(I)?p.map(I,function(K,J){return{name:H.name,value:K}}):{name:H.name,value:I}}).get()}});p.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(G,H){p.fn[H]=function(I){return this.bind(H,I)}});var t=e();p.extend({get:function(G,I,J,H){if(p.isFunction(I)){J=I;I=null}return p.ajax({type:"GET",url:G,data:I,success:J,dataType:H})},getScript:function(G,H){return p.get(G,null,H,"script")},getJSON:function(G,H,I){return p.get(G,H,I,"json")},post:function(G,I,J,H){if(p.isFunction(I)){J=I;I={}}return p.ajax({type:"POST",url:G,data:I,success:J,dataType:H})},ajaxSetup:function(G){p.extend(p.ajaxSettings,G)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(O){O=p.extend(true,O,p.extend(true,{},p.ajaxSettings,O));var Y,H=/=\?(&|$)/g,T,X,I=O.type.toUpperCase();if(O.data&&O.processData&&typeof O.data!=="string"){O.data=p.param(O.data)}if(O.dataType=="jsonp"){if(I=="GET"){if(!O.url.match(H)){O.url+=(O.url.match(/\?/)?"&":"?")+(O.jsonp||"callback")+"=?"}}else{if(!O.data||!O.data.match(H)){O.data=(O.data?O.data+"&":"")+(O.jsonp||"callback")+"=?"}}O.dataType="json"}if(O.dataType=="json"&&(O.data&&O.data.match(H)||O.url.match(H))){Y="jsonp"+t++;if(O.data){O.data=(O.data+"").replace(H,"="+Y+"$1")}O.url=O.url.replace(H,"="+Y+"$1");O.dataType="script";l[Y]=function(Z){X=Z;K();N();l[Y]=g;try{delete l[Y]}catch(aa){}if(J){J.removeChild(V)}}}if(O.dataType=="script"&&O.cache==null){O.cache=false}if(O.cache===false&&I=="GET"){var G=e();var W=O.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+G+"$2");O.url=W+((W==O.url)?(O.url.match(/\?/)?"&":"?")+"_="+G:"")}if(O.data&&I=="GET"){O.url+=(O.url.match(/\?/)?"&":"?")+O.data;O.data=null}if(O.global&&!p.active++){p.event.trigger("ajaxStart")}var S=/^(\w+:)?\/\/([^\/?#]+)/.exec(O.url);if(O.dataType=="script"&&I=="GET"&&S&&(S[1]&&S[1]!=location.protocol||S[2]!=location.host)){var J=document.getElementsByTagName("head")[0];var V=document.createElement("script");V.src=O.url;if(O.scriptCharset){V.charset=O.scriptCharset}if(!Y){var Q=false;V.onload=V.onreadystatechange=function(){if(!Q&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){Q=true;K();N();V.onload=V.onreadystatechange=null;J.removeChild(V)}}}J.appendChild(V);return g}var M=false;var L=O.xhr();if(O.username){L.open(I,O.url,O.async,O.username,O.password)}else{L.open(I,O.url,O.async)}try{if(O.data){L.setRequestHeader("Content-Type",O.contentType)}if(O.ifModified){L.setRequestHeader("If-Modified-Since",p.lastModified[O.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}L.setRequestHeader("X-Requested-With","XMLHttpRequest");L.setRequestHeader("Accept",O.dataType&&O.accepts[O.dataType]?O.accepts[O.dataType]+", */*":O.accepts._default)}catch(U){}if(O.beforeSend&&O.beforeSend(L,O)===false){if(O.global&&!--p.active){p.event.trigger("ajaxStop")}L.abort();return false}if(O.global){p.event.trigger("ajaxSend",[L,O])}var P=function(Z){if(L.readyState==0){if(R){clearInterval(R);R=null;if(O.global&&!--p.active){p.event.trigger("ajaxStop")}}}else{if(!M&&L&&(L.readyState==4||Z=="timeout")){M=true;if(R){clearInterval(R);R=null}T=Z=="timeout"?"timeout":!p.httpSuccess(L)?"error":O.ifModified&&p.httpNotModified(L,O.url)?"notmodified":"success";if(T=="success"){try{X=p.httpData(L,O.dataType,O)}catch(ab){T="parsererror"}}if(T=="success"){var aa;try{aa=L.getResponseHeader("Last-Modified")}catch(ab){}if(O.ifModified&&aa){p.lastModified[O.url]=aa}if(!Y){K()}}else{p.handleError(O,L,T)}N();if(Z){L.abort()}if(O.async){L=null}}}};if(O.async){var R=setInterval(P,13);if(O.timeout>0){setTimeout(function(){if(L&&!M){P("timeout")}},O.timeout)}}try{L.send(O.data)}catch(U){p.handleError(O,L,null,U)}if(!O.async){P()}function K(){if(O.success){O.success(X,T)}if(O.global){p.event.trigger("ajaxSuccess",[L,O])}}function N(){if(O.complete){O.complete(L,T)}if(O.global){p.event.trigger("ajaxComplete",[L,O])}if(O.global&&!--p.active){p.event.trigger("ajaxStop")}}return L},handleError:function(H,J,G,I){if(H.error){H.error(J,G,I)}if(H.global){p.event.trigger("ajaxError",[J,H,I])}},active:0,httpSuccess:function(H){try{return !H.status&&location.protocol=="file:"||(H.status>=200&&H.status<300)||H.status==304||H.status==1223}catch(G){}return false},httpNotModified:function(I,G){try{var J=I.getResponseHeader("Last-Modified");return I.status==304||J==p.lastModified[G]}catch(H){}return false},httpData:function(L,J,I){var H=L.getResponseHeader("content-type"),G=J=="xml"||!J&&H&&H.indexOf("xml")>=0,K=G?L.responseXML:L.responseText;if(G&&K.documentElement.tagName=="parsererror"){throw"parsererror"}if(I&&I.dataFilter){K=I.dataFilter(K,J)}if(typeof K==="string"){if(J=="script"){p.globalEval(K)}if(J=="json"){K=l["eval"]("("+K+")")}}return K},param:function(G){var I=[];function J(K,L){I[I.length]=encodeURIComponent(K)+"="+encodeURIComponent(L)}if(p.isArray(G)||G.jquery){p.each(G,function(){J(this.name,this.value)})}else{for(var H in G){if(p.isArray(G[H])){p.each(G[H],function(){J(H,this)})}else{J(H,p.isFunction(G[H])?G[H]():G[H])}}}return I.join("&").replace(/%20/g,"+")}});var m={},o,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function v(H,G){var I={};p.each(d.concat.apply([],d.slice(0,G)),function(){I[this]=H});return I}p.fn.extend({show:function(L,N){if(L){return this.animate(v("show",3),L,N)}else{for(var J=0,H=this.length;J<H;J++){var G=p.data(this[J],"olddisplay");this[J].style.display=G||"";if(p.css(this[J],"display")==="none"){var I=this[J].tagName,M;if(m[I]){M=m[I]}else{var K=p("<"+I+" />").appendTo("body");M=K.css("display");if(M==="none"){M="block"}K.remove();m[I]=M}p.data(this[J],"olddisplay",M)}}for(var J=0,H=this.length;J<H;J++){this[J].style.display=p.data(this[J],"olddisplay")||""}return this}},hide:function(J,K){if(J){return this.animate(v("hide",3),J,K)}else{for(var I=0,H=this.length;I<H;I++){var G=p.data(this[I],"olddisplay");if(!G&&G!=="none"){p.data(this[I],"olddisplay",p.css(this[I],"display"))}}for(var I=0,H=this.length;I<H;I++){this[I].style.display="none"}return this}},_toggle:p.fn.toggle,toggle:function(I,H){var G=typeof I==="boolean";return p.isFunction(I)&&p.isFunction(H)?this._toggle.apply(this,arguments):I==null||G?this.each(function(){var J=G?I:p(this).is(":hidden");p(this)[J?"show":"hide"]()}):this.animate(v("toggle",3),I,H)},fadeTo:function(G,I,H){return this.animate({opacity:I},G,H)},animate:function(K,H,J,I){var G=p.speed(H,J,I);return this[G.queue===false?"each":"queue"](function(){var M=p.extend({},G),O,N=this.nodeType==1&&p(this).is(":hidden"),L=this;for(O in K){if(K[O]=="hide"&&N||K[O]=="show"&&!N){return M.complete.call(this)}if((O=="height"||O=="width")&&this.style){M.display=p.css(this,"display");M.overflow=this.style.overflow}}if(M.overflow!=null){this.style.overflow="hidden"}M.curAnim=p.extend({},K);p.each(K,function(Q,U){var T=new p.fx(L,M,Q);if(/toggle|show|hide/.test(U)){T[U=="toggle"?N?"show":"hide":U](K)}else{var S=U.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),V=T.cur(true)||0;if(S){var P=parseFloat(S[2]),R=S[3]||"px";if(R!="px"){L.style[Q]=(P||1)+R;V=((P||1)/T.cur(true))*V;L.style[Q]=V+R}if(S[1]){P=((S[1]=="-="?-1:1)*P)+V}T.custom(V,P,R)}else{T.custom(V,U,"")}}});return true})},stop:function(H,G){var I=p.timers;if(H){this.queue([])}this.each(function(){for(var J=I.length-1;J>=0;J--){if(I[J].elem==this){if(G){I[J](true)}I.splice(J,1)}}});if(!G){this.dequeue()}return this}});p.each({slideDown:v("show",1),slideUp:v("hide",1),slideToggle:v("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(G,H){p.fn[G]=function(I,J){return this.animate(H,I,J)}});p.extend({speed:function(I,J,H){var G=typeof I==="object"?I:{complete:H||!H&&J||p.isFunction(I)&&I,duration:I,easing:H&&J||J&&!p.isFunction(J)&&J};G.duration=p.fx.off?0:typeof G.duration==="number"?G.duration:p.fx.speeds[G.duration]||p.fx.speeds._default;G.old=G.complete;G.complete=function(){if(G.queue!==false){p(this).dequeue()}if(p.isFunction(G.old)){G.old.call(this)}};return G},easing:{linear:function(I,J,G,H){return G+H*I},swing:function(I,J,G,H){return((-Math.cos(I*Math.PI)/2)+0.5)*H+G}},timers:[],fx:function(H,G,I){this.options=G;this.elem=H;this.prop=I;if(!G.orig){G.orig={}}}});p.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(p.fx.step[this.prop]||p.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(H){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var G=parseFloat(p.css(this.elem,this.prop,H));return G&&G>-10000?G:parseFloat(p.curCSS(this.elem,this.prop))||0},custom:function(K,J,I){this.startTime=e();this.start=K;this.end=J;this.unit=I||this.unit||"px";this.now=this.start;this.pos=this.state=0;var G=this;function H(L){return G.step(L)}H.elem=this.elem;if(H()&&p.timers.push(H)&&!o){o=setInterval(function(){var M=p.timers;for(var L=0;L<M.length;L++){if(!M[L]()){M.splice(L--,1)}}if(!M.length){clearInterval(o);o=g}},13)}},show:function(){this.options.orig[this.prop]=p.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());p(this.elem).show()},hide:function(){this.options.orig[this.prop]=p.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(J){var I=e();if(J||I>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var G=true;for(var H in this.options.curAnim){if(this.options.curAnim[H]!==true){G=false}}if(G){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(p.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){p(this.elem).hide()}if(this.options.hide||this.options.show){for(var K in this.options.curAnim){p.attr(this.elem.style,K,this.options.orig[K])}}this.options.complete.call(this.elem)}return false}else{var L=I-this.startTime;this.state=L/this.options.duration;this.pos=p.easing[this.options.easing||(p.easing.swing?"swing":"linear")](this.state,L,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};p.extend(p.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(G){p.attr(G.elem.style,"opacity",G.now)},_default:function(G){if(G.elem.style&&G.elem.style[G.prop]!=null){G.elem.style[G.prop]=G.now+G.unit}else{G.elem[G.prop]=G.now}}}});if(document.documentElement.getBoundingClientRect){p.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return p.offset.bodyOffset(this[0])}var I=this[0].getBoundingClientRect(),L=this[0].ownerDocument,H=L.body,G=L.documentElement,N=G.clientTop||H.clientTop||0,M=G.clientLeft||H.clientLeft||0,K=I.top+(self.pageYOffset||p.boxModel&&G.scrollTop||H.scrollTop)-N,J=I.left+(self.pageXOffset||p.boxModel&&G.scrollLeft||H.scrollLeft)-M;return{top:K,left:J}}}else{p.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return p.offset.bodyOffset(this[0])}p.offset.initialized||p.offset.initialize();var L=this[0],I=L.offsetParent,H=L,Q=L.ownerDocument,O,J=Q.documentElement,M=Q.body,N=Q.defaultView,G=N.getComputedStyle(L,null),P=L.offsetTop,K=L.offsetLeft;while((L=L.parentNode)&&L!==M&&L!==J){O=N.getComputedStyle(L,null);P-=L.scrollTop,K-=L.scrollLeft;if(L===I){P+=L.offsetTop,K+=L.offsetLeft;if(p.offset.doesNotAddBorder&&!(p.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(L.tagName))){P+=parseInt(O.borderTopWidth,10)||0,K+=parseInt(O.borderLeftWidth,10)||0}H=I,I=L.offsetParent}if(p.offset.subtractsBorderForOverflowNotVisible&&O.overflow!=="visible"){P+=parseInt(O.borderTopWidth,10)||0,K+=parseInt(O.borderLeftWidth,10)||0}G=O}if(G.position==="relative"||G.position==="static"){P+=M.offsetTop,K+=M.offsetLeft}if(G.position==="fixed"){P+=Math.max(J.scrollTop,M.scrollTop),K+=Math.max(J.scrollLeft,M.scrollLeft)}return{top:P,left:K}}}p.offset={initialize:function(){if(this.initialized){return}var N=document.body,H=document.createElement("div"),J,I,P,K,O,G,L=N.style.marginTop,M='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';O={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(G in O){H.style[G]=O[G]}H.innerHTML=M;N.insertBefore(H,N.firstChild);J=H.firstChild,I=J.firstChild,K=J.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(I.offsetTop!==5);this.doesAddBorderForTableAndCells=(K.offsetTop===5);J.style.overflow="hidden",J.style.position="relative";this.subtractsBorderForOverflowNotVisible=(I.offsetTop===-5);N.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(N.offsetTop===0);N.style.marginTop=L;N.removeChild(H);this.initialized=true},bodyOffset:function(G){p.offset.initialized||p.offset.initialize();var I=G.offsetTop,H=G.offsetLeft;if(p.offset.doesNotIncludeMarginInBodyOffset){I+=parseInt(p.curCSS(G,"marginTop",true),10)||0,H+=parseInt(p.curCSS(G,"marginLeft",true),10)||0}return{top:I,left:H}}};p.fn.extend({position:function(){var K=0,J=0,H;if(this[0]){var I=this.offsetParent(),L=this.offset(),G=/^body|html$/i.test(I[0].tagName)?{top:0,left:0}:I.offset();L.top-=j(this,"marginTop");L.left-=j(this,"marginLeft");G.top+=j(I,"borderTopWidth");G.left+=j(I,"borderLeftWidth");H={top:L.top-G.top,left:L.left-G.left}}return H},offsetParent:function(){var G=this[0].offsetParent||document.body;while(G&&(!/^body|html$/i.test(G.tagName)&&p.css(G,"position")=="static")){G=G.offsetParent}return p(G)}});p.each(["Left","Top"],function(H,G){var I="scroll"+G;p.fn[I]=function(J){if(!this[0]){return null}return J!==g?this.each(function(){this==l||this==document?l.scrollTo(!H?J:p(l).scrollLeft(),H?J:p(l).scrollTop()):this[I]=J}):this[0]==l||this[0]==document?self[H?"pageYOffset":"pageXOffset"]||p.boxModel&&document.documentElement[I]||document.body[I]:this[0][I]}});p.each(["Height","Width"],function(K,I){var G=K?"Left":"Top",J=K?"Right":"Bottom",H=I.toLowerCase();p.fn["inner"+I]=function(){return this[0]?p.css(this[0],H,false,"padding"):null};p.fn["outer"+I]=function(M){return this[0]?p.css(this[0],H,false,M?"margin":"border"):null};var L=I.toLowerCase();p.fn[L]=function(M){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+I]||document.body["client"+I]:this[0]==document?Math.max(document.documentElement["client"+I],document.body["scroll"+I],document.documentElement["scroll"+I],document.body["offset"+I],document.documentElement["offset"+I]):M===g?(this.length?p.css(this[0],L):null):this.css(L,typeof M==="string"?M:M+"px")}})})();
//Don't update the jquery library unless you know what you're doing, the ui library is included
//at the end of this file in order to give ui functionality without adding additional http requests and take
//advantage of caching happening at the browser and compression occurring at the server.
//UI libraries included with jQuery core, are dialog, pulsate, blind, scale and all dependencies.
//JQUERY UI 1.7
//UI libraries included with jQuery core, are draggable, resizeable, dialog, datepicker, blind, drop, pulsate, scale and all dependencies.
jQuery.ui||(function(p){var j=p.fn.remove,o=p.browser.mozilla&&(parseFloat(p.browser.version)<1.9);p.ui={version:"1.7",plugin:{add:function(c,b,e){var a=p.ui[c].prototype;for(var d in e){a.plugins[d]=a.plugins[d]||[];a.plugins[d].push([b,e[d]])}},call:function(d,b,c){var e=d.plugins[b];if(!e||!d.element[0].parentNode){return}for(var a=0;a<e.length;a++){if(d.options[e[a][0]]){e[a][1].apply(d.element,c)}}}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,c){if(p(a).css("overflow")=="hidden"){return false}var d=(c&&c=="left")?"scrollLeft":"scrollTop",b=false;if(a[d]>0){return true}a[d]=1;b=(a[d]>0);a[d]=0;return b},isOverAxis:function(b,c,a){return(b>c)&&(b<(c+a))},isOver:function(e,c,f,a,d,b){return p.ui.isOverAxis(e,f,d)&&p.ui.isOverAxis(c,a,b)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(o){var m=p.attr,n=p.fn.removeAttr,k="http://www.w3.org/2005/07/aaa",r=/^aria-/,q=/^wairole:/;p.attr=function(c,d,b){var a=b!==undefined;return(d=="role"?(a?m.call(this,c,d,"wairole:"+b):(m.apply(this,arguments)||"").replace(q,"")):(r.test(d)?(a?c.setAttributeNS(k,d.replace(r,"aaa:"),b):m.call(this,c,d.replace(r,"aaa:"))):m.apply(this,arguments)))};p.fn.removeAttr=function(a){return(r.test(a)?this.each(function(){this.removeAttributeNS(k,a.replace(r,""))}):n.call(this,a))}}p.fn.extend({remove:function(){p("*",this).add(this).each(function(){p(this).triggerHandler("remove")});return j.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var a;if((p.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){a=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(p.curCSS(this,"position",1))&&(/(auto|scroll)/).test(p.curCSS(this,"overflow",1)+p.curCSS(this,"overflow-y",1)+p.curCSS(this,"overflow-x",1))}).eq(0)}else{a=this.parents().filter(function(){return(/(auto|scroll)/).test(p.curCSS(this,"overflow",1)+p.curCSS(this,"overflow-y",1)+p.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!a.length?p(document):a}});p.extend(p.expr[":"],{data:function(a,b,c){return !!p.data(a,c[3])},focusable:function(b){var a=b.nodeName.toLowerCase(),c=p.attr(b,"tabindex");return(/input|select|textarea|button|object/.test(a)?!b.disabled:"a"==a||"area"==a?b.href||!isNaN(c):!isNaN(c))&&!p(b)["area"==a?"parents":"closest"](":hidden").length},tabbable:function(a){var b=p.attr(a,"tabindex");return(isNaN(b)||b>=0)&&p(a).is(":focusable")}});function l(a,f,e,b){function c(g){var h=p[a][f][g]||[];return(typeof h=="string"?h.split(/,?\s+/):h)}var d=c("getter");if(b.length==1&&typeof b[0]=="string"){d=d.concat(c("getterSetter"))}return(p.inArray(e,d)!=-1)}p.widget=function(b,c){var a=b.split(".")[0];b=b.split(".")[1];p.fn[b]=function(e){var g=(typeof e=="string"),f=Array.prototype.slice.call(arguments,1);if(g&&e.substring(0,1)=="_"){return this}if(g&&l(a,b,e,f)){var d=p.data(this[0],b);return(d?d[e].apply(d,f):undefined)}return this.each(function(){var h=p.data(this,b);(!h&&!g&&p.data(this,b,new p[a][b](this,e))._init());(h&&g&&p.isFunction(h[e])&&h[e].apply(h,f))})};p[a]=p[a]||{};p[a][b]=function(e,f){var d=this;this.namespace=a;this.widgetName=b;this.widgetEventPrefix=p[a][b].eventPrefix||b;this.widgetBaseClass=a+"-"+b;this.options=p.extend({},p.widget.defaults,p[a][b].defaults,p.metadata&&p.metadata.get(e)[b],f);this.element=p(e).bind("setData."+b,function(h,i,g){if(h.target==e){return d._setData(i,g)}}).bind("getData."+b,function(g,h){if(g.target==e){return d._getData(h)}}).bind("remove",function(){return d.destroy()})};p[a][b].prototype=p.extend({},p.widget.prototype,c);p[a][b].getterSetter="option"};p.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(b,a){var c=b,d=this;if(typeof b=="string"){if(a===undefined){return this._getData(b)}c={};c[b]=a}p.each(c,function(f,e){d._setData(f,e)})},_getData:function(a){return this.options[a]},_setData:function(b,a){this.options[b]=a;if(b=="disabled"){this.element[a?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",a)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(b,a,g){var e=this.options[b],d=(b==this.widgetEventPrefix?b:this.widgetEventPrefix+b);a=p.Event(a);a.type=d;if(a.originalEvent){for(var c=p.event.props.length,f;c;){f=p.event.props[--c];a[f]=a.originalEvent[f]}}this.element.trigger(a,g);return !(p.isFunction(e)&&e.call(this.element[0],a,g)===false||a.isDefaultPrevented())}};p.widget.defaults={disabled:false};p.ui.mouse={_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});if(p.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(p.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(b){b.originalEvent=b.originalEvent||{};if(b.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(b));this._mouseDownEvent=b;var c=this,a=(b.which==1),d=(typeof this.options.cancel=="string"?p(b.target).parents().add(b.target).filter(this.options.cancel).length:false);if(!a||d||!this._mouseCapture(b)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=(this._mouseStart(b)!==false);if(!this._mouseStarted){b.preventDefault();return true}}this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};p(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(p.browser.safari||b.preventDefault());b.originalEvent.mouseHandled=true;return true},_mouseMove:function(a){if(p.browser.msie&&!a.button){return this._mouseUp(a)}if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,a)!==false);(this._mouseStarted?this._mouseDrag(a):this._mouseUp(a))}return !this._mouseStarted},_mouseUp:function(a){p(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(a.target==this._mouseDownEvent.target);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return(Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance)},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return true}};p.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);(function(b){b.widget("ui.draggable",b.extend({},b.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(a){var d=this.options;if(this.helper||d.disabled||b(a.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(a);if(!this.handle){return false}return true},_mouseStart:function(a){var d=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(b.ui.ddmanager){b.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;if(d.cursorAt){this._adjustOffsetFromHelper(d.cursorAt)}if(d.containment){this._setContainment()}this._trigger("start",a);this._cacheHelperProportions();if(b.ui.ddmanager&&!d.dropBehaviour){b.ui.ddmanager.prepareOffsets(this,a)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,e){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!e){var f=this._uiHash();this._trigger("drag",a,f);this.position=f.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(b.ui.ddmanager){b.ui.ddmanager.drag(this,a)}return false},_mouseStop:function(f){var e=false;if(b.ui.ddmanager&&!this.options.dropBehaviour){e=b.ui.ddmanager.drop(this,f)}if(this.dropped){e=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!e)||(this.options.revert=="valid"&&e)||this.options.revert===true||(b.isFunction(this.options.revert)&&this.options.revert.call(this.element,e))){var a=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){a._trigger("stop",f);a._clear()})}else{this._trigger("stop",f);this._clear()}return false},_getHandle:function(a){var d=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target){d=true}});return d},_createHelper:function(f){var e=this.options;var a=b.isFunction(e.helper)?b(e.helper.apply(this.element[0],[f])):(e.helper=="clone"?this.element.clone():this.element);if(!a.parents("body").length){a.appendTo((e.appendTo=="parent"?this.element[0].parentNode:e.appendTo))}if(a[0]!=this.element[0]&&!(/(fixed|absolute)/).test(a.css("position"))){a.css("position","absolute")}return a},_adjustOffsetFromHelper:function(a){if(a.left!=undefined){this.offset.click.left=a.left+this.margins.left}if(a.right!=undefined){this.offset.click.left=this.helperProportions.width-a.right+this.margins.left}if(a.top!=undefined){this.offset.click.top=a.top+this.margins.top}if(a.bottom!=undefined){this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)){a={top:0,left:0}}return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var f=this.options;if(f.containment=="parent"){f.containment=this.helper[0].parentNode}if(f.containment=="document"||f.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,b(f.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b(f.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(f.containment)&&f.containment.constructor!=Array){var h=b(f.containment)[0];if(!h){return}var g=b(f.containment).offset();var a=(b(h).css("overflow")!="hidden");this.containment=[g.left+(parseInt(b(h).css("borderLeftWidth"),10)||0)+(parseInt(b(h).css("paddingLeft"),10)||0)-this.margins.left,g.top+(parseInt(b(h).css("borderTopWidth"),10)||0)+(parseInt(b(h).css("paddingTop"),10)||0)-this.margins.top,g.left+(a?Math.max(h.scrollWidth,h.offsetWidth):h.offsetWidth)-(parseInt(b(h).css("borderLeftWidth"),10)||0)-(parseInt(b(h).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,g.top+(a?Math.max(h.scrollHeight,h.offsetHeight):h.offsetHeight)-(parseInt(b(h).css("borderTopWidth"),10)||0)-(parseInt(b(h).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(f.containment.constructor==Array){this.containment=f.containment}}},_convertPositionTo:function(j,d){if(!d){d=this.position}var l=j=="absolute"?1:-1;var k=this.options,a=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(a[0].tagName);return{top:(d.top+this.offset.relative.top*l+this.offset.parent.top*l-(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:a.scrollTop()))*l)),left:(d.left+this.offset.relative.left*l+this.offset.parent.left*l-(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:a.scrollLeft())*l))}},_generatePosition:function(n){var k=this.options,a=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,j=(/(html|body)/i).test(a[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var o=n.pageX;var p=n.pageY;if(this.originalPosition){if(this.containment){if(n.pageX-this.offset.click.left<this.containment[0]){o=this.containment[0]+this.offset.click.left}if(n.pageY-this.offset.click.top<this.containment[1]){p=this.containment[1]+this.offset.click.top}if(n.pageX-this.offset.click.left>this.containment[2]){o=this.containment[2]+this.offset.click.left}if(n.pageY-this.offset.click.top>this.containment[3]){p=this.containment[3]+this.offset.click.top}}if(k.grid){var l=this.originalPageY+Math.round((p-this.originalPageY)/k.grid[1])*k.grid[1];p=this.containment?(!(l-this.offset.click.top<this.containment[1]||l-this.offset.click.top>this.containment[3])?l:(!(l-this.offset.click.top<this.containment[1])?l-k.grid[1]:l+k.grid[1])):l;var m=this.originalPageX+Math.round((o-this.originalPageX)/k.grid[0])*k.grid[0];o=this.containment?(!(m-this.offset.click.left<this.containment[0]||m-this.offset.click.left>this.containment[2])?m:(!(m-this.offset.click.left<this.containment[0])?m-k.grid[0]:m+k.grid[0])):m}}return{top:(p-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(j?0:a.scrollTop())))),left:(o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(b.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():j?0:a.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,f,e){e=e||this._uiHash();b.ui.plugin.call(this,a,[f,e]);if(a=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return b.widget.prototype._trigger.call(this,a,f,e)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));b.extend(b.ui.draggable,{version:"1.7",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});b.ui.plugin.add("draggable","connectToSortable",{start:function(j,h){var i=b(this).data("draggable"),g=i.options,a=b.extend({},h,{item:i.element});i.sortables=[];b(g.connectToSortable).each(function(){var c=b.data(this,"sortable");if(c&&!c.options.disabled){i.sortables.push({instance:c,shouldRevert:c.options.revert});c._refreshItems();c._trigger("activate",j,a)}})},stop:function(h,f){var g=b(this).data("draggable"),a=b.extend({},f,{item:g.element});b.each(g.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;g.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(h);this.instance.options.helper=this.instance.options._helper;if(g.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",h,a)}})},drag:function(j,g){var h=b(this).data("draggable"),a=this;var i=function(r){var d=this.offset.click.top,e=this.offset.click.left;var t=this.positionAbs.top,o=this.positionAbs.left;var q=r.height,f=r.width;var c=r.top,s=r.left;return b.ui.isOver(t+d,o+e,c,s,q,f)};b.each(h.sortables,function(c){this.instance.positionAbs=h.positionAbs;this.instance.helperProportions=h.helperProportions;this.instance.offset.click=h.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=b(a).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return g.helper[0]};j.target=this.instance.currentItem[0];this.instance._mouseCapture(j,true);this.instance._mouseStart(j,true,true);this.instance.offset.click.top=h.offset.click.top;this.instance.offset.click.left=h.offset.click.left;this.instance.offset.parent.left-=h.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=h.offset.parent.top-this.instance.offset.parent.top;h._trigger("toSortable",j);h.dropped=this.instance.element;h.currentItem=h.element;this.instance.fromOutside=h}if(this.instance.currentItem){this.instance._mouseDrag(j)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",j,this.instance._uiHash(this.instance));this.instance._mouseStop(j,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}h._trigger("fromSortable",j);h.dropped=false}}})}});b.ui.plugin.add("draggable","cursor",{start:function(h,g){var a=b("body"),f=b(this).data("draggable").options;if(a.css("cursor")){f._cursor=a.css("cursor")}a.css("cursor",f.cursor)},stop:function(a,f){var e=b(this).data("draggable").options;if(e._cursor){b("body").css("cursor",e._cursor)}}});b.ui.plugin.add("draggable","iframeFix",{start:function(a,f){var e=b(this).data("draggable").options;b(e.iframeFix===true?"iframe":e.iframeFix).each(function(){b('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(b(this).offset()).appendTo("body")})},stop:function(a,d){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(h,g){var a=b(g.helper),f=b(this).data("draggable").options;if(a.css("opacity")){f._opacity=a.css("opacity")}a.css("opacity",f.opacity)},stop:function(a,f){var e=b(this).data("draggable").options;if(e._opacity){b(f.helper).css("opacity",e._opacity)}}});b.ui.plugin.add("draggable","scroll",{start:function(f,e){var a=b(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML"){a.overflowOffset=a.scrollParent.offset()}},drag:function(i,h){var j=b(this).data("draggable"),g=j.options,a=false;if(j.scrollParent[0]!=document&&j.scrollParent[0].tagName!="HTML"){if(!g.axis||g.axis!="x"){if((j.overflowOffset.top+j.scrollParent[0].offsetHeight)-i.pageY<g.scrollSensitivity){j.scrollParent[0].scrollTop=a=j.scrollParent[0].scrollTop+g.scrollSpeed}else{if(i.pageY-j.overflowOffset.top<g.scrollSensitivity){j.scrollParent[0].scrollTop=a=j.scrollParent[0].scrollTop-g.scrollSpeed}}}if(!g.axis||g.axis!="y"){if((j.overflowOffset.left+j.scrollParent[0].offsetWidth)-i.pageX<g.scrollSensitivity){j.scrollParent[0].scrollLeft=a=j.scrollParent[0].scrollLeft+g.scrollSpeed}else{if(i.pageX-j.overflowOffset.left<g.scrollSensitivity){j.scrollParent[0].scrollLeft=a=j.scrollParent[0].scrollLeft-g.scrollSpeed}}}}else{if(!g.axis||g.axis!="x"){if(i.pageY-b(document).scrollTop()<g.scrollSensitivity){a=b(document).scrollTop(b(document).scrollTop()-g.scrollSpeed)}else{if(b(window).height()-(i.pageY-b(document).scrollTop())<g.scrollSensitivity){a=b(document).scrollTop(b(document).scrollTop()+g.scrollSpeed)}}}if(!g.axis||g.axis!="y"){if(i.pageX-b(document).scrollLeft()<g.scrollSensitivity){a=b(document).scrollLeft(b(document).scrollLeft()-g.scrollSpeed)}else{if(b(window).width()-(i.pageX-b(document).scrollLeft())<g.scrollSensitivity){a=b(document).scrollLeft(b(document).scrollLeft()+g.scrollSpeed)}}}}if(a!==false&&b.ui.ddmanager&&!g.dropBehaviour){b.ui.ddmanager.prepareOffsets(j,i)}}});b.ui.plugin.add("draggable","snap",{start:function(h,g){var a=b(this).data("draggable"),f=a.options;a.snapElements=[];b(f.snap.constructor!=String?(f.snap.items||":data(draggable)"):f.snap).each(function(){var c=b(this);var d=c.offset();if(this!=a.element[0]){a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:d.top,left:d.left})}})},drag:function(r,D){var J=b(this).data("draggable"),B=J.options;var d=B.snapTolerance;var i=D.offset.left,l=i+J.helperProportions.width,K=D.offset.top,L=K+J.helperProportions.height;for(var o=J.snapElements.length-1;o>=0;o--){var t=J.snapElements[o].left,E=t+J.snapElements[o].width,F=J.snapElements[o].top,C=F+J.snapElements[o].height;if(!((t-d<i&&i<E+d&&F-d<K&&K<C+d)||(t-d<i&&i<E+d&&F-d<L&&L<C+d)||(t-d<l&&l<E+d&&F-d<K&&K<C+d)||(t-d<l&&l<E+d&&F-d<L&&L<C+d))){if(J.snapElements[o].snapping){(J.options.snap.release&&J.options.snap.release.call(J.element,r,b.extend(J._uiHash(),{snapItem:J.snapElements[o].item})))}J.snapElements[o].snapping=false;continue}if(B.snapMode!="inner"){var M=Math.abs(F-L)<=d;var a=Math.abs(C-K)<=d;var H=Math.abs(t-l)<=d;var G=Math.abs(E-i)<=d;if(M){D.position.top=J._convertPositionTo("relative",{top:F-J.helperProportions.height,left:0}).top-J.margins.top}if(a){D.position.top=J._convertPositionTo("relative",{top:C,left:0}).top-J.margins.top}if(H){D.position.left=J._convertPositionTo("relative",{top:0,left:t-J.helperProportions.width}).left-J.margins.left}if(G){D.position.left=J._convertPositionTo("relative",{top:0,left:E}).left-J.margins.left}}var I=(M||a||H||G);if(B.snapMode!="outer"){var M=Math.abs(F-K)<=d;var a=Math.abs(C-L)<=d;var H=Math.abs(t-i)<=d;var G=Math.abs(E-l)<=d;if(M){D.position.top=J._convertPositionTo("relative",{top:F,left:0}).top-J.margins.top}if(a){D.position.top=J._convertPositionTo("relative",{top:C-J.helperProportions.height,left:0}).top-J.margins.top}if(H){D.position.left=J._convertPositionTo("relative",{top:0,left:t}).left-J.margins.left}if(G){D.position.left=J._convertPositionTo("relative",{top:0,left:E-J.helperProportions.width}).left-J.margins.left}}if(!J.snapElements[o].snapping&&(M||a||H||G||I)){(J.options.snap.snap&&J.options.snap.snap.call(J.element,r,b.extend(J._uiHash(),{snapItem:J.snapElements[o].item})))}J.snapElements[o].snapping=(M||a||H||G||I)}}});b.ui.plugin.add("draggable","stack",{start:function(a,h){var f=b(this).data("draggable").options;var g=b.makeArray(b(f.stack.group)).sort(function(c,d){return(parseInt(b(c).css("zIndex"),10)||f.stack.min)-(parseInt(b(d).css("zIndex"),10)||f.stack.min)});b(g).each(function(c){this.style.zIndex=f.stack.min+c});this[0].style.zIndex=f.stack.min+g.length}});b.ui.plugin.add("draggable","zIndex",{start:function(h,g){var a=b(g.helper),f=b(this).data("draggable").options;if(a.css("zIndex")){f._zIndex=a.css("zIndex")}a.css("zIndex",f.zIndex)},stop:function(a,f){var e=b(this).data("draggable").options;if(e._zIndex){b(f.helper).css("zIndex",e._zIndex)}}})})(jQuery);(function(f){f.widget("ui.resizable",f.extend({},f.ui.mouse,{_init:function(){var m=this,b=this.options;this.element.addClass("ui-resizable");f.extend(this,{_aspectRatio:!!(b.aspectRatio),aspectRatio:b.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:b.helper||b.ghost||b.animate?b.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&f.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(f('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=b.handles||(!f(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var a=this.handles.split(",");this.handles={};for(var l=0;l<a.length;l++){var c=f.trim(a[l]),n="ui-resizable-"+c;var i=f('<div class="ui-resizable-handle '+n+'"></div>');if(/sw|se|ne|nw/.test(c)){i.css({zIndex:++b.zIndex})}if("se"==c){i.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[c]=".ui-resizable-"+c;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var g in this.handles){if(this.handles[g].constructor==String){this.handles[g]=f(this.handles[g],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var q=f(this.handles[g],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(g)?q.outerHeight():q.outerWidth();var h=["padding",/ne|nw|n/.test(g)?"Top":/se|sw|s/.test(g)?"Bottom":/^e$/.test(g)?"Right":"Left"].join("");j.css(h,k);this._proportionallyResize()}if(!f(this.handles[g]).length){continue}}};this._renderAxis(this.element);this._handles=f(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!m.resizing){if(this.className){var g=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}m.axis=g&&g[1]?g[1]:"se"}});if(b.autoHide){this._handles.hide();f(this.element).addClass("ui-resizable-autohide").hover(function(){f(this).removeClass("ui-resizable-autohide");m._handles.show()},function(){if(!m.resizing){f(this).addClass("ui-resizable-autohide");m._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){f(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.parent().append(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement)},_mouseCapture:function(b){var a=false;for(var c in this.handles){if(f(this.handles[c])[0]==b.target){a=true}}return this.options.disabled||!!a},_mouseStart:function(l){var b=this.options,m=this.element.position(),n=this.element;this.resizing=true;this.documentScroll={top:f(document).scrollTop(),left:f(document).scrollLeft()};if(n.is(".ui-draggable")||(/absolute/).test(n.css("position"))){n.css({position:"absolute",top:m.top,left:m.left})}if(f.browser.opera&&(/relative/).test(n.css("position"))){n.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var a=d(this.helper.css("left")),k=d(this.helper.css("top"));if(b.containment){a+=f(b.containment).scrollLeft()||0;k+=f(b.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:a,top:k};this.size=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()};this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()};this.originalPosition={left:a,top:k};this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()};this.originalMousePosition={left:l.pageX,top:l.pageY};this.aspectRatio=(typeof b.aspectRatio=="number")?b.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var c=f(".ui-resizable-"+this.axis).css("cursor");f("body").css("cursor",c=="auto"?this.axis+"-resize":c);n.addClass("ui-resizable-resizing");this._propagate("start",l);return true},_mouseDrag:function(z){var w=this.helper,x=this.options,r={},b=this,u=this.originalMousePosition,o=this.axis;var a=(z.pageX-u.left)||0,c=(z.pageY-u.top)||0;var v=this._change[o];if(!v){return false}var s=v.apply(this,[z,a,c]),t=f.browser.msie&&f.browser.version<7,y=this.sizeDiff;if(this._aspectRatio||z.shiftKey){s=this._updateRatio(s,z)}s=this._respectSize(s,z);this._propagate("resize",z);w.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(s);this._trigger("resize",z,this.ui());return false},_mouseStop:function(q){this.resizing=false;var p=this.options,b=this;if(this._helper){var r=this._proportionallyResizeElements,t=r.length&&(/textarea/i).test(r[0].nodeName),s=t&&f.ui.hasScroll(r[0],"left")?0:b.sizeDiff.height,n=t?0:b.sizeDiff.width;var a={width:(b.size.width-n),height:(b.size.height-s)},o=(parseInt(b.element.css("left"),10)+(b.position.left-b.originalPosition.left))||null,c=(parseInt(b.element.css("top"),10)+(b.position.top-b.originalPosition.top))||null;if(!p.animate){this.element.css(f.extend(a,{top:c,left:o}))}b.helper.height(b.size.height);b.helper.width(b.size.width);if(this._helper&&!p.animate){this._proportionallyResize()}}f("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",q);if(this._helper){this.helper.remove()}return false},_updateCache:function(b){var a=this.options;this.offset=this.helper.offset();if(e(b.left)){this.position.left=b.left}if(e(b.top)){this.position.top=b.top}if(e(b.height)){this.size.height=b.height}if(e(b.width)){this.size.width=b.width}},_updateRatio:function(c,j){var b=this.options,a=this.position,k=this.size,l=this.axis;if(c.height){c.width=(k.height*this.aspectRatio)}else{if(c.width){c.height=(k.width/this.aspectRatio)}}if(l=="sw"){c.left=a.left+(k.width-c.width);c.top=null}if(l=="nw"){c.top=a.top+(k.height-c.height);c.left=a.left+(k.width-c.width)}return c},_respectSize:function(v,A){var x=this.helper,y=this.options,b=this._aspectRatio||A.shiftKey,c=this.axis,D=e(v.width)&&y.maxWidth&&(y.maxWidth<v.width),u=e(v.height)&&y.maxHeight&&(y.maxHeight<v.height),z=e(v.width)&&y.minWidth&&(y.minWidth>v.width),a=e(v.height)&&y.minHeight&&(y.minHeight>v.height);if(z){v.width=y.minWidth}if(a){v.height=y.minHeight}if(D){v.width=y.maxWidth}if(u){v.height=y.maxHeight}var B=this.originalPosition.left+this.originalSize.width,o=this.position.top+this.size.height;var w=/sw|nw|w/.test(c),C=/nw|ne|n/.test(c);if(z&&w){v.left=B-y.minWidth}if(D&&w){v.left=B-y.maxWidth}if(a&&C){v.top=o-y.minHeight}if(u&&C){v.top=o-y.maxHeight}var t=!v.width&&!v.height;if(t&&!v.left&&v.top){v.top=null}else{if(t&&!v.top&&v.left){v.left=null}}return v},_proportionallyResize:function(){var a=this.options;if(!this._proportionallyResizeElements.length){return}var i=this.helper||this.element;for(var k=0;k<this._proportionallyResizeElements.length;k++){var c=this._proportionallyResizeElements[k];if(!this.borderDif){var l=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],b=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=f.map(l,function(j,g){var h=parseInt(j,10)||0,o=parseInt(b[g],10)||0;return h+o})}if(f.browser.msie&&!(!(f(i).is(":hidden")||f(i).parents(":hidden").length))){continue}c.css({height:(i.height()-this.borderDif[0]-this.borderDif[2])||0,width:(i.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var i=this.element,a=this.options;this.elementOffset=i.offset();if(this._helper){this.helper=this.helper||f('<div style="overflow:hidden;"></div>');var j=f.browser.msie&&f.browser.version<7,c=(j?1:0),b=(j?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+b,height:this.element.outerHeight()+b,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++a.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(c,k,l){var a=this.options,j=this.originalSize,b=this.originalPosition;return{left:b.left+k,width:j.width-k}},n:function(c,k,l){var a=this.options,j=this.originalSize,b=this.originalPosition;return{top:b.top+l,height:j.height-l}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(a,b,c){return f.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[a,b,c]))},sw:function(a,b,c){return f.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[a,b,c]))},ne:function(a,b,c){return f.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[a,b,c]))},nw:function(a,b,c){return f.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[a,b,c]))}},_propagate:function(a,b){f.ui.plugin.call(this,a,[b,this.ui()]);(a!="resize"&&this._trigger(a,b,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));f.extend(f.ui.resizable,{version:"1.7",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});f.ui.plugin.add("resizable","alsoResize",{start:function(c,b){var h=f(this).data("resizable"),a=h.options;_store=function(g){f(g).each(function(){f(this).data("resizable-alsoresize",{width:parseInt(f(this).width(),10),height:parseInt(f(this).height(),10),left:parseInt(f(this).css("left"),10),top:parseInt(f(this).css("top"),10)})})};if(typeof(a.alsoResize)=="object"&&!a.alsoResize.parentNode){if(a.alsoResize.length){a.alsoResize=a.alsoResize[0];_store(a.alsoResize)}else{f.each(a.alsoResize,function(j,g){_store(j)})}}else{_store(a.alsoResize)}},resize:function(n,l){var o=f(this).data("resizable"),c=o.options,m=o.originalSize,a=o.originalPosition;var b={height:(o.size.height-m.height)||0,width:(o.size.width-m.width)||0,top:(o.position.top-a.top)||0,left:(o.position.left-a.left)||0},p=function(h,g){f(h).each(function(){var j=f(this),i=f(this).data("resizable-alsoresize"),k={},r=g&&g.length?g:["width","height","top","left"];f.each(r||["width","height","top","left"],function(v,q){var u=(i[q]||0)+(b[q]||0);if(u&&u>=0){k[q]=u||null}});if(/relative/.test(j.css("position"))&&f.browser.opera){o._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(k)})};if(typeof(c.alsoResize)=="object"&&!c.alsoResize.nodeType){f.each(c.alsoResize,function(h,g){p(h,g)})}else{p(c.alsoResize)}},stop:function(b,a){var c=f(this).data("resizable");if(c._revertToRelativePosition&&f.browser.opera){c._revertToRelativePosition=false;el.css({position:"relative"})}f(this).removeData("resizable-alsoresize-start")}});f.ui.plugin.add("resizable","animate",{stop:function(r,b){var a=f(this).data("resizable"),q=a.options;var s=a._proportionallyResizeElements,v=s.length&&(/textarea/i).test(s[0].nodeName),u=v&&f.ui.hasScroll(s[0],"left")?0:a.sizeDiff.height,o=v?0:a.sizeDiff.width;var t={width:(a.size.width-o),height:(a.size.height-u)},p=(parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left))||null,c=(parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top))||null;a.element.animate(f.extend(t,c&&p?{top:c,left:p}:{}),{duration:q.animateDuration,easing:q.animateEasing,step:function(){var g={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};if(s&&s.length){f(s[0]).css({width:g.width,height:g.height})}a._updateCache(g);a._propagate("resize",r)}})}});f.ui.plugin.add("resizable","containment",{start:function(z,b){var B=f(this).data("resizable"),v=B.options,t=B.element;var y=v.containment,u=(y instanceof f)?y.get(0):(/parent/.test(y))?t.parent().get(0):y;if(!u){return}B.containerElement=f(u);if(/document/.test(y)||y==document){B.containerOffset={left:0,top:0};B.containerPosition={left:0,top:0};B.parentData={element:f(document),left:0,top:0,width:f(document).width(),height:f(document).height()||document.body.parentNode.scrollHeight}}else{var o=f(u),w=[];f(["Top","Right","Left","Bottom"]).each(function(g,h){w[g]=d(o.css("padding"+h))});B.containerOffset=o.offset();B.containerPosition=o.position();B.containerSize={height:(o.innerHeight()-w[3]),width:(o.innerWidth()-w[1])};var c=B.containerOffset,A=B.containerSize.height,p=B.containerSize.width,x=(f.ui.hasScroll(u,"left")?u.scrollWidth:p),a=(f.ui.hasScroll(u)?u.scrollHeight:A);B.parentData={element:u,left:c.left,top:c.top,width:x,height:a}}},resize:function(A,c){var D=f(this).data("resizable"),y=D.options,B=D.containerSize,o=D.containerOffset,u=D.size,t=D.position,b=y._aspectRatio||A.shiftKey,C={top:0,left:0},z=D.containerElement;if(z[0]!=document&&(/static/).test(z.css("position"))){C=o}if(t.left<(D._helper?o.left:0)){D.size.width=D.size.width+(D._helper?(D.position.left-o.left):(D.position.left-C.left));if(b){D.size.height=D.size.width/y.aspectRatio}D.position.left=y.helper?o.left:0}if(t.top<(D._helper?o.top:0)){D.size.height=D.size.height+(D._helper?(D.position.top-o.top):D.position.top);if(b){D.size.width=D.size.height*y.aspectRatio}D.position.top=D._helper?o.top:0}D.offset.left=D.parentData.left+D.position.left;D.offset.top=D.parentData.top+D.position.top;var v=Math.abs((D._helper?D.offset.left-C.left:(D.offset.left-C.left))+D.sizeDiff.width),a=Math.abs((D._helper?D.offset.top-C.top:(D.offset.top-o.top))+D.sizeDiff.height);var w=D.containerElement.get(0)==D.element.parent().get(0),x=/relative|absolute/.test(D.containerElement.css("position"));if(w&&x){v-=D.parentData.left}if(v+D.size.width>=D.parentData.width){D.size.width=D.parentData.width-v;if(b){D.size.height=D.size.width/y.aspectRatio}}if(a+D.size.height>=D.parentData.height){D.size.height=D.parentData.height-a;if(b){D.size.width=D.size.height*y.aspectRatio}}},stop:function(w,h){var b=f(this).data("resizable"),v=b.options,r=b.position,o=b.containerOffset,x=b.containerPosition,u=b.containerElement;var t=f(b.helper),a=t.offset(),c=t.outerWidth()-b.sizeDiff.width,s=t.outerHeight()-b.sizeDiff.height;if(b._helper&&!v.animate&&(/relative/).test(u.css("position"))){f(this).css({left:a.left-x.left-o.left,width:c,height:s})}if(b._helper&&!v.animate&&(/static/).test(u.css("position"))){f(this).css({left:a.left-x.left-o.left,width:c,height:s})}}});f.ui.plugin.add("resizable","ghost",{start:function(c,b){var j=f(this).data("resizable"),a=j.options,i=j.size;j.ghost=j.originalElement.clone();j.ghost.css({opacity:0.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");j.ghost.appendTo(j.helper)},resize:function(c,b){var h=f(this).data("resizable"),a=h.options;if(h.ghost){h.ghost.css({position:"relative",height:h.size.height,width:h.size.width})}},stop:function(c,b){var h=f(this).data("resizable"),a=h.options;if(h.ghost&&h.helper){h.helper.get(0).removeChild(h.ghost.get(0))}}});f.ui.plugin.add("resizable","grid",{resize:function(v,c){var a=f(this).data("resizable"),s=a.options,p=a.size,r=a.originalSize,q=a.originalPosition,b=a.axis,o=s._aspectRatio||v.shiftKey;s.grid=typeof s.grid=="number"?[s.grid,s.grid]:s.grid;var t=Math.round((p.width-r.width)/(s.grid[0]||1))*(s.grid[0]||1),u=Math.round((p.height-r.height)/(s.grid[1]||1))*(s.grid[1]||1);if(/^(se|s|e)$/.test(b)){a.size.width=r.width+t;a.size.height=r.height+u}else{if(/^(ne)$/.test(b)){a.size.width=r.width+t;a.size.height=r.height+u;a.position.top=q.top-u}else{if(/^(sw)$/.test(b)){a.size.width=r.width+t;a.size.height=r.height+u;a.position.left=q.left-t}else{a.size.width=r.width+t;a.size.height=r.height+u;a.position.top=q.top-u;a.position.left=q.left-t}}}}});var d=function(a){return parseInt(a,10)||0};var e=function(a){return !isNaN(parseInt(a,10))}})(jQuery);(function(f){var d={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},e="ui-dialog ui-widget ui-widget-content ui-corner-all ";f.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var b=this,a=this.options,n=a.title||this.originalTitle||"&nbsp;",s=f.ui.dialog.getTitleId(this.element),c=(this.uiDialog=f("<div/>")).appendTo(document.body).hide().addClass(e+a.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:a.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(g){(a.closeOnEscape&&g.keyCode&&g.keyCode==f.ui.keyCode.ESCAPE&&b.close(g))}).attr({role:"dialog","aria-labelledby":s}).mousedown(function(g){b.moveToTop(false,g)}),q=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(c),r=(this.uiDialogTitlebar=f("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(c),o=f('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){o.addClass("ui-state-hover")},function(){o.removeClass("ui-state-hover")}).focus(function(){o.addClass("ui-state-focus")}).blur(function(){o.removeClass("ui-state-focus")}).mousedown(function(g){g.stopPropagation()}).click(function(g){b.close(g);return false}).appendTo(r),p=(this.uiDialogTitlebarCloseText=f("<span/>")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(o),t=f("<span/>").addClass("ui-dialog-title").attr("id",s).html(n).prependTo(r);r.find("*").add(r).disableSelection();(a.draggable&&f.fn.draggable&&this._makeDraggable());(a.resizable&&f.fn.resizable&&this._makeResizable());this._createButtons(a.buttons);this._isOpen=false;(a.bgiframe&&f.fn.bgiframe&&c.bgiframe());(a.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(a){var b=this;if(false===b._trigger("beforeclose",a)){return}(b.overlay&&b.overlay.destroy());b.uiDialog.unbind("keypress.ui-dialog");(b.options.hide?b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)}):b.uiDialog.hide()&&b._trigger("close",a));f.ui.dialog.overlay.resize();b._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(a,b){if((this.options.modal&&!a)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",b)}if(this.options.zIndex>f.ui.dialog.maxZ){f.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",f.ui.dialog.overlay.maxZ=++f.ui.dialog.maxZ));var c={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++f.ui.dialog.maxZ);this.element.attr(c);this._trigger("focus",b)},open:function(){if(this._isOpen){return}var a=this.options,b=this.uiDialog;this.overlay=a.modal?new f.ui.dialog.overlay(this):null;(b.next().length&&b.appendTo("body"));this._size();this._position(a.position);b.show(a.show);this.moveToTop(true);(a.modal&&b.bind("keypress.ui-dialog",function(j){if(j.keyCode!=f.ui.keyCode.TAB){return}var k=f(":tabbable",this),c=k.filter(":first")[0],l=k.filter(":last")[0];if(j.target==l&&!j.shiftKey){setTimeout(function(){c.focus()},1)}else{if(j.target==c&&j.shiftKey){setTimeout(function(){l.focus()},1)}}}));f([]).add(b.find(".ui-dialog-content :tabbable:first")).add(b.find(".ui-dialog-buttonpane :tabbable:first")).add(b).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(a){var b=this,h=false,c=f("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof a=="object"&&a!==null&&f.each(a,function(){return !(h=true)}));if(h){f.each(a,function(j,g){f('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(j).click(function(){g.apply(b.element[0],arguments)}).hover(function(){f(this).addClass("ui-state-hover")},function(){f(this).removeClass("ui-state-hover")}).focus(function(){f(this).addClass("ui-state-focus")}).blur(function(){f(this).removeClass("ui-state-focus")}).appendTo(c)});c.appendTo(this.uiDialog)}},_makeDraggable:function(){var c=this,a=this.options,b;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){b=a.height;f(this).height(f(this).height()).addClass("ui-dialog-dragging");(a.dragStart&&a.dragStart.apply(c.element[0],arguments))},drag:function(){(a.drag&&a.drag.apply(c.element[0],arguments))},stop:function(){f(this).removeClass("ui-dialog-dragging").height(b);(a.dragStop&&a.dragStop.apply(c.element[0],arguments));f.ui.dialog.overlay.resize()}})},_makeResizable:function(a){a=(a===undefined?this.options.resizable:a);var h=this,b=this.options,c=typeof a=="string"?a:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:b.maxWidth,maxHeight:b.maxHeight,minWidth:b.minWidth,minHeight:b.minHeight,start:function(){f(this).addClass("ui-dialog-resizing");(b.resizeStart&&b.resizeStart.apply(h.element[0],arguments))},resize:function(){(b.resize&&b.resize.apply(h.element[0],arguments))},handles:c,stop:function(){f(this).removeClass("ui-dialog-resizing");b.height=f(this).height();b.width=f(this).width();(b.resizeStop&&b.resizeStop.apply(h.element[0],arguments));f.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(a){var k=f(window),j=f(document),c=j.scrollTop(),l=j.scrollLeft(),b=c;if(f.inArray(a,["center","top","right","bottom","left"])>=0){a=[a=="right"||a=="left"?a:"center",a=="top"||a=="bottom"?a:"middle"]}if(a.constructor!=Array){a=["center","middle"]}if(a[0].constructor==Number){l+=a[0]}else{switch(a[0]){case"left":l+=0;break;case"right":l+=k.width()-this.uiDialog.outerWidth();break;default:case"center":l+=(k.width()-this.uiDialog.outerWidth())/2}}if(a[1].constructor==Number){c+=a[1]}else{switch(a[1]){case"top":c+=0;break;case"bottom":c+=k.height()-this.uiDialog.outerHeight();break;default:case"middle":c+=(k.height()-this.uiDialog.outerHeight())/2}}c=Math.max(c,b);this.uiDialog.css({top:c,left:l})},_setData:function(c,b){(d[c]&&this.uiDialog.data(d[c],b));switch(c){case"buttons":this._createButtons(b);break;case"closeText":this.uiDialogTitlebarCloseText.text(b);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(e+b);break;case"draggable":(b?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(b);break;case"position":this._position(b);break;case"resizable":var h=this.uiDialog,a=this.uiDialog.is(":data(resizable)");(a&&!b&&h.resizable("destroy"));(a&&typeof b=="string"&&h.resizable("option","handles",b));(a||this._makeResizable(b));break;case"title":f(".ui-dialog-title",this.uiDialogTitlebar).html(b||"&nbsp;");break;case"width":this.uiDialog.width(b);break}f.widget.prototype._setData.apply(this,arguments)},_size:function(){var a=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css({minHeight:Math.max(a.minHeight-b,0),height:a.height=="auto"?"auto":Math.max(a.height-b,0)})}});f.extend(f.ui.dialog,{version:"1.7",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(a){return"ui-dialog-title-"+(a.attr("id")||++this.uuid)},overlay:function(a){this.$el=f.ui.dialog.overlay.create(a)}});f.extend(f.ui.dialog.overlay,{instances:[],maxZ:0,events:f.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){f(document).bind(f.ui.dialog.overlay.events,function(h){var c=f(h.target).parents(".ui-dialog").css("zIndex")||0;return(c>f.ui.dialog.overlay.maxZ)})},1);f(document).bind("keydown.dialog-overlay",function(c){(a.options.closeOnEscape&&c.keyCode&&c.keyCode==f.ui.keyCode.ESCAPE&&a.close(c))});f(window).bind("resize.dialog-overlay",f.ui.dialog.overlay.resize)}var b=f("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(a.options.bgiframe&&f.fn.bgiframe&&b.bgiframe());this.instances.push(b);return b},destroy:function(a){this.instances.splice(f.inArray(this.instances,a),1);if(this.instances.length===0){f([document,window]).unbind(".dialog-overlay")}a.remove()},height:function(){if(f.browser.msie&&f.browser.version<7){var a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(a<b){return f(window).height()+"px"}else{return a+"px"}}else{return f(document).height()+"px"}},width:function(){if(f.browser.msie&&f.browser.version<7){var b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var a=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(b<a){return f(window).width()+"px"}else{return b+"px"}}else{return f(document).width()+"px"}},resize:function(){var a=f([]);f.each(f.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:f.ui.dialog.overlay.width(),height:f.ui.dialog.overlay.height()})}});f.extend(f.ui.dialog.overlay.prototype,{destroy:function(){f.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);(function($){$.extend($.ui,{datepicker:{version:"1.7"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",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"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");var trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](trigger);trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){$target.siblings("."+this._appendClass).remove().end().siblings("."+this._triggerClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=false}).end().siblings("img."+this._triggerClass).css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=true}).end().siblings("img."+this._triggerClass).css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}var inst=this._getInst(target);if(inst){if(this._curInst==inst){this._hideDatepicker(null)}extendRemove(inst.settings,settings);var date=new Date();extendRemove(inst,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:date.getDate(),selectedMonth:date.getMonth(),selectedYear:date.getFullYear(),currentDay:date.getDate(),currentMonth:date.getMonth(),currentYear:date.getFullYear(),drawMonth:date.getMonth(),drawYear:date.getFullYear()});this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7";window.DP_jQuery=$})(jQuery);jQuery.effects||(function(i){i.effects={version:"1.7",save:function(b,a){for(var c=0;c<a.length;c++){if(a[c]!==null){b.data("ec.storage."+a[c],b[0].style[a[c]])}}},restore:function(b,a){for(var c=0;c<a.length;c++){if(a[c]!==null){b.css(a[c],b.data("ec.storage."+a[c]))}}},setMode:function(b,a){if(a=="toggle"){a=b.is(":hidden")?"show":"hide"}return a},getBaseline:function(c,b){var a,d;switch(c[0]){case"top":a=0;break;case"middle":a=0.5;break;case"bottom":a=1;break;default:a=c[0]/b.height}switch(c[1]){case"left":d=0;break;case"center":d=0.5;break;case"right":d=1;break;default:d=c[1]/b.width}return{x:d,y:a}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper")){return e.parent()}var d={width:e.outerWidth(true),height:e.outerHeight(true),"float":e.css("float")};e.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var a=e.parent();if(e.css("position")=="static"){a.css({position:"relative"});e.css({position:"relative"})}else{var b=e.css("top");if(isNaN(parseInt(b,10))){b="auto"}var c=e.css("left");if(isNaN(parseInt(c,10))){c="auto"}a.css({position:e.css("position"),top:b,left:c,zIndex:e.css("z-index")}).show();e.css({position:"relative",top:0,left:0})}a.css(d);return a},removeWrapper:function(a){if(a.parent().is(".ui-effects-wrapper")){return a.parent().replaceWith(a)}return a},setTransition:function(c,a,d,b){b=b||{};i.each(a,function(e,l){unit=c.cssUnit(l);if(unit[0]>0){b[l]=unit[0]*d+unit[1]}});return b},animateClass:function(d,c,a,b){var l=(typeof a=="function"?a:(b?b:null));var e=(typeof a=="string"?a:null);return this.each(function(){var t={};var v=i(this);var u=v.attr("style")||"";if(typeof u=="object"){u=u.cssText}if(d.toggle){v.hasClass(d.toggle)?d.remove=d.toggle:d.add=d.toggle}var n=i.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(d.add){v.addClass(d.add)}if(d.remove){v.removeClass(d.remove)}var k=i.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(d.add){v.removeClass(d.add)}if(d.remove){v.addClass(d.remove)}for(var s in k){if(typeof k[s]!="function"&&k[s]&&s.indexOf("Moz")==-1&&s.indexOf("length")==-1&&k[s]!=n[s]&&(s.match(/color/i)||(!s.match(/color/i)&&!isNaN(parseInt(k[s],10))))&&(n.position!="static"||(n.position=="static"&&!s.match(/left|top|bottom|right/)))){t[s]=k[s]}}v.animate(t,c,e,function(){if(typeof i(this).attr("style")=="object"){i(this).attr("style")["cssText"]="";i(this).attr("style")["cssText"]=u}else{i(this).attr("style",u)}if(d.add){i(this).addClass(d.add)}if(d.remove){i(this).removeClass(d.remove)}if(l){l.apply(this,arguments)}})})}};function j(d,e){var b=d[1]&&d[1].constructor==Object?d[1]:{};if(e){b.mode=e}var c=d[1]&&d[1].constructor!=Object?d[1]:(b.duration?b.duration:d[2]);c=i.fx.off?0:typeof c==="number"?c:i.fx.speeds[c]||i.fx.speeds._default;var a=b.callback||(i.isFunction(d[1])&&d[1])||(i.isFunction(d[2])&&d[2])||(i.isFunction(d[3])&&d[3]);return[d[0],b,c,a]}i.fn.extend({_show:i.fn.show,_hide:i.fn.hide,__toggle:i.fn.toggle,_addClass:i.fn.addClass,_removeClass:i.fn.removeClass,_toggleClass:i.fn.toggleClass,effect:function(c,d,b,a){return i.effects[c]?i.effects[c].call(this,{method:c,options:d||{},duration:b,callback:a}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,j(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,j(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(arguments[0].constructor==Function)){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,j(arguments,"toggle"))}},addClass:function(c,d,a,b){return d?i.effects.animateClass.apply(this,[{add:c},d,a,b]):this._addClass(c)},removeClass:function(c,d,a,b){return d?i.effects.animateClass.apply(this,[{remove:c},d,a,b]):this._removeClass(c)},toggleClass:function(c,d,a,b){return((typeof d!=="boolean")&&d)?i.effects.animateClass.apply(this,[{toggle:c},d,a,b]):this._toggleClass(c,d)},morph:function(e,c,d,a,b){return i.effects.animateClass.apply(this,[{add:c,remove:e},d,a,b])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(c){var b=this.css(c),a=[];i.each(["em","px","%","pt"],function(e,d){if(b.indexOf(d)>0){a=[parseFloat(b),d]}});return a}});i.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(a,b){i.fx.step[b]=function(c){if(c.state==0){c.start=h(c.elem,b);c.end=f(c.end)}c.elem.style[b]="rgb("+[Math.max(Math.min(parseInt((c.pos*(c.end[0]-c.start[0]))+c.start[0],10),255),0),Math.max(Math.min(parseInt((c.pos*(c.end[1]-c.start[1]))+c.start[1],10),255),0),Math.max(Math.min(parseInt((c.pos*(c.end[2]-c.start[2]))+c.start[2],10),255),0)].join(",")+")"}});function f(a){var b;if(a&&a.constructor==Array&&a.length==3){return a}if(b=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a)){return[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10)]}if(b=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(a)){return[parseFloat(b[1])*2.55,parseFloat(b[2])*2.55,parseFloat(b[3])*2.55]}if(b=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a)){return[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]}if(b=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(a)){return[parseInt(b[1]+b[1],16),parseInt(b[2]+b[2],16),parseInt(b[3]+b[3],16)]}if(b=/rgba\(0, 0, 0, 0\)/.exec(a)){return g.transparent}return g[i.trim(a).toLowerCase()]}function h(a,c){var b;do{b=i.curCSS(a,c);if(b!=""&&b!="transparent"||i.nodeName(a,"body")){break}c="backgroundColor"}while(a=a.parentNode);return f(b)}var g={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};i.easing.jswing=i.easing.swing;i.extend(i.easing,{def:"easeOutQuad",swing:function(d,c,e,a,b){return i.easing[i.easing.def](d,c,e,a,b)},easeInQuad:function(d,c,e,a,b){return a*(c/=b)*c+e},easeOutQuad:function(d,c,e,a,b){return -a*(c/=b)*(c-2)+e},easeInOutQuad:function(d,c,e,a,b){if((c/=b/2)<1){return a/2*c*c+e}return -a/2*((--c)*(c-2)-1)+e},easeInCubic:function(d,c,e,a,b){return a*(c/=b)*c*c+e},easeOutCubic:function(d,c,e,a,b){return a*((c=c/b-1)*c*c+1)+e},easeInOutCubic:function(d,c,e,a,b){if((c/=b/2)<1){return a/2*c*c*c+e}return a/2*((c-=2)*c*c+2)+e},easeInQuart:function(d,c,e,a,b){return a*(c/=b)*c*c*c+e},easeOutQuart:function(d,c,e,a,b){return -a*((c=c/b-1)*c*c*c-1)+e},easeInOutQuart:function(d,c,e,a,b){if((c/=b/2)<1){return a/2*c*c*c*c+e}return -a/2*((c-=2)*c*c*c-2)+e},easeInQuint:function(d,c,e,a,b){return a*(c/=b)*c*c*c*c+e},easeOutQuint:function(d,c,e,a,b){return a*((c=c/b-1)*c*c*c*c+1)+e},easeInOutQuint:function(d,c,e,a,b){if((c/=b/2)<1){return a/2*c*c*c*c*c+e}return a/2*((c-=2)*c*c*c*c+2)+e},easeInSine:function(d,c,e,a,b){return -a*Math.cos(c/b*(Math.PI/2))+a+e},easeOutSine:function(d,c,e,a,b){return a*Math.sin(c/b*(Math.PI/2))+e},easeInOutSine:function(d,c,e,a,b){return -a/2*(Math.cos(Math.PI*c/b)-1)+e},easeInExpo:function(d,c,e,a,b){return(c==0)?e:a*Math.pow(2,10*(c/b-1))+e},easeOutExpo:function(d,c,e,a,b){return(c==b)?e+a:a*(-Math.pow(2,-10*c/b)+1)+e},easeInOutExpo:function(d,c,e,a,b){if(c==0){return e}if(c==b){return e+a}if((c/=b/2)<1){return a/2*Math.pow(2,10*(c-1))+e}return a/2*(-Math.pow(2,-10*--c)+2)+e},easeInCirc:function(d,c,e,a,b){return -a*(Math.sqrt(1-(c/=b)*c)-1)+e},easeOutCirc:function(d,c,e,a,b){return a*Math.sqrt(1-(c=c/b-1)*c)+e},easeInOutCirc:function(d,c,e,a,b){if((c/=b/2)<1){return -a/2*(Math.sqrt(1-c*c)-1)+e}return a/2*(Math.sqrt(1-(c-=2)*c)+1)+e},easeInElastic:function(o,e,p,a,b){var d=1.70158;var c=0;var n=a;if(e==0){return p}if((e/=b)==1){return p+a}if(!c){c=b*0.3}if(n<Math.abs(a)){n=a;var d=c/4}else{var d=c/(2*Math.PI)*Math.asin(a/n)}return -(n*Math.pow(2,10*(e-=1))*Math.sin((e*b-d)*(2*Math.PI)/c))+p},easeOutElastic:function(o,e,p,a,b){var d=1.70158;var c=0;var n=a;if(e==0){return p}if((e/=b)==1){return p+a}if(!c){c=b*0.3}if(n<Math.abs(a)){n=a;var d=c/4}else{var d=c/(2*Math.PI)*Math.asin(a/n)}return n*Math.pow(2,-10*e)*Math.sin((e*b-d)*(2*Math.PI)/c)+a+p},easeInOutElastic:function(o,e,p,a,b){var d=1.70158;var c=0;var n=a;if(e==0){return p}if((e/=b/2)==2){return p+a}if(!c){c=b*(0.3*1.5)}if(n<Math.abs(a)){n=a;var d=c/4}else{var d=c/(2*Math.PI)*Math.asin(a/n)}if(e<1){return -0.5*(n*Math.pow(2,10*(e-=1))*Math.sin((e*b-d)*(2*Math.PI)/c))+p}return n*Math.pow(2,-10*(e-=1))*Math.sin((e*b-d)*(2*Math.PI)/c)*0.5+a+p},easeInBack:function(e,d,l,a,b,c){if(c==undefined){c=1.70158}return a*(d/=b)*d*((c+1)*d-c)+l},easeOutBack:function(e,d,l,a,b,c){if(c==undefined){c=1.70158}return a*((d=d/b-1)*d*((c+1)*d+c)+1)+l},easeInOutBack:function(e,d,l,a,b,c){if(c==undefined){c=1.70158}if((d/=b/2)<1){return a/2*(d*d*(((c*=(1.525))+1)*d-c))+l}return a/2*((d-=2)*d*(((c*=(1.525))+1)*d+c)+2)+l},easeInBounce:function(d,c,e,a,b){return a-i.easing.easeOutBounce(d,b-c,0,a,b)+e},easeOutBounce:function(d,c,e,a,b){if((c/=b)<(1/2.75)){return a*(7.5625*c*c)+e}else{if(c<(2/2.75)){return a*(7.5625*(c-=(1.5/2.75))*c+0.75)+e}else{if(c<(2.5/2.75)){return a*(7.5625*(c-=(2.25/2.75))*c+0.9375)+e}else{return a*(7.5625*(c-=(2.625/2.75))*c+0.984375)+e}}}},easeInOutBounce:function(d,c,e,a,b){if(c<b/2){return i.easing.easeInBounce(d,c*2,0,a,b)*0.5+e}return i.easing.easeOutBounce(d,c*2-b,0,a,b)*0.5+a*0.5+e}})})(jQuery);(function(b){b.effects.blind=function(a){return this.queue(function(){var q=b(this),r=["position","top","left"];var m=b.effects.setMode(q,a.options.mode||"hide");var n=a.options.direction||"vertical";b.effects.save(q,r);q.show();var k=b.effects.createWrapper(q).css({overflow:"hidden"});var p=(n=="vertical")?"height":"width";var l=(n=="vertical")?k.height():k.width();if(m=="show"){k.css(p,0)}var o={};o[p]=m=="show"?l:0;k.animate(o,a.duration,a.options.easing,function(){if(m=="hide"){q.hide()}b.effects.restore(q,r);b.effects.removeWrapper(q);if(a.callback){a.callback.apply(q[0],arguments)}q.dequeue()})})}})(jQuery);(function(b){b.effects.drop=function(a){return this.queue(function(){var p=b(this),q=["position","top","left","opacity"];var l=b.effects.setMode(p,a.options.mode||"hide");var m=a.options.direction||"left";b.effects.save(p,q);p.show();b.effects.createWrapper(p);var o=(m=="up"||m=="down")?"top":"left";var r=(m=="up"||m=="left")?"pos":"neg";var k=a.options.distance||(o=="top"?p.outerHeight({margin:true})/2:p.outerWidth({margin:true})/2);if(l=="show"){p.css("opacity",0).css(o,r=="pos"?-k:k)}var n={opacity:l=="show"?1:0};n[o]=(l=="show"?(r=="pos"?"+=":"-="):(r=="pos"?"-=":"+="))+k;p.animate(n,{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){if(l=="hide"){p.hide()}b.effects.restore(p,q);b.effects.removeWrapper(p);if(a.callback){a.callback.apply(this,arguments)}p.dequeue()}})})}})(jQuery);(function(b){b.effects.pulsate=function(a){return this.queue(function(){var k=b(this);var h=b.effects.setMode(k,a.options.mode||"show");var i=a.options.times||5;var j=a.duration?a.duration/2:b.fx.speeds._default/2;if(h=="hide"){i--}if(k.is(":hidden")){k.css("opacity",0);k.show();k.animate({opacity:1},j,a.options.easing);i=i-2}for(var l=0;l<i;l++){k.animate({opacity:0},j,a.options.easing).animate({opacity:1},j,a.options.easing)}if(h=="hide"){k.animate({opacity:0},j,a.options.easing,function(){k.hide();if(a.callback){a.callback.apply(this,arguments)}})}else{k.animate({opacity:0},j,a.options.easing).animate({opacity:1},j,a.options.easing,function(){if(a.callback){a.callback.apply(this,arguments)}})}k.queue("fx",function(){k.dequeue()});k.dequeue()})}})(jQuery);(function(b){b.effects.puff=function(a){return this.queue(function(){var k=b(this);var n=b.extend(true,{},a.options);var i=b.effects.setMode(k,a.options.mode||"hide");var j=parseInt(a.options.percent,10)||150;n.fade=true;var l={height:k.height(),width:k.width()};var m=j/100;k.from=(i=="hide")?l:{height:l.height*m,width:l.width*m};n.from=k.from;n.percent=(i=="hide")?j:100;n.mode=i;k.effect("scale",n,a.duration,a.callback);k.dequeue()})};b.effects.scale=function(a){return this.queue(function(){var n=b(this);var q=b.extend(true,{},a.options);var k=b.effects.setMode(n,a.options.mode||"effect");var m=parseInt(a.options.percent,10)||(parseInt(a.options.percent,10)==0?0:(k=="hide"?0:100));var l=a.options.direction||"both";var r=a.options.origin;if(k!="effect"){q.origin=r||["middle","center"];q.restore=true}var o={height:n.height(),width:n.width()};n.from=a.options.from||(k=="show"?{height:0,width:0}:o);var p={y:l!="horizontal"?(m/100):1,x:l!="vertical"?(m/100):1};n.to={height:o.height*p.y,width:o.width*p.x};if(a.options.fade){if(k=="show"){n.from.opacity=0;n.to.opacity=1}if(k=="hide"){n.from.opacity=1;n.to.opacity=0}}q.from=n.from;q.to=n.to;q.mode=k;n.effect("size",q,a.duration,a.callback);n.dequeue()})};b.effects.size=function(a){return this.queue(function(){var D=b(this),s=["position","top","left","width","height","overflow","opacity"];var t=["position","top","left","overflow","opacity"];var w=["width","height","overflow"];var q=["fontSize"];var v=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var A=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var z=b.effects.setMode(D,a.options.mode||"effect");var x=a.options.restore||false;var B=a.options.scale||"both";var r=a.options.origin;var C={height:D.height(),width:D.width()};D.from=a.options.from||C;D.to=a.options.to||C;if(r){var y=b.effects.getBaseline(r,C);D.from.top=(C.height-D.from.height)*y.y;D.from.left=(C.width-D.from.width)*y.x;D.to.top=(C.height-D.to.height)*y.y;D.to.left=(C.width-D.to.width)*y.x}var u={from:{y:D.from.height/C.height,x:D.from.width/C.width},to:{y:D.to.height/C.height,x:D.to.width/C.width}};if(B=="box"||B=="both"){if(u.from.y!=u.to.y){s=s.concat(v);D.from=b.effects.setTransition(D,v,u.from.y,D.from);D.to=b.effects.setTransition(D,v,u.to.y,D.to)}if(u.from.x!=u.to.x){s=s.concat(A);D.from=b.effects.setTransition(D,A,u.from.x,D.from);D.to=b.effects.setTransition(D,A,u.to.x,D.to)}}if(B=="content"||B=="both"){if(u.from.y!=u.to.y){s=s.concat(q);D.from=b.effects.setTransition(D,q,u.from.y,D.from);D.to=b.effects.setTransition(D,q,u.to.y,D.to)}}b.effects.save(D,x?s:t);D.show();b.effects.createWrapper(D);D.css("overflow","hidden").css(D.from);if(B=="content"||B=="both"){v=v.concat(["marginTop","marginBottom"]).concat(q);A=A.concat(["marginLeft","marginRight"]);w=s.concat(v).concat(A);D.find("*[width]").each(function(){child=b(this);if(x){b.effects.save(child,w)}var c={height:child.height(),width:child.width()};child.from={height:c.height*u.from.y,width:c.width*u.from.x};child.to={height:c.height*u.to.y,width:c.width*u.to.x};if(u.from.y!=u.to.y){child.from=b.effects.setTransition(child,v,u.from.y,child.from);child.to=b.effects.setTransition(child,v,u.to.y,child.to)}if(u.from.x!=u.to.x){child.from=b.effects.setTransition(child,A,u.from.x,child.from);child.to=b.effects.setTransition(child,A,u.to.x,child.to)}child.css(child.from);child.animate(child.to,a.duration,a.options.easing,function(){if(x){b.effects.restore(child,w)}})})}D.animate(D.to,{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){if(z=="hide"){D.hide()}b.effects.restore(D,x?s:t);b.effects.removeWrapper(D);if(a.callback){a.callback.apply(this,arguments)}D.dequeue()}})})}})(jQuery);

//JQuery BGIframe
(function(a){a.fn.bgIframe=a.fn.bgiframe=function(c){if(a.browser.msie&&/6.0/.test(navigator.userAgent)){c=a.extend({top:"auto",left:"auto",width:"auto",height:"auto",opacity:true,src:"javascript:false;"},c||{});var d=function(e){return e&&e.constructor==Number?e+"px":e},b='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+c.src+'"style="display:block;position:absolute;z-index:-1;'+(c.opacity!==false?"filter:Alpha(Opacity='0');":"")+"top:"+(c.top=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":d(c.top))+";left:"+(c.left=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":d(c.left))+";width:"+(c.width=="auto"?"expression(this.parentNode.offsetWidth+'px')":d(c.width))+";height:"+(c.height=="auto"?"expression(this.parentNode.offsetHeight+'px')":d(c.height))+';"/>';return this.each(function(){if(a("> iframe.bgiframe",this).length==0){this.insertBefore(document.createElement(b),this.firstChild)}})}return this}})(jQuery);

//JQuery timer plugin previously jquery-timer.js
jQuery.fn.extend({everyTime:function(b,c,d,e,a){return this.each(function(){jQuery.timer.add(this,b,c,d,e,a)})},oneTime:function(a,b,c){return this.each(function(){jQuery.timer.add(this,a,b,c,1)})},stopTime:function(a,b){return this.each(function(){jQuery.timer.remove(this,a,b)})}});jQuery.extend({timer:{guid:1,global:{},regex:/^([0-9]+)\s*(.*s)?$/,powers:{ms:1,cs:10,ds:100,s:1000,das:10000,hs:100000,ks:1000000},timeParse:function(c){if(c==undefined||c==null){return null}var a=this.regex.exec(jQuery.trim(c.toString()));if(a[2]){var b=parseInt(a[1],10);var d=this.powers[a[2]]||1;return b*d}else{return c}},add:function(e,c,d,g,h,b){var a=0;if(jQuery.isFunction(d)){if(!h){h=g}g=d;d=c}c=jQuery.timer.timeParse(c);if(typeof c!="number"||isNaN(c)||c<=0){return}if(h&&h.constructor!=Number){b=!!h;h=0}h=h||0;b=b||false;if(!e.$timers){e.$timers={}}if(!e.$timers[d]){e.$timers[d]={}}g.$timerID=g.$timerID||this.guid++;var f=function(){if(b&&this.inProgress){return}this.inProgress=true;if((++a>h&&h!==0)||g.call(e,a)===false){jQuery.timer.remove(e,d,g)}this.inProgress=false};f.$timerID=g.$timerID;if(!e.$timers[d][g.$timerID]){e.$timers[d][g.$timerID]=window.setInterval(f,c)}if(!this.global[d]){this.global[d]=[]}this.global[d].push(e)},remove:function(c,b,d){var e=c.$timers,a;if(e){if(!b){for(b in e){this.remove(c,b,d)}}else{if(e[b]){if(d){if(d.$timerID){window.clearInterval(e[b][d.$timerID]);delete e[b][d.$timerID]}}else{for(var d in e[b]){window.clearInterval(e[b][d]);delete e[b][d]}}for(a in e[b]){break}if(!a){a=null;delete e[b]}}}for(a in e){break}if(!a){c.$timers=null}}}}});if(jQuery.browser.msie){jQuery(window).one("unload",function(){var d=jQuery.timer.global;for(var a in d){var c=d[a],b=c.length;while(--b){jQuery.timer.remove(c[b],a)}}})};
	
/**
* hoverIntent is similar to jQuery's built-in "hover" function except that
* instead of firing the onMouseOver event immediately, hoverIntent checks
* to see if the user's mouse has slowed down: see http://cherne.net/brian/resources/jquery.hoverIntent.html
**/

(function(a){a.fn.hoverIntent=function(k,j){var l={sensitivity:7,interval:100,timeout:0};l=a.extend(l,j?{over:k,out:j}:k);var n,m,h,d;var e=function(f){n=f.pageX;m=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-n)+Math.abs(d-m))<l.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return l.over.apply(f,[g])}else{h=n;d=m;f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return l.out.apply(f,[g])};var b=function(q){var o=(q.type=="mouseover"?q.fromElement:q.toElement)||q.relatedTarget;while(o&&o!=this){try{o=o.parentNode}catch(q){o=this}}if(o==this){return false}var g=jQuery.extend({},q);var f=this;if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(q.type=="mouseover"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},l.timeout)}}};return this.mouseover(b).mouseout(b)}})(jQuery);	

/**
* Jquery Meta Data plugin, allows specification of metadata for media plugin as part of the html class
*
**/
(function($){$.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/({.*})/,single:"metadata"},setType:function(type,name){this.defaults.type=type;this.defaults.name=name},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length){settings.single="metadata"}var data=$.data(elem,settings.single);if(data){return data}data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m){data=m[1]}}else{if(settings.type=="elem"){if(!elem.getElementsByTagName){return undefined}var e=elem.getElementsByTagName(settings.name);if(e.length){data=$.trim(e[0].innerHTML)}}else{if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr){data=attr}}}}if(data.indexOf("{")<0){data="{"+data+"}"}data=eval("("+data+")");$.data(elem,settings.single,data);return data}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts)}})(jQuery);

/**
* Jquery Media plugin and swfobject, allows for semantic embedding of flash files in Site
*
**/
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
(function(c){c.fn.media=function(m,l,n){return this.each(function(){if(typeof m=="function"){n=l;l=m;m={}}var w=g(this,m);if(typeof l=="function"){l(this,w)}var v=j();var p=v.exec(w.src)||[""];w.type?p[0]=w.type:p.shift();for(var u=0;u<p.length;u++){fn=p[u].toLowerCase();if(e(fn[0])){fn="fn"+fn}if(!c.fn.media[fn]){continue}var t=c.fn.media[fn+"_player"];if(!w.params){w.params={}}if(t){var s=t.autoplayAttr=="autostart";w.params[t.autoplayAttr||"autoplay"]=s?(w.autoplay?1:0):w.autoplay?true:false}var q=c.fn.media[fn](this,w);q.css("backgroundColor",w.bgColor).width(w.width);if(typeof n=="function"){n(this,q[0],w,t.name)}break}})};c.fn.media.mapFormat=function(m,l){if(!m||!l||!c.fn.media.defaults.players[l]){return}m=m.toLowerCase();if(e(m[0])){m="fn"+m}c.fn.media[m]=c.fn.media[l];c.fn.media[m+"_player"]=c.fn.media.defaults.players[l]};c.fn.media.defaults={width:400,height:400,autoplay:0,bgColor:"#ffffff",params:{wmode:"transparent"},attrs:{},flvKeyName:"file",flashvars:{},flashVersion:"7",expressInstaller:null,flvPlayer:"mediaplayer.swf",mp3Player:"mediaplayer.swf",silverlight:{inplaceInstallPrompt:"true",isWindowless:"true",framerate:"24",version:"0.9",onError:null,onLoad:null,initParams:null,userContext:null}};c.fn.media.defaults.players={flash:{name:"flash",types:"flv,mp3,swf",oAttrs:{classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",type:"application/x-oleobject",codebase:"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+c.fn.media.defaults.flashVersion},eAttrs:{type:"application/x-shockwave-flash",pluginspage:"http://www.adobe.com/go/getflashplayer"}},quicktime:{name:"quicktime",types:"aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp",oAttrs:{classid:"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",codebase:"http://www.apple.com/qtactivex/qtplugin.cab"},eAttrs:{pluginspage:"http://www.apple.com/quicktime/download/"}},realplayer:{name:"real",types:"ra,ram,rm,rpm,rv,smi,smil",autoplayAttr:"autostart",oAttrs:{classid:"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"},eAttrs:{type:"audio/x-pn-realaudio-plugin",pluginspage:"http://www.real.com/player/"}},winmedia:{name:"winmedia",types:"asx,asf,avi,wma,wmv",autoplayAttr:"autostart",oUrl:"url",oAttrs:{classid:"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6",type:"application/x-oleobject"},eAttrs:{type:c.browser.mozilla&&k()?"application/x-ms-wmp":"application/x-mplayer2",pluginspage:"http://www.microsoft.com/Windows/MediaPlayer/"}},iframe:{name:"iframe",types:"html,pdf"},silverlight:{name:"silverlight",types:"xaml"}};function k(){var l=navigator.plugins;for(i=0;i<l.length;i++){var m=l[i];if(m.filename=="np-mswmp.dll"){return true}}return false}var a=1;for(var h in c.fn.media.defaults.players){var d=c.fn.media.defaults.players[h].types;c.each(d.split(","),function(l,m){if(e(m[0])){m="fn"+m}c.fn.media[m]=c.fn.media[h]=b(h);c.fn.media[m+"_player"]=c.fn.media.defaults.players[h]})}function j(){var m="";for(var l in c.fn.media.defaults.players){if(m.length){m+=","}m+=c.fn.media.defaults.players[l].types}return new RegExp("\\.("+m.replace(/,/g,"|")+")$\\b")}function b(l){return function(n,m){return f(n,m,l)}}function e(l){return"0123456789".indexOf(l)>-1}function g(n,y){y=y||{};var x=c(n);var v=n.className||"";var u=c.metadata?x.metadata():c.meta?x.data():{};u=u||{};var t=u.width||parseInt(((v.match(/w:(\d+)/)||[])[1]||0));var o=u.height||parseInt(((v.match(/h:(\d+)/)||[])[1]||0));if(t){u.width=t}if(o){u.height=o}if(v){u.cls=v}var s=c.fn.media.defaults;var r=y;var q=u;var m={params:{bgColor:y.bgColor||c.fn.media.defaults.bgColor}};var l=c.extend({},s,r,q);c.each(["attrs","params","flashvars","silverlight"],function(p,w){l[w]=c.extend({},m[w]||{},s[w]||{},r[w]||{},q[w]||{})});if(typeof l.caption=="undefined"){l.caption=x.text()}l.src=l.src||x.attr("href")||x.attr("src")||"unknown";return l}c.fn.media.swf=function(q,l){if(!window.SWFObject&&!window.swfobject){if(l.flashvars){var t=[];for(var r in l.flashvars){t.push(r+"="+l.flashvars[r])}if(!l.params){l.params={}}l.params.flashvars=t.join("&")}return f(q,l,"flash")}var n=q.id?(' id="'+q.id+'"'):"";var u=l.cls?(' class="'+l.cls+'"'):"";var s=c("<div"+n+u+">");if(window.swfobject){c(q).after(s).appendTo(s);if(!q.id){q.id="movie_player_"+a++}swfobject.embedSWF(l.src,q.id,l.width,l.height,l.flashVersion,l.expressInstaller,l.flashvars,l.params,l.attrs)}else{c(q).after(s).remove();var o=new SWFObject(l.src,"movie_player_"+a++,l.width,l.height,l.flashVersion,l.bgColor);if(l.expressInstaller){o.useExpressInstall(l.expressInstaller)}for(var m in l.params){if(m!="bgColor"){o.addParam(m,l.params[m])}}for(var r in l.flashvars){o.addVariable(r,l.flashvars[r])}o.write(s[0])}if(l.caption){c("<div>").appendTo(s).html(l.caption)}return s};c.fn.media.flv=c.fn.media.mp3=function(o,p){var q=p.src;var n=/\.mp3\b/i.test(q)?c.fn.media.defaults.mp3Player:c.fn.media.defaults.flvPlayer;var m=p.flvKeyName;q=encodeURIComponent(q);p.src=n;p.src=p.src+"?"+m+"="+(q);var l={};l[m]=q;p.flashvars=c.extend({},l,p.flashvars);return c.fn.media.swf(o,p)};c.fn.media.xaml=function(r,s){if(!window.Sys||!window.Sys.Silverlight){if(c.fn.media.xaml.warning){return}c.fn.media.xaml.warning=1;alert("You must include the Silverlight.js script.");return}var q={width:s.width,height:s.height,background:s.bgColor,inplaceInstallPrompt:s.silverlight.inplaceInstallPrompt,isWindowless:s.silverlight.isWindowless,framerate:s.silverlight.framerate,version:s.silverlight.version};var o={onError:s.silverlight.onError,onLoad:s.silverlight.onLoad};var p=r.id?(' id="'+r.id+'"'):"";var n=s.id||"AG"+a++;var m=s.cls?(' class="'+s.cls+'"'):"";var l=c("<div"+p+m+">");c(r).after(l).remove();Sys.Silverlight.createObjectEx({source:s.src,initParams:s.silverlight.initParams,userContext:s.silverlight.userContext,id:n,parentElement:l[0],properties:q,events:o});if(s.caption){c("<div>").appendTo(l).html(s.caption)}return l};function f(r,l,w){var A=c(r);var q=c.fn.media.defaults.players[w];if(w=="iframe"){var q=c('<iframe width="'+l.width+'" height="'+l.height+'" >');q.attr("src",l.src);q.css("backgroundColor",q.bgColor)}else{if(c.browser.msie){var u=['<object width="'+l.width+'" height="'+l.height+'" '];for(var x in l.attrs){u.push(x+'="'+l.attrs[x]+'" ')}for(var x in q.oAttrs||{}){var y=q.oAttrs[x];if(x=="codebase"&&window.location.protocol=="https"){y=y.replace("http","https")}u.push(x+'="'+y+'" ')}u.push("></object>");var n=['<param name="'+(q.oUrl||"src")+'" value="'+l.src+'">'];for(var x in l.params){n.push('<param name="'+x+'" value="'+l.params[x]+'">')}var q=document.createElement(u.join(""));for(var s=0;s<n.length;s++){q.appendChild(document.createElement(n[s]))}}else{var u=['<embed width="'+l.width+'" height="'+l.height+'" style="display:block"'];if(l.src){u.push(' src="'+l.src+'" ')}for(var x in l.attrs){u.push(x+'="'+l.attrs[x]+'" ')}for(var x in q.eAttrs||{}){u.push(x+'="'+q.eAttrs[x]+'" ')}for(var x in l.params){if(x!="wmode"){u.push(x+'="'+l.params[x]+'" ')}}u.push("></embed>")}}var m=r.id?(' id="'+r.id+'"'):"";var z=l.cls?(' class="'+l.cls+'"'):"";var t=c("<div"+m+z+">");A.after(t).remove();(c.browser.msie||w=="iframe")?t.append(q):t.html(u.join(""));if(l.caption){c("<div>").appendTo(t).html(l.caption)}return t}})(jQuery);
/*
 * Copyright 2005 Joe Walker
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Declare an object to which we can add real functions.
 */
if (dwr == null) var dwr = {};
if (dwr.engine == null) dwr.engine = {};
if (DWREngine == null) var DWREngine = dwr.engine;

/**
 * Set an alternative error handler from the default alert box.
 * @see getahead.org/dwr/browser/engine/errors
 */
dwr.engine.setErrorHandler = function(handler) {
  dwr.engine._errorHandler = handler;
};

/**
 * Set an alternative warning handler from the default alert box.
 * @see getahead.org/dwr/browser/engine/errors
 */
dwr.engine.setWarningHandler = function(handler) {
  dwr.engine._warningHandler = handler;
};

/**
 * Setter for the text/html handler - what happens if a DWR request gets an HTML
 * reply rather than the expected Javascript. Often due to login timeout
 */
dwr.engine.setTextHtmlHandler = function(handler) {
  dwr.engine._textHtmlHandler = handler;
};

/**
 * Set a default timeout value for all calls. 0 (the default) turns timeouts off.
 * @see getahead.org/dwr/browser/engine/errors
 */
dwr.engine.setTimeout = function(timeout) {
  dwr.engine._timeout = timeout;
};

/**
 * The Pre-Hook is called before any DWR remoting is done.
 * @see getahead.org/dwr/browser/engine/hooks
 */
dwr.engine.setPreHook = function(handler) {
  dwr.engine._preHook = handler;
};

/**
 * The Post-Hook is called after any DWR remoting is done.
 * @see getahead.org/dwr/browser/engine/hooks
 */
dwr.engine.setPostHook = function(handler) {
  dwr.engine._postHook = handler;
};

/**
 * Custom headers for all DWR calls
 * @see getahead.org/dwr/????
 */
dwr.engine.setHeaders = function(headers) {
  dwr.engine._headers = headers;
};

/**
 * Custom parameters for all DWR calls
 * @see getahead.org/dwr/????
 */
dwr.engine.setParameters = function(parameters) {
  dwr.engine._parameters = parameters;
};

/** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */
dwr.engine.XMLHttpRequest = 1;

/** XHR remoting type constant. See dwr.engine.set[Rpc|Poll]Type() */
dwr.engine.IFrame = 2;

/** XHR remoting type constant. See dwr.engine.setRpcType() */
dwr.engine.ScriptTag = 3;

/**
 * Set the preferred remoting type.
 * @param newType One of dwr.engine.XMLHttpRequest or dwr.engine.IFrame or dwr.engine.ScriptTag
 * @see getahead.org/dwr/browser/engine/options
 */
dwr.engine.setRpcType = function(newType) {
  if (newType != dwr.engine.XMLHttpRequest && newType != dwr.engine.IFrame && newType != dwr.engine.ScriptTag) {
    dwr.engine._handleError(null, { name:"dwr.engine.invalidRpcType", message:"RpcType must be one of dwr.engine.XMLHttpRequest or dwr.engine.IFrame or dwr.engine.ScriptTag" });
    return;
  }
  dwr.engine._rpcType = newType;
};

/**
 * Which HTTP method do we use to send results? Must be one of "GET" or "POST".
 * @see getahead.org/dwr/browser/engine/options
 */
dwr.engine.setHttpMethod = function(httpMethod) {
  if (httpMethod != "GET" && httpMethod != "POST") {
    dwr.engine._handleError(null, { name:"dwr.engine.invalidHttpMethod", message:"Remoting method must be one of GET or POST" });
    return;
  }
  dwr.engine._httpMethod = httpMethod;
};

/**
 * Ensure that remote calls happen in the order in which they were sent? (Default: false)
 * @see getahead.org/dwr/browser/engine/ordering
 */
dwr.engine.setOrdered = function(ordered) {
  dwr.engine._ordered = ordered;
};

/**
 * Do we ask the XHR object to be asynchronous? (Default: true)
 * @see getahead.org/dwr/browser/engine/options
 */
dwr.engine.setAsync = function(async) {
  dwr.engine._async = async;
};

/**
 * Does DWR poll the server for updates? (Default: false)
 * @see getahead.org/dwr/browser/engine/options
 */
dwr.engine.setActiveReverseAjax = function(activeReverseAjax) {
  if (activeReverseAjax) {
    // Bail if we are already started
    if (dwr.engine._activeReverseAjax) return;
    dwr.engine._activeReverseAjax = true;
    dwr.engine._poll();
  }
  else {
    // Can we cancel an existing request?
    if (dwr.engine._activeReverseAjax && dwr.engine._pollReq) dwr.engine._pollReq.abort();
    dwr.engine._activeReverseAjax = false;
  }
  // TODO: in iframe mode, if we start, stop, start then the second start may
  // well kick off a second iframe while the first is still about to return
  // we should cope with this but we don't
};

/**
 * The default message handler.
 * @see getahead.org/dwr/browser/engine/errors
 */
dwr.engine.defaultErrorHandler = function(message, ex) {
  dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);
  if (message == null || message == "") alert("A server error has occured.");
  // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky
  else if (message.indexOf("0x80040111") != -1) dwr.engine._debug(message);
  else alert(message);
};

/**
 * The default warning handler.
 * @see getahead.org/dwr/browser/engine/errors
 */
dwr.engine.defaultWarningHandler = function(message, ex) {
  dwr.engine._debug(message);
};

/**
 * For reduced latency you can group several remote calls together using a batch.
 * @see getahead.org/dwr/browser/engine/batch
 */
dwr.engine.beginBatch = function() {
  if (dwr.engine._batch) {
    dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", message:"Batch already begun" });
    return;
  }
  dwr.engine._batch = dwr.engine._createBatch();
};

/**
 * Finished grouping a set of remote calls together. Go and execute them all.
 * @see getahead.org/dwr/browser/engine/batch
 */
dwr.engine.endBatch = function(options) {
  var batch = dwr.engine._batch;
  if (batch == null) {
    dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", message:"No batch in progress" });
    return;
  }
  dwr.engine._batch = null;
  if (batch.map.callCount == 0) return;

  // The hooks need to be merged carefully to preserve ordering
  if (options) dwr.engine._mergeBatch(batch, options);

  // In ordered mode, we don't send unless the list of sent items is empty
  if (dwr.engine._ordered && dwr.engine._batchesLength != 0) {
    dwr.engine._batchQueue[dwr.engine._batchQueue.length] = batch;
  }
  else {
    dwr.engine._sendData(batch);
  }
};

/** @deprecated */
dwr.engine.setPollMethod = function(type) { dwr.engine.setPollType(type); };
dwr.engine.setMethod = function(type) { dwr.engine.setRpcType(type); };
dwr.engine.setVerb = function(verb) { dwr.engine.setHttpMethod(verb); };
dwr.engine.setPollType = function() { dwr.engine._debug("Manually setting the Poll Type is not supported"); };

//==============================================================================
// Only private stuff below here
//==============================================================================

/** The original page id sent from the server */
dwr.engine._origScriptSessionId = ""+JAWR.dwr_scriptSessionId+"";

/** The session cookie name */
dwr.engine._sessionCookieName = "JSESSIONID"; // JSESSIONID

/** Is GET enabled for the benefit of Safari? */
dwr.engine._allowGetForSafariButMakeForgeryEasier = "true";

/** The script prefix to strip in the case of scriptTagProtection. */
dwr.engine._scriptTagProtection = "throw 'allowScriptTagRemoting is false.';";

/** The default path to the DWR servlet */
dwr.engine._defaultPath = ""+JAWR.jawr_dwr_path+"";

/** Do we use XHR for reverse ajax because we are not streaming? */
dwr.engine._pollWithXhr = "false";

/** The read page id that we calculate */
dwr.engine._scriptSessionId = null;

/** The function that we use to fetch/calculate a session id */
dwr.engine._getScriptSessionId = function() {
  if (dwr.engine._scriptSessionId == null) {
    dwr.engine._scriptSessionId = dwr.engine._origScriptSessionId + Math.floor(Math.random() * 1000);
  }
  return dwr.engine._scriptSessionId;
};

/** A function to call if something fails. */
dwr.engine._errorHandler = dwr.engine.defaultErrorHandler;

/** For debugging when something unexplained happens. */
dwr.engine._warningHandler = dwr.engine.defaultWarningHandler;

/** A function to be called before requests are marshalled. Can be null. */
dwr.engine._preHook = null;

/** A function to be called after replies are received. Can be null. */
dwr.engine._postHook = null;

/** An map of the batches that we have sent and are awaiting a reply on. */
dwr.engine._batches = {};

/** A count of the number of outstanding batches. Should be == to _batches.length unless prototype has messed things up */
dwr.engine._batchesLength = 0;

/** In ordered mode, the array of batches waiting to be sent */
dwr.engine._batchQueue = [];

/** What is the default rpc type */
dwr.engine._rpcType = dwr.engine.XMLHttpRequest;

/** What is the default remoting method (ie GET or POST) */
dwr.engine._httpMethod = "POST";

/** Do we attempt to ensure that calls happen in the order in which they were sent? */
dwr.engine._ordered = false;

/** Do we make the calls async? */
dwr.engine._async = true;

/** The current batch (if we are in batch mode) */
dwr.engine._batch = null;

/** The global timeout */
dwr.engine._timeout = 0;

/** ActiveX objects to use when we want to convert an xml string into a DOM object. */
dwr.engine._DOMDocument = ["Msxml2.DOMDocument.6.0", "Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"];

/** The ActiveX objects to use when we want to do an XMLHttpRequest call. */
dwr.engine._XMLHTTP = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];

/** Are we doing comet or polling? */
dwr.engine._activeReverseAjax = false;

/** The iframe that we are using to poll */
dwr.engine._outstandingIFrames = [];

/** The xhr object that we are using to poll */
dwr.engine._pollReq = null;

/** How many milliseconds between internal comet polls */
dwr.engine._pollCometInterval = 200;

/** How many times have we re-tried to poll? */
dwr.engine._pollRetries = 0;
dwr.engine._maxPollRetries = 0;

/** Do we do a document.reload if we get a text/html reply? */
dwr.engine._textHtmlHandler = null;

/** If you wish to send custom headers with every request */
dwr.engine._headers = null;

/** If you wish to send extra custom request parameters with each request */
dwr.engine._parameters = null;

/** Undocumented interceptors - do not use */
dwr.engine._postSeperator = "\n";
dwr.engine._defaultInterceptor = function(data) { return data; };
dwr.engine._urlRewriteHandler = dwr.engine._defaultInterceptor;
dwr.engine._contentRewriteHandler = dwr.engine._defaultInterceptor;
dwr.engine._replyRewriteHandler = dwr.engine._defaultInterceptor;

/** Batch ids allow us to know which batch the server is answering */
dwr.engine._nextBatchId = 0;

/** A list of the properties that need merging from calls to a batch */
dwr.engine._propnames = [ "rpcType", "httpMethod", "async", "timeout", "errorHandler", "warningHandler", "textHtmlHandler" ];

/** Do we stream, or can be hacked to do so? */
dwr.engine._partialResponseNo = 0;
dwr.engine._partialResponseYes = 1;
dwr.engine._partialResponseFlush = 2;

/** Is this page in the process of unloading? */
dwr.engine._unloading = false;

/**
 * @private Send a request. Called by the Javascript interface stub
 * @param path part of URL after the host and before the exec bit without leading or trailing /s
 * @param scriptName The class to execute
 * @param methodName The method on said class to execute
 * @param func The callback function to which any returned data should be passed
 *       if this is null, any returned data will be ignored
 * @param vararg_params The parameters to pass to the above class
 */
dwr.engine._execute = function(path, scriptName, methodName, vararg_params) {
  var singleShot = false;
  if (dwr.engine._batch == null) {
    dwr.engine.beginBatch();
    singleShot = true;
  }
  var batch = dwr.engine._batch;
  // To make them easy to manipulate we copy the arguments into an args array
  var args = [];
  for (var i = 0; i < arguments.length - 3; i++) {
    args[i] = arguments[i + 3];
  }
  // All the paths MUST be to the same servlet
  if (batch.path == null) {
    batch.path = path;
  }
  else {
    if (batch.path != path) {
      dwr.engine._handleError(batch, { name:"dwr.engine.multipleServlets", message:"Can't batch requests to multiple DWR Servlets." });
      return;
    }
  }
  // From the other params, work out which is the function (or object with
  // call meta-data) and which is the call parameters
  var callData;
  var lastArg = args[args.length - 1];
  if (typeof lastArg == "function" || lastArg == null) callData = { callback:args.pop() };
  else callData = args.pop();

  // Merge from the callData into the batch
  dwr.engine._mergeBatch(batch, callData);
  batch.handlers[batch.map.callCount] = {
    exceptionHandler:callData.exceptionHandler,
    callback:callData.callback
  };

  // Copy to the map the things that need serializing
  var prefix = "c" + batch.map.callCount + "-";
  batch.map[prefix + "scriptName"] = scriptName;
  batch.map[prefix + "methodName"] = methodName;
  batch.map[prefix + "id"] = batch.map.callCount;
  for (i = 0; i < args.length; i++) {
    dwr.engine._serializeAll(batch, [], args[i], prefix + "param" + i);
  }

  // Now we have finished remembering the call, we incr the call count
  batch.map.callCount++;
  if (singleShot) dwr.engine.endBatch();
};

/** @private Poll the server to see if there is any data waiting */
dwr.engine._poll = function() {
  if (!dwr.engine._activeReverseAjax) return;

  var batch = dwr.engine._createBatch();
  batch.map.id = 0; // TODO: Do we need this??
  batch.map.callCount = 1;
  batch.isPoll = true;
  if (dwr.engine._pollWithXhr == "true") {
    batch.rpcType = dwr.engine.XMLHttpRequest;
    batch.map.partialResponse = dwr.engine._partialResponseNo;
  }
  else {
    if (navigator.userAgent.indexOf("Gecko/") != -1) {
      batch.rpcType = dwr.engine.XMLHttpRequest;
      batch.map.partialResponse = dwr.engine._partialResponseYes;
    }
    else {
      batch.rpcType = dwr.engine.XMLHttpRequest;
      batch.map.partialResponse = dwr.engine._partialResponseNo;
    }
  }
  batch.httpMethod = "POST";
  batch.async = true;
  batch.timeout = 0;
  batch.path = dwr.engine._defaultPath;
  batch.preHooks = [];
  batch.postHooks = [];
  batch.errorHandler = dwr.engine._pollErrorHandler;
  batch.warningHandler = dwr.engine._pollErrorHandler;
  batch.handlers[0] = {
    callback:function(pause) {
      dwr.engine._pollRetries = 0;
      setTimeout(dwr.engine._poll, pause);
    }
  };

  // Send the data
  dwr.engine._sendData(batch);
  if (batch.rpcType == dwr.engine.XMLHttpRequest && batch.map.partialResponse == dwr.engine._partialResponseYes) {
    dwr.engine._checkCometPoll();
  }
};

/** Try to recover from polling errors */
dwr.engine._pollErrorHandler = function(msg, ex) {
  // if anything goes wrong then just silently try again (up to 3x) after 10s
  dwr.engine._pollRetries++;
  dwr.engine._debug("Reverse Ajax poll failed (pollRetries=" + dwr.engine._pollRetries + "): " + ex.name + " : " + ex.message);
  if (dwr.engine._pollRetries < dwr.engine._maxPollRetries) {
    setTimeout(dwr.engine._poll, 10000);
  }
  else {
    dwr.engine._activeReverseAjax = false;
    dwr.engine._debug("Giving up.");
  }
};

/** @private Generate a new standard batch */
dwr.engine._createBatch = function() {
  var batch = {
    map:{
      callCount:0,
      page:window.location.pathname + window.location.search,
      httpSessionId:dwr.engine._getJSessionId(),
      scriptSessionId:dwr.engine._getScriptSessionId()
    },
    charsProcessed:0, paramCount:0,
    parameters:{}, headers:{},
    isPoll:false, handlers:{}, preHooks:[], postHooks:[],
    rpcType:dwr.engine._rpcType,
    httpMethod:dwr.engine._httpMethod,
    async:dwr.engine._async,
    timeout:dwr.engine._timeout,
    errorHandler:dwr.engine._errorHandler,
    warningHandler:dwr.engine._warningHandler,
    textHtmlHandler:dwr.engine._textHtmlHandler
  };
  if (dwr.engine._preHook) batch.preHooks.push(dwr.engine._preHook);
  if (dwr.engine._postHook) batch.postHooks.push(dwr.engine._postHook);
  var propname, data;
  if (dwr.engine._headers) {
    for (propname in dwr.engine._headers) {
      data = dwr.engine._headers[propname];
      if (typeof data != "function") batch.headers[propname] = data;
    }
  }
  if (dwr.engine._parameters) {
    for (propname in dwr.engine._parameters) {
      data = dwr.engine._parameters[propname];
      if (typeof data != "function") batch.parameters[propname] = data;
    }
  }
  return batch;
};

/** @private Take further options and merge them into */
dwr.engine._mergeBatch = function(batch, overrides) {
  var propname, data;
  for (var i = 0; i < dwr.engine._propnames.length; i++) {
    propname = dwr.engine._propnames[i];
    if (overrides[propname] != null) batch[propname] = overrides[propname];
  }
  if (overrides.preHook != null) batch.preHooks.unshift(overrides.preHook);
  if (overrides.postHook != null) batch.postHooks.push(overrides.postHook);
  if (overrides.headers) {
    for (propname in overrides.headers) {
      data = overrides.headers[propname];
      if (typeof data != "function") batch.headers[propname] = data;
    }
  }
  if (overrides.parameters) {
    for (propname in overrides.parameters) {
      data = overrides.parameters[propname];
      if (typeof data != "function") batch.map["p-" + propname] = "" + data;
    }
  }
};

/** @private What is our session id? */
dwr.engine._getJSessionId =  function() {
  var cookies = document.cookie.split(';');
  for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    while (cookie.charAt(0) == ' ') cookie = cookie.substring(1, cookie.length);
    if (cookie.indexOf(dwr.engine._sessionCookieName + "=") == 0) {
      return cookie.substring(dwr.engine._sessionCookieName.length + 1, cookie.length);
    }
  }
  return "";
};

/** @private Check for reverse Ajax activity */
dwr.engine._checkCometPoll = function() {
  for (var i = 0; i < dwr.engine._outstandingIFrames.length; i++) {
    var text = "";
    var iframe = dwr.engine._outstandingIFrames[i];
    try {
      text = dwr.engine._getTextFromCometIFrame(iframe);
    }
    catch (ex) {
      dwr.engine._handleWarning(iframe.batch, ex);
    }
    if (text != "") dwr.engine._processCometResponse(text, iframe.batch);
  }
  if (dwr.engine._pollReq) {
    var req = dwr.engine._pollReq;
    var text = req.responseText;
    if (text != null) dwr.engine._processCometResponse(text, req.batch);
  }

  // If the poll resources are still there, come back again
  if (dwr.engine._outstandingIFrames.length > 0 || dwr.engine._pollReq) {
    setTimeout(dwr.engine._checkCometPoll, dwr.engine._pollCometInterval);
  }
};

/** @private Extract the whole (executed an all) text from the current iframe */
dwr.engine._getTextFromCometIFrame = function(frameEle) {
  var body = frameEle.contentWindow.document.body;
  if (body == null) return "";
  var text = body.innerHTML;
  // We need to prevent IE from stripping line feeds
  if (text.indexOf("<PRE>") == 0 || text.indexOf("<pre>") == 0) {
    text = text.substring(5, text.length - 7);
  }
  return text;
};

/** @private Some more text might have come in, test and execute the new stuff */
dwr.engine._processCometResponse = function(response, batch) {
  if (batch.charsProcessed == response.length) return;
  if (response.length == 0) {
    batch.charsProcessed = 0;
    return;
  }

  var firstStartTag = response.indexOf("//#DWR-START#", batch.charsProcessed);
  if (firstStartTag == -1) {
    // dwr.engine._debug("No start tag (search from " + batch.charsProcessed + "). skipping '" + response.substring(batch.charsProcessed) + "'");
    batch.charsProcessed = response.length;
    return;
  }
  // if (firstStartTag > 0) {
  //   dwr.engine._debug("Start tag not at start (search from " + batch.charsProcessed + "). skipping '" + response.substring(batch.charsProcessed, firstStartTag) + "'");
  // }

  var lastEndTag = response.lastIndexOf("//#DWR-END#");
  if (lastEndTag == -1) {
    // dwr.engine._debug("No end tag. unchanged charsProcessed=" + batch.charsProcessed);
    return;
  }

  // Skip the end tag too for next time, remembering CR and LF
  if (response.charCodeAt(lastEndTag + 11) == 13 && response.charCodeAt(lastEndTag + 12) == 10) {
    batch.charsProcessed = lastEndTag + 13;
  }
  else {
    batch.charsProcessed = lastEndTag + 11;
  }

  var exec = response.substring(firstStartTag + 13, lastEndTag);

  dwr.engine._receivedBatch = batch;
  dwr.engine._eval(exec);
  dwr.engine._receivedBatch = null;
};

/** @private Actually send the block of data in the batch object. */
dwr.engine._sendData = function(batch) {
  batch.map.batchId = dwr.engine._nextBatchId;
  dwr.engine._nextBatchId++;
  dwr.engine._batches[batch.map.batchId] = batch;
  dwr.engine._batchesLength++;
  batch.completed = false;

  for (var i = 0; i < batch.preHooks.length; i++) {
    batch.preHooks[i]();
  }
  batch.preHooks = null;
  // Set a timeout
  if (batch.timeout && batch.timeout != 0) {
    batch.timeoutId = setTimeout(function() { dwr.engine._abortRequest(batch); }, batch.timeout);
  }
  // Get setup for XMLHttpRequest if possible
  if (batch.rpcType == dwr.engine.XMLHttpRequest) {
    if (window.XMLHttpRequest) {
      batch.req = new XMLHttpRequest();
    }
    // IE5 for the mac claims to support window.ActiveXObject, but throws an error when it's used
    else if (window.ActiveXObject && !(navigator.userAgent.indexOf("Mac") >= 0 && navigator.userAgent.indexOf("MSIE") >= 0)) {
      batch.req = dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);
    }
  }

  var prop, request;
  if (batch.req) {
    // Proceed using XMLHttpRequest
    if (batch.async) {
      batch.req.onreadystatechange = function() {
        if (typeof dwr != 'undefined') dwr.engine._stateChange(batch);
      };
    }
    // If we're polling, record this for monitoring
    if (batch.isPoll) {
      dwr.engine._pollReq = batch.req;
      // In IE XHR is an ActiveX control so you can't augment it like this
      if (!(document.all && !window.opera)) batch.req.batch = batch;
    }
    // Workaround for Safari 1.x POST bug
    var indexSafari = navigator.userAgent.indexOf("Safari/");
    if (indexSafari >= 0) {
      var version = navigator.userAgent.substring(indexSafari + 7);
      if (parseInt(version, 10) < 400) {
        if (dwr.engine._allowGetForSafariButMakeForgeryEasier == "true") batch.httpMethod = "GET";
        else dwr.engine._handleWarning(batch, { name:"dwr.engine.oldSafari", message:"Safari GET support disabled. See getahead.org/dwr/server/servlet and allowGetForSafariButMakeForgeryEasier." });
      }
    }
    batch.mode = batch.isPoll ? dwr.engine._ModePlainPoll : dwr.engine._ModePlainCall;
    request = dwr.engine._constructRequest(batch);
    try {
      batch.req.open(batch.httpMethod, request.url, batch.async);
      try {
        for (prop in batch.headers) {
          var value = batch.headers[prop];
          if (typeof value == "string") batch.req.setRequestHeader(prop, value);
        }
        if (!batch.headers["Content-Type"]) batch.req.setRequestHeader("Content-Type", "text/plain");
      }
      catch (ex) {
        dwr.engine._handleWarning(batch, ex);
      }
      batch.req.send(request.body);
      if (!batch.async) dwr.engine._stateChange(batch);
    }
    catch (ex) {
      dwr.engine._handleError(batch, ex);
    }
  }
  else if (batch.rpcType != dwr.engine.ScriptTag) {
    var idname = batch.isPoll ? "dwr-if-poll-" + batch.map.batchId : "dwr-if-" + batch.map.batchId;
    // Removed htmlfile implementation. Don't expect it to return before v3
    batch.div = document.createElement("div");
    // Add the div to the document first, otherwise IE 6 will ignore onload handler.
    document.body.appendChild(batch.div);
    batch.div.innerHTML = "<iframe src='javascript:void(0)' frameborder='0' style='width:0px;height:0px;border:0;' id='" + idname + "' name='" + idname + "' onload='dwr.engine._iframeLoadingComplete (" + batch.map.batchId + ");'></iframe>";
    batch.document = document;
    batch.iframe = batch.document.getElementById(idname);
    batch.iframe.batch = batch;
    batch.mode = batch.isPoll ? dwr.engine._ModeHtmlPoll : dwr.engine._ModeHtmlCall;
    if (batch.isPoll) dwr.engine._outstandingIFrames.push(batch.iframe);
    request = dwr.engine._constructRequest(batch);
    if (batch.httpMethod == "GET") {
      batch.iframe.setAttribute("src", request.url);
    }
    else {
      batch.form = batch.document.createElement("form");
      batch.form.setAttribute("id", "dwr-form");
      batch.form.setAttribute("action", request.url);
      batch.form.setAttribute("style", "display:none;");
      batch.form.setAttribute("target", idname);
      batch.form.target = idname;
      batch.form.setAttribute("method", batch.httpMethod);
      for (prop in batch.map) {
        var value = batch.map[prop];
        if (typeof value != "function") {
          var formInput = batch.document.createElement("input");
          formInput.setAttribute("type", "hidden");
          formInput.setAttribute("name", prop);
          formInput.setAttribute("value", value);
          batch.form.appendChild(formInput);
        }
      }
      batch.document.body.appendChild(batch.form);
      batch.form.submit();
    }
  }
  else {
    batch.httpMethod = "GET"; // There's no such thing as ScriptTag using POST
    batch.mode = batch.isPoll ? dwr.engine._ModePlainPoll : dwr.engine._ModePlainCall;
    request = dwr.engine._constructRequest(batch);
    batch.script = document.createElement("script");
    batch.script.id = "dwr-st-" + batch.map["c0-id"];
    batch.script.src = request.url;
    document.body.appendChild(batch.script);
  }
};

dwr.engine._ModePlainCall = "/call/plaincall/";
dwr.engine._ModeHtmlCall = "/call/htmlcall/";
dwr.engine._ModePlainPoll = "/call/plainpoll/";
dwr.engine._ModeHtmlPoll = "/call/htmlpoll/";

/** @private Work out what the URL should look like */
dwr.engine._constructRequest = function(batch) {
  // A quick string to help people that use web log analysers
  var request = { url:batch.path + batch.mode, body:null };
  if (batch.isPoll == true) {
    request.url += "ReverseAjax.dwr";
  }
  else if (batch.map.callCount == 1) {
    request.url += batch.map["c0-scriptName"] + "." + batch.map["c0-methodName"] + ".dwr";
  }
  else {
    request.url += "Multiple." + batch.map.callCount + ".dwr";
  }
  // Play nice with url re-writing
  var sessionMatch = location.href.match(/jsessionid=([^?]+)/);
  if (sessionMatch != null) {
    request.url += ";jsessionid=" + sessionMatch[1];
  }

  var prop;
  if (batch.httpMethod == "GET") {
    // Some browsers (Opera/Safari2) seem to fail to convert the callCount value
    // to a string in the loop below so we do it manually here.
    batch.map.callCount = "" + batch.map.callCount;
    request.url += "?";
    for (prop in batch.map) {
      if (typeof batch.map[prop] != "function") {
        request.url += encodeURIComponent(prop) + "=" + encodeURIComponent(batch.map[prop]) + "&";
      }
    }
    request.url = request.url.substring(0, request.url.length - 1);
  }
  else {
    // PERFORMANCE: for iframe mode this is thrown away.
    request.body = "";
    if (document.all && !window.opera) {
      // Use array joining on IE (fastest)
      var buf = [];
      for (prop in batch.map) {
        if (typeof batch.map[prop] != "function") {
          buf.push(prop + "=" + batch.map[prop] + dwr.engine._postSeperator);
        }
      }
      request.body = buf.join("");
    }
    else {
      // Use string concat on other browsers (fastest)
      for (prop in batch.map) {
        if (typeof batch.map[prop] != "function") {
          request.body += prop + "=" + batch.map[prop] + dwr.engine._postSeperator;
        }
      }
    }
    request.body = dwr.engine._contentRewriteHandler(request.body);
  }
  request.url = dwr.engine._urlRewriteHandler(request.url);
  return request;
};

/** @private Called by XMLHttpRequest to indicate that something has happened */
dwr.engine._stateChange = function(batch) {
  var toEval;

  if (batch.completed) {
    dwr.engine._debug("Error: _stateChange() with batch.completed");
    return;
  }

  var req = batch.req;
  try {
    if (req.readyState != 4) return;
  }
  catch (ex) {
    dwr.engine._handleWarning(batch, ex);
    // It's broken - clear up and forget this call
    dwr.engine._clearUp(batch);
    return;
  }

  if (dwr.engine._unloading) {
    dwr.engine._debug("Ignoring reply from server as page is unloading.");
    return;
  }
  
  try {
    var reply = req.responseText;
    reply = dwr.engine._replyRewriteHandler(reply);
    var status = req.status; // causes Mozilla to except on page moves

    if (reply == null || reply == "") {
      dwr.engine._handleWarning(batch, { name:"dwr.engine.missingData", message:"No data received from server" });
    }
    else if (status != 200) {
      dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, message:req.statusText });
    }
    else {
      var contentType = req.getResponseHeader("Content-Type");
      if (!contentType.match(/^text\/plain/) && !contentType.match(/^text\/javascript/)) {
        if (contentType.match(/^text\/html/) && typeof batch.textHtmlHandler == "function") {
          batch.textHtmlHandler({ status:status, responseText:reply, contentType:contentType });
        }
        else {
          dwr.engine._handleWarning(batch, { name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + contentType + "'" });
        }
      }
      else {
        // Comet replies might have already partially executed
        if (batch.isPoll && batch.map.partialResponse == dwr.engine._partialResponseYes) {
          dwr.engine._processCometResponse(reply, batch);
        }
        else {
          if (reply.search("//#DWR") == -1) {
            dwr.engine._handleWarning(batch, { name:"dwr.engine.invalidReply", message:"Invalid reply from server" });
          }
          else {
            toEval = reply;
          }
        }
      }
    }
  }
  catch (ex) {
    dwr.engine._handleWarning(batch, ex);
  }

  dwr.engine._callPostHooks(batch);

  // Outside of the try/catch so errors propogate normally:
  dwr.engine._receivedBatch = batch;
  if (toEval != null) toEval = toEval.replace(dwr.engine._scriptTagProtection, "");
  dwr.engine._eval(toEval);
  dwr.engine._receivedBatch = null;
  dwr.engine._validateBatch(batch);
  if (!batch.completed) dwr.engine._clearUp(batch);
};

/**
 * @private This function is invoked when a batch reply is received.
 * It checks that there is a response for every call in the batch. Otherwise,
 * an error will be signaled (a call without a response indicates that the 
 * server failed to send complete batch response). 
 */
dwr.engine._validateBatch = function(batch) {
  // If some call left unreplied, report an error.
  if (!batch.completed) {
    for (var i = 0; i < batch.map.callCount; i++) {
      if (batch.handlers[i] != null) {
        dwr.engine._handleWarning(batch, { name:"dwr.engine.incompleteReply", message:"Incomplete reply from server" });
        break;
      }
    }
  }
}

/** @private Called from iframe onload, check batch using batch-id */
dwr.engine._iframeLoadingComplete = function(batchId) {
  // dwr.engine._checkCometPoll();
  var batch = dwr.engine._batches[batchId];
  if (batch) dwr.engine._validateBatch(batch);
}

/** @private Called by the server: Execute a callback */
dwr.engine._remoteHandleCallback = function(batchId, callId, reply) {
  var batch = dwr.engine._batches[batchId];
  if (batch == null) {
    dwr.engine._debug("Warning: batch == null in remoteHandleCallback for batchId=" + batchId, true);
    return;
  }
  // Error handlers inside here indicate an error that is nothing to do
  // with DWR so we handle them differently.
  try {
    var handlers = batch.handlers[callId];
    batch.handlers[callId] = null;
    if (!handlers) {
      dwr.engine._debug("Warning: Missing handlers. callId=" + callId, true);
    }
    else if (typeof handlers.callback == "function") handlers.callback(reply);
  }
  catch (ex) {
    dwr.engine._handleError(batch, ex);
  }
};

/** @private Called by the server: Handle an exception for a call */
dwr.engine._remoteHandleException = function(batchId, callId, ex) {
  var batch = dwr.engine._batches[batchId];
  if (batch == null) { dwr.engine._debug("Warning: null batch in remoteHandleException", true); return; }
  var handlers = batch.handlers[callId];
  batch.handlers[callId] = null;
  if (handlers == null) { dwr.engine._debug("Warning: null handlers in remoteHandleException", true); return; }
  if (ex.message == undefined) ex.message = "";
  if (typeof handlers.exceptionHandler == "function") handlers.exceptionHandler(ex.message, ex);
  else if (typeof batch.errorHandler == "function") batch.errorHandler(ex.message, ex);
};

/** @private Called by the server: The whole batch is broken */
dwr.engine._remoteHandleBatchException = function(ex, batchId) {
  var searchBatch = (dwr.engine._receivedBatch == null && batchId != null);
  if (searchBatch) {
    dwr.engine._receivedBatch = dwr.engine._batches[batchId];
  }
  if (ex.message == undefined) ex.message = "";
  dwr.engine._handleError(dwr.engine._receivedBatch, ex);
  if (searchBatch) {
    dwr.engine._receivedBatch = null;
    dwr.engine._clearUp(dwr.engine._batches[batchId]);
  }
};

/** @private Called by the server: Reverse ajax should not be used */
dwr.engine._remotePollCometDisabled = function(ex, batchId) {
  dwr.engine.setActiveReverseAjax(false);
  var searchBatch = (dwr.engine._receivedBatch == null && batchId != null);
  if (searchBatch) {
    dwr.engine._receivedBatch = dwr.engine._batches[batchId];
  }
  if (ex.message == undefined) ex.message = "";
  dwr.engine._handleError(dwr.engine._receivedBatch, ex);
  if (searchBatch) {
    dwr.engine._receivedBatch = null;
    dwr.engine._clearUp(dwr.engine._batches[batchId]);
  }
};

/** @private Called by the server: An IFrame reply is about to start */
dwr.engine._remoteBeginIFrameResponse = function(iframe, batchId) {
  if (iframe != null) dwr.engine._receivedBatch = iframe.batch;
  dwr.engine._callPostHooks(dwr.engine._receivedBatch);
};

/** @private Called by the server: An IFrame reply is just completing */
dwr.engine._remoteEndIFrameResponse = function(batchId) {
  dwr.engine._clearUp(dwr.engine._receivedBatch);
  dwr.engine._receivedBatch = null;
};

/** @private This is a hack to make the context be this window */
dwr.engine._eval = function(script) {
  if (script == null) return null;
  if (script == "") { dwr.engine._debug("Warning: blank script", true); return null; }
  // dwr.engine._debug("Exec: [" + script + "]", true);
  return eval(script);
};

/** @private Called as a result of a request timeout */
dwr.engine._abortRequest = function(batch) {
  if (batch && !batch.completed) {
    dwr.engine._clearUp(batch);
    if (batch.req) batch.req.abort();
    dwr.engine._handleError(batch, { name:"dwr.engine.timeout", message:"Timeout" });
  }
};

/** @private call all the post hooks for a batch */
dwr.engine._callPostHooks = function(batch) {
  if (batch.postHooks) {
    for (var i = 0; i < batch.postHooks.length; i++) {
      batch.postHooks[i]();
    }
    batch.postHooks = null;
  }
};

/** @private A call has finished by whatever means and we need to shut it all down. */
dwr.engine._clearUp = function(batch) {
  if (!batch) { dwr.engine._debug("Warning: null batch in dwr.engine._clearUp()", true); return; }
  if (batch.completed) { dwr.engine._debug("Warning: Double complete", true); return; }

  // IFrame tidyup
  if (batch.div) batch.div.parentNode.removeChild(batch.div);
  if (batch.iframe) {
    // If this is a poll frame then stop comet polling
    for (var i = 0; i < dwr.engine._outstandingIFrames.length; i++) {
      if (dwr.engine._outstandingIFrames[i] == batch.iframe) {
        dwr.engine._outstandingIFrames.splice(i, 1);
      }
    }
    batch.iframe.parentNode.removeChild(batch.iframe);
  }
  if (batch.form) batch.form.parentNode.removeChild(batch.form);

  // XHR tidyup: avoid IE handles increase
  if (batch.req) {
    // If this is a poll frame then stop comet polling
    if (batch.req == dwr.engine._pollReq) dwr.engine._pollReq = null;
    delete batch.req;
  }

  // Timeout tidyup
  if (batch.timeoutId) {
    clearTimeout(batch.timeoutId);
    delete batch.timeoutId;
  }

  if (batch.map && (batch.map.batchId || batch.map.batchId == 0)) {
    delete dwr.engine._batches[batch.map.batchId];
    dwr.engine._batchesLength--;
  }

  batch.completed = true;

  // If there is anything on the queue waiting to go out, then send it.
  // We don't need to check for ordered mode, here because when ordered mode
  // gets turned off, we still process *waiting* batches in an ordered way.
  if (dwr.engine._batchQueue.length != 0) {
    var sendbatch = dwr.engine._batchQueue.shift();
    dwr.engine._sendData(sendbatch);
  }
};

/** @private Abort any XHRs in progress at page unload (solves zombie socket problems in IE). */
dwr.engine._unloader = function() {
  dwr.engine._unloading = true;

  // Empty queue of waiting ordered requests
  dwr.engine._batchQueue.length = 0;

  // Abort any ongoing XHRs and clear their batches
  for (var batchId in dwr.engine._batches) {
    var batch = dwr.engine._batches[batchId];
    // Only process objects that look like batches (avoid prototype additions!)
    if (batch && batch.map) {
      if (batch.req) {
        batch.req.abort();
      }
      dwr.engine._clearUp(batch);
    }
  }
};
// Now register the unload handler
if (window.addEventListener) window.addEventListener('unload', dwr.engine._unloader, false);
else if (window.attachEvent) window.attachEvent('onunload', dwr.engine._unloader);

/** @private Generic error handling routing to save having null checks everywhere */
dwr.engine._handleError = function(batch, ex) {
  if (typeof ex == "string") ex = { name:"unknown", message:ex };
  if (ex.message == null) ex.message = "";
  if (ex.name == null) ex.name = "unknown";
  if (batch && typeof batch.errorHandler == "function") batch.errorHandler(ex.message, ex);
  else if (dwr.engine._errorHandler) dwr.engine._errorHandler(ex.message, ex);
  if (batch) dwr.engine._clearUp(batch);
};

/** @private Generic error handling routing to save having null checks everywhere */
dwr.engine._handleWarning = function(batch, ex) {
  if (typeof ex == "string") ex = { name:"unknown", message:ex };
  if (ex.message == null) ex.message = "";
  if (ex.name == null) ex.name = "unknown";
  if (batch && typeof batch.warningHandler == "function") batch.warningHandler(ex.message, ex);
  else if (dwr.engine._warningHandler) dwr.engine._warningHandler(ex.message, ex);
  if (batch) dwr.engine._clearUp(batch);
};

/**
 * @private Marshall a data item
 * @param batch A map of variables to how they have been marshalled
 * @param referto An array of already marshalled variables to prevent recurrsion
 * @param data The data to be marshalled
 * @param name The name of the data being marshalled
 */
dwr.engine._serializeAll = function(batch, referto, data, name) {
  if (data == null) {
    batch.map[name] = "null:null";
    return;
  }

  switch (typeof data) {
  case "boolean":
    batch.map[name] = "boolean:" + data;
    break;
  case "number":
    batch.map[name] = "number:" + data;
    break;
  case "string":
    batch.map[name] = "string:" + encodeURIComponent(data);
    break;
  case "object":
    if (data instanceof String) batch.map[name] = "String:" + encodeURIComponent(data);
    else if (data instanceof Boolean) batch.map[name] = "Boolean:" + data;
    else if (data instanceof Number) batch.map[name] = "Number:" + data;
    else if (data instanceof Date) batch.map[name] = "Date:" + data.getTime();
    else if (data && data.join) batch.map[name] = dwr.engine._serializeArray(batch, referto, data, name);
    else batch.map[name] = dwr.engine._serializeObject(batch, referto, data, name);
    break;
  case "function":
    // We just ignore functions.
    break;
  default:
    dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", message:"Unexpected type: " + typeof data + ", attempting default converter." });
    batch.map[name] = "default:" + data;
    break;
  }
};

/** @private Have we already converted this object? */
dwr.engine._lookup = function(referto, data, name) {
  var lookup;
  // Can't use a map: getahead.org/ajax/javascript-gotchas
  for (var i = 0; i < referto.length; i++) {
    if (referto[i].data == data) {
      lookup = referto[i];
      break;
    }
  }
  if (lookup) return "reference:" + lookup.name;
  referto.push({ data:data, name:name });
  return null;
};

/** @private Marshall an object */
dwr.engine._serializeObject = function(batch, referto, data, name) {
  var ref = dwr.engine._lookup(referto, data, name);
  if (ref) return ref;

  // This check for an HTML is not complete, but is there a better way?
  // Maybe we should add: data.hasChildNodes typeof "function" == true
  if (data.nodeName && data.nodeType) {
    return dwr.engine._serializeXml(batch, referto, data, name);
  }

  // treat objects as an associative arrays
  var reply = "Object_" + dwr.engine._getObjectClassName(data) + ":{";
  var element;
  for (element in data) {
    if (typeof data[element] != "function") {
      batch.paramCount++;
      var childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
      dwr.engine._serializeAll(batch, referto, data[element], childName);

      reply += encodeURIComponent(element) + ":reference:" + childName + ", ";
    }
  }

  if (reply.substring(reply.length - 2) == ", ") {
    reply = reply.substring(0, reply.length - 2);
  }
  reply += "}";

  return reply;
};

/** @private Returns the classname of supplied argument obj */
dwr.engine._errorClasses = { "Error":Error, "EvalError":EvalError, "RangeError":RangeError, "ReferenceError":ReferenceError, "SyntaxError":SyntaxError, "TypeError":TypeError, "URIError":URIError };
dwr.engine._getObjectClassName = function(obj) {
  // Try to find the classname by stringifying the object's constructor
  // and extract <class> from "function <class>".
  if (obj && obj.constructor && obj.constructor.toString)
  {
    var str = obj.constructor.toString();
    var regexpmatch = str.match(/function\s+(\w+)/);
    if (regexpmatch && regexpmatch.length == 2) {
      return regexpmatch[1];
    }
  }

  // Now manually test against the core Error classes, as these in some 
  // browsers successfully match to the wrong class in the 
  // Object.toString() test we will do later
  if (obj && obj.constructor) {
	for (var errorname in dwr.engine._errorClasses) {
      if (obj.constructor == dwr.engine._errorClasses[errorname]) return errorname;
    }
  }

  // Try to find the classname by calling Object.toString() on the object
  // and extracting <class> from "[object <class>]"
  if (obj) {
    var str = Object.prototype.toString.call(obj);
    var regexpmatch = str.match(/\[object\s+(\w+)/);
    if (regexpmatch && regexpmatch.length==2) {
      return regexpmatch[1];
    }
  }

  // Supplied argument was probably not an object, but what is better?
  return "Object";
};

/** @private Marshall an object */
dwr.engine._serializeXml = function(batch, referto, data, name) {
  var ref = dwr.engine._lookup(referto, data, name);
  if (ref) return ref;

  var output;
  if (window.XMLSerializer) output = new XMLSerializer().serializeToString(data);
  else if (data.toXml) output = data.toXml;
  else output = data.innerHTML;

  return "XML:" + encodeURIComponent(output);
};

/** @private Marshall an array */
dwr.engine._serializeArray = function(batch, referto, data, name) {
  var ref = dwr.engine._lookup(referto, data, name);
  if (ref) return ref;

  if (document.all && !window.opera) {
    // Use array joining on IE (fastest)
    var buf = ["Array:["];
    for (var i = 0; i < data.length; i++) {
      if (i != 0) buf.push(",");
      batch.paramCount++;
      var childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
      dwr.engine._serializeAll(batch, referto, data[i], childName);
      buf.push("reference:");
      buf.push(childName);
    }
    buf.push("]");
    reply = buf.join("");
  }
  else {
    // Use string concat on other browsers (fastest)
    var reply = "Array:[";
    for (var i = 0; i < data.length; i++) {
      if (i != 0) reply += ",";
      batch.paramCount++;
      var childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
      dwr.engine._serializeAll(batch, referto, data[i], childName);
      reply += "reference:";
      reply += childName;
    }
    reply += "]";
  }

  return reply;
};

/** @private Convert an XML string into a DOM object. */
dwr.engine._unserializeDocument = function(xml) {
  var dom;
  if (window.DOMParser) {
    var parser = new DOMParser();
    dom = parser.parseFromString(xml, "text/xml");
    if (!dom.documentElement || dom.documentElement.tagName == "parsererror") {
      var message = dom.documentElement.firstChild.data;
      message += "\n" + dom.documentElement.firstChild.nextSibling.firstChild.data;
      throw message;
    }
    return dom;
  }
  else if (window.ActiveXObject) {
    dom = dwr.engine._newActiveXObject(dwr.engine._DOMDocument);
    dom.loadXML(xml); // What happens on parse fail with IE?
    return dom;
  }
  else {
    var div = document.createElement("div");
    div.innerHTML = xml;
    return div;
  }
};

/** @param axarray An array of strings to attempt to create ActiveX objects from */
dwr.engine._newActiveXObject = function(axarray) {
  var returnValue;  
  for (var i = 0; i < axarray.length; i++) {
    try {
      returnValue = new ActiveXObject(axarray[i]);
      break;
    }
    catch (ex) { /* ignore */ }
  }
  return returnValue;
};

/** @private Used internally when some message needs to get to the programmer */
dwr.engine._debug = function(message, stacktrace) {
  var written = false;
  try {
    if (window.console) {
      if (stacktrace && window.console.trace) window.console.trace();
      window.console.log(message);
      written = true;
    }
    else if (window.opera && window.opera.postError) {
      window.opera.postError(message);
      written = true;
    }
  }
  catch (ex) { /* ignore */ }

  if (!written) {
    var debug = document.getElementById("dwr-debug");
    if (debug) {
      var contents = message + "<br/>" + debug.innerHTML;
      if (contents.length > 2048) contents = contents.substring(0, 2048);
      debug.innerHTML = contents;
    }
  }
};
// Provide a default path to dwr.engine
if (dwr == null) var dwr = {};
if (dwr.engine == null) dwr.engine = {};
if (DWREngine == null) var DWREngine = dwr.engine;



if (DWRDelegate == null) var DWRDelegate = {};
DWRDelegate._path = ''+JAWR.jawr_dwr_path+'';
DWRDelegate.getAccountingFieldAssociations = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getAccountingFieldAssociations', p0, false, callback);
}
DWRDelegate.pingSession = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'pingSession', false, callback);
}
DWRDelegate.doJavaScriptPing = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'doJavaScriptPing', false, callback);
}
DWRDelegate.isAjaxChatAvailable = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'isAjaxChatAvailable', p0, false, callback);
}
DWRDelegate.deleteCartEntry = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'deleteCartEntry', p0, false, callback);
}
DWRDelegate.getMoreInfo = function(p0, p1, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getMoreInfo', p0, p1, false, callback);
}
DWRDelegate.getPredictiveSearchTerms = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getPredictiveSearchTerms', p0, false, callback);
}
DWRDelegate.getInkModelRefinements = function(p0, p1, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getInkModelRefinements', p0, p1, false, callback);
}
DWRDelegate.getInkModelResults = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getInkModelResults', p0, false, callback);
}
DWRDelegate.setUserPrinterName = function(p0, p1, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'setUserPrinterName', p0, p1, false, callback);
}
DWRDelegate.addPrinter = function(p0, p1, p2, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'addPrinter', p0, p1, p2, false, callback);
}
DWRDelegate.getPrinterList = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getPrinterList', false, callback);
}
DWRDelegate.deletePrinter = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'deletePrinter', p0, false, callback);
}
DWRDelegate.getUserPrinterCount = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getUserPrinterCount', false, callback);
}
DWRDelegate.getQuickViewSkus = function(p0, p1, p2, p3, p4, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getQuickViewSkus', p0, p1, p2, p3, p4, false, callback);
}
DWRDelegate.getReturnLabels = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getReturnLabels', p0, false, callback);
}
DWRDelegate.getAjaxInventoryItemInfo = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getAjaxInventoryItemInfo', p0, false, callback);
}
DWRDelegate.getExtendedAjaxSkuInfo = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getExtendedAjaxSkuInfo', p0, false, callback);
}
DWRDelegate.getAjaxCategoryAZInfo = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getAjaxCategoryAZInfo', p0, false, callback);
}
DWRDelegate.getAjaxComparisonItemInfo = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getAjaxComparisonItemInfo', p0, false, callback);
}
DWRDelegate.removeComparisonItemInfo = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'removeComparisonItemInfo', p0, false, callback);
}
DWRDelegate.addCompareBasketItems = function(p0, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'addCompareBasketItems', p0, false, callback);
}
DWRDelegate.getComparisonItemCount = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getComparisonItemCount', false, callback);
}
DWRDelegate.getComparisonItemList = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getComparisonItemList', false, callback);
}
DWRDelegate.sendComparisonEmail = function(p0, p1, p2, p3, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'sendComparisonEmail', p0, p1, p2, p3, false, callback);
}
DWRDelegate.getAjaxStoreInfo = function(p0, p1, p2, p3, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getAjaxStoreInfo', p0, p1, p2, p3, false, callback);
}
DWRDelegate.getSearchCriteria = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getSearchCriteria', false, callback);
}
DWRDelegate.setAjaxStoreInfoToSession = function(p0, p1, p2, p3, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'setAjaxStoreInfoToSession', p0, p1, p2, p3, false, callback);
}
DWRDelegate.getSingleStore = function(p0, p1, callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getSingleStore', p0, p1, false, callback);
}
DWRDelegate.getCartFlyout = function(callback) {
  dwr.engine._execute(DWRDelegate._path, 'DWRDelegate', 'getCartFlyout', false, callback);
}
/*****************
* Global Variables
******************/
var flyoutCartSize = 5;
var cartItemCount = 0;
var azEntries = [];
var skuInfo = [], skuId;
var lastCartHeight = 0;
var toDate, fromDate;
var haltHide = false;
var suggestTimeout; 
var suggestTermSelected = -1;
var quickViewSkus = [], currentPosition, totalResults = 0, resultsPerPage = 0, currentPage = 0, totalPages = 0;
var jSessionID = '';
var tabindex = 1;

dwr.engine.setWarningHandler(function(){});
dwr.engine.setErrorHandler(function(msg, exception) {
  if(exception.javaClassName == 'com.officedepot.web.session.ajax.AjaxShortCircuitException') {
  	if(exception.errorCode == '6') {
  		if($("#modalLoginEnabled").exists() && $("#modalAccountLoginID").exists()) {
  			hideAll();
  			$('#modalAccountLoginID').click();
  		}
  		else {
  			document.location = '/account/loginAccountDisplay.do';
  		}
  	}
  	else
  	if(exception.errorCode == '7') { // BSD legacy->CU migration code only
  		document.location = '/account/loginAccountDisplay.do';
  	}
  	else
  	if(exception.errorCode == '9') {
  		document.location = '/account/loginReviewDisplay.do';
  	}
  	else
  	if(exception.errorCode == '8') {
  		document.location = '/account/loginPostalCodeDisplay.do';
  	}
  	else
  	if(exception.errorCode == '11') {
  		document.location = '/cdapRequiredError.do';
  	}
  }
});
$.fn.media.defaults.autoplay = true;
$.fn.media.defaults.flashVersion = '8';
$.fn.media.defaults.params = { quality: 'high', menu: 'false', wmode: 'transparent' };

function isCurrentPageYouAreOnSecure() {
	var windowLocationProtocol = window.location.protocol;
	var isSecure = windowLocationProtocol != null && windowLocationProtocol == "https:";
	return isSecure;
}

function appendJSessionIDToAUrl(url) {

	if(url.indexOf('?') > 0)	 {
		url = url.replace('?', jSessionID + '?');
	} else {
		url += jSessionID;
	}
			
	return (url);
}

function json2HtmlData(json) {
	for (prop in json) {
		if( $("#" + prop).exists() ) {
			$("#" + prop).html(json[prop]);
		}
    }   
}

$(function() {
	jSessionID = $.trim($("#header_jsessionid").text());
	
	// send a one time ping to the server that identifies wheather a client has javascript enabled
	$isJavaScriptCheckVerified = $("#header_isJavaScriptCheckVerified").text();
	if( $isJavaScriptCheckVerified == "false" ) {
		DWRDelegate.doJavaScriptPing();	
	}
	
	// trigger to load local error messages
	$('.od_local_error').each(function() {
         $(this).hovertip();
         $(this).click();
	});
	
	$("#storeLocator").hoverIntent(function() { 
		if (!$(".storeLocatorExpanded").exists()) {
			hideAll();
			
			$('#storeLocator').addClass("storeLocatorExpanded");
			$("#storeLocatorOverlay").fadeIn('medium');
			
			var storeNumber = getCookie("yourStore");
			var storeZip =  getCookie("POSTALLOGIN");
				
			storeNumber = (storeNumber && !isNaN(storeNumber)) ? storeNumber : '';
			storeZip = (storeZip && !isNaN(storeZip)) ? storeZip : '';
			
			if ($('.loading', '#storeLocatorAddress').exists()) {
				DWRDelegate.getSingleStore(storeNumber, storeZip, { callback : 
					function (AddressInfo) { 
						var html = buildStoreHoverAddress(AddressInfo);
						$("#storeLocatorAddress").html(html);
						$("#requestor").val("");
						
						var new_href = $("#storeDetailLink").attr("href") + "?requestor=";
						$("#storeDetailLink").attr({href:new_href});
						
						if(!isNaN(AddressInfo.storeId))
							setCookie("yourStore", AddressInfo.storeId);
					}
				});
			} 
			$('#zip').val($('#zip_entry_text').text());
		}			
	} , 
	function() { 
		$('#storeLocator').removeClass("storeLocatorExpanded");
	});
	
	/************
	* Quick View
	*************/
	if ($('.jqQuickView' , '#searchRefine').exists()) {
		totalResults = parseInt($('#qvTotalCount').html());
		resultsPerPage =  ($('.paginationRecordsPerPage', '#skuListFormID').exists()) ? parseInt($('.paginationRecordsPerPage', '#skuListFormID').val()) : 1;
		currentPage =  ($('.searchPagePagination .off').exists()) ? parseInt($('.searchPagePagination .off').html()) : 1;
		totalPages = Math.ceil(totalResults / resultsPerPage);
		quickViewSkus[currentPage] = [];
		
		//QV Related Page Init / Event Handlers
		$('.image' , '#productView').not('#couponDetails .image').append('<div class="quickViewTrigger"><div class="quickViewTriggerBg trans30"></div><div class="buttonwrapper"><div class="b2"><a class="button">Quick View</a></div></div></div>')		
		$('.image > a' , '#productView').not('#couponDetails .image a').mouseover(function(){ $('.quickViewTrigger' , '#searchRefine').hide(); $(this).siblings('.quickViewTrigger').show(); });
		$('.image', '#productView').not('#couponDetails .image').mouseleave(function(){ $('.quickViewTrigger' , '#searchRefine').hide(); });
		$('.skuPageEntity', '#productView').not('#couponDetails .skuPageEntity').mouseover(function(){ $('.quickViewTrigger' , '#searchRefine').hide(); });
		$('#productView.jqQuickView input[id^="sku_"]' , '#searchRefine').not('#couponDetails input').each(function() {
			quickViewSkus[currentPage].push(this.value);
		});
		
		$('.quickViewTrigger a' , '#searchRefine').live('click', function(){
			skuId =  $(this).closest('.products').children().find("input[id^='sku_']").val();
			currentPage =  ($('.searchPagePagination .off').exists()) ? parseInt($('.searchPagePagination .off').html()) : 1;
			
			if( $('#coreMetricsEnabled').exists() )
				cmCreatePageElementTag("SKU("+ skuId +")","Quickview");	

			for (currentPosition=0; currentPosition < quickViewSkus[currentPage].length; currentPosition++)
				if (quickViewSkus[currentPage][currentPosition] == skuId)
					break;

			if (!$('#quickViewContainer').exists()) {
				$('body').append('<div id="quickViewContainer"></div>');
				var quickViewUrl = appendJSessionIDToAUrl("/ajaxhtml/quickView.do");
				$('#quickViewContainer').load(quickViewUrl, function(e){
					if (e.indexOf('jspFrag') > 0) {
						if (quickViewSkus[currentPage].length >= 1)
							$('skuNavigation', '#quickViewContainer').hide();							
							
						quickView(skuId);
					} else {
						$(this).remove();
					}
				});
			} else {
				quickView(skuId);
			}	    	
			
			$('.closeLink img', '#quickViewContainer').height('auto').width('auto');
		});
	}
	
	$('a.categorization').click(function(event) { 
		var lastClass = $(this).attr('class').split(' ').slice(-1);
		if(lastClass == "categorization"){
			return; 
		}
		var new_href = $(this).attr("href");
		if(new_href.indexOf('?') > -1) {
			new_href += "&cm_cat=" + lastClass;
		} else {
			new_href += "?cm_cat=" + lastClass;
		}
		this.href=new_href;
	});	
	
	$('a.realestate').click(function(event) { 
		var lastClass = $(this).attr('class').split(' ').slice(-1); 
		var new_href = $(this).attr("href");
		if(new_href.indexOf('?') > -1) {
			new_href += "&cm_re=" + lastClass;
		} else {
			new_href += "?cm_re=" + lastClass;
		}
		this.href=new_href;
	});
	
	
	var viewAZ = getCookie("viewAZ");
	if(viewAZ == "open"){
		if ( $("#seeAll").length > 0 ) {
			$("#categoryAZ").show();
			$("#seeAll").addClass('lettersShown');
		}	
	}
	$("#seeAll").click(function(){
		var viewAZ = getCookie("viewAZ");
		
		if(!viewAZ || viewAZ == 'close') {
			setCookie('viewAZ', 'open');		
			$('#categoryAZ').slideDown('500');
			$(this).addClass('lettersShown');
		} else {
			setCookie('viewAZ', 'close');
			$('#categoryAZ').slideUp('500');
			$(this).removeClass('lettersShown');
		}
		return false; 	
	});
	
	
	$("#flyoutCheckout").click(function(){
		window.location = 'cart/checkout.do';
	});
	
	
	$('.alphaIndex','#AZindex').hoverIntent(
		function() {
			var currentId = this.id;
			var $ajaxObj = $('.overlayObjcontent','#departmentAZDetails');
			
			if (!$('.loading-light', '#departmentAZDetails .overlayObjcontent').exists())
				$ajaxObj.html('<div class="loading-light"></div>');
			
			hideAll();
				
			$("#departmentAZDetails").show();
			$("#categoryAZ").addClass('exposed');
			
			$('.currentAZselection').removeClass('currentAZselection');
			$(this).addClass('currentAZselection');

			$ajaxObj = $('.overlayObjcontent','#departmentAZDetails');
			
			if (!azEntries[currentId] || azEntries[currentId].length == 0) {
				DWRDelegate.getAjaxCategoryAZInfo(this.id, function (AZEntryInfoList) {
					azEntries[currentId] = AZEntryInfoList;
					
					if (azEntries[currentId].length) {
						$ajaxObj.html( buildDepartmentDiv(azEntries[currentId]) );
					} else if ($ajaxObj.html() == '' || $('.loading-light', '#departmentAZDetails .overlayObjcontent').exists()) {
						azEntries[currentId] = [];
						$ajaxObj.html($('#azerror').html());
					}
				});			
			} else {
					$ajaxObj.html( buildDepartmentDiv(azEntries[currentId]) );
			}
			
			$('#categoryAZ #departmentAZDetails').bgiframe();
			
			return false;	
		}, function(){ return false; }
	);
	
	// a script to load a current shipto address if a user presses a 'my shipto' link on the header
	var currentShiptoHtml = "";
	$("#headerCurrentShiptoID").click(
	 function(){
	   if(currentShiptoHtml != "") {
		   	$("#cartFlyout").slideUp('500'); // hide the cart
	   	 	$("#currentShiptoFlyout").slideDown('500'); // show shipto
	   }
	   else {
		   var pingUrl = appendJSessionIDToAUrl("/ajaxhtml/getCurrentShiptoData.do");
		
		   $.ajax({
			   type: "GET",
			   url: pingUrl,
			   success: function(htmlForLine){
			     currentShiptoHtml = htmlForLine;
			     $("#currentShiptoFlyout").html(htmlForLine);
			     $("#cartFlyout").slideUp('500'); // hide the cart
			     $("#currentShiptoFlyout").slideDown('500'); // show shipto
			   }
			 });
	   }
	   return false;
	 });
	 // this script is required to close the shipto flyout from the bottom
	 $('#hCart, #currentShiptoFlyout').hover(
		function(){},
		function(){
			$("#currentShiptoFlyout").hide();
		}
	   );
	     
	$('#departmentAZDetails .overlayObjcontent, #container').hover (
		function(){  },
		function(e){
			if ($.browser.msie && parseInt($.browser.version) >= 7 && parseInt($.browser.version) < 8) {
				offset = $(this).offset();

				if (e.pageY - this.offsetHeight >= offset.top || //move out bottom
					e.pageY - offset.top < 0 || //move out top
					e.pageX - this.offsetWidth + 25 > offset.left || //move out right
					e.pageX - offset.left < 15 //move out left 
					)
						hideAll(); 
				return;
			}
			
			hideAll(); 
		}
	);
	
	$('#AZindex .map, #sitenav').hover (
		function(){ hideAll(); },
		function(){}
	);
		
	$('.couponsSection','#m04').hoverIntent(
		function() { 
			$(this).toggleClass('couponsSectionHover');
		}
		, function ()
		{ 
			$(this).toggleClass('couponsSectionHover');
		}
	);
	
	$('.overlayObj', '#orderByCatalog, #hCart').bgiframe();
	
	$('#orderByCatalog').hoverIntent(
		function() { $(this).addClass('hover'); }, 
		function () { $(this).removeClass('hover');	}
	);
	
	$("#viewCart").hoverIntent(function(){ 
		if ($("#cartFlyout").css('display') == 'none') {
			haltHide = false;
			if ($('.bsd #currentShiptoFlyout').exists()) {
				$("#currentShiptoFlyout").hide();
			}
			$("#cartFlyout").show("blind", { direction: "vertical" }, 500);
			
			
			if ($('.loading', '#cartFlyout #cartList').exists()) {
			
				DWRDelegate.getCartFlyout(function (CartDisplayEntry) {
					if(CartDisplayEntry == null){
						window.location.reload( true );
					}
					cartItemCount = CartDisplayEntry.length;
					
					$("#cartFlyout #cartList").html( buildCartHtml(CartDisplayEntry) );
					$("#cartFlyout #cartCoupons").html( buildCartCouponHtml(CartDisplayEntry) );
					$('#totalPrice').html( $("#cartSummarySubtotal").text() );
					$("#cartSubtoalObj").html ('(' + $("#cartItemTotalCount").text()+ ' ' + $("#items").text() + ')');
					
					
					var hasCoupons = false; 
					for (var i=1; i <= cartItemCount; i++){
						if (CartDisplayEntry[i-1].coupon){				
							hasCoupons = true; 
						}	
					}
					if(hasCoupons){
						$("#cartSubtoalObj").append(' ' + $("#includes_coupons").text());
					}	
					
					if (cartItemCount > 0) {
						$("#cartFlyout #cartPaging, #cartFlyout #prevNext, #cartFlyout #cartButtons, #cartFlyout .cartSubtotalTable").show();		
					}
					
					lastCartHeight = $('.cartListTable').height();
					
					/** CLICK HANDLERS FOR NEXT AND PREVIOUS **/
					if (cartItemCount > flyoutCartSize) {
						$("#nextFO").click(function() { 
							$("#pagingText").hide();
							var checking = false, counter = 0, showing = 0, showingLast = false, startIndex = 0, index = 0;
							
							$("#pipe").show();
							$('.cartItem').each(function() {
								var $input = $(this);
								var status = $input.attr("style");
								index = parseInt($input.attr("id").substring(8));
								
								if ((typeof(status) == "undefined") || (status.indexOf("none")== -1)){
									checking = true;
								}
								if(checking){
									$input.hide();
									showingLast = false;
									counter++;
								}
								if(counter > flyoutCartSize && showing < flyoutCartSize){
									$input.show();
						
									if(showing == 0){
										startIndex = index; 
									}
									showing++;
									showingLast = true;
								}
							});
							if(showingLast){
								$("#nextFO").hide();
								$("#pipe").hide();
								if((cartItemCount%flyoutCartSize)%2==0){
									$("#cartNavControl").addClass("bg_w");
								}
							}
							var endIndex = startIndex + (flyoutCartSize-1);
							if(endIndex > index){
								endIndex = index;
							}
							var endText = Math.ceil(startIndex/flyoutCartSize);
							
							$("#showingItems").text(endText);
							$("#previousFO").show();
							$("#pagingText").show();
							
							if (lastCartHeight - 75 > $('.cartListTable').height())
								haltHide = true;
								
							lastCartHeight = $('.cartListTable').height();	
						});
						
						$("#previousFO").click(function(){
							$("#pagingText").hide();
							var showStart = 0, counter = 0, hidePrev = false;
							var itemArray = new Array(); 
							$("#pipe").show();
							$('.cartItem').each(function() {
								var $input = $(this);
								var status = $input.attr("style");
								var index = $input.attr("id").substring(8);
								itemArray[counter] = $input;
								counter++;
								if ((typeof(status) == "undefined") || (status.indexOf("none")== -1)){
									if(showStart == 0)
											showStart = index;
								}
							});
							var item, startIndex;
							for(var i=1; i<=itemArray.length; i++){
								item = itemArray[i-1];
								if(i >=(showStart-flyoutCartSize) && i<showStart){
									item.show();
									if(i==1)
										hidePrev = true;
								}else{
									item.hide();
								}				
							}
							if(hidePrev){
								$("#previousFO").hide();
								$("#pipe").hide();
							}
							var startIndex = showStart - flyoutCartSize;
							var endIndex = showStart - 1;
							
							$("#showingItems").text(Math.ceil(startIndex/flyoutCartSize));
							$("#nextFO").show();
							$("#pagingText").show();
							
							if (lastCartHeight - 75 > $('.cartListTable').height()) 
								haltHide = true;
								
							lastCartHeight = $('.cartListTable').height();							
						});
						/** END OF CLICK HANDLERS FOR NEXT AND PREVIOUS **/
						
					}
					
				}); //DWR
			} //IF LOADING
			
		} // IF DISPLAY NONE
	}, function (){ return false; });
	
	$('#hCart, #cartFlyout').hover (
		function(){ haltHide = false; },
		function(){
			if (!haltHide) {
				$("#cartFlyout").hide();
				haltHide = false;
			}
		}
	);
	
	fromDate = $('#orderTracking #fromDate');
	toDate = $('#orderTracking #toDate');
	
	if (fromDate.exists() && toDate.exists()) {
		var localeDateFormat = $('#dateFormat').html();
		localeDateFormat = (localeDateFormat && localeDateFormat != '') ? localeDateFormat : 'mm/dd/yy';
		
		fromDate.attr('autocomplete','off').datepicker({ onSelect: dateSelectionMade, buttonImage: '/images/od/v2/calendar_icon.gif', showOn: 'both', buttonImageOnly: true, dateFormat: localeDateFormat, maxDate: '0D' });
		toDate.attr('autocomplete','off').datepicker({ buttonImage: '/images/od/v2/calendar_icon.gif', showOn: 'both', buttonImageOnly: true, dateFormat: localeDateFormat, maxDate: '0D' });
	}
	
	$('.printLink').click(function(){ window.print(); })
	$('.printLink a').click(function(){ window.print(); })
	$('input,select').each(function() {
		if (this.type != "hidden") {
			var $input = $(this);
			$input.attr("tabindex", tabindex);
			tabindex++;
		}
	});

  	//Dims a button to show it's selected
	$("input.button").focus(function(){
  		$(this).parent().css("opacity","0.5");
 	}).blur(function(){
  		$(this).parent().css("opacity","1");
 	});
	//privacy policy in email
	$("p#privacyPolicyLink a").hover(
		function () {
        	$("#hoverPopup").slideDown("slow");
      	}, 
		function () {
			$("#hoverPopup").slideUp("slow");
		}
    );	
	
	//non-OD US: divides total footer length by number of list items, less padding, to set even widths for them 
	var ulLength = $("#footer .links").width();
	
	if (ulLength==875) 
	{$("ul.links li.l1").width(Math.floor((875)/($("#footer .links li.l1").length))-5);
	}
	
    
	//Shopping Tools/My Viking link is inactive on home page
	$('body#home .en-US #sitenav li#shoppingTools a').removeAttr('href'); 

	$('.menu', '#sitenav').bgiframe();
	
    $("li.nav","#sitenav").hoverIntent(
		function() { 
			hideAll();
			$(this).addClass("sfhover");
		},
		function() { 
			$(this).removeClass("sfhover");
		}  
	);

    //Current promotions should not be shown if no ads are present
    $('.menu_promos').each(function() {
    	$currentMenu = $(this);
    	var adURL = new RegExp("adRedir");
    	var adsFound = adURL.test($currentMenu.html());
        if(!adsFound) {
    		$currentMenu.hide();
    	}
    });        
    
    $("#languageSwitch").hoverIntent(
		function() { 
			hideAll();
			$(this).addClass("sfhover");
		},
		function() { 
			$(this).removeClass("sfhover");
		}  
	);
    $("#navSearch li.add_to_list input").hoverIntent(
		function() { 
			$(this).addClass('hover');
		}
		, function ()
		{ 
			$(this).removeClass('hover');
		}
	);

	//Safari v.1&2 can't style inputs
	isSafari3 = false;
   	if(window.devicePixelRatio) isSafari3 = true;
	if (($.browser.safari)&& (isSafari3==false)) {
		$("input").parent(".b1").css("background-image", "none");
		$("input").parent(".b1a").css("background-image", "none");
		$("input").parent(".b2").css("background-image", "none");
	}
	if (($.browser.safari)&&(isSafari3==false)){
		$("input.button").css("padding", "1px 8px 0 8px");
		$("div.b1a input.button").css("padding-right", "25px");
	}
	//Opera
	if ($.browser.opera){
		$("input.button").css("padding", "0 8px");
		$("div.b1a input.button").css("padding-right", "25px");
		$("#loginSlider div.b3 input.button").css("padding-right", "25px");
	}
	
	//Modify login links on product and search pages to allow server 
	//to make decisions for ssl and user review submission
	if($('body#product').exists() || $('body#searchRefine').exists() || $('body#inkTonerManuf').exists()) {
		var loginLinkText = $("#loginOn").attr("href");
		if(loginLinkText != undefined) {
			if(loginLinkText.indexOf('?')>-1) {
				loginLinkText += "&js=true";
			} else {
				loginLinkText += "?js=true";
			}
			$("#loginOn").attr("href", loginLinkText);
		}
		
		$('form[name=loginForm]').prepend('<input type="hidden" name="js" value="true"/>');
	}
	
    $("a.reviewTabLink").each(function() {
		var reviewTabLink = $(this).attr("href");
		if(reviewTabLink != undefined) {
			reviewTabLink += "#reviewTab";
			$(this).attr("href", reviewTabLink);
  		}
	});
    
	$('#cartUpdateForm input.removeCheck').keypress(function (e) {
		return defaultSubmit(e);
    });	

	$('#cartUpdateForm input.cart_quantity').keypress(function (e) {
		return defaultSubmit(e);
    });	

	$('#jQueryEditContactForm input').keypress(function (e) {
		return defaultSubmit(e);
    });	

	$('#jQueryCnetSkusAddToCartForm input').keypress(function (e) {
		return defaultSubmit(e);
    });	
	
	function defaultSubmit(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#defaultSubmit').click();
			return false;			
		} else {
			return true;
		}
	}

	$('#skuListFormID input[type=text]').keypress(addToCartDefaultSubmit);
	for (var index=0; index<5; index++){
		$('#skuListFormID_'+index+' input[type=text]').keypress(addToCartDefaultSubmit);
	}
	
	function addToCartDefaultSubmit(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			var startIndex = this.name.indexOf("[");
			var endIndex = this.name.indexOf("]");
			var selectedItem = this.name.substring(startIndex+1, endIndex);			
			var itemToAdd = this.form.id+"_INDEX_" + selectedItem;
			var button = $("#"+itemToAdd);
			if (button.length>0){				
				button[0].click();
			}
			return false;
		} else {
			return true;
		}
	}
	
	var html = $("#cslink").html();
	// activate 1.800-DEPOT session and clone lookup
	$("#a01Phone").dblclick(function(){
		$("#cslink").show();
		$("#cslink").dblclick(function() {$("#cslink").hide();});		
		$("#cslink_closeBox").click(function () {
    		$("#cslink").hide();
    	});
	});
	
	$(".clickableerror").dblclick(function(){
		$(".beerrorcode").show();		
	});
	
	// activate cart status session and clone lookup
	$("#navcart").dblclick(function(){
		$("#cslink").show();
		$("#cslink").dblclick(function() {$("#cslink").hide();});		
		$("#cslink_closeBox").click(function () {
    		$("#cslink").hide();
    	});
	});
	
	// activate bsd login page session and clone lookup
	$("#hbRight").dblclick(function(){
		$("#cslink").show();
		$("#cslink").dblclick(function() {$("#cslink").hide();});		
		$("#cslink_closeBox").click(function () {
    		$("#cslink").hide();
    	});
	});
	
    $("input.focus").keypress(function(e) {
		return submitOnEnter(this,e);
    });
    
    
    //Cart entries exclusive checkbox
    $('#cartEntries input.saveForLaterCheck').click(function() {
		var index = $("input.saveForLaterCheck").index(this);
		if($(this)[0].checked) {
			$('#cartEntries input.removeCheck').eq(index)[0].checked=false;
		}
    });
    
    $('#cartEntries input.removeCheck').click(function() {
		var index = $("input.removeCheck").index(this);
		if($(this)[0].checked) {
			$('#cartEntries input.saveForLaterCheck').eq(index)[0].checked=false;
		}
    });
    
	$('form').submit(function(){
		$(':submit', this).click(function() {
			return false;
		});
	});  
    
    //Modal Account Login
    if($("#modalLoginEnabled").exists()) {
	    $('a.accountLogin').live('click', function(e) {
	    	e.preventDefault();
	    	var myObj = this;
	    	if (!$('#modalLogin').exists()) {
				$('body').append('<div id="modalLogin"></div>');
				$('#modalLogin').load("/ajaxhtml/modalLogin.do", function(e){
					if (e.indexOf('jspFrag') > 0) {
						$('#modalLogin').hide();
						modalLogin(myObj);
					} else {
						$(this).remove();
					}
				});
			} else {
				modalLogin(myObj);
			}   	    	
	    });
    }
    //Modal Account Linking
    if($("#modalLinkingEnabled").exists()) {
	    $('#account_modalAccoutLinking a').live('click', function(e) {
	    	e.preventDefault();
	    	$('#account_modalAccoutLinking input:checkbox').attr('checked', 'checked');
	    	var myObj = this;
	    	if (!$('#modalLinking').exists()) {
				$('body').append('<div id="modalLinking"></div>');
				$('#modalLinking').load("/ajaxhtml/modalLinking.do", function(e){
					if (e.indexOf('jspFrag') > 0) {
						$('#modalLinking').hide();
						modalLinking(myObj);
					} else {
						$(this).remove();
					}
				});
			} else {
				modalLinking(myObj);
			}   	    	
	    });
    }
    
    //Dynamically set page title & subtitle from special links content
    var pageh = $("#speciallink #m02 h1").text();
    var pageh1bu = $("input#pageh1bu").val();
    var pageh1 = $("input#pageh1").val();
    var pagep1 = $("input#pagep1").val();
    var pageh2 = $("#speciallink #m02 h2#subTitle").text();
    var pagep1bu = $("input#pagep1bu").val();
    
    if (pageh1!=undefined){
		$("h1#slH1").html(pageh1);
	}
	else if(pageh!=""){
		$("h1#slH1").text(pageh);
		$("#speciallink #m02 h1").hide();
	}
	else{
		$("h1#slH1").html(pageh1bu);
	}
	if (pagep1!=undefined){
		$("p#slp1").html(pagep1);
	}
	else if(pageh2!=""){
		$("p#slp1").text(pageh2);
		$("#speciallink #m02 h2#subTitle").hide();
	}
	else{
		$("p#slp1").html(pagep1bu);
	}
		
	if(location.host=="www.officedepot.com" || location.host=="preview.officedepot.com"){
		switch (location.pathname){	
		 	case "/a/browse/desks-and-workcenters/N=5+1183/":
       		case "/storelocator/input.do":
      		case "/a/browse/laptop-computers/N=5+10189/":
       		case "/a/browse/paper/N=5+4203/":
       		case "/a/ink-toner-and-ribbons/":
       		case "/catalog/inkTonerModel.do?Ne=100000&N=5+100686":
       		case "/catalog/inkTonerModel.do?Ne=100000&N=5+102646":
       		case "/a/browse/chairs/N=5+1011/":
		 	case "/a/browse/printers-scanners-copiers-and-faxes/N=5+10566/":
		 	case "/a/browse/office-supplies/N=5+1676/":
       		case "/a/browse/desktop-computers/N=5+394581/":
		 	case "/a/browse/all-in-one/N=5+10569/":
		 	case "/a/browse/cleaning-and-breakroom/N=5+2316/":
		 	case "/a/browse/file-and-storage-cabinets/N=5+1236/":
		 	case "/a/browse/binders-and-accessories/N=5+2155/":
      		case "/a/products/348037/Office-Depot-Brand-Copy-Paper-8/":
       		case "/a/browse/monitors/N=5+10058/":
      		case "/a/browse/laser-printers/N=5+10665/":
      		case "/a/design-print-and-ship/":
      		case "/a/browse/school-supplies/N=5+5617/":
      		case "/a/browse/computers/N=5+10188/":
      		 	insertDotomiTrackingJS();
		        break;
    	  }
	}	//end if

	/*****************************
	* Global Solutions
	******************************/
	$('h2.backToTop a', '.moduleStruct').click(function(){ $('html, body').animate({ scrollTop: 0 }, 500); });
	$('input[type="text"]').not('[id="searchField"]').focus(function(){ this.select(); });
	$('a.closeLink', '.overlayObj').live('click', function(){ $(this).closest('.overlayObj').hide(); });
	$().keyup(function(e){ if(e.keyCode == 27) hideAll(); })
	
	/*****************************
	* Ink And Toner Overrides
	******************************/
	inkDepotJavaScriptUrl=appendJSessionIDToAUrl('/catalog/inkDepot.do');
	if (!$('#container.bsd').exists()) {
		$("a[href='/a/ink-toner-and-ribbons/'], a[href^='/inkToner']", "#container").not('.ignore_rewrite').attr('href', inkDepotJavaScriptUrl);
		$("a[href='http://" + window.location.host + "/a/ink-toner-and-ribbons/']", "#container").not('.ignore_rewrite').attr('href', 'http://' + window.location.host + inkDepotJavaScriptUrl);
	}
	
	if($('#container.bsd').exists())
	{
		$("#inkDepot a").attr('href', inkDepotJavaScriptUrl + '?bsd=true');
	}
	$("#inkTonerSelect").change(function() {
	
		val = $(this).val();
		
		if (val != '')
			window.location =	'http://' + window.location.host + inkDepotJavaScriptUrl + '#manufId:' + ((val.indexOf(' ') > 0)?val.substring(val.indexOf(' ') + 1):val) + '/';
		else
			window.location = 'http://' + window.location.host + inkDepotJavaScriptUrl + '#manufId:/';
	});
	
	/******************************
	* Snapping Accordion Module CSS
	*******************************/
	$('.snapAccordion h3').click(function(){
		$(this).toggleClass('closed').next().toggleClass('hidden');
	});
	
	/*****************************
	* Sliding Accordion Module CSS
	******************************/
	var contentsHeight = 143, accordionDelay = 17, accordionJumps = Math.floor(contentsHeight / accordionDelay), inProgress = false;
	if ($('.accordion').exists()) {
		$('.accordion h2:nth-child(1)').addClass('open');
		$('.accordion .accordionContents:nth-child(2)').height(contentsHeight);
		$('.accordion h2').click( function() {
			$obj = $(this).next();
			
			if ($obj.height() > 0 || inProgress) {
				$(this).parent().children('.accordionContents').height('0px').css('position','absolute');
				$obj.height(contentsHeight).css('position','static');
				inProgress = false;
				
				return;
			}
			
			$(this).parent().children('h2').removeClass('open');
			$(this).addClass('open');
			
			$(this).parent().children('.accordionContents').each(function(){ 
				if ($(this).height() > 0) 
					$obj2 = $(this); 
			});
	
			$(this).everyTime(	1, "accordion",
								function(i) {
									inProgress = true;
									$obj2.css('position','static').height(contentsHeight - (i*accordionDelay));
									$obj.css('position','static').height(i*accordionDelay);
									
									if (i == accordionJumps){
										$obj2.height(0).css('position','absolute');
										$obj.height(contentsHeight).css('position','static');
										inProgress = false;
									}
								}, accordionJumps);
		});
	}
	
	$('.accordion h2, .alphaIndex, .disSel, .ajaxWait').each( function(){ disableSelection(this); });
	
	$('a.flash').media();
	$('span.flashAd').show();

	if(location.hash.length == 0) {
		$("input.focus:last").focus();
	}
	/**
	START OF Viking Specific JS
	**/
	
	//Login Page Hide/Show
	if ( ($("#registeredAccount").attr('checked')) ) { 
		$("#login_existing").show(); 
	}
	
	$("#registeredAccount").click( function() {
		$("#login_existing").show() 
	});
	
	$("#newAccount, #existingAccount").click( function(){
		$("#login_existing").hide() 
	});
	
	//Delivery Info Hide/Show
	$(".viking .shipToAddressHideShow").hide();
	if ( $('input' , ".viking #checkSameAs").attr('checked') )
		$(".viking .shipToAddressHideShow").show();
	
	$(".viking #checkSameAs input:checkbox").click( function() {
		($(this).attr('checked')) ? $(".viking .shipToAddressHideShow").show() : $(".viking .shipToAddressHideShow").hide(); 
	});
	
	//Nectar option Hide/Show
	$("#NectarTable").hide();
	$("#nectarPoints").click( function() {
		($(this).attr('checked')) ? $("#NectarTable").show() : $("#NectarTable").hide(); 
	});
	
	$('#editBillingInfo #billto_PaymentInfo, #vikingUserDetails #billto_PaymentInfo, #vikingRegistration #billto_PaymentInfo').removeClass().addClass('regDefault');
	
	$('#editBillingInfo .tenderType:checked, #vikingUserDetails .tenderType:checked, #vikingRegistration .tenderType:checked').each( function(){
		$('#editBillingInfo #billto_PaymentInfo, #vikingUserDetails #billto_PaymentInfo, #vikingRegistration #billto_PaymentInfo').removeClass().addClass('show' + this.id);
	});
	
	$('#editBillingInfo .tenderType, #vikingUserDetails .tenderType, #vikingRegistration .tenderType').click(function(){
		$('#editBillingInfo #billto_PaymentInfo, #vikingUserDetails #billto_PaymentInfo, #vikingRegistration #billto_PaymentInfo').removeClass().addClass('show' + this.id);
	});
	
	$(".hovertip").hoverIntent (function(e) {
		$('#tempHoverObj').remove();
		
		$hover_obj = $(this).children('.hoverCloudText').clone();
		$hover_obj.css('left', e.pageX - 110).css('top', e.pageY + 15).attr('id', 'tempHoverObj');
		
		$('body').append($hover_obj);
		
		$hover_obj.fadeIn();
	}, function() { 
 		$('#tempHoverObj').fadeOut(function(){ $(this).remove() });
	});
	/**
	END OF Viking Specific JS
	**/
	
/*OD US TOOLTIP*/
	$(".tooltip").hoverIntent(function(e){	
		xOffset = 10;
		yOffset = 20;										  
		t = $(this).attr("title");
		$(this).attr("title", "")								  
		$("body").append("<div id='tooltip'><span class='ttTop'>&nbsp;</span><p>"+t+"</p><span class='ttBot'>&nbsp;</span></div>");
		v = (($("#tooltip").height())/2); 
		$("#tooltip")
			.css("top",(e.pageY - xOffset - v + 8) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.show();		
    },
	function(){
		$(this).attr("title", t)	
		$("#tooltip")
		.remove();
    });	
/*END OD US TOOLTIP*/	

	//Coremetrics element tracking code
	$('.cmElementID','#cmElementTracking').each(function() {
		var $el = $(this);
		cmCreatePageElementTag($el.text(),$el.next().text());
	});
	
	$(".overlayObj", "#predictSearchFlyout").hover(
		function(){  }, 
		function() {
			$(this).hide(); 
	});
	
	$("table.predictsearchresults tr.searchresrow a","#predictSearchList").live('mouseover',function(){ 
		$('.searchHighlight',"#predictSearchList").removeClass('searchHighlight'); 
		$(this).addClass('hovered'); 
	});
	
	$("table.predictsearchresults tr.searchresrow a","#predictSearchList").live('mouseout', function(){ 
		$('.searchHighlight',"#predictSearchList").removeClass('searchHighlight'); 
		$(this).removeClass('hovered');	
	});
	
	if($('#suggestSearchOn').exists()) {	
		$("#searchField").keyup(function(e) {
			if(validkey(e)){
				clearTimeout(suggestTimeout) ;
				var searchTerm = $("#searchField").val().toLowerCase();
				
				if(searchTerm.length>2){
					suggestTimeout = setTimeout("suggestSearch('"+searchTerm+"')", 250);
				} else {
					$(".overlayObj", "#predictSearchFlyout").hide();
					return;
				}	

				$("#searchField").focus();
				
		 		return true;
		 	}	
		 });
	}//END SUGGESTIVE SEARCH
	
	$('#searchField').mouseover(function(){
		$('.currentAZselection').removeClass('currentAZselection');
		$("#categoryAZ").removeClass('exposed');
		$('.overlayObj', '#categoryAZ').hide();
		$('.nav', '#sitenav').removeClass('sfhover');		
	});
	
	$('#searchField').keydown(function (e) {
		switch(e.which?e.which:e.keyCode) {
			case 38: // up
				e.preventDefault();
				moveSelect(-1);
				break;
			case 40: // down
				e.preventDefault();
				moveSelect(1);
				break;
			case 13: // enter
				e.preventDefault();
				$("#searchField").blur();
				$(".overlayObj", "#predictSearchFlyout").hide();				
				if($(".searchHighlight").exists()) {
					$(this).closest("form").append('<input type="hidden" name="searchSuggestion" value="true"/>');
				}else{
					//do nothing
				}
				$(this).closest("form").submit();
				break;		
		}
    });	
	
	// session timeout dialog warning
	if($("#modalSessionTimeout").exists()) {
		
		// default http session life span
		var DEFAULT_MAX_SESSION_INTERVAL = 30*60*1000;
		
		// pop the window 2 minutes before http session expires
		var POPUP_DIALOG_TIME = 2*60*1000;
		
		// http session timeout setting from the app server
		var originalSessionMaxInactiveInterval = $('#sessionMaxInactiveInterval').html();
		//alert(originalSessionMaxInactiveInterval);
		
		// I want to ping every 5 minutes
		var numberOfPings = ((originalSessionMaxInactiveInterval/60)/5)-1;
		//alert(numberOfPings);
		var timeBetweenThePings = 5*60*1000; // ping every 5 minutes
		
		// keep a session alive. We have an issue if a session is set to a large number
		if(numberOfPings>0) {
			$(this).everyTime(timeBetweenThePings, "session_timeout_countdown", function(i) {
				DWRDelegate.pingSession();
			}, numberOfPings);
		}
		
		// session timeout timer goes off 2 minutes prior to session timeout
		var sessionMaxInactiveInterval;
		if( originalSessionMaxInactiveInterval != '') {
			sessionMaxInactiveInterval = originalSessionMaxInactiveInterval * 1000 - POPUP_DIALOG_TIME;
		}
		else {
			sessionMaxInactiveInterval = (DEFAULT_MAX_SESSION_INTERVAL)-(POPUP_DIALOG_TIME); // 1680000 = 28 min
		}
		//alert(sessionMaxInactiveInterval);
		
		// activate a popup dialog 2 minutes prior to session timeout
		$(this).oneTime(sessionMaxInactiveInterval, "session_timeout", function() {  	 
	    	var loginTitle = $('#modalSessionDialogTitle').html();
	    	var modalSessionDialogContinueButtonLabel = $('#modalSessionDialogContinueButtonLabel').html();
	    	var loginHtml = "<div id='modalSessionContent'><div id='modalSessionContentBody'>" + $('#modalSessionDialogBody').html() + "</div></div>";
	
	    	var $dialogBox = $(loginHtml).dialog({bgiframe: true, title: loginTitle, modal: true,  resizable: false, draggable: false,position: 'center', height: 295, width:590, 
	    		overlay: { opacity: 0.5, background: "black" }, hide:"scale",
	    		close:function(){$("#timeout-text strong").stopTime("session_timeout_countdown");$("input.focus:last").focus();$(this).remove();},
	    		buttons: { "Continue" : function() { $(this).dialog("close"); } }
	    		});
	    			
	   		var times = POPUP_DIALOG_TIME/1000;
		   	$("#timeout-text strong").everyTime(1000, "session_timeout_countdown", function(i) {
				$("#timeout-text strong").text(times-i);
				if(i==times) {
					if( $dialogBox.dialog( "isOpen" ) ) {
						window.location = '/account/logout.do';
						$dialogBox.dialog('destroy').remove();
					}
				}
			}, times);
  		});
  	}
	
  	
  	//Coremetrics 
  
  	if($("#firstRequest").exists()) {
		cmCreatePageElementTag("Reskin","NewSite");
	}
  	
	
	$('.clickToChat', '#departmentAZDetails').live('click',function(e){
		e.preventDefault();
		$('.clickToChat a', '#hide_me').click();
	});  	
  	
    /*******************************************
	* BSD Specific JS. Hide and show SKU images. 
	********************************************/	
	
	$("#hideLink").click( function () {
       $("#checkout td.photo img").hide();
       $("#toggleLink #hideLink").hide();
       $("#toggleLink #showLink").show();
    });
	$("#showLink").click( function () {
		$("#checkout td.photo img").show();
		$("#toggleLink #showLink").hide();
		$("#toggleLink #hideLink").show();
	});
	/*******************************************
	* BSD Specific JS. Show more cc fields for procurement card. 
	********************************************/
	$("#pcard #addMoreCC").click(function() {
		$('#pcard #ccEntry tr').removeClass('hide');
		$("#pcard .add_more").hide();
	});
	
	// Limit length of text area input
	$('textarea.textarea','#norwoodTable').keypress(function(e) {
		var $textArea = $(this);
		if($textArea.val().length > $textArea.metadata().size) {
			$textArea.val($textArea.val().substring(0, $textArea.metadata().size));
		}
	});
	
}); //End document ready function

//*********************************************************************************************
// Start Main Site Javascript 
//*********************************************************************************************

function getBVRatingImage(sku){
	return $('#bvPath').html() + '/' + $('#bvContext').html() + '/' + sku + '/ratings.gif';
}

function quickView(qvSkuId) {
	$('#details-quickViewContent div, #qvImg, #qvEntities, #qvDesc, #qvRating, #qvPrice, #qvPriceBreaks, .smTxt, #qvAvail', '#quickViewContent').hide();
	$('#quickViewContent', '#quickViewContainer').addClass('loadingSku');
	
	$('#quickViewContainer').dialog({
		bgiframe: true, 
		modal: true,  
		resizable: false, 
		draggable: false,
		position: 'center', 
		width: 530, 
		dialogClass: 'hide-title-bar',
   		overlay: { opacity: 0.5, background: "black" }, 
   		hide:"scale"
	}).dialog('open');
	
	if (!skuInfo[qvSkuId]) {
		DWRDelegate.getExtendedAjaxSkuInfo(qvSkuId, function(skuData) {
			skuInfo[skuData.sku] = skuData;
			loadQuickViewSku(skuData.sku);
		});
	} else {
		loadQuickViewSku(qvSkuId);
	}
	
	skuId = qvSkuId;
}

function modalLogin(domObj) {
	$('.dynamicAccountLoginForm').append('<input type="hidden" name="loginDestination" value="'+ domObj.href +'"/>');
	$('.dynamicAccountLoginForm').append('<input type="hidden" name="loginDestinationForDWRrequest" value="'+ document.location +'"/>');
	var loginTitle = $('#accountLoginDialogTitle').html();
	var loginHtml = "<div id='loginContent'><div id='loginContentBody'>" + $('#accountLoginDialogBody').html() + "</div></div>";
	var $dialogBox = $(loginHtml).dialog({bgiframe: true, title: loginTitle, modal: true,  resizable: false, draggable: false,position: 'center', height: 250, width:590, 
		overlay: { opacity: 0.5, background: "black" }, hide:"scale" ,open:function(){$('#loginContentBody input[name=loginName]').focus()},
		close:function(){$("input.focus:last").focus();}});
	$('#loginContentBody form[name=loginForm]').submit(function() {
		$('#loginContentBody .col1 .login').html('Loading..');
		return true;
	});	
}

function modalLinking(domObj) {
	var linkingTitle = $('#accountLinkingDialogTitle').html();
	var loginHtml = "<div id='linkingContent'><div id='linkingContentBody'>" + $('#accountLinkingDialogBody').html() + "</div></div>";
	var $dialogBox = $(loginHtml).dialog({bgiframe: true, title: linkingTitle, modal: true,  resizable: false, draggable: false,position: 'center', height: 250, width:590, 
		overlay: { opacity: 0.5, background: "black" }, hide:"scale" ,open:function(){$('#linkingContentBody input[name=billToID]').focus()},
		close:function(){$("input:checked").attr('checked','')}});
	$('#linkingContentBody form[name=linkingForm]').submit(function() {
		$('#modalLinking .link').html('Loading..');
		return true;
	});	
}


function loadQuickViewSku(qvSkuId) {
	$('#zoom-quickViewTab', '#quickViewContainer').hide();
	
	$('#qvCurrentSku', '#skuNavigation').html( (currentPosition + ((currentPage - 1) *resultsPerPage)) + 1);
	$('#qvTotalResults', '#skuNavigation').html( totalResults );
	
	if ($.browser.msie && parseInt($.browser.version) == 6) {
		$('#qvAddToCart input, #qvSaveToList input').css('font-size','10px');
		$('#qvAddToCart input[type=text]').css('border', '1px solid #ccc').css('padding', '2px').width('20px').height('14px');
	}
	var cm_cat = "cm_cat=2000000020";
	if(skuInfo[qvSkuId].link.indexOf('?') > -1) {
		cm_cat = "&" + cm_cat;
	} else {
		cm_cat = "?" + cm_cat;
	}
	skuURL = 'http://' + window.location.host + appendJSessionIDToAUrl(skuInfo[qvSkuId].link + cm_cat);
	

	
	$('#qvImg a', '#quickViewContainer').attr('href', skuURL);
	$('#qvImg img', '#quickViewContainer').attr('src', skuInfo[qvSkuId].imageFileNameLg).height('auto').width('auto').attr('alt',skuInfo[qvSkuId].description.substring(0,30));
	$('#qvDesc', '#quickViewContainer').html('<a href="' + skuURL + '">' +skuInfo[qvSkuId].description + '</a>');
	
	$('#qvItemNum', '#quickViewContainer').html(skuInfo[qvSkuId].sku);
	
	if (!skuInfo[qvSkuId].customizable) {
		$('#qvCustomize', '#quickViewContainer').hide();
		$('#qvAddToCart, #qvSaveToList', '#quickViewContainer').show();
		
		$('.qvSkuId', '#quickViewContainer').val(skuInfo[qvSkuId].sku);
	} else {
		$('#qvCustomize', '#quickViewContainer').show();
		$('#qvAddToCart, #qvSaveToList', '#quickViewContainer').hide();
		
		$('a', '#qvCustomize').attr('href', '/catalog/vendorRouter.do?configurableItemType=' + skuInfo[qvSkuId].configurableItemType + '&id=' + skuInfo[qvSkuId].sku);
	}
	
	$('#qvEntities', '#quickViewContainer').html(skuInfo[qvSkuId].entityHtml);
	
	if (skuInfo[qvSkuId].entityHtml.indexOf('s7.officedepot') > 0) {
		$('#qvEntities img[alt="Image Zoom"]', '#quickViewContainer').parent().hide();
		$('#zoom-quickViewTab', '#quickViewContainer').show();
		
		flashObject = '';
		flashObject +='<div class="flashObjContainer"><OBJECT ID="' +skuInfo[qvSkuId].sku+ '" HEIGHT="100%" WIDTH="100%">';
        flashObject +=' <PARAM NAME="movie" VALUE="http://s7.officedepot.com/is-viewers/flash/genericzoom.swf?serverUrl=http://s7.officedepot.com/is/image/&contentRoot=http://s7.officedepot.com%2fskins&image=officedepot%2F' +skuInfo[qvSkuId].sku+ '&config=officedepot/RenderSetConfigDefaults">';
        flashObject +=' <PARAM NAME="menu" VALUE=false> <PARAM NAME="quality" VALUE="high"><PARAM NAME="scale" VALUE="noscale"><PARAM NAME="wmode" VALUE="opaque">';
        flashObject +=' <EMBED wmode="opaque" src="http://s7.officedepot.com/is-viewers/flash/genericzoom.swf?serverUrl=http://s7.officedepot.com/is/image/&contentRoot=http://s7.officedepot.com%2fskins&image=officedepot%2F' +skuInfo[qvSkuId].sku+ '&config=officedepot/RenderSetConfigDefaults"';
        flashObject +=' QUALITY="high"  HEIGHT="100%" WIDTH="100%" SWLIVECONNECT="true"';
        flashObject +=' NAME="' +skuInfo[qvSkuId].sku+ '" >';
        flashObject +=' </EMBED></OBJECT></div>';
        
		$('#zoom-quickViewContent').html( flashObject );
		
	} else {
		if ( $('.qvSelectedTab', '#quickViewTabsContainer').attr('id') == 'zoom-quickViewTab') {
			$('#overview-quickViewTab', '#quickViewTabsContainer').click();
		}
	}
	
	$('#qvRating a', '#quickViewContainer').html( '<img src="' + getBVRatingImage(qvSkuId) + '" />').attr('href', skuURL + '#reviewTab');
	$('#qvSkuLink', '#quickViewContainer').attr('href', skuURL)
	
	/* Build Availability Icons */
	var tempHtml = '<div><img src="' + $('#imgPath').html() + 'common/checkin.gif" /><span class="availibilityText">';
	
	if (skuInfo[qvSkuId].walkInOnly == false) {
		if (skuInfo[qvSkuId].availabilityIconList.length == 0) 
			tempHtml +='Delivery Only';
		else 
			tempHtml+='Available Online';
	} else {
		tempHtml+='In Stores Only';
	}
	
	tempHtml += '</span></div>';
	
	for (x=0; x<skuInfo[qvSkuId].availabilityIconList.length; x++) 
		tempHtml += '<div><img src="' + $('#imgPath').html() + skuInfo[qvSkuId].availabilityIconList[x].iconSrc + '" /> <span class="availibilityText">' + skuInfo[qvSkuId].availabilityIconList[x].msg + '</span></div>';
	
	$('#qvAvail', '#quickViewContainer').html(tempHtml)
	
	/* Build Details Tab */
	tempHtml = '';
	for (x=0; x<skuInfo[qvSkuId].attributes.length; x++) 
		tempHtml += '<div class="qvTitle">' + skuInfo[qvSkuId].attributes[x].name + '</div><div>' + skuInfo[qvSkuId].attributes[x].value + '</div>';
	
	$('#details-quickViewContent', '#quickViewContainer').html(tempHtml)
	
	/* Build Pricing Block [Including Rebates] */
	tempHtml = '<table class="pricing_block" cellspacing="0">';
	if (skuInfo[qvSkuId].rebateDisplayData.numOfRebates > 0) {
		tempHtml += '<tr><th>Original Savings:</th><td>$' + skuInfo[qvSkuId].rebateDisplayData.regPrice.toFixed(2) + '</td></tr>';
		
		if (skuInfo[qvSkuId].rebateDisplayData.numOfInstantRebates > 0) {
			tempHtml += '<tr><th>Instant Savings:</th><td>-$' + skuInfo[qvSkuId].rebateDisplayData.amtOfAllInstantRebates.toFixed(2) + '</td></tr>';
			tempHtml += '<tr><th>Checkout Price:</th><td>$' + skuInfo[qvSkuId].rebateDisplayData.priceAfterInstantRebate.toFixed(2) + '</td></tr>';
		}
		
		if (skuInfo[qvSkuId].rebateDisplayData.numOfMailInRebates > 0)
			tempHtml += '<tr><th><a>' + ((skuInfo[qvSkuId].rebateDisplayData.numOfMailInRebates>=2)?'('+skuInfo[qvSkuId].rebateDisplayData.numOfMailInRebates+') ':'') + 'Mail-in Savings:</a></th><td>-$' + skuInfo[qvSkuId].rebateDisplayData.amtOfAllMailInRebates.toFixed(2) + '</td></tr>';
	}	

	tempHtml += '<tr class="your_price"><th class="your_price_nt">Your Price:</th><td class="main_price">' + ((skuInfo[qvSkuId].rebateDisplayData.numOfRebates > 0) ? '$' + skuInfo[qvSkuId].rebateDisplayData.priceAfterRebates.toFixed(2) : skuInfo[qvSkuId].sellPrice) + '</td></tr>';
	
	if (skuInfo[qvSkuId].rebateDisplayData.numOfRebates > 0)
		tempHtml += '<tr><td class="rebatePrice" colspan="2"><div class="f_left mainColor">after' + skuInfo[qvSkuId].rebateDisplayData.jspText + '<div class="smTxt pad_b10">Savings apply to 1 item per order</div></div></td></tr>';
	tempHtml += '</table>';
	
	$('#qvPrice', '#quickViewContainer').html(tempHtml);
	
	/* Build Price Breaks */
	if (skuInfo[qvSkuId].bulkPricing && skuInfo[qvSkuId].bulkPrices.length >= 1) { 
		tempHtml = '<div class="price_breaks"><table class="breaks" cellspacing="0">';
		tempHtml += '<tr class="tr0"><th class="th1" colspan="2">Buy More and Save</th></tr>';
			
		for (x=0; x < skuInfo[qvSkuId].bulkPrices.length; x++)
			tempHtml += '<tr class="outside"><th>' + skuInfo[qvSkuId].bulkPrices[x].range + '</th><td>' + skuInfo[qvSkuId].bulkPrices[x].price + '</td></tr>';
			
		tempHtml += '</table>';
		$('#qvPriceBreaks', '#quickViewContainer').html(tempHtml);
	}
	
	//Show all elements, hide loading ticker
	$('#details-quickViewContent div, #qvImg, #qvEntities, #qvDesc, #qvRating, #qvPrice, #qvPriceBreaks, .smTxt, #qvAvail', '#quickViewContent').show();
	$('#quickViewContent', '#quickViewContainer').removeClass('loadingSku');
}
	
function suggestSearch(searchTerm){
	
	if (!$('.loading-light', '#predictSearchFlyout').exists() && $('.overlayObj', '#predictSearchFlyout').css('display') == 'none') {
		$('.searchresrow', '#predictSearchFlyout').remove();
		$('#predictSearchList', '#predictSearchFlyout').prepend('<div class="loading-light"></div>');
	}

	DWRDelegate.getPredictiveSearchTerms(searchTerm.toLowerCase(), function (results) {
		if(results == null){
			window.location.reload( true );
		}
		
		resultCount = results.length;
		var $tempObj = $(".overlayObj", "#predictSearchFlyout");
		
		if (resultCount > 0) {
			$('.loading-light', '#predictSearchFlyout').remove();
		
			$("table.predictsearchresults tr.searchresrow", '#predictSearchFlyout').remove();
			$("table.predictsearchresults", '#predictSearchFlyout').append( buildPredictSearchHtml(results, searchTerm) ).show();
			
			if ($tempObj.css('display') == 'none') {		
				hideAll();
				$tempObj.bgiframe();				
				$tempObj.show("blind", { direction: "vertical" }, 200);
			}
			suggestTermSelected = -1;
			$("#searchField").focus();
		} else {
			$tempObj.hide();
		}
	});

}

function moveSelect(step) {
	var allRows = $("table.predictsearchresults tr.searchresrow a","#predictSearchList");
	if (!allRows.exists()) return;
	$(".overlayObj", "#predictSearchFlyout").show();
	suggestTermSelected += step;
	if (suggestTermSelected < 0) {
		suggestTermSelected = allRows.size() - 1;
	} else if (suggestTermSelected >= allRows.size()) {
		suggestTermSelected = 0;
	}
	allRows.removeClass("searchHighlight").removeClass("hovered");
	var selectedTerm = $(allRows[suggestTermSelected]).addClass("searchHighlight");
	$('#searchField').val(selectedTerm.text());
};

function dateSelectionMade(){
	toDate.datepicker('option','minDate', fromDate.datepicker('getDate'));
}

function disableSelection(element) {
	element.onselectstart = function() { return false; };
	element.unselectable = "on";
	element.style.MozUserSelect = "none";
}

jQuery.fn.exists = function() {
     return this.length > 0;
};

// Popup functions

function PopUp(url, name, x, y, width, height, resizable, child)
{
	this.url = url;
	this.name = name;
	this.x = x;
	this.y = y;
	this.resizable = resizable;
	this.child = child;
}

// Shows the popup
PopUp.prototype.show = function()
{
	if (this.x < 0)
		this.x = (window.screen.availWidth - this.width) / 2;
	if (this.x + this.width > screen.availWidth)
		this.x = screen.availWidth - this.width;

	if (this.y < 0)
		this.y = (window.screen.availHeight - this.height) / 2;
	if (this.y + this.height > screen.availHeight)
		this.y = screen.availHeight - this.height;

	var resize = (this.resizable == true ? "yes" : "no");
	var modeless = (this.child == true);

	if (window[this.name] && !window[this.name].closed)
		window[this.name].close();

	if (modeless && document.all)
		window[this.name] = window.showModelessDialog(this.url, window, "dialogLeft:" + this.x + "px;dialogTop:" + this.y + "px;dialogWidth:" + this.width + "px;dialogHeight:" + this.height + "px;help:no;status:no;center:no;scroll:" + resize + ";resizable:" + resize);
	else
		window[this.name] = window.open(this.url, this.name, "width=" + this.width + ",height=" + this.height + ",left=" + this.x + ",top=" + this.y + ",titlebar=no,resizable=" + resize + (modeless ? ",dependent" : ""));

	if (!window[this.name])
	{
		alert("Failed to display the popup window.\nPlease verify popups are enabled.");
		return null;
	}
		
	window[this.name].focus();
    return window[this.name];
}

// Retrieves the proper offset (X or Y) of the given object with respect to the body.
PopUp.prototype.getOffset = function(obj, bLeftOrTop)
{
	var result = (bLeftOrTop ? obj.offsetLeft : obj.offsetTop);

	while (obj != null && obj.offsetParent != null)
	{
		obj = obj.offsetParent;

		if (bLeftOrTop)
		{
			if (obj.offsetLeft)
				result += obj.offsetLeft;
		}
		else
		{
			if (obj.offsetTop)
				result += obj.offsetTop;
		}
	}

	return result;
}

function popup(url) 
{
	sealWin=window.open(url,'win','toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
	self.name = 'mainWin'; 
}
	
function popupfooter(url) 
{
	sealWin=window.open(url,'win','toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=760,height=450');
	self.name = 'mainWin'; 
}

function popOpenWindow(link,params){
	window.open(link,"PopUp",params);
}

function submitOnEnter(myfield,e) {
	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
	if (keyCode == 13)
   	{
   		if(myfield.value != "") {
	   		myfield.form.submit();
   		}
   		return false;
   	}
	else
   		return true;
}

function suppressEnter(event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if ( keyCode == 13 ){
		return false;
	}
	else
		return true;
}

function validateTextAreaLength(obj, maxlength) {
	if (obj == null) return false;
	if (obj.value.length > maxlength) {
		obj.value=obj.value.substring(0,maxlength);
		return false;
	}
	return true;
}

function bizRateInvite(args){
   window.setTimeout(function() { openBizRate(args) }, 5000);
}

function openBizRate(args){	
  	window.open("https://eval.bizrate.com/popup.xpml?id=814&" + args,"thisName","directories=0,height=160,width=425,screenX=320,screenY=20,left=320,top=20");
}

//adds the session id into a called link for non-cookie support
function callWithSession(link) {
	if(link !== undefined) {
		if (document.cookie.length<=0) {
			var sessionId = $("#sessionid").html();
			var cloneId = $("#cloneid").html();
			var sessionString = ";jsessionid=" + sessionId + ":" + cloneId;
			if(sessionId.length > 0) {
				if(link.indexOf('?') > 0)	 {
					link = link.replace('?', sessionString + '?');
				} else {
					link = link + sessionString;
				}
			}
		}
		location.href=link;
	}
}

function insertDotomiTrackingJS(){
	
	var dtm_user_id = "abc12345";
	var dtmtag = window.location.protocol + "//a248." + (window.location.protocol == "http:" ? "g" : "e") + ".akamai.net/7/248/14564/20080403/dotomi.download.akamai.com/14564/rules/2206/dtmtag.js";
//	document.write('<scr'+'ipt type="text/javascript" src="' + dtmtag + '"></scr'+'ipt>');
	$.getScript(dtmtag);
}

function popUpsEnabled(){
	var enabled = false;
	var newWindow = window.open('','','width=1,height=1,top=3000,left=3000,screenX=3000,screenY=3000,alwaysLowered=yes,dependent=no,resizable=yes');
	if (newWindow){
		enabled = true;
		newWindow.close();	
	}
	return enabled;
}
// Sets the given cookie's value (and makes it expire a year from now)
function setCookie(cookieName, value){
	var dateExp = new Date;
	dateExp.setTime(dateExp.getTime() + 365 * 24 * 60 * 60 * 1000);  // 1 year from now	
	document.cookie = cookieName + "=" + escape(value) + ";expires=" + dateExp.toGMTString() + ";path=/";
}

// Retrieves the given cookie's value.  If it doesn't exist, it returns null.
function getCookie(cookieName) {
	// Cookies are separated by semicolons
	var cookies = document.cookie.split(";");
	for (var i = 0; i < cookies.length; i++)
	{
		// A cookie's name/value pair is separated by an equal sign
		var cookie = cookies[i].split("=");
		if (cookieName == cookie[0].trim()){ 
			return unescape(cookie[1]);
		}	
	}
	return null;
}

String.prototype.trim = function() {
	return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,"");
}

function  buildStoreHoverAddress(store){
	var html = "";
	if ("" !== store.storeId){
		html +=	'Store# ' + store.storeId + '<br>';
		html +=	'<span class="bold">' + store.address + '</span><br>';
		if(store.address2.length >0){
			html +=	store.address2 + '<br>';
		}	
		html +=	store.city + ',&nbsp;';
		html +=	store.state + '&nbsp; ';
		html +=	store.zip + '<br>';
		html += store.phone + '<br>';
		$("#storeLocatorLinks").show();
	} else {
		html =	$('#zip_not_entered').text();

	}	
	
	$('#storeLocatorOverlay #zip').attr('autocomplete','off');
	return html;
}
	
	
function buildDepartmentDiv(itemList){
	var html = '', counter = 0, lastRow = 1, columns = 4; 
	azCol = '<div class="azCol" style="width:'+Math.floor(100/columns)+'%;">';
	html += azCol;
	
	// append jsession id if cookies are turned off
	$zazaUrl = appendJSessionIDToAUrl("/catalog/search.do");
	
	for (i in itemList) { 
		var calCol = Math.ceil(itemList.length/columns);
		if (calCol == counter) {
			html += '<div class="clear"></div></div>' + azCol;
			counter=0;
			lastRow++;
		} 
		
		html +=	'<div class="level_2">';
		html +=	'<a href="' + $zazaUrl + '?Ntt='+ itemList[i]['navigationValue'] +'">';
		html += itemList[i]['entryName'];
		html += "</a></div>"
		
		if (lastRow == columns && (((lastRow-1)*calCol)+counter) == itemList.length-1) {
			html += "<div id='supLinks'><div class='level_2'>" + $('#azAd1').html() + "</div>";
			html += "<div class='level_2'>" + $('#azAd2').html() + "</div>";
			html += "<div class='level_2'>" + $('#azAd3').html() + "</div></div></div><div class='clear'></div>";
		}
		counter++;
	}
	return html;
}


function buildCartHtml(CartEntry){
	var html="";
	var nonCouponItemCount=0;
		
	if (cartItemCount > 0) {
		html += '<table class="cartListTable">';
		html += '<tr><th>' + $("#quantity").text() + '</th><th>' + $("#productTranslation").text() + '</th>';
		if  ($("#showPriceWithoutTax").text() == "true"){
			html += '<th>' + $("#price").text() + '</th>';
		}
		if  ($("#showPriceWithTax").text() == "true"){
			html += '<th>' + $("#priceWithTax").text() + '</th>';
		}
		html += '</tr>';
		
		for (var i=1; i <= cartItemCount; i++){
			if (!CartEntry[i-1].coupon){
				html += displayCartItem(CartEntry[i-1], i);
				nonCouponItemCount++;
			}
		}
		
		html += '</table>';
		
		if (nonCouponItemCount > flyoutCartSize) { 
			var pageCount = Math.ceil(nonCouponItemCount/flyoutCartSize);
			
			var aC = ((nonCouponItemCount%flyoutCartSize)%2==1)?'bg_w':'';
			html += '<table class="'+aC+'" width="100%" id="cartNavControl"><tr><td><div id="cartPaging"><span id="pagingText">' + $("#viewing_pages").text() + ' <span id="showingItems">1</span>&nbsp;' + $("#pages_of").text() + ' ' + pageCount + '</span></div></td>';
			html += '<td><div id="prevNext"><span id="previousFO" style="display:none">' + $("#prev_link").text() + '</span>';
			html += '<span id="pipe" style="display:none"> | </span>';
			html += '<span id="nextFO">' + $("#next_link").text() + '</span></div></td></tr></table>';
		}
		
		
	} else {
		html += '<div class="tac pad10 b">' + $("#no_items").text() + ' </div>';
	}		
	
	return html;		
}

function buildCartCouponHtml(CartEntry){
	var html="";
	var couponCount = 0;
	var couponTotal = 0;	
	if (cartItemCount > 0) {
		
		for (var i=1; i <= cartItemCount; i++){
			if (CartEntry[i-1].coupon){				
				couponCount++;
			}	
		}
		
		if (couponCount>0){
			html += '<h3>' + $("#applied_coupons").text() + '</h3>';
	
			var couponsDisplayed = 0;
			for (var i=1; i <= cartItemCount; i++){		
				if (CartEntry[i-1].coupon && couponsDisplayed<2){
					html += '<div class="couponEntry"><a href="' + appendJSessionIDToAUrl('/cart/viewCoupon.do') + '?couponCode=' + CartEntry[i-1].couponCode+'">' + CartEntry[i-1].description + ' <br />('+$("#coupon_code").text() + ' ' + CartEntry[i-1].couponCode + '</a>)</div>';;
					couponsDisplayed++;
				}
			}
				
			if (couponCount>2)
				html += '<div class="couponSeeAll"><a href="' + appendJSessionIDToAUrl('/cart/shoppingCart.do') + '">' + $("#see_all_coupons").text() + '</a></div>';
		}
	}
	return html;		
}

function displayCartItem(entry, counter) {
	
	$object = $(this); 
	var htmlForLine = "";
	var aC = ((counter%flyoutCartSize==0) || (counter%flyoutCartSize)%2==1)?' bg_w':'';
	htmlForLine += '<tr id="cartItem' + counter + '" class="cartItem'+ ((counter > flyoutCartSize)?' hidden':''+'') + '"><td class="cl_td1'+aC+'"><div>' + entry.quantity + '</div></td>';
	var descUrl = appendJSessionIDToAUrl('/catalog/catalogSku.do?id=' + entry.displaySku);
	htmlForLine += '<td class="cl_td2'+aC+'"><div><a class="buttonLink" href="' + descUrl + '">' + entry.description + '</a></div><span></span></td>';
	if  ($("#showPriceWithoutTax").text() == "true"){
		htmlForLine += '<td class="cl_td3'+aC+'"><div>' + entry.formattedTotalPrice + '</div></td>';
	}	
	if  ($("#showPriceWithTax").text() == "true"){
		htmlForLine += '<td class="cl_td3'+aC+'"><div>' + entry.formattedTotalPriceWithTax + '</div></td>';
	}	
	return htmlForLine;
	
}

function hideAll() {
	$('#orderByCatalog').removeClass('hover');
	$('.currentAZselection').removeClass('currentAZselection');
	$("#categoryAZ").removeClass('exposed');
	$('.overlayObj', '#categoryAZ').hide();
	$('#storeLocator').removeClass('storeLocatorExpanded');	
	$('.overlayObj', '#predictSearchFlyout').hide();
	$('.overlayObj', '#savePrinter').hide();
	$('.overlayObj', '#editPrintersLink').hide();
	$('.overlayObj', '#hCart').hide();
	$('.sfhover').removeClass('sfhover');
	$('.hover').removeClass('hover');
}

function lightboxLoader(text) {
	var loadingImage = "url("+$('#lbLoading').html()+") no-repeat 100% 100%";
	var html = '<div><p>' + text + '</p></div>';
	var dialog = $(html).dialog({dialogClass: 'loadingDialog', width:'270px', bgiframe: true, modal: true,  resizable: false, draggable: false,position: 'center', 
    		overlay: { opacity: 0.5, background: "black" },  open: function(){$(this).parent().css("top","300px").blur();$('.loadingDialog').css({'border':'none','text-align':'center','background':loadingImage});$('.loadingDialog .ui-dialog-content').css({'min-height':'144px','height':'144px'});}});
    return dialog;
}

function debug(msg) {
	if (window.location.href.indexOf('odcorp.net')>-1 && !$('.dbgConsole').exists())
		$('body').prepend('<div class="dbgConsole" style="padding:0; margin:0; border:1px solid red; height:75px; width:100%; overflow:hidden;"></div>')
	$('.dbgConsole').prepend('<div>'+msg+'</div>');
	
}
function printMe(level, statment){
	if($.browser.mozilla &&  window.location.href.indexOf('odcorp.net')>-1){
		switch (level){
			case 'log':
				console.log(statment);
				break; 
			case 'debug':
				console.debug(statment);
				break; 
			case 'info':
				console.info(statment);
				break; 
			case 'error':
				console.error(statment);
				break; 
			case 'trace':
				console.trace(statment);
				break; 
			case 'profile':
				console.profile();
				break; 
			case 'profileEnd':
				console.profileEnd();
				break; 
		}
	}	
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}


function buildPredictSearchHtml(termresults, searchTerm){
		var html = "";
		var term = "";
		var url = "";
		for (i in termresults){
			url = appendJSessionIDToAUrl("/catalog/search.do?Ntt="+termresults[i].resultText+"&predict=true");
			term = termresults[i].resultText.replace(searchTerm, "<b>"+searchTerm+"</b>");
		   	html += "<tr class='searchresrow'><td>";
		   	html +=	"<a href='" + url + "'>" + term + "</a></td></tr>";
		}
		return html; 
}


function throwProductViewTag(totalReviewCount, avgRating){ //, totalRatingOnlyCount, buyAgainPercentage){
		var productViewTag = $("#productViewTag").text()
		productViewTag = productViewTag.replace('*rating*', avgRating);
		productViewTag = productViewTag.replace('*count*', totalReviewCount);
		var args  =  productViewTag.split('|||');
		cmCreateProductviewTag(args[0], args[1], args[2], args[3],  args[4], args[5]);
	}


//*********************************************************************************************
// End Main Site Javascript 
//*********************************************************************************************
/////////////////////////////////////////////////
//                                             //
//  KANA Response Live Chat Functions          //
//  Version $Revision: 1.3.2.2 $                    //
//                                             //
//  Copyright (c) 2004 - KANA Inc.    		   //
//  All Rights Reserved.  Patent Pending.      //
//                                             //
/////////////////////////////////////////////////

// Default values
//var gIChannel = "ceKck51400619";
//var gServerName = "chat.officedepot.com";
var gAttachedData = "sampleAttachedDataValue";
var gEnterOnQueuePage = false;

var gPrefillValues = {};
gPrefillValues["CUSTOMER_NAME"] = "Your first name here";
gPrefillValues["CUSTOMER_QUERY"] = "Please enter your email address and question";
gPrefillValues["CUSTOMFIELD1"] = "Pre-filled answer";

var gAgentOnlyValues = {};
gAgentOnlyValues["PAGE_URL"] = "www.officedepot.com";
gAgentOnlyValues["PAGE_TITLE"] = "Office Depot Chat Agent Homepage";
gAgentOnlyValues["CUSTOMER_ID"] = "Office Depot Customer";
 
//======================================================================
// Uncomment and set gAfterLaunchURL to the url of the page you want
// to display after launching live help chat
//======================================================================
//var gAfterLaunchURL="http://www.kana.com";
var HBUsePageContents = false;

// Flag to turn on/off Dynamic Start Page functionality.
var gUseDynamicStartPage = true; 
//var gDSPLauncherPageName = "/includes/kana/responseLiveLauncher.html";
//var gChatHelper = "/includes/kana/chatHelper.html";

var gChatWindowWidth = 450;
var gChatWindowHeight = 500;
var gChatWindowProperties = "width=" + gChatWindowWidth + ",height=" + gChatWindowHeight + ",menubar=no,location=no,directories=no,status=no,toolbar=no,scrollbars=auto,resizable=no,screenX=10,screenY=10,left=10,top=10";
var gHTTP = "http://";
var gHTTPS = "https://";

var gChatLaunchMode = "COBROWSE_ESCALATION";

function startChat(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage)
{
	gChatLaunchMode  = "CHAT_ONLY";
	launchChat(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage);
}

function startChatAndCobrowse(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage)
{
	gChatLaunchMode  = "COBROWSE";
	launchChat(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage);
}

function startChatWithEscalation(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage)
{
	gChatLaunchMode  = "COBROWSE_ESCALATION";
	launchChat(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage);
}

function launchChat(iChannel, serverName, attachedData, prefillValues, agentOnlyValues, enterOnQueuePage)
{
	if (alreadyChatting())
	{
		alert("You are already in a session.");
		var win = getChatWindow();
		if (null != win && !win.closed)
		{
			win.focus();
		}
		return;
	}

	gIChannel = iChannel || gIChannel;
	gServerName = serverName || gServerName;
	gAttachedData = attachedData || gAttachedData;
	gEnterOnQueuePage = enterOnQueuePage || gEnterOnQueuePage;
	gPrefillValues = prefillValues || gPrefillValues;
	gAgentOnlyValues = agentOnlyValues || gAgentOnlyValues;

	openInitialWindow();
}

function openInitialWindow()
{
	var newWin = window.open(gChatHelper, getChatWindowName(), getWinProperties());
	setChatWindow(newWin);
}

function finishLaunchingChat()
{
	var chatWin = getChatWindow();

	if (alreadyConavigating())
	{
		handleRecursiveLaunch(gIChannel, gServerName, chatWin);
		return;
	}

	if (browserDoesNotSupportDOM2() || isIEonMac())
	{
		handleUnsupportedBrowser(gIChannel, gServerName, chatWin);
		return;
	}

	if (!areCookiesEnabled())
	{
		handleDisabledCookies(gIChannel, gServerName, chatWin);
		return;
	}

	if(window.location.protocol == "https:")
		createAndSubmitForm();
	else
		checkSSLEnabledAndSubmit(gIChannel, gServerName);
}

function createAndSubmitForm()
{
	var chatWin = getChatWindow();
	var launchChatForm = createForm(gServerName, chatWin);

	addFormField(launchChatForm, chatWin, "CHAT_WINDOW_WIDTH", gChatWindowWidth);
	addFormField(launchChatForm, chatWin, "CHAT_WINDOW_PROPERTIES", gChatWindowProperties);
	addFormField(launchChatForm, chatWin, "ICHANNEL_ID", gIChannel);
	addFormField(launchChatForm, chatWin, "ATTACHED_DATA", gAttachedData);
	addFormField(launchChatForm, chatWin, "ENTER_ON_QUEUE_PAGE", gEnterOnQueuePage);
	addFormField(launchChatForm, chatWin, "CHAT_LAUNCH_MODE", gChatLaunchMode);
	addFormField(launchChatForm, chatWin, "AGENT_VISIBLE_DATA", createAgentVisibleDataString(gAgentOnlyValues));
	addFormField(launchChatForm, chatWin, "REFERRER_URL", window.location.href);
	if(typeof(gUseDynamicStartPage) != 'undefined' && gUseDynamicStartPage)
		addFormField(launchChatForm, chatWin, "DSP_LAUNCHER_PAGE_NAME", gDSPLauncherPageName);

	for (var prefillItem in gPrefillValues)
	{
		addFormField(launchChatForm, chatWin, prefillItem, gPrefillValues[prefillItem]);
	}

	launchChatForm.submit();
}

function createForm(serverName, win)
{
	var launchChatForm = win.document.createElement("form");
	launchChatForm.method = "post";
	launchChatForm.target = "_self";
	launchChatForm.action = gHTTPS + serverName + "/CONAV/CHAT/ChatPreLaunch";
	win.document.body.appendChild(launchChatForm);
	return launchChatForm;
}

var DATA_SEPARATOR = "_HB_";
function createAgentVisibleDataString(agentOnlyValues)
{
	var agentVisibleData = "";
	for (agentItem in agentOnlyValues)
	{
		if(isNonEmptyString(agentVisibleData))
			agentVisibleData += DATA_SEPARATOR;

		agentVisibleData += agentItem + DATA_SEPARATOR + agentOnlyValues[agentItem];
	}
	return agentVisibleData;
}

function addFormField(launchChatForm, win, name, value)
{
	if(!isNonEmptyString(name) || !isNonEmptyString(value))
		return;
	var elementObj = win.document.createElement("input");
	elementObj.type = "hidden";
	elementObj.name = name;
	elementObj.value = value;
	launchChatForm.appendChild(elementObj);
}

function alreadyChatting()
{
	var theCookieString = document.cookie;
	return (checkChatWindowExists() || (isNonEmptyString(theCookieString) && theCookieString.indexOf("hbuidv23=") > -1));
}

function checkChatWindowExists()
{
	var win = getChatWindow();
	return (null != win && !win.closed);
}

function alreadyConavigating()
{
	return (typeof(isHipboneSharedWindow) != "undefined");
}

function handleRecursiveLaunch(iChannel, serverName, win)
{
	win.location.href = gHTTPS + serverName + "/CONAV/chat/errorpages/recursiveConav.jsp?ICHANNEL_ID=" + iChannel;
}

function browserDoesNotSupportDOM2()
{
	return (null == document.getElementById);
}

function handleUnsupportedBrowser(iChannel, serverName, win)
{
	win.location.href = gHTTPS + serverName + "/CONAV/CHAT/ChatPreLaunch?ICHANNEL_ID=" + iChannel;
}

function areCookiesEnabled()
{
	var time = (new Date()).getTime();
	setTestCookie(time);
	if (theCookieIsSet(time))
	{
		removeTestCookie(time);
		return true;
	}
	return false;
}

function setTestCookie(value)
{
	document.cookie = "hbcookietest=" + value;
}

function theCookieIsSet(value)
{
	var theCookieString = document.cookie;
	return (isNonEmptyString(theCookieString) && theCookieString.indexOf(value) > -1);
}

function removeTestCookie(value)
{
	document.cookie = "hbcookietest=" + value + "; expires=Fri, 02-Jan-1970 00:00:00 GMT";
}

function handleDisabledCookies(iChannel, serverName, win)
{
	win.location.href = gHTTP + serverName + "/CONAV/chat/errorpages/cookiesDisabled.jsp?ICHANNEL_ID=" + iChannel;
}

function checkSSLEnabledAndSubmit(iChannel, serverName)
{
	createAndSubmitForm();
	var testImg = new Image(1,1);
	testImg.onerror = function() { handleChatNoSSL(iChannel, serverName); }
	testImg.src = gHTTPS + serverName + "/CONAV/HTD/Default/shared/images/blank.gif?time=" + (new Date()).getTime();
}

function handleChatNoSSL(iChannel, serverName)
{
	var link = gHTTP + serverName + "/CONAV/chat/errorpages/sslDisabled.jsp?ICHANNEL_ID=" + iChannel;
	window.open(link, getChatWindowName(), getWinProperties());
	getChatWindow().close();
}

var gChatLaunchWindow = null;
function setChatWindow(chatWin)
{
	window.gChatLaunchWindow = chatWin;
}

function getChatWindow()
{
	return window.gChatLaunchWindow;
}

function getChatWindowName()
{
	return "_blank";
}

function getWinProperties()
{
	return gChatWindowProperties;
}

function isIE()
{
    return (navigator.userAgent.toLowerCase().indexOf("msie")!=-1);
}

function isMac()
{
	return (navigator.userAgent.toLowerCase().indexOf("mac")!=-1);
}

function isIEonMac()
{
    return (isIE() && isMac())
}

function isNonEmptyString(str)
{
	if(null == str || str == "")
		return false;
	return true;
}

function goToAfterLaunchUrl()
{
    if(typeof(window.gAfterLaunchURL) == "undefined")
		return;

	window.location.href = window.gAfterLaunchURL;
}

function checkChatAvailability(value) { 
    //alert("Value returned is " + value); 
	if(value == false) { 
		alert("SORRY!; Chat hours are Mon-Fri 8AM-8PM"); 
		location.reload(true); 
		return false; 
	} else { 
		// alert("Opening the chat window..."); 
		startChatWithEscalation(gIChannelID, gServer, gAttachedData, prefillValues, agentOnlyValues, bEnterOnQueuePage);return false; 
	} 
} 

function checkChat() { 
	//alert("About to call DWRDelegate.isAjaxChatAvailable()"); 
	DWRDelegate.isAjaxChatAvailable(0, checkChatAvailability); 
}


function validkey(e){
	var keynum = e.which?e.which:e.keyCode;
	if(keynum === 8) return true;
	var keychar = String.fromCharCode(keynum);
	var validchars = new RegExp("[A-Za-z0-9\\s]+");
	var valid = validchars.test(keychar);
	return valid;
}
