//This script will ramdomly pop up pictures which diferrent links for each one and possible different targets.//* 1 1 1LINKS ARRAY// * 2 2 2 CHANGE OF POSITION COORDINATES var scripts = document.getElementsByTagName('script');var myScript = scripts[ scripts.length - 1 ];var queryString = myScript.src.replace(/^[^\?]+\??/,'');var params = parseQuery( queryString );function parseQuery ( query ) {   var Params = new Object ();   if ( ! query ) return Params; // return empty object   var Pairs = query.split(/[;&]/);   for ( var i = 0; i < Pairs.length; i++ ) {      var KeyVal = Pairs[i].split('=');      if ( ! KeyVal || KeyVal.length != 2 ) continue;      var key = unescape( KeyVal[0] );      var val = unescape( KeyVal[1] );      val = val.replace(/\+/g, ' ');      Params[key] = val;   }   return Params;}var key = params['key'] ;// *111var ruta_obj = new Array();var ruta_links = new Array();var ruta_imgs = new Array();var ruta_targs = new Array();	//HERE GOES THE PICTURES AND LINKS	// IMPORTANT: AL LEAST TWO LINKS MUST BE IN THE ARRAY EVEN IF BOTH ARE THE SAME BECAUSE THE SCRIPTS CONSIDER NOT TO DISPLAY THE PREVIOUS ONEruta_links.push(	'contact.php?key=' + key,	'moreinfo.php?key=' + key,	'benefits.php?key=' + key,	'faq.php?key=' + key,	'enquiry.php?key=' + key//	'screenshots.php?key=' + key);ruta_imgs.push(	'http://www.contactyourclient.com/images/pop_orig_customer_relationship.GIF',	'http://www.contactyourclient.com/images/fact1_contact_manager.gif',	'http://www.contactyourclient.com/images/fact2_CRM.gif',	'http://www.contactyourclient.com/images/fact3_sales_automation.gif',	'http://www.contactyourclient.com/images/fact4_crm_solution.gif'//	'http://www.contactyourclient.com/images/freetrialSIDE.gif');ruta_targs.push(	'_top',	'_top',	'_top',	'_top',	'_top',	'_top');ruta_obj.push(ruta_links, ruta_imgs, ruta_targs);var picID = ruta_links.length-1;function updatePicId(){	picID = (picID+1)%ruta_links.length;}function getRandomImage(){	//var mwpos=Math.round(Math.random()*(ruta_imagenes_msn.length-1));	//var mwretorno=ruta_imagenes_msn[mwpos];	//picID = mwpos;	updatePicId();	var mwretorno=ruta_imgs[picID];	return mwretorno;};if(typeof window.jQuery=="undefined") {/** jQuery 1.1.2 - New Wave Javascript** Copyright (c) 2007 John Resig (jquery.com)* Dual licensed under the MIT (MIT-LICENSE.txt)* and GPL (GPL-LICENSE.txt) licenses.** $Date:2007-02-28 12:03:00 -0500 (Wed,28 Feb 2007) $* $Rev:1465 $*/window.undefined=window.undefined;var jQuery=function(a,c) {if (window==this)return new jQuery(a,c);a=a || document;if (jQuery.isFunction(a))return new jQuery(document)[ jQuery.fn.ready ? "ready":"load" ](a);if (typeof a =="string") {var m=/^[^<]*(<(.|\s)+>)[^>]*$/.exec(a);if (m)a=jQuery.clean([ m[1] ]);elsereturn new jQuery(c).find(a);}return this.setArray(a.constructor==Array && a ||(a.jquery || a.length && a!=window && !a.nodeType && a[0]!=undefined && a[0].nodeType) && jQuery.makeArray(a) ||[ a ]);};if (typeof $!="undefined")jQuery._$=$;var $=jQuery;jQuery.fn=jQuery.prototype={jquery:"1.1.2",size:function() {return this.length;},length:0,get:function(num) {return num==undefined ?jQuery.makeArray(this):this[num];},pushStack:function(a) {var ret=jQuery(a);ret.prevObject=this;return ret;},setArray:function(a) {this.length=0;[].push.apply(this,a);return this;},each:function(fn,args) {return jQuery.each(this,fn,args);},index:function(obj) {var pos=-1;this.each(function(i){if (this==obj) pos=i;});return pos;},attr:function(key,value,type) {var obj=key;if (key.constructor==String)if (value==undefined)return this.length && jQuery[ type || "attr" ](this[0],key) || undefined;else {obj={};obj[ key ]=value;}return this.each(function(index){for (var prop in obj)jQuery.attr(type ? this.style:this,prop,jQuery.prop(this,obj[prop],type,index,prop));});},css:function(key,value) {return this.attr(key,value,"curCSS");},text:function(e) {if (typeof e=="string")return this.empty().append(document.createTextNode(e));var t="";jQuery.each(e || this,function(){jQuery.each(this.childNodes,function(){if (this.nodeType!=8)t +=this.nodeType!=1 ?this.nodeValue:jQuery.fn.text([ this ]);});});return t;},wrap:function() {var a=jQuery.clean(arguments);return this.each(function(){var b=a[0].cloneNode(true);this.parentNode.insertBefore(b,this);while (b.firstChild)b=b.firstChild;b.appendChild(this);});},append:function() {return this.domManip(arguments,true,1,function(a){this.appendChild(a);});},prepend:function() {return this.domManip(arguments,true,-1,function(a){this.insertBefore(a,this.firstChild);});},before:function() {return this.domManip(arguments,false,1,function(a){this.parentNode.insertBefore(a,this);});},after:function() {return this.domManip(arguments,false,-1,function(a){this.parentNode.insertBefore(a,this.nextSibling);});},end:function() {return this.prevObject || jQuery([]);},find:function(t) {return this.pushStack(jQuery.map(this,function(a){return jQuery.find(t,a);}),t);},clone:function(deep) {return this.pushStack(jQuery.map(this,function(a){var a=a.cloneNode(deep!=undefined ? deep:true);a.$events=null;return a;}));},filter:function(t) {return this.pushStack(jQuery.isFunction(t) &&jQuery.grep(this,function(el,index){return t.apply(el,[index])}) ||jQuery.multiFilter(t,this));},not:function(t) {return this.pushStack(t.constructor==String &&jQuery.multiFilter(t,this,true) ||jQuery.grep(this,function(a) {return (t.constructor==Array || t.jquery)? jQuery.inArray(a,t) < 0:a!=t;}));},add:function(t) {return this.pushStack(jQuery.merge(this.get(),t.constructor==String ?jQuery(t).get():t.length!=undefined && (!t.nodeName || t.nodeName=="FORM") ?t:[t]));},is:function(expr) {return expr ? jQuery.filter(expr,this).r.length > 0:false;},val:function(val) {return val==undefined ?(this.length ? this[0].value:null):this.attr("value",val);},html:function(val) {return val==undefined ?(this.length ? this[0].innerHTML:null):this.empty().append(val);},domManip:function(args,table,dir,fn){var clone=this.length > 1;var a=jQuery.clean(args);if (dir < 0)a.reverse();return this.each(function(){var obj=this;if (table && jQuery.nodeName(this,"table") && jQuery.nodeName(a[0],"tr"))obj=this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));jQuery.each(a,function(){fn.apply(obj,[ clone ? this.cloneNode(true):this ]);});});}};jQuery.extend=jQuery.fn.extend=function() {var target=arguments[0],a=1;if (arguments.length==1) {target=this;a=0;}var prop;while (prop=arguments[a++])for (var i in prop) target[i]=prop[i];return target;};jQuery.extend({noConflict:function() {if (jQuery._$)$=jQuery._$;return jQuery;},isFunction:function(fn) {return !!fn && typeof fn!="string" && !fn.nodeName &&typeof fn[0]=="undefined" && /function/i.test(fn + "");},isXMLDoc:function(elem) {return elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;},nodeName:function(elem,name) {return elem.nodeName && elem.nodeName.toUpperCase()==name.toUpperCase();},each:function(obj,fn,args) {if (obj.length==undefined)for (var i in obj)fn.apply(obj[i],args || [i,obj[i]]);elsefor (var i=0,ol=obj.length; i < ol; i++)if (fn.apply(obj[i],args || [i,obj[i]])===false) break;return obj;},prop:function(elem,value,type,index,prop){if (jQuery.isFunction(value))value=value.call(elem,[index]);var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i;return value && value.constructor==Number && type=="curCSS" && !exclude.test(prop) ?value + "px":value;},className:{add:function(elem,c){jQuery.each(c.split(/\s+/),function(i,cur){if (!jQuery.className.has(elem.className,cur))elem.className +=(elem.className ? " ":"") + cur;});},remove:function(elem,c){elem.className=c ?jQuery.grep(elem.className.split(/\s+/),function(cur){return !jQuery.className.has(c,cur);}).join(" "):"";},has:function(t,c) {t=t.className || t;c=c.replace(/([\.\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\$1");return t && new RegExp("(^|\s)" + c + "(\s|$)").test(t);}},swap:function(e,o,f) {for (var i in o) {e.style["old"+i]=e.style[i];e.style[i]=o[i];}f.apply(e,[]);for (var i in o)e.style[i]=e.style["old"+i];},css:function(e,p) {if (p=="height" || p=="width") {var old={},oHeight,oWidth,d=["Top","Bottom","Right","Left"];jQuery.each(d,function(){old["padding" + this]=0;old["border" + this + "Width"]=0;});jQuery.swap(e,old,function() {if (jQuery.css(e,"display")!="none") {oHeight=e.offsetHeight;oWidth=e.offsetWidth;} else {e=jQuery(e.cloneNode(true)).find(":radio").removeAttr("checked").end().css({visibility:"hidden",position:"absolute",display:"block",right:"0",left:"0"}).appendTo(e.parentNode)[0];var parPos=jQuery.css(e.parentNode,"position");if (parPos=="" || parPos=="static")e.parentNode.style.position="relative";oHeight=e.clientHeight;oWidth=e.clientWidth;if (parPos=="" || parPos=="static")e.parentNode.style.position="static";e.parentNode.removeChild(e);}});return p=="height" ? oHeight:oWidth;}return jQuery.curCSS(e,p);},curCSS:function(elem,prop,force) {var ret;if (prop=="opacity" && jQuery.browser.msie)return jQuery.attr(elem.style,"opacity");if (prop=="float" || prop=="cssFloat")prop=jQuery.browser.msie ? "styleFloat":"cssFloat";if (!force && elem.style[prop])ret=elem.style[prop];else if (document.defaultView && document.defaultView.getComputedStyle) {if (prop=="cssFloat" || prop=="styleFloat")prop="float";prop=prop.replace(/([A-Z])/g,"-$1").toLowerCase();var cur=document.defaultView.getComputedStyle(elem,null);if (cur)ret=cur.getPropertyValue(prop);else if (prop=="display")ret="none";elsejQuery.swap(elem,{ display:"block" },function() {var c=document.defaultView.getComputedStyle(this,"");ret=c && c.getPropertyValue(prop) || "";});} else if (elem.currentStyle) {var newProp=prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();});ret=elem.currentStyle[prop] || elem.currentStyle[newProp];}return ret;},clean:function(a) {var r=[];jQuery.each(a,function(i,arg){if (!arg) return;if (arg.constructor==Number)arg=arg.toString();if (typeof arg=="string") {var s=jQuery.trim(arg),div=document.createElement("div"),tb=[];var wrap=!s.indexOf("<opt") &&[1,"<select>","</select>"] ||(!s.indexOf("<thead") || !s.indexOf("<tbody") || !s.indexOf("<tfoot")) &&[1,"<table>","</table>"] ||!s.indexOf("<tr") &&[2,"<table><tbody>","</tbody></table>"] ||(!s.indexOf("<td") || !s.indexOf("<th")) &&[3,"<table><tbody><tr>","</tr></tbody></table>"] ||[0,"",""];div.innerHTML=wrap[1] + s + wrap[2];while (wrap[0]--)div=div.firstChild;if (jQuery.browser.msie) {if (!s.indexOf("<table") && s.indexOf("<tbody") < 0)tb=div.firstChild && div.firstChild.childNodes;else if (wrap[1]=="<table>" && s.indexOf("<tbody") < 0)tb=div.childNodes;for (var n=tb.length-1; n >=0 ; --n)if (jQuery.nodeName(tb[n],"tbody") && !tb[n].childNodes.length)tb[n].parentNode.removeChild(tb[n]);}arg=[];for (var i=0,l=div.childNodes.length; i<l; i++)arg.push(div.childNodes[i]);}if (arg.length===0 && !jQuery.nodeName(arg,"form"))return;if (arg[0]==undefined || jQuery.nodeName(arg,"form"))r.push(arg);elser=jQuery.merge(r,arg);});return r;},attr:function(elem,name,value){var fix=jQuery.isXMLDoc(elem) ? {}:{"for":"htmlFor","class":"className","float":jQuery.browser.msie ? "styleFloat":"cssFloat",cssFloat:jQuery.browser.msie ? "styleFloat":"cssFloat",innerHTML:"innerHTML",className:"className",value:"value",disabled:"disabled",checked:"checked",readonly:"readOnly",selected:"selected"};if (name=="opacity" && jQuery.browser.msie && value!=undefined) {elem.zoom=1;return elem.filter=elem.filter.replace(/alpha\([^\)]*\)/gi,"") +(value==1 ? "":"alpha(opacity=" + value * 100 + ")");} else if (name=="opacity" && jQuery.browser.msie)return elem.filter ?parseFloat(elem.filter.match(/alpha\(opacity=(.*)\)/)[1]) / 100:1;if (name=="opacity" && jQuery.browser.mozilla && value==1)value=0.9999;if (fix[name]) {if (value!=undefined) elem[fix[name]]=value;return elem[fix[name]];} else if (value==undefined && jQuery.browser.msie && jQuery.nodeName(elem,"form") && (name=="action" || name=="method"))return elem.getAttributeNode(name).nodeValue;else if (elem.tagName) {if (value!=undefined) elem.setAttribute(name,value);if (jQuery.browser.msie && /href|src/.test(name) && !jQuery.isXMLDoc(elem))return elem.getAttribute(name,2);return elem.getAttribute(name);} else {name=name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();});if (value!=undefined) elem[name]=value;return elem[name];}},trim:function(t){return t.replace(/^\s+|\s+$/g,"");},makeArray:function(a) {var r=[];if (a.constructor!=Array)for (var i=0,al=a.length; i < al; i++)r.push(a[i]);elser=a.slice(0);return r;},inArray:function(b,a) {for (var i=0,al=a.length; i < al; i++)if (a[i]==b)return i;return -1;},merge:function(first,second) {var r=[].slice.call(first,0);for (var i=0,sl=second.length; i < sl; i++)if (jQuery.inArray(second[i],r)==-1)first.push(second[i]);return first;},grep:function(elems,fn,inv) {if (typeof fn=="string")fn=new Function("a","i","return " + fn);var result=[];for (var i=0,el=elems.length; i < el; i++)if (!inv && fn(elems[i],i) || inv && !fn(elems[i],i))result.push(elems[i]);return result;},map:function(elems,fn) {if (typeof fn=="string")fn=new Function("a","return " + fn);var result=[],r=[];for (var i=0,el=elems.length; i < el; i++) {var val=fn(elems[i],i);if (val!==null && val!=undefined) {if (val.constructor!=Array) val=[val];result=result.concat(val);}}var r=result.length ? [ result[0] ]:[];check:for (var i=1,rl=result.length; i < rl; i++) {for (var j=0; j < i; j++)if (result[i]==r[j])continue check;r.push(result[i]);}return r;}});/** Whether the W3C compliant box model is being used.** @property* @name $.boxModel* @type Boolean* @cat JavaScript*/new function() {var b=navigator.userAgent.toLowerCase();jQuery.browser={safari:/webkit/.test(b),opera:/opera/.test(b),msie:/msie/.test(b) && !/opera/.test(b),mozilla:/mozilla/.test(b) && !/(compatible|webkit)/.test(b)};jQuery.boxModel=!jQuery.browser.msie || document.compatMode=="CSS1Compat";};jQuery.each({parent:"a.parentNode",parents:"jQuery.parents(a)",next:"jQuery.nth(a,2,'nextSibling')",prev:"jQuery.nth(a,2,'previousSibling')",siblings:"jQuery.sibling(a.parentNode.firstChild,a)",children:"jQuery.sibling(a.firstChild)"},function(i,n){jQuery.fn[ i ]=function(a) {var ret=jQuery.map(this,n);if (a && typeof a=="string")ret=jQuery.multiFilter(a,ret);return this.pushStack(ret);};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after"},function(i,n){jQuery.fn[ i ]=function(){var a=arguments;return this.each(function(){for (var j=0,al=a.length; j < al; j++)jQuery(a[j])[n](this);});};});jQuery.each({removeAttr:function(key) {jQuery.attr(this,key,"");this.removeAttribute(key);},addClass:function(c){jQuery.className.add(this,c);},removeClass:function(c){jQuery.className.remove(this,c);},toggleClass:function(c){jQuery.className[ jQuery.className.has(this,c) ? "remove":"add" ](this,c);},remove:function(a){if (!a || jQuery.filter(a,[this]).r.length)this.parentNode.removeChild(this);},empty:function() {while (this.firstChild)this.removeChild(this.firstChild);}},function(i,n){jQuery.fn[ i ]=function() {return this.each(n,arguments);};});jQuery.each([ "eq","lt","gt","contains" ],function(i,n){jQuery.fn[ n ]=function(num,fn) {return this.filter(":" + n + "(" + num + ")",fn);};});jQuery.each([ "height","width" ],function(i,n){jQuery.fn[ n ]=function(h) {return h==undefined ?(this.length ? jQuery.css(this[0],n):null):this.css(n,h.constructor==String ? h:h + "px");};});jQuery.extend({expr:{"":"m[2]=='*'||jQuery.nodeName(a,m[2])","#":"a.getAttribute('id')==m[2]",":":{lt:"i<m[3]-0",gt:"i>m[3]-0",nth:"m[3]-0==i",eq:"m[3]-0==i",first:"i==0",last:"i==r.length-1",even:"i%2==0",odd:"i%2","nth-child":"jQuery.nth(a.parentNode.firstChild,m[3],'nextSibling',a)==a","first-child":"jQuery.nth(a.parentNode.firstChild,1,'nextSibling')==a","last-child":"jQuery.nth(a.parentNode.lastChild,1,'previousSibling')==a","only-child":"jQuery.sibling(a.parentNode.firstChild).length==1",parent:"a.firstChild",empty:"!a.firstChild",contains:"jQuery.fn.text.apply([a]).indexOf(m[3])>=0",visible:'a.type!="hidden"&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"',hidden:'a.type=="hidden"||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"',enabled:"!a.disabled",disabled:"a.disabled",checked:"a.checked",selected:"a.selected||jQuery.attr(a,'selected')",text:"a.type=='text'",radio:"a.type=='radio'",checkbox:"a.type=='checkbox'",file:"a.type=='file'",password:"a.type=='password'",submit:"a.type=='submit'",image:"a.type=='image'",reset:"a.type=='reset'",button:'a.type=="button"||jQuery.nodeName(a,"button")',input:"/input|select|textarea|button/i.test(a.nodeName)"},".":"jQuery.className.has(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.indexOf(m[4])","$=":"z&&z.substr(z.length - m[4].length,m[4].length)==m[4]","*=":"z&&z.indexOf(m[4])>=0","":"z",_resort:function(m){return ["",m[1],m[3],m[2],m[5]];},_prefix:"z=a[m[3]];if(!z||/href|src/.test(m[3]))z=jQuery.attr(a,m[3]);"},"[":"jQuery.find(m[2],a).length"},parse:[/^\[ *(@)([a-z0-9_-]*) *([!*$^=]*) *('?"?)(.*?)\4 *\]/i,// Match:[div],[div p]/^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/,// Match::contains('foo')/^(:)([a-z0-9_-]*)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/i,/^([:.#]*)([a-z0-9_*-]*)/i],token:[/^(\/?\.\.)/,"a.parentNode",/^(>|\/)/,"jQuery.sibling(a.firstChild)",/^(\+)/,"jQuery.nth(a,2,'nextSibling')",/^(~)/,function(a){var s=jQuery.sibling(a.parentNode.firstChild);return s.slice(jQuery.inArray(a,s) + 1);}],multiFilter:function(expr,elems,not) {var old,cur=[];while (expr && expr!=old) {old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not ? elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context) {if (typeof t!="string")return [ t ];if (context && !context.nodeType)context=null;context=context || document;if (!t.indexOf("//")) {context=context.documentElement;t=t.substr(2,t.length);} else if (!t.indexOf("/")) {context=context.documentElement;t=t.substr(1,t.length);if (t.indexOf("/") >=1)t=t.substr(t.indexOf("/"),t.length);}var ret=[context],done=[],last=null;while (t && last!=t) {var r=[];last=t;t=jQuery.trim(t).replace(/^\/\//i,"");var foundToken=false;var re=/^[\/>]\s*([a-z0-9*-]+)/i;var m=re.exec(t);if (m) {jQuery.each(ret,function(){for (var c=this.firstChild; c; c=c.nextSibling)if (c.nodeType==1 && (jQuery.nodeName(c,m[1]) || m[1]=="*"))r.push(c);});ret=r;t=t.replace(re,"");if (t.indexOf(" ")==0) continue;foundToken=true;} else {for (var i=0; i < jQuery.token.length; i +=2) {var re=jQuery.token[i];var m=re.exec(t);if (m) {r=ret=jQuery.map(ret,jQuery.isFunction(jQuery.token[i+1]) ?jQuery.token[i+1]:function(a){ return eval(jQuery.token[i+1]); });t=jQuery.trim(t.replace(re,""));foundToken=true;break;}}}if (t && !foundToken) {if (!t.indexOf(",")) {if (ret[0]==context) ret.shift();jQuery.merge(done,ret);r=ret=[context];t=" " + t.substr(1,t.length);} else {var re2=/^([a-z0-9_-]+)(#)([a-z0-9\*_-]*)/i;var m=re2.exec(t);if (m) {m=[ 0,m[2],m[3],m[1] ];} else {re2=/^([#.]?)([a-z0-9\*_-]*)/i;m=re2.exec(t);}if (m[1]=="#" && ret[ret.length-1].getElementById) {var oid=ret[ret.length-1].getElementById(m[2]);if (jQuery.browser.msie && oid && oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',ret[ret.length-1])[0];ret=r=oid && (!m[3] || jQuery.nodeName(oid,m[3])) ? [oid]:[];} else {if (m[1]==".")var rec=new RegExp("(^|\s)" + m[2] + "(\s|$)");jQuery.each(ret,function(){var tag=m[1]!="" || m[0]=="" ? "*":m[2];if (jQuery.nodeName(this,"object") && tag=="*")tag="param";jQuery.merge(r,m[1]!="" && ret.length!=1 ?jQuery.getAll(this,[],m[1],m[2],rec):this.getElementsByTagName(tag));});if (m[1]=="." && ret.length==1)r=jQuery.grep(r,function(e) {return rec.test(e.className);});if (m[1]=="#" && ret.length==1) {var tmp=r;r=[];jQuery.each(tmp,function(){if (this.getAttribute("id")==m[2]) {r=[ this ];return false;}});}ret=r;}t=t.replace(re2,"");}}if (t) {var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if (ret && ret[0]==context) ret.shift();jQuery.merge(done,ret);return done;},filter:function(t,r,not) {while (t && /^[a-z[({<*:.#]/i.test(t)) {var p=jQuery.parse,m;jQuery.each(p,function(i,re){m=re.exec(t);if (m) {t=t.substring(m[0].length);if (jQuery.expr[ m[1] ]._resort)m=jQuery.expr[ m[1] ]._resort(m);return false;}});//:not() is a special case that can be optimized by// keeping it out of the expression listif (m[1]==":" && m[2]=="not")r=jQuery.filter(m[3],r,true).r;// Handle classes as a special case (this will help to// improve the speed,as the regexp will only be compiled once)else if (m[1]==".") {var re=new RegExp("(^|\s)" + m[2] + "(\s|$)");r=jQuery.grep(r,function(e){return re.test(e.className || "");},not);// Otherwise,find the expression to execute} else {var f=jQuery.expr[m[1]];if (typeof f!="string")f=jQuery.expr[m[1]][m[2]];// Build a custom macro to enclose iteval("f=function(a,i){" +(jQuery.expr[ m[1] ]._prefix || "") +"return " + f + "}");// Execute it against the current filterr=jQuery.grep(r,f,not);}}// Return an array of filtered elements (r)// and the modified expression string (t)return { r:r,t:t };},getAll:function(o,r,token,name,re) {for (var s=o.firstChild; s; s=s.nextSibling)if (s.nodeType==1) {var add=true;if (token==".")add=s.className && re.test(s.className);else if (token=="#")add=s.getAttribute("id")==name;if (add)r.push(s);if (token=="#" && r.length) break;if (s.firstChild)jQuery.getAll(s,r,token,name,re);}return r;},parents:function(elem){var matched=[];var cur=elem.parentNode;while (cur && cur!=document) {matched.push(cur);cur=cur.parentNode;}return matched;},nth:function(cur,result,dir,elem){result=result || 1;var num=0;for (; cur; cur=cur[dir]) {if (cur.nodeType==1) num++;if (num==result || result=="even" && num % 2==0 && num > 1 && cur==elem ||result=="odd" && num % 2==1 && cur==elem) return cur;}},sibling:function(n,elem) {var r=[];for (; n; n=n.nextSibling) {if (n.nodeType==1 && (!elem || n!=elem))r.push(n);}return r;}});/** A number of helper functions used for managing events.* Many of the ideas behind this code orignated from* Dean Edwards' addEvent library.*/jQuery.event={// Bind an event to an element// Original by Dean Edwardsadd:function(element,type,handler,data) {// For whatever reason,IE has trouble passing the window object// around,causing it to be cloned in the processif (jQuery.browser.msie && element.setInterval!=undefined)element=window;// if data is passed,bind to handlerif(data)handler.data=data;// Make sure that the function being executed has a unique IDif (!handler.guid)handler.guid=this.guid++;// Init the element's event structureif (!element.$events)element.$events={};// Get the current list of functions bound to this eventvar handlers=element.$events[type];// If it hasn't been initialized yetif (!handlers) {// Init the event handler queuehandlers=element.$events[type]={};// Remember an existing handler,if it's already thereif (element["on" + type])handlers[0]=element["on" + type];}// Add the function to the element's handler listhandlers[handler.guid]=handler;// And bind the global event handler to the elementelement["on" + type]=this.handle;// Remember the function in a global list (for triggering)if (!this.global[type])this.global[type]=[];this.global[type].push(element);},guid:1,global:{},// Detach an event or set of events from an elementremove:function(element,type,handler) {if (element.$events) {var i,j,k;if (type && type.type) { // type is actually an event object herehandler=type.handler;type   =type.type;}if (type && element.$events[type])// remove the given handler for the given typeif (handler)delete element.$events[type][handler.guid];// remove all handlers for the given typeelsefor (i in element.$events[type])delete element.$events[type][i];// remove all handlerselsefor (j in element.$events)this.remove(element,j);// remove event handler if no more handlers existfor (k in element.$events[type])if (k) {k=true;break;}if (!k) element["on" + type]=null;}},trigger:function(type,data,element) {// Clone the incoming data,if anydata=jQuery.makeArray(data || []);// Handle a global triggerif (!element)jQuery.each(this.global[type] || [],function(){jQuery.event.trigger(type,data,this);});// Handle triggering a single elementelse {var handler=element["on" + type ],val,fn=jQuery.isFunction(element[ type ]);if (handler) {// Pass along a fake eventdata.unshift(this.fix({ type:type,target:element }));// Trigger the eventif ((val=handler.apply(element,data))!==false)this.triggered=true;}if (fn && val!==false)element[ type ]();this.triggered=false;}},handle:function(event) {// Handle the second event of a trigger and when// an event is called after a page has unloadedif (typeof jQuery=="undefined" || jQuery.event.triggered) return;// Empty object is for triggered events with no dataevent=jQuery.event.fix(event || window.event || {});// returned undefined or falsevar returnValue;var c=this.$events[event.type];var args=[].slice.call(arguments,1);args.unshift(event);for (var j in c) {// Pass in a reference to the handler function itself// So that we can later remove itargs[0].handler=c[j];args[0].data=c[j].data;if (c[j].apply(this,args)===false) {event.preventDefault();event.stopPropagation();returnValue=false;}}// Clean up added properties in IE to prevent memory leakif (jQuery.browser.msie) event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return returnValue;},fix:function(event) {// Fix target property,if necessaryif (!event.target && event.srcElement)event.target=event.srcElement;// Calculate pageX/Y if missing and clientX/Y availableif (event.pageX==undefined && event.clientX!=undefined) {var e=document.documentElement,b=document.body;event.pageX=event.clientX + (e.scrollLeft || b.scrollLeft);event.pageY=event.clientY + (e.scrollTop || b.scrollTop);}// check if target is a textnode (safari)if (jQuery.browser.safari && event.target.nodeType==3) {// store a copy of the original event object// and clone because target is read onlyvar originalEvent=event;event=jQuery.extend({},originalEvent);// get parentnode from textnodeevent.target=originalEvent.target.parentNode;// add preventDefault and stopPropagation since// they will not work on the cloneevent.preventDefault=function() {return originalEvent.preventDefault();};event.stopPropagation=function() {return originalEvent.stopPropagation();};}// fix preventDefault and stopPropagationif (!event.preventDefault)event.preventDefault=function() {this.returnValue=false;};if (!event.stopPropagation)event.stopPropagation=function() {this.cancelBubble=true;};return event;}};jQuery.fn.extend({bind:function(type,data,fn) {return this.each(function(){jQuery.event.add(this,type,fn || data,data);});},one:function(type,data,fn) {return this.each(function(){jQuery.event.add(this,type,function(event) {jQuery(this).unbind(event);return (fn || data).apply(this,arguments);},data);});},unbind:function(type,fn) {return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data) {return this.each(function(){jQuery.event.trigger(type,data,this);});},toggle:function() {// Save reference to arguments for access in closurevar a=arguments;return this.click(function(e) {// Figure out which function to executethis.lastToggle=this.lastToggle==0 ? 1:0;// Make sure that clicks stope.preventDefault();// and execute the functionreturn a[this.lastToggle].apply(this,[e]) || false;});},hover:function(f,g) {// A private function for handling mouse 'hovering'function handleHover(e) {// Check if mouse(over|out) are still within the same parent elementvar p=(e.type=="mouseover" ? e.fromElement:e.toElement) || e.relatedTarget;// Traverse up the treewhile (p && p!=this) try { p=p.parentNode } catch(e) { p=this; };// If we actually just moused on to a sub-element,ignore itif (p==this) return false;// Execute the right functionreturn (e.type=="mouseover" ? f:g).apply(this,[e]);}// Bind the function to the two event listenersreturn this.mouseover(handleHover).mouseout(handleHover);},ready:function(f) {// If the DOM is already readyif (jQuery.isReady)// Execute the function immediatelyf.apply(document,[jQuery]);// Otherwise,remember the function for laterelse {// Add the function to the wait listjQuery.readyList.push(function() { return f.apply(this,[jQuery]) });}return this;}});jQuery.extend({/** All the code that makes DOM Ready work nicely.*/isReady:false,readyList:[],// Handle when the DOM is readyready:function() {// Make sure that the DOM is not already loadedif (!jQuery.isReady) {// Remember that the DOM is readyjQuery.isReady=true;// If there are functions bound,to executeif (jQuery.readyList) {// Execute all of themjQuery.each(jQuery.readyList,function(){this.apply(document);});// Reset the list of functionsjQuery.readyList=null;}// Remove event lisenter to avoid memory leakif (jQuery.browser.mozilla || jQuery.browser.opera)document.removeEventListener("DOMContentLoaded",jQuery.ready,false);}}});new function(){jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick," +"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +"submit,keydown,keypress,keyup,error").split(","),function(i,o){// Handle event bindingjQuery.fn[o]=function(f){return f ? this.bind(o,f):this.trigger(o);};});// If Mozilla is usedif (jQuery.browser.mozilla || jQuery.browser.opera)// Use the handy event callbackdocument.addEventListener("DOMContentLoaded",jQuery.ready,false);else if (jQuery.browser.msie) {// Only works if you document.write() itdocument.write("<scr" + "ipt id=__ie_init defer=true " +"src=//:><\/script>");// Use the defer script hackvar script=document.getElementById("__ie_init");// script does not exist if jQuery is loaded dynamicallyif (script)script.onreadystatechange=function() {if (this.readyState!="complete") return;this.parentNode.removeChild(this);jQuery.ready();};// Clear from memoryscript=null;// If Safari  is used} else if (jQuery.browser.safari)// Continually check to see if the document.readyState is validjQuery.safariTimer=setInterval(function(){// loaded and complete are both valid statesif (document.readyState=="loaded" ||document.readyState=="complete") {// If either one are found,remove the timerclearInterval(jQuery.safariTimer);jQuery.safariTimer=null;// and execute any waiting functionsjQuery.ready();}},10);// A fallback to window.onload,that will always workjQuery.event.add(window,"load",jQuery.ready);};// Clean up after IE to avoid memory leaksif (jQuery.browser.msie)jQuery(window).one("unload",function() {var global=jQuery.event.global;for (var type in global) {var els=global[type],i=els.length;if (i && type!='unload')dojQuery.event.remove(els[i-1],type);while (--i);}});jQuery.fn.extend({loadIfModified:function(url,params,callback) {this.load(url,params,callback,1);},load:function(url,params,callback,ifModified) {if (jQuery.isFunction(url))return this.bind("load",url);callback=callback || function(){};// Default to a GET requestvar type="GET";// If the second parameter was providedif (params)// If it's a functionif (jQuery.isFunction(params)) {// We assume that it's the callbackcallback=params;params=null;// Otherwise,build a param string} else {params=jQuery.param(params);type="POST";}var self=this;// Request the remote documentjQuery.ajax({url:url,type:type,data:params,ifModified:ifModified,complete:function(res,status){if (status=="success" || !ifModified && status=="notmodified")// Inject the HTML into all the matched elementsself.attr("innerHTML",res.responseText)// Execute all the scripts inside of the newly-injected HTML.evalScripts()// Execute callback.each(callback,[res.responseText,status,res]);elsecallback.apply(self,[res.responseText,status,res]);}});return this;},serialize:function() {return jQuery.param(this);},evalScripts:function() {return this.find("script").each(function(){if (this.src)jQuery.getScript(this.src);elsejQuery.globalEval(this.text || this.textContent || this.innerHTML || "");}).end();}});// If IE is used,create a wrapper for the XMLHttpRequest objectif (!window.XMLHttpRequest)XMLHttpRequest=function(){return new ActiveXObject("Microsoft.XMLHTTP");};// Attach a bunch of functions for handling common AJAX eventsjQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});jQuery.extend({get:function(url,data,callback,type,ifModified) {// shift arguments if data argument was ommitedif (jQuery.isFunction(data)) {callback=data;data=null;}return jQuery.ajax({url:url,data:data,success:callback,dataType:type,ifModified:ifModified});},getIfModified:function(url,data,callback,type) {return jQuery.get(url,data,callback,type,1);},getScript:function(url,callback) {return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback) {return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type) {if (jQuery.isFunction(data)) {callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},// timeout (ms)//timeout:0,ajaxTimeout:function(timeout) {jQuery.ajaxSettings.timeout=timeout;},ajaxSetup:function(settings) {jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null},// Last-Modified header cache for next requestlastModified:{},ajax:function(s) {// TODO introduce global settings,allowing the client to modify them for all requests,not only timeouts=jQuery.extend({},jQuery.ajaxSettings,s);// if data availableif (s.data) {// convert data if not already a stringif (s.processData && typeof s.data!="string")s.data=jQuery.param(s.data);// append data to url for get requestsif(s.type.toLowerCase()=="get") {// "?" + data or "&" + data (in case there are already params)s.url +=((s.url.indexOf("?") > -1) ? "&":"?") + s.data;// IE likes to send both get and post data,prevent thiss.data=null;}}// Watch for a new set of requestsif (s.global && ! jQuery.active++)jQuery.event.trigger("ajaxStart");var requestDone=false;// Create the request objectvar xml=new XMLHttpRequest();// Open the socketxml.open(s.type,s.url,s.async);// Set the correct header,if data is being sentif (s.data)xml.setRequestHeader("Content-Type",s.contentType);// Set the If-Modified-Since header,if ifModified mode.if (s.ifModified)xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url] || "Thu,01 Jan 1970 00:00:00 GMT");// Set header so the called script knows that it's an XMLHttpRequestxml.setRequestHeader("X-Requested-With","XMLHttpRequest");// Make sure the browser sends the right content lengthif (xml.overrideMimeType)xml.setRequestHeader("Connection","close");// Allow custom headers/mimetypesif(s.beforeSend)s.beforeSend(xml);if (s.global)jQuery.event.trigger("ajaxSend",[xml,s]);// Wait for a response to come backvar onreadystatechange=function(isTimeout){// The transfer is complete and the data is available,or the request timed outif (xml && (xml.readyState==4 || isTimeout=="timeout")) {requestDone=true;// clear poll intervalif (ival) {clearInterval(ival);ival=null;}var status;try {status=jQuery.httpSuccess(xml) && isTimeout!="timeout" ?s.ifModified && jQuery.httpNotModified(xml,s.url) ? "notmodified":"success":"error";// Make sure that the request was successful or notmodifiedif (status!="error") {// Cache Last-Modified header,if ifModified mode.var modRes;try {modRes=xml.getResponseHeader("Last-Modified");} catch(e) {} // swallow exception thrown by FF if header is not availableif (s.ifModified && modRes)jQuery.lastModified[s.url]=modRes;// process the data (runs the xml through httpData regardless of callback)var data=jQuery.httpData(xml,s.dataType);// If a local callback was specified,fire it and pass it the dataif (s.success)s.success(data,status);// Fire the global callbackif(s.global)jQuery.event.trigger("ajaxSuccess",[xml,s]);} elsejQuery.handleError(s,xml,status);} catch(e) {status="error";jQuery.handleError(s,xml,status,e);}// The request was completedif(s.global)jQuery.event.trigger("ajaxComplete",[xml,s]);// Handle the global AJAX counterif (s.global && ! --jQuery.active)jQuery.event.trigger("ajaxStop");// Process resultif (s.complete)s.complete(xml,status);// Stop memory leaksif(s.async)xml=null;}};// don't attach the handler to the request,just poll it insteadvar ival=setInterval(onreadystatechange,13);// Timeout checkerif (s.timeout > 0)setTimeout(function(){// Check to see if the request is still happeningif (xml) {// Cancel the requestxml.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);// Send the datatry {xml.send(s.data);} catch(e) {jQuery.handleError(s,xml,null,e);}// firefox 1.5 doesn't fire statechange for sync requestsif (!s.async)onreadystatechange();// return XMLHttpRequest to allow aborting the request etc.return xml;},handleError:function(s,xml,status,e) {// If a local callback was specified,fire itif (s.error) s.error(xml,status,e);// Fire the global callbackif (s.global)jQuery.event.trigger("ajaxError",[xml,s,e]);},// Counter for holding the number of active queriesactive:0,// Determines if an XMLHttpRequest was successful or nothttpSuccess:function(r) {try {return !r.status && location.protocol=="file:" ||(r.status >=200 && r.status < 300) || r.status==304 ||jQuery.browser.safari && r.status==undefined;} catch(e){}return false;},// Determines if an XMLHttpRequest returns NotModifiedhttpNotModified:function(xml,url) {try {var xmlRes=xml.getResponseHeader("Last-Modified");// Firefox always returns 200. check Last-Modified datereturn xml.status==304 || xmlRes==jQuery.lastModified[url] ||jQuery.browser.safari && xml.status==undefined;} catch(e){}return false;},/* Get the data out of an XMLHttpRequest.* Return parsed XML if content-type header is "xml" and type is "xml" or omitted,* otherwise return plain text.* (String) data - The type of data that you're expecting back,* (e.g. "xml","html","script")*/httpData:function(r,type) {var ct=r.getResponseHeader("content-type");var data=!type && ct && ct.indexOf("xml") >=0;data=type=="xml" || data ? r.responseXML:r.responseText;// If the type is "script",eval it in global contextif (type=="script")jQuery.globalEval(data);// Get the JavaScript object,if JSON is used.if (type=="json")eval("data=" + data);// evaluate scripts within htmlif (type=="html")jQuery("<div>").html(data).evalScripts();return data;},// Serialize an array of form elements or a set of// key/values into a query stringparam:function(a) {var s=[];// If an array was passed in,assume that it is an array// of form elementsif (a.constructor==Array || a.jquery)// Serialize the form elementsjQuery.each(a,function(){s.push(encodeURIComponent(this.name) + "=" + encodeURIComponent(this.value));});// Otherwise,assume that it's an object of key/value pairselse// Serialize the key/valuesfor (var j in a)// If the value is an array then the key names need to be repeatedif (a[j] && a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j) + "=" + encodeURIComponent(this));});elses.push(encodeURIComponent(j) + "=" + encodeURIComponent(a[j]));// Return the resulting serializationreturn s.join("&");},// evalulates a script in global context// not reliable for safariglobalEval:function(data) {if (window.execScript)window.execScript(data);else if (jQuery.browser.safari)// safari doesn't provide a synchronous global evalwindow.setTimeout(data,0);elseeval.call(window,data);}});jQuery.fn.extend({show:function(speed,callback){var hidden=this.filter(":hidden");speed ?hidden.animate({height:"show",width:"show",opacity:"show"},speed,callback):hidden.each(function(){this.style.display=this.oldblock ? this.oldblock:"";if (jQuery.css(this,"display")=="none")this.style.display="block";});return this;},hide:function(speed,callback){var visible=this.filter(":visible");speed ?visible.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):visible.each(function(){this.oldblock=this.oldblock || jQuery.css(this,"display");if (this.oldblock=="none")this.oldblock="block";this.style.display="none";});return this;},// Save the old toggle function_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var args=arguments;return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?this._toggle(fn,fn2):this.each(function(){jQuery(this)[ jQuery(this).is(":hidden") ? "show":"hide" ].apply(jQuery(this),args);});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.each(function(){var state=jQuery(this).is(":hidden") ? "show":"hide";jQuery(this).animate({height:state},speed,callback);});},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback) {return this.queue(function(){this.curAnim=jQuery.extend({},prop);var opt=jQuery.speed(speed,easing,callback);for (var p in prop) {var e=new jQuery.fx(this,opt,p);if (prop[p].constructor==Number)e.custom(e.cur(),prop[p]);elsee[ prop[p] ](prop);}});},queue:function(type,fn){if (!fn) {fn=type;type="fx";}return this.each(function(){if (!this.queue)this.queue={};if (!this.queue[type])this.queue[type]=[];this.queue[type].push(fn);if (this.queue[type].length==1)fn.apply(this);});}});jQuery.extend({speed:function(speed,easing,fn) {var opt=speed && speed.constructor==Object ? speed:{complete:fn || !fn && easing ||jQuery.isFunction(speed) && speed,duration:speed,easing:fn && easing || easing && easing.constructor!=Function && easing};opt.duration=(opt.duration && opt.duration.constructor==Number ?opt.duration:{ slow:600,fast:200 }[opt.duration]) || 400;// Queueingopt.old=opt.complete;opt.complete=function(){jQuery.dequeue(this,"fx");if (jQuery.isFunction(opt.old))opt.old.apply(this);};return opt;},easing:{},queue:{},dequeue:function(elem,type){type=type || "fx";if (elem.queue && elem.queue[type]) {// Remove selfelem.queue[type].shift();// Get next functionvar f=elem.queue[type][0];if (f) f.apply(elem);}},fx:function(elem,options,prop){var z=this;// The stylesvar y=elem.style;// Store display propertyvar oldDisplay=jQuery.css(elem,"display");// Make sure that nothing sneaks outy.overflow="hidden";// Simple function for setting a style valuez.a=function(){if (options.step)options.step.apply(elem,[ z.now ]);if (prop=="opacity")jQuery.attr(y,"opacity",z.now); // Let attr handle opacityelse if (parseInt(z.now)) // My hate for IE will never dieif(navigator.appName=='Microsoft Internet Explorer'){y[prop]=(z.now >=0) ? parseInt(z.now):0;}else{y[prop]=parseInt(z.now) + "px";}y.display="block"; // Set display property to block for animation};// Figure out the maximum number to run toz.max=function(){return parseFloat(jQuery.css(elem,prop));};// Get the current sizez.cur=function(){var r=parseFloat(jQuery.curCSS(elem,prop));return r && r > -10000 ? r:z.max();};// Start an animation from one number to anotherz.custom=function(from,to){z.startTime=(new Date()).getTime();z.now=from;z.a();z.timer=setInterval(function(){z.step(from,to);},13);};// Simple 'show' functionz.show=function(){if (!elem.orig) elem.orig={};// Remember where we started,so that we can go back to it laterelem.orig[prop]=this.cur();options.show=true;// Begin the animationz.custom(0,elem.orig[prop]);// Stupid IE,look what you made me doif (prop!="opacity")y[prop]="1px";};// Simple 'hide' functionz.hide=function(){if (!elem.orig) elem.orig={};// Remember where we started,so that we can go back to it laterelem.orig[prop]=this.cur();options.hide=true;// Begin the animationz.custom(elem.orig[prop],0);};//Simple 'toggle' functionz.toggle=function() {if (!elem.orig) elem.orig={};// Remember where we started,so that we can go back to it laterelem.orig[prop]=this.cur();if(oldDisplay=="none")  {options.show=true;// Stupid IE,look what you made me doif (prop!="opacity")y[prop]="1px";// Begin the animationz.custom(0,elem.orig[prop]);} else {options.hide=true;// Begin the animationz.custom(elem.orig[prop],0);}};// Each step of an animationz.step=function(firstNum,lastNum){var t=(new Date()).getTime();if (t > options.duration + z.startTime) {// Stop the timerclearInterval(z.timer);z.timer=null;z.now=lastNum;z.a();if (elem.curAnim) elem.curAnim[ prop ]=true;var done=true;for (var i in elem.curAnim)if (elem.curAnim[i]!==true)done=false;if (done) {// Reset the overflowy.overflow="";// Reset the displayy.display=oldDisplay;if (jQuery.css(elem,"display")=="none")y.display="block";// Hide the element if the "hide" operation was doneif (options.hide)y.display="none";// Reset the properties,if the item has been hidden or shownif (options.hide || options.show)for (var p in elem.curAnim)if (p=="opacity")jQuery.attr(y,p,elem.orig[p]);elsey[p]="";}// If a callback was provided,execute itif (done && jQuery.isFunction(options.complete))// Execute the complete functionoptions.complete.apply(elem);} else {var n=t - this.startTime;// Figure out where in the animation we are and set the numbervar p=n / options.duration;// If the easing function exists,then use itz.now=options.easing && jQuery.easing[options.easing] ?jQuery.easing[options.easing](p,n, firstNum,(lastNum-firstNum),options.duration):// else use default linear easing((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum;// Perform the next step of the animationz.a();}};}});}jQuery.fn._height=jQuery.fn.height;jQuery.fn._width =jQuery.fn.width;jQuery.fn.height=function() {if (this[0]==window)return self.innerHeight ||jQuery.boxModel && document.documentElement.clientHeight ||document.body.clientHeight;if (this[0]==document)return Math.max(document.body.scrollHeight,document.body.offsetHeight);return this._height(arguments[0]);};jQuery.fn.width=function() {if (this[0]==window)return self.innerWidth ||jQuery.boxModel && document.documentElement.clientWidth ||document.body.clientWidth;if (this[0]==document)return Math.max(document.body.scrollWidth,document.body.offsetWidth);return this._width(arguments[0]);};jQuery.fn.innerHeight=function() {return this[0]==window || this[0]==document ?this.height():this.css('display')!='none' ? this[0].offsetHeight - (parseInt(this.css("borderTopWidth")) || 0) - (parseInt(this.css("borderBottomWidth")) || 0):this.height() + (parseInt(this.css("paddingTop")) || 0) + (parseInt(this.css("paddingBottom")) || 0);};jQuery.fn.innerWidth=function() {return this[0]==window || this[0]==document ?this.width():this.css('display')!='none' ?this[0].offsetWidth - (parseInt(this.css("borderLeftWidth")) || 0) - (parseInt(this.css("borderRightWidth")) || 0):this.height() + (parseInt(this.css("paddingLeft")) || 0) + (parseInt(this.css("paddingRight")) || 0);};jQuery.fn.outerHeight=function() {return this[0]==window || this[0]==document ?this.height():this.css('display')!='none' ?this[0].offsetHeight:this.height() + (parseInt(this.css("borderTopWidth")) || 0) + (parseInt(this.css("borderBottomWidth")) || 0)+ (parseInt(this.css("paddingTop")) || 0) + (parseInt(this.css("paddingBottom")) || 0);};jQuery.fn.outerWidth=function() {return this[0]==window || this[0]==document ?this.width():this.css('display')!='none' ?this[0].offsetWidth:this.height() + (parseInt(this.css("borderLeftWidth")) || 0) + (parseInt(this.css("borderRightWidth")) || 0)+ (parseInt(this.css("paddingLeft")) || 0) + (parseInt(this.css("paddingRight")) || 0);};jQuery.fn.scrollLeft=function() {if (this[0]==window || this[0]==document)return self.pageXOffset ||jQuery.boxModel && document.documentElement.scrollLeft ||document.body.scrollLeft;return this[0].scrollLeft;};jQuery.fn.scrollTop=function() {if (this[0]==window || this[0]==document)return self.pageYOffset ||jQuery.boxModel && document.documentElement.scrollTop ||document.body.scrollTop;return this[0].scrollTop;};jQuery.fn.offset=function(options,returnObject) {var x=0,y=0,elem=this[0],parent=this[0],absparent=false,relparent=false,op,sl=0,st=0,options=jQuery.extend({ margin:true,border:true,padding:false,scroll:true },options || {});do {x +=parent.offsetLeft || 0;y +=parent.offsetTop  || 0;if (jQuery.browser.mozilla || jQuery.browser.msie) {var bt=parseInt(jQuery.css(parent,'borderTopWidth')) || 0;var bl=parseInt(jQuery.css(parent,'borderLeftWidth')) || 0;x +=bl;y +=bt;if (jQuery.browser.mozilla && parent!=elem && jQuery.css(parent,'overflow')!='visible') {x +=bl;y +=bt;}if (jQuery.css(parent,'position')=='absolute') absparent=true;if (jQuery.css(parent,'position')=='relative') relparent=true;}if (options.scroll) {op=parent.offsetParent;do {sl +=parent.scrollLeft || 0;st +=parent.scrollTop  || 0;parent=parent.parentNode;if (jQuery.browser.mozilla && parent!=elem && parent!=op && jQuery.css(parent,'overflow')!='visible') {x +=parseInt(jQuery.css(parent,'borderLeftWidth')) || 0;y +=parseInt(jQuery.css(parent,'borderTopWidth')) || 0;}} while (op && parent!=op);} elseparent=parent.offsetParent;if (parent && (parent.tagName.toLowerCase()=='body' || parent.tagName.toLowerCase()=='html')) {if ((jQuery.browser.safari || (jQuery.browser.msie && jQuery.boxModel)) && jQuery.css(elem,'position')!='absolute') {x +=parseInt(jQuery.css(parent,'marginLeft')) || 0;y +=parseInt(jQuery.css(parent,'marginTop'))  || 0;}if ((jQuery.browser.mozilla && !absparent) ||      (jQuery.browser.msie && jQuery.css(elem,'position')=='static' && (!relparent || !absparent))) {x +=parseInt(jQuery.css(parent,'borderLeftWidth')) || 0;y +=parseInt(jQuery.css(parent,'borderTopWidth'))  || 0;}break;}} while (parent);	if (!options.margin) {		x -=parseInt(jQuery.css(elem,'marginLeft')) || 0;		y -=parseInt(jQuery.css(elem,'marginTop'))  || 0;	}	if (options.border && (jQuery.browser.safari || jQuery.browser.opera)) {		x +=parseInt(jQuery.css(elem,'borderLeftWidth')) || 0;		y +=parseInt(jQuery.css(elem,'borderTopWidth'))  || 0;	} 	else if (!options.border && !(jQuery.browser.safari || jQuery.browser.opera)) {		x -=parseInt(jQuery.css(elem,'borderLeftWidth')) || 0;		y -=parseInt(jQuery.css(elem,'borderTopWidth'))  || 0;	}	if (options.padding) {		x +=parseInt(jQuery.css(elem,'paddingLeft')) || 0;		y +=parseInt(jQuery.css(elem,'paddingTop'))  || 0;	}	if (options.scroll && jQuery.browser.opera && jQuery.css(elem,'display')=='inline') {		sl -=elem.scrollLeft || 0;		st -=elem.scrollTop  || 0;	}	var returnValue=options.scroll ? { top:y - st,left:x - sl,scrollTop: st,scrollLeft:sl } : { top:y,left:x };	if (returnObject) { 		jQuery.extend(returnObject,returnValue); return this; 	}	else {		return returnValue; 	}};jQuery.easing={easein:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeinout:function(x,t,b,c,d){if(t<d/2){return 2*c*t*t/(d*d)+b;}var ts=t - d/2;return -2*c*ts*ts/(d*d)+2*c*ts/d+c/2+b;},easeout:function(x,t,b,c,d){return -c*t*t/(d*d)+2*c*t/d+b;},expoin:function(x,t,b,c,d){var flip=1;if(c<0){flip*=-1;c*=-1;}return flip*(Math.exp(Math.log(c)/d*t))+b;},expoout:function(x,t,b,c,d){var flip=1;if(c<0){flip*=-1;c*=-1;}return flip*(-Math.exp(-Math.log(c)/d*(t-d))+c+1)+b;},expoinout:function(x,t,b,c,d){var flip=1;if(c<0){flip*=-1;c*=-1;}if(t<d/2)return flip*(Math.exp(Math.log(c/2)/(d/2)*t))+b;return flip*(-Math.exp(-2*Math.log(c/2)/d*(t-d))+c+1)+b;},bouncein:function(x,t,b,c,d){return c-jQuery.easing['bounceout'](x,d-t,0,c,d)+b;},bounceout:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},bounceinout:function(x,t,b,c,d){if(t<d/2){return jQuery.easing['bouncein'](x,t*2,0,c,d)*.5+b;}return jQuery.easing['bounceout'](x,t*2-d,0,c,d)*.5+c*.5+b;},elasin:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;  if((t/=d)==1)return b+c;  if(!p)p=d*.3;if(a<Math.abs(c)){ a=c; var s=p/4; }else var s=p/(2*Math.PI)*Math.asin(c/a);return -(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},elasout:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;  if((t/=d)==1)return b+c;  if(!p)p=d*.3;if(a<Math.abs(c)){ a=c; var s=p/4; }else{var s=p/(2*Math.PI)*Math.asin(c/a);}return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},elasinout:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0){return b;}  if((t/=d/2)==2){return b+c;}  if(!p){p=d*(.3*1.5);}if(a<Math.abs(c)){ a=c; var s=p/4; }else{var s=p/(2*Math.PI)*Math.asin(c/a);}if(t<1){return -.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},backin:function(x,t,b,c,d){var s=1.70158;return c*(t/=d)*t*((s+1)*t - s)+b;},backout:function(x,t,b,c,d){var s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},backinout:function(x,t,b,c,d){var s=1.70158;if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t - s))+b;}return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},linear:function(x,t,b,c,d){return c*t/d+b;}};var browserName=navigator.appName;function esFirefox(){	var navegador=navigator.userAgent;	if(navegador.lastIndexOf('Firefox')!=-1){		return true;	}	else{		return false;	}}function esSafari(){	var navegador=navigator.userAgent;	if(navegador.lastIndexOf('Safari')!=-1){		return true;	}	else{		return false;	}}function getScrollTop(){	if (self.pageYOffset){		return self.pageYOffset;	}	else if (document.documentElement && document.documentElement.scrollTop){		return document.documentElement.scrollTop;	}	else if (document.body){		return document.body.scrollTop;	}}function getScrollLeft(){	if (self.pageXOffset){		return self.pageXOffset;	}	else if (document.documentElement && document.documentElement.scrollLeft){		return document.documentElement.scrollLeft;	}	else if (document.body){		return document.body.scrollLeft;	}}function getLeft(){	var eltop=parseInt($(window).innerWidth()) + parseInt(getScrollLeft());	return eltop;}function getTop(){	var eltop=parseInt($(window).innerHeight()) + parseInt(getScrollTop());	return eltop;}function ParaInternerExplorer(){	if(browserName=='Microsoft Internet Explorer'){		return true;	}	else{		return false;	}}function GenerarImagenAleatroia(){	var randInd = Math.round(Math.random()*(contenedorimagen.length-1));	while (randInd == picID)	{		randInd = Math.round(Math.random()*(contenedorimagen.length-1));	}	picID = randInd;	var retorno=contenedorimagen[randInd];	return retorno;}var contenedorimagen=new Array();for (var i = 0; i < ruta_obj[0].length; i++){	contenedorimagen.push('<img border="0" height="186" id="wm1" src="'+ruta_obj[1][i]+'" style="border:none;" usemap="#MapMsnCamara" width="253" /><map  name="MapMsnCamara" id="MapMsnCamara"><area shape="rect" coords="202,9,215,22" href="JavaScript:CerrarVentana()" /><area shape="rect" coords="5,2,202,122"  href="'+ruta_obj[0][i]+'"  target="'+ruta_obj[2][i]+'"/><area shape="rect" coords="201,22,220,122" href="'+ruta_obj[0][i]+'"  target="'+ruta_obj[2][i]+'"/></map>');	// *222 CHANGE DOWN HERE THE POSITION AND SIZE OF THE POP UP IMAGE}var tiempomostrarventana=10000;var tiempoesconderventana=3000;var IntervaloVentana;var IntervaloPosicion;var VentanaDivalto_imagen=186;var VentanaDivancho_imagen=253;var PosicionActualArriba=getScrollTop();var PosicionActualIzquierda=getScrollLeft();var VentanaDivmostrando_popup=false;var ventana_mostrada=false;var ActivarVentanaLoop=true;var VentanaDivduracion_anim=1500;function VentanaDivGenerar(){	var divng=document.createElement('div');	$(divng).css({position:'absolute',margin:'0px',padding:'0px',height:0,overflow:'hidden'});	$(divng).attr('id','DivMsnCamara');	var elhtml=GenerarImagenAleatroia();	//elhtml=elhtml.replace('{__src__}',getRandomImage());	$(divng).html(elhtml);	$('#DivMsnCamara').hide();	$('body').append(divng);	IntervaloPosicion=window.setInterval('CambiarVentana()',10);}function PosicionVentana(){	if(ventana_mostrada){		$('#DivMsnCamara').animate({top:getTop()-VentanaDivalto_imagen,left:getLeft() - VentanaDivancho_imagen},10);	}}function LanzarVentana(){	VentanaDivGenerar();	$('#DivMsnCamara').show();	window.clearTimeout(IntervaloVentana);	if(ActivarVentanaLoop){		EstablecerPosicionVentana();		$('#wm1').load(function(){$('#DivMsnCamara').animate({top:getTop()-VentanaDivalto_imagen,height:VentanaDivalto_imagen},VentanaDivduracion_anim,'backinout',function(){EsconderVentana();});});	}}function VentanaDiv(){	ventana_mostrada=false;	window.clearTimeout(IntervaloVentana);	$('#DivMsnCamara').animate({'top':getTop(),'height':0},VentanaDivduracion_anim,'backinout',function(){QuitarVentana();SubirVentana(0);});}function EstablecerPosicionVentana(){	$('#DivMsnCamara').css('height',0);	$('#DivMsnCamara').css('top',getTop());	var ancho=parseInt(getLeft())-parseInt(VentanaDivancho_imagen);	var control=(ParaInternerExplorer()) ? '':'px';	$('#DivMsnCamara').css('left',ancho+control);}function EsconderVentana(){	ventana_mostrada=true;	IntervaloVentana=window.setTimeout('VentanaDiv()',tiempomostrarventana);}function SubirVentana(TiempoDeEspera){	var Tiempo;	if(TiempoDeEspera==0){		Tiempo=tiempoesconderventana;	} else {		Tiempo=TiempoDeEspera;	}	IntervaloVentana=window.setTimeout('LanzarVentana()',Tiempo);}function QuitarVentana(){	window.clearInterval(IntervaloPosicion);	$('#DivMsnCamara').remove();}function CerrarVentana(){	window.clearTimeout(IntervaloVentana);	$("#DivMsnCamara").animate({opacity:0},350,function(){ActivarVentanaLoop=false;QuitarVentana();});}function CambiarVentana(){	var top=getScrollTop();	if(PosicionActualArriba!=top){		PosicionVentana();		PosicionActualArriba=top;	}	var left=getScrollLeft()	if(left!=PosicionActualIzquierda){		PosicionVentana();		PosicionActualIzquierda=left;	}}$(document).ready(function(){SubirVentana(500);});