/*
 * 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")}})})();

/*
----------------------------------------------------------------------------------------------------------
FUNCIONES DE LA PÁGINA
*/

var contMensajes=0;
$(document).ready(function(){

/*gestion cabecera*/

$("#cabecera #fecha_busqueda .fecha span").before("&nbsp;-&nbsp;");

/*obtengo el Id del title*/
var elId=$("body").attr("id");
/*obtengo el Class del title*/
var elClass=$("body").attr("class");
/*creo el classId y classSubId*/
var classId="#navegacion ."+elId;
var classSubId=".sub"+elId;
var classSubSec="#navegacion_sub a."+elClass

/*muestro la barra de navegación principal correspondiente*/
var nomSubId="ul.sub"+elId;

					var thisHtml="<ul>"+$(nomSubId).html()+"</ul>";
					$("#navegacion_sub").empty();
					$(thisHtml).appendTo("#navegacion_sub");

/*quito la linea del primer elemento */
$("li:first a","#navegacion_sub").css ({borderColor:'#eee'});

/*destaco la pestanya de la seccion*/
$(classId).css ({background:'#eee',borderColor:'#eee'});
$("a:first",classId).css ({color:'#000',fontWeight:'bold'});
$(classSubSec).css ({color:'#0b4b94'});

/* Barra de navegacion principal - primer nivel de pestanyas */
	$("#cabecera #navegacion .menu_navegacion .nav").hover(function() {
					/*pongo el color de fondo a la pestanya elegida - this - y mantengo el fondo de la seccion activa */
					$(this).css ({background:'#05a'});
					$(classId).css ({background:'#eee',borderColor:'#eee' });
				},
				function(){
					/*quito el color de fondo a la pestanya elegida - this - y mantengo el fondo de la seccion activa*/
					$("#cabecera #navegacion .menu_navegacion .nav").css ({background:'#0b4b94'});
					$(classId).css ({background:'#eee',borderColor:'#eee'});
		
				}
			);

/*fin cabecera*/

$("a[rel='ampliar']").colorbox({
transition:"fade",
slideshow:true,
current: "imagen {current} de {total}",
previous: "anterior",
next: "siguiente",
close: "cerrar",
slideshowSpeed: 6000,
slideshowStart: "iniciar",
slideshowStop: "parar"
});
 $("#iconos_multimedia_cerrar").hide();
$('.boxgrid.caption').hover(function(){
$(".cover", this).stop().animate({top:'60px'},{queue:false,duration:160});
}, function() {
$(".cover", this).stop().animate({top:'86px'},{queue:false,duration:160});
});

$("#carrusel_multimedia img").click(function() {
var url_ver=this.getAttribute('rel');


$('div#destacado_multimedia').html("<div id='cargando_multimedia'></div>");
 $("div#destacado_multimedia").load(url_ver);

});
$("#carrusel_multimedia a").click(function() {
var url_ver=this.getAttribute('rel');


$('div#destacado_multimedia').html("<div id='cargando_multimedia'></div>");
 $("div#destacado_multimedia").load(url_ver);



});
$("#enlaces_multimedia a").click(function() {
 $("#carrusel_multimedia").show("slow");
 $("#iconos_multimedia").hide();
 $("#iconos_multimedia_cerrar").show();
var url_ver=this.getAttribute('rel');


$('div#destacado_multimedia').html("<div id='cargando_multimedia'></div>");
 $("div#destacado_multimedia").load(url_ver);





});
$("#iconos_multimedia a").click(function() {
var url_ver=this.getAttribute('rel');

 $("#carrusel_multimedia").show("slow");


$('div#destacado_multimedia').html("<div id='cargando_multimedia'></div>");
 $("div#destacado_multimedia").load(url_ver);

 $("#iconos_multimedia").hide();
 $("#iconos_multimedia_cerrar").show();
});
$("#iconos_multimedia_cerrar").click(function() {
 $("#carrusel_multimedia").hide("slow");
 $("#iconos_multimedia_cerrar").hide();
 $("#iconos_multimedia").show();
});

   // Interceptamos el evento submit
    $('#envio_opinion').submit(function() {
  // Enviamos el formulario usando AJAX
$('#envio_opinion_txt').empty();
$('#envio_opinion_txt').html ("<div id='opinion_respuesta'><IMG SRC='/imagenesDDN/css/cargando.gif' alt='cargando'><br /><h3>ENVIANDO<br />COMENTARIO</h3></div>")
        $.ajax({
            type: 'GET',
            url: $(this).attr('action'),
            data: $(this).serialize(),
           
            success: function(data) {
				      $('#envio_opinion_txt').hide();
                        $('#envio_opinion_txt').html(data);
						$('#envio_opinion_txt').fadeIn('slow');
            }
        })        
        return false;
    }); 

/*cierre document.ready */
});

//alert ('si');
function galeria(url_ver) {
 $("div#destacado_multimedia").load(url_ver);
}
function ver_mas(num_max) {
contMensajes++;
contarPagina ('opinion_'+contMensajes);

 $("#opinion_lectores li.bloque_"+contMensajes).show();
if (contMensajes==num_max){
 $("#opinion_lectores li.ver_mas").hide();
}
}
function ver_todos() {
	contarPagina ('opinion_todas');
 $("#opinion_lectores li.nosacar").show();
 $("#opinion_lectores li.ver_mas").hide();
 }

function contarPagina (elemento){

	var _rsCI="es-epi";
	var _rsCG="0";
	var _rsDN="//secure-uk.imrworldwide.com/";
	var _rsCC=0;
	var _rsDT=0;
	var _rsDU=0; 
	var _rsDO=0; 
	var _rsX6=0;  
	var _rsSI=escape(window.location)+escape(elemento);
	var _rsLP=location.protocol.indexOf('https')>-1?'https:':'http:';
	var _rsRP=escape(document.referrer);
	var _rsND=_rsLP+'//secure-uk.imrworldwide.com/';
		var _rsRD=(new Date()).getTime();
		var _rsSE=0;	
		var _rsSV="";
		var _rsSM=0;

$("#ojd").html("<IMG SRC=\""+_rsND+'cgi-bin/m?ci='+_rsCI+'&cg='+_rsCG+'&si='+_rsSI+'&rp='+_rsRP+"\" WIDTH=\"1\" HEIGHT=\"1\">");
$.gaTracker('UA-691110-1');
}

/*
FIN FUNCIONES DE LA PÁGINA
----------------------------------------------------------------------------------------------------------
*/

/*
----------------------------------------------------------------------------------------------------------
JQUERY GATRACKER
*/
// gaTracker: jQuery Google Analytics Integration
// A quicker, automated way to embed Google Analytics.
// (c)2007 Jason Huck/Core Five Creative
//
// Requires jQuery 1.2.x or higher (for cross-domain $.getScript)
//
// Usage:
// 
// Only a tracking code is required:
// $.gaTracker('UA-XXXXX-XX');
// 
// ...but other options can be specified:
// $.gaTracker(
//'UA-XXXXX-XX',
//{
//external:'/external/',
//mailto:'/mailto/',
//download:'/downloads/',
//extensions:[
//'pdf','doc','xls','csv','jpg','gif', 'mp3',
//'swf','txt','ppt','zip','gz','dmg','xml'
//]
//}
//);
//
// TODO: more testing, delay after $.getScript for Safari
(function($){
$.gaTracker = function(code, opts){
opts = jQuery.extend({
external:'/external/',
mailto:'/mailtos/',
download:'/downloads/',
extensions: [
'pdf','doc','xls','csv','jpg','gif', 'mp3',
'swf','txt','ppt','zip','gz','dmg','xml'
]
}, opts);

// Returns the given URL prefixed if it is:
//a) a link to an external site
//b) a mailto link
//c) a downloadable file
// ...otherwise returns an empty string.
function decorateLink(u){
var trackingURL = '';

if(u.indexOf('://') == -1 && u.indexOf('mailto:') != 0){
// no protocol or mailto - internal link - check extension
var ext = u.split('.')[u.split('.').length - 1];
var exts = opts.extensions;

for(i = 0; i < exts.length; i++){
if(ext == exts[i]){
trackingURL = opts.download + u;
break;
}
}
} else {
if(u.indexOf('mailto:') == 0){
// mailto link - decorate
trackingURL = opts.mailto + u.substring(7);
} else {
// complete URL - check domain
var regex = /([^:\/]+)*(?::\/\/)*([^:\/]+)(:[0-9]+)*\/?/i;
var linkparts = regex.exec(u);
var urlparts = regex.exec(location.href);
if(linkparts[2] != urlparts[2]) trackingURL = opts.external + u;
}
}

return trackingURL;
}

// add tracking code to the current page
function addTracking(){
_uacct = code;

urchinTracker();

// examine every link in the page
$('a').each(function(){
var u = $(this).attr('href');

if(typeof(u) != 'undefined'){
var newLink = decorateLink(u);
// if it needs to be tracked manually,
// bind a click event to call GA with
// the decorated/prefixed link
if(newLink.length){
$(this).click(function(){
urchinTracker(newLink);

});
}
}
});
}

// include the external GA script in try/catch to play nice
function initGA(){
try{
// determine whether to include the normal or SSL version
var gaURL = (location.href.indexOf('https') == 0 ? 'https://ssl' : 'http://www');
gaURL += '.google-analytics.com/urchin.js';

// include the script
$.getScript(gaURL, function(){
addTracking();
});
} catch(err) {
// log any failure
console.log('Failed to load Google Analytics:' + err);
}
}

initGA();
}
})(jQuery);
/*
FIN GATRACKER
----------------------------------------------------------------------------------------------------------
*/
/*
----------------------------------------------------------------------------------------------------------
JQUERY JCAROUSEL
*/
/**
 * jCarousel - Riding carousels with jQuery
 * http://sorgalla.com/jcarousel/
 *
 * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * Built on top of the jQuery library
 * http://jquery.com
 *
 * Inspired by the "Carousel Component" by Bill Scott
 * http://billwscott.com/carousel/
 */
(function($) {
 /**
 * Creates a carousel for all matched elements.
 *
 * @example $("#mycarousel").jcarousel();
 * @before <ul id="mycarousel" class="jcarousel-skin-name"><li>First item</li><li>Second item</li></ul>
 * @result
 *
 * <div class="jcarousel-skin-name">
 * <div class="jcarousel-container">
 * <div disabled="disabled" class="jcarousel-prev jcarousel-prev-disabled"></div>
 * <div class="jcarousel-next"></div>
 * <div class="jcarousel-clip">
 * <ul class="jcarousel-list">
 * <li class="jcarousel-item-1">First item</li>
 * <li class="jcarousel-item-2">Second item</li>
 * </ul>
 * </div>
 * </div>
 * </div>
 *
 * @name jcarousel
 * @type jQuery
 * @param Hash o A set of key/value pairs to set as configuration properties.
 * @cat Plugins/jCarousel
 */
 $.fn.jcarousel = function(o) {
 return this.each(function() {
 new $jc(this, o);
 });
 };
 // Default configuration properties.
 var defaults = {
 vertical: false,
 start: 1,
 offset: 1,
 size: null,
 scroll: 3,
 visible: null,
 animation: 'normal',
 easing: 'swing',
 auto: 0,
 wrap: null,
 initCallback: null,
 reloadCallback: null,
 itemLoadCallback: null,
 itemFirstInCallback: null,
 itemFirstOutCallback: null,
 itemLastInCallback: null,
 itemLastOutCallback: null,
 itemVisibleInCallback: null,
 itemVisibleOutCallback: null,
 buttonNextHTML: '<div></div>',
 buttonPrevHTML: '<div></div>',
 buttonNextEvent: 'click',
 buttonPrevEvent: 'click',
 buttonNextCallback: null,
 buttonPrevCallback: null
 };
 /**
 * The jCarousel object.
 *
 * @constructor
 * @name $.jcarousel
 * @param Object e The element to create the carousel for.
 * @param Hash o A set of key/value pairs to set as configuration properties.
 * @cat Plugins/jCarousel
 */
 $.jcarousel = function(e, o) {
 this.options = $.extend({}, defaults, o || {});
 this.locked = false;
 this.container = null;
 this.clip = null;
 this.list = null;
 this.buttonNext = null;
 this.buttonPrev = null;
 this.wh = !this.options.vertical ? 'width' : 'height';
 this.lt = !this.options.vertical ? 'left' : 'top';
 // Extract skin class
 var skin = '', split = e.className.split(' ');
 for (var i = 0; i < split.length; i++) {
 if (split[i].indexOf('jcarousel-skin') != -1) {
 $(e).removeClass(split[i]);
 var skin = split[i];
 break;
 }
 }
 if (e.nodeName == 'UL' || e.nodeName == 'OL') {
 this.list = $(e);
 this.container = this.list.parent();
 if (this.container.hasClass('jcarousel-clip')) {
 if (!this.container.parent().hasClass('jcarousel-container'))
 this.container = this.container.wrap('<div></div>');
 this.container = this.container.parent();
 } else if (!this.container.hasClass('jcarousel-container'))
 this.container = this.list.wrap('<div></div>').parent();
 } else {
 this.container = $(e);
 this.list = $(e).find('>ul,>ol,div>ul,div>ol');
 }
 if (skin != '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1)
 this.container.wrap('<div class=" '+ skin + '"></div>');
 this.clip = this.list.parent();
 if (!this.clip.length || !this.clip.hasClass('jcarousel-clip'))
 this.clip = this.list.wrap('<div></div>').parent();
 this.buttonPrev = $('.jcarousel-prev', this.container);
 if (this.buttonPrev.size() == 0 && this.options.buttonPrevHTML != null)
 this.buttonPrev = this.clip.before(this.options.buttonPrevHTML).prev();
 this.buttonPrev.addClass(this.className('jcarousel-prev'));
 this.buttonNext = $('.jcarousel-next', this.container);
 if (this.buttonNext.size() == 0 && this.options.buttonNextHTML != null)
 this.buttonNext = this.clip.before(this.options.buttonNextHTML).prev();
 this.buttonNext.addClass(this.className('jcarousel-next'));
 this.clip.addClass(this.className('jcarousel-clip'));
 this.list.addClass(this.className('jcarousel-list'));
 this.container.addClass(this.className('jcarousel-container'));
 var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null;
 var li = this.list.children('li');
 var self = this;
 if (li.size() > 0) {
 var wh = 0, i = this.options.offset;
 li.each(function() {
 self.format(this, i++);
 wh += self.dimension(this, di);
 });
 this.list.css(this.wh, wh + 100+'px');
 // Only set if not explicitly passed as option
 if (!o || o.size === undefined)
 this.options.size = li.size();
 }
 // For whatever reason, .show() does not work in Safari...
 this.container.css('display', 'block');
 this.buttonNext.css('display', 'block');
 this.buttonPrev.css('display', 'block');
 this.funcNext = function() { self.next(); };
 this.funcPrev = function() { self.prev(); };
 this.funcResize = function() { self.reload(); };
 if (this.options.initCallback != null)
 this.options.initCallback(this, 'init');
 if ($.browser.safari) {
 this.buttons(false, false);
 $(window).bind('load', function() { self.setup(); });
 } else
 this.setup();
 };
 // Create shortcut for internal use
 var $jc = $.jcarousel;
 $jc.fn = $jc.prototype = {
 jcarousel: '0.2.3'
 };
 $jc.fn.extend = $jc.extend = $.extend;
 $jc.fn.extend({
 /**
 * Setups the carousel.
 *
 * @name setup
 * @type undefined
 * @cat Plugins/jCarousel
 */
 setup: function() {
 this.first = null;
 this.last = null;
 this.prevFirst = null;
 this.prevLast = null;
 this.animating = false;
 this.timer = null;
 this.tail = null;
 this.inTail = false;
 if (this.locked)
 return;
 this.list.css(this.lt, this.pos(this.options.offset) + 'px');
 var p = this.pos(this.options.start);
 this.prevFirst = this.prevLast = null;
 this.animate(p, false);
 $(window).unbind('resize', this.funcResize).bind('resize', this.funcResize);
 },
 /**
 * Clears the list and resets the carousel.
 *
 * @name reset
 * @type undefined
 * @cat Plugins/jCarousel
 */
 reset: function() {
 this.list.empty();
 this.list.css(this.lt, '0px');
 this.list.css(this.wh, '10px');
 if (this.options.initCallback != null)
 this.options.initCallback(this, 'reset');
 this.setup();
 },
 /**
 * Reloads the carousel and adjusts positions.
 *
 * @name reload
 * @type undefined
 * @cat Plugins/jCarousel
 */
 reload: function() {
 if (this.tail != null && this.inTail)
 this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail);
 this.tail = null;
 this.inTail = false;
 if (this.options.reloadCallback != null)
 this.options.reloadCallback(this);
 if (this.options.visible != null) {
 var self = this;
 var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0;
 $('li', this.list).each(function(i) {
 wh += self.dimension(this, di);
 if (i + 1 < self.first)
 lt = wh;
 });
 this.list.css(this.wh, wh + 'px');
 this.list.css(this.lt, -lt + 'px');
 }
 this.scroll(this.first, false);
 },
 /**
 * Locks the carousel.
 *
 * @name lock
 * @type undefined
 * @cat Plugins/jCarousel
 */
 lock: function() {
 this.locked = true;
 this.buttons();
 },
 /**
 * Unlocks the carousel.
 *
 * @name unlock
 * @type undefined
 * @cat Plugins/jCarousel
 */
 unlock: function() {
 this.locked = false;
 this.buttons();
 },
 /**
 * Sets the size of the carousel.
 *
 * @name size
 * @type undefined
 * @param Number s The size of the carousel.
 * @cat Plugins/jCarousel
 */
 size: function(s) {
 if (s != undefined) {
 this.options.size = s;
 if (!this.locked)
 this.buttons();
 }
 return this.options.size;
 },
 /**
 * Checks whether a list element exists for the given index (or index range).
 *
 * @name get
 * @type bool
 * @param Number i The index of the (first) element.
 * @param Number i2 The index of the last element.
 * @cat Plugins/jCarousel
 */
 has: function(i, i2) {
 if (i2 == undefined || !i2)
 i2 = i;
 if (this.options.size !== null && i2 > this.options.size)
 i2 = this.options.size;
 for (var j = i; j <= i2; j++) {
 var e = this.get(j);
 if (!e.length || e.hasClass('jcarousel-item-placeholder'))
 return false;
 }
 return true;
 },
 /**
 * Returns a jQuery object with list element for the given index.
 *
 * @name get
 * @type jQuery
 * @param Number i The index of the element.
 * @cat Plugins/jCarousel
 */
 get: function(i) {
 return $('.jcarousel-item-' + i, this.list);
 },
 /**
 * Adds an element for the given index to the list.
 * If the element already exists, it updates the inner html.
 * Returns the created element as jQuery object.
 *
 * @name add
 * @type jQuery
 * @param Number i The index of the element.
 * @param String s The innerHTML of the element.
 * @cat Plugins/jCarousel
 */
 add: function(i, s) {
 var e = this.get(i), old = 0, add = 0;
 if (e.length == 0) {
 var c, e = this.create(i), j = $jc.intval(i);
 while (c = this.get(--j)) {
 if (j <= 0 || c.length) {
 j <= 0 ? this.list.prepend(e) : c.after(e);
 break;
 }
 }
 } else
 old = this.dimension(e);
 e.removeClass(this.className('jcarousel-item-placeholder'));
 typeof s == 'string' ? e.html(s) : e.empty().append(s);
 var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null;
 var wh = this.dimension(e, di) - old;
 if (i > 0 && i < this.first)
 this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px');
 this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px');
 return e;
 },
 /**
 * Removes an element for the given index from the list.
 *
 * @name remove
 * @type undefined
 * @param Number i The index of the element.
 * @cat Plugins/jCarousel
 */
 remove: function(i) {
 var e = this.get(i);
 // Check if item exists and is not currently visible
 if (!e.length || (i >= this.first && i <= this.last))
 return;
 var d = this.dimension(e);
 if (i < this.first)
 this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px');
 e.remove();
 this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px');
 },
 /**
 * Moves the carousel forwards.
 *
 * @name next
 * @type undefined
 * @cat Plugins/jCarousel
 */
 next: function() {
 this.stopAuto();
 if (this.tail != null && !this.inTail)
 this.scrollTail(false);
 else
 this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size != null && this.last == this.options.size) ? 1 : this.first + this.options.scroll);
 },
 /**
 * Moves the carousel backwards.
 *
 * @name prev
 * @type undefined
 * @cat Plugins/jCarousel
 */
 prev: function() {
 this.stopAuto();
 if (this.tail != null && this.inTail)
 this.scrollTail(true);
 else
 this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size : this.first - this.options.scroll);
 },
 /**
 * Scrolls the tail of the carousel.
 *
 * @name scrollTail
 * @type undefined
 * @param Bool b Whether scroll the tail back or forward.
 * @cat Plugins/jCarousel
 */
 scrollTail: function(b) {
 if (this.locked || this.animating || !this.tail)
 return;
 var pos = $jc.intval(this.list.css(this.lt));
 !b ? pos -= this.tail : pos += this.tail;
 this.inTail = !b;
 // Save for callbacks
 this.prevFirst = this.first;
 this.prevLast = this.last;
 this.animate(pos);
 },
 /**
 * Scrolls the carousel to a certain position.
 *
 * @name scroll
 * @type undefined
 * @param Number i The index of the element to scoll to.
 * @param Bool a Flag indicating whether to perform animation.
 * @cat Plugins/jCarousel
 */
 scroll: function(i, a) {
 if (this.locked || this.animating)
 return;
 this.animate(this.pos(i), a);
 },
 /**
 * Prepares the carousel and return the position for a certian index.
 *
 * @name pos
 * @type Number
 * @param Number i The index of the element to scoll to.
 * @cat Plugins/jCarousel
 */
 pos: function(i) {
 if (this.locked || this.animating)
 return;
 if (this.options.wrap != 'circular')
 i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i);
 var back = this.first > i;
 var pos = $jc.intval(this.list.css(this.lt));
 // Create placeholders, new list width/height
 // and new list position
 var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first;
 var c = back ? this.get(f) : this.get(this.last);
 var j = back ? f : f - 1;
 var e = null, l = 0, p = false, d = 0;
 while (back ? --j >= i : ++j < i) {
 e = this.get(j);
 p = !e.length;
 if (e.length == 0) {
 e = this.create(j).addClass(this.className('jcarousel-item-placeholder'));
 c[back ? 'before' : 'after' ](e);
 }
 c = e;
 d = this.dimension(e);
 if (p)
 l += d;
 if (this.first != null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size == null || j <= this.options.size))))
 pos = back ? pos + d : pos - d;
 }
 // Calculate visible items
 var clipping = this.clipping();
 var cache = [];
 var visible = 0, j = i, v = 0;
 var c = this.get(i - 1);
 while (++visible) {
 e = this.get(j);
 p = !e.length;
 if (e.length == 0) {
 e = this.create(j).addClass(this.className('jcarousel-item-placeholder'));
 // This should only happen on a next scroll
 c.length == 0 ? this.list.prepend(e) : c[back ? 'before' : 'after' ](e);
 }
 c = e;
 var d = this.dimension(e);
 if (d == 0) {
 alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...');
 return 0;
 }
 if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size)
 cache.push(e);
 else if (p)
 l += d;
 v += d;
 if (v >= clipping)
 break;
 j++;
 }
 // Remove out-of-range placeholders
 for (var x = 0; x < cache.length; x++)
 cache[x].remove();
 // Resize list
 if (l > 0) {
 this.list.css(this.wh, this.dimension(this.list) + l + 'px');
 if (back) {
 pos -= l;
 this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px');
 }
 }
 // Calculate first and last item
 var last = i + visible - 1;
 if (this.options.wrap != 'circular' && this.options.size && last > this.options.size)
 last = this.options.size;
 if (j > last) {
 visible = 0, j = last, v = 0;
 while (++visible) {
 var e = this.get(j--);
 if (!e.length)
 break;
 v += this.dimension(e);
 if (v >= clipping)
 break;
 }
 }
 var first = last - visible + 1;
 if (this.options.wrap != 'circular' && first < 1)
 first = 1;
 if (this.inTail && back) {
 pos += this.tail;
 this.inTail = false;
 }
 this.tail = null;
 if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) {
 var m = $jc.margin(this.get(last), !this.options.vertical ? 'marginRight' : 'marginBottom');
 if ((v - m) > clipping)
 this.tail = v - clipping - m;
 }
 // Adjust position
 while (i-- > first)
 pos += this.dimension(this.get(i));
 // Save visible item range
 this.prevFirst = this.first;
 this.prevLast = this.last;
 this.first = first;
 this.last = last;
 return pos;
 },
 /**
 * Animates the carousel to a certain position.
 *
 * @name animate
 * @type undefined
 * @param mixed p Position to scroll to.
 * @param Bool a Flag indicating whether to perform animation.
 * @cat Plugins/jCarousel
 */
 animate: function(p, a) {
 if (this.locked || this.animating)
 return;
 this.animating = true;
 var self = this;
 var scrolled = function() {
 self.animating = false;
 if (p == 0)
 self.list.css(self.lt, 0);
 if (self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size == null || self.last < self.options.size)
 self.startAuto();
 self.buttons();
 self.notify('onAfterAnimation');
 };
 this.notify('onBeforeAnimation');
 // Animate
 if (!this.options.animation || a == false) {
 this.list.css(this.lt, p + 'px');
 scrolled();
 } else {
 var o = !this.options.vertical ? {'left': p} : {'top': p};
 this.list.animate(o, this.options.animation, this.options.easing, scrolled);
 }
 },
 /**
 * Starts autoscrolling.
 *
 * @name auto
 * @type undefined
 * @param Number s Seconds to periodically autoscroll the content.
 * @cat Plugins/jCarousel
 */
 startAuto: function(s) {
 if (s != undefined)
 this.options.auto = s;
 if (this.options.auto == 0)
 return this.stopAuto();
 if (this.timer != null)
 return;
 var self = this;
 this.timer = setTimeout(function() { self.next(); }, this.options.auto * 1000);
 },
 /**
 * Stops autoscrolling.
 *
 * @name stopAuto
 * @type undefined
 * @cat Plugins/jCarousel
 */
 stopAuto: function() {
 if (this.timer == null)
 return;
 clearTimeout(this.timer);
 this.timer = null;
 },
 /**
 * Sets the states of the prev/next buttons.
 *
 * @name buttons
 * @type undefined
 * @cat Plugins/jCarousel
 */
 buttons: function(n, p) {
 if (n == undefined || n == null) {
 var n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size == null || this.last < this.options.size);
 if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size != null && this.last >= this.options.size)
 n = this.tail != null && !this.inTail;
 }
 if (p == undefined || p == null) {
 var p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1);
 if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size != null && this.first == 1)
 p = this.tail != null && this.inTail;
 }
 var self = this;
 this.buttonNext[n ? 'bind' : 'unbind'](this.options.buttonNextEvent, this.funcNext)[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true);
 this.buttonPrev[p ? 'bind' : 'unbind'](this.options.buttonPrevEvent, this.funcPrev)[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true);
 if (this.buttonNext.length > 0 && (this.buttonNext[0].jcarouselstate == undefined || this.buttonNext[0].jcarouselstate != n) && this.options.buttonNextCallback != null) {
 this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); });
 this.buttonNext[0].jcarouselstate = n;
 }
 if (this.buttonPrev.length > 0 && (this.buttonPrev[0].jcarouselstate == undefined || this.buttonPrev[0].jcarouselstate != p) && this.options.buttonPrevCallback != null) {
 this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); });
 this.buttonPrev[0].jcarouselstate = p;
 }
 },
 notify: function(evt) {
 var state = this.prevFirst == null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev');
 // Load items
 this.callback('itemLoadCallback', evt, state);
 if (this.prevFirst !== this.first) {
 this.callback('itemFirstInCallback', evt, state, this.first);
 this.callback('itemFirstOutCallback', evt, state, this.prevFirst);
 }
 if (this.prevLast !== this.last) {
 this.callback('itemLastInCallback', evt, state, this.last);
 this.callback('itemLastOutCallback', evt, state, this.prevLast);
 }
 this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast);
 this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last);
 },
 callback: function(cb, evt, state, i1, i2, i3, i4) {
 if (this.options[cb] == undefined || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation'))
 return;
 var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb];
 if (!$.isFunction(callback))
 return;
 var self = this;
 if (i1 === undefined)
 callback(self, state, evt);
 else if (i2 === undefined)
 this.get(i1).each(function() { callback(self, this, i1, state, evt); });
 else {
 for (var i = i1; i <= i2; i++)
 if (i !== null && !(i >= i3 && i <= i4))
 this.get(i).each(function() { callback(self, this, i, state, evt); });
 }
 },
 create: function(i) {
 return this.format('<li></li>', i);
 },
 format: function(e, i) {
 var $e = $(e).addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i));
 $e.attr('jcarouselindex', i);
 return $e;
 },
 className: function(c) {
 return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical');
 },
 dimension: function(e, d) {
 var el = e.jquery != undefined ? e[0] : e;
 var old = !this.options.vertical ?
 el.offsetWidth + $jc.margin(el, 'marginLeft') + $jc.margin(el, 'marginRight') :
 el.offsetHeight + $jc.margin(el, 'marginTop') + $jc.margin(el, 'marginBottom');
 if (d == undefined || old == d)
 return old;
 var w = !this.options.vertical ?
 d - $jc.margin(el, 'marginLeft') - $jc.margin(el, 'marginRight') :
 d - $jc.margin(el, 'marginTop') - $jc.margin(el, 'marginBottom');
 $(el).css(this.wh, w + 'px');
 return this.dimension(el);
 },
 clipping: function() {
 return !this.options.vertical ?
 this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) :
 this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth'));
 },
 index: function(i, s) {
 if (s == undefined)
 s = this.options.size;
 return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1;
 }
 });
 $jc.extend({
 /**
 * Gets/Sets the global default configuration properties.
 *
 * @name defaults
 * @descr Gets/Sets the global default configuration properties.
 * @type Hash
 * @param Hash d A set of key/value pairs to set as configuration properties.
 * @cat Plugins/jCarousel
 */
 defaults: function(d) {
 return $.extend(defaults, d || {});
 },
 margin: function(e, p) {
 if (!e)
 return 0;
 var el = e.jquery != undefined ? e[0] : e;
 if (p == 'marginRight' && $.browser.safari) {
 var old = {'display': 'block', 'float': 'none', 'width': 'auto'}, oWidth, oWidth2;
 $.swap(el, old, function() { oWidth = el.offsetWidth; });
 old['marginRight'] = 0;
 $.swap(el, old, function() { oWidth2 = el.offsetWidth; });
 return oWidth2 - oWidth;
 }
 return $jc.intval($.css(el, p));
 },
 intval: function(v) {
 v = parseInt(v);
 return isNaN(v) ? 0 : v;
 }
 });
})(jQuery);
/*
FIN JCAROUSEL
----------------------------------------------------------------------------------------------------------
*/
/*
----------------------------------------------------------------------------------------------------------
JQUERY COLORBOX
*/
// ColorBox v1.3.6 - a full featured, light-weight, customizable lightbox based on jQuery 1.3
// c) 2009 Jack Moore - www.colorpowered.com - jack@colorpowered.com
// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
(function ($) {
// Shortcuts (to increase compression)
var colorbox = 'colorbox',
hover = 'hover',
TRUE = true,
FALSE = false,
cboxPublic,
isIE = !$.support.opacity,
isIE6 = isIE && !window.XMLHttpRequest,
// Event Strings (to increase compression)
cbox_open = 'cbox_open',
cbox_load = 'cbox_load',
cbox_complete = 'cbox_complete',
cbox_cleanup = 'cbox_cleanup',
cbox_closed = 'cbox_closed',
cbox_resize = 'resize.cbox_resize',
// Cached jQuery Object Variables
$overlay,
$cbox,
$wrap,
$content,
$topBorder,
$leftBorder,
$rightBorder,
$bottomBorder,
$related,
$window,
$loaded,
$loadingBay,
$loadingOverlay,
$loadingGraphic,
$title,
$current,
$slideshow,
$next,
$prev,
$close,
// Variables for cached values or use across multiple functions
interfaceHeight,
interfaceWidth,
loadedHeight,
loadedWidth,
element,
bookmark,
index,
settings,
open,
active,

// ColorBox Default Settings.
// See http://colorpowered.com/colorbox for details.
defaults = {
transition: "elastic",
speed: 350,
width: FALSE,
height: FALSE,
innerWidth: FALSE,
innerHeight: FALSE,
initialWidth: "400",
initialHeight: "400",
maxWidth: FALSE,
maxHeight: FALSE,
scalePhotos: TRUE,
scrolling: TRUE,
inline: FALSE,
html: FALSE,
iframe: FALSE,
photo: FALSE,
href: FALSE,
title: FALSE,
rel: FALSE,
opacity: 0.9,
preloading: TRUE,
current: "image {current} of {total}",
previous: "previous",
next: "next",
close: "close",
open: FALSE,
overlayClose: TRUE,

slideshow: FALSE,
slideshowAuto: TRUE,
slideshowSpeed: 2500,
slideshowStart: "start slideshow",
slideshowStop: "stop slideshow",

onOpen: FALSE,
onLoad: FALSE,
onComplete: FALSE,
onCleanup: FALSE,
onClosed: FALSE
};

// ****************
// HELPER FUNCTIONS
// ****************

// Convert % values to pixels
function setSize(size, dimension) {
dimension = dimension === 'x' ? $window.width() : $window.height();//document.documentElement.clientWidth : document.documentElement.clientHeight;
return (typeof size === 'string') ? Math.round((size.match(/%/) ? (dimension / 100) * parseInt(size, 10) : parseInt(size, 10))) : size;
}
// Checks an href to see if it is a photo.
// There is a force photo option (photo: true) for hrefs that cannot be matched by this regex.
function isImage(url) {
url = $.isFunction(url) ? url.call(element) : url;
return settings.photo || url.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i);
}

// Assigns functions results to their respective settings. This allows functions to be used to set ColorBox options.
function process() {
for (var i in settings) {
if ($.isFunction(settings[i]) && i.substring(0, 2) !== 'on') { // checks to make sure the function isn't one of the callbacks, they will be handled at the appropriate time.
 settings[i] = settings[i].call(element);

}
}
settings.rel = settings.rel || element.rel;
//alert (settings[0]);
settings.href = settings.href || element.href;
settings.title = settings.title || element.title;
}
function launch(elem) {
// desactiva los bloques de publicidad para evitar conflicto con banners flash
$(".bloque_publicidad").hide ();



element = elem;

settings = $(element).data(colorbox);

process(); // Convert functions to their returned values.

if (settings.rel && settings.rel !== 'nofollow') {
$related = $('.cboxElement').filter(function () {
var relRelated = $(this).data(colorbox).rel || this.rel;
var titRelated = $(this).data(colorbox).title || this.title;

return (relRelated === settings.rel);
});
index = $related.index(element);

// Check direct calls to ColorBox.
if (index < 0) {
$related = $related.add(element);
index = $related.length - 1;
}
} else {
$related = $(element);
index = 0;
}

if (!open) {
open = TRUE;

active = TRUE; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.

bookmark = element;

bookmark.blur(); // Remove the focus from the calling element.

// Set Navigation Key Bindings
$(document).bind("keydown.cbox_close", function (e) {
if (e.keyCode === 27) {
e.preventDefault();
cboxPublic.close();
}
}).bind("keydown.cbox_arrows", function (e) {
if ($related.length > 1) {
if (e.keyCode === 37) {
e.preventDefault();
$prev.click();
} else if (e.keyCode === 39) {
e.preventDefault();
$next.click();
}
}
});

if (settings.overlayClose) {
$overlay.css({"cursor": "pointer"}).one('click', cboxPublic.close);
}

$.event.trigger(cbox_open);
if (settings.onOpen) {
settings.onOpen.call(element);
}

$overlay.css({"opacity": settings.opacity}).show();

// Opens inital empty ColorBox prior to content being loaded.
settings.w = setSize(settings.initialWidth, 'x');
settings.h = setSize(settings.initialHeight, 'y');
cboxPublic.position(0);

if (isIE6) {
$window.bind('resize.cboxie6 scroll.cboxie6', function () {
$overlay.css({width: $window.width(), height: $window.height(), top: $window.scrollTop(), left: $window.scrollLeft()});
}).trigger("scroll.cboxie6");
}
}

$current.add($prev).add($next).add($slideshow).add($title).hide();

$close.html(settings.close).show();

cboxPublic.slideshow();

cboxPublic.load();
}
// ****************
// PUBLIC FUNCTIONS
// Usage format: $.fn.colorbox.close();
// Usage from within an iframe: parent.$.fn.colorbox.close();
// ****************

cboxPublic = $.fn.colorbox = function (options, callback) {
var $this = this;

if (!$this.length) {
if ($this.selector === '') { // empty selector means a direct call, ie: $.fn.colorbox();
$this = $('<a/>');
options.open = TRUE;
} else { // else the selector didn't match anything, and colorbox should go ahead and return.
return this;
}
}

$this.each(function () {
var data = $.extend({}, $(this).data(colorbox) ? $(this).data(colorbox) : defaults, options);

$(this).data(colorbox, data).addClass("cboxElement");

if (callback) {
$(this).data(colorbox).onComplete = callback;
}
});

if (options && options.open) {
launch($this);
}

return this;
};
// Initialize ColorBox: store common calculations, preload the interface graphics, append the html.
// This preps colorbox for a speedy open when clicked, and lightens the burdon on the browser by only
// having to run once, instead of each time colorbox is opened.
cboxPublic.init = function () {

// jQuery object generator to save a bit of space
function $div(id) {
return $('<div id="cbox' + id + '"/>');
}

// Create & Append jQuery Objects
$window = $(window);
$cbox = $('<div id="colorbox"/>');
$overlay = $div("Overlay").hide();
$wrap = $div("Wrapper");
$content = $div("Content").append(
$loaded = $div("LoadedContent").css({width: 0, height: 0}),
$loadingOverlay = $div("LoadingOverlay"),
$loadingGraphic = $div("LoadingGraphic"),
$title = $div("Title"),
$current = $div("Current"),
$slideshow = $div("Slideshow"),
$next = $div("Next"),
$prev = $div("Previous"),
$close = $div("Close")
);
$wrap.append( // The 3x3 Grid that makes up ColorBox
$('<div/>').append(
$div("TopLeft"),
$topBorder = $div("TopCenter"),
$div("TopRight")
),
$('<div/>').append(
$leftBorder = $div("MiddleLeft"),
$content,
$rightBorder = $div("MiddleRight")
),
$('<div/>').append(
$div("BottomLeft"),
$bottomBorder = $div("BottomCenter"),
$div("BottomRight")
)
).children().children().css({'float': 'left'});

$loadingBay = $("<div style='position:absolute; top:0; left:0; width:9999px; height:0;'/>");

$('body').prepend($overlay, $cbox.append($wrap, $loadingBay));

if (isIE) {
$cbox.addClass('cboxIE');
if (isIE6) {
$overlay.css('position', 'absolute');
}
}

// Add rollover event to navigation elements
$content.children()
.bind('mouseover mouseout', function(){
$(this).toggleClass(hover);
}).addClass(hover);

// Cache values needed for size calculations
interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(TRUE) - $content.height();//Subtraction needed for IE6
interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(TRUE) - $content.width();
loadedHeight = $loaded.outerHeight(TRUE);
loadedWidth = $loaded.outerWidth(TRUE);

// Setting padding to remove the need to do size conversions during the animation step.
$cbox.css({"padding-bottom": interfaceHeight, "padding-right": interfaceWidth}).hide();

// Setup button & key events.
$next.click(cboxPublic.next);
$prev.click(cboxPublic.prev);
$close.click(cboxPublic.close);

// Adding the 'hover' class allowed the browser to load the hover-state
// background graphics. The class can now can be removed.
$content.children().removeClass(hover);

$('.cboxElement').live('click', function (e) {
if (e.button !== 0 && typeof e.button !== 'undefined') {// checks to see if it was a non-left mouse-click.
return TRUE;
} else {
launch(this);
return FALSE;
}
});
};
cboxPublic.position = function (speed, loadedCallback) {
var
animate_speed,
winHeight = $window.height(),
// keeps the top and left positions within the browser's viewport.
posTop = Math.max(winHeight - settings.h - loadedHeight - interfaceHeight,0)/2 + $window.scrollTop(),
posLeft = Math.max(document.documentElement.clientWidth - settings.w - loadedWidth - interfaceWidth,0)/2 + $window.scrollLeft();

// setting the speed to 0 to reduce the delay between same-sized content.
animate_speed = ($cbox.width() === settings.w+loadedWidth && $cbox.height() === settings.h+loadedHeight) ? 0 : speed;

// this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
// but it has to be shrank down around the size of div#colorbox when it's done. If not,
// it can invoke an obscure IE bug when using iframes.
$wrap[0].style.width = $wrap[0].style.height = "9999px";

function modalDimensions (that) {
// loading overlay size has to be sure that IE6 uses the correct height.
$topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = that.style.width;
$loadingGraphic[0].style.height = $loadingOverlay[0].style.height = $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = that.style.height;
}

$cbox.dequeue().animate({width:settings.w+loadedWidth, height:settings.h+loadedHeight, top:posTop, left:posLeft}, {duration: animate_speed,
complete: function(){
modalDimensions(this);

active = FALSE;

// shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
$wrap[0].style.width = (settings.w+loadedWidth+interfaceWidth) + "px";
$wrap[0].style.height = (settings.h+loadedHeight+interfaceHeight) + "px";

if (loadedCallback) {loadedCallback();}
},
step: function(){
modalDimensions(this);
}
});
};
cboxPublic.resize = function (object) {
if(!open){ return; }

var topMargin,
prev,
prevSrc,
next,
nextSrc,
photo,
timeout,
speed = settings.transition==="none" ? 0 : settings.speed;

$window.unbind(cbox_resize);

if(!object){
timeout = setTimeout(function(){ // timer allows IE to render the dimensions before attempting to calculate the height
var $child = $loaded.wrapInner("<div style='overflow:auto'></div>").children(); // temporary wrapper to get an accurate estimate of just how high the total content should be.
settings.h = $child.height();
$loaded.css({height:settings.h});
$child.replaceWith($child.children()); // ditch the temporary wrapper div used in height calculation
cboxPublic.position(speed);
}, 1);
return;
}

$loaded.remove();
$loaded = $('<div id="cboxLoadedContent"/>').html(object);

function getWidth(){
settings.w = settings.w || $loaded.width();
settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
return settings.w;
}
function getHeight(){
settings.h = settings.h || $loaded.height();
settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
return settings.h;
}

$loaded.hide()
.appendTo($loadingBay)// content has to be appended to the DOM for accurate size calculations. Appended to an absolutely positioned element, rather than BODY, which avoids an extremely brief display of the vertical scrollbar in Firefox that can occur for a small minority of websites.
.css({width:getWidth(), overflow:settings.scrolling ? 'auto' : 'hidden'})
.css({height:getHeight()})// sets the height independently from the width in case the new width influences the value of height.
.prependTo($content);

$('#cboxPhoto').css({cssFloat:'none'});// floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.

// Hides SELECT elements in IE6 because they would otherwise sit on top of the overlay.
if (isIE6) {
$('select:not(#colorbox select)').filter(function(){
return this.style.visibility !== 'hidden';
}).css({'visibility':'hidden'}).one(cbox_cleanup, function(){
this.style.visibility = 'inherit';
});
}

function setPosition (s) {
cboxPublic.position(s, function(){
if (!open) { return; }

if (isIE) {
//This fadeIn helps the bicubic resampling to kick-in.
if( photo ){$loaded.fadeIn(100);}
//IE adds a filter when ColorBox fades in and out that can cause problems if the loaded content contains transparent pngs.
$cbox[0].style.removeAttribute("filter");
}

//Waited until the iframe is added to the DOM & it is visible before setting the src.
//This increases compatability with pages using DOM dependent JavaScript.
if(settings.iframe){
$loaded.append("<iframe id='cboxIframe'" + (settings.scrolling ? " " : "scrolling='no'") + " name='iframe_"+new Date().getTime()+"' frameborder=0 src='"+settings.href+"' " + (isIE ? "allowtransparency='true'" : '') + " />");
}

$loaded.show();

$title.show().html(settings.title);
//$title.show().html($this.getAttribute('title'));


if ($related.length>1) {
$current.html(settings.current.replace(/\{current\}/, index+1).replace(/\{total\}/, $related.length)).show();
$next.html(settings.next).show();
$prev.html(settings.previous).show();

if(settings.slideshow){
$slideshow.show();
}
}

$loadingOverlay.hide();
$loadingGraphic.hide();

$.event.trigger(cbox_complete);
if (settings.onComplete) {
settings.onComplete.call(element);
}

if (settings.transition === 'fade'){
$cbox.fadeTo(speed, 1, function(){
if(isIE){$cbox[0].style.removeAttribute("filter");}
});
}

$window.bind(cbox_resize, function(){
cboxPublic.position(0);
});
});
}

if((settings.transition === 'fade' && $cbox.fadeTo(speed, 0, function(){setPosition(0);})) || setPosition(speed)){}

// Preloads images within a rel group
if (settings.preloading && $related.length>1) {
prev = index > 0 ? $related[index-1] : $related[$related.length-1];
next = index < $related.length-1 ? $related[index+1] : $related[0];
nextSrc = $(next).data(colorbox).href || next.href;
prevSrc = $(prev).data(colorbox).href || prev.href;

if(isImage(nextSrc)){
$('<img />').attr('src', nextSrc);
}

if(isImage(prevSrc)){
$('<img />').attr('src', prevSrc);
}
}
};
cboxPublic.load = function () {
var href, img, setResize, resize = cboxPublic.resize;

active = TRUE;

/*
 
// I decided to comment this out because I can see it causing problems as users
// really should just set the dimensions on their IMG elements instead,
// but I'm leaving the code in as it may be useful to someone.
// To use, uncomment the function and change 'if(textStatus === "success"){ resize(this); }'
// to 'if(textStatus === "success"){ preload(this); }'

// Preload loops through the HTML to find IMG elements and loads their sources.
// This allows the resize method to accurately estimate the dimensions of the new content.
function preload(html){
var
$ajax = $(html),
$imgs = $ajax.find('img'),
x = $imgs.length;

function loadloop(){
var img = new Image();
x = x-1;
if(x >= 0){
img.onload = loadloop;
img.src = $imgs[x].src;
} else {
resize($ajax);
}
}

loadloop();
}
*/

element = $related[index];

settings = $(element).data(colorbox);

//convert functions to static values
process();

$.event.trigger(cbox_load);
if (settings.onLoad) {
settings.onLoad.call(element);
}

// Evaluate the height based on the optional height and width settings.
settings.h = settings.height ?
setSize(settings.height, 'y') - loadedHeight - interfaceHeight :
settings.innerHeight ?
setSize(settings.innerHeight, 'y') :
FALSE;
settings.w = settings.width ?
setSize(settings.width, 'x') - loadedWidth - interfaceWidth :
settings.innerWidth ?
setSize(settings.innerWidth, 'x') :
FALSE;

// Sets the minimum dimensions for use in image scaling
settings.mw = settings.w;
settings.mh = settings.h;

// Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
// If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
if(settings.maxWidth){
settings.mw = setSize(settings.maxWidth, 'x') - loadedWidth - interfaceWidth;
settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
}
if(settings.maxHeight){
settings.mh = setSize(settings.maxHeight, 'y') - loadedHeight - interfaceHeight;
settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
}

href = settings.href;

$loadingOverlay.show();
$loadingGraphic.show();

if (settings.inline) {
// Inserts an empty placeholder where inline content is being pulled from.
// An event is bound to put inline content back when ColorBox closes or loads new content.
$('<div id="cboxInlineTemp" />').hide().insertBefore($(href)[0]).bind(cbox_load+' '+cbox_cleanup, function(){
$(this).replaceWith($loaded.children());
});
resize($(href));
} else if (settings.iframe) {
// IFrame element won't be added to the DOM until it is ready to be displayed,
// to avoid problems with DOM-ready JS that might be trying to run in that iframe.
resize(" ");
} else if (settings.html) {
resize(settings.html);
} else if (isImage(href)){
img = new Image();
img.onload = function(){
var percent;

img.onload = null;

img.id = 'cboxPhoto';

$(img).css({margin:'auto', border:'none', display:'block', cssFloat:'left'});

if(settings.scalePhotos){
setResize = function(){
img.height -= img.height * percent;
img.width -= img.width * percent;
};
if(settings.mw && img.width > settings.mw){
percent = (img.width - settings.mw) / img.width;
setResize();
}
if(settings.mh && img.height > settings.mh){
percent = (img.height - settings.mh) / img.height;
setResize();
}
}

if (settings.h) {
img.style.marginTop = Math.max(settings.h - img.height,0)/2 + 'px';
}

resize(img);

if($related.length > 1){
$(img).css({cursor:'pointer'}).click(cboxPublic.next);
}

if(isIE){
img.style.msInterpolationMode='bicubic';
}
};

//carga OJD
var _rsCI="es-epi";
var _rsCG="0";
var _rsDN="//secure-uk.imrworldwide.com/";
var _rsCC=0;
var _rsDT=0;
var _rsDU=0; 
var _rsDO=0; 
var _rsX6=0; 
var _rsSI=escape(window.location+'&foto='+href);
var _rsLP=location.protocol.indexOf('https')>-1?'https:':'http:';
var _rsRP=escape(document.referrer);
var _rsND=_rsLP+'//secure-uk.imrworldwide.com/';
var _rsRD=(new Date()).getTime();
var _rsSE=0;
var _rsSV="";
var _rsSM=0;
$("#ojd").html("<IMG SRC=\""+_rsND+'cgi-bin/m?ci='+_rsCI+'&cg='+_rsCG+'&si='+_rsSI+'&rp='+_rsRP+"\" WIDTH=\"1\" HEIGHT=\"1\">");
$.gaTracker('UA-691110-1');
//alert (_rsSI);
img.src = href;
} else {
$('<div />').appendTo($loadingBay).load(href, function(data, textStatus){
if(textStatus === "success"){

resize(this);
} else {
resize($("<p>Request unsuccessful.</p>"));
}
});
}
};
// Navigates to the next page/image in a set.
cboxPublic.next = function () {
if(!active){
index = index < $related.length-1 ? index+1 : 0;
cboxPublic.load();
}
};

cboxPublic.prev = function () {
if(!active){
index = index > 0 ? index-1 : $related.length-1;
cboxPublic.load();
}
};
cboxPublic.slideshow = function () {
var stop, timeOut, className = 'cboxSlideshow_';

$slideshow.bind(cbox_closed, function(){
$slideshow.unbind();
clearTimeout(timeOut);
$cbox.removeClass(className+"off"+" "+className+"on");
});

function start(){
$slideshow
.text(settings.slideshowStop)
.bind(cbox_complete, function(){
timeOut = setTimeout(cboxPublic.next, settings.slideshowSpeed);
})
.bind(cbox_load, function(){
clearTimeout(timeOut);
}).one("click", function(){
stop();
$(this).removeClass(hover);
});
$cbox.removeClass(className+"off").addClass(className+"on");
}

stop = function(){
clearTimeout(timeOut);
$slideshow
.text(settings.slideshowStart)
.unbind(cbox_complete+' '+cbox_load)
.one("click", function(){
start();
timeOut = setTimeout(cboxPublic.next, settings.slideshowSpeed);
$(this).removeClass(hover);
});
$cbox.removeClass(className+"on").addClass(className+"off");
};

if(settings.slideshow && $related.length>1){
if(settings.slideshowAuto){
start();
} else {
stop();
}
}
};
// Note: to use this within an iframe use the following format: parent.$.fn.colorbox.close();
cboxPublic.close = function () {
//activa los bloques de publicidad para evitar conflicto con banners flash
$(".bloque_publicidad").show ();
$.event.trigger(cbox_cleanup);
if (settings.onCleanup) {
settings.onCleanup.call(element);
}

open = FALSE;
$(document).unbind("keydown.cbox_close keydown.cbox_arrows");
$window.unbind(cbox_resize+' resize.cboxie6 scroll.cboxie6');
$overlay.css({cursor: 'auto'}).fadeOut('fast');

$cbox
.stop(TRUE, FALSE)
.fadeOut('fast', function () {
$('#colorbox iframe').attr('src', 'about:blank');
$loaded.remove();
$cbox.css({'opacity': 1});

try{
bookmark.focus();
} catch (er){
// do nothing
}

$.event.trigger(cbox_closed);
if (settings.onClosed) {
settings.onClosed.call(element);
}
});
};
// A method for fetching the current element ColorBox is referencing.
// returns a jQuery object.
cboxPublic.element = function(){ return $(element); };
cboxPublic.settings = defaults;
// Initializes ColorBox when the DOM has loaded
$(cboxPublic.init);
}(jQuery));
/*
FIN COLORBOX
----------------------------------------------------------------------------------------------------------
*/
/*
----------------------------------------------------------------------------------------------------------
SWFOBJECT
*/
/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
/*
FIN SWFOBJECT
----------------------------------------------------------------------------------------------------------
*/
/*
----------------------------------------------------------------------------------------------------------
WEBTOOLKIT BASE64
*/
/**
*
* Base64 encode / decode
* http://www.webtoolkit.info/
*
**/
var Base64 = {
// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/-",
// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = Base64._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
return output;
},
// public method for decoding
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\-]/g, "");
while (i < input.length) {
enc1 = this._keyStr.indexOf(input.charAt(i++));
enc2 = this._keyStr.indexOf(input.charAt(i++));
enc3 = this._keyStr.indexOf(input.charAt(i++));
enc4 = this._keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = Base64._utf8_decode(output);
return output;
},
// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
/*
FIN WEBTOOLKIT BASE64
----------------------------------------------------------------------------------------------------------
*/

/*
----------------------------------------------------------------------------------------------------------
JQUERY TIMERS
*/

jQuery.fn.extend({
	everyTime: function(interval, label, fn, times, belay) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, times, belay);
		});
	},
	oneTime: function(interval, label, fn) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, 1);
		});
	},
	stopTime: function(label, fn) {
		return this.each(function() {
			jQuery.timer.remove(this, label, fn);
		});
	}
});

jQuery.extend({
	timer: {
		guid: 1,
		global: {},
		regex: /^([0-9]+)\s*(.*s)?$/,
		powers: {
			// Yeah this is major overkill...
			'ms': 1,
			'cs': 10,
			'ds': 100,
			's': 1000,
			'das': 10000,
			'hs': 100000,
			'ks': 1000000
		},
		timeParse: function(value) {
			if (value == undefined || value == null)
				return null;
			var result = this.regex.exec(jQuery.trim(value.toString()));
			if (result[2]) {
				var num = parseInt(result[1], 10);
				var mult = this.powers[result[2]] || 1;
				return num * mult;
			} else {
				return value;
			}
		},
		add: function(element, interval, label, fn, times, belay) {
			var counter = 0;
			
			if (jQuery.isFunction(label)) {
				if (!times) 
					times = fn;
				fn = label;
				label = interval;
			}
			
			interval = jQuery.timer.timeParse(interval);

			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
				return;

			if (times && times.constructor != Number) {
				belay = !!times;
				times = 0;
			}
			
			times = times || 0;
			belay = belay || false;
			
			if (!element.$timers) 
				element.$timers = {};
			
			if (!element.$timers[label])
				element.$timers[label] = {};
			
			fn.$timerID = fn.$timerID || this.guid++;
			
			var handler = function() {
				if (belay && this.inProgress) 
					return;
				this.inProgress = true;
				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
					jQuery.timer.remove(element, label, fn);
				this.inProgress = false;
			};
			
			handler.$timerID = fn.$timerID;
			
			if (!element.$timers[label][fn.$timerID]) 
				element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);
			
			if ( !this.global[label] )
				this.global[label] = [];
			this.global[label].push( element );
			
		},
		remove: function(element, label, fn) {
			var timers = element.$timers, ret;
			
			if ( timers ) {
				
				if (!label) {
					for ( label in timers )
						this.remove(element, label, fn);
				} else if ( timers[label] ) {
					if ( fn ) {
						if ( fn.$timerID ) {
							window.clearInterval(timers[label][fn.$timerID]);
							delete timers[label][fn.$timerID];
						}
					} else {
						for ( var fn in timers[label] ) {
							window.clearInterval(timers[label][fn]);
							delete timers[label][fn];
						}
					}
					
					for ( ret in timers[label] ) break;
					if ( !ret ) {
						ret = null;
						delete timers[label];
					}
				}
				
				for ( ret in timers ) break;
				if ( !ret ) 
					element.$timers = null;
			}
		}
	}
});

if (jQuery.browser.msie)
	jQuery(window).one("unload", function() {
		var global = jQuery.timer.global;
		for ( var label in global ) {
			var els = global[label], i = els.length;
			while ( --i )
				jQuery.timer.remove(els[i], label);
		}
	});

/*
FIN JQUERY TIMERS
----------------------------------------------------------------------------------------------------------
*/

/*
JQUERY GOOGLEMAP
----------------------------------------------------------------------------------------------------------
*/
/**
 * jquery.googlemap v1.0.0
 *
 * Copyright David Hong 2009
 * http://davidhong.id.au/jquery/google/maps/
 *
 * Simplified Google Maps API integrated into jQuery
 *
 * Launched: <TBA>
 * Version: v1.0.0 (27/02/2009 15:59 AEDST)
 * 
 * SIMPLE USAGE:
 * 
 * $("google-map-canvas").googlemap({
 *     controls: false,
 *     labels: true,
 *     addresses: [
 *         "1 ABC St, NSW Australia",
 *         "2 XYZ St, NSW Australia"
 *     ]
 * });
 * 
 **/
  
(function($) {
    
    // fireEvent(opts, fn, self, arg)
    //     opts:    (json) jQuery options for this plugin
    //     fn:      (function) function to run
    //     self:    (object) this
    //     arg:     (object) argument to feed to function (fn)
    //
    // note: fn should always return true on successful runs, otherwise return
    //       false
    function fireEvent(opts, fn, self, arg) {        
        if ($.isFunction(fn)) { 
            try {  
                return fn.call(self, arg);
            } catch (error) {
                if (opts.debug) {
                    alert("Error calling googlemaps." + fn + ": " + error);
                } else {
                    throw error;    
                }
                return false;
            }                     
        }
        return true;            
    }
                
    var current = null;    
    
    function Googlemap(root, conf) {
        // current instance
        var self = this;
        if (!current) {
            current = self;
        }
        
        // internal variables
        var map;
        var geo;
        var bounds;
        var markers;
        //var index = 0;
        
        // configuration (comments show default values)
        var latitude    = conf.latitude;    // -35
        var longitude   = conf.longitude;   // 150
        var zoom        = conf.zoom;        // 4
        var controls    = conf.controls;    // true
        var labels      = conf.labels;      // true
        var html        = conf.html;        // null
        var anchor      = conf.anchor;      // null
        var addresses   = conf.addresses;   // null
        var debug       = conf.debug;       // false
        var titulo       = conf.titulo;       // null añadido por ialzugaray

        // methods
        $.extend(self, {
            // plugin specific
            getVersion: function() { return [1, 0, 0]; },
            getRoot: function() { return root; },
            
            // google maps specific
            getMap: function() { return map; },
            getGeo: function() { return geo; },
            getAddresses: function() { return addresses; },
            getBounds: function() { return bounds; },
            //getIndex: function() { return index; },
            getMarkers: function() { return markers; },
            
            // api
            isBrowserCompatible: function() {
                if ($.isFunction(GBrowserIsCompatible))
                    return GBrowserIsCompatible();
                
                return false;
            },
            initialise: function() {
                self.trace("initialising: " + this);
                if (self.isBrowserCompatible()) {
                    map         = map || new GMap2(document.getElementById($(root)[0].id));
                    geo         = geo || new GClientGeocoder();
                    bounds      = bounds || new GLatLngBounds();
                    markers     = markers || new Array();
                    
                    GEvent.addListener(map, "load", function() {
                        self.trace("google map loaded!");
                    });
                    
                    // set the map center
                    map.setCenter(new GLatLng(latitude, longitude), zoom);
//añade punto en el mapa ialzugaray

//map.addOverlay(new GMarker(new GLatLng(latitude, longitude)));

var marker = self.createMarker(1, new GLatLng(latitude, longitude));
map.addOverlay(marker);

                    
                    // mark addresses on the map
                    if (addresses) {
                        if (addresses.length > 0) {
                            var i = 0;
                            while (i < addresses.length) {
                                self.geocode(i++);
                            }
                        }
                    }
                    
                    // add controls
                    if (controls) {
                        map.addControl(new GSmallMapControl());
                        map.addControl(new GMapTypeControl());
                    }
                }
            },

            // geocode(index, address, html, anchor) :
            //     index:     (number) index of the marker (obsolete when label == false)
            //     address:   (string) human readable address to query
            //     html:      [array] what to display on marker's "click" event
            //     anchor:    [array] simulate marker's "click" event outside the map via a link
            geocode: function(index) {
                geo = (geo == null) ? new GClientGeocoder() : geo;
                if (addresses && index >= 0) {
                    self.trace("processing address: [" + addresses[i] + "] (" + index + ")");
                    markers = markers || new Array();
                    
                    // safer way of geocoding - avoids G_GEO_TOO_MANY_QUERIES
                    geo.getLocations(addresses[index], function(response) {                        
                        var statuscode = response.Status.code;
                        
                        if (statuscode == G_GEO_SUCCESS) {
                            // success!
                            self.trace(response.Placemark);
                            var point = new GLatLng(response.Placemark[0].Point.coordinates[1], response.Placemark[0].Point.coordinates[0], true);
                            
                            // extend bounds
                            bounds = bounds || new GLatLngBounds();
                            bounds.extend(point); self.trace("bounds extended");
                            
                            // marker
                            var marker = self.createMarker(index, point);
                            self.trace(marker); self.trace("marker created");
                            
                            // marker events
							GEvent.addListener(marker, "click", function() {
								zoom = 15;
								map.setCenter(marker.getLatLng(), zoom);
							});
                            
                            // add marker to array and display
                            markers[index] = marker;
                            map.addOverlay(marker);
                            
                            // onMarkerLoaded
            				if (fireEvent(conf, self.onMarkerLoaded, self, index) === false) {
            					return self;
            				}
                        } else {
                            if (statuscode == G_GEO_TOO_MANY_QUERIES) {
                                // retry again after a short while
                                var delay = 600;
                                self.trace("index " + index + " will begin retry in " + delay + "ms")
                                setTimeout(function() {
                                    self.geocode(index);
                                }, delay);
                            } else {
                                self.trace("unknown error code: " + statuscode);
                                marker[index] = null;
                            }
                        }
                    });
                }
            },
            
            // onMarkerLoaded(index)
            //     internal function : DO NOT MODIFY
            onMarkerLoaded: function(index) {
                // set map bounds and zoom level to optimal level so all marker can fit
                return self.optimiseZoomLevel();
            },
            
            // optimiseZoomLevel()
            optimiseZoomLevel: function(index) {
                if (bounds && (addresses.length == markers.length)) {
					zoom = map.getBoundsZoomLevel(bounds);
                    map.setZoom(zoom);
                    map.setCenter(bounds.getCenter());
                }
                
                return true;
            },
            
            // createMarker(index, point)
            //     index:    (number) index of the marker (also used to generate a letter)
            //     point:    (GLatLng) latitude and longitude of the marker
            createMarker: function(index, point) {
                // create a base icon for all of our markers that specifies the
                // shadow, icon dimensions, etc.
                var baseIcon = new GIcon(G_DEFAULT_ICON);
                baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
                baseIcon.iconSize = new GSize(20, 34);
                baseIcon.shadowSize = new GSize(37, 34);
                baseIcon.iconAnchor = new GPoint(9, 34);
                baseIcon.infoWindowAnchor = new GPoint(9, 2);
                
                // lettered marker which starts at "A" and wraps at "Z"
                var range = "Z".charCodeAt(0) - "A".charCodeAt(0) + 1;
                var letter = String.fromCharCode("A".charCodeAt(0) + (index % range));
                var letteredIcon = new GIcon(baseIcon);
                letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
                
                var markerOptions = { 
                   // icon: letteredIcon,
                    bouncy: true,
						//añade titulo en el mapa
						title: titulo
                };

                var marker = (labels) ? new GMarker(point, markerOptions) : new GMarker(point);
                return marker;
            },
            
            // trace(arg, [args...]) : print everything in the arguments array
            trace: function() {
                if (!debug) return;
                
                var caller = arguments.caller || "self";
                for (i = 0; i < arguments.length; i++) {
                    var argument = arguments[i]; // print object as it is
                    var line = argument;
                    try {
                        // Firefox, Safari, Opera
                        console.debug(line);
                    } catch (error) {
                        // fails gracefully on IE, Chrome
                        alert(line);
                    }
                }
            }
        });
        
        function load() {
            self.initialise();
            return self;
        }
        
        load();
    }


    // jQuery plugin implementation
	jQuery.prototype.googlemap = function(conf) {
        // already constructed --> return API
        var api = this.eq(typeof conf == 'number' ? conf : 0).data("googlemap");
        if (api) { return api; }	
        
        var opts = {
            latitude: -23,
            longitude: 133,
            zoom: 4,
            labels: true,
            controls: true,
            html: null,
            anchor: null,
            addresses: null,
            debug: false
        };
        
        $.extend(opts, conf);		
		
		this.each(function() {
			var el = new Googlemap($(this), opts);
			$(this).data("googlemap", el);	
		});
		
		return this;
    };
    
})(jQuery);

/*
FIN JQUERY GOOGLEMAP
----------------------------------------------------------------------------------------------------------
*/

