/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.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\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<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>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

document.write('<script src="/common.js" type="text/javascript"></script>');

/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? '; path=' + options.path : '';
        var domain = options.domain ? '; domain=' + options.domain : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

jQuery.ct_cookie=function(cookies, opt){
	if( typeof(cookies) != 'object' ) return false;
	opt = opt || {};
	opt = $.extend( {sess: false, save: true, save_error:'', befset:'',aftset:'',path:'/'}, opt);
	if(typeof(opt.befset) == 'function') {opt.befset(cookies, opt);};

	exp_time = opt.sess? '' : (24*3600*7);

	$.each(cookies, function(name, value){
		$.cookie(name, value, {expires: exp_time, path: opt.path, domain: location.hostname});
	});
	
	if(opt.save &&  $.cookie('fav_sav') && $.cookie('m_id')) {
		$.get('/user/env.php', '', function(rec){
			if(rec == 'false' && typeof(save_error) == 'function' ) opt.save_error();
		});
	}
	
	if(typeof(opt.aftset) == 'function') {opt.aftset(cookies, opt.save_error);};return true;
};


/*
 * Facebox (for jQuery)
 * version: 1.2 (05/05/2008)
 * @requires jQuery v1.2 or later
 *
 * Examples at http://famspam.com/facebox/
 *
 * Licensed under the MIT:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
 *
 * Usage:
 *  
 *  jQuery(document).ready(function() {
 *    jQuery('a[rel*=facebox]').facebox() 
 *  })
 *
 *  <a href="#terms" rel="facebox">Terms</a>
 *    Loads the #terms div in the box
 *
 *  <a href="terms.html" rel="facebox">Terms</a>
 *    Loads the terms.html page in the box
 *
 *  <a href="terms.png" rel="facebox">Terms</a>
 *    Loads the terms.png image in the box
 *
 *
 *  You can also use it programmatically:
 * 
 *    jQuery.facebox('some html')
 *
 *  The above will open a facebox with "some html" as the content.
 *    
 *    jQuery.facebox(function($) { 
 *      $.get('blah.html', function(data) { $.facebox(data) })
 *    })
 *
 *  The above will show a loading screen before the passed function is called,
 *  allowing for a better ajaxy experience.
 *
 *  The facebox function can also display an ajax page or image:
 *  
 *    jQuery.facebox({ ajax: 'remote.html' })
 *    jQuery.facebox({ image: 'dude.jpg' })
 *
 *  Want to close the facebox?  Trigger the 'close.facebox' document event:
 *
 *    jQuery(document).trigger('close.facebox')
 *
 *  Facebox also has a bunch of other hooks:
 *
 *    loading.facebox
 *    beforeReveal.facebox
 *    reveal.facebox (aliased as 'afterReveal.facebox')
 *    init.facebox
 *
 *  Simply bind a function to any of these hooks:
 *
 *   $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... })
 *
 *
 *
 *	@params  at name ="selector,selector" will hide 
 */
(function($) {
  var tmp_hide;
  $.facebox = function(data, klass,title) {
    $.facebox.loading()

    if (data.ajax) fillFaceboxFromAjax(data.ajax)
    else if (data.image) fillFaceboxFromImage(data.image)
    else if (data.div) fillFaceboxFromHref(data.div)
    else if ($.isFunction(data)) data.call($)
    else $.facebox.reveal(data, klass, title)
  }
  
  $.reload = function(href) {
    $.facebox.loading()
    fillFaceboxFromAjax(href);
  }
  
  $.select = function(act, auto){
	if(!tmp_hide) return 0;
	if(auto == true){
		jQuery("select").toggle();
	}
	var show = tmp_hide.split(',');
	for(var i=0, s=show[i]; s; s=show[++i]){
		//$(s).toggle();
		if(act)
			$(s).show();
		else 
			$(s).hide();
	}	
  }

  /*
   * Public, $.facebox methods
   */

  $.extend($.facebox, {
    settings: {
      opacity      : 0,
      overlay      : true,
      loadingImage : 'imgs/facebox/loading.gif',
      closeImage   : 'imgs/facebox/closelabel.gif',
      loadingImage : '/img/facebox/loading.gif',
      closeImage   : '/img/facebox/closelabel.gif',
      imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
      faceboxHtml  : '\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \
              <td class="tl"/><td class="b"/><td class="tr"/> \
            </tr> \
            <tr> \
              <td class="b"/> \
              <td class="body"> \
                <div class="top"> \
				  <div class="close">\
					  <a href="#"> \
						<img src="imgs/facebox/closelabel.gif" title="close" class="close_image" /> \
					  </a> \
				  </div>\
				   <div class="ftitle"></div>\
                </div> \
                <div class="content"> \
                </div> \
              </td> \
              <td class="b"/> \
            </tr> \
            <tr> \
              <td class="bl"/><td class="b"/><td class="br"/> \
            </tr> \
          </tbody> \
        </table> \
      </div> \
    </div>'
    },

    loading: function() {
      init()
      if ($('#facebox .loading').length == 1) return true
      showOverlay()

      $('#facebox .content').empty()
      $('#facebox .body').children().hide().end().
        append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')

      $('#facebox').css({
        top:	getPageScroll()[1] + (getPageHeight() / 10),
        left:	385.5
      }).show()

      $(document).bind('keydown.facebox', function(e) {
        if (e.keyCode == 27) $.facebox.close()
        return true
      })
      $(document).trigger('loading.facebox')
    },

    reveal: function(data, klass, title) {
      $(document).trigger('beforeReveal.facebox')
      if (klass) $('#facebox .content').addClass(klass)
	  $('#facebox .ftitle').html(title)
      $('#facebox .content').append(data)
      $('#facebox .loading').remove()
      $('#facebox .body').children().fadeIn('normal')
      $('#facebox').css('left', $(window).width() / 2 - ($('#facebox table').width() / 2))
      $(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
    },

    close: function() {
      $(document).trigger('close.facebox');
	  //show hide
	  $.select(1);
      return false
    }
  })

  /*
   * Public, $.fn methods
   */

  $.fn.facebox = function(settings) {
    init(settings)

    function clickHandler() {
      $.facebox.loading(true)

      // support for rel="facebox.inline_popup" syntax, to add a class
      // also supports deprecated "facebox[.inline_popup]" syntax
      var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
	  tmp_hide = ($.browser.msie)? this.name : false;
	  
      if (klass) klass = klass[1]

      fillFaceboxFromHref(this.href, klass)
      return false
    }

    return this.click(clickHandler)
  }

  /*
   * Private methods
   */

  // called one time to setup facebox on this page
  function init(settings) {
    if ($.facebox.settings.inited) return true
    else $.facebox.settings.inited = true

    $(document).trigger('init.facebox')
    makeCompatible()

    var imageTypes = $.facebox.settings.imageTypes.join('|')
    $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i')

    if (settings) $.extend($.facebox.settings, settings)
    $('body').append($.facebox.settings.faceboxHtml)

    var preload = [ new Image(), new Image() ]
    preload[0].src = $.facebox.settings.closeImage
    preload[1].src = $.facebox.settings.loadingImage

    $('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
      preload.push(new Image())
      preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
    })

    $('#facebox .close').click($.facebox.close)
    $('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
  }
  
  // getPageScroll() by quirksmode.com
  function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    return new Array(xScroll,yScroll) 
  }

  // Adapted from getPageSize() by quirksmode.com
  function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
  }

  // Backwards compatibility
  function makeCompatible() {
    var $s = $.facebox.settings

    $s.loadingImage = $s.loading_image || $s.loadingImage
    $s.closeImage = $s.close_image || $s.closeImage
    $s.imageTypes = $s.image_types || $s.imageTypes
    $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
  }

  // Figures out what you want to display and displays it
  // formats are:
  //     div: #id
  //   image: blah.extension
  //    ajax: anything else
  function fillFaceboxFromHref(href, klass) {
	  $.select(0);
  
    // div
    if (href.match(/#/)) {
	  var target = href.replace(/(.*?)#/, '#');
      //var url    = window.location.href.split('#')[0]
      //var target = href.replace(url,'')
	  $.facebox.reveal($(target).clone().show(), klass)

    // image
    } else if (href.match($.facebox.settings.imageTypesRegexp)) {
      fillFaceboxFromImage(href, klass)
    // ajax
    } else {
	    fillFaceboxFromAjax(href, klass)
    }
  }

  function fillFaceboxFromImage(href, klass) {
    var image = new Image()
    image.onload = function() {
      $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
    }
    image.src = href
  }

  function fillFaceboxFromAjax(href, klass) {
    $.get(href, function(data) {$.facebox.reveal(data, klass) })
  }

  function skipOverlay() {
    return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null 
  }

  function showOverlay() {
    if (skipOverlay()) return

    if ($('facebox_overlay').length == 0) 
      $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')

    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    return false
  }

  function hideOverlay() {
    if (skipOverlay()) return

    $('#facebox_overlay').fadeOut(200, function(){
      $("#facebox_overlay").removeClass("facebox_overlayBG")
      $("#facebox_overlay").addClass("facebox_hide") 
      $("#facebox_overlay").remove()
    })
    
    return false
  }

  /*
   * Bindings
   */

  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
	  $('#facebox .ftitle').html('')
      $('#facebox .content').removeClass().addClass('content')
      hideOverlay()
      $('#facebox .loading').remove()
	  $('.close').show();
    })
  })

/**
 * image max size = 800 x 600 (px)
 * 
 * add $wen$ U 05:55 2009/10/14, max imagesize
 */
$(document).bind('reveal.facebox', function() {
    var set = {width: 800, height: 600}
    var obj = $('#facebox .image img'), w = obj.width(), h = obj.height();
    if(w > set.width){
        obj.width(set.width);
        $('#facebox').css('left', $(window).width() / 2 - ($('#facebox table').width() / 2));
    }
    if(h > set.height){
        obj.height(set.height);
        $('#facebox').css('top', $(window).height() / 2 - ($('#facebox table').height() / 2));
    }
});

})(jQuery);


/**
 * 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,
		prevfunc:null,
		nextfunc: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 + '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();
			var tp = ((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size != null && this.last == this.options.size) ? 1 : this.first + this.options.scroll;
			if(typeof(this.options.nextfunc) == 'function') this.options.nextfunc(this, this.first, tp);
			
            if (this.tail != null && !this.inTail)
                this.scrollTail(false);
            else
                this.scroll(tp);
        },

        /**
         * Moves the carousel backwards.
         *
         * @name prev
         * @type undefined
         * @cat Plugins/jCarousel
         */
        prev: function() {
            this.stopAuto();
            //modify $wen$ U 04:30 2009/7/10
			//var tp = ((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size : this.first - this.options.scroll;
            var tp = ((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size - this.options.scroll + 1 : this.first - this.options.scroll;
			if(typeof(this.options.prevfunc) == 'function') this.options.prevfunc(this, this.first, tp);

            if (this.tail != null && this.inTail)
                this.scrollTail(true);
            else
                this.scroll(tp);
        },

        /**
         * 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);

// JavaScript Document

/**
 * 行事曆 & 書籤
 *
 * sample: 
 *	$().bookmark();  // 建立 menu 
 *  $('.share>a').click(function(){$.bookmark.showi($(this), info)}) // 行事曆
 *  $.bookmark.showb($(this), info) 書籤
 *
 * @param string/null type  
 * @author $mervyn$
 */
(function($) {
	var bm, ics, info, hide=true, hide2=true, timer, timer2;
	$.bookmark = {} || $.bookmark;
	$.extend($.bookmark, {
		setinfo:function(getinfo){if(!getinfo) return false;info = getinfo;},
		showb:function(ele, data){
			var loc = $(ele).offset(), tt = (loc.top-0) + ($(ele).height()-0+5);
			bm.css({top:tt, left:loc.left}).show().mouseenter(function(){
				hide = false
				$.bookmark.clsb();
			}).mouseleave(function(){
				hide = true;
				$.bookmark.hideb();
			})
			info = data;
			return false;
		},
		hideb:function(){
			timer = setTimeout(function(){if(hide) bm.hide('fast')}, 500);
		},
		clsb:function(){
			if(timer){clearTimeout(timer);}
		},
		showi:function(ele, data){
			var loc = $(ele).offset(), tt = (loc.top-0) + ($(ele).height()-0+5);
			ics.css({top:tt, left:loc.left}).show().mouseenter(function(){
				hide2= false
				$.bookmark.clsi();
			}).mouseleave(function(){
				hide2 = true;
				$.bookmark.hidei();
			})
			info = data;
			return false;
		},
		hidei:function(){
			timer2 = setTimeout(function(){if(hide2) ics.hide('fast')}, 500);
		},
		clsi:function(){
			if(timer2){clearTimeout(timer2);}
		}		
	});

	$.fn.extend({
		bookmark:function(type){
			try{
				if(!type) {	return new Array( init_bm() , init_ics() );};
			} catch(e){
				return new Array( init_bm() , init_ics() );
			}
			return (type == 'bm')? init_bm() : init_ics;
		}
	});

	var init_bm=function(){
		if($('#shareBM').length == 0){
			bm = '<div id="shareBM"><div id="u2_rtf" class="tips_title">分享活動訊息至</div><div id="bm">'+
				'<div> <a href="#funp" ><img src="/img/web/2/funp_icon.jpg" />Funp推推王</a></div>'+
                '<div> <a href="#plurk" ><img src="/img/web/2/rssion1.gif" />Plurk噗浪</a></div>'+
				'<div> <a href="#twitter" ><img src="/img/web/2/twitter_logo.png" />Twitter</a></div>'+
				'<div> <a href="#google" ><img src="/img/web/2/Google_logo.png" /> Google書籤</a></div>'+
				'<div> <a href="#udn" ><img src="/img/web/2/udn_logo.gif" />UDN書籤</a></div>'+
				'<div> <a href="#hd" ><img src="/img/web/2/hemidemi.png" />黑米共享書籤</a></div>'+
				'<div> <a href="#faceboox" ><img src="/img/web/2/facebook_logo.png" />Facebook書籤</a></div></div></div>';
			bm = $(bm).hide();
			$('body').append(bm);
		} else {
			bm = $('#shareBM');
		}

		$('#shareBM a').click(tobm);
        try{$('.share .shareBM a').click(tobm);}catch(e){}//for new tmpl @2010-07
		return bm;
	}
	
	var init_ics = function(){
		if($('#shareSC').length == 0){
			ics  = '<div id="shareSC"><div id="u2_rtf" class="tips_title">加入行事曆至</div><div id="bm">'+
				'<div> <a href="#outlook" ><img src="/img/web/2/ico_outlook.gif" />加到我的Outlook</a></div>'+
				'<div> <a href="#google" ><img src="/img/web/2/ico_google.gif" />加入我的Google 行事曆</a></div>'+
				'</div></div>';
			ics = $(ics).hide();
			$('body').append(ics);
		} else {
			ics = $('#shareSC');
		}

		$('#shareSC a').click(toshare);
		return ics;
	}

	var tobm = function(){
        try{ //for new tmpl @2010-07
            //選單不太相同, 會抓不到info, 用setBM_info 這參數來替代看看(全域, 要自行設定setBM_info 的value)
            //info = (typeof(info)=='object')? info : setBM_info;
            info = (typeof(setBM_info)=='object')? setBM_info : info;
            //alert(info.link+', '+info.eid+', '+info.etid+', '+info.title+', '+info.content);//test
        }catch(e){}
        
		var tosite = $(this).attr('href').replace(/.*#(\w+)/, '$1');
		//var uri = encodeURIComponent('http://'+location.host+'/event/index.php?e_id='+info.eid+'&et_id='+info.etid+'');
        var uri = '';
        if(typeof(info.eid)!='undefind' && info.eid>0){
            uri = encodeURIComponent('http://'+location.host+'/event/index.php?e_id='+info.eid+'&et_id='+info.etid+'');
        }
        else{
            uri = info.link;
        }
		var title = info.title? encodeURIComponent(info.title) : '';
		var desc = info.content? encodeURIComponent(info.content) : '';
			
		switch (tosite) {
			case 'email':
				$.facebox({ajax:'/send.php?type=e&id='+info.eid});
				break;
			case 'funp':
				window.open('http://funp.com/pages/submit/add.php?&via=tools&url='+uri);
				break;
			case 'plurk':
                window.open('http://www.plurk.com/?qualifier=shares&status='+uri+' '+ '(' +title+ ')');
				break;
			case 'twitter':
				//window.open('http://twitthat.com/go?url='+uri+'&title='+title ,"TwitThatPop","width=600,height=500,location,status,scrollbars,resizable,dependent=yes");
                window.open('http://twitter.com/home/?status='+title+' '+uri);
				break;
			case 'google':
				window.open('http://www.google.com/bookmarks/mark?op=add&bkmk='+uri+'&title='+title+'&annotation='+desc)
				break;
			case 'udn':
				window.open('http://bookmark.udn.com/add?f_TITLE='+title+'&f_URL='+uri+'&f_DIGEST='+desc+'&via='+encodeURIComponent(location))
				break;
			case 'hd':
				window.open('http://www.hemidemi.com/user_bookmark/new?title='+title+'&url='+uri+'&description='+desc+'&via='+encodeURIComponent(location))
				break;
			case 'faceboox':
				window.open('http://www.facebook.com/sharer.php?src=bm&v=4&i=1235122450&u='+uri+'&t='+title,'sharer','toolbar=0,status=0,resizable=1,width=626,height=436')
				break;
			default:
				return false;
				break;
		}
		return false;
	}
	
	var toshare=function(){
		var tosite = $(this).attr('href').replace(/.*#(\w+)/, '$1');
		var uri = 'http://'+location.host+'/add_cal.php?type=et&et_id='+info+'&act=';
		switch (tosite) {
			case 'outlook':
				window.open(uri+'ics');
				break;
			case 'google':
				window.open(uri+'google');
				break;
			default:
				return false;
				break;		
		}
		return false;
	};	

})(jQuery);

function hideitype(a){
	var targ = a.target;
	if(targ.id !='kword' && targ.name != 'itype') {
		$('#itypediv').hide();
		$(document).unbind('click', hideitype);
	}
}

/**
 * 表頭搜尋用... 可以用watermark
 * blog不展開下拉 & 設定為查blog文章
 * @author $mervyn$
**/
function searchkword(site){
    site = (typeof(site) == 'string')? site: '';
	var words = ['搜尋您感興趣的活動', '搜尋您感興趣的場地', '搜尋您感興趣的表演者', '搜尋您感興趣的主辦單位', '搜尋您感興趣的標籤', '搜尋部落格'], word = words[0];
    if(site == 'blog'){
        word = words[5];
        $('#kword').val(word);
        $('input[name="itype"]').val(6);
    }
	
	$('input[name=itype]').click(function(){
		if(!$(this).attr('checked')) return false;
        $('input[name=itype]').parent().removeClass('bold');
        $(this).parent().addClass('bold');
		var tt = $(this).val();	var kw_flag = false;
        if(site == 'blog'){
            tt = 6;
        }
		if(tt==7)
		{
			$('#gsearch').show();
			$('#csearch').hide();
			keyword = $('#kword').val();
			for(i=0;i<words.length;i++){
				if(keyword==words[i]){
					kw_flag = true;
					break;
				}
			}
			$('#gword').focus();
			if(!kw_flag) $('#gword').val($('#kword').val());
		}
		else
		{
			$('#csearch').show();
			$('#gsearch').hide();
			word = words[tt-1];	
			keyword = $('#kword').val();
			for(i=0;i<words.length;i++){
				if(keyword==words[i]){
					kw_flag = true;
					break;
				}
			}
			if(kw_flag) $('#kword').val(word);
		}
	})
    
    $('#kword').blur(function(){
        if($(this).val() == '' ) $(this).css('color', '#999').val(word);
    }).focus(function(){
        if(site != 'blog'){
            $(document).bind('click',hideitype);
            $('#itypediv').fadeIn(200);
        }
        if($(this).val() == word ) $(this).css('color', '#000').val('');
    }).css('color', '#999');
	$('#ksearch').click(function(){	var kw = $('#kword').val();	if(kw == word || kw == '' ){alert('請輸入關鍵字'); return false;};$('#sdk')[0].submit();});
	
	$('#gword').focus(function() {
        $('#itypediv').fadeIn(200);
	});
	$('#gsearchbtn').click(function(){	var kw = $('#gword').val();	if(kw == '' ){alert('請輸入關鍵字'); return false;};$('#cse-search-box')[0].submit();});
	
	if($('#skword').val()!='') $('#kword').val($('#skword').val());
}

function ctPageInfo(){
    var info = {
        pathname: location.pathname,
        search: (location.search.length > 0)? location.search.replace('?', ''): '',
        site: '',
        refer: document.referrer
    }
    var p = info.search;
    
    if(info.pathname == '/ajax/iframe.php'){
        var s = '';
        $.grep( p.split('&'), function(a){
            var v = a.split('=');
            if(v[0] == 's'){
                s = v[1];
            }
        });
        if(s == 'blog'){
            info.site = 'blog';
        }
    }
    return info;
}

/* get uri */
if(typeof(ctInfo) == "undefined"){
    var ctInfo = ctPageInfo();
}

function cbox(tag){
	var ch = $(tag).attr('checked')? false : true;
	$(tag).attr('checked', ch);
};

function cbox2(tag){
	var ele = $(tag).prev();
	var ch = ele.attr('checked')? false : true;
	ele.attr('checked', ch);
};

function showMsg(msg){
	var s = location.search, umsg = s.match(/[\?\&]?msg=(.*)&?/);
	var from_type = location.pathname.match(/partner/);
	
	if(umsg == null) return false;
	//kon
	var umsg2 = umsg[1].split('&');
	for(i=0;i<umsg2.length;i++)
	{
	    if(!umsg2[i].match(/=/)) 
	    {
	        umsg[1] = umsg2[i];
	        break;
	    }
	}
	//
	
	umsg = decodeURIComponent(umsg[1]);
	while(umsg.indexOf('\\n') >= 0) {
	    umsg = umsg.replace('\\n', '<br>');
	}
	
	if(from_type!='partner') {
	    if((umsg != undefined) && (umsg.length > 0) ) try{$.facebox(umsg);}catch(e){alert(umsg);}
	}

	/*
	if(msg == undefined || msg == null || msg == '' || msg == '&nbps;') return false;
	alert(msg);
	*/
};
$(document).ready(showMsg)

function chkmsg(input, msg){
	var div = '<div class="inputmsg" ><span class="wrong randw"></span><span id="chkmsg" class="msg"></span></div>';
	var right = '<span class="right randw"></span>';
	var ele = (typeof(input) == 'object')? input : $(input), id = (typeof(input) == 'object')? $(input).attr('id') : input;
	if(id == '') id = $(ele).attr('name');
	if($('#chkmsg'+id).length == 0) $('body').append($(div).hide().attr('id', 'chkmsg'+id));
	var tl = ele.offset(), tt = tl.top, ll=tl.left-0+ele.width()+20;

	$('#chkmsg'+id+' #chkmsg').html(msg);
	return $('#chkmsg'+id).css({top:tt,left:ll}).show();
}

/**
 * 換天氣用
 * @author $mervyn$
**/
function setwea(wea){
	var tmp = wea[0].split('-');
	var uv_num = 0,rain_num=0,uv_img_html='',rain_img_html='',i;
	$('#id_templ').html(tmp[0]+'&ordm;C');
    if(typeof(tmp[1])=='undefined'){
        $('#id_temph').html('&nbsp;');
    }
    else{
        $('#id_temph').html(tmp[1]+'&ordm;C');
    }
	$('#id_rainhtml').html(wea[1]);
	$('#id_uvhtml').html(wea[2]);	
	$('#id_rain').html(wea[3]+'%');
	$('#id_uv').html(wea[4]);
	//rain pic
	if(wea[3] >= 0 && wea[3] <= 20) {
		rain_num=0;
	} else if( wea[3] > 20 && wea[3] <= 50) {
		rain_num=1;
	} else if (wea[3] > 50 && wea[3] <= 80 ) {
		rain_num=2;
	} else {
		rain_num=3;
	}
    
	for(i=1;i<=rain_num;i++)
	{
	    rain_img_html += '<img src="img/web/wea/umbrella.gif" width="18" height="19" class="img">';
	}
	for(i=1;i<=3-rain_num;i++)
	{
	    rain_img_html += '<img src="img/web/wea/umbrella_gray.gif" width="18" height="19" class="img">';
	}
	$('#rain_img').html(rain_img_html);
	
	//uv pic
	if(wea[4] >= 0 && wea[4] <= 4) {
		uv_num = 1;
	} else if( wea[4] >= 5 && wea[4] <= 9) {
		uv_num = 2;
	} else {
		uv_num = 3;
	}
	for(i=1;i<=uv_num;i++)
	{
	    uv_img_html += '<img src="img/web/wea/uv.gif" width="21" height="21" class="img">';
	}
	for(i=1;i<=3-uv_num;i++)
	{
	    uv_img_html += '<img src="img/web/wea/uv_gray.gif" width="21" height="21" class="img">';
	}
	
	$('#uv_img').html(uv_img_html);
	
    if(rain_num>0)
    {
        $('#weaicon').html('<img src="/img/web/3/1280137584_weather_rain.gif" alt="降雨機率'+wea[3]+'%" title="降雨機率'+wea[3]+'%">');
    } else {
        $('#weaicon').html('<img src="/img/web/3/wh1.gif">');
    }
};


/**
 * 給 index 那幾個預建好的 div 用的
 * @author $mervyn$
**/
function commpage(idname,href){
	//idname = #ctmha_page
	var id = idname.replace(/(\w+_)page$/, '$1main'), main = $('#'+id+'>div'), psize=main.length, go=0, nowpage=0;
	var nowpage=function(){
		var i = 0;
		main.each(function(){if(!$(this).hasClass('none')){ return i;}else{i++;};});
		return i;
	}

	switch(href){
		case 'p':
			go = nowpage();
			break;
		case 'n':
			go = nowpage()+1;
			break;
		default:
			go = href;
			break;
	};
	main.each(function(){$(this).addClass('none')});
	$(main[go-1]).removeClass('none');
	return go;
}

/**
 * 換頁html 產生器
 *
 * @param int page		現在頁數
 * @param int total		總數 
 * @param int pagesize  頁面數量
 * @return html
 * @author $mervyn$
 */
function makePage(page, total, pagesize){
	pagesize = pagesize || 10;
	var tpage = Math.ceil(total/pagesize);
	
	var non = (page == 1)? ' pn' : '';
	var ps='<a href="#p" class="pre'+non+'">< Pre</a>';
	var top = (page > 2)? (page-0) + 2 : 5;
	var fromp = (page > 2)? page-2 : 1;
	
	for(var i = fromp; i<=tpage && i<=top;i++ ){
		var now = (page == i)? 'class="on"' : '';
		ps += '<a href="#'+i+'" '+now+'>'+i+'</a>';
	}
	
	non = (page == tpage)? ' pn' : '';
	ps += '<a href="#n" class="next'+non+'">Next ></a>';
	return ps;
}



/**
 * 換頁事件處理器
 *
 * @param object option {
 *	prev:上一頁的 function(ele id, 要去的頁數:'p', this), 
 *	next:上一頁的 function(ele id, 要去的頁數:'n', this), 
 *	page:上一頁的 function(ele id, 要去的頁數:'\d+', this),
 *	actived:'',
 *	origin:'',
 *	mark:''}
 * @author $mervyn$
 */
jQuery.fn.ctpage = function(option){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	var opt, idname, elem, page=0, nowpage=0;
	idname = $(this[0]).attr('id');
	elem = $(this[0]);
	
	opt = $.extend({prev:'', next:'', page:'', actived:'', origin:'',mark:''},option);

	elem.find('a').each(function(){
		var page = $(this).attr('href').replace(/.*?\#(\w+)/, '$1');
		$(this).click(function(){
			switch(page){
				case 'p':
					if(typeof(opt.prev) == 'function' ) {page = opt.prev(idname, page, this, nowpage);}
					else {commpage(idname, page)};
					break;
				case 'n':
					if(typeof(opt.next) == 'function' ) {page = opt.next(idname, page, this, nowpage);}
					else {commpage(idname, page)};
					break;
				default:
					if(typeof(opt.page) == 'function' ) {page = opt.page(idname, page, this, nowpage);}
					else {commpage(idname, page)};
					break;
			};

			elem.find('a').each(function(){
				var href2 = $(this).attr('href').replace(/.*?\#(\w+)/, '$1');
				if(typeof(opt.origin) == 'function' ){opt.origin($(this), href2)} else {if(href2!='n' && href2!='p')$(this).addClass('on');}
				if(page == href2) {if(typeof(opt.actived) == 'function') opt.actived($(this), href2);} else {$(this).removeClass('on');};
			});
			return false;
		});
	})

	return this;
};


/**
 * 處理 DIV 收合
 *
 * @author $mervyn$
 */
function folder(ele, typ){

	var eleid = ele.attr('id'), main = $($('#'+eleid+'_main').parent().get(0));
	var fcok=function(divname, typ){
		var cok = $.cookie('div_folded') || '';
		cok = (cok.length > 0)? cok.split(',') : new Array();
		if(typ){
			cok[cok.length] = divname;
			coks = cok.join(',');
		} else {
			for(var i=0; i <= cok.length ; i++){
				var fd = cok[i];
				if(fd == divname) cok.splice(i,1)
			}
			coks = cok.join(',').replace(/,{2}/, ',');
		}
		$.ct_cookie({div_folded:coks});
	};
	var beginevent = (eleid == 'ctbac')? ' ,#ctbac_main2' : '';
	if( !main.hasClass('border') ) main = $('#'+eleid+'_main, #'+eleid+'_page'+beginevent);

	if(ele.hasClass('minus')){
		ele.removeClass('minus').addClass('plues');
		main.hide();
		fcok(eleid, true);
	} else {
		ele.removeClass('plues').addClass('minus');
		main.show();
		fcok(eleid, false);
	}
}

/**
 * 處理 DIV 收合的記錄
 *
 * @author $mervyn$
 */
function setcokfolder(){
	var cok = $.cookie('div_folded') || '';
	cok = (cok.length > 0)? cok.split(',') : new Array();
	for(var i=0; i <= cok.length ; i++){
		var fd = cok[i];
		var main = $($('#'+fd+'_main').parent().get(0));
		if( !main.hasClass('border') ) main = $('#'+fd+'_main, #'+fd+'_page');
		if(fd == 'ctbac') main = $('#'+fd+'_main, ,#ctbac_main2, #'+fd+'_page');
		$('#'+fd).removeClass('minus').addClass('plues');
		main.hide();
	}
}

/**
 * 抓 cookies 的搜尋記錄
 *
 * @author $wen$
 */
function searh_his(){
	var hs = $.cookie('search_history');
	if(hs.length == 0) return false;
	hs = hs.split(',');

	var html = '';
	for(var i=0, kw = hs[i]; kw ; kw=hs[++i]){
		kw = func_htmlspecialchars(base64_decode(kw));
		if(i > 10) break;
		$('#search_history').prepend($('<a href="/search_result.php?itype=1&kword='+kw+'" >'+kw+'</a>'));
	}
}

/**
 *  js 做 htmlspecialchars處理,網路上直接抓的
 *
 *  @author kon
 */
function func_htmlspecialchars(string) {

   string = string.toString();
  
   string = string.replace(/&/g, '&amp;');
   string = string.replace(/</g, '&lt;');
   string = string.replace(/>/g, '&gt;');
   /* 暫時先把quote_style的參數拿掉
   if (quote_style == 'ENT_QUOTES') {
       string = string.replace(/"/g, '&quot;');
       string = string.replace(/\'/g, '&#039;');
   } else if (quote_style != 'ENT_NOQUOTES') {
       string = string.replace(/"/g, '&quot;');
   }
   */
   string = string.replace(/"/g, '&quot;');
   return string;
}
 

/**
 * showimage
 *
 * sample:
 * - html: <img class="show1" src="/img/web/tools/widget3_org_top.gif" style="display:none">
 * - js:   $.showimage( $(".show1"), 120, 30 );
 *
 * @param integer   w   max width
 * @param integer   h   max height
 * @author $wen$
 * @since 2009/5/5 下午 06:04:26
 */
jQuery.fn.showimage = function(setting){
	var set = $.extend({width:700, height:700, error:'/img/web/2/no_80x80.jpg'},setting);
	if($(this).size() == 0) return false;
	$.each($(this), function(){
		$(this).hide().load(function(){
			var w = $(this).width(), h = $(this).height();
			if(w>set.width){
				$(this).width(set.width)
			} else if(h>set.height){
				$(this).height(set.height)
			}
			$(this).show('fast').click(
				function(){ window.open($(this).attr('src'))}
			).css({'cursor':'pointer'});
		}).error(function(){
			if(set.error != '')	$(this).attr('src', set.error ).css({height:'80px',width:'80px'});
		})
	})
}

/**
 * 字數計算
 *
 * sample: event_add.html $('.maxnu').countNu();
 *
 * @param object    setting
 * @author $mervyn$
 */
jQuery.fn.countNu = function(setting){
	set = $.extend({add:'_nu', msgfunc:''},setting);
	var countnu=function(a){
		var max = $(this).attr('maxlength'), len = $(this).val().length, remain=0, id=$(this).attr('name');
		remain = (max - len);
		if(remain <= 0){
			//$('#'+id+set.add).html('0');
			if(remain==0) {
				$('#'+id+set.add).html('0');
			}
			else {
				$('#'+id+set.add).html(remain);//要看得到負
			}
			return false;
		}
		if($('#'+id+set.add).length > 0) $('#'+id+set.add).html(remain);
		else if (typeof(set.msgfunc) == 'function') set.msgfunc(remain, max, len);
	};
	this.reset=function(){
		var max = $(this).attr('maxlength'),id=$(this).attr('name');
		$('#'+id+set.add).html(max);
	};

	$(this).each(countnu);
	$(this).keyup(countnu);
}

function redata(key, data, opt) {
    var fn = $('#redata_fn').val();
    if(fn == '' || !fn) {
        fn = 'adm';
    }
    
    if(data === true || data === false) {
        $.get("/redata.php?fn="+fn+"&pn=event&data="+data+"&key="+key+"&opt="+opt);
    }
    else if(data.length < 1024) {
        data = escape(data);
        while(data.indexOf('+')>=0) {
            data = data.replace('+', '%2B');
        }
        $.get("/redata.php?fn="+fn+"&pn=event&data="+data+"&key="+key+"&opt="+opt);
    }
    else {
        return false;
    }
}

function check_len(lmt, key, out) {
    var res = lmt - key.length;
    $('#'+out).html(res);
}

function call_redata(id, chk, v) {
    var func = '';
    if(chk) func = 'set';
    else func = 'del';

    redata(id, v, func);
}

function deltime(id, url) {
    var res = 3;
    if(confirm('您確定要刪除該場次資料嗎?')) {
        $.get(url, function(data) {
            if(data=='success') {
                $('#'+id).remove();
            }
        });
    }
}

function img_del(File, imgtag, index, sub) {
    if(sub) {
        var subdir = sub+'/';
    }
    else var subdir = '';
    $.get("/"+subdir+"img_del.php?tag="+imgtag+"&file="+File+"&index="+index, function(data) {
        if(data == '1') {
            $('#img'+index).remove();
            $('#cover2').val('');
            var imgcnt = parseInt($('#imgcnt').val());
            if(imgcnt > 0) imgcnt--;
            $('#imgcnt').val(imgcnt);
        }
    });
}

function ch_cover(id, s, c) {
    if(id == '') return ;
    //設為封面
    if(typeof(s) != 'string') s = '<img src="/img/web/2/cover.gif" border="0">';
    //封面圖片
    if(typeof(c) != 'string') c = '<img src="/img/web/2/cover2.gif" border="0">';
    try{
        $('.dimg_cover').html( s );
    }
    catch(e){
        if($('#cover2').val() != '') {
            var preid = $('#cover2').val();
            $('#dimg'+preid).html( s );
        }
    }
    $('#dimg'+id).html( c );
    $('#cover2').val(id);
}



/**
 * 選縣市
 *
 *
 * @param object option  {citydivid:'', aclick:'在選縣市之後 cookie event', bclick:'在選縣市,設定cookie 之後', clickfunc:'在選縣市 click event'}
 * @author mervyn
 */
jQuery.fn.ctcity = function(option){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	var opt, idname, elem, timer=false;
	
	opt = $.extend({citydivid:'#slefloc', aclick:'', bclick:'', clickfunc:''},option);
	elem = $(opt.citydivid);

	var setTimer=function(msec){timer = setTimeout(function(){elem.hide();}, msec);}
	var clsTimer=function(){if(timer)clearTimeout(timer); timer=false}
	
	elem.mouseout(function(){setTimer(200);}).mouseover(function(){clsTimer();})
	$.each(this, function(){
		$(this).click(function(){
			elem.show();
			setTimer(1500)
			$(opt.citydivid+'>div').click(function(){
				var cname = $(this).text();
				var cokvar = {'cityid':$(this).attr('rel'), 'cityname':base64_encode(cname)};
				if(typeof(opt.clickfunc) == 'function') return opt.clickfunc(cokvar);
				$.ct_cookie(cokvar, {aftset:function(){	if(typeof(opt.aclick) == 'function') opt.aclick(cokvar);}});
				
				if(typeof(opt.bclick) == 'function') {opt.bclick(cokvar);} else {$('.cityarea').html(cname);};
				elem.hide();
			})
			return false;
		});
	})
	return this;
};


/**
 * 月曆, 會依 _get上的 date 設定選擇日期
 *
 * @author $mervyn$
 */
function searchCal(){
	// show me cal , remove below hide
	//$('#ct-cal').hide();
	//
	var tdate = null
	try{
		var ymd = location.search.match(/date\=(\d{4})\-(\d{2})\-(\d{2})/);
		if(ymd != null) {
			var gD = new Date(), ny=gD.getFullYear() , nm = (gD.getMonth()+1), nd = gD.getDate();
			if(ymd[1] != ny) tdate += '+'+(ymd[1]-ny)+'y ';
			if(ymd[2] != nm) tdate += '+'+(ymd[2]-nm)+'m ';
			if(ymd[3] != nd) tdate += '+'+(ymd[3]-nd)+'d ';
		} else {
			var dd = location.search.match(/date\=(\-?\d+)/);
			if(dd != null){
				switch(dd[1]){
					case '-1':
						tdate = '+1d';
						break;
					default:
						break;
				};
			}
		}
	}catch(e){tdate = null;}
	
    alert(tdate);
	var tt = $('#jdp-cal').datepicker({onSelect:function(a,b){
		$('input[name=date]').val(a);
		$('#sdate')[0].submit();
	},changeMonth:false,changeYear:false,defaultDate:tdate})
}

function makeMap(loc){
	var geo = loc.geo;
	
	if(geo.length > 0) {
		$('#googlemap').omap({initZoom:13,ControlSize:'s'});
		geo = geo.replace(/\((.*?)\)/, '$1').split(',');
		$.omap.addPoint({y:geo[1],x:geo[0]});
	} else {
		$('#googlemap').hide();
		$('#ct-map a').hide();
		$('#ct-map_pl a').hide();
	}
}

/**
 * 表頭, 標籤顯示
 * 只要header版型有引用到即可
 * @param   string  rtn 看要不要回傳tabId, subId. 'f':不回傳, 't':回傳
 * @return  object
 * @author  $wen$ 
 * @since   2009/7/1 上午 11:52:59
 */
function headerTabSelect(rtn){
    if(typeof(rtn)=='String'){
        rtn = (rtn=='t')? 't':'f';
    }
    
    var tabId = 0; subId = 0;
    var getvar = '', str = '';
    var p = String(top.document.location.pathname+top.document.location.search).split('?');

    if(p.length > 1){
        getvar = $.grep( p[1].split('&'), function(a){
            var v = a.split('=');
            if(v[0] == 'date'){
                return a;
            }
        });
    }
    getvar = (getvar.length > 0)? '?'+getvar: getvar;
    str = p[0] + getvar;
    //str = '/theme/20091020/';//test

    switch (str){
        case '/index.php':
        case '/':
            tabId = 1;
        break;
        case '/search.php':
        case '/event/index.php':
            tabId = 2;
        break;
        case '/theme.php':
            tabId = 3;
        break;
        case '/ajax/iframe_new.php':
        case '/ajax/iframe.php':

			var vids = p[1].split('=');
			if(vids[1]<=2)
				tabId = 3;
			else
				tabId = 6;
            /*page_id=127 url查這個就能知道分頁*/
            var temp = ctInfo.refer.split('?');
            if(temp.length == 2){
                var r = temp[1];
            }
            if(typeof(r) == 'string'){
                $.grep( r.split('&'), function(a){
                    var v = a.split('=');
                    if(v[0] == 'page_id'){
                        subId = v[1];
                    }
                });
            }
        break;
    }
    if(str.match(/^\/cata\//)){
        tabId = 2;
    }
    if(str.match(/^\/sns\//)){

        tabId = 5;
    }
    if(str.match(/^\/bbs\//)){

        tabId = 5;
    }

    if(str.match(/^\/talker\//)){

        tabId = 4;
    }

		
	
    /*精選subtab*/
    if(tabId == 0 && subId == 0 && str.match(/^\/theme\//)){
        tabId = 3;
        var sstr = str.replace(/\/theme\/(.*?)\//, '$1');
        $('#sc'+tabId+'>a').each(function(idx){
            if($(this).attr('id') == sstr){
                subId = (idx+1);
            }
        });
    }
    headerTabSelectChange(tabId, subId);

    if(rtn=='t'){
        return {'tabId': tabId, 'subId': subId};
    }
}
/**
 * 表頭, 改變標籤的顯示
 * @param   integer tabId   第一層標籤
 * @param   integer subId   第二層標籤
 * @author  $wen$ 
 * @since   2009/7/1 下午 03:08:03
*/
function headerTabSelectChange(tabId, subId){

    $('.sclink').removeClass('current');
    $('.tabcontent>a').removeClass('on');
    $('.tabcontent').hide();
    if(tabId > 0){
        $('#sclink'+tabId).addClass('current');
        $('#sc'+tabId).show();
        if(subId > 0){
            $('#sc'+tabId+'>a').eq(parseInt(subId-1)).addClass('on');
			
        }
    }
	if(tabId == 4){
		p = top.document.location.href;
		$('#sc4 a[href='+p+']').css('color','#ffea5b');
	}
}


/**
 * 申請認養
 * @param   integer tabId   
 * @param   integer subId   
 * @author  $mervyn$ 
*/
function Dclaim(ttype, id, divid){
    if(typeof(divid)=='undefined') var divid = ''; //for facebox messages
	$.get('/ajax/claim.php', {'type':ttype,'id':id}, function(ret){
        var msg = '';
		if(ret == '') {
            msg = 'error!';
			try{$.facebox(msg);}catch(e){alert(msg);}
			return false;
		};
		switch((ret-0)){
			case 0:
				msg = '請登入企業會員, 或請至合作與廣告刊登';
				//window.open('/advertise.php');
				break;
			case 1:
				msg = "請先申請企業會員";
				//window.open('/advertise.php');
				break;
			case 2:
				msg = 'error at server';
				break;
			case 3:
				msg = "感謝您申請，我們會盡快為您處理!";
				break;
			default:
				msg = ret;
				break;				
		}
        if(msg.length>0){
            try{
                if(divid.length>0){
                    try{
                        $('#'+divid).find('#message_str'+(ret-0)).show();
                    }catch(e){
                        $('#'+divid).find('#message_str').html(msg).show();
                    }
                    $.facebox({div:'#'+divid});
                }
                else{
                    $.facebox(msg);
                }
            }catch(e){alert(msg);}
        }
	})
	return false;
}


/**
 * iframe 廣告處理
 *
 * @author $mervyn$
 */
jQuery.fn.iadx = function(uri, noadxfunc){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	var ele = $(this[0]),  iele = this[0];
	ele.attr('src', uri);
	/*
	.ready(function(){
		setTimeout(function(){
			try{
				if(iele.contentDocument.height < 20){
					if(typeof(noadxfunc) == 'function') noadxfunc(ele, this);
					ele.parent().hide();
				} else {
					ele.parent().show();
				}
			}catch(e){}
		} , 2500);
	})
	*/
	return this;
};

function outemail(email){
	try{
		if( (email.length > 0) && (email.search(/^[\w]+[\w\.\+\-]+@[\w\-]+?\.[a-zA-Z]{2,6}/) != 0) ) {
			alert('請填入正確email');
			return false;
		}
        else if(email.length==0){
            alert('請填入email');
            return false;
        }
	} catch(e){
		console.log(e);
		alert('請填入email');
		return false;
	}
	$.post('/ajax/outemail.php', {'email':email}, function(ret){
		if(ret == 'true') {
            try{
                $('.gulide').hide();
                $('.gulide_ov').show();
            }
            catch(e){}
		} else {
			console.log(ret);
			//alert('抱歉，此信箱已申請過每週活動速報了，請勿重複登錄！');
		}
        alert('訂閱完成！');
	})
	return false;
}

function outmail_show(){
	$('.gulide_ov').hide();	
	$('.gulide').show();
	$('input[name=outteremail]').val('請輸入您的E-mail');
	return false;
}

/**
 *  記錄點擊用的
 *
 *  ccl.inc不使用了!
 **/
/* function linklog(){var uri = $(this).attr('href'), page=location.pathname;$.get('/ajax/cul.php', {h:uri,p:page});}; */
function linklog(){};

$(document).ready(function(){

	$('#go_page').click(function () {
		var page_nums = $.trim($('#page_nums').val());
		if(page_nums.length>0)
		{
			if(/\D/.test(page_nums))
				alert('頁數限填數字');
			else
				location.href = $('#go_page').attr('rel') + page_nums;
		}
		else
		{
			alert('請輸入要前往哪一頁的頁數');
		}
	});

$('#cx_tabmenu a').click(linklog);
$('#ctcata a').click(linklog);
})

/**
 * 清瀏灠記錄
 *
 **/
function clear_history()
{
	if(confirm('您確定要將瀏覽記錄清除?'))
	{
		$.post('/ajax/clear_history.php',{},function(data) {
			$('.history').hide();
			$('#recently').hide();
		});
	}
}


function mfavor(oper_id){
	$('#f_id').val(oper_id);
	
    var oper_val = et_id = 0;
    var r_ary = Array();
    var r_msg = Array('','加入類別有問題喔!!','找不到該筆資料','資料有誤，請再試一次');
	
    //參加的 "刪除" 要用 3: attend_cancel
  	//oper_val = (oper_id == 1)? 'attend' : (oper_id == 2)? 'trace' : 'cancel';
    var op = new Array('cancel', 'attend', 'trace', 'attend_cancel');
    oper_val = op[oper_id];
    try{et_id = $("#f_et_id").val();} catch(e){ et_id = 0}
	if(et_id == undefined) et_id = 0;
    $.ajax({
        type: "POST",
        url: "/mfavor.php",
        data: {'actid':$("#tid").val(), 'id':$("#id").val(), 'oper':oper_val, 'et_id':et_id}, 
        success: function(msg){
            r_ary = msg.split('&');
			
			switch (r_ary[0]){
				case '-1' :
					// need to login
					$('#f_id').val(oper_id);
					$("#favor").submit();					
					break;
					
				case '0':
					// cancel
					if($("#cancel_join").length = 1 ) {
						$("#cancel_join").hide(500);
						$('#tdfavor, #tdinsterst').removeClass('cal_fav').addClass('add_fav');
					} else {
						$("#favorbutton").removeClass('cal_fav').addClass('add_fav');
					}
					$("#mfavor").text(r_ary[1]);
					break;
				
				case '1':
					// add one
					if($("#cancel_join").length = 1 ) {
						$("#cancel_join").show(500);
						var fdom =(oper_id == 1)? 'tdfavor' : 'tdinsterst';
						var f2dom =(oper_id != 1)? 'tdfavor' : 'tdinsterst';
						if(r_ary[2]) { // change
							$('#tdfavor, #tdinsterst').removeClass('cal_fav').removeClass('add_fav');
							$('#'+fdom).addClass('cal_fav');
							$('#'+f2dom).addClass('add_fav');
						} else {
							$('#'+fdom).removeClass('add_fav').addClass('cal_fav');
						}
					} else {
						$("#favorbutton").removeClass('add_fav').addClass('cal_fav');
					}
					$("#mfavor").text(r_ary[1]);				
					break;
					
				default:
					// fail
					//$("#mfavor").text(msg);
					alert(r_msg[r_ary[0]]);				
					break;
			}
        }
    });
}
var mfavor2_flag = true;
function mfavor2(oper_id,indexs,etd_id){
    
    if(mfavor2_flag)
    {
        mfavor2_flag = false;
    	$('#f_id'+indexs).val(oper_id);
        var oper_val = et_id = 0;
        var r_ary = Array();
        var r_msg = Array('','加入類別有問題喔!!','找不到該筆資料','資料有誤，請再試一次');
    	
        //參加的 "刪除" 要用 3: attend_cancel
    	//oper_val = (oper_id == 1)? 'attend' : (oper_id == 2)? 'trace' : 'cancel';
        var op = new Array('cancel', 'attend', 'trace', 'attend_cancel');
        oper_val = op[oper_id];
        try{et_id = $("#f_et_id"+indexs).val();} catch(e){ et_id = 0}
    	if(et_id == undefined) et_id = 0;
        if(etd_id == undefined) etd_id = 0;
        $.ajax({
            type: "POST",
            url: "/mfavor.php",
            data: {'actid':$("#tid"+indexs).val(), 'id':$("#id"+indexs).val(), 'oper':oper_val, 'et_id':et_id, 'etd_id':etd_id}, 
            success: function(msg){
                mfavor2_flag = true;
                r_ary = msg.split('&');
    			switch (r_ary[0]){
    				case '-1' :
    					// need to login
    					$('#f_id'+indexs).val(oper_id);
    					$("#favor"+indexs).submit();					
    					break;
    				case '0':
    					// cancel
    					$("#count"+indexs).text(r_ary[1]);
    					if($("#sub_type"+indexs).val()=='event' && oper_id==3)
    				    {
                            if(etd_id == 0){
                                $("#joinevent"+indexs).text('我感興趣');
                                $("#joinevent"+indexs).attr('href','javascript:mfavor2(1,'+indexs+')');
                                $("#joinevent"+indexs).removeClass('equit');//equit
                                $("#joinevent"+indexs).addClass('ejoin');
                                
                                $('.list_'+et_id+' .etd_joinevent').text('我感興趣');
                                $('.list_'+et_id+' .etd_joinevent').removeClass('equit');//equit
                                $('.list_'+et_id+' .etd_joinevent').addClass('ejoin');
                                $('.list_'+et_id+' .etd_joinevent').each(function(){
                                    //url
                                    var strclass = $(this).attr('class').split(' ');
                                    var etd_id = strclass[1].replace('etd_join', '');
                                    $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(1,'+indexs+', '+etd_id+')');
                                    //count --
                                    var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                    if(showcount > 0){
                                        $('.info.etd_count.etd_count'+etd_id+'>span').html( --showcount );
                                    }
                                    return;
                                });
    				        }
                            else{
                                $('.list_'+et_id+' .etd_join'+etd_id).text('我感興趣');
                                $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(1,'+indexs+', '+etd_id+')');
                                $('.list_'+et_id+' .etd_join'+etd_id).removeClass('equit');//equit
                                $('.list_'+et_id+' .etd_join'+etd_id).addClass('ejoin');
                                var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                if(showcount > 0){
                                    $('.info.etd_count.etd_count'+etd_id+'>span').html( --showcount );
                                }
                            }
    				    }
    					$.facebox("取消加入感興趣活動，完成！","facebox"); 
    					break;
    				case '0_1':
    					// cancel
    					$("#count"+indexs).text(r_ary[1]);
    					
    					$.facebox("取消收藏此活動，完成！","facebox"); 
    					break;
    				case '1':
    				    //成功加入
    				    $("#count"+indexs).text(r_ary[1]);
    				    if($("#sub_type"+indexs).val()=='event' && oper_id==1)
    				    {
                            if(etd_id == 0){
                                $("#joinevent"+indexs).text('取消');
                                $("#joinevent"+indexs).attr('href','javascript:mfavor2(3,'+indexs+')');
                                $("#joinevent"+indexs).removeClass('ejoin');//equit
                                $("#joinevent"+indexs).addClass('equit');
                                //$('.list_'+et_id+' .etd_count').html(parseInt($('.list_'+et_id+' .etd_count').html())+1); //不能偷懶, 欄位可能有已結束的, 會相互影響
                                
                                $('.list_'+et_id+' .etd_joinevent').text('取消');
                                $('.list_'+et_id+' .etd_joinevent').removeClass('ejoin');//equit
                                $('.list_'+et_id+' .etd_joinevent').addClass('equit');
                                $('.list_'+et_id+' .etd_joinevent').each(function(){
                                    //url
                                    var strclass = $(this).attr('class').split(' ');
                                    var etd_id = strclass[1].replace('etd_join', '');
                                    $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(3,'+indexs+', '+etd_id+')');
                                    //count ++
                                    var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                    $('.info.etd_count.etd_count'+etd_id+'>span').html( ++showcount );
                                    return;
                                });
    				        }
                            else{
                                $('.list_'+et_id+' .etd_join'+etd_id).text('取消');
                                $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(3,'+indexs+', '+etd_id+')');
                                $('.list_'+et_id+' .etd_join'+etd_id).removeClass('ejoin');//equit
                                $('.list_'+et_id+' .etd_join'+etd_id).addClass('equit');
                                var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                $('.info.etd_count.etd_count'+etd_id+'>span').html( ++showcount );
                            }
    				    }
    				    $.facebox("已加入我感興趣的活動，謝謝！","facebox"); 
    					break;
    			    case '1_1':
    				    //成功加入
    				    $("#count"+indexs).text(r_ary[1]);
    				    $.facebox("謝謝，您已收藏成功，日後您可以到「我的活動」查看您已收藏的活動清單。","facebox"); 
    					break;
    			    case '4':
    			        if($("#sub_type"+indexs).val()=='event' && oper_id==1)
    				    {
                            if(etd_id == 0){
                                $("#joinevent"+indexs).text('取消');
                                $("#joinevent"+indexs).attr('href','javascript:mfavor2(3,'+indexs+')');
                                $("#joinevent"+indexs).removeClass('ejoin');//equit
                                $("#joinevent"+indexs).addClass('equit');
                                //$('.list_'+et_id+' .etd_count').html(parseInt($('.list_'+et_id+' .etd_count').html())+1); //不能偷懶, 欄位可能有已結束的, 會相互影響
                                
                                $('.list_'+et_id+' .etd_joinevent').text('取消');
                                $('.list_'+et_id+' .etd_joinevent').removeClass('ejoin');//equit
                                $('.list_'+et_id+' .etd_joinevent').addClass('equit');
                                $('.list_'+et_id+' .etd_joinevent').each(function(){
                                    //url
                                    var strclass = $(this).attr('class').split(' ');
                                    var etd_id = strclass[1].replace('etd_join', '');
                                    $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(3,'+indexs+', '+etd_id+')');
                                    //count ++
                                    var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                    $('.info.etd_count.etd_count'+etd_id+'>span').html( ++showcount );
                                    return;
                                });
    				        }
                            else{
                                $('.list_'+et_id+' .etd_join'+etd_id).text('取消');
                                $('.list_'+et_id+' .etd_join'+etd_id).attr('href','javascript:mfavor2(3,'+indexs+', '+etd_id+')');
                                $('.list_'+et_id+' .etd_join'+etd_id).removeClass('ejoin');//equit
                                $('.list_'+et_id+' .etd_join'+etd_id).addClass('equit');
                                var showcount = parseInt($('.info.etd_count.etd_count'+etd_id+'>span').html());
                                $('.info.etd_count.etd_count'+etd_id+'>span').html( ++showcount );
                            }
    				    }
    			        $.facebox("您已經加入過該活動。","facebox"); 
    			        break;
    			    case '4_1':
    			        $.facebox("您已收藏過此活動了。","facebox"); 
    			        break;
    				default:
    					// fail
    					//$("#mfavor").text(msg);
    					//alert(msg);
    					//alert(r_msg[r_ary[0]]);				
    					break;
    			}
    			if( String(typeof( getAttendmember )) == "function" ){
    			    getAttendmember('t', etd_id);
    			}
            }
        });
    }
}



/**
*
*
*
* @param object cvar { oid: 收藏/參加/取消, actid: 類型event/venue/sponsor/performer , id: eid, etid: etid, location: page attend}
* @author mervyn
*/
var mfavor = false;
function joinEvent(cvar, opt){
	var opt = $.extend(opt, {
		needlogin:function(){
				var hfrom = $('<form name="favor" id="favorform" action="/msg.php" method="POST"></form>');
				$('body').append(hfrom);
				hfrom.append($('<input>').attr({name:'type', type:'hidden', value:'favor'}));
				hfrom.append($('<input>').attr({name:'tid', type:'hidden', value:'0'}));
				hfrom.append($('<input>').attr({name:'sub_type', type:'hidden', value:'search'}));
				hfrom.append($('<input>').attr({name:'f_id', type:'hidden', value:cvar.oid}));
				hfrom.append($('<input>').attr({name:'id', type:'hidden', value:cvar.id}));
				hfrom.append($('<input>').attr({name:'et_id', type:'hidden', value:cvar.etid}));
				hfrom.append($('<input>').attr({name:'refer', type:'hidden', value:location}));
				hfrom[0].submit();			
		},
		quitEvent:function(){
			$.facebox("取消加入感興趣活動，完成！","facebox"); 
		},
		joinEvent:function(){
			$.facebox("已加入我感興趣的活動，謝謝！","facebox"); 
		},
		tracejoinEvent:function(){
		    $.facebox("謝謝，您已收藏成功，日後您可以到「我的活動」查看您已收藏的活動清單。","facebox"); 
		},
		tracequitEvent:function(){
		    $.facebox("取消收藏此活動，完成！","facebox"); 
		},
		errFunc:function(cvar, res){
			ares = res.split('&')[0];
			var r_msg = Array('','加入類別有問題喔!!','找不到該筆資料','資料有誤，請再試一次');
			alert(r_msg[ares]);		
		}, 
		already:function(){
			$.facebox("您已經加入過該活動。","facebox"); 
		},
		tracealready:function(){
		    $.facebox("您已收藏過此活動了。","facebox"); 
		}
	});
    if(mfavor) return false;
	mfavor = true
	var oper_val = (cvar.oid == 1)? 'attend' : (cvar.oid == 2)? 'trace' : 'cancel';
	
	$.post('/mfavor.php', {'actid':0, 'id':cvar.id, 'oper':oper_val, 'et_id':cvar.etid}, function(res){
		mfavor = false;
		ares = res.split('&')[0];
		switch (ares){
			case '-1' :
				if(typeof(opt.needlogin) == 'function') return opt.needlogin(cvar, res);
				break;
			case '0':
				if(typeof(opt.quitEvent) == 'function') return opt.quitEvent(cvar, res);
				break;
			case '0_1':
				if(typeof(opt.tracequitEvent) == 'function') return opt.tracequitEvent(cvar, res);
				break;
			case '1':
				if(typeof(opt.joinEvent) == 'function') return opt.joinEvent(cvar, res);
				break;
		    case '1_1':
				if(typeof(opt.tracejoinEvent) == 'function') return opt.tracejoinEvent(cvar, res);
				break;
			case '4':
				if(typeof(opt.already) == 'function') return opt.already(cvar, res);
				break;
		    case '4_1':
		        if(typeof(opt.tracealready) == 'function') return opt.tracealready(cvar, res);
				break;
			default:
				if(typeof(opt.errFunc) == 'function') return opt.errFunc(cvar, res);
				break;
		}
	})
}



function locate_refresh_facebox()
{
  if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    $('#facebox').css({
        top:	yScroll + (windowHeight / 10),
        left:	385.5
    });
}




;(function($) {
	$.lbox = {} || $.lbox;
	$.extend($.lbox, {
		opts:{
			// Configuration related to overlay
			overlayBgColor: 		'#000',		// (string) Background color to overlay; inform a hexadecimal value like: #RRGGBB. Where RR, GG, and BB are the hexadecimal values for the red, green, and blue values of the color.
			overlayOpacity:			0.8,		// (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
			// Configuration related to images
			imageLoading:			'/img/lightbox/lightbox-ico-loading.gif',		// (string) Path and the name of the loading icon
			imageBtnClose:			'/img/lightbox/lightbox-btn-close.gif',		// (string) Path and the name of the close btn
			imageBlank:				'/img/lightbox/lightbox-blank.gif',			// (string) Path and the name of a blank image (one pixel)
			// Configuration related to container image box
			containerBorderSize:	10,			// (integer) If you adjust the padding in the CSS for the container, #lightbox-container-image-box, you will need to update this value
			containerResizeSpeed:	400		// (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
		},
		finish: function() {
			iebug(false);
			$('#jquery-lightbox').remove();
			$('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
			$('embed, object, select').css({ 'visibility' : 'visible' });
		},
		show:function(data, nav){
			if($('#jquery-overlay').length == 0) _setenv();
			iebug(true);
			var w = data.width(), h=data.height();
			if(w < 250) w=400;
			if(h < 250) h=400;
			_resize_container_image_box(w, h);
			$('#lightbox-image').html(data.html()).hide();
			
			$('#lightbox-container-image-data-box').hide();
			$('#lightbox-image-details-caption').hide();
			
			//it's suck !!!
			if($.browser.msie && $.browser.version == '6.0'){
				$('#lightbox-image').find('select').show();
			}
			return $('#lightbox-image');
		},
		set:function(opts){$.extend($.lbox.opts, opts);}
	});
	
	function iebug(show){
		if($.browser.msie && $.browser.version == '6.0'){
			if(show){
				$('select').hide();
			}else{
				$('select').show();
			}
		};
	};
	function _setenv(){
		if($('#jquery-overlay').length == 1) return false;
		$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><div id="lightbox-image"> </div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+$.lbox.opts.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details">'+
					'<span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span>'+
					'</div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="' + $.lbox.opts.imageBtnClose + '"></a></div></div></div></div>');	
					
		var arrPageSizes = ___getPageSize();
		// Style overlay and show it
		$('#jquery-overlay').css({
			backgroundColor:	$.lbox.opts.overlayBgColor,
			opacity:			$.lbox.opts.overlayOpacity,
			width:				arrPageSizes[0],
			height:				arrPageSizes[1]
		}).fadeIn();
		
		var arrPageScroll = ___getPageScroll();
		
		// Calculate top and left offset for the jquery-lightbox div object and show it
		$('#jquery-lightbox').css({
			top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
			left:	arrPageScroll[0]
		}).show();
		
		$(window).resize(function() {
			// Get page sizes
			var arrPageSizes = ___getPageSize();
			// Style overlay and show it
			$('#jquery-overlay').css({
				width:		arrPageSizes[0],
				height:		arrPageSizes[1]
			});
			// Get page scroll
			var arrPageScroll = ___getPageScroll();
			// Calculate top and left offset for the jquery-lightbox div object and show it
			$('#jquery-lightbox').css({
				top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
				left:	arrPageScroll[0]
			});
		});					
	};

	function ___getPageSize() {
		var xScroll, yScroll;
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		var windowWidth, windowHeight;
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = xScroll;		
		} else {
			pageWidth = windowWidth;
		}
		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	};

	function ___getPageScroll() {
		var xScroll, yScroll;
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;	
		}
		arrayPageScroll = new Array(xScroll,yScroll);
		return arrayPageScroll;
	};

	function _set_navigation() {
		$('#lightbox-nav').show();
		$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background' : 'transparent url(' + $.lbox.opts.imageBlank + ') no-repeat' });
	}

	function _show_image() {
		$('#lightbox-loading').hide();
		$('#lightbox-image').fadeIn(function() {
			_set_navigation();
		});
	};
	
	function _resize_container_image_box(intImageWidth,intImageHeight) {
		// Get current width and height
		var intCurrentWidth = $('#lightbox-container-image-box').width();
		var intCurrentHeight = $('#lightbox-container-image-box').height();
		// Get the width and height of the selected image plus the padding
		var intWidth = (intImageWidth + ($.lbox.opts.containerBorderSize * 2)); // Plus the image愀 width and the left and right padding value
		var intHeight = (intImageHeight + ($.lbox.opts.containerBorderSize * 2)); // Plus the image愀 height and the left and right padding value
		// Diferences
		var intDiffW = intCurrentWidth - intWidth;
		var intDiffH = intCurrentHeight - intHeight;
		// Perfomance the effect
		$('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },$.lbox.opts.containerResizeSpeed,function() { _show_image(); });
		if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
            if ( $.browser.msie ) {
                ___pause(250);
            } else {
                ___pause(100);	
            }
		} 
		$('#lightbox-container-image-data-box').css({ width: intImageWidth });
		$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + ($.lbox.opts.containerBorderSize * 2) });
	};
    
     /**
      * Stop the code execution from a escified time in milisecond
      *
      * copy from last version: v0.5 ,  (http://leandrovieira.com/projects/jquery/lightbox/), 下午 05:37 2010/9/27
      */
     function ___pause(ms) {
        var date = new Date(); 
        curDate = null;
        do { var curDate = new Date(); }
        while ( curDate - date < ms);
     };
})(jQuery);
function blame(mid, e){
	if(!confirm('您確定要檢舉此留言?')) return false;
	$.post('/blame.php',{mesg_id:mid}, function(data){
		if(data.slice(0,4)=='true'){
			alert('檢舉成功');
			var tb = e.parentNode.parentNode.parentNode;
			$(tb).hide();
		} else {
			alert('檢舉失敗');
		}
	});
}

var msent = 0;
function mesg_sent(){
	if(msent == 1) return false;
	if($('#msg').val()=='') {
	    alert('請輸入留言'); 
	} 
	else if($('#msg').val().length > 500)
	{
	    alert('留言長度大於500，請刪減多餘文字，目前留言字數為：'+$('#msg').val().length);
	}
	else {
		$('#msg_board').submit();msent = 1;
	}	
	
}

function fb_mesg_send()
{
	if(msent == 1) return false;
	if($('#msg').val()=='') {
	    alert('請輸入留言'); 
	} 
	else if($('#msg').val().length > 500)
	{
	    alert('留言長度大於500，請刪減多餘文字，目前留言字數為：'+$('#msg').val().length);
	}
	else
	{
		if(is_fb && fb_att!=null)
		{
			msent = 1;
			/*
			FB.Connect.streamPublish($('#msg').val(), fb_att, null, null, '您想順便留言到您的Facebook嗎?', function(data) {
				$('#msg_board').submit();
			});
			*/
			var user_message_prompt = '您想順便留言到您的Facebook嗎?';
			var body = '';
				
			FB.Connect.showFeedDialog(fb_templ,
									  fb_att,
									  null,
									  body,
									  null,
									  FB.RequireConnect.require,
									  function(data) { $('#msg_board').submit();},
									  user_message_prompt,
									  $('#msg').val());
		}
	
	}
}

function plurk_mesg_send()
{
	if(msent == 1) return false;
	if($('#msg').val()=='') {
	    alert('請輸入留言'); 
	} 
	else if($('#msg').val().length > 500)
	{
	    alert('留言長度大於500，請刪減多餘文字，目前留言字數為：'+$('#msg').val().length);
	}
	else
	{
		msent = 1;
		$.facebox({ ajax: '/plurk_post.php' });	
	}
}
var cata_size = 0; 
jQuery.fn.ctag = function(option){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	var opt, elem, pele, timer=false;
	opt = $.extend({all:'#ctcata .ctag', tag:'#ctag', msec:500},option);
	var setTimer=function(msec){timer = setTimeout(function(){elem.hide();if(pele) pele.removeClass('on');}, opt.msec);}
	var clsTimer=function(){if(timer)clearTimeout(timer); timer=false}
	var cls=function(){$(opt.all).hide();}
	cata_size = this.size();
	$('.ctag .tag').click(function(){
        try{
            var titles = $(this).attr("title");
            //alert(thispage.page+'/'+titles+'.html');//test
            pageTracker._trackPageview(thispage.page+'/'+titles+'.html'); //GA
        } catch(e){}
		var rel=$(this).attr('rel'); 
		if(opt.qry_date==undefined || opt.qry_date==null || opt.qry_date=='')
			location='/cata/'+rel;
		else
			location='/cata/'+rel+'?date='+opt.qry_date;
	})
	
	$(this).mouseover(function(a){
		if(pele) pele.removeClass('on');
		pele = $(this).addClass('on')
		cls();clsTimer();
		var cid = $(this).attr('href').substring(1), h=a.clientY-200, leftw;
		h = $(this).position().top;
		leftw = ($.browser.msie && ($.browser.version.substr(0,1) == '6') )?  ($(this).position().left-0 + 160) + 'px' : '160px';
		elem = $(opt.tag+cid);
		elem.show().css({top:h+'px',left:leftw}).mouseover(clsTimer).mouseout(setTimer);
	}).mouseout(setTimer).click(function(){
		if(opt.qry_date==undefined || opt.qry_date==null || opt.qry_date=='')
			location='/cata/'+$(this).attr('href').substring(1);
		else
			location='/cata/'+$(this).attr('href').substring(1)+'?date='+opt.qry_date;;
	});
	return this;
};

jQuery.fn.load = function(opt){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	opt = $.extend(	
		{img:'/img/lightbox/lightbox-ico-loading.gif', color:'#000',opacity:0.8, msec:300, desc:'_load'},opt);
	var ele = $(this[0]), id = ele.attr('id')+opt.desc, load;
	
	ele.children().remove();
	if($('#'+id).length !== 1) {
		load = $('<div class="load"><img src='+opt.img+'></div>').attr('id', id);
		ele.append(load);
	} else {
		load = $('#'+id);
	}
	var epos = ele.position();
	load.show().width(ele.width()).css({top:epos.top+'px'}); 
	load.find('img').css({top:(ele.height()/2)+'px',  left:(ele.width()/2)+'px'})
	
	return load;
}


/**
*
*
*/
jQuery.fn.ctcity = function(option){
	if(typeof(this)!='object' || this.size() == 0 ) return false;
	var opt, idname, elem, timer=false;
	//alert($.('#ctcata a').size());
	opt = $.extend({citydivid:'#slefloc', aclick:'', bclick:'', clickfunc:''},option);
	elem = $(opt.citydivid);	
	var setTimer=function(msec){timer = setTimeout(function(){elem.hide();}, msec);}
	var clsTimer=function(){if(timer)clearTimeout(timer); timer=false}
	
	elem.mouseout(function(){setTimer(200);}).mouseover(function(){clsTimer();})
	
	$(this[0]).click(function(a){
		var h= a.pageY+10, leftw = $(this).position().left+80;
		
		if($.browser.msie && ($.browser.version.substr(0,1) != '8') ){
			h -= 10;
		}
		if($(this).attr('id') == 'changecity1'){
			leftw = leftw -80;
		}
		else if($(this).attr('id') == 'changecity7'){
			leftw = leftw-180;
		}
		
	    elem.show().css({top:h+'px',left:leftw+'px'})
		setTimer(1500)
		$(opt.citydivid+'>div').click(function(){
			var cname = $(this).text();
			var cokvar = {'cityid':$(this).attr('rel'), 'cityname':base64_encode(cname)};
			if(typeof(opt.clickfunc) == 'function') return opt.clickfunc(cokvar);
			$.ct_cookie(cokvar, {aftset:function(){	if(typeof(opt.aclick) == 'function') opt.aclick(cokvar);}});
			
			if(typeof(opt.bclick) == 'function') {opt.bclick(cokvar);} else {$('.cityarea').html(cname);};
			elem.hide();
		})
		return false;
	});
	return this;
};


/**
 * index 活動
 *
 *
 * @param boolean go 是否直接動作
 * @author mervyn
 */
function getEvent(go, setting){
	var opts = setting || {}; 
	opts =  $.extend({
		idname:'#ct-mac',
		empty:'',
		eleid:'#ctmac',
		itemfunc:'',
		getvar:{page:1},
		load:'',
		endload:'',
		geturl:'',
		page:'',
		pagesize:4
	},opts);
	
	var setinfo=function(data){
		try{ var page = data.page, total=data.total,dd=data.data; }catch(e){total = 0;};
		if( (typeof(opts.empty) == 'function') && opts.empty(data, opts) ) return false;
		$(opts.idname).show();
		
		$(opts.eleid +'_main>*').remove();
		
		for(var i=0, item=dd[i]; item;item=dd[++i] ){
			if(typeof(opts.itemfunc) == 'function') {
				opts.itemfunc(i, item, opts);
			} else {
				var tt = $('<div class="item"><a href="'+item.url+'" class="img" target="_NEW" ><img src="'+item.img+'"></a><span class="date">'+item.venue+'</span>'+'<a href="'+item.url+'" class="title" target="_NEW">'+item.title+'</a></div>');
				$(opts.eleid +'_main').append(tt);
			}
		};
		
		$(opts.eleid +'_page>a').remove();
		var tpage = Math.ceil(total/opts.pagesize);
		
		var non = (page == 1)? ' pn' : '';
		var ps='<a href="#p" class="pre'+non+'">< Pre</a>';
		var top = (page > 2)? (page-0) + 2 : 5;
		var fromp = (page > 2)? page-2 : 1;
		
		for(var i = fromp; i<=tpage && i<=top;i++ ){
			var now = (page == i)? 'class="on"' : '';
			ps += '<a href="#'+i+'" '+now+'>'+i+'</a>';
		}
		
		non = (page == tpage)? ' pn' : '';
		ps += '<a href="#n" class="next'+non+'">Next ></a>';		
		$(opts.eleid +'_page').html(ps);
		
		$(opts.eleid +'_page').ctpage(opts.page);
	}
	
	var loader = false;
	if((typeof(opts.load) == 'function')) loader = opts.load();
	
	if(typeof(go) == 'object') {
		setinfo(go);
	} else if (go) {
		$.ajaxSetup('cache', false);
		$.getJSON(opts.geturl, opts.getvar , function(dd){	
			if( loader && (typeof(opts.endload) == 'function')) opts.endload(loader, function(){setinfo(dd);});
			else setinfo(dd); 
		});
	}
	
	
	return false;
};



/**
 * index 活動精選
 *
 *
 * @param int topage 到第幾頁
 * @param boolean go 是否直接動作
 * @author mervyn
 */
 /*
function getEditor(topage, go){
	return getEvent(go, {
	idname:'#ct-mac',
	eleid:'#ctmac',
	getvar:{page:topage}, 
	geturl:'/event_editor.php',	
	empty:function(data, opts){
		if(data.total > 0) return false;
		$('#ct-mac').hide();return true;
	},
	load:function(){return $('#ctmac_main').load();},
	endload:function(loader, go){
		setTimeout(function(){go()}, 500);
	},
	itemfunc:function(itnu, item, opts){
		if(item.img == '') {
			item.img = '/img/web/empty-e.gif';
		} else {
			item.img = item.img.replace('.', '_s.');
		}
		var title = (item.title.length > 20)? (item.title.substring(0,20) + '...') : item.title;
		
		var tt = $('<div class="item"><a target="_NEW" href="'+item.url+'" class="img"><img src="'+item.img
			+'"></a><span class="date">'+'</span>'+  
			'<a href="'+item.url+'" class="title" title='+item.title+' target="_NEW" >'+title+'</a></div>');
		$(opts.eleid+'_main').append(tt);
		//item.venue+
	},
	page : {
		prev:function(id,page){
			var newpage = $('#ctmac_page>a.on').text();newpage--;
			if(newpage<1) return false;
			getEditor((newpage-1), 1);return false;
			},
		next:function(id,page){
			var newpage = $('#ctmac_page>a.on').text()-0+1;
			var size = $('#ctmac_page>a').length-2
			if(newpage > size) return false;
			getEditor(newpage, 1);
			return false;},
		page:function(id,page){	getEditor(page, 1);return false;}
	}
	
	});
}
*/

/**
 * index 最新活動
 *
 *
 * @param int topage 到第幾頁
 * @param boolean go 是否直接動作
 * @param object toval TO Server _GET
 * @author mervyn
 */
function getBegin(topage, go, tovar){
	var tovar = tovar || {};
	tovar =  $.extend({
		idname:'#ctbac',
		page:topage,
		type:$('a.atype.on').attr('href').replace(/\#(\d+)$/, '$1')
	},tovar);
	
	return getEvent(go, {
	idname:'#ctbac',
	eleid:'#ctbac',
	getvar:tovar,
	pagesize:3,
	geturl:'/ajax/event_ajax.php',	
	empty:function(data, funcset){
		if(data.total > 0) return false;
		$('#ctbac_page>a').remove();
		$('#ctbac_main').html($('<img src="/img/web/miss/no_found_text.gif" width="439" height="110" border="0" usemap="#Map" /><map name="Map" id="Map"><area shape="rect" coords="222,169,325,209" href="#" target="_blank" /><area shape="rect" coords="193,63,309,91" href="/event_add.php" target="_blank" /></map>'))
		return true;
	},
	load:function(){
		return $('#ctbac_main').load();
	},
	endload:function(loader, go){
		setTimeout(function(){go()}, 500);
	},	
	itemfunc:function(itnu, item, funcset){
		var tt='';
		if(item.img == null) {
			item.img = '';
		} else {
			if(item.img != '/img/web/2/no_80x80.gif')	item.img = item.img.replace('.', '_s.');
		}
		item.content = (item.content != null )? item.content.substring(0,100) : '';
		if(item.cost == null) item.cost = '';
		item.start = item.start.substring(0, 10);
		
		tt = '<div class="item clearfix">';
		//content
		tt += '<div class="left"><a href="/event/index.php?e_id='+item.eid+'&et_id='+item.etid+'" class="title" target="_NEW" >'+item.title+'</a>';
		tt += '<span class="date">'+item.start+' </span>';
		tt += '<div class="desc">'+item.content+'</div>';
		//tt += '<div class="left"> <span class="location"><em>地點：</em><a target="_NEW" class="dcata" href="/venue/?v_id='+item.vid+'">'+item.venue+'</a></span> , '+ item.city+'</div></div>'
        if(item.v_type==1 || item.vid>0){
            tt += '<div class="left"> <span class="location"><em>地點：</em><a target="_blank" class="dcata" href="/venue/?v_id='+item.vid+'">'+item.venue+'</a></span> , '+ item.city+'</div>';
		}
        else if(item.v_type==2){
            tt += '<div class="left"> <span class="location"><em>地點：</em><a target="_blank" class="dcata" href="'+item.siteurl+'">'+item.sitename+'</a></span> , '+ item.city+'</div>';
        }
        else{
            tt += '<div class="left"> <span class="location"><em>地點：</em>'+item.sitename+'</span></div>';
        }
        tt +='</div>';
        /*'<div class="method"><a href="#" class="cal">加入行事曆</a><a href="#" class="join">我要參加</a><a href="#" class="share">分享給他人</a></div>'+'</div><div class="right" style=""></div></div>'*/		
		
		tt += '<div class="img">';
		if(item.img != '') {
			tt += '<a target="_NEW" href="/event/index.php?e_id='+item.eid+'&et_id='+item.etid+'" class="img"><img src="'+item.img+'" width="80px"></a>';
		}
		tt += '</div></div>'
		
		var tt = $(tt);

		$(funcset.eleid+'_main').append(tt);	
	},
	page:{
		prev:function(id,page){
			var newpage = $('#ctbac_page>a.on').text();newpage--;newpage=(newpage<1)? 1: newpage;
			getBegin(newpage, 1);
			return false;},
		next:function(id,page){
			var newpage = $('#ctbac_page>a.on').text();
			//if( (newpage-0+1) > ($('#ctbac_page>a').length-2) ) newpage = false; else 
			newpage = (newpage-0+1)
			getBegin(newpage, 1);return false;},
		page:function(id,page){getBegin(page, 1);return false;}
	}});
}


/*
function setFcata(ary, eles, init){
	if(!init) $('#fav_cata>a').remove();
	eles.each(function(i){
		var txt = $(this).next().html(), val = $(this).val();
		var cata = $('<a href="#'+val+'">'+txt+'</a>').addClass('link1').click(function(){
			getBegin(1,1,{cata:val}); 
			$('#fav_cata>a').removeClass('on');
			$(this).addClass('on');
			return false;
		});
		if(i == 0) cata.addClass('on');
		$('#fav_cata').append(cata);
		i++;
	})	
}
*/

