/***** en_US/globals/javascripts/3rdparty/jquery/jquery-1.3.2.min.js *****/
/*
 * 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,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * 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 R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.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(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.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(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.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(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.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 H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.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(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},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(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<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>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();;
/***** en_US/globals/javascripts/3rdparty/jquery/class.js *****/
(function(){
  var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;

  // The base Class implementation (does nothing)
  this.Class = function(){};
 
  // Create a new Class that inherits from this class
  Class.extend = function(prop) {
    var _super = this.prototype;
   
    // Instantiate a base class (but only create the instance,
    // do not run the init constructor)
    initializing = true;
    var prototype = new this();
    initializing = false;
   
    // Copy the properties over onto the new prototype
    for (var name in prop) {
      // Check if we are overwriting an existing function
      prototype[name] = typeof prop[name] == "function" &&
        typeof _super[name] == "function" && fnTest.test(prop[name]) ?
        (function(name, fn){
          return function() {
            var tmp = this._super;
           
            // Add a new ._super() method that is the same method
            // but on the super-class
            this._super = _super[name];
           
            // The method only need to be bound temporarily, so we
            // remove it when we are done executing
            var ret = fn.apply(this, arguments);       
            this._super = tmp;
           
            return ret;
          };
        })(name, prop[name]) :
        prop[name];
    }
   
    // The dummy class constructor
    function Class() {
      // All construction is actually done in the init method
      if ( !initializing && this.init )
        this.init.apply(this, arguments);
    }
   
    // Populate our constructed prototype object
    Class.prototype = prototype;
   
    // Enforce the constructor to be what we expect
    Class.constructor = Class;

    // And make this class extendable
    Class.extend = arguments.callee;
   
    return Class;
  };
})();
;
/***** en_US/globals/javascripts/3rdparty/json/json.js *****/
/*** $Id$ ***/
function json(){}
function json_init()
{
  var m = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\' };
  var s = new Object();

  s['boolean'] = function (x) { return String(x); };
  s['null'   ] = function (x) { return "null";    };
  s['number' ] = function (x) { return isFinite(x) ? String(x) : 'null'; };
  s['array'  ] = function (x)
  {
    var a = ['['], b, f, i, l = x.length, v;
    for (i = 0; i < l; i += 1) {
      v = x[i];
      f = s[typeof v];
      if (f) {
        v = f(v);
        if (typeof v == 'string') {
         if (b) {
            a[a.length] = ',';
          }
          a[a.length] = v;
          b = true;
        }
      }
    }
    a[a.length] = ']';
    return a.join('');
  };

  s['object'] = function (x) {
    if (x) {
      if (x instanceof Array) return s.array(x);
      var a = ['{'], b, f, i, v;
      for (i in x) {
        v = x[i];
        f = s[typeof v];
        if (f) {
          v = f(v);
          if (typeof v == 'string') {
            if (b) a[a.length] = ',';
            a.push(s.string(i), ':', v);
            b = true;
          }
        }
      }
      a[a.length] = '}';
      return a.join('');
    }
    return 'null';
  };

  s['string'] = function (x) {
    if (/[\"\\\x00-\x1f]/.test(x)) {
      x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
        var c = m[b];
        if (c) return c;
        c = b.charCodeAt();
        return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
      });
    }
    return '"' + x + '"';
  };

  json.serialize = function (obj)
  {
    obj = obj || false;
    return s[ typeof(obj) ](obj);
  };

  json.deserialize = json.unserialize = function (str)
  {
    try
    {
      return (/^(\"(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(str)) && eval('(' + str + ')');
    }
    catch (e)
    {
      return false;
    }
  };
}

json_init();
;
/***** en_US/globals/javascripts/framework/synjquery.js *****/
jQuery.fn.extend(
{
	/**
	 * Wrapper over bind that enables you to connect events to objects, not just callbacks
	 *
	 * @param type {String} Event type (click,focus,etc)
	 * @param obj {Object} The object you want to bind the event to
	 * @param method {String|Function} Either a string method name or function reference to call on obj
	 * @param args {Array} Optional arguments to pass to the callback (instead of the default ones)
	 */
	connect: function( type, obj, method, args )
	{
		return this.each( function()
		{
			var f = function()
			{
				var a = args || [this].concat(jQuery.makeArray(arguments));
				var r = (typeof method == 'string' ? obj[method].apply(obj, a ) : method.apply(obj, a ));
				return typeof r == 'boolean' ? r : false;
			};

			var ccache = jQuery.data(this,'connect:'+type) || [];
			ccache.push([obj,method,f]);
			jQuery.data(this,'connect:'+type,ccache);
			$(this).bind(type,f);
		});
	},

	/**
	 * Disconnect your connected events from the target object
	 *
	 * @param type {String} Event type (click,focus,etc)
	 * @param obj {Object} The object you want to disconnect the event from
	 * @param method {String|Function} Either a string method name or function that you used in your connect
	 */
	disconnect: function( type, obj, method )
	{
		return this.each(function()
		{
			var ccache = jQuery.data(this,'connect:'+type) || [];
			var hdlrs  = [];
			var ncache = [];
			var elmt   = this;

			jQuery.each(ccache, function(i,rec)
			{
				if (rec[0]==obj && rec[1]==method)
				{
					hdlrs.push(rec[2]);
				}
				else
				{
					ncache.push(rec);
				}
			});

			jQuery.each(hdlrs, function(i,hdlr)
			{
				$(elmt).unbind(type,hdlr);
			});

			jQuery.data(this,'connect:'+type,ncache.length ? ncache : false);

		});
	},

	/**
	 * Wrapper over live that enables you to connect events to objects, not just callbacks
	 *
	 * @param type {String} Event type (click,focus,etc)
	 * @param obj {Object} The object you want to bind the event to
	 * @param method {String|Function} Either a string method name or function reference to call on obj
	 * @param args {Array} Optional arguments to pass to the callback (instead of the default ones)
	 */
	liveConnect: function( type, obj, method, args )
	{
		var f = function()
		{
			var a = args || [this].concat(jQuery.makeArray(arguments)); 
			var r = (typeof method == 'string' ? obj[method].apply(obj, a ) : method.apply(obj, a ));
			return typeof r == 'boolean' ? r : false; 
		};

		var cacheid = 'liveconnect:'+type+':'+this.selector;
		var ccache  = jQuery.data(window,cacheid) || [];
		ccache.push([obj,method,f]);
		jQuery.data(window,cacheid,ccache);
		$(this.selector).live(type, f);
		return this;
	},

	/**
	 * Disconnect your live connected events from the target object
	 *
	 * @param type {String} Event type (click,focus,etc)
	 * @param obj {Object} The object you want to disconnect the event from
	 * @param method {String|Function} Either a string method name or function that you used in your connect
	 */
	liveDisconnect: function ( type, obj, method )
	{
		var cacheid= 'liveconnect:'+type+':'+this.selector;
		var ccache = jQuery.data(window,cacheid) || [];
		var hdlrs  = [];
		var ncache = [];
		var elmt   = this;

		jQuery.each(ccache, function(i,rec) 
		{ 
			if (rec[0]==obj && rec[1]==method)
			{
				hdlrs.push(rec[2]);
			}
			else
			{
				//Dont kill it, add it back to the cache for later
				ncache.push(rec);
			}
		});

		jQuery.each( hdlrs, function(i,hdlr) 
		{ 
			$(elmt).die(type,hdlr); 
		});

		jQuery.data(window,cacheid, ncache.length ? ncache : false);
		return this;
	},

	/**
	 * Test whether x and y are on this jquery element
	 *
	 * @param x {Number} The x position
	 * @param y {Number} The y position
	 * @return {Boolean} True if it hits, false if it doesn't
	 */
	hitTest: function (x,y)
	{
		var o  = this.getPosition();
		var ox = o.left;
		var oy = o.top;
		var w  = this[0].offsetWidth;
		var h  = this[0].offsetHeight;
		var ex = ox+w;
		var ey = oy+h;

		return ( x >= ox && y >= oy && x <= ex && y <= ey ) ? true : false;
	},

	/**
	 * Get the left and top positions for this element, essentially the x,y coordinates
	 *
	 * @return {Object} Left and Top coordinates
	 */
	getPosition: function ()
	{
		return this.eq(0).position();
	},

	/**
	 * Replace this dom element with html content
	 *
	 * @param value {String} The content you want to replace this dom element with
	 */
	replaceWith: function( value )
	{
		return this.each( function ()
		{
				var e = $(this);
				var p = e.parent();
				var s = e.prev();
				e.remove();

				if (s[0])
				{
					s.after(value);
				}
				else
				{
					p.prepend(value);
				}
		});
	},

	/**
	 * Search for html elements inside this selector and make image tags with png's transparent using IE filter hack
	 */
	fixPngImage: function()
	{
		if (!$.browser.msie || parseInt($.browser.version) >= 7.0 )
		{
			return this;
		}

		this.filter('[src$=png]').each( function ()
		{
			var i = $(this);
			i.after( '<div style="display:block; width: '+i.width()+'px; height: '+ i.height() +'px; padding: 0px; margin: 0px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + i.attr('src') + '\', sizingMethod=\'image\');" ></div>').hide();
		});

		return this;
	},

	/**
	 * Search for html elements inside this selector and fix background png's using IE filter hack
	 */
	fixPngBackground: function()
	{
		if (!$.browser.msie || parseInt($.browser.version) >= 7.0 )
		{
			return this;
		}

		return this.each( function()
		{
			this.style.backgroundImage = '';
			var m = this.currentStyle.backgroundImage.match(/^url\("([^"]+)"\)/);

			if (!m || !m[1])
			{
				return;
			}

			var sz = this.currentStyle.backgroundRepeat == 'no-repeat' ? 'crop' : 'scale';
			this.style.backgroundImage = 'none';
			this.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+m[1]+'", sizingMethod="'+sz+'")';
		});
	},

	/**
	 * Fixes the png background images on hover for IE6.  Will add a "hover" class to the element on mouseover.
	 * @return {Object} returns itself so it can be chainable
	 */
	fixHoverPngBackground: function()
	{
		if ($.browser.msie && $.browser.version < 7)
		{
			var fn = function()
			{
				this.style.backgroundImage = "";
				$(this).toggleClass("hover").fixPngBackground();
			};

			return this.each(function()
			{
				$(this).mouseover(fn).mouseout(fn).fixPngBackground();
			});
		}
		return this;
	},

	/**
	 * Sits idle before returning control.  Works well in chain.
	 */
	idle: function(time, callback)
	{
		return this.animate({delay: 1}, time, callback);
	},

	/**
	 * Displays a comment in place of its parent.
	 * This replaces the parent container.  For example: <span class="parent"><!-- <img /> --></span> becomes <img />
	 * There should not be any space between around the comment.
	 * Bad:
	 *    <span class="comment">
	 *       <!-- <img /> -->
	 *    </span>
	 * Good:
	 *    <span class="comment"><!-- <img /> --></span>
	 * @return {Object} returns itself
	 */
	showComment: function()
	{
		return this.each(function()
		{
			var child = this.firstChild;
			if (child.nodeType === 8) // 8 is a comment node
			{
				this.innerHTML = ''; // Fixes IE sometimes breaking with replaceWith() call
				$(this).replaceWith(child.nodeValue);
			}
		});
	}
});

jQuery.extend({
	/**
	 * Dynamically loads a stylesheet
	 * @param {String} url
	 */
	getStyle: function(url)
	{
		if (url && typeof jQuery._syn.loaded_ui[url] == "undefined")
		{
			jQuery._syn.loaded_ui[url] = true;
			var ts = (new Date()).getTime();
			url += ((url.match(/\?/)) ? '&' : '?')+'_='+ts;
			$("head").eq(0).append('<link href="'+url+'" rel="stylesheet" type="text/css" />');
		}
	},

	/**
	 * Dynamically loads an array of stylesheets optionally prepending a prefix
	 * @param {Array} urls
	 * @param {String} prefix
	 */
	getStyles: function(urls, prefix)
	{
		urls_array = $.makeArray(urls);
		$.each(urls_array, function(i, url)
		{
			$.getStyle(prefix+url);
		});
	},

	/**
	 * Dynamically removes a stylesheet
	 * @param {String} url
	 */
	removeStyle: function(url)
	{
		if (url)
		{
			var ts_url = $("head").find("link[href^="+url+"?_]").attr('href');
			$("head").find("link[href="+ts_url+"]").remove();
			if (url && typeof jQuery._syn.loaded_ui[url] != "undefined")
			{
				jQuery._syn.loaded_ui[url] = null;
				delete jQuery._syn.loaded_ui[url];
			}
		}
	},

	/**
	 * Dynamically removes an array of stylesheets optionally prepending a prefix
	 * @param {Array} urls
	 * @param {String} prefix
	 */
	removeStyles: function(urls, prefix)
	{
		urls_array = $.makeArray(urls);
		$.each(urls_array, function(i, url)
		{
			$.removeStyle(prefix+url);
		});
	},

	/**
	 * Dynamically loads a number of scripts, optionally calling the callback once all scripts have been loaded (or failed)
	 * @param {Array} urls
	 * @param {Function} callback
	 * @param {String} prefix
	 */
	getScripts: function(urls, callback, prefix)
	{
		if (urls.length == 0)
		{
			callback();
			return;
		}

		var prefix = (prefix) ? prefix : "";
		urls = $.makeArray(urls);

		if (jQuery._syn.loaded_ui[prefix+urls[0]])
		{
			$.getScripts(urls.slice(1), callback, prefix);
		}
		else
		{
			$.getScript(prefix+urls[0], function()
			{
				jQuery._syn.loaded_ui[prefix+urls[0]] = true;
				$.getScripts(urls.slice(1), callback, prefix);
			});
		}
	}
});

(function(){

	var ajax_original = jQuery.ajax;

	jQuery.extend({

		ajax: function(options)
		{
			if (!options.jsCache)
			{
				ajax_original(options);
				return;
			}
		
			var param_key = (typeof(options.data) == 'string') ? options.data : json.serialize(options.data || {});
			var cacheid = options.url + '|' + param_key;
			var cache   = jQuery.data(window, cacheid);
			var success_orig = options.success;

			if ( cache )
			{
				success_orig.apply(options,cache);
				return;
			}

			options.success = function(req,status)
			{
				jQuery.data( window, cacheid, [req,status] );
				this.success = success_orig;
				success_orig.call(this,req,status);
			}

			ajax_original(options);
		}

	});

})();


jQuery._syn = {
	loaded_ui: []
};
;
/***** en_US/globals/javascripts/framework/syncomm.js *****/
/**
 * The ajax webservices communication class.
 * @constructor
 */
Syn.Comm = Class.extend(
{

	/**
	 * Initialize the portal webservices class. This is called automatically by the default constructor.
	 * @member Syn.Comm
	 * @param url {String} Location of portal webservices 
	 */
	init: function (url)
	{
		this.url = url;
		this.requests = {};
		this.nextRequestId = 0;
	},

	/**
	 * Call a webservice on the server 
	 * @member Syn.Comm
	 * @param classname {String} The class on the server you wish to call
	 * @param method {String} The method you wish to call on classname
	 * @param data {Mixed} Any data structure you want to serialize and pass to the server
	 * @param cb1 {Function|Object} Can be either a function or an object. If a function is passed, this will be called with the result. If an object is passed, the object will be the target 'this' of the cb2 method.
	 * @param cb2 {String|Function} The method to call on cb1 if an object was passed. Can be a string method name or a function reference.
	 */
	call: function (classname,method,data,cb1,cb2)
	{
		var callBackObj = {};
		
		if (typeof cb1 == 'function' )
		{
			callBackObj.callback = cb1;
			callBackObj.cb_obj   = false;
		}

		else if ( typeof cb1 == 'object' )
		{
			callBackObj.cb_obj = cb1;
			callBackObj.callback = cb2;
		}

		var robj = {
			'class'  : classname,
			'method' : method,
			'data'   : data
		};

		if (cb1)
		{
			this.requests[this.nextRequestId] = $.ajax({
				type: "POST",
				url: this.url,
				data: json.serialize(robj),
				contentType: 'application/json',
				success: this.onSuccessFunc(callBackObj, this.nextRequestId)
			});
			this.nextRequestId++;
		}
		else
		{
			return json.deserialize($.ajax({
				type: "POST",
				async: false,
				url: this.url,
				data: robj,
				contentType: 'application/json'
			}).responseText);
		}
	},
	
	/**
	 * Cancels all outstanding requests in this.requests and deletes them from this.requests
	 * @member Syn.Comm
	 */
	cancelAll: function()
	{
		for (var requestId in this.requests)
		{
			// We need to make sure there is a request to cancel
			if(typeof this.requests[requestId] != 'undefined')
			{
				this.requests[requestId].abort();
				this.requests[requestId]=null;
				delete this.requests[requestId];
			}
		}
	},
	
	/**
	 * Returns a function that is used when a webservice call is completed
	 * @member Syn.Comm
	 * @param callBackObj {Object} The object containing the callback data for this request
	 * @param requestId {Number} The number of the request coming from this object (1...n)
	 */
	onSuccessFunc: function(callBackObj, requestId)
	{
		var that = this;
		
		/**
		* The function that actually occurs when a request is complete.
		* @member Syn.Comm
		* @param responseText {String} The response text for a request
		* @param responseMessage {String} The response message for a request
		*/
		return function onSuccess(responseText, responseMessage)
		{
			var result = window["eval"]("(" + responseText + ")");
			
			if ( callBackObj.cb_obj )
			{
				(typeof callBackObj.callback == "string") ? callBackObj.cb_obj[callBackObj.callback](result) :callBackObj.callback.call(callBackObj.cb_obj, result);
			}
			else
			{
				callBackObj.callback(result);
			}
			
			//The request is done, delete the request from this Syn.Comm instance
			that.requests[requestId]=null;
			delete that.requests[requestId];
		}
	}
});
;
/***** en_US/globals/javascripts/framework/syncomponent.js *****/
/**
 * Create a component instance.
 * @constructor
 */
Syn.Component = Class.extend(
{
	/**
	 * Initialize the component class. This is called automatically by the default constructor.
	 * In the config object, the following attributes are generally supplied
	 *   - {String} type The type of this component, eg (horoscope,movies,etc)
	 *   - {String} uid (v1) The unique identifier for this component instance
	 *   - {String} event_id (v2) The unique identifier for this component instance
	 *   - {String} ajaxtoken A data packet needed to reconstruct the component via webservices
	 * @member Syn.Component
	 * @param {Object} config
	 */
	init: function (config)
	{
		this.type      = config['type'] || '';
		this.uid       = config['uid'];
		this.config    = config;
		this.uid_esc   = this.uid.replace(/(:|\|)/g,'\\$1');
		this.ajaxtoken = config['ajaxtoken'];
		this.comp      = $('#'+this.uniqueKey());
		this.config['__i18n'] = this.config['__i18n'] ? this.config['__i18n'] : {};
	},

	/**
	 * Get the instance uid
	 * @member Syn.Component
	 * @return {String} The uid
	 */
	getUid: function ()
	{
		return this.uid;
	},

	/**
	 * Get the dom identifier for this simple 'key'. The key value gets expanded to the id of this unique instance of the component.
	 * @member Syn.Component
	 * @param {String} key A simple identifier that appears in your component
	 * @param {bool} no_escape Whether or not to escape the : in the key
	 * @return {String} The expanded per-instance identifier
	 */
	uniqueKey: function (key, no_escape)
	{
		var prefix = this.type ? this.type+'_' : '';

		if (no_escape)
		{
			return prefix+(key!=null ? key+'_' : '')+this.uid;
		}

		return prefix+(key!=null ? key+'_' : '')+this.uid_esc;
	},

	/**
	 * Return the jquery object for this component instance for this simple key
	 * @member Syn.Component
	 * @param {String} key A simple identifier that appears in your component
	 * @return {Object} The jquery object
	 */
	uniqueElmt: function (key)
	{
		return $('#'+this.uniqueKey(key));
	},

	/**
	 * Returns the jquery object for the entire component
	 * @return {Object} The component jquery object
	 */
	container: function ()
	{
		return this.uniqueElmt();
	},

	/**
	 * Submit some form elements via ajax to the component webservice. Will result in the component reloading with new settings.
	 * @param {Array} vals An array of form values to submit
	 * @param {Array} extra_opts
	 */
	submit: function (vals, extra_opts)
	{
		extra_opts = extra_opts||{};
		// Framework request
		if (this.config['uri'])
		{
			var self = this;
			var data = {};
			for (i in vals)
			{
				data[i] = vals[i];
			}

			data['_uri']        = data['_uri'] || this.config['uri'];
			data['_parent_uri'] = data['_parent_uri'] || this.config['parent_uri'];
			data['_root_url']   = Syn.Config.Framework.PortalRoot;
			data['_client_uri'] = 'client://client_config/'+Syn.Config.Framework.Client+'/';
			data['_site_uri']   = 'site://site_config/'+Syn.Config.Framework.Site+'/';
			data['_session']    = Syn.Config.Framework.Session;
			data['_user_id']    = Syn.Config.Framework.UserId;
			data['_auth_token'] = Syn.Config.Framework.AuthToken;

			if (extra_opts['render_wrapper'])
			{
				data['_render_wrapper'] = 1;
			}

			if (extra_opts['app_server'] || extra_opts['app_server_url'])
			{
				data._is_jsonp = 1;

				var url = extra_opts['app_server_url'] || Syn.Config.Framework.AppServer; 

				rq = {
					'url':         url + '_/',
					'contentType': 'application/json',
					'success':     function (x){ self.result(x); },
					'dataType':    'jsonp',
					'data':        data
				};
			}
			else
			{
				 rq = {
					'url':         Syn.Config.Framework.PortalRoot + '_/',
					'type':        'post',
					'contentType': 'application/json',
					'success':     function (x){ self.result(x); },
					'dataType':    'json',
					'data':        json.serialize(data)
				};
			}

			if (extra_opts.cache)
			{
				rq.jsCache = true;
			}

			$.ajax(rq);
			return;
		}

		// Perform the Troy ajax request
		if (!this.ajaxtoken)
		{
			return;
		}

		var packet = {'type':this.type, 'uid':this.uid, 'ajaxtoken':this.ajaxtoken, 'prefs':vals };

		if (extra_opts && extra_opts['norender'])
		{
			packet['norender'] = true;
		}

		this.comm = new Syn.Comm(Syn.Config.WebservicesUrl);
		this.comm.call('ComponentService', 'submit', packet, this, 'result');
	},

	/**
	 * Gets a component given a uri, parent uri and vals.
	 * @member Syn.Component
	 * @param {String} component_uri A uri of the component to render
	 * @param {String} parent_uri A uri of the parent uri for the component to render
	 * @param {Object} vals The values you wish to submit to the component
	 * @param obj {Object} The object that holds callback method.
	 * @param method {String|Function} Either a string method name or function used for callback.  (Optional)
	 * @param args {Array} Optional args for the callback.  (Optional)
	*/
	getComponent: function(component_uri, parent_uri, vals, obj, method)
	{
		return Syn.ComponentUtils.getComponent(component_uri, parent_uri, vals, obj, method);
	},

	loadUxAssets: function(res, callback)
	{
		return Syn.ComponentUtils.loadUxAssets(res, callback);
	},

	/**
	 * The target of the ajax component webservice. Replaces the component content.
	 * @param {mixed} res The content returned from the webservice
	 */
	result: function (res)
	{
		this.hideLoading();

		/**
		 * In case a Troy AJAX call has 'norender' set to true the response will be an empty string.
		 */
		if (!res)
		{
			return;
		}

		if (typeof res == 'string' && res)
		{
			this.container().replaceWith(res);
			return;
		}

		var self = this;
		var callback = function ()
		{
			if ( res['data'] )
			{
				self.onAjaxUpdate(res['data']);
			}
			else
			{
				var repl_target = res['has_wrapper'] ? self.wrapper() : self.container();
				repl_target.replaceWith(res['content']);
				var instance = Syn.ComponentMgr.getInstanceByUid(res.init.event_id);
				self.find('pre.scroll_loader').showComment();

				if (instance && instance != self)
				{
					Syn.ComponentMgr.remove(self);
				}
			}
		};

		this.loadUxAssets(res, callback);
	},

	/**
	 * Default ajax update handler, override this in subclasses to recieve the ajax update event
	 * @param {Object} config An associative array of config params
	 */
	onAjaxUpdate: function(config)
	{
		return;
	},

	/**
	 * Find a jquery element inside the component container
	 * @param {String} selector The jquery selector to execute inside the component container
	 * @return {Object} The jquery response object
	 */
	find: function(selector)
	{
		return $( '#'+this.uniqueKey()+ ( selector ? ' '+selector : '') );
	},

	/**
	 * Show the loading indicator.
	 * Options can be specified in the opts parameter.  The following opts are accepted:
	 *    target: {Object} A jQuery object where the loading layer will reside inside. [optional]
	 *    class: {String} An additional class name to use on the loading layer. [optional]
	 *
	 * @param {Object} opts Options for the loading layer
	 */
	showLoading: function(opts)
	{
		opts = opts || {};
		var loading = this.uniqueElmt("loading");
		var target  = opts["target"] || this.container();

		if (!loading.size())
		{
			loading = $("<div>").attr("id", this.uniqueKey("loading", true))
			                    .addClass("loading");

			// If the user specified an additional class, add it as well.
			if (opts["class"])
			{
				loading.addClass(opts["class"]);
			}
		}

		loading.css({
			width: target.outerWidth(),
			height: target.outerHeight()
		}).show();

		target.prepend(loading);

		return true;
	},

	/**
	 * Hide the loading indicator
	 */
	hideLoading: function()
	{
		this.uniqueElmt('loading').hide();
	},

	/**
	 * Loads scripts asynchronously and calls a callback when all scripts are done loading.
	 *
	 * @param scripts {Array|String} Array  of javascripts to load or String (for 1 js file to load)
	 * @param obj {Object} The object that holds callback method.
	 * @param method {String|Function} Either a string method name or function used for callback.
	 * @param number {int} The script index to start loading (Not required; defaults to 0)
	 * @member Syn.Component
	 */
	loadJs: function(scripts, obj, method, args, number)
	{
		var that = this;
		scripts = (typeof scripts == "string") ? [scripts] : scripts;
		number = number || 0;
		args = args || [];

		$.getScript(Syn.Config.PortalRoot+'js/'+scripts[number], function()
		{
			//Load the next one if we can
			if ((number+1) < scripts.length)
			{
				that.loadJs(scripts, obj, method,args, number+1);
			}
			else
			{
				//Do our callback now that we are done!
				(typeof method == 'string') ? obj[method].apply(obj, args ) : method.apply(obj, args );
			}
		});
	},

	/**
	 * Get the jquery handle to the component wrapper
	 * @return {Object} The wrapper container jquery object or the component container if no wrapper exists.
	 */
	wrapper: function()
	{
		// The Framework wrapper
		if (this.uniqueElmt('wrapper').length)
		{
			return this.uniqueElmt('wrapper');
		}

		/* Note: the wrap_sel selector has to iterate sub-nodes bcs the id's are not actually
			 unique for wrappers. :( Bad Troy, Bad.
		*/
		var res = this.uid.match(/^(\d+)[\w\:]*_([\w\d]+)$/);
		var wrap_sel = '#body_col_'+ res[1] +' div.comp_container[id=syn_comp_' + res[2] + ']';
		return $(wrap_sel).length ? $(wrap_sel) : this.container();
	},

	/**
	 * Remove the component and wrapper from the page.
	 */
	remove: function(options)
	{
		options = options || [];

		if ( Syn.ComponentMgr )
		{
			Syn.ComponentMgr.remove(this);
		}

		var target = options['target'] == 'wrapper' ? this.wrapper() : this.container();

		if (options['fade_out'])
		{
			target.fadeOut(options['fade_out'], function(){ $(this).remove(); } );
		}
		else
		{
			target.remove();
		}
	},

	/**
	 * Popup a component
	 * @param options {Object} Options
	 {
		 * component {Object | String} (Uri/avs if string)(Optional)
		 * - uri {String} Component Uri To Popup
		 * - params {Object} parameters passed to the component
		 * title {String} Title of component (Optional, overrides popup component title)
		 * layout {String} Layout of popup component, ie controls width (Optional, single|double|triple) 300px,612px, 960px) If not provided, defaults to single)
		 * css_class {String} CSS Class of popup component (Optional, If not provided, uses name of popup component)
		 * show_loading {String} true|false (Optional)
		 * draggable: true|false (Optional)
		 * closeable: true|false (Optional)
		 * resizable: true|false (Optional)
		 * modal: true|false (Optional)
		 * close_on_blur: true|false (Optional)
		 * show_title: true|false (Optional)
		 * center: "screen"|"component"| "#element_id" (Optional)
		 * max_popups: 1,2,3... (Optional) Defaults to 1)
		 * top: xxx (Optional)
		 * left: xxx (Optional)
		 * width: xxx (Optional)
		 * height: xxx (Optional)
	 }
	 *
	 * @param obj {Object} The object that holds callback method.
	 * @param method {String|Function} Either a string method name or function used for callback.  (Optional)
	 * @param args {Array} Optional args for the callback.  (Optional)
	 *
	 */
	popup: function(options, obj, method, args)
	{
		var that = this;
		var load_fn = function()
		{
			if (!that.syn_popup)
			{
				that.syn_popup = new Syn.Popup();
			}

			//If we want to center the popup over the component OR we have not specified a center + left + top
			if (options && options['center'] && options['center'] == 'component'
			 || (options && !options['center'] && !options['left'] && !options['top']))
			{
				options['center'] = '#'+that.uniqueKey();
			}

			that.syn_popup.popup(options, obj, method, args);
		};


		if (this.config['uri'])
		{
			//Load in Syn.Popup framework version
			$.getScripts(["en_US/globals/javascripts/framework/synpopup.js"], load_fn, Syn.Config.Framework.AssetsRoot);
		}
		else
		{
			//Load in Syn.Popup legacy
			$.getScripts(["framework/synpopup.packed.js"], load_fn, Syn.Config.PortalRoot+"js/");
		}
	},

	/**
	 * Live connects a tags for link submissions via ajax.
	 * @param {String|Object} sel
	 * @param {String|Function} method
	 */
	hrefToAjax: function(sel, method, extra_opts)
	{
		var obj = sel;
		if (typeof(obj) == "string")
		{
			obj = this.container().find(sel);
		}

		var self = this;
		obj.live("click", function()
		{
			if (method)
			{
				var a = [this];
				(typeof(method) == "string") ? self[method].apply(self, a) : method.apply(self, a);
			}

			var params = self.queryStrToObject($(this).attr("href"));
			self.submit(params,extra_opts);

			return false;
		});
	},

	/**
	 * Converts a query string to an object.
	 * @param {String} query_string
	 * @return {Array}
	 */
	queryStrToObject: function(query_string)
	{
		// query_string can be just a query string, or it can be a URL.  If it's a URL
		// with no query string, return an empty object.
		if (query_string.match(/^https?:\/\//) && query_string.indexOf("?") === -1)
		{
			return {};
		}

		var qs = query_string.match(/(?:^|\?)([^?]+)#?(?=#|$)/);
		qs = (qs) ? qs[1] : '';

		var params = qs.split(/&/);

		var arr = {};
		for (i = 0; i < params.length; ++i)
		{
			// PHP and JavaScript encode spaces differently.  Actually, PHP encodes spaces differently
			// as well.  http_build_query() in PHP encodes spaces as + (whereas rawurlencode() does %20).
			// JavaScript on the other hand encodes spaces a %20 only and doesn't encode the plus.  To fix this
			// we'll manually decode the plus as a space and then decode the rest.
			var keyvalue = params[i].split(/=/);
			var key = keyvalue[0];
			key = key.replace(/\+/g, ' ');
			key = decodeURIComponent(key);

			var value = keyvalue[1];
			if (value)
			{
				value = value.replace(/\+/g, ' ');
				value = decodeURIComponent(value);
			}
			arr[key] = (value) ? value : '';
		}

		return arr;
	},

	encodeDomId: function(str)
	{
	  return str.replace(/\W/g, function (char)
	  {
		return '-'+char.charCodeAt(0).toString(16);
	  });
	},

	decodeDomId: function(str)
	{
	  return str.replace(/\-([0-9a-f]{2})/ig, function (str,hex)
	  {
		return String.fromCharCode(parseInt(hex,16));
	  });
	},

	L: function(str)
	{
		return this.config['__i18n'][str] ? this.config['__i18n'][str] : str;
	},

	/**
	 * Open a link in a new window
	 * @param link {Object} JQuery link object
	 */
	newWindow: function(link)
	{
		if (link.href)
		{
			window.open(link.href);
			return false;
		}

		return true;
	}
});
;
/***** js/login.js *****/
/**
 * Code to handle the UI for authentication 
 * @version $id $ 
 */

/**
 * Handle the ajax response from login
 * @param {Object} req The http response object
 */
function login_xml_response_handler(req)
{
	// split result by |
	var result = req.responseText.split('|');

	if (result[0] == 'OK')
	{
		// result was ok
		// result[1] has bounceto value

		try 
		{
			if (result[1].length > 0 && result[1].match(/^javascript:/))
			{
				var js_to_eval = result[1].replace(/^javascript:/, '');
				eval(js_to_eval);
			}
			else if (result[1].length > 0)
			{
				window.location.href = result[1];
			}
			else
			{
				window.location.reload();
			}
		}
		catch (e)
		{
			window.location.reload();
		}
	}
	else
	{
		// invalid user or password
		document.getElementById('login_error').innerHTML = result[1];
		document.getElementById('login_error').style.display = 'block';
	}
}

/**
 * Handle the ajax response from logout
 * @param {Object} req The http response object
 */
function logout_xml_response_handler(req)
{
	// split result by |
	var result = req.responseText.split('|');

	if (result[0] == 'OK')
	{
		try 
		{
				window.location.reload();
		}
		catch (e) 
		{
				window.location.href = result[1];
		}
	}
}

/**
 * Send an ajax request to log the user out
 */
function logout_send_xml_http_request()
{
	var url = '/ajaxapi/login.php';
	params = 'action=logout';
	
	new SynAjax().request(url,
	{
		method: 'post',
		parameters: params,
		onComplete: logout_xml_response_handler
	});
	
	return false;
}

/**
 * Send a login request
 * @param {String} username The username
 * @param {String} passwd The user's password
 * @param {String} bounceto The url to direct the user to upon success
 * @param {String} remember_me Whether to set persistent login session 
 */
function login_send_xml_http_request(username, passwd, bounceto, remember_me)
{
	document.getElementById('login_error').style.display = 'none';
	var url = '/ajaxapi/login.php';

	var params  = 'username=' + encodeURIComponent(username);
	params += '&passwd=' + encodeURIComponent(passwd);
	params += '&bounceto=' + encodeURIComponent(bounceto);
	params += '&remember_me=' + encodeURIComponent(remember_me);
	params += '&action=login';

	new SynAjax().request(url,
	                      {
	                        method: 'post',
	                        parameters: params,
	                        onComplete: login_xml_response_handler
	                      }
	);
}

/**
 * Determine width of the screen
 * @return {Number} The viewport width
 * TODO: Move me to a standard location 
 */
function viewport_width()
{
	return self.innerWidth || (document.documentElement.clientWidth || document.body.clientWidth);
}

/**
 * Determine height of the screen
 * @return {Number} The viewport height
 * TODO: Move me to a standard location 
 */
function viewport_height()
{
	return self.innerHeight || (document.documentElement.clientHeight || document.body.clientHeight);
}

/**
 * Determine scroll height of the screen
 * @return {Number} The scroll height
 * TODO: Move me to a standard location 
 */
function scrollsize_height()
{
	return Math.max(document.body.scrollHeight, document.body.offsetHeight);
}

/**
 * Determine scroll width of the screen
 * @return {Number} The viewport height
 * TODO: Move me to a standard location 
 */
function scrollsize_width()
{
	return self.scrollWidth || (document.documentElement.scrollWidth || document.body.scrollWidth);
}

/**
 * Determine the scroll top of the screen
 * @return {Number} The viewport height
 * TODO: Move me to a standard location 
 */
function my_scroll_top()
{
	return self.scrollTop || (document.documentElement.scrollTop || document.body.scrollTop);
}

/**
 * Return the width and height of the viewport
 * @return {Array} width and height associative array
 * TODO: Move me to a standard location 
 */
function viewport_size()
{
	return { width: viewport_width(), height: viewport_height() };
}

/**
 * Hide a few id's 
 */
function hide_naughty_wmps()
{
	var wmps = new Array('wmp_vid_player', 'fl_vid_player');

	for (var i = 0; i < wmps.length; i++)
	{
		var owmps = document.getElementById(wmps[i]);
		if (owmps)
		{
			owmps.style.visibility='hidden';
		}
	}
}

/**
 * Reveal a few id's 
 */
function reveal_naughty_wmps()
{
	var wmps = new Array('wmp_vid_player', 'fl_vid_player');
		
	for (var i = 0; i < wmps.length; i++)
	{
		var owmps = document.getElementById(wmps[i]);
		if (owmps)
		{
			owmps.style.visibility='visible';
		}
	}
}

/**
 * Hide ad iframes 
 */
function hide_naughty_iframes()
{
	var adFrames = new Array("2894", "2892");
	for (var h = 0; h < adFrames.length; h++)
	{
		if (document.getElementById(adFrames[h]))
		{
			var hideIt = true;
			var oIframe = document.getElementById(adFrames[h]);
			var oDoc = oIframe.contentWindow || oIframe.contentDocument;
			if (oDoc.document) {
				oDoc = oDoc.document;
				var params = oDoc.getElementsByTagName('param');
				for (var j = 0; hideIt && j < params.length; j++)
				{
					if (params[j].name == 'wmode' || params[j].name == 'WMODE')
					{
						hideIt = false;
					}
				}
				if (hideIt)
				{
					document.getElementById(adFrames[h]).style.visibility = 'hidden';
				}
			}
		}
	}
}

/**
 * Reveal ad iframes
 */
function reveal_naughty_iframes()
{
	var adFrames = new Array("2894","2892");
	for (var h = 0; h < adFrames.length; h++)
	{
		if (document.getElementById(adFrames[h]))
		{
			var showIt = true;
			var oIframe = document.getElementById(adFrames[h]);
			var oDoc = oIframe.contentWindow || oIframe.contentDocument;
			if (oDoc.document) {
				oDoc = oDoc.document;
				var params = oDoc.getElementsByTagName('param');
				for (var j = 0; showIt && j < params.length; j++)
				{
					if (params[j].name == 'wmode' || params[j].name == 'WMODE')
					{
						showIt = false;
					}
				}
				if (showIt)
				{
					document.getElementById(adFrames[h]).style.visibility = 'visible';
				}
			}
		}
	}
}

/**
 * Hide embed tags
 */
function hide_naughty_tags()
{
	var types = ['embed'];

	for (var i=0;i<types.length;i++)
	{
		var tags = document.getElementsByTagName(types[i]);
		for (var j=0;j<tags.length;j++)
		{
			var tag = tags[j];
			if (tag.style.visibility = 'visible')
			{
				tag.style.visibility = 'hidden';
				tag.setAttribute('forced_hidden',true);
			}
		}
	}
}

/**
 * Show embed tags
 */
function reveal_naughty_tags()
{
	var types = ['embed'];

	for (var i=0;i<types.length;i++)
	{
		var tags = document.getElementsByTagName(types[i]);
		for (var j=0;j<tags.length;j++)
		{
			var tag = tags[j];
			if (tag.getAttribute('forced_hidden'))
			{
				tag.style.visibility = 'visible';
				tag.setAttribute('forced_hidden',false);
			}
		}
	}
}

/**
 * Hide the login overlay 
 */
function hide_login()
{
	var loginCont = document.getElementById('login_cont');
	var modalCover = document.getElementById('modal_cover');

	reveal_naughty_iframes();
	reveal_naughty_wmps();
	reveal_naughty_tags();

	loginCont.style.display  = 'none';
	modalCover.style.display = 'none';

	// for IE 6, we hide the dropdowns
	if (navigator.userAgent.indexOf("MSIE 6") > 0)
	{
		login_show_dropdowns();
	}
}

/**
 * Show the login overlay
 */
function show_login()
{
	var vW = viewport_width();
	var vH = viewport_height();
	var vS = viewport_size();
	var sH = scrollsize_height();
	var sW = scrollsize_width();
	var sT = my_scroll_top();
	var loginCont = document.getElementById('login_cont');
	var modalCover = document.getElementById('modal_cover');
	var closeLogin = document.getElementById('close_login');
	closeLogin.onclick = hide_login;

	window.onscroll = window.onresize = function (e)
	{
		var Client =
		{
			myScrollTop: function()
			{
				return self.scrollTop || (document.documentElement.scrollTop || document.body.scrollTop);
			}
		};

		var sT = Client.myScrollTop();
		loginCont.style.top = ((vH - 295)/2) + sT + 'px';
	};

	hide_naughty_iframes();
	hide_naughty_wmps();
	hide_naughty_tags();

	// for IE 6, we hide the dropdowns.
	if (navigator.userAgent.indexOf("MSIE 6") > 0)
	{
		login_hide_dropdowns();
	}

	document.getElementById('login_error').innerHTML = '';
	document.getElementById('login_error').style.display = 'block';

	loginCont.style.width = '600px';
	loginCont.style.height = '295px';
	loginCont.style.clear = 'all';
	loginCont.style.left = (vW - 600) / 2 + 'px';
	loginCont.style.top = (vH - 295) / 2 + 'px';
	loginCont.style.display = 'block';

	if (sH < vH)
	{
		modalCover.style.height = vH + 'px';
	}
	else
	{
		modalCover.style.height = sH + 'px';
	}

	/**
   * Return the page size
   * @return {Array} An array containing page dimensions  
   */
	function getPageSize()
	{
		var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY)
		{
			xScroll = document.body.scrollWidth;
			yScroll = window.innerHeight + window.scrollMaxY;
		}
		else if (document.body.scrollHeight > document.body.offsetHeight)
		{ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		}
		else
		{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		if (self.innerHeight)
		{ // all except Explorer
			windowWidth = self.innerWidth;
			windowHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight) 
		{ // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		}
		else if (document.body)
		{ // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if (yScroll < windowHeight)
		{
			pageHeight = windowHeight;
		}
		else
		{
			pageHeight = yScroll;
		}

		// for small pages with total width less then width of the viewport
		if (xScroll < windowWidth)
		{
			pageWidth = windowWidth;
		}
		else
		{
			pageWidth = xScroll;
		}
		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
		return arrayPageSize;
	}

	var arrayPageSize = getPageSize();
	
	if (navigator.userAgent.indexOf("MSIE 6") > 0)
	{
		modalCover.style.width = arrayPageSize[0] + 'px';
	}
	else
	{
		modalCover.style.width = 100 + '%';
		modalCover.style.minWidth = 968 + 'px';
	}

	modalCover.style.position = 'absolute';
	modalCover.style.top = '0px';
	modalCover.style.left = '0px';
	modalCover.style.display = 'block';
	modalCover.style.overflow = 'hidden';

	loginCont.style.display = 'block';

	document.getElementById('__syn_login_username').focus();
}

/**
 * Hide select boxes in IE 6 due to overlay issues 
 */
function login_hide_dropdowns()
{
	var elements = document.getElementsByTagName('select');
	var i = 0;
	for (i = 0; i < elements.length; i++)
	{
		if (elements[i].type == 'select-one')
		{
			elements[i].style.display = 'none';
		}
	}
	if (typeof window.pldv_hide_overlay == 'function')
	{
		pldv_hide_overlay()
	}
}

/**
 * Show select boxes 
 */
function login_show_dropdowns()
{
	var elements = document.getElementsByTagName('select');
	var i = 0;
	for (i = 0; i < elements.length; i++)
	{
		if (elements[i].type == 'select-one')
		{
			elements[i].style.display = '';
		}
	}
	if (typeof window.pldv_show_overlay == 'function')
	{
		pldv_show_overlay()
	}
}

/**
 * Detects the login state and shows the layer if not logged in
 */
function auto_login()
{
	if (!__LOGGED_IN__ && document.location.search.indexOf("message=secondary_login") != -1)
	{
		var login_form_div = document.getElementsByTagName('DIV');
		var len = login_form_div.length;
		while (len--)
		{
			if (login_form_div[len].className == 'login_form')
			{
				login_form_div = login_form_div[len];
				break;
			}
		}
		if (!login_form_div)
		{
			alert("Login Disabled, define class 'login_form'");
			return;
		}
		var myLoginForm = login_form_div.getElementsByTagName('form');
		if (!myLoginForm || myLoginForm.length == 0)
		{
			alert("Login Disabled, define element 'form' in class 'login_form'");
			return;
		}

		var regexS = "[\\?&]bounceto=([^&#]*)";
		var regex = new RegExp( regexS );
		var tmpURL = window.location.href;
		var results = regex.exec( tmpURL );
		var bounceto = window.location.href;
		if (results != null)
		{
			bounceto = results[1]; // do not unescape
		}

		myLoginForm[0].action = bounceto;
		myLoginForm[0].onsubmit = _login_form_onsubmit;
		show_login();
	}
}

/**
 * Handle the login form submission
 */
function _login_form_onsubmit()
{
	var username;
	var password;
	var remember_me = (document.getElementById('__syn_login_remeber_me').checked ? 'Y' : '');
	var inputs = this.getElementsByTagName('input');
	for (l = 0; l < inputs.length; l++)
	{
		if (inputs[l].className == 'username')
		{
			username = inputs[l].value;
		}
		if (inputs[l].className == 'passwd')
		{
			password = inputs[l].value;
		}
	}
	login_send_xml_http_request(username, password, this.action, remember_me);
	return false;
}

/**
 * Handle a click and submit the login form
 */
function _login_a_onclick()
{
	var login_form_div = document.getElementsByTagName('DIV');
	var len = login_form_div.length;
	while (len--)
	{
		if (login_form_div[len].className == 'login_form')
		{
			login_form_div = login_form_div[len];
			break;
		}
	}
	if (!login_form_div)
	{
		alert("Login Disabled, define class 'login_form'");
		return;
	}
	var myLoginForm = login_form_div.getElementsByTagName('form');
	if (!myLoginForm || myLoginForm.length == 0)
	{
		alert("Login Disabled, define element 'form' in class 'login_form'");
		return;
	}
	myLoginForm[0].action = this.href;
	myLoginForm[0].onsubmit = _login_form_onsubmit;
	show_login();
	return false;
}

/**
 * Search the dom for elements with className 'site_login' and add onclick handlers to show the login layer 
 * @param {Object} e The click event
 */
function _login_catcher(e)
{
	var target = e.target || e.srcElement;
	var a_element = null;
	var l_element = null;

	var parent = target;

	for (var i = 0; i < 6; i++)
	{
		if (!a_element && parent.tagName == 'A')
		{
			a_element = parent;
			if (a_element.login_capture)
			{
					return;
			}
		}
		if (!l_element && parent.className == 'site_login')
		{
			l_element = parent;
			break;
		}
		parent = parent.parentNode ? parent.parentNode : parent.parentElement;
		if (parent == null)
		{
			return;
		}
	}

	if (!a_element || !l_element)
	{
		return;
	}

	a_element.onclick = _login_a_onclick;
	a_element.login_capture = true;

	return true;
}

if (!__LOGGED_IN__)
{
	if (window.document && window.document.addEventListener)
	{
		window.document.addEventListener('mousedown', _login_catcher, false);
	}
	else if (window.document && window.document.attachEvent)
	{
		window.document.attachEvent('onmousedown', _login_catcher);
	}
}
;
/***** js/tabbedcomp.js *****/
function __syn_showTabbedComponent(tab, pzi, index)
{
	var i = 0;
	var container       = document.getElementById('tabbed_component_' + pzi + '_container');
	var componentToShow = document.getElementById('tabbed_component_' + pzi + '_' + index);
	if (!container || !componentToShow)
	{
		return;
	}

	// Hide all other components
	for (i = 0; i < container.childNodes.length; i++)
	{
		var componentDiv = container.childNodes[i];
		if (componentDiv.style && componentDiv != componentToShow)
		{
			componentDiv.style.display = 'none';
		}
	}

	// Show the selected component
	componentToShow.style.display = 'block';
	componentToShow.className     = 'on';

	var parentList = tab.parentNode;
	// Get default class name
	var defaultClassName = '';
	for (i = 0; i < parentList.childNodes.length; i++)
	{
		var element = parentList.childNodes[i];
		if (element != tab && element.className != 'on' && element.className && element.className != 'undefined')
		{
			defaultClassName = element.className;
			break;
		}
	}
	// Deselected all tabs 
	for (i = 0; i < parentList.childNodes.length; i++)
	{
		var element = parentList.childNodes[i];

		if (element.nodeName.toLowerCase() == 'li')
		{
			element.className = defaultClassName;
		}
	}

	// Set selected tab to on
	tab.className = 'on';
}

/***** Expedia javascript functions *****/

var divs = new Array('syn_exp_travel_flight', 'syn_exp_travel_car', 'syn_exp_travel_hotel', 'syn_exp_travel_cruise');

function syn_show_exp(obj)
{
	for (var i = 0; i < divs.length; i++)
	{
		if (document.getElementById(obj) && obj == divs[i])
		{
			document.getElementById(obj).style.display='block';
		}
		
		else if(document.getElementById(divs[i]))
		{
			document.getElementById(divs[i]).style.display='none';
		}
	}
}

function syn_check_exp(obj)
{
	if (document.getElementById(obj))
	{
		document.getElementById(obj).checked=true;
	}
}
;
/***** js/synlib.js *****/
/***** Utility functions *****/

Number.prototype.NaN0 = function()
{ 
	return isNaN(this) ? 0 : this;
}

function Utils()
{
}

Utils.getPosition = function(e)
{
	var root_offset_y = e.offsetTop;
	if (navigator.userAgent.indexOf('MSIE') != -1) 
	{
		e = e.offsetParent;
	}

	var left = 0;
	var top = 0;
	while (e.offsetParent)
	{
		left += e.offsetLeft + (e.currentStyle ? (parseInt(e.currentStyle.borderLeftWidth)).NaN0() : 0);
		top += e.offsetTop  + (e.currentStyle ? (parseInt(e.currentStyle.borderTopWidth)).NaN0() : 0);
		e = e.offsetParent;
	}

	left += e.offsetLeft + (e.currentStyle ? (parseInt(e.currentStyle.borderLeftWidth)).NaN0() : 0);
	top += e.offsetTop  + (e.currentStyle ? (parseInt(e.currentStyle.borderTopWidth)).NaN0() : 0);

	return { 
		x: left,
		y: top + (navigator.userAgent.indexOf('MSIE') != -1 ? root_offset_y : 0) 
	};
}

Utils.mouseCoords = function(ev)
{	
	if (!ev) 
	{
		var ev = window.event; 
	}

	if (ev.pageX || ev.pageY)
	{
		return {
			x: ev.pageX,
			y: ev.pageY
		};
	} 
	else if (ev.clientX || ev.clientY)
	{
		return {
			x: ev.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
			y: ev.clientY + document.body.scrollTop + document.documentElement.scrollTop
		};
	}
	else
	{
		return {
			x: 0,
			y: 0
		};
	}
}

Utils.getMouseOffset = function(target, ev)
{
	var docPos = getPosition(target);
	var mousePos = mouseCoords(ev ? ev : window.event);
	return {
		x: mousePos.x - docPos.x,
		y: mousePos.y - docPos.y
	};
}

Utils.getPageSize = function()
{
	var pageWidth = 0, pageHeight = 0;
	if (typeof( window.innerWidth ) == 'number')
	{
		//Non-IE
		pageWidth = window.innerWidth;
		pageHeight = window.innerHeight;
	}
	else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
	{
		//IE 6+ in 'standards compliant mode'
		pageWidth = document.documentElement.clientWidth;
		pageHeight = document.documentElement.clientHeight;
	}
	else if (document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		pageWidth = document.body.clientWidth;
		pageHeight = document.body.clientHeight;
	}

	return {
		x: pageWidth,
		y: pageHeight
	};
}

Utils.hitTest = function(element, x, y)
{
	var pos = Utils.getPosition(element);
	var ex  = pos.x;
	var ey  = pos.y;
	var ew  = elmt.offsetWidth;
	var eh  = elmt.offsetHeight;
	
	return (x >= ex && x <= ex + ew && y >= ey && y <= ey + eh) ? true : false;
}

Utils.horizontalHitTest = function(element, y)
{
	var pos = Utils.getPosition(element);
	var ey  = pos.y;
	var eh  = element.offsetHeight;
	
	return (y >= ey && y <= ey + eh) ? true : false;
}

Utils.addListener = function(event, method, use_capture)
{
	use_capture = use_capture ? use_capture : false;

	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener(event, method, use_capture); // gecko, safari, konqueror and standard.
	}
	else if (typeof document.attachEvent != 'undefined')
	{
		document.attachEvent('on' + event, method); // IE
	}
	else
	{
		window['on' + event] = method;
	}
}

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

/***** Portal Events Handler *****/

function PortalEvents(){}

PortalEvents.listeners =
{
'onLoad'   :[],
'mouseMove':[],
'mouseDown':[],
'mouseUp'  :[]
};

PortalEvents.addListener = function (event,method,object)
{
	PortalEvents.listeners[event].push( {'method':method,'object':object} );
}

PortalEvents.onEvent = function (type,ev)
{
	ev = ev || window.event;

	var ls = PortalEvents.listeners[type];

	for (var i=0; i<ls.length; i++ )
	{
		var listener = ls[i];

		if ( typeof(listener['object']) == 'object' )
		{
			var target = listener['object'];
			target[listener['method']](ev);
		}
		else
		{
			listener['method'](ev);
		}
	}
}


// Install events
Utils.addListener('mousedown', function(ev) { PortalEvents.onEvent( 'mouseDown' , ev); }, false);
Utils.addListener('mouseup', function(ev) { PortalEvents.onEvent( 'mouseUp'   , ev); }, false);
Utils.addListener('mousemove', function(ev) { PortalEvents.onEvent( 'mouseMove' , ev);  }, false);

/***** Legacy functions *****/

function hide_overlay_elements(id)
{
	var element = document.getElementById(id)
	element.setAttribute('forced_hidden', 'true');
	element.style.visibility = 'hidden';
}

function show_overlay_elements(id)
{
	var element = document.getElementById(id)
	element.removeAttribute('forced_hidden');
	element.style.visibility = 'visible';
}

function hide_disruptive_overlay_elements()
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
        {
                var ieversion=new Number(RegExp.$1)
                if (ieversion >= 6 && ieversion < 7) // only hide elements if the browser is ie6
                {
			hide_elements_by_tag(['iframe', 'object', 'embed']);
		}
	}
}

function show_disruptive_overlay_elements()
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
        {
                var ieversion=new Number(RegExp.$1)
                if (ieversion >= 6 && ieversion < 7) // only show elements if the browser is ie6
                {
			show_elements_by_tag(['iframe', 'object', 'embed']);
		}
	}
}

function hide_elements_by_tag(element_names)
{
	for (var h = 0; h < element_names.length; h++)
	{
		var elements = document.getElementsByTagName(element_names[h]);
		for (var j = 0; j < elements.length; j++)
		{
			if (elements[j].style.visibility != 'hidden')
			{
				elements[j].setAttribute('forced_hidden', 'true');
				elements[j].style.visibility = 'hidden';
			}
		}
	}
}

function show_elements_by_tag(element_names)
{
	for (var h = 0; h < element_names.length; h++)
	{
		var elements = document.getElementsByTagName(element_names[h]);
		for (var j = 0; j < elements.length; j++)
		{
			if (elements[j].getAttribute('forced_hidden') == 'true')
			{
				elements[j].removeAttribute('forced_hidden');
				elements[j].style.visibility = 'visible';
			}
		}
	}
}

function SYNACOR_findObj(n, d)
{
	var p, i, x;
	if (!d)
	{
		d = document;
	}
	if ((p = n.indexOf("?")) > 0 && parent.frames.length)
	{
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}
	if (!(x=d[n]) && d.all)
	{
		x = d.all[n];
	}
	for (i = 0; !x && i < d.forms.length; i++)
	{
		x = d.forms[i][n];
	}
	for (i = 0; !x && d.layers && id.layers.length; i++)
	{
		x = SYNACOR_findObj(n, d.layers[i].document);
	}
	if (!x && d.getElementById)
	{
		x = d.getElementById(n);
	}

	return x;
}

function find_pos_x(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
	}
	
	return curleft;
}

function find_pos_y(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	return curtop;
}

function SYNACOR_Snap() 
{
	var args = SYNACOR_Snap.arguments;
	var x = 0;
	var y = 0;

	for (offset = 0; offset < args.length; offset += 4)
	{
		var source_element = args[offset];
		var move_element = args[offset + 1];
		var dest_x = parseInt(args[offset + 2]);
		var dest_y = parseInt(args[offset + 3]);

		source_element = document.getElementById(source_element);
		move_element   = document.getElementById(move_element);
		if (!source_element || !move_element)
		{
			return;
		}

		x = find_pos_x(source_element);
		y = find_pos_y(source_element);

		try
		{
			move_element.style.left = (x + dest_x) + 'px';
			move_element.style.top  = (y + dest_y) + 'px';
		}
		catch (e)
		{
			try
			{
				move_element.offsetLeft = x + dest_x;
				move_element.offsetTop  = y + dest_y;
			}
			catch (e)
			{
			}
		}
	}
	return;
}


function SYNACOR_showHideLayers()
{ //v6.0
	var i, p, v, obj, vv, vd;
	var args = SYNACOR_showHideLayers.arguments;
	for (i = 0; i < (args.length-2); i += 3)
	{
		if ((obj = SYNACOR_findObj(args[i])) != null)
		{
			v = args[i + 2];
			if (obj.style)
			{
				obj = obj.style;
				vv  = (v == 'show') ? 'visible' : (v == 'hide') ? 'hidden' : v;
				vd  = (v == 'show') ? 'block'   : (v == 'hide') ? 'none'   : v;
			}
			obj.visibility=vv;
			obj.display=vd;
		}
	}
}

function getXMLRequestObject()
{
	try	
	{
		return new ActiveXObject('Msxml2.XMLHTTP')
	}
	catch (exception) 
	{
		try 
		{
			return new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (exception)
		{
			try
			{
				return new XMLHttpRequest()
			}
			catch (exception)
			{
				return false;
			}
		}
	}
}

function get_cdata(dom, tag)
{
	var tag = dom.getElementsByTagName(tag);
	if (!tag || tag.length < 1 || !tag[0].firstChild ||	!tag[0].firstChild.data)
	{
		return '';
	}
	return tag[0].firstChild.data;
}

function get_attribute(dom, tag, attribute)
{
	var tag = dom.getElementsByTagName(tag);
	if (!tag || tag.length < 1 || !tag[0].attributes ||
	     tag[0].attributes.length < 1 || !tag[0].attributes.getNamedItem(attribute))
	{
		return '';
	}
	
	return tag[0].attributes.getNamedItem(attribute).value;
}

function hide_id(id_to_hide)
{
	var what = document.getElementById(id_to_hide);
	if (what)
	{
		what.style.display='none';
	}
}

function base64encode(str)
{
	var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var out;
	var i;
	var len;
	var c1;
	var c2;
	var c3;
	var len = str.length;
	var i = 0;
	out = "";
	while (i < len)
	{
		c1 = str.charCodeAt(i++) & 0xff;
		if (i == len)
		{
			out += base64EncodeChars.charAt(c1 >> 2);
			out += base64EncodeChars.charAt((c1 & 0x3) << 4);
			out += "==";
			break;
		}
		c2 = str.charCodeAt(i++);
		if (i == len)
		{
			out += base64EncodeChars.charAt(c1 >> 2);
			out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
			out += base64EncodeChars.charAt((c2 & 0xF) << 2);
			out += "=";
			break;
		}
		c3 = str.charCodeAt(i++);
		out += base64EncodeChars.charAt(c1 >> 2);
		out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
		out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
		out += base64EncodeChars.charAt(c3 & 0x3F);
	}
	return out;
}

function trimStr(str)
{
	str = str.replace(/^\s*/, "");
	str = str.replace(/\s*$/, "");
	
	return str;
}

function add_event_listener(oRef, en, fn)
{
	obj = (typeof oRef == 'string')? document.getElementById(oRef) : oRef;
	if (window.addEventListener) 
	{
		obj.addEventListener(en, fn, false);
	}
	else if (window.attachEvent) 
	{
		obj.attachEvent('on'+en, fn);
	}
}

function remove_event_listener(oRef, en, fn)
{
	obj = (typeof oRef == 'string') ? document.getElementById(oRef) : oRef;
	if (window.addEventListener) 
	{
		obj.removeEventListener(en, fn, false);
	}
	else if (window.attachEvent) 
	{
		obj.detachEvent('on' + en, fn);
	}
}


function reg_repl_esc(text)
{
	return text.replace(/\$/g, '&#36;');
}


/**
 * Deprecated, do not use
 */
function openWindow(theURL, winName, features)
{
	window.open(theURL, winName, features);
}


function SYNACOR_swapImgRestore()
{ //v3.0
	var i, x;
	var a = document.SYNACOR_sr;
	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
	{
		x.src = x.oSrc;
	}
}



function SYNACOR_swapImage() 
{ //v3.0
	var i, j = 0, x;
	var a = SYNACOR_swapImage.arguments;

	document.SYNACOR_sr = new Array;
	for (i = 0; i < (a.length - 2); i += 3)
	{
		if ((x = SYNACOR_findObj(a[i])) != null)
		{
			document.SYNACOR_sr[j++] = x;
			if (!x.oSrc)
			{
				x.oSrc = x.src;
			}
			x.src = a[i + 2];
		}
	}
}

function waterimg(arg) 
{
       window.location = arg;
}

function addLoadEvent(fn)
{
	if (window.addEventListener)
	{
		window.addEventListener('load', fn, false);
	}
	else if (window.attachEvent)
	{
		window.attachEvent('onload', fn);
	}
};
/***** js/synajax.js *****/
/**
 * Ajax JavaScript framework
 * Loosely based off of the Prototype JavaScript framework
 *    Prototype is (c) 2005 Sam Stephenson <sam@conio.net>
 *    Prototype is freely distributable under the terms of an MIT-style license.
 *    For details, see the Prototype web site: http://prototype.conio.net/
 */

SynAjax_Request_Events =
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];


function getTransport() 
{
	try	
	{
		return new ActiveXObject('Msxml2.XMLHTTP')
	}
	catch (exception) 
	{
		try 
		{
			return new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (exception)
		{
			try
			{
				return new XMLHttpRequest()
			}
			catch (exception)
			{
				return false;
			}
		}
	}
}

SynAjax = function()
{
	var self = new Object();

	self.transport = getTransport();
	
	self.request = function(url, options) 
	{
		this.doRequest(null, url, options);
	}

	self.update = function(element_id, url, options)
	{
		this.doRequest(element_id, url, options);
	}

	self.doRequest = function(element_id, url, options)
	{
		this.url        = url;
		this.options    = options;
		this.updater    = element_id;
		this.parameters = this.options.parameters || '';

		try 
		{
			if (this.options.method == 'get')
			{
				this.url += (this.url.match(/\?/) ? '&' : '?') + this.parameters;
			}

			var loader = this;
			this.transport.onreadystatechange = function()
			{
				loader.onStateChange.call(loader);
			}
			this.transport.open(this.options.method, this.url, true);
			this.setRequestHeaders();

			var body = this.options.postBody ? this.options.postBody : this.parameters;
			this.transport.send(this.options.method == 'post' ? body : null);

		}
		catch (exception) 
		{ }
	}

	self.setRequestHeaders = function() 
	{
		var requestHeaders =
			['X-Requested-With', 'XMLHttpRequest'];

		if (this.options.method == 'post') 
		{
			requestHeaders.push('Content-type',	'application/x-www-form-urlencoded');

			/**
			 * Force "Connection: close" for Mozilla browsers to work around
			 * a bug where XMLHttpReqeuest sends an incorrect Content-length
			 * header. See Mozilla Bugzilla #246651.
			 */
			if (this.transport.overrideMimeType)
				requestHeaders.push('Connection', 'close');
		}

		if (this.options.requestHeaders)
		{
			requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
		}

		for (var i = 0; i < requestHeaders.length; i += 2)
		{
			this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
		}
	}

	self.onStateChange = function()
	{
		if (!this.transport)
		{
			if (this.transport == 'undefined')
			{
				return;
			}
		}

		var event = SynAjax_Request_Events[this.transport.readyState];

		if (this.transport.readyState != 1)
		{
			if (event == 'Complete')
			{
				if (this.updater != null)
				{
					var element = document.getElementById(this.updater);
					try 
					{
						element.innerHTML = this.transport.responseText;
					}
					catch (exception)
					{ }
				}

				try
				{
					this.options.onComplete(this.transport);
				}
				catch (exception)
				{ }

				if ((this.header('Content-type') || '').match(/^text\/javascript/i))
				{
					this.evalResponse();
				}
			}

			// Avoid memory leak in MSIE: clean up the oncomplete event handler 
			if (event == 'Complete')
			{
				this.transport.onreadystatechange = function(){};
			}
		}
	}

	self.header = function(name)
	{
		try
		{
			return this.transport.getResponseHeader(name);
		}
		catch (exception)
		{
			return null;
		}
	}

	self.evalResponse = function()
	{
		try
		{
			return eval(this.transport.responseText);
		}
		catch (exception)
		{
			return null;
		}
	}

	return self;
}
;
/***** js/smartsearchbarfocus.packed.js *****/
Syn.setPreventSearchBarFocus=function(){Syn.preventSearchBarFocus=true;return true};$(document).ready(function(){if(document.location.hash==''){$('#q:visible:enabled').focus()}else{Syn.setPreventSearchBarFocus()}$(':input:not(#q)').bind('focus',Syn.setPreventSearchBarFocus)});$(window).load(function(){if(!Syn.preventSearchBarFocus){$('#q:visible:enabled').focus()}$(':input:not(#q)').unbind('focus',Syn.setPreventSearchBarFocus);delete Syn.preventSearchBarFocus;delete Syn.setPreventSearchBarFocus});
;
/***** js/tv/tv.packed.js *****/
Syn.Tv={};Syn.Rd={};if(jQuery.fn.tv_ajax_version===undefined){var root=Syn.Config.PortalRoot;root=(typeof(root)!='undefined')?root:Syn.Config.Framework.PortalRoot;$.getScript(root+'js/3rdparty/jquery/plugins/jquery.tvajax.packed.js')};
/***** js/tv/tvlib.packed.js *****/
var hide_disruptive_overlay_elements,show_disruptive_overlay_elements,find_pos_x,find_pos_y,SYNACOR_Snap,get_cdata;Syn.Tv.Lib={siXml:undefined,dragX:0,dragY:0,curChanRange:0,searchSubmit:function()
{return $('#tv_search_input').val()?true:false;},progDetailsAjax:function(cid,lst_id,prvdr,zipcode,anchor_id)
{hide_disruptive_overlay_elements();Syn.Tv.Lib.selectView(0);var div=Syn.Tv.Lib.mkDiv();var xmod=(find_pos_x(document.getElementById(anchor_id))>450)?-400:50;$(div).html(Syn.Tv.Lib.progDetailsWait());SYNACOR_Snap(anchor_id,div.id,xmod,-70);Syn.Tv.Lib.mkView(div);$(window).bind('resize',Syn.Tv.Lib.mkView);$(div).bind('onmouseover',Syn.Tv.Lib.selectView);$.fn.tvAjax({type:'GET',url:(Syn.Config.PortalRoot+'tv/listingdetails_xml.php'),data:{cid:cid,lid:lst_id,p:prvdr,z:zipcode},success:function(xml)
{Syn.Tv.Lib.dispDiv(Syn.Tv.Lib.progDetails(xml,cid,lst_id,prvdr,zipcode));},dataType:'xml',cache:false});},progDetailsWait:function()
{var b='<table width="350" border="0" cellspacing="0" cellpadding="3">';b+='<tr bgcolor="#84A4DF" id="rd_dragArea" style="cursor:move" height="25"><td class="tvlist_search_popup_header">'+Syn.Tv.Str.showInfo+'</td><td align="right" class="tvlist_search_popup_header">';b+='<tr class="search_criteria search_criteria_header" bgcolor="#e2e2e2"><td colspan="2"><b style="font-size:12px"><br />'+Syn.Tv.Str.retrieveInfo+'</b><br /><br /></td></tr>';b+='<tr id="tv_details_wait"><td colspan="2" valign="top"><br /><br /><img src="'+Syn.Tv.Data.imageRoot+Syn.Config.PortalRoot+Syn.Tv.Data.customLoadingImg+'" alt="'+Syn.Tv.Str.retrieveInfoExt+'" border="0" style="margin-right:10px" /><br /><br /></td></tr>';return(b+'</table>');},progDetails:function(xml,cid,lid,prvdr,zipcode)
{var ep_ttl=Syn.Tv.Lib.getXml(xml,'episode_title');var ex_desc=Syn.Tv.Lib.getXml(xml,'extended_description');var net_src=Syn.Tv.Lib.getXml(xml,'network_source');var lang=Syn.Tv.Lib.getXml(xml,'language');var a_tmstr=Syn.Tv.Lib.getXml(xml,'air_timestring');var a_tm=Syn.Tv.Lib.getXml(xml,'air_time');var dur_str=Syn.Tv.Lib.getXml(xml,'duration_string');var dur=Syn.Tv.Lib.getXml(xml,'duration');var mpaa_r=Syn.Tv.Lib.getXml(xml,'mpaa_rating');var tv_r=Syn.Tv.Lib.getXml(xml,'tv_rating');var show_url=Syn.Tv.Lib.getXml(xml,'show_url');var cond_view=parseInt(Syn.Tv.Lib.getXml(xml,'condensed_view'),10);var ev_link=Syn.Tv.Lib.getXml(xml,'ev_link');var spacer='<tr><td class="tvlib_bg_spacer" colspan="2" height="1" background="'+Syn.Config.PortalRoot+'tv/images/spacer_gray.png"><img src="'+Syn.Config.PortalRoot+'tv/images/spacer_gray.png" height="1" width="1" alt="" /></td></tr>';Syn.Tv.Lib.siXml=xml;var b='<table width="350" border="0" cellspacing="0" cellpadding="3">';b+='<tr bgcolor="#84A4DF" id="rd_dragArea" style="cursor:move" height="25"><td class="tvlist_search_popup_header">'+Syn.Tv.Str.showInfo+'</td><td align="right" class="tvlist_search_popup_header">';b+='<a href="javascript:Syn.Tv.Lib.hideDiv();" title="'+Syn.Tv.Str.close+'"><img src="'+Syn.Config.PortalRoot+'tv/images/button_close.png" width="14" height="12" border="0" align="absmiddle" alt="'+Syn.Tv.Str.close+'" /></a></td></tr>';if(show_url!=="")
{b+='<tr class="search_criteria search_criteria_header" bgcolor="#e2e2e2"><td colspan="2"><b style="font-size:12px"><a href="'+show_url+'">'+Syn.Tv.Lib.getXml(xml,'full_title').toUpperCase()+'</a></b><br />';}
else
{b+='<tr class="search_criteria search_criteria_header" bgcolor="#e2e2e2"><td colspan="2"><b style="font-size:12px">'+Syn.Tv.Lib.getXml(xml,'full_title').toUpperCase()+'</b><br />';}
if(Syn.Tv.Lib.getXml(xml,'repeat')==1)
{b+=Syn.Tv.Str.rerun;}
b+=ep_ttl+'</td></tr>';b+='<tr class="search_criteria"><td class="search_criteria_header" colspan="2" align="right"  bgcolor="#e2e2e2"><b>';b+='<div class="tvlib_icon_cont">';var ihdr='<img src="'+Syn.Config.PortalRoot+'tv/images/icons/';if(Syn.Tv.Lib.getXml(xml,'hdtv')==1)
{b+=ihdr+'hdtv.gif" alt="'+Syn.Tv.Str.hdtv+'" height="12" border="0" align="absmiddle" /> &nbsp;&nbsp;';}
if(Syn.Tv.Lib.getXml(xml,'cc')==1)
{b+=ihdr+'cc.gif" alt="'+Syn.Tv.Str.cc+'" height="12" border="0" align="absmiddle" /> &nbsp;&nbsp;';}
if(Syn.Tv.Lib.getXml(xml,'stereo')==1)
{b+='<span class="tvlist_grid_icons">'+Syn.Tv.Str.stereo+'</span> &nbsp;&nbsp;';}
if(Syn.Tv.Lib.getXml(xml,'sap')==1)
{b+=ihdr+'sap.gif" alt="'+Syn.Tv.Str.sap+'" height="12" border="0" align="absmiddle" /> &nbsp;&nbsp;';}
b+='</div>';b+='</b></td></tr></table>';b+='<table width="350" border="0" cellspacing="0" cellpadding="3">';var no_det=true;if(Syn.Tv.Lib.getXml(xml,'genre')!=="")
{no_det=false;b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">'+Syn.Tv.Str.cat+'</td><td valign="top">';var all_cats=Syn.Tv.Lib.getXml(xml,'genre');var cat=all_cats.split(",");if(cat.length<=3)
{b+=all_cats.replace(/,/g,",&nbsp;")+'<br />';}
else
{b+=cat[0]+", "+cat[1]+", "+cat[2]+'<br />';}
b+="</td></tr>";}
if(!cond_view&&((ep_ttl!=="")||(ex_desc!=="")))
{b+=spacer;no_det=false;b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">'+Syn.Tv.Str.synopsis+'</td><td valign="top">';if(ep_ttl!=="")
{b+='<b>'+ep_ttl+':&nbsp;</b><br />';}
if(ex_desc!=="")
{b+=ex_desc+'<br />';}
b+="</td></tr>";}
var e='';if(net_src!=="")
{e+=net_src.toUpperCase()+' &nbsp;';}
if(a_tmstr!=="")
{e+=a_tmstr+' &nbsp;';}
else if(a_tm!=="")
{e+=a_tm+' &nbsp;';}
if(dur_str!=="")
{e+='('+dur_str+')<br />';}
else if(dur!=="")
{e+='('+dur+')<br />';}
if(lang!=="")
{e+=Syn.Tv.Str.lang+': '+lang;}
if(e!=='')
{no_det=false;b+=spacer;b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">'+Syn.Tv.Str.details+'</td><td valign="top">'+e+'</td></tr>';}
if(!cond_view)
{if(no_det)
{b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">&nbsp;</td><td valign="top">'+Syn.Tv.Str.noProg+'</td></tr>';}
if(Syn.Tv.Lib.getXml(xml,'cast')!=="")
{b+=spacer;b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">'+Syn.Tv.Str.starring+'</td><td valign="top">'+Syn.Tv.Lib.getXml(xml,'cast')+'<br /></td></tr>';}
e='';if(mpaa_r!=="")
{e+='<span class="tvlist_grid_icons">'+mpaa_r+'</span>'+'<br />';}
if(tv_r!=="")
{var rhdr='<span class="tvlist_grid_icons">'+tv_r+'</span> ';e+=rhdr+'<br />';}
var rlf=(tv_r.substr(0,2)=='TV');var rls=rlf?'<a href="'+Syn.Tv.Data.ratingLink+'#'+tv_r+'">':'';var rle=rlf?'</a>':'';if(e!=='')
{b+=spacer;b+='<tr class="search_criteria"><td valign="top" class="search_popup_cat">'+Syn.Tv.Str.ratingWarning+'</td><td valign="top">'+rls+e+rle+'</td></tr>';}}
else if(ev_link)
{b+=spacer;b+='<tr><td colspan="2"><a class="tvshow_more_link" href="'+ev_link+'?p='+prvdr+(zipcode?('&z='+zipcode):'')+'&cid='+cid+'&lid='+lid+'">'+Syn.Tv.Str.more+'</a></td></tr>';}
b+='</table>';if(Syn.Tv.Data.dvrServiceEnabled>=1)
{b+=Syn.Rd.Lib.recDvrList(xml,1);}
return b;},requestGrid:function(st_ts,e_ts,id,prvdr,dev,cids,mode,grid_batch,set_sz,zipcode,adv,cat,no_cust)
{var unique_id=id;id='#'+id;if($(id)[0]===undefined)
{return;}
Syn.Tv.Lib.showTvWait(id);Syn.Tv.Lib.curChanRange=grid_batch;$.fn.tvAjax({type:'GET',url:(Syn.Config.PortalRoot+'tv/grid_interface.php'),data:{valid_user:((Syn.Tv.Data.dvrServiceEnabled>=1)?1:0),start_ts:st_ts,end_ts:e_ts,provider:prvdr,device:dev,mode:mode,zipcode:zipcode,advanced:adv,category:cat,no_cust:no_cust,cids:cids,grid_channel_batch:grid_batch,grid_set_size:set_sz,id:unique_id},success:function(txt)
{$(id)[0].innerHTML=txt;Syn.Tv.Lib.hideTvWait(id);},dataType:'text',cache:false});},showTvWait:function(id)
{if($(id).length&&$("#tv_indicator").length)
{var target=$(id),indicator=$('#tv_indicator'),container=target.closest('.tabbed_body, .comp_body'),top=Math.round((target.height()-indicator.height())/2),left=Math.round((target.width()-indicator.width())/2);target.css("opacity",0.3);container.css('position','relative');$("#tv_indicator").css({position:"absolute",top:top+'px',left:left+'px'}).show();}},hideTvWait:function(id)
{if($(id).length&&$("#tv_indicator").length)
{$(id).css("opacity",1);try
{$(id)[0].style.removeAttribute('filter');}
catch(err)
{}
$("#tv_indicator").hide();}},setTabDate:function(ptt,ctt)
{var purl=Syn.Config.PortalRoot+'tv/images/t2_c';var pid='#grid_tab';$(pid+'_left'+ptt).attr('src',purl+'4.png');$(pid+ptt).css({background:'url(images/t2_c5.png)'});$(pid+'_right'+ptt).attr('src',purl+'6.png');$(pid+'_left'+ctt).attr('src',purl+'1.png');$(pid+ctt).css({background:'url(images/t2_c2.png)'});$(pid+'_right'+ctt).attr('src',purl+'3.png');},toggleDisp:function()
{var i,args=arguments;for(i=0;i<(args.length-1);i+=2)
{$('#'+args[i]).toggle();}},resetSearch:function()
{$('#search_string')[0].value='';$("#partial_match1")[0].checked=true;$("#partial_match2")[0].checked=false;$("#su_category")[0].selectedIndex=0;$("#next_days")[0].selectedIndex=2;$("#listing_type1")[0].checked=true;$("#listing_type2")[0].checked=false;$("#su_title")[0].checked=true;$("#su_actor")[0].checked=false;$("#su_description")[0].checked=false;$("#su_episode_title")[0].checked=false;$("#tv_channel")[0].selectedIndex=0;$("#sort_by1")[0].checked=false;$("#sort_by2")[0].checked=true;},mkView:function(div,sx)
{var pgSz=[$(document).width(),$(document).height(),$(window).width(),$(window).height()];var sPos=[$(window).scrollLeft(),$(window).scrollTop()];var xm=10;var ym=10;div=(div&&div.id)?div:$('#details')[0];div.style.display='block';var dx=find_pos_x(div);var dy=find_pos_y(div);var dw=div.offsetWidth;var dh=div.offsetHeight;var ndx=0;var ndy=0;var is_xs_vis=((pgSz[0]>pgSz[2])?1:0);var is_ys_vis=((pgSz[1]>pgSz[3])?1:0);var xs_sz=20;var ys_sz=20;if(!sx)
{if((dx+dw)>(sPos[0]+pgSz[2]-(is_ys_vis*ys_sz)))
{ndx=-1*((dx+dw)-(sPos[0]+pgSz[2])+xm+(is_ys_vis*ys_sz));}}
if((dy+dh)>(sPos[1]+pgSz[3]-(is_xs_vis*xs_sz)))
{ndy=-1*((dy+dh)-(sPos[1]+pgSz[3])+ym+(is_xs_vis*xs_sz));}
SYNACOR_Snap(div.id,div.id,ndx,ndy);dx=find_pos_x(div);dy=find_pos_y(div);ndx=0;ndy=0;if(!sx)
{if(dx<sPos[0])
{ndx=(sPos[0]-dx)+xm;}}
if(dy<sPos[1])
{ndy=(sPos[1]-dy)+ym;}
SYNACOR_Snap(div.id,div.id,ndx,ndy);$('#rd_dragArea').bind('mousedown',Syn.Tv.Lib.startDrag);return false;},mkDiv:function(color)
{var d;if(!$('#details').length)
{d=document.createElement('div');d.id="details";d.style.position='absolute';d.style.border='1px solid #999999';d.style.padding='5px';d.style.filter='progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135)';$('body')[0].appendChild(d);}
d=$('#details');d.css('background-color',((!color)?'#fff':color));d.css('width','');d.hide();return d[0];},dispDiv:function(b,sv,a_id,x,y)
{if(b&&(b!==''))
{Syn.Tv.Lib.mkDiv();$('#details')[0].innerHTML=b;if(a_id)
{SYNACOR_Snap(a_id,'details',x,y);}
if(!sv)
{Syn.Tv.Lib.mkView();}
else
{$('#details').show();$('#rd_dragArea').bind('mousedown',Syn.Tv.Lib.startDrag);}}
return false;},hideDiv:function()
{show_disruptive_overlay_elements();$('#details').hide();Syn.Tv.Lib.selectView(1);$(window).unbind('resize',Syn.Tv.Lib.mkView);},startDrag:function(ev)
{var opos=$('#details').offset();Syn.Tv.Lib.dragX=ev.clientX-opos.left;Syn.Tv.Lib.dragY=ev.clientY-opos.top;$(document).bind('mousemove',Syn.Tv.Lib.moveDrag);$('#details').bind('mouseup',Syn.Tv.Lib.stopDrag);},moveDrag:function(ev)
{$('#details').css({left:(ev.clientX-Syn.Tv.Lib.dragX),top:(ev.clientY-Syn.Tv.Lib.dragY)});},stopDrag:function(ev)
{$(document).unbind('mousemove',Syn.Tv.Lib.moveDrag);$('#details').unbind('mouseup',Syn.Tv.Lib.stopDrag);},selectView:function(disp)
{if($.browser.msie&&$.browser.version.substr(0,1)<7)
{var sel=document.getElementsByTagName('select');var i;for(i=0;i<sel.length;i++)
{sel[i].style.visibility=disp?'':'hidden';}}},dvrUserValidate:function(trans_id,trans_id_t,he)
{$.fn.tvAjax({type:'GET',url:(Syn.Config.PortalRoot+'tv/rd_val_usr_xml.php'),data:{tid:trans_id,tt:trans_id_t,he:he},success:function(v_req)
{if(Syn.Tv.Lib.getXml(v_req,'status')=='SUCCESS')
{var oact=parseInt(Syn.Tv.Data.dvrServiceEnabled,10);var nact=Syn.Tv.Data.dvrServiceEnabled=(Syn.Tv.Lib.getXml(v_req,'active_status')!='inactive')?parseInt(Syn.Tv.Lib.getXml(v_req,'active_device_count'),10):0;if(nact)
{$('#dvr_menu').show();$('#rd_legend').show();if(!oact)
{$.getScript(Syn.Config.PortalRoot+'js/tv/rd_misc.packed.js');$.getScript(Syn.Config.PortalRoot+'js/tv/rd_dig.packed.js',function()
{Syn.Rd.Lib.getRecList(undefined,0,1);});var href='<link type="text/css" rel="stylesheet" href="'+Syn.Config.PortalRoot+'styles/rd_styles';$('head').append(href+'.css" />');$('head').append(href+'_dig.css" />');}
else if(oact!=nact)
{Syn.Rd.Lib.getRecList(undefined,0,1);}}
else
{$('#dvr_menu').hide();$('#rd_legend').hide();if(oact)
{Syn.Rd.Lib.abortRecList();setTimeout(Syn.Tv.Lib.dvrRemoveGridHighlight,100);}}}},dataType:'xml',cache:false});},dvrRemoveGridHighlight:function()
{Syn.Rd.Lib.getRecList(undefined,1,1,1);},getXml:function(req_dom,tag)
{return(!req_dom)?'':get_cdata(((!req_dom.responseXML)?req_dom:req_dom.responseXML),tag);},getIdxXml:function(req_dom,s_tag)
{var dom,new_dom,i;if(!req_dom)
{return'';}
dom=new_dom=(!req_dom.responseXML)?req_dom:req_dom.responseXML;for(i=2;i<arguments.length;i+=2)
{if((arguments[i]!==undefined)&&(arguments[i+1]!==undefined))
{new_dom=(new_dom===undefined)?dom:Syn.Tv.Lib.getDom(new_dom,arguments[i],parseInt(arguments[i+1],10));}}
return(new_dom!==undefined)?get_cdata(new_dom,s_tag):'';},getDom:function(req_dom,tag,idx)
{if(!req_dom)
{return undefined;}
var dom=(!req_dom.responseXML)?req_dom:req_dom.responseXML;var new_dom=dom.getElementsByTagName(tag);return((!new_dom)||(new_dom.length<(idx+1))||(!new_dom[idx]))?undefined:new_dom[idx];}};
;
