
/*!
 * 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);
(function($) {
jQuery.fn.pngFix = function(settings) {
    // Settings
    settings = jQuery.extend({
        blankgif: '/web/cms/static/img/admin/blank.gif'
    }, settings);
    var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
    var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
    if (jQuery.browser.msie && (ie55 || ie6)) {
        //fix images with png-source
        jQuery(this).each(function() {
            if ( jQuery(this).get(0).nodeName.toLowerCase() == "img" && jQuery(this).attr("src").match(/\.png$/) ) {
                jQuery(this).attr('width',jQuery(this).width());
                jQuery(this).attr('height',jQuery(this).height());
                var prevStyle = '';
                var strNewHTML = '';
                var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
                var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
                var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
                var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
                var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
                var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
                var imgStyles = (jQuery(this).attr('style')) ? jQuery(this).attr('style') : '';
                if (this.style.border) {
                    prevStyle += 'border:'+this.style.border+';';
                    this.style.border = '';
                }
                if (this.style.padding) {
                    prevStyle += 'padding:'+this.style.padding+';';
                    this.style.padding = '';
                }
                if (this.style.margin) {
                    prevStyle += 'margin:'+this.style.margin+';';
                    this.style.margin = '';
                }
                var imgStyle = (this.style.cssText);
                strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
                strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
                strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
                strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
                strNewHTML += imgStyle+'"></span>';
                if (prevStyle != ''){
                    strNewHTML = '<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;'+'">' + strNewHTML + '</span>';
                }
                jQuery(this).hide();
                jQuery(this).after(strNewHTML);
    
            }
        });
        jQuery(this).find("img[src$=.png]").each(function() {
            jQuery(this).attr('width',jQuery(this).width());
            jQuery(this).attr('height',jQuery(this).height());
            var prevStyle = '';
            var strNewHTML = '';
            var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
            var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
            var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
            var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
            var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
            var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
            var imgStyles = (jQuery(this).attr('style')) ? jQuery(this).attr('style') : '';
            if (this.style.border) {
                prevStyle += 'border:'+this.style.border+';';
                this.style.border = '';
            }
            if (this.style.padding) {
                prevStyle += 'padding:'+this.style.padding+';';
                this.style.padding = '';
            }
            if (this.style.margin) {
                prevStyle += 'margin:'+this.style.margin+';';
                this.style.margin = '';
            }
            var imgStyle = (this.style.cssText);
            strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
            strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
            strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
            strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
            strNewHTML += imgStyle+'"></span>';
            if (prevStyle != ''){
                strNewHTML = '<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;'+'">' + strNewHTML + '</span>';
            }
            jQuery(this).hide();
            jQuery(this).after(strNewHTML);
        });
        // fix css background pngs
       /* jQuery(this).find("*").each(function(){
            var bgIMG = jQuery(this).css('background-image');
            if(bgIMG.indexOf(".png")!=-1){
                var iebg = bgIMG.split('url("')[1].split('")')[0];
                jQuery(this).css('background-image', 'none');
                jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
            }
        });
        //fix input with png-source
        jQuery(this).find("input[src$=.png]").each(function() {
            var bgIMG = jQuery(this).attr('src');
            jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
           jQuery(this).attr('src', settings.blankgif)
        });
        */
    }
    
    return jQuery;
};
})(jQuery);
/**
 * 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. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @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
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        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;
    }
};
/**
 * This jQuery plugin displays pagination links inside the selected elements.
 * 
 * This plugin needs at least jQuery 1.4.2
 *
 * @author Gabriel Birke (birke *at* d-scribe *dot* de)
 * @version 2.0rc
 * @param {int} maxentries Number of entries to paginate
 * @param {Object} opts Several options (see README for documentation)
 * @return {Object} jQuery Object
 */
 (function($){
    /**
     * @class Class for calculating pagination values
     */
    $.PaginationCalculator = function(maxentries, opts) {
        this.maxentries = maxentries;
        this.opts = opts;
    }
    
    $.extend($.PaginationCalculator.prototype, {
        /**
         * Calculate the maximum number of pages
         * @method
         * @returns {Number}
         */
        numPages:function() {
            return Math.ceil(this.maxentries/this.opts.items_per_page);
        },
        /**
         * Calculate start and end point of pagination links depending on 
         * current_page and num_display_entries.
         * @returns {Array}
         */
        getInterval:function(current_page)  {
            var ne_half = Math.ceil(this.opts.num_display_entries/2);
            var np = this.numPages();
            var upper_limit = np - this.opts.num_display_entries;
            var start = current_page > ne_half ? Math.max( Math.min(current_page - ne_half, upper_limit), 0 ) : 0;
            var end = current_page > ne_half?Math.min(current_page+ne_half, np):Math.min(this.opts.num_display_entries, np);
            return {start:start, end:end};
        }
    });
    
    // Initialize jQuery object container for pagination renderers
    $.PaginationRenderers = {}
    
    /**
     * @class Default renderer for rendering pagination links
     */
    $.PaginationRenderers.defaultRenderer = function(maxentries, opts) {
        this.maxentries = maxentries;
        this.opts = opts;
        this.pc = new $.PaginationCalculator(maxentries, opts);
    }
    $.extend($.PaginationRenderers.defaultRenderer.prototype, {
        /**
         * Helper function for generating a single link (or a span tag if it's the current page)
         * @param {Number} page_id The page id for the new item
         * @param {Number} current_page 
         * @param {Object} appendopts Options for the new item: text and classes
         * @returns {jQuery} jQuery object containing the link
         */
        createLink:function(page_id, current_page, appendopts){
            var lnk, np = this.pc.numPages();
            page_id = page_id<0?0:(page_id<np?page_id:np-1); // Normalize page id to sane value
            appendopts = $.extend({text:page_id+1, classes:""}, appendopts||{});
            if(page_id == current_page){
                lnk = $("<span class='current'>" + appendopts.text + "</span>");
            }
            else
            {
                lnk = $("<a>" + appendopts.text + "</a>")
                    .attr('href', this.opts.link_to.replace(/__id__/,page_id));
            }
            if(appendopts.classes){ lnk.addClass(appendopts.classes); }
            lnk.data('page_id', page_id);
            return lnk;
        },
        // Generate a range of numeric links 
        appendRange:function(container, current_page, start, end) {
            var i;
            for(i=start; i<end; i++) {
                this.createLink(i, current_page).appendTo(container);
            }
        },
        getLinks:function(current_page, eventHandler) {
            var begin, end,
                interval = this.pc.getInterval(current_page),
                np = this.pc.numPages(),
                fragment = $("<div class='pagination'></div>");
            
            // Generate "Previous"-Link
            if(this.opts.prev_text && (current_page > 0 || this.opts.prev_show_always)){
                fragment.append(this.createLink(current_page-1, current_page, {text:this.opts.prev_text, classes:"prev"}));
            }
            // Generate starting points
            if (interval.start > 0 && this.opts.num_edge_entries > 0)
            {
                end = Math.min(this.opts.num_edge_entries, interval.start);
                this.appendRange(fragment, current_page, 0, end);
                if(this.opts.num_edge_entries < interval.start && this.opts.ellipse_text)
                {
                    jQuery("<span>"+this.opts.ellipse_text+"</span>").appendTo(fragment);
                }
            }
            // Generate interval links
            this.appendRange(fragment, current_page, interval.start, interval.end);
            // Generate ending points
            if (interval.end < np && this.opts.num_edge_entries > 0)
            {
                if(np-this.opts.num_edge_entries > interval.end && this.opts.ellipse_text)
                {
                    jQuery("<span>"+this.opts.ellipse_text+"</span>").appendTo(fragment);
                }
                begin = Math.max(np-this.opts.num_edge_entries, interval.end);
                this.appendRange(fragment, current_page, begin, np);
                
            }
            // Generate "Next"-Link
            if(this.opts.next_text && (current_page < np-1 || this.opts.next_show_always)){
                fragment.append(this.createLink(current_page+1, current_page, {text:this.opts.next_text, classes:"next"}));
            }
            $('a', fragment).click(eventHandler);
            return fragment;
        }
    });
    
    // Extend jQuery
    $.fn.pagination = function(maxentries, opts){
        
    // Initialize options with default values
    opts = jQuery.extend({
        items_per_page:10,
        num_display_entries:10,
        current_page:0,
        num_edge_entries:0,
        link_to:"#",
        prev_text:"Prev",
        next_text:"Next",
        ellipse_text:"...",
        prev_show_always:true,
        next_show_always:true,
        renderer:"defaultRenderer",
        callback:function(){return false;}
    },opts||{});
    
    var containers = this,
        renderer, links, current_page;
    
        
        /**
         * This is the event handling function for the pagination links. 
         * @param {int} page_id The new page number
         */
        function pageSelected(evt){
            var links, current_page = $(evt.target).data('page_id');
            containers.data('current_page', current_page);
            links = renderer.getLinks(current_page, pageSelected);
            containers.empty();
            links.appendTo(containers);
            var continuePropagation = opts.callback(current_page, containers);
            if (!continuePropagation) {
                if (evt.stopPropagation) {
                    evt.stopPropagation();
                }
                else {
                    evt.cancelBubble = true;
                }
            }
            return continuePropagation;
        }
        
        current_page = opts.current_page;
        containers.data('current_page', current_page);
        // Create a sane value for maxentries and items_per_page
        maxentries = (!maxentries || maxentries < 0)?1:maxentries;
        opts.items_per_page = (!opts.items_per_page || opts.items_per_page < 0)?1:opts.items_per_page;
        
        if(!$.PaginationRenderers[opts.renderer])
        {
            throw new ReferenceError("Pagination renderer '" + opts.renderer + "' was not found in jQuery.PaginationRenderers object.");
        }
        renderer = new $.PaginationRenderers[opts.renderer](maxentries, opts);
        
        containers.each(function() {
        // Attach control functions to the DOM element 
        this.selectPage = function(page_id){ pageSelected(page_id);}
        this.prevPage = function(){
            var current_page = containers.data('current_page');
            if (current_page > 0) {
                pageSelected(current_page - 1);
                return true;
            }
            else {
                return false;
            }
        }
        this.nextPage = function(){
            var current_page = containers.data('current_page');
            if(current_page < numPages()-1) {
                pageSelected(current_page+1);
                return true;
            }
            else {
                return false;
            }
        }
        });
        // When all initialisation is done, draw the links
        links = renderer.getLinks(current_page, pageSelected);
        containers.empty();
        links.appendTo(containers);
        // call callback function
        opts.callback(current_page, containers);
    
}
})(jQuery);
/* Iframe Autoheight */
/*
  Plugin: iframe autoheight jQuery Plugin
  Version: 1.5.0
  Description: when the page loads set the height of an iframe based on the height of its contents
  see README: http://github.com/house9/jquery-iframe-auto-height
*/
(function(a){a.fn.iframeAutoHeight=function(b){function e(b,c){d("Diagnostics from '"+c+"'");try{d(" "+a(b,window.top.document).contents().find("body")[0].scrollHeight+" for ...find('body')[0].scrollHeight"),d(" "+a(b.contentWindow.document).height()+" for ...contentWindow.document).height()"),d(" "+a(b.contentWindow.document.body).height()+" for ...contentWindow.document.body).height()")}catch(e){d(" unable to check in this state")}d("End diagnostics -> results vary by browser and when diagnostics are requested")}function d(a){c.debug&&c.debug===!0&&window.console&&console.log(a)}var c=a.extend({heightOffset:0,minHeight:0,callback:function(a){},debug:!1,diagnostics:!1},b);d(c),a(this).each(function(){function f(b){c.diagnostics&&e(b,"resizeHeight");var f=a(b).contents().find("body"),g=f[0].scrollHeight+c.heightOffset;g<c.minHeight&&(d("new height is less than minHeight"),g=c.minHeight+c.heightOffset),d("New Height: "+g),b.style.height=g+"px",c.callback({newFrameHeight:g})}var b=0;d(this),c.diagnostics&&e(this,"each iframe");if(a.browser.safari||a.browser.opera){d("browser is webkit or opera"),a(this).load(function(){var a=0,c=this;c.style.height="0px";var e=function(){f(c)};b===0&&(a=500),d("load delay: "+a),setTimeout(e,a),b++});var g=a(this).attr("src");a(this).attr("src",""),a(this).attr("src",g)}else a(this).load(function(){f(this)})})}})(jQuery); 


(function($)
    {
    $.fn.rssReader=function(j)
        {
        var k=$.extend(
            {
            targeturl:"rss.xml",items:5,Maxlength:80,loadingImg:'/web/cms/static/img/admin/ajax-loader.gif',targetId:'newsfeed', detailSite : '', showNews : false, layout: 'ticker' 
        }
        ,j);
        if(!j.targeturl)return false;
        var l=$.extend(k,j);
        var m=($.browser.msie);
        if (l.showNews == false) {
            $('#'+l.targetId).children().show();
        }
        if(m) {
            if (l.showNews != false && (l.targeturl.indexOf("limit50") != -1 || l.targeturl.indexOf("limit500") != -1)) {
                l.targeturl = l.targeturl.replace("/limit50", "").replace("/limit500", "").replace("-1.xml", "/message-") + l.showNews + ".xml";
            }
            $('#'+l.targetId).ajaxStart(function() {
                $('<img id="loading" src="'+l.loadingImg+'" alt="Lade..." />').css({'opacity':1}).appendTo('#'+l.targetId + ' .ticker')
            });
            $('#'+l.targetId).ajaxError(function() {
                $(this).append("<strong>Es konnte kein RSS gefunden werden!</strong>")
            });
            $.get(l.targeturl,function(f) {
                $('#'+l.targetId+' img').remove();
                var i=0;
                var g=j.items;
                function h(e) {
                    $(f).find('item').each(function(i) {
                        if(i>e-1 && l.showNews == false)return;
                        var newsToShow = $(this).find('im\\:sid_flags').attr("id") || $(this).find('sid_flags').attr("id");
                        if (l.showNews != false && l.showNews != newsToShow ) return;
                        var a=$(this).find('title').text();
                        var b=$(this).find('pubDate').text();
                        // var cat =$(this).find('category').text();
                        var cat = $(this).find('im\\:category').children(":last").text() || $(this).find('category').children(":last").text(); 
                        var newsImg = $(this).find('enclosure').attr('url');
                        var q = new Date(b);
                        var r = new Date();
                        var hours = q.getHours().toString().length == 1 ? '0'+q.getHours().toString() : q.getHours().toString();
                        var minutes = q.getMinutes().toString().length == 1 ? '0'+q.getMinutes().toString() : q.getMinutes().toString();
                        var day = q.getDate().toString().length == 1 ? '0'+q.getDate().toString() : q.getDate().toString();
                        var month = (q.getMonth()+1).toString().length == 1 ? '0'+(q.getMonth()+1).toString() : (q.getMonth()+1).toString();
                        var year = q.getFullYear();
                        if (q.getDate() == r.getDate() && q.getMonth() == r.getMonth()) {
                            b = hours +':'+ minutes;
                        }
                        else {
                            b = day +'.'+ month+'.';
                        }
                    
                       // var c=$(this).find('link').text();
                        //if (c == null || c == "undefined" || c == "") {
                        var c = l.detailSite;
                        //}
                        var d=$(this).find('description').text();
                        var shortD = $(this).find('im\\:short_teaser').text();
                        if (shortD == "") {
                             shortD = $(this).find('short_teaser').text();
                        }
                        if (l.showNews != false) {
                            $('<div id="newsWrapper"><div class="top"><p class="kategorie">'+cat+'</p><p class="datum">'+day +'.'+ month+'.'+year+' '+ hours +':'+ minutes + ' Uhr'+'</p></div><div class="clearer"></div><div class="optheadline"><h2>'+a+'</h2></div><div class="clearer"></div><div class="news"><img src="'+newsImg+'" alt="'+a+'"/></div><p><b>'+shortD+'</b></p><p class="news">'+d+'</p><div class="clearer"></div><a href="javascript:history.back();"><img src="/web/cms/static/img/admin/button_zurueck.gif" alt="Zurück"></a></div>').appendTo('#'+l.targetId);
                        }
                        else {
                            if (l.layout == 'liste') {
                                $('<div class="newsliste" style="display:none;"><div class="mrgBott"><span class="datum">'+day +'.'+ month+'.'+'</span><span class="zeit">'+hours +':'+ minutes+' Uhr</span><span class="rubrik">'+cat+'</span><div class="clearer"></div></div><div class="clearer"></div><div><h3><a href="'+c+'?showNews='+newsToShow+'">'+a+'</a></h3><p><a href="'+c+'?showNews='+newsToShow+'">'+shortD+'</a></p><div class="clearer"></div></div></div>').appendTo('#'+l.targetId +' .newslistCont');
                            }
                            else {
                                $('<div class="newsticker"><a href="'+c+'?showNews='+newsToShow+'"><span class="zeit">'+b+'</span><span class="rubrik">'+cat+'</span><span class="head">'+o(a,j.Maxlength)+'</span></a><div class="clearer"></div></div>').appendTo('#'+l.targetId +' .ticker');
                            }
                        }
                    });
                    if (l.layout == 'liste') {
                         if (initPagination) {
                            initPagination();
                         }
                    }
                }
                return h(g)
            });
        }
        else {
            var n="xml";
            if (l.showNews != false && (l.targeturl.indexOf("limit50") != -1 || l.targeturl.indexOf("limit500") != -1)) {
                l.targeturl = l.targeturl.replace("/limit50", "").replace("/limit500", "").replace("-1.xml", "/message-") + l.showNews + ".xml";
            }
            $.ajax({
                type:"get",
                url:l.targeturl,
                dataType:n,
                processData:false,
                beforeSend:function() {
                    $('<img id="loading" src="'+l.loadingImg+'" alt="Lade ..." />').css({'opacity':1}).appendTo('#'+l.targetId + ' .ticker')
                },
                success:function(f) {
                    $('#'+l.targetId+' img').remove();
                    var i=0;
                    var g=j.items;
                    function h(e) {
                        $(f).find('item').each(function(i) {
                            if(i>e-1 && l.showNews == false)return;
                            var newsToShow = $(this).find('im\\:sid_flags').attr("id") || $(this).find('sid_flags').attr("id");
                            if (l.showNews != false && l.showNews != newsToShow ) return;

                            var a=$(this).find('title').text();
                            var b=$(this).find('pubDate').text();
                            // var cat =$(this).find('category').text();
                            var cat = $(this).find('im\\:category').children(":last").text() || $(this).find('category').children(":last").text();;

                            var newsImg = $(this).find('enclosure').attr('url');
                            var q = new Date(b);
                            var r = new Date();
                            var hours = q.getHours().toString().length == 1 ? '0'+q.getHours().toString() : q.getHours().toString();
                            var minutes = q.getMinutes().toString().length == 1 ? '0'+q.getMinutes().toString() : q.getMinutes().toString();
                            var day = q.getDate().toString().length == 1 ? '0'+q.getDate().toString() : q.getDate().toString();
                            var month = (q.getMonth()+1).toString().length == 1 ? '0'+(q.getMonth()+1).toString() : (q.getMonth()+1).toString();
                            var year = q.getFullYear();
                            if (q.getDate() == r.getDate() && q.getMonth() == r.getMonth()) {
                                b = hours +':'+ minutes;
                            }
                            else {
                                b = day +'.'+ month+'.';
                            }
                        
                            //var c=$(this).find('link').text();
                            //if (c == null || c == "undefined" || c == "") {
                             var   c = l.detailSite;
                            //}
                            var d=$(this).find('description').text();
                            var shortD = $(this).find('im\\:short_teaser').text();
                            if (shortD == "") {
                                 shortD = $(this).find('short_teaser').text();
                            }
                            if (l.showNews != false) {
                                $('<div id="newsWrapper"><div class="top"><p class="kategorie">'+cat+'</p><p class="datum">'+day +'.'+ month+'.'+year+' '+ hours +':'+ minutes + ' Uhr'+'</p></div><div class="clearer"></div><div class="optheadline"><h2>'+a+'</h2></div><div class="clearer"></div><div class="news"><img src="'+newsImg+'" alt="'+a+'"/></div><p><b>'+shortD+'</b></p><p class="news">'+d+'</p><div class="clearer"></div><a href="javascript:history.back();"><img src="/web/cms/static/img/admin/button_zurueck.gif" alt="Zurück"></a></div>').appendTo('#'+l.targetId);
                            }
                            else {
                                if (l.layout == 'liste') {
                                    $('<div class="newsliste" style="display:none;"><div class="mrgBott"><span class="datum">'+day +'.'+ month+'.'+'</span><span class="zeit">'+hours +':'+ minutes+' Uhr</span><span class="rubrik">'+cat+'</span><div class="clearer"></div></div><div class="clearer"></div><div><h3><a href="'+c+'?showNews='+newsToShow+'">'+a+'</a></h3><p><a href="'+c+'?showNews='+newsToShow+'">'+shortD+'</a></p><div class="clearer"></div></div></div>').appendTo('#'+l.targetId +' .newslistCont');
                                }
                                else {
                                    $('<div class="newsticker"><a href="'+c+'?showNews='+newsToShow+'"><span class="zeit">'+b+'</span><span class="rubrik">'+cat+'</span><span class="head">'+o(a,j.Maxlength)+'</span></a><div class="clearer"></div></div>').appendTo('#'+l.targetId +' .ticker');
                                }
                            }
                        });
                        if (l.layout == 'liste') {
                            if (initPagination) {
                                initPagination();
                            }
                        }
                    }
                    return h(g);
                }
            });
        }
    };
    function o(a,b) {
        var c=a.split(/\s/);
        if(c.length<=b)return a;
        var d='';
        for(var i=0; i<b; i++) {
            d+=c[i]+' ';
        }
        return d;
    }
})(jQuery);
/*!
 * jCarousel - Riding carousels with jQuery
 *   http://sorgalla.com/jcarousel/
 *
 * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Built on top of the jQuery library
 *   http://jquery.com
 *
 * Inspired by the "Carousel Component" by Bill Scott
 *   http://billwscott.com/carousel/
 */
(function(i){i.fn.jcarousel=function(a){if(typeof a=="string"){var c=i(this).data("jcarousel"),b=Array.prototype.slice.call(arguments,1);return c[a].apply(c,b)}else return this.each(function(){i(this).data("jcarousel",new h(this,a))})};var p={vertical:false,rtl: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,itemFallbackDimension:null},q=false;i(window).bind("load.jcarousel",function(){q=true});i.jcarousel=function(a,c){this.options=i.extend({},p,c||{});this.locked=false;this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===undefined)this.options.rtl= (i(a).attr("dir")||i("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical?this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),e=0;e<d.length;e++)if(d[e].indexOf("jcarousel-skin")!=-1){i(a).removeClass(d[e]);b=d[e];break}if(a.nodeName.toUpperCase()=="UL"||a.nodeName.toUpperCase()=="OL"){this.list=i(a);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=i(a);this.list=this.container.find("ul,ol").eq(0)}b!=""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+b+'"></div>');this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass("jcarousel-clip"))this.clip=this.list.wrap("<div></div>").parent(); this.buttonNext=i(".jcarousel-next",this.container);if(this.buttonNext.size()==0&&this.options.buttonNextHTML!=null)this.buttonNext=this.clip.after(this.options.buttonNextHTML).next();this.buttonNext.addClass(this.className("jcarousel-next"));this.buttonPrev=i(".jcarousel-prev",this.container);if(this.buttonPrev.size()==0&&this.options.buttonPrevHTML!=null)this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next();this.buttonPrev.addClass(this.className("jcarousel-prev"));this.clip.addClass(this.className("jcarousel-clip")).css({overflow:"hidden", position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"});!this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var f=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;b=this.list.children("li");var g= this;if(b.size()>0){var j=0;e=this.options.offset;b.each(function(){g.format(this,e++);j+=g.dimension(this,f)});this.list.css(this.wh,j+100+"px");if(!c||c.size===undefined)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display","block");this.funcNext=function(){g.next()};this.funcPrev=function(){g.prev()};this.funcResize=function(){g.reload()};this.options.initCallback!=null&&this.options.initCallback(this,"init");if(!q&& i.browser.safari){this.buttons(false,false);i(window).bind("load.jcarousel",function(){g.setup()})}else this.setup()};var h=i.jcarousel;h.fn=h.prototype={jcarousel:"0.2.5"};h.fn.extend=h.extend=i.extend;h.fn.extend({setup:function(){this.prevLast=this.prevFirst=this.last=this.first=null;this.animating=false;this.tail=this.timer=null;this.inTail=false;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start);this.prevFirst=this.prevLast=null;this.animate(a, false);i(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize)}},reset:function(){this.list.empty();this.list.css(this.lt,"0px");this.list.css(this.wh,"10px");this.options.initCallback!=null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!=null&&this.inTail&&this.list.css(this.lt,h.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=false;this.options.reloadCallback!=null&&this.options.reloadCallback(this);if(this.options.visible!= null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(e){b+=a.dimension(this,c);if(e+1<a.first)d=b});this.list.css(this.wh,b+"px");this.list.css(this.lt,-d+"px")}this.scroll(this.first,false)},lock:function(){this.locked=true;this.buttons()},unlock:function(){this.locked=false;this.buttons()},size:function(a){if(a!=undefined){this.options.size=a;this.locked||this.buttons()}return this.options.size},has:function(a,c){if(c==undefined||!c)c= a;if(this.options.size!==null&&c>this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return false}return true},get:function(a){return i(".jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,e=i(c);if(b.length==0){var f;b=this.create(a);for(var g=h.intval(a);f=this.get(--g);)if(g<=0||f.length){g<=0?this.list.prepend(b):f.after(b);break}}else d=this.dimension(b);if(e.get(0).nodeName.toUpperCase()=="LI"){b.replaceWith(e); b=e}else b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);e=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;d=this.dimension(b,e)-d;a>0&&a<this.first&&this.list.css(this.lt,h.intval(this.list.css(this.lt))-d+"px");this.list.css(this.wh,h.intval(this.list.css(this.wh))+d+"px");return b},remove:function(a){var c=this.get(a);if(!(!c.length||a>=this.first&&a<=this.last)){var b=this.dimension(c);a<this.first&&this.list.css(this.lt, h.intval(this.list.css(this.lt))+b+"px");c.remove();this.list.css(this.wh,h.intval(this.list.css(this.wh))-b+"px")}},next:function(){this.stopAuto();this.tail!=null&&!this.inTail?this.scrollTail(false):this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!=null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.stopAuto();this.tail!=null&&this.inTail?this.scrollTail(true):this.scroll((this.options.wrap=="both"||this.options.wrap== "first")&&this.options.size!=null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(!(this.locked||this.animating||!this.tail)){var c=h.intval(this.list.css(this.lt));!a?c-=this.tail:c+=this.tail;this.inTail=!a;this.prevFirst=this.first;this.prevLast=this.last;this.animate(c)}},scroll:function(a,c){this.locked||this.animating||this.animate(this.pos(a),c)},pos:function(a){var c=h.intval(this.list.css(this.lt));if(this.locked||this.animating)return c;if(this.options.wrap!= "circular")a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a;for(var b=this.first>a,d=this.options.wrap!="circular"&&this.first<=1?1:this.first,e=b?this.get(d):this.get(this.last),f=b?d:d-1,g=null,j=0,l=false,k=0;b?--f>=a:++f<a;){g=this.get(f);l=!g.length;if(g.length==0){g=this.create(f).addClass(this.className("jcarousel-item-placeholder"));e[b?"before":"after"](g);if(this.first!=null&&this.options.wrap=="circular"&&this.options.size!==null&&(f<=0||f>this.options.size)){e=this.get(this.index(f)); if(e.length)g=this.add(f,e.clone(true))}}e=g;k=this.dimension(g);if(l)j+=k;if(this.first!=null&&(this.options.wrap=="circular"||f>=1&&(this.options.size==null||f<=this.options.size)))c=b?c+k:c-k}d=this.clipping();var o=[],n=0;f=a;var m=0;for(e=this.get(a-1);++n;){g=this.get(f);l=!g.length;if(g.length==0){g=this.create(f).addClass(this.className("jcarousel-item-placeholder"));e.length==0?this.list.prepend(g):e[b?"before":"after"](g);if(this.first!=null&&this.options.wrap=="circular"&&this.options.size!== null&&(f<=0||f>this.options.size)){e=this.get(this.index(f));if(e.length)g=this.add(f,e.clone(true))}}e=g;k=this.dimension(g);if(k==0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...");if(this.options.wrap!="circular"&&this.options.size!==null&&f>this.options.size)o.push(g);else if(l)j+=k;m+=k;if(m>=d)break;f++}for(g=0;g<o.length;g++)o[g].remove();if(j>0){this.list.css(this.wh,this.dimension(this.list)+j+"px");if(b){c-=j;this.list.css(this.lt,h.intval(this.list.css(this.lt))- j+"px")}}j=a+n-1;if(this.options.wrap!="circular"&&this.options.size&&j>this.options.size)j=this.options.size;if(f>j){n=0;f=j;for(m=0;++n;){g=this.get(f--);if(!g.length)break;m+=this.dimension(g);if(m>=d)break}}f=j-n+1;if(this.options.wrap!="circular"&&f<1)f=1;if(this.inTail&&b){c+=this.tail;this.inTail=false}this.tail=null;if(this.options.wrap!="circular"&&j==this.options.size&&j-n+1>=1){b=h.margin(this.get(j),!this.options.vertical?"marginRight":"marginBottom");if(m-b>d)this.tail=m-d-b}for(;a-- > f;)c+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=f;this.last=j;return c},animate:function(a,c){if(!(this.locked||this.animating)){this.animating=true;var b=this,d=function(){b.animating=false;a==0&&b.list.css(b.lt,0);if(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size==null||b.last<b.options.size)b.startAuto();b.buttons();b.notify("onAfterAnimation");if(b.options.wrap=="circular"&&b.options.size!==null)for(var e= b.prevFirst;e<=b.prevLast;e++)if(e!==null&&!(e>=b.first&&e<=b.last)&&(e<1||e>b.options.size))b.remove(e)};this.notify("onBeforeAnimation");if(!this.options.animation||c==false){this.list.css(this.lt,a+"px");d()}else this.list.animate(!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},this.options.animation,this.options.easing,d)}},startAuto:function(a){if(a!=undefined)this.options.auto=a;if(this.options.auto==0)return this.stopAuto();if(this.timer==null){var c=this;this.timer=setTimeout(function(){c.next()}, this.options.auto*1E3)}},stopAuto:function(){if(this.timer!=null){clearTimeout(this.timer);this.timer=null}},buttons:function(a,c){if(a==undefined||a==null){a=!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)a=this.tail!=null&&!this.inTail}if(c==undefined||c==null){c=!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)c=this.tail!=null&&this.inTail}var b=this;this.buttonNext[a?"bind":"unbind"](this.options.buttonNextEvent+".jcarousel",this.funcNext)[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?false:true);this.buttonPrev[c?"bind":"unbind"](this.options.buttonPrevEvent+".jcarousel",this.funcPrev)[c?"removeClass": "addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?false:true);this.options.buttonNextCallback!=null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a);this.options.buttonPrevCallback!=null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)},notify:function(a){var c=this.prevFirst==null?"init":this.prevFirst< this.first?"next":"prev";this.callback("itemLoadCallback",a,c);if(this.prevFirst!==this.first){this.callback("itemFirstInCallback",a,c,this.first);this.callback("itemFirstOutCallback",a,c,this.prevFirst)}if(this.prevLast!==this.last){this.callback("itemLastInCallback",a,c,this.last);this.callback("itemLastOutCallback",a,c,this.prevLast)}this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst,this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast, this.first,this.last)},callback:function(a,c,b,d,e,f,g){if(!(this.options[a]==undefined||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var j=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(i.isFunction(j)){var l=this;if(d===undefined)j(l,b,c);else if(e===undefined)this.get(d).each(function(){j(l,this,d,b,c)});else for(var k=d;k<=e;k++)k!==null&&!(k>=f&&k<=g)&&this.get(k).each(function(){j(l,this,k,b,c)})}}},create:function(a){return this.format("<li></li>",a)},format:function(a, c){a=i(a);for(var b=a.get(0).className.split(" "),d=0;d<b.length;d++)b[d].indexOf("jcarousel-")!=-1&&a.removeClass(b[d]);a.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")},dimension:function(a,c){var b=a.jquery!=undefined?a[0]:a,d=!this.options.vertical?(b.offsetWidth|| h.intval(this.options.itemFallbackDimension))+h.margin(b,"marginLeft")+h.margin(b,"marginRight"):(b.offsetHeight||h.intval(this.options.itemFallbackDimension))+h.margin(b,"marginTop")+h.margin(b,"marginBottom");if(c==undefined||d==c)return d;d=!this.options.vertical?c-h.margin(b,"marginLeft")-h.margin(b,"marginRight"):c-h.margin(b,"marginTop")-h.margin(b,"marginBottom");i(b).css(this.wh,d+"px");return this.dimension(b)},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-h.intval(this.clip.css("borderLeftWidth"))- h.intval(this.clip.css("borderRightWidth")):this.clip[0].offsetHeight-h.intval(this.clip.css("borderTopWidth"))-h.intval(this.clip.css("borderBottomWidth"))},index:function(a,c){if(c==undefined)c=this.options.size;return Math.round(((a-1)/c-Math.floor((a-1)/c))*c)+1}});h.extend({defaults:function(a){return i.extend(p,a||{})},margin:function(a,c){if(!a)return 0;var b=a.jquery!=undefined?a[0]:a;if(c=="marginRight"&&i.browser.safari){var d={display:"block","float":"none",width:"auto"},e,f;i.swap(b,d, function(){e=b.offsetWidth});d.marginRight=0;i.swap(b,d,function(){f=b.offsetWidth});return f-e}return h.intval(i.css(b,c))},intval:function(a){a=parseInt(a);return isNaN(a)?0:a}})})(jQuery);
/*
 * jBrowserBookmark - Browser bookmark plugin for use with jQuery
 *
 * Copyright (c) 2010 Andrew Holgate
 *
 * Requirements: jQuery v1.1.3 and beyond.
 *
 * Project homepage:  http://plugins.jquery.com/project/jBrowserBookmark
 *
 *
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 */
(function($){$.fn.jBrowserBookmark=function(options,lang){var defaults=$.extend(opts={language:{'':['Press [key] + ',' to bookmark this page.']},defaultLanguage:'',functionButton:['CTRL','CMD']},options);var docUrl=window.location.href;var docTitle=document.title;var browserName;browserName=getBrowser();return this.each(function(){$(this).click(function(e){e.preventDefault();try{switch(browserName){case'konqueror':case'firefox':window.sidebar.addPanel(docTitle,docUrl,'');break;case'msie':window.external.AddFavorite(docUrl,docTitle);break;case'opera':if(versionOpera()<11){$(this).attr('rel','sidebar').attr('title',docTitle).attr('href',docUrl);break;}else{throw error;}default:throw error;}}catch(error){var hotkey=getHotkey(browserName);var alertText=getLanguageText();if(/mac/.test(navigator.platform.toLowerCase()=='mac')){prefix=alertText[0].replace('[key]',opts.functionButton[1]);}else{prefix=alertText[0].replace('[key]',opts.functionButton[0]);}alert(prefix+hotkey+alertText[1]);}});});function getBrowser(){if($.browser.msie){return'msie';}if($.browser.mozilla){return'firefox';}if($.browser.opera){return'opera';}if($.browser.safari&&/chrome/.test(navigator.userAgent.toLowerCase())){return'chrome';}if($.browser.safari){return'safari';}if(/konqueror/.test(navigator.userAgent.toLowerCase())){return'konqueror';}}function getHotkey(browserName){switch(browserName){case'konqueror':return'B';break;case'opera':return(versionOpera()<9)?'T':'D';break;default:return'D';break;}}function getLanguageText(){var languageChosen;if(opts.language[lang]!=undefined){languageChosen=lang;}else{if(opts.language[navigator.language.toLowerCase().substring(0,2)]!=undefined){languageChosen=navigator.language.toLowerCase().substring(0,2);}else{if(opts.language[opts.defaultLanguage]!=undefined)languageChosen=opts.defaultLanguage;else{for(var i in opts.language){languageChosen=i;break;}}}}return opts.language[languageChosen];}function versionOpera(){version=navigator.userAgent.substring(navigator.userAgent.toLowerCase().indexOf('version/')+8);return parseInt(version.substring(0,version.indexOf('.')));}};})(jQuery);
/* Copyright (c) 2006-2007 Mathias Bank (http://www.mathias-bank.de)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * 
 * Version 2.1
 * 
 * Thanks to 
 * Hinnerk Ruemenapf - http://hinnerk.ruemenapf.de/ for bug reporting and fixing.
 * Tom Leonard for some improvements
 * 
 */
jQuery.fn.extend({
/**
* Returns get parameters.
*
* If the desired param does not exist, null will be returned
*
* To get the document params:
* @example value = $(document).getUrlParam("paramName");
* 
* To get the params of a html-attribut (uses src attribute)
* @example value = $('#imgLink').getUrlParam("paramName");
*/ 
 getUrlParam: function(strParamName){
      strParamName = escape(unescape(strParamName));
      
      var returnVal = new Array();
      var qString = null;
      
      if ($(this).attr("nodeName")=="#document") {
          //document-handler
        
        if (window.location.search.search(strParamName) > -1 ){
            
            qString = window.location.search.substr(1,window.location.search.length).split("&");
        }
            
      } else if ($(this).attr("src")!="undefined") {
          
          var strHref = $(this).attr("src")
          if ( strHref.indexOf("?") > -1 ){
            var strQueryString = strHref.substr(strHref.indexOf("?")+1);
              qString = strQueryString.split("&");
          }
      } else if ($(this).attr("href")!="undefined") {
          
          var strHref = $(this).attr("href")
          if ( strHref.indexOf("?") > -1 ){
            var strQueryString = strHref.substr(strHref.indexOf("?")+1);
              qString = strQueryString.split("&");
          }
      } else {
          return null;
      }
          
      
      if (qString==null) return null;
      
      
      for (var i=0;i<qString.length; i++){
            if (escape(unescape(qString[i].split("=")[0])) == strParamName){
                returnVal.push(qString[i].split("=")[1]);
            }
            
      }
      
      
      if (returnVal.length==0) return null;
      else if (returnVal.length==1) return returnVal[0];
      else return returnVal;
    }
});

(function($){
    $.fn.buliExpert = function(options) {
        var defaults = {
            selectLabel : 'Spieltag',
            preselectedDay: '1',
            selectedDay: '1',
            obj : null,
            tableArray : null,
            tableHeadline : null
        };
        var options = $.extend(defaults, options);
        var generateDropdown = function(data) {
            var selectOptions = [];
            $(options.tableArray).each(function (i, entry) {
                if (i != 0) {
                    $posEntry = $("td:first", entry).text();
                    if (jQuery.inArray($posEntry, selectOptions) == -1) { 
                        selectOptions.push($posEntry);
                    }
                }
            });
            $("select", options.obj).before('<label style="color:#7AB800; font-weight:bold; margin-right: 10px;">' + options.selectLabel + '</label>');
            for (var i=0; i< selectOptions.length; i++) {
                if (selectOptions[i] != "x") {
                    var tempOption = new Option(selectOptions[i] + ". " + options.selectLabel, selectOptions[i]);
                    $("select", options.obj).get(0).options[i] = tempOption;
                }    
            }
        }
        var showFirst = function(data) {
            $(options.tableArray).hide();
            if(!$.browser.msie) {
                $(options.tableHeadline).css({display:'table-row'});
            } else {
                $(options.tableHeadline).show();
            }
            $("th:first", options.tableHeadline).hide();
            $(options.tableArray).each(function (i, entry) {
                $("td:first", entry).hide();
                if (data == $("td:first", entry).text()) {
                    if(!$.browser.msie) {
                        $(entry).css({display:'table-row'});
                    } else {
                        $(entry).show();
                    }
                }
            });
            $("select option", options.obj).each(function (i) {
                if (($(this).text().split("."))[0] == data) {
                    $(this).attr("selected", "selected");
                }
            });
        }
        return this.each(function() {
            options.obj = $(this);
            options.tableArray = $("div table.tab_tabello tr", this);
            options.tableHeadline = $("div table.tab_tabello tr:first", this);
            options.selectedDay = $(document).getUrlParam("buliPage") || options.preselectedDay;
            generateDropdown();
            (parseInt(options.selectedDay) <= $("select option", options.obj).length) ? showFirst(options.selectedDay) : showFirst("1");
            $("select", options.obj).change(function () {
                var selPosition = ($("option:selected", this).text().split("."))[0];
                $(options.tableArray).hide();
                $(options.tableHeadline).show();
                $(options.tableArray).each(function (i, entry) {
                    $("td:first", entry).hide();
                    if (selPosition == $("td:first", entry).text())
                        $(entry).show();
                });    
            });
    
        });
    };
})(jQuery);
 
/* TV-Kalender-Funktionen */
function setPTAuswahl(_i,_j,_form){
    var suchindex = "PT" + _i.toString() + _j.toString();  
    _form.selectedIndex.value = suchindex;  
    _form.additionalCalendarClicked.value = "false";
    _form.tvCalendarClicked.value = "true";
    _form.submit();
    return;
}
function setKTAuswahl(_j,_form){
    var suchindex =  _j.toString();  
    _form.selectedKwIndex.value = suchindex;  
    _form.additionalCalendarClicked.value = "true";
    _form.tvCalendarClicked.value = "false";
    _form.submit();
    return;
}
function setPWAuswahl(_i,_form){
    var suchindex = "PW" + _i.toString();  
    _form.selectedIndex.value = suchindex;  
    _form.additionalCalendarClicked.value = "false";
    _form.tvCalendarClicked.value = "true";
    _form.submit();
    return;    
}
function setDeleteParam(entryId,action,form) {
    document.forms[form].elements["entryID"].value = entryId;
    document.forms[form].elements["action"].value = action;
    document.forms[form].submit();
}
function submitForm(tellFriends, MerkIndex) {
    document.forms['merkliste.boundary.addMemoryEntrysForm'].elements['hdnTellFriends.value']= tellFriends; 
    $('#merk_chekbox'+MerkIndex).attr('checked','checked'); 
    document.forms['merkliste.boundary.addMemoryEntrysForm'].submit(); 
}
/* Wird benötigt, um frontendseitig die Auswahl von Kanälen zum Blättern im Programm überprüfen */
function selectAll( formName,lastOrdinalNumber)
{
    var i = 0;
    var ok = true;
    var selectedStations = 0;
    var currentSelectionName = "";
    if (document.forms[formName].cbAll.checked == true) {
       //select all stations
        while( i <= lastOrdinalNumber)
        {         
            currentSelectionName = "selection(" + i + ")";      
            if( document.forms[formName].elements[currentSelectionName] != null ) { 
                document.forms[formName].elements[currentSelectionName].checked = true;  
            }
            i++;
           } 
       
    } else {
      //deselect all stations
         while( i <= lastOrdinalNumber)
        {         
            currentSelectionName = "selection(" + i + ")";      
            if( document.forms[formName].elements[currentSelectionName] != null ) { 
                document.forms[formName].elements[currentSelectionName].checked = false;  
            }
            i++;
           } 
    
    
    }
     
    
}
function checkKanalAuswahl( formName, lastOrdinalNumber)
{
    var i = 0;
    var ok = true;
    var selectedStations = 0;
   
    while( i <= lastOrdinalNumber)
    {
        var currentSelectionName = "selection(" + i + ")";
        if( document.forms[formName].elements[currentSelectionName] != null )
        {            
            if( document.forms[formName].elements[currentSelectionName].checked == true )
            {
                selectedStations++;
                break;
                
            }
        } 
        i++;
    }
    //Keine Fehlermeldung mehr wenn kein Kanal ausgewählt wurde, dann alle verwenden
    /*if (selectedStations > 0) {       
      document.forms[formName].submit();
    }else {
       alert (alertPleaseSelectStation);
    }*/
    document.forms[formName].submit();
    
}
// PopUp TV-Guide Detail --------------------------------------------------------------------------
function OpenPopUp_TVGuide(strLink) 
{
    /*
    Definition:        Auto-Scrolling
                    Not Resizable (soll in Ausnahmefälleb resizable sein -> Variable)
                    1 Button (=Schließen)
                    Container-Spacing = yes
    Fix:            width  (fix bei 632 = 584px Contentbereich +16px Abstand links +16px Abstand rechts +16px Scoller)
                    height (fix = 20px HeaderFrame +16px Abstand nach oben + 374px Contentbereich +40px Abstand +24px FooterFrame)
    */
    intWidth     = 522; // kleiner als bei Premiere.de/at!
    intHeight     = 474;
    var    _objTVGuide = window.open(strLink, "TVGuide", "width="+intWidth+",height="+intHeight+",left=168,screenX=168,top=154,screenY=154,resizable=no,status=no,location=no,menubar=no,toolbar=no");
    _objTVGuide.focus();
}
//-------------------------------------------------------------------------------------------------
 
/*
 * jQuery Tooltip plugin 1.3
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
 * http://docs.jquery.com/Plugins/Tooltip
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */;(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track=false;$.tooltip={blocked:false,defaults:{delay:200,fade:false,showURL:true,extraClass:"",top:15,left:15,id:"tooltip"},block:function(){$.tooltip.blocked=!$.tooltip.blocked;}};$.fn.extend({tooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip",settings);this.tOpacity=helper.parent.css("opacity");this.tooltipText=this.title;$(this).removeAttr("title");this.alt="";}).mouseover(save).mouseout(hide).click(hide);},fixPNG:IE?function(){return this.each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')$(this).css('position','relative');});}});}:function(){return this;},unfixPNG:IE?function(){return this.each(function(){$(this).css({'filter':'',backgroundImage:''});});}:function(){return this;},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]();});},url:function(){return this.attr('href')||this.attr('src');}});function createHelper(settings){if(helper.parent)return;helper.parent=$('<div id="'+settings.id+'"><h3></h3><div class="body"></div><div class="url"></div></div>').appendTo(document.body).hide();if($.fn.bgiframe)helper.parent.bgiframe();helper.title=$('h3',helper.parent);helper.body=$('div.body',helper.parent);helper.url=$('div.url',helper.parent);}function settings(element){return $.data(element,"tooltip");}function handle(event){if(settings(this).delay)tID=setTimeout(show,settings(this).delay);else
show();track=!!settings(this).track;$(document.body).bind('mousemove',update);update(event);}function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler))return;current=this;title=this.tooltipText;if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent);}helper.body.show();}else if(settings(this).showBody){var parts=title.split(settings(this).showBody);helper.title.html(parts.shift()).show();helper.body.empty();for(var i=0,part;(part=parts[i]);i++){if(i>0)helper.body.append("<br/>");helper.body.append(part);}helper.body.hideWhenEmpty();}else{helper.title.html(title).show();helper.body.hide();}if(settings(this).showURL&&$(this).url())helper.url.html($(this).url().replace('http://','')).show();else
helper.url.hide();helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG)helper.parent.fixPNG();handle.apply(this,arguments);}function show(){tID=null;if((!IE||!$.fn.bgiframe)&&settings(current).fade){if(helper.parent.is(":animated"))helper.parent.stop().show().fadeTo(settings(current).fade,current.tOpacity);else
helper.parent.is(':visible')?helper.parent.fadeTo(settings(current).fade,current.tOpacity):helper.parent.fadeIn(settings(current).fade);}else{helper.parent.show();}update();}function update(event){if($.tooltip.blocked)return;if(event&&event.target.tagName=="OPTION"){return;}if(!track&&helper.parent.is(":visible")){$(document.body).unbind('mousemove',update)}if(current==null){$(document.body).unbind('mousemove',update);return;}helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;var right='auto';if(settings(current).positionLeft){right=$(window).width()-left;left='auto';}helper.parent.css({left:left,right:right,top:top});}var v=viewport(),h=helper.parent[0];if(v.x+v.cx<h.offsetLeft+h.offsetWidth){left-=h.offsetWidth+20+settings(current).left;helper.parent.css({left:left+'px'}).addClass("viewport-right");}if(v.y+v.cy<h.offsetTop+h.offsetHeight){top-=h.offsetHeight+20+settings(current).top;helper.parent.css({top:top+'px'}).addClass("viewport-bottom");}}function viewport(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()};}function hide(event){if($.tooltip.blocked)return;if(tID)clearTimeout(tID);current=null;var tsettings=settings(this);function complete(){helper.parent.removeClass(tsettings.extraClass).hide().css("opacity","");}if((!IE||!$.fn.bgiframe)&&tsettings.fade){if(helper.parent.is(':animated'))helper.parent.stop().fadeTo(tsettings.fade,0,complete);else
helper.parent.stop().fadeOut(tsettings.fade,complete);}else
complete();if(settings(this).fixPNG)helper.parent.unfixPNG();}})(jQuery);

/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
          
var tb_pathToImage = "/web/cms/static/img/admin/ajax-loader.gif";
/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
//on page load call tb_init
$(document).ready(function(){   
    tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
    imgLoader = new Image();// preload image
    imgLoader.src = tb_pathToImage;
});
//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
    $(domChunk).click(function(){
    var t = this.title || this.name || null;
    var a = this.href || this.alt;
    var g = this.rel || false;
    tb_show(t,a,g);
    this.blur();
    return false;
    });
}
function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
    try {
        $("select").each(function() {
            jQuery.data($(this).get(0),"cssDisplay", { first: $(this).css("display")});
            $(this).hide();
        })
        $("#topAdv, #rightAdv").css("visibility", "hidden");
        if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
            $("body","html").css({height: "100%", width: "100%"});
            $("html").css("overflow","hidden");
            if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
                $("body").append("<iframe id='TB_HideSelect' src='/web/cms/de/index.jsp'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
                $("#TB_overlay").click(tb_remove);
            }
        }else{//all others
            if(document.getElementById("TB_overlay") === null){
                $("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
                $("#TB_overlay").click(tb_remove);
            }
        }
        
        if(tb_detectMacXFF()){
            $("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
        }else{
            $("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
        }
        
        if(caption===null){caption="";}
        // WE DONT WANT CAPTION
        caption="";
        $("body").append("<div id='TB_load'><img src='"+tb_pathToImage+"' /></div>");//add loader to the page
        $('#TB_load').show();//show loader
        
        var baseURL;
       if(url.indexOf("?")!==-1){ //ff there is a query string involved
            baseURL = url.substr(0, url.indexOf("?"));
       }else{ 
               baseURL = url;
       }
       
       var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$|\.swf$/;
       var urlType = baseURL.toLowerCase().match(urlString);
        if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
                
            TB_PrevCaption = "";
            TB_PrevURL = "";
            TB_PrevHTML = "";
            TB_NextCaption = "";
            TB_NextURL = "";
            TB_NextHTML = "";
            TB_imageCount = "";
            TB_FoundURL = false;
            if(imageGroup){
                TB_TempArray = $("a[rel='"+imageGroup+"']").get();
                for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
                    var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
                        if (!(TB_TempArray[TB_Counter].href == url)) {                        
                            if (TB_FoundURL) {
                                TB_NextCaption = TB_TempArray[TB_Counter].title;
                                TB_NextURL = TB_TempArray[TB_Counter].href;
                                TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
                            } else {
                                TB_PrevCaption = TB_TempArray[TB_Counter].title;
                                TB_PrevURL = TB_TempArray[TB_Counter].href;
                                TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
                            }
                        } else {
                            TB_FoundURL = true;
                            TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                            
                        }
                }
            }
            imgPreloader = new Image();
            imgPreloader.onload = function(){        
            imgPreloader.onload = null;
                
            // Resizing large images - orginal by Christian Montoya edited by me.
            var pagesize = tb_getPageSize();
            var x = pagesize[0] - 150;
            var y = pagesize[1] - 150;
            var imageWidth = imgPreloader.width;
            var imageHeight = imgPreloader.height;
            if (imageWidth > x) {
                imageHeight = imageHeight * (x / imageWidth); 
                imageWidth = x; 
                if (imageHeight > y) { 
                    imageWidth = imageWidth * (y / imageHeight); 
                    imageHeight = y; 
                }
            } else if (imageHeight > y) { 
                imageWidth = imageWidth * (y / imageHeight); 
                imageHeight = y; 
                if (imageWidth > x) { 
                    imageHeight = imageHeight * (x / imageWidth); 
                    imageWidth = x;
                }
            }
            // End Resizing
            
            TB_WIDTH = imageWidth + 30;
            TB_HEIGHT = imageHeight + 60;
            $("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'><img src='/web/cms/static/img/admin/schliessen-btn_15x15.png' alt='Schliessen' /></a></div>");         
            
            $("#TB_closeWindowButton").click(tb_remove);
            
            if (!(TB_PrevHTML === "")) {
                function goPrev(){
                    if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
                    $("#TB_window").remove();
                    $("body").append("<div id='TB_window'></div>");
                    tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
                    return false;    
                }
                $("#TB_prev").click(goPrev);
            }
            
            if (!(TB_NextHTML === "")) {        
                function goNext(){
                    $("#TB_window").remove();
                    $("body").append("<div id='TB_window'></div>");
                    tb_show(TB_NextCaption, TB_NextURL, imageGroup);                
                    return false;    
                }
                $("#TB_next").click(goNext);
                
            }
            document.onkeydown = function(e){     
                if (e == null) { // ie
                    keycode = event.keyCode;
                } else { // mozilla
                    keycode = e.which;
                }
                if(keycode == 27){ // close
                    tb_remove();
                } else if(keycode == 190){ // display previous image
                    if(!(TB_NextHTML == "")){
                        document.onkeydown = "";
                        goNext();
                    }
                } else if(keycode == 188){ // display next image
                    if(!(TB_PrevHTML == "")){
                        document.onkeydown = "";
                        goPrev();
                    }
                }    
            };
            
            tb_position();
            $("#TB_load").remove();
            $("#TB_ImageOff").click(tb_remove);
            $("#TB_window").css({display:"block"}); //for safari using css instead of show
            };
            
            imgPreloader.src = url;
        }else if (urlType == '.swf') {
            var queryString = url.replace(/^[^\?]+\??/,'');
            var params = tb_parseQuery( queryString );
            var flash2load = params['file'];
            var image4bg = params['img'];
            var autoplay = params['autoplay'];
            var standbild = params['standbild'];
            if (flash2load != undefined) {
                if (flash2load.indexOf(".flv") != -1) {
                    flash2load = flash2load.slice(0,flash2load.length-4); 
                }
            }
            TB_WIDTH = (params['width']*1)  || 595; //defaults to 630 if no paramaters were added to URL
            TB_HEIGHT = (params['height']*1) || 175; //defaults to 440 if no paramaters were added to URL
            
            var so = new SWFObject(url, "FlashTrailer", TB_WIDTH, TB_HEIGHT, "9", "#FFFFFF");
            so.addParam("wmode", "window");
            so.addParam("allowFullScreen", "true");
            so.addVariable("flash", flash2load);
            so.addVariable("img", image4bg);
            so.addVariable("autoplay", autoplay);
            so.addVariable("standbild", standbild);
            so.write("TB_window");
            $("#TB_window").append("<div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Schlie&szlig;en'></a></div>");         
            $("#TB_closeWindowButton").click(tb_remove);
            
            document.onkeydown = function(e){     
                if (e == null) { // ie
                    keycode = event.keyCode;
                } else { // mozilla
                    keycode = e.which;
                }
                if(keycode == 27){ // close
                    tb_remove();
                } 
                    
            };
            
            tb_position();
            $("#TB_load").remove();
            $("#TB_window").css({display:"block"}); //for safari using css instead of show
            
            
        
        
        
// Flash ENDE        
        }else {//code to show html
            
            var queryString = url.replace(/^[^\?]+\??/,'');
            var params = tb_parseQuery( queryString );
            TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
            TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
            ajaxContentW = TB_WIDTH - 30;
            ajaxContentH = TB_HEIGHT - 45;
            
            if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window        
                    urlNoQuery = url.split('TB_');
                    urlNoQuery[0] = urlNoQuery[0].substring(0, urlNoQuery[0].length - 1);
                    $("#TB_iframeContent").remove();
                    if(params['modal'] != "true"){//iframe no modal
                        $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'><img src='/web/cms/static/img/admin/schliessen-btn_15x15.png' alt='Schliessen' /></a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
                    }else{//iframe modal
                    $("#TB_overlay").unbind();
                        $("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
                    }
            }else{// not an iframe, ajax
                    if($("#TB_window").css("display") != "block"){
                        if(params['modal'] != "true"){//ajax no modal
                        $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'><img src='/web/cms/static/img/admin/schliessen-btn_15x15.png' alt='Schliessen' /></a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
                        }else{//ajax modal
                        $("#TB_overlay").unbind();
                        $("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
                        }
                    }else{//this means the window is already up, we are just loading new content via ajax
                        $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
                        $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
                        $("#TB_ajaxContent")[0].scrollTop = 0;
                        $("#TB_ajaxWindowTitle").html(caption);
                    }
                    
            }
                    
            $("#TB_closeWindowButton").click(tb_remove);
            
                if(url.indexOf('TB_inline') != -1){    
                    $("#TB_ajaxContent").append($('#' + params['inlineId']).children());
                    $("#TB_window").unload(function () {
                        $('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished
                    });
                    tb_position();
                    $("#TB_load").remove();
                    $("#TB_window").css({display:"block"}); 
                    $("#TB_window select").show();
                }else if(url.indexOf('TB_iframe') != -1){
                    tb_position();
                    if($.browser.safari){//safari needs help because it will not fire iframe onload
                        $("#TB_load").remove();
                        $("#TB_window").css({display:"block"});
                    }
                }else{
                    $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
                        tb_position();
                        $("#TB_load").remove();
                        tb_init("#TB_ajaxContent a.thickbox");
                        $("#TB_window").css({display:"block"});
                    });
                }
            
        }
       /* if(!params['modal']){
            document.onkeyup = function(e){     
                if (e == null) { // ie
                    keycode = event.keyCode;
                } else { // mozilla
                    keycode = e.which;
                }
                if(keycode == 27){ // close
                    tb_remove();
                }    
            };
        }*/
        
    } catch(e) {
        alert(e);
        //nothing here
    }
}
//helper functions below
function tb_showIframe(){
    $("#TB_load").remove();
    $("#TB_window").css({display:"block"});
}
function tb_remove() {

     $("#TB_imageOff").unbind("click");
    $("#TB_closeWindowButton").unbind("click");
    $("#TB_window").fadeOut("fast",function(){
        $('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();
        $("#TB_overlay").css("background-color", "#000");
        $("#TB_window").css("border", "none");
        $("select").each(function() {
            if (jQuery.data($(this).get(0),"cssDisplay")) {
                displayState = jQuery.data($(this).get(0),"cssDisplay").first;
                if (displayState != "")
                    $(this).css("display",displayState);
                else
                    $(this).show();
            }
        });
        });
    $("#TB_load").remove();
    if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
        $("body","html").css({height: "auto", width: "auto"});
        $("html").css("overflow","");
    }
    document.onkeydown = "";
    document.onkeyup = "";
    $("#topAdv, #rightAdv").css("visibility", "visible");
    return false;
}
function tb_position() {
$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
    if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
        $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
    }
}
function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}
function tb_getPageSize(){
    var de = document.documentElement;
    var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
    var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
    arrayPageSize = [w,h];
    return arrayPageSize;
}
function tb_detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.0.4
*
* Requires: 1.2.2+
*/
(function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=
f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 *
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
 *
 * Version: 1.3.4 (11/11/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
;(function($) {
    var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right,
        selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],
        ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,
        loadingTimer, loadingFrame = 1,
        titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('<div/>')[0], { prop: 0 }),
        isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
        /*
         * Private methods 
         */
        _abort = function() {
            loading.hide();
            imgPreloader.onerror = imgPreloader.onload = null;
            if (ajaxLoader) {
                ajaxLoader.abort();
            }
            tmp.empty();
        },
        _error = function() {
            if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) {
                loading.hide();
                busy = false;
                return;
            }
            selectedOpts.titleShow = false;
            selectedOpts.width = 'auto';
            selectedOpts.height = 'auto';
            tmp.html( '<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>' );
            _process_inline();
        },
        _start = function() {
            var obj = selectedArray[ selectedIndex ],
                href, 
                type, 
                title,
                str,
                emb,
                ret;
            _abort();
            selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));
            ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts);
            if (ret === false) {
                busy = false;
                return;
            } else if (typeof ret == 'object') {
                selectedOpts = $.extend(selectedOpts, ret);
            }
            if (window.s && selectedOpts.trackingName) {
                window.s.pageName = selectedOpts.trackingName;
                void(s.t());
            }
            if (selectedOpts.ivw != "") {
                jQuery("body").append("<img src=\""+location.protocol+ "//premiede.ivwbox.de/cgi-bin/ivw/CP/" + selectedOpts.ivw+"?r="+escape(document.referrer)+"&d="+(Math.random()*100000)+"\" width=\"1\" height=\"1\" alt=\"szmtag\" />");
            }
            title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';
            if (obj.nodeName && !selectedOpts.orig) {
                selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
            }
            if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) {
                title = selectedOpts.orig.attr('alt');
            }
            href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null;
            if ((/^(?:javascript)/i).test(href) || href == '#') {
                href = null;
            }
            if (selectedOpts.type) {
                type = selectedOpts.type;
                if (!href) {
                    href = selectedOpts.content;
                }
            } else if (selectedOpts.content) {
                type = 'html';
            } else if (href) {
                if (href.match(imgRegExp)) {
                    type = 'image';
                } else if (href.match(swfRegExp)) {
                    type = 'swf';
                } else if ($(obj).hasClass("iframe")) {
                    type = 'iframe';
                } else if (href.indexOf("#") === 0) {
                    type = 'inline';
                } else {
                    type = 'ajax';
                }
            }
            if (!type) {
                _error();
                return;
            }
            if (type == 'inline') {
                obj    = href.substr(href.indexOf("#"));
                type = $(obj).length > 0 ? 'inline' : 'ajax';
            }
            // BKa
            if (selectedOpts.invert) {
                $("#fancybox-wrap").addClass("invert")
            }
            else {
                $("#fancybox-wrap").removeClass("invert")
            }
            selectedOpts.type = type;
            selectedOpts.href = href;
            selectedOpts.title = title;
            if (selectedOpts.autoDimensions) {
                if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') {
                    selectedOpts.width = 'auto';
                    selectedOpts.height = 'auto';
                } else {
                    selectedOpts.autoDimensions = false;    
                }
            }
            if (selectedOpts.modal) {
                selectedOpts.overlayShow = true;
                selectedOpts.hideOnOverlayClick = false;
                selectedOpts.hideOnContentClick = false;
                selectedOpts.enableEscapeButton = false;
                selectedOpts.showCloseButton = false;
            }
            selectedOpts.padding = parseInt(selectedOpts.padding, 10);
            selectedOpts.margin = parseInt(selectedOpts.margin, 10);
            tmp.css('padding', (selectedOpts.padding + selectedOpts.margin));
            $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
                $(this).replaceWith(content.children());                
            });
            switch (type) {
                case 'html' :
                    tmp.html( selectedOpts.content );
                    _process_inline();
                break;
                case 'inline' :
                    if ( $(obj).parent().is('#fancybox-content') === true) {
                        busy = false;
                        return;
                    }
                    $('<div class="fancybox-inline-tmp" />')
                        .hide()
                        .insertBefore( $(obj) )
                        .bind('fancybox-cleanup', function() {
                            $(this).replaceWith(content.children());
                        }).bind('fancybox-cancel', function() {
                            $(this).replaceWith(tmp.children());
                        });
                    $(obj).appendTo(tmp);
                    _process_inline();
                break;
                case 'image':
                    busy = false;
                    $.fancybox.showActivity();
                    imgPreloader = new Image();
                    imgPreloader.onerror = function() {
                        _error();
                    };
                    imgPreloader.onload = function() {
                        busy = true;
                        imgPreloader.onerror = imgPreloader.onload = null;
                        _process_image();
                    };
                    imgPreloader.src = href;
                break;
                case 'swf':
                    selectedOpts.scrolling = 'no';
                    str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';
                    emb = '';
                    $.each(selectedOpts.swf, function(name, val) {
                        str += '<param name="' + name + '" value="' + val + '"></param>';
                        emb += ' ' + name + '="' + val + '"';
                    });
                    str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';
                    tmp.html(str);
                    _process_inline();
                break;
                case 'ajax':
                    busy = false;
                    $.fancybox.showActivity();
                    selectedOpts.ajax.win = selectedOpts.ajax.success;
                    ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, {
                        url    : href,
                        data : selectedOpts.ajax.data || {},
                        error : function(XMLHttpRequest, textStatus, errorThrown) {
                            if ( XMLHttpRequest.status > 0 ) {
                                _error();
                            }
                        },
                        success : function(data, textStatus, XMLHttpRequest) {
                            var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader;
                            if (o.status == 200) {
                                if ( typeof selectedOpts.ajax.win == 'function' ) {
                                    ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest);
                                    if (ret === false) {
                                        loading.hide();
                                        return;
                                    } else if (typeof ret == 'string' || typeof ret == 'object') {
                                        data = ret;
                                    }
                                }
                                tmp.html( data );
                                _process_inline();
                            }
                        }
                    }));
                break;
                case 'iframe':
                    _show();
                break;
            }
        },
        _process_inline = function() {
            var
                w = selectedOpts.width,
                h = selectedOpts.height;
            if (w.toString().indexOf('%') > -1) {
                w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px';
            } else {
                w = w == 'auto' ? 'auto' : w + 'px';    
            }
            if (h.toString().indexOf('%') > -1) {
                h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px';
            } else {
                h = h == 'auto' ? 'auto' : h + 'px';    
            }
            tmp.wrapInner('<div style="width:' + w + ';height:' + h + ';overflow: ' + (selectedOpts.scrolling == 'auto' ? 'auto' : (selectedOpts.scrolling == 'yes' ? 'scroll' : 'hidden')) + ';position:relative;"></div>');
            selectedOpts.width = tmp.width();
            selectedOpts.height = tmp.height();
            _show();
        },
        _process_image = function() {
            selectedOpts.width = imgPreloader.width;
            selectedOpts.height = imgPreloader.height;
            $("<img />").attr({
                'id' : 'fancybox-img',
                'src' : imgPreloader.src,
                'alt' : selectedOpts.title
            }).appendTo( tmp );
            _show();
        },
        _show = function() {
            var pos, equal;
            loading.hide();
            if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
                $.event.trigger('fancybox-cancel');
                busy = false;
                return;
            }
            busy = true;
            $(content.add( overlay )).unbind();
            $(window).unbind("resize.fb scroll.fb");
            $(document).unbind('keydown.fb');
            if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') {
                wrap.css('height', wrap.height());
            }
            currentArray = selectedArray;
            currentIndex = selectedIndex;
            currentOpts = selectedOpts;
            if (currentOpts.overlayShow) {
                overlay.css({
                    'background-color' : currentOpts.overlayColor,
                    'opacity' : currentOpts.overlayOpacity,
                    'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto',
                    'height' : $(document).height()
                });
                if (!overlay.is(':visible')) {
                    if (isIE6) {
                        $('select:not(#fancybox-tmp select)').filter(function() {
                            return this.style.visibility !== 'hidden';
                        }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() {
                            this.style.visibility = 'inherit';
                        });
                    }
                    overlay.show();
                }
            } else {
                overlay.hide();
            }
            final_pos = _get_zoom_to();
            _process_title();
            if (wrap.is(":visible")) {
                $( close.add( nav_left ).add( nav_right ) ).hide();
                pos = wrap.position(),
                start_pos = {
                    top     : pos.top,
                    left : pos.left,
                    width : wrap.width(),
                    height : wrap.height()
                };
                equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);
                content.fadeTo(currentOpts.changeFade, 0.3, function() {
                    var finish_resizing = function() {
                        content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish);
                    };
                    $.event.trigger('fancybox-change');
                    content
                        .empty()
                        .removeAttr('filter')
                        .css({
                            'border-width' : currentOpts.padding,
                            'width'    : final_pos.width - currentOpts.padding * 2,
                            'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
                        });
                    if (equal) {
                        finish_resizing();
                    } else {
                        fx.prop = 0;
                        $(fx).animate({prop: 1}, {
                             duration : currentOpts.changeSpeed,
                             easing : currentOpts.easingChange,
                             step : _draw,
                             complete : finish_resizing
                        });
                    }
                });
                return;
            }
            wrap.removeAttr("style");
            content.css('border-width', currentOpts.padding);
            if (currentOpts.transitionIn == 'elastic') {
                start_pos = _get_zoom_from();
                content.html( tmp.contents() );
                wrap.show();
                if (currentOpts.opacity) {
                    final_pos.opacity = 0;
                }
                fx.prop = 0;
                $(fx).animate({prop: 1}, {
                     duration : currentOpts.speedIn,
                     easing : currentOpts.easingIn,
                     step : _draw,
                     complete : _finish
                });
                return;
            }
            if (currentOpts.titlePosition == 'inside' && titleHeight > 0) {    
                title.show();    
            }
            content
                .css({
                    'width' : final_pos.width - currentOpts.padding * 2,
                    'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
                })
                .html( tmp.contents() );
            wrap
                .css(final_pos)
                .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
        },
        _format_title = function(title) {
            if (title && title.length) {
                if (currentOpts.titlePosition == 'float') {
                    return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + title + '</td><td id="fancybox-title-float-right"></td></tr></table>';
                }
                return '<div id="fancybox-title-' + currentOpts.titlePosition + '">' + title + '</div>';
            }
            return false;
        },
        _process_title = function() {
            titleStr = currentOpts.title || '';
            titleHeight = 0;
            title
                .empty()
                .removeAttr('style')
                .removeClass();
            if (currentOpts.titleShow === false) {
                title.hide();
                return;
            }
            titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr);
            if (!titleStr || titleStr === '') {
                title.hide();
                return;
            }
            title
                .addClass('fancybox-title-' + currentOpts.titlePosition)
                .html( titleStr )
                .appendTo( 'body' )
                .show();
            switch (currentOpts.titlePosition) {
                case 'inside':
                    title
                        .css({
                            'width' : final_pos.width - (currentOpts.padding * 2),
                            'marginLeft' : currentOpts.padding,
                            'marginRight' : currentOpts.padding
                        });
                    titleHeight = title.outerHeight(true);
                    title.appendTo( outer );
                    final_pos.height += titleHeight;
                break;
                case 'over':
                    title
                        .css({
                            'marginLeft' : currentOpts.padding,
                            'width'    : final_pos.width - (currentOpts.padding * 2),
                            'bottom' : currentOpts.padding
                        })
                        .appendTo( outer );
                break;
                case 'float':
                    title
                        .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1)
                        .appendTo( wrap );
                break;
                default:
                    title
                        .css({
                            'width' : final_pos.width - (currentOpts.padding * 2),
                            'paddingLeft' : currentOpts.padding,
                            'paddingRight' : currentOpts.padding
                        })
                        .appendTo( wrap );
                break;
            }
            title.hide();
        },
        _set_navigation = function() {
            if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) {
                $(document).bind('keydown.fb', function(e) {
                    if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
                        e.preventDefault();
                        $.fancybox.close();
                    } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') {
                        e.preventDefault();
                        $.fancybox[ e.keyCode == 37 ? 'prev' : 'next']();
                    }
                });
            }
            if (!currentOpts.showNavArrows) { 
                nav_left.hide();
                nav_right.hide();
                return;
            }
            if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
                nav_left.show();
            }
            if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
                nav_right.show();
            }
        },
        _finish = function () {
            if (!$.support.opacity) {
                content.get(0).style.removeAttribute('filter');
                wrap.get(0).style.removeAttribute('filter');
            }
            if (selectedOpts.autoDimensions) {
                content.css('height', 'auto');
            }
            wrap.css('height', 'auto');
            if (titleStr && titleStr.length) {
                title.show();
                // BKa fade?
            }
            if (currentOpts.showCloseButton) {
                close.show();
            }
            _set_navigation();
    
            if (currentOpts.hideOnContentClick)    {
                content.bind('click', $.fancybox.close);
            }
            if (currentOpts.hideOnOverlayClick)    {
                overlay.bind('click', $.fancybox.close);
            }
            $(window).bind("resize.fb", $.fancybox.resize);
            if (currentOpts.centerOnScroll) {
                $(window).bind("scroll.fb", $.fancybox.center);
            }
            if (currentOpts.type == 'iframe') {
                $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" ' + ($.browser.msie ? 'allowtransparency="true""' : '') + ' scrolling="' + selectedOpts.scrolling + '" src="' + currentOpts.href + '"></iframe>').appendTo(content);
            }
            wrap.show();
            busy = false;
            $.fancybox.center();
            currentOpts.onComplete(currentArray, currentIndex, currentOpts);
            _preload_images();
        },
        _preload_images = function() {
            var href, 
                objNext;
            if ((currentArray.length -1) > currentIndex) {
                href = currentArray[ currentIndex + 1 ].href;
                if (typeof href !== 'undefined' && href.match(imgRegExp)) {
                    objNext = new Image();
                    objNext.src = href;
                }
            }
            if (currentIndex > 0) {
                href = currentArray[ currentIndex - 1 ].href;
                if (typeof href !== 'undefined' && href.match(imgRegExp)) {
                    objNext = new Image();
                    objNext.src = href;
                }
            }
        },
        _draw = function(pos) {
            var dim = {
                width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
                height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),
                top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10),
                left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10)
            };
            if (typeof final_pos.opacity !== 'undefined') {
                dim.opacity = pos < 0.5 ? 0.5 : pos;
            }
            wrap.css(dim);
            content.css({
                'width' : dim.width - currentOpts.padding * 2,
                'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2
            });
        },
        _get_viewport = function() {
            return [
                $(window).width() - (currentOpts.margin * 2),
                $(window).height() - (currentOpts.margin * 2),
                $(document).scrollLeft() + currentOpts.margin,
                $(document).scrollTop() + currentOpts.margin
            ];
        },
        _get_zoom_to = function () {
            var view = _get_viewport(),
                to = {},
                resize = currentOpts.autoScale,
                double_padding = currentOpts.padding * 2,
                ratio;
            if (currentOpts.width.toString().indexOf('%') > -1) {
                to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10);
            } else {
                to.width = currentOpts.width + double_padding;
            }
            if (currentOpts.height.toString().indexOf('%') > -1) {
                to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10);
            } else {
                to.height = currentOpts.height + double_padding;
            }
            if (resize && (to.width > view[0] || to.height > view[1])) {
                if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
                    ratio = (currentOpts.width ) / (currentOpts.height );
                    if ((to.width ) > view[0]) {
                        to.width = view[0];
                        to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10);
                    }
                    if ((to.height) > view[1]) {
                        to.height = view[1];
                        to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10);
                    }
                } else {
                    to.width = Math.min(to.width, view[0]);
                    to.height = Math.min(to.height, view[1]);
                }
            }
            to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10);
            to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10);
            return to;
        },
        _get_obj_pos = function(obj) {
            var pos = obj.offset();
            pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0;
            pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0;
            pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0;
            pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0;
            pos.width = obj.width();
            pos.height = obj.height();
            return pos;
        },
        _get_zoom_from = function() {
            var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
                from = {},
                pos,
                view;
            if (orig && orig.length) {
                pos = _get_obj_pos(orig);
                from = {
                    width : pos.width + (currentOpts.padding * 2),
                    height : pos.height + (currentOpts.padding * 2),
                    top    : pos.top - currentOpts.padding - 20,
                    left : pos.left - currentOpts.padding - 20
                };
            } else {
                view = _get_viewport();
                from = {
                    width : currentOpts.padding * 2,
                    height : currentOpts.padding * 2,
                    top    : parseInt(view[3] + view[1] * 0.5, 10),
                    left : parseInt(view[2] + view[0] * 0.5, 10)
                };
            }
            return from;
        },
        _animate_loading = function() {
            if (!loading.is(':visible')){
                clearInterval(loadingTimer);
                return;
            }
            $('div', loading).css('top', (loadingFrame * -40) + 'px');
            loadingFrame = (loadingFrame + 1) % 12;
        };
    /*
     * Public methods 
     */
    $.fn.fancybox = function(options) {
        if (!$(this).length) {
            return this;
        }
        $(this)
            .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
            .unbind('click.fb')
            .bind('click.fb', function(e) {
                e.preventDefault();
                if (busy) {
                    return;
                }
                busy = true;
                $(this).blur();
                selectedArray = [];
                selectedIndex = 0;
                var rel = $(this).attr('rel') || '';
                if (!rel || rel == '' || rel === 'nofollow') {
                    selectedArray.push(this);
                } else {
                    selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]");
                    selectedIndex = selectedArray.index( this );
                }
                _start();
                return;
            });
        return this;
    };
    $.fancybox = function(obj) {
        var opts;
        if (busy) {
            return;
        }
        busy = true;
        opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};
        selectedArray = [];
        selectedIndex = parseInt(opts.index, 10) || 0;
        if ($.isArray(obj)) {
            for (var i = 0, j = obj.length; i < j; i++) {
                if (typeof obj[i] == 'object') {
                    $(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
                } else {
                    obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
                }
            }
            selectedArray = jQuery.merge(selectedArray, obj);
        } else {
            if (typeof obj == 'object') {
                $(obj).data('fancybox', $.extend({}, opts, obj));
            } else {
                obj = $({}).data('fancybox', $.extend({content : obj}, opts));
            }
            selectedArray.push(obj);
        }
        if (selectedIndex > selectedArray.length || selectedIndex < 0) {
            selectedIndex = 0;
        }
        _start();
    };
    $.fancybox.showActivity = function() {
        clearInterval(loadingTimer);
        loading.show();
        loadingTimer = setInterval(_animate_loading, 66);
    };
    $.fancybox.hideActivity = function() {
        loading.hide();
    };
    $.fancybox.next = function() {
        return $.fancybox.pos( currentIndex + 1);
    };
    $.fancybox.prev = function() {
        return $.fancybox.pos( currentIndex - 1);
    };
    $.fancybox.pos = function(pos) {
        if (busy) {
            return;
        }
        pos = parseInt(pos);
        selectedArray = currentArray;
        if (pos > -1 && pos < currentArray.length) {
            selectedIndex = pos;
            _start();
        } else if (currentOpts.cyclic && currentArray.length > 1) {
            selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1;
            _start();
        }
        return;
    };
    $.fancybox.cancel = function() {
        if (busy) {
            return;
        }
        busy = true;
        $.event.trigger('fancybox-cancel');
        _abort();
        selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);
        busy = false;
    };
    // Note: within an iframe use - parent.$.fancybox.close();
    $.fancybox.close = function() {
        if (busy || wrap.is(':hidden')) {
            return;
        }
        busy = true;
        if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
            busy = false;
            return;
        }
        _abort();
        $(close.add( nav_left ).add( nav_right )).hide();
        $(content.add( overlay )).unbind();
        $(window).unbind("resize.fb scroll.fb");
        $(document).unbind('keydown.fb');
        content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');
        if (currentOpts.titlePosition !== 'inside') {
            title.empty();
        }
        wrap.stop();
        function _cleanup() {
            overlay.fadeOut('fast');
            title.empty().hide();
            wrap.hide();
            $.event.trigger('fancybox-cleanup');
            content.empty();
            currentOpts.onClosed(currentArray, currentIndex, currentOpts);
            currentArray = selectedOpts    = [];
            currentIndex = selectedIndex = 0;
            currentOpts = selectedOpts    = {};
            busy = false;
        }
        if (currentOpts.transitionOut == 'elastic') {
            start_pos = _get_zoom_from();
            var pos = wrap.position();
            final_pos = {
                top     : pos.top ,
                left : pos.left,
                width :    wrap.width(),
                height : wrap.height()
            };
            if (currentOpts.opacity) {
                final_pos.opacity = 1;
            }
            title.empty().hide();
            fx.prop = 1;
            $(fx).animate({ prop: 0 }, {
                 duration : currentOpts.speedOut,
                 easing : currentOpts.easingOut,
                 step : _draw,
                 complete : _cleanup
            });
        } else {
            wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
        }
    };
    $.fancybox.resize = function() {
        if (overlay.is(':visible')) {
            overlay.css('height', $(document).height());
        }
        $.fancybox.center(true);
    };
    $.fancybox.center = function() {
        var view, align;
        if (busy) {
            return;    
        }
        align = arguments[0] === true ? 1 : 0;
        view = _get_viewport();
        if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) {
            return;    
        }
        wrap
            .stop()
            .animate({
                'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)),
                'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding))
            }, typeof arguments[0] == 'number' ? arguments[0] : 200);
    };
    $.fancybox.init = function() {
        if ($("#fancybox-wrap").length) {
            return;
        }
        $('body').append(
            tmp    = $('<div id="fancybox-tmp"></div>'),
            loading    = $('<div id="fancybox-loading"><div></div></div>'),
            overlay    = $('<div id="fancybox-overlay"></div>'),
            wrap = $('<div id="fancybox-wrap"></div>')
        );
        outer = $('<div id="fancybox-outer"></div>')
            .append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>')
            .appendTo( wrap );
        outer.append(
            content = $('<div id="fancybox-content"></div>'),
            // BKa
            close = $('<a id="fancybox-close">schliessen</a>'),
            title = $('<div id="fancybox-title"></div>'),
            nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
            nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')
        );
        close.click($.fancybox.close);
        loading.click($.fancybox.cancel);
        nav_left.click(function(e) {
            e.preventDefault();
            $.fancybox.prev();
        });
        nav_right.click(function(e) {
            e.preventDefault();
            $.fancybox.next();
        });
        if ($.fn.mousewheel) {
            wrap.bind('mousewheel.fb', function(e, delta) {
                if (busy) {
                    e.preventDefault();
                } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
                    e.preventDefault();
                    $.fancybox[ delta > 0 ? 'prev' : 'next']();
                }
            });
        }
        if (!$.support.opacity) {
            wrap.addClass('fancybox-ie');
        }
        if (isIE6) {
            loading.addClass('fancybox-ie6');
            wrap.addClass('fancybox-ie6');

            $('<iframe id="fancybox-hide-sel-frame" src="' + (/^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank' ) + '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(outer);


        }
    };
    $.fn.fancybox.defaults = {
        padding : 10,
        margin : 40,
        opacity : false,
        modal : false,
        cyclic : false,
        scrolling : 'auto',    // 'auto', 'yes' or 'no'
        width : 448,
        ivw : "",
        height : 280,
        autoScale : true,
        autoDimensions : true,
        centerOnScroll : false,
        ajax : {},
        swf : { wmode: 'transparent' },
        hideOnOverlayClick : true,
        hideOnContentClick : false,
        overlayShow : true,
        overlayOpacity : 0.7,
        overlayColor : '#777',
        titleShow : true,
        titlePosition : 'float', // 'float', 'outside', 'inside' or 'over'
        titleFormat : null,
        titleFromAlt : false,
        transitionIn : 'fade', // 'elastic', 'fade' or 'none'
        transitionOut : 'fade', // 'elastic', 'fade' or 'none'
        speedIn : 300,
        speedOut : 300,
        changeSpeed : 300,
        changeFade : 'fast',
        easingIn : 'swing',
        easingOut : 'swing',
        invert : false, // BKa
        showCloseButton     : true,
        showNavArrows : true,
        enableEscapeButton : true,
        enableKeyboardNav : true,
        onStart : function(){},
        onCancel : function(){},
        onComplete : function(){},
        onCleanup : function(){},
        onClosed : function(){},
        onError : function(){}
    };
    $(document).ready(function() {
        $.fancybox.init();
    });
})(jQuery);
 function formatTitle(title, currentArray, currentIndex, currentOpts) {
    var a = [];
    for (i = 0; i < currentArray.length; i++) {
        if (!$(currentArray[i]).hasClass("ad")){
            a.push(currentArray[i]);
        }
    }
    var c = 0;
    for (i = 0; i < currentIndex; i++) {
        if ($(currentArray[i]).hasClass("ad")){
            c++;
        }        
    }
    if (!$(currentArray[currentIndex]).hasClass("ad")){
        $("#fancybox-bg-n").html('<span id="fancy-header">Bild ' + (currentIndex - c + 1) + ' von ' + a.length + '</span>');        
    } else{
        $("#fancybox-bg-n").html('');        
    }
    return $(currentArray[currentIndex]).next().html();
};
 

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
 
/*
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
Code licensed under the BSD License: http://www.featureblend.com/license.txt
Version: 1.0.4
*/
var FlashDetect = new function(){
    var self = this;
    self.installed = false;
    self.raw = "";
    self.major = -1;
    self.minor = -1;
    self.revision = -1;
    self.revisionStr = "";
    var activeXDetectRules = [
        {
            "name":"ShockwaveFlash.ShockwaveFlash.7",
            "version":function(obj){
                return getActiveXVersion(obj);
            }
        },
        {
            "name":"ShockwaveFlash.ShockwaveFlash.6",
            "version":function(obj){
                var version = "6,0,21";
                try{
                    obj.AllowScriptAccess = "always";
                    version = getActiveXVersion(obj);
                }catch(err){}
                return version;
            }
        },
        {
            "name":"ShockwaveFlash.ShockwaveFlash",
            "version":function(obj){
                return getActiveXVersion(obj);
            }
        }
    ];
    /**
     * Extract the ActiveX version of the plugin.
     * 
     * @param {Object} The flash ActiveX object.
     * @type String
     */
    var getActiveXVersion = function(activeXObj){
        var version = -1;
        try{
            version = activeXObj.GetVariable("$version");
        }catch(err){}
        return version;
    };
    /**
     * Try and retrieve an ActiveX object having a specified name.
     * 
     * @param {String} name The ActiveX object name lookup.
     * @return One of ActiveX object or a simple object having an attribute of activeXError with a value of true.
     * @type Object
     */
    var getActiveXObject = function(name){
        var obj = -1;
        try{
            obj = new ActiveXObject(name);
        }catch(err){
            obj = {activeXError:true};
        }
        return obj;
    };
    /**
     * Parse an ActiveX $version string into an object.
     * 
     * @param {String} str The ActiveX Object GetVariable($version) return value. 
     * @return An object having raw, major, minor, revision and revisionStr attributes.
     * @type Object
     */
    var parseActiveXVersion = function(str){
        var versionArray = str.split(",");//replace with regex
        return {
            "raw":str,
            "major":parseInt(versionArray[0].split(" ")[1], 10),
            "minor":parseInt(versionArray[1], 10),
            "revision":parseInt(versionArray[2], 10),
            "revisionStr":versionArray[2]
        };
    };
    /**
     * Parse a standard enabledPlugin.description into an object.
     * 
     * @param {String} str The enabledPlugin.description value.
     * @return An object having raw, major, minor, revision and revisionStr attributes.
     * @type Object
     */
    var parseStandardVersion = function(str){
        var descParts = str.split(/ +/);
        var majorMinor = descParts[2].split(/\./);
        var revisionStr = descParts[3];
        return {
            "raw":str,
            "major":parseInt(majorMinor[0], 10),
            "minor":parseInt(majorMinor[1], 10), 
            "revisionStr":revisionStr,
            "revision":parseRevisionStrToInt(revisionStr)
        };
    };
    /**
     * Parse the plugin revision string into an integer.
     * 
     * @param {String} The revision in string format.
     * @type Number
     */
    var parseRevisionStrToInt = function(str){
        return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
    };
    /**
     * Is the major version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required major version.
     * @type Boolean
     */
    self.majorAtLeast = function(version){
        return self.major >= version;
    };
    /**
     * Is the minor version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required minor version.
     * @type Boolean
     */
    self.minorAtLeast = function(version){
        return self.minor >= version;
    };
    /**
     * Is the revision version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required revision version.
     * @type Boolean
     */
    self.revisionAtLeast = function(version){
        return self.revision >= version;
    };
    /**
     * Is the version greater than or equal to a specified major, minor and revision.
     * 
     * @param {Number} major The minimum required major version.
     * @param {Number} (Optional) minor The minimum required minor version.
     * @param {Number} (Optional) revision The minimum required revision version.
     * @type Boolean
     */
    self.versionAtLeast = function(major){
        var properties = [self.major, self.minor, self.revision];
        var len = Math.min(properties.length, arguments.length);
        for(i=0; i<len; i++){
            if(properties[i]>=arguments[i]){
                if(i+1<len && properties[i]==arguments[i]){
                    continue;
                }else{
                    return true;
                }
            }else{
                return false;
            }
        }
    };
    /**
     * Constructor, sets raw, major, minor, revisionStr, revision and installed public properties.
     */
    self.FlashDetect = function(){
        if(navigator.plugins && navigator.plugins.length>0){
            var type = 'application/x-shockwave-flash';
            var mimeTypes = navigator.mimeTypes;
            if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
                var version = mimeTypes[type].enabledPlugin.description;
                var versionObj = parseStandardVersion(version);
                self.raw = versionObj.raw;
                self.major = versionObj.major;
                self.minor = versionObj.minor; 
                self.revisionStr = versionObj.revisionStr;
                self.revision = versionObj.revision;
                self.installed = true;
            }
        }else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
            var version = -1;
            for(var i=0; i<activeXDetectRules.length && version==-1; i++){
                var obj = getActiveXObject(activeXDetectRules[i].name);
                if(!obj.activeXError){
                    self.installed = true;
                    version = activeXDetectRules[i].version(obj);
                    if(version!=-1){
                        var versionObj = parseActiveXVersion(version);
                        self.raw = versionObj.raw;
                        self.major = versionObj.major;
                        self.minor = versionObj.minor; 
                        self.revision = versionObj.revision;
                        self.revisionStr = versionObj.revisionStr;
                    }
                }
            }
        }
    }();
};
$(document).ready(function() {
if(!FlashDetect.installed){
    $(".imgNoFlash").show();
    $("div.video object").hide();
    $("div.video embed").hide();   
    $("#imgNoFlashLayer").show();
    $("div.infoLeftFlash div object").hide();
    $("div.infoLeftFlash div embed").hide();
 }
});
  
var szm_mccookie = "szm_mc";
var szm_prefix='http://mclient.ivwbox.de/cgi-bin/ivw/CP/';
var szm_prefixssl='https://mclientssl2.ivwbox.de/cgi-bin/ivw/CP/';
// on every page
function szm_client(szm_site, szm_hocde, szm_isssl) {
if (szm_getcookie() != szm_hcode)
{ szm_getmclient(szm_site,szm_isssl,szm_hcode);
szm_setcookie(szm_hcode);
}
}
// before login, logout
function szm_clear() {
szm_setcookie("spring.de");
}
// privates
function szm_getcookie() {
var split = new Array();
split = document.cookie.split(";");
for(var i=0; i<split.length;i++) {
if(split[i].match(".*"+szm_mccookie+".*")) {
return (split[i].split("="))[1];
}
} return "";
}
function szm_getmclient(szm_site,szm_isssl,szm_hcode) {
var img = new Image();
szm_isssl = true;
if(szm_isssl) img.src = szm_prefixssl+szm_site+'/'+szm_hcode;
else img.src = szm_prefix+szm_site+'/'+szm_hcode;
}
function szm_setcookie(code) {
document.cookie = szm_mccookie+"="+code;
}

var mboxCopyright = "Copyright 1996-2009. Adobe Systems Incorporated. All rights reserved";mboxUrlBuilder = function(a, b) { this.a = a; this.b = b; this.c = new Array(); this.d = function(e) { return e; }; this.f = null;};mboxUrlBuilder.prototype.addParameter = function(g, h) { var i = new RegExp('(\'|")'); if (i.exec(g)) { throw "Parameter '" + g + "' contains invalid characters"; } for (var j = 0; j < this.c.length; j++) { var k = this.c[j]; if (k.name == g) { k.value = h; return this; } } var l = new Object(); l.name = g; l.value = h; this.c[this.c.length] = l; return this;};mboxUrlBuilder.prototype.addParameters = function(c) { if (!c) { return this; } for (var j = 0; j < c.length; j++) { var m = c[j].indexOf('='); if (m == -1 || m == 0) { continue; } this.addParameter(c[j].substring(0, m), c[j].substring(m + 1, c[j].length)); } return this;};mboxUrlBuilder.prototype.setServerType = function(n) { this.o = n;};mboxUrlBuilder.prototype.setBasePath = function(f) { this.f = f;};mboxUrlBuilder.prototype.setUrlProcessAction = function(p) { this.d = p;};mboxUrlBuilder.prototype.buildUrl = function() { var q = this.f ? this.f : '/m2/' + this.b + '/mbox/' + this.o; var r = document.location.protocol == 'file:' ? 'http:' : document.location.protocol; var e = r + "//" + this.a + q; var s = e.indexOf('?') != -1 ? '&' : '?'; for (var j = 0; j < this.c.length; j++) { var k = this.c[j]; e += s + encodeURIComponent(k.name) + '=' + encodeURIComponent(k.value); s = '&'; } return this.t(this.d(e));};mboxUrlBuilder.prototype.getParameters = function() { return this.c;};mboxUrlBuilder.prototype.setParameters = function(c) { this.c = c;};mboxUrlBuilder.prototype.clone = function() { var u = new mboxUrlBuilder(this.a, this.b); u.setServerType(this.o); u.setBasePath(this.f); u.setUrlProcessAction(this.d); for (var j = 0; j < this.c.length; j++) { u.addParameter(this.c[j].name, this.c[j].value); } return u;};mboxUrlBuilder.prototype.t = function(v) { return v.replace(/\"/g, '&quot;').replace(/>/g, '&gt;');};mboxStandardFetcher = function() { };mboxStandardFetcher.prototype.getType = function() { return 'standard';};mboxStandardFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); document.write('<' + 'scr' + 'ipt src="' + w.buildUrl() + '" language="JavaScript"><' + '\/scr' + 'ipt>');};mboxStandardFetcher.prototype.cancel = function() { };mboxAjaxFetcher = function() { };mboxAjaxFetcher.prototype.getType = function() { return 'ajax';};mboxAjaxFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); var e = w.buildUrl(); this.x = document.createElement('script'); this.x.src = e; document.body.appendChild(this.x);};mboxAjaxFetcher.prototype.cancel = function() { };mboxMap = function() { this.y = new Object(); this.z = new Array();};mboxMap.prototype.put = function(A, h) { if (!this.y[A]) { this.z[this.z.length] = A; } this.y[A] = h;};mboxMap.prototype.get = function(A) { return this.y[A];};mboxMap.prototype.remove = function(A) { this.y[A] = undefined;};mboxMap.prototype.each = function(p) { for (var j = 0; j < this.z.length; j++ ) { var A = this.z[j]; var h = this.y[A]; if (h) { var B = p(A, h); if (B === false) { break; } } }};mboxFactory = function(C, b, D) { this.E = false; this.C = C; this.D = D; this.F = new mboxList(); mboxFactories.put(D, this); this.G = typeof document.createElement('div').replaceChild != 'undefined' && (function() { return true; })() && typeof document.getElementById != 'undefined' && typeof (window.attachEvent || document.addEventListener || window.addEventListener) != 'undefined' && typeof encodeURIComponent != 'undefined'; this.H = this.G && mboxGetPageParameter('mboxDisable') == null; var I = D == 'default'; this.J = new mboxCookieManager( 'mbox' + (I ? '' : ('-' + D)), (function() { return mboxCookiePageDomain(); })()); this.H = this.H && this.J.isEnabled() && (this.J.getCookie('disable') == null); if (this.isAdmin()) { this.enable(); } this.K = mboxGenerateId(); this.L = mboxScreenHeight(); this.M = mboxScreenWidth(); this.N = mboxBrowserWidth(); this.O = mboxBrowserHeight(); this.P = mboxScreenColorDepth(); this.Q = mboxBrowserTimeOffset(); this.R = new mboxSession(this.K, 'mboxSession', 'session', 31 * 60, this.J); this.S = new mboxPC('PC', 1209600, this.J); this.w = new mboxUrlBuilder(C, b); this.T(this.w, I); this.U = new Date().getTime(); this.V = this.U; var W = this; this.addOnLoad(function() { W.V = new Date().getTime(); }); if (this.G) { this.addOnLoad(function() { W.E = true; W.getMboxes().each(function(X) { X.setFetcher(new mboxAjaxFetcher()); X.finalize(); }); }); this.limitTraffic(100, 10368000); if (this.H) { this.Y(); this.Z = new mboxSignaler(function(_, c) { return W.create(_, c); }, this.J); } }};mboxFactory.prototype.isEnabled = function() { return this.H;};mboxFactory.prototype.getDisableReason = function() { return this.J.getCookie('disable');};mboxFactory.prototype.isSupported = function() { return this.G;};mboxFactory.prototype.disable = function(ab, bb) { if (typeof ab == 'undefined') { ab = 60 * 60; } if (typeof bb == 'undefined') { bb = 'unspecified'; } if (!this.isAdmin()) { this.H = false; this.J.setCookie('disable', bb, ab); }};mboxFactory.prototype.enable = function() { this.H = true; this.J.deleteCookie('disable');};mboxFactory.prototype.isAdmin = function() { return document.location.href.indexOf('mboxEnv') != -1;};mboxFactory.prototype.limitTraffic = function(cb, ab) {};mboxFactory.prototype.addOnLoad = function(p) { if (window.addEventListener) { window.addEventListener('load', p, false); } else if (document.addEventListener) { document.addEventListener('load', p, false); } else if (document.attachEvent) { window.attachEvent('onload', p); }};mboxFactory.prototype.getEllapsedTime = function() { return this.V - this.U;};mboxFactory.prototype.getEllapsedTimeUntil = function(db) { return db - this.U;};mboxFactory.prototype.getMboxes = function() { return this.F;};mboxFactory.prototype.get = function(_, eb) { return this.F.get(_).getById(eb || 0);};mboxFactory.prototype.update = function(_, c) { if (!this.isEnabled()) { return; } if (this.F.get(_).length() == 0) { throw "Mbox " + _ + " is not defined"; } this.F.get(_).each(function(X) { X.getUrlBuilder() .addParameter('mboxPage', mboxGenerateId()); X.load(c); });};mboxFactory.prototype.create = function( _, c, fb) { if (!this.isSupported()) { return null; } var e = this.w.clone(); e.addParameter('mboxCount', this.F.length() + 1); e.addParameters(c); var eb = this.F.get(_).length(); var gb = this.D + '-' + _ + '-' + eb; var hb; if (fb) { hb = new mboxLocatorNode(fb); } else { if (this.E) { throw 'The page has already been loaded, can\'t write marker'; } hb = new mboxLocatorDefault(gb); } try { var W = this; var ib = 'mboxImported-' + gb; var X = new mbox(_, eb, e, hb, ib); if (this.H) { X.setFetcher(this.E ? new mboxAjaxFetcher() : new mboxStandardFetcher()); } X.setOnError(function(jb, n) { X.setMessage(jb); X.activate(); if (!X.isActivated()) { W.disable(60 * 60, jb); window.location.reload(false); } }); this.F.add(X); } catch (kb) { this.disable(); throw 'Failed creating mbox "' + _ + '", the error was: ' + kb; } var lb = new Date(); e.addParameter('mboxTime', lb.getTime() - (lb.getTimezoneOffset() * 60000)); return X;};mboxFactory.prototype.getCookieManager = function() { return this.J;};mboxFactory.prototype.getPageId = function() { return this.K;};mboxFactory.prototype.getPCId = function() { return this.S;};mboxFactory.prototype.getSessionId = function() { return this.R;};mboxFactory.prototype.getSignaler = function() { return this.Z;};mboxFactory.prototype.getUrlBuilder = function() { return this.w;};mboxFactory.prototype.T = function(e, I) { e.addParameter('mboxHost', document.location.hostname) .addParameter('mboxSession', this.R.getId()); if (!I) { e.addParameter('mboxFactoryId', this.D); } if (this.S.getId() != null) { e.addParameter('mboxPC', this.S.getId()); } e.addParameter('mboxPage', this.K); e.addParameter('screenHeight', this.L); e.addParameter('screenWidth', this.M); e.addParameter('browserWidth', this.N); e.addParameter('browserHeight', this.O); e.addParameter('browserTimeOffset', this.Q); e.addParameter('colorDepth', this.P); e.setUrlProcessAction(function(e) { e += '&mboxURL=' + encodeURIComponent(document.location); var mb = encodeURIComponent(document.referrer); if (e.length + mb.length < 2000) { e += '&mboxReferrer=' + mb; } e += '&mboxVersion=' + mboxVersion; return e; });};mboxFactory.prototype.nb = function() { return "";};mboxFactory.prototype.Y = function() { document.write('<style>.' + 'mboxDefault' + ' { visibility:hidden; }</style>');};mboxFactory.prototype.isDomLoaded = function() { return this.E;};mboxSignaler = function(ob, J) { this.J = J; var pb = J.getCookieNames('signal-'); for (var j = 0; j < pb.length; j++) { var qb = pb[j]; var rb = J.getCookie(qb).split('&'); var X = ob(rb[0], rb); X.load(); J.deleteCookie(qb); }};mboxSignaler.prototype.signal = function(sb, _ ) { this.J.setCookie('signal-' + sb, mboxShiftArray(arguments).join('&'), 45 * 60);};mboxList = function() { this.F = new Array();};mboxList.prototype.add = function(X) { if (X != null) { this.F[this.F.length] = X; }};mboxList.prototype.get = function(_) { var B = new mboxList(); for (var j = 0; j < this.F.length; j++) { var X = this.F[j]; if (X.getName() == _) { B.add(X); } } return B;};mboxList.prototype.getById = function(tb) { return this.F[tb];};mboxList.prototype.length = function() { return this.F.length;};mboxList.prototype.each = function(p) { if (typeof p != 'function') { throw 'Action must be a function, was: ' + typeof(p); } for (var j = 0; j < this.F.length; j++) { p(this.F[j]); }};mboxLocatorDefault = function(g) { this.g = 'mboxMarker-' + g; document.write('<div id="' + this.g + '" style="visibility:hidden;display:none">&nbsp;</div>');};mboxLocatorDefault.prototype.locate = function() { var ub = document.getElementById(this.g); while (ub != null) { if (ub.nodeType == 1) { if (ub.className == 'mboxDefault') { return ub; } } ub = ub.previousSibling; } return null;};mboxLocatorDefault.prototype.force = function() { var vb = document.createElement('div'); vb.className = 'mboxDefault'; var wb = document.getElementById(this.g); wb.parentNode.insertBefore(vb, wb); return vb;};mboxLocatorNode = function(xb) { this.ub = xb;};mboxLocatorNode.prototype.locate = function() { return typeof this.ub == 'string' ? document.getElementById(this.ub) : this.ub;};mboxLocatorNode.prototype.force = function() { return null;};mboxCreate = function(_ ) { var X = mboxFactoryDefault.create( _, mboxShiftArray(arguments)); if (X) { X.load(); } return X;};mboxDefine = function(fb, _ ) { var X = mboxFactoryDefault.create(_, mboxShiftArray(mboxShiftArray(arguments)), fb); return X;};mboxUpdate = function(_ ) { mboxFactoryDefault.update(_, mboxShiftArray(arguments));};mbox = function(g, yb, w, zb, ib) { this.Ab = null; this.Bb = 0; this.hb = zb; this.ib = ib; this.Cb = null; this.Db = new mboxOfferContent(); this.vb = null; this.w = w; this.message = ''; this.Eb = new Object(); this.Fb = 0; this.yb = yb; this.g = g; this.Gb(); w.addParameter('mbox', g) .addParameter('mboxId', yb); this.Hb = function() {}; this.Ib = function() {}; this.Jb = null;};mbox.prototype.getId = function() { return this.yb;};mbox.prototype.Gb = function() { if (this.g.length > 250) { throw "Mbox Name " + this.g + " exceeds max length of " + "250 characters."; } else if (this.g.match(/^\s+|\s+$/g)) { throw "Mbox Name " + this.g + " has leading/trailing whitespace(s)."; }};mbox.prototype.getName = function() { return this.g;};mbox.prototype.getParameters = function() { var c = this.w.getParameters(); var B = new Array(); for (var j = 0; j < c.length; j++) { if (c[j].name.indexOf('mbox') != 0) { B[B.length] = c[j].name + '=' + c[j].value; } } return B;};mbox.prototype.setOnLoad = function(p) { this.Ib = p; return this;};mbox.prototype.setMessage = function(jb) { this.message = jb; return this;};mbox.prototype.setOnError = function(Hb) { this.Hb = Hb; return this;};mbox.prototype.setFetcher = function(Kb) { if (this.Cb) { this.Cb.cancel(); } this.Cb = Kb; return this;};mbox.prototype.getFetcher = function() { return this.Cb;};mbox.prototype.load = function(c) { if (this.Cb == null) { return this; } this.setEventTime("load.start"); this.cancelTimeout(); this.Bb = 0; var w = (c && c.length > 0) ? this.w.clone().addParameters(c) : this.w; this.Cb.fetch(w); var W = this; this.Lb = setTimeout(function() { W.Hb('browser timeout', W.Cb.getType()); }, 15000); this.setEventTime("load.end"); return this;};mbox.prototype.loaded = function() { this.cancelTimeout(); if (!this.activate()) { var W = this; setTimeout(function() { W.loaded(); }, 100); }};mbox.prototype.activate = function() { if (this.Bb) { return this.Bb; } this.setEventTime('activate' + ++this.Fb + '.start'); if (this.show()) { this.cancelTimeout(); this.Bb = 1; } this.setEventTime('activate' + this.Fb + '.end'); return this.Bb;};mbox.prototype.isActivated = function() { return this.Bb;};mbox.prototype.setOffer = function(Db) { if (Db && Db.show && Db.setOnLoad) { this.Db = Db; } else { throw 'Invalid offer'; } return this;};mbox.prototype.getOffer = function() { return this.Db;};mbox.prototype.show = function() { this.setEventTime('show.start'); var B = this.Db.show(this); this.setEventTime(B == 1 ? "show.end.ok" : "show.end"); return B;};mbox.prototype.showContent = function(Mb) { if (Mb == null) { return 0; } if (this.vb == null || !this.vb.parentNode) { this.vb = this.getDefaultDiv(); if (this.vb == null) { return 0; } } if (this.vb != Mb) { this.Nb(this.vb); this.vb.parentNode.replaceChild(Mb, this.vb); this.vb = Mb; } this.Ob(Mb); this.Ib(); return 1;};mbox.prototype.hide = function() { this.setEventTime('hide.start'); var B = this.showContent(this.getDefaultDiv()); this.setEventTime(B == 1 ? 'hide.end.ok' : 'hide.end.fail'); return B;};mbox.prototype.finalize = function() { this.setEventTime('finalize.start'); this.cancelTimeout(); if (this.getDefaultDiv() == null) { if (this.hb.force() != null) { this.setMessage('No default content, an empty one has been added'); } else { this.setMessage('Unable to locate mbox'); } } if (!this.activate()) { this.hide(); this.setEventTime('finalize.end.hide'); } this.setEventTime('finalize.end.ok');};mbox.prototype.cancelTimeout = function() { if (this.Lb) { clearTimeout(this.Lb); } if (this.Cb != null) { this.Cb.cancel(); }};mbox.prototype.getDiv = function() { return this.vb;};mbox.prototype.getDefaultDiv = function() { if (this.Jb == null) { this.Jb = this.hb.locate(); } return this.Jb;};mbox.prototype.setEventTime = function(Pb) { this.Eb[Pb] = (new Date()).getTime();};mbox.prototype.getEventTimes = function() { return this.Eb;};mbox.prototype.getImportName = function() { return this.ib;};mbox.prototype.getURL = function() { return this.w.buildUrl();};mbox.prototype.getUrlBuilder = function() { return this.w;};mbox.prototype.Qb = function(vb) { return vb.style.display != 'none';};mbox.prototype.Ob = function(vb) { this.Rb(vb, true);};mbox.prototype.Nb = function(vb) { this.Rb(vb, false);};mbox.prototype.Rb = function(vb, Sb) { vb.style.visibility = Sb ? "visible" : "hidden"; vb.style.display = Sb ? "block" : "none";};mboxOfferContent = function() { this.Ib = function() {};};mboxOfferContent.prototype.show = function(X) { var B = X.showContent(document.getElementById(X.getImportName())); if (B == 1) { this.Ib(); } return B;};mboxOfferContent.prototype.setOnLoad = function(Ib) { this.Ib = Ib;};mboxOfferAjax = function(Mb) { this.Mb = Mb; this.Ib = function() {};};mboxOfferAjax.prototype.setOnLoad = function(Ib) { this.Ib = Ib;};mboxOfferAjax.prototype.show = function(X) { var Tb = document.createElement('div'); Tb.id = X.getImportName(); Tb.innerHTML = this.Mb; var B = X.showContent(Tb); if (B == 1) { this.Ib(); } return B;};mboxOfferDefault = function() { this.Ib = function() {};};mboxOfferDefault.prototype.setOnLoad = function(Ib) { this.Ib = Ib;};mboxOfferDefault.prototype.show = function(X) { var B = X.hide(); if (B == 1) { this.Ib(); } return B;};mboxCookieManager = function mboxCookieManager(g, Ub) { this.g = g; this.Ub = Ub == '' || Ub.indexOf('.') == -1 ? '' : '; domain=' + Ub; this.Vb = new mboxMap(); this.loadCookies();};mboxCookieManager.prototype.isEnabled = function() { this.setCookie('check', 'true', 60); this.loadCookies(); return this.getCookie('check') == 'true';};mboxCookieManager.prototype.setCookie = function(g, h, ab) { if (typeof g != 'undefined' && typeof h != 'undefined' && typeof ab != 'undefined') { var Wb = new Object(); Wb.name = g; Wb.value = escape(h); Wb.expireOn = Math.ceil(ab + new Date().getTime() / 1000); this.Vb.put(g, Wb); this.saveCookies(); }};mboxCookieManager.prototype.getCookie = function(g) { var Wb = this.Vb.get(g); return Wb ? unescape(Wb.value) : null;};mboxCookieManager.prototype.deleteCookie = function(g) { this.Vb.remove(g); this.saveCookies();};mboxCookieManager.prototype.getCookieNames = function(Xb) { var Yb = new Array(); this.Vb.each(function(g, Wb) { if (g.indexOf(Xb) == 0) { Yb[Yb.length] = g; } }); return Yb;};mboxCookieManager.prototype.saveCookies = function() { var Zb = new Array(); var _b = 0; this.Vb.each(function(g, Wb) { Zb[Zb.length] = g + '#' + Wb.value + '#' + Wb.expireOn; if (_b < Wb.expireOn) { _b = Wb.expireOn; } }); var ac = new Date(_b * 1000); document.cookie = this.g + '=' + Zb.join('|') + '; expires=' + ac.toGMTString() + '; path=/' + this.Ub;};mboxCookieManager.prototype.loadCookies = function() { this.Vb = new mboxMap(); var bc = document.cookie.indexOf(this.g + '='); if (bc != -1) { var cc = document.cookie.indexOf(';', bc); if (cc == -1) { cc = document.cookie.indexOf(',', bc); if (cc == -1) { cc = document.cookie.length; } } var dc = document.cookie.substring( bc + this.g.length + 1, cc).split('|'); var ec = Math.ceil(new Date().getTime() / 1000); for (var j = 0; j < dc.length; j++) { var Wb = dc[j].split('#'); if (ec <= Wb[2]) { var fc = new Object(); fc.name = Wb[0]; fc.value = Wb[1]; fc.expireOn = Wb[2]; this.Vb.put(fc.name, fc); } } }};mboxSession = function(gc, hc, qb, ic, J) { this.hc = hc; this.qb = qb; this.ic = ic; this.J = J; this.jc = false; this.yb = typeof mboxForceSessionId != 'undefined' ? mboxForceSessionId : mboxGetPageParameter(this.hc); if (this.yb == null || this.yb.length == 0) { this.yb = J.getCookie(qb); if (this.yb == null || this.yb.length == 0) { this.yb = gc; this.jc = true; } } J.setCookie(qb, this.yb, ic);};mboxSession.prototype.getId = function() { return this.yb;};mboxSession.prototype.forceId = function(kc) { this.yb = kc; this.J.setCookie(this.qb, this.yb, this.ic);};mboxPC = function(qb, ic, J) { this.qb = qb; this.ic = ic; this.J = J; this.yb = typeof mboxForcePCId != 'undefined' ? mboxForcePCId : J.getCookie(qb); if (this.yb != null) { J.setCookie(qb, this.yb, ic); }};mboxPC.prototype.getId = function() { return this.yb;};mboxPC.prototype.forceId = function(kc) { if (this.yb != kc) { this.yb = kc; this.J.setCookie(this.qb, this.yb, this.ic); return true; } return false;};mboxGetPageParameter = function(g) { var B = null; var lc = new RegExp(g + "=([^\&]*)"); var mc = lc.exec(document.location); if (mc != null && mc.length >= 2) { B = mc[1]; } return B;};mboxSetCookie = function(g, h, ab) { return mboxFactoryDefault.getCookieManager().setCookie(g, h, ab);};mboxGetCookie = function(g) { return mboxFactoryDefault.getCookieManager().getCookie(g);};mboxCookiePageDomain = function() { var Ub = (/([^:]*)(:[0-9]{0,5})?/).exec(document.location.host)[1]; var nc = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/; if (!nc.exec(Ub)) { var oc = (/([^\.]+\.[^\.]{3}|[^\.]+\.[^\.]+\.[^\.]{2})$/).exec(Ub); if (oc) { Ub = oc[0]; } } return Ub ? Ub: "";};mboxShiftArray = function(pc) { var B = new Array(); for (var j = 1; j < pc.length; j++) { B[B.length] = pc[j]; } return B;};mboxGenerateId = function() { return (new Date()).getTime() + "-" + Math.floor(Math.random() * 999999);};mboxScreenHeight = function() { return screen.height;};mboxScreenWidth = function() { return screen.width;};mboxBrowserWidth = function() { return (window.innerWidth) ? window.innerWidth : document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth;};mboxBrowserHeight = function() { return (window.innerHeight) ? window.innerHeight : document.documentElement ? document.documentElement.clientHeight : document.body.clientHeight;};mboxBrowserTimeOffset = function() { return -new Date().getTimezoneOffset();};mboxScreenColorDepth = function() { return screen.pixelDepth;}; if (typeof mboxVersion == 'undefined') { var mboxVersion = 39; var mboxFactories = new mboxMap(); var mboxFactoryDefault = new mboxFactory('skydeutschlandag.tt.omtrdc.net', 'skydeutschlandag', 'default');};if (mboxGetPageParameter("mboxDebug") != null || mboxFactoryDefault.getCookieManager() .getCookie("debug") != null) { setTimeout(function() { if (typeof mboxDebugLoaded == 'undefined') { alert('Could not load the remote debug.\nPlease check your connection' + ' to Test&amp;Target servers'); } }, 60*60); document.write('<' + 'scr' + 'ipt language="Javascript1.2" src=' + '"http://admin5.testandtarget.omniture.com/admin/mbox/mbox_debug.jsp?mboxServerHost=skydeutschlandag.tt.omtrdc.net' + '&clientCode=skydeutschlandag"><' + '\/scr' + 'ipt>');};

// this is only for setting up the namespaces
ImageFlow = {};
ImageFlow.Mode1 = {};
ImageFlow.Mode2 = {};
/**
 * the app is responsible for toggling between the gallery's two modes,
 * and dispatching events to the currently active mode (represented by the
 * ImageFlow.Mode1.App and ImageFlow.Mode2.App (see below)
 *   
 * @param {Object} config     the galleries configuration. 
 * it defined in the html-file which actually starts the gallery
 * @see gui.html  
 */
ImageFlow.App = function(config) {
    
    /**
     * shows the gallery in carusell-mode
     */
    this.mode1 = function() {
        nav.setActiveModeButton(1);
        switchMode(app1);
    };
    
    /**
     * shows the gallery in 2d-mode
     */
    this.mode2 = function() {
        nav.setActiveModeButton(2);
        switchMode(app2);
    };
    
    /**
     * displays an overlay (to shade the page's originally content)
     * and brings up the gallery
     */
    this.show = function() {
        // Hides the scrollbar in IE6 to prevent scrolling
        if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
            jQuery("body","html").css({height: "100%", width: "100%"});
            jQuery("html").css("overflow","hidden");
            jQuery('#imageFlow-overlay').css({
                top:jQuery(document).scrollTop()
            });
            jQuery('#imageFlow-container').css({
                top:jQuery(document).scrollTop()
            });
        }
        // show overlay
        var pageInfo = ImageFlow.util.getWindowSize();
        jQuery('#imageFlow-overlay').css({
            width: '100%',
            height: pageInfo.height,
            opacity: 0
        }).fadeTo(350, 0.8).show();
        
        jQuery('#imageFlow-container').css({
            zIndex: 10001,
            width: '100%'
        }).show();
        // show App
        currentApp.show();
        nav.enable();
    };
    
    /**
     * hides the gallery
     */
    this.hide = function() {
        // hide overlay
        
        //jQuery('#imageFlow-overlay').fadeOut(function() {
        //});
        // Shows the scrollbar in IE6 to allow scrolling again
        if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
            jQuery("body","html").css({height: "auto", width: "auto"});
            jQuery("html").css("overflow","");
        }
        jQuery('#imageFlow-overlay').css({
            display: 'none'
        });
        
        jQuery('#imageFlow-container').css({
        }).hide();
        nav.disable();
    };
    
    /**
     * sets the galleries mode
     * @param {Object} app
     */
    function switchMode(app) {
        if (currentApp) {
            currentApp.hide();
        }
        currentApp = app;
        currentApp.show();
    }
    /**
     * this method sets up the galleries userinterface by injecting the the following HTML into 
     * the current document. 
     * 
     * it might be doubious not to use javascript to set up the nodes, but I find the plain html
     * much more readable and easier to maintain.
     */
    function injectHtml() {
        var html = '';
        html +='<div id="imageFlow-overlay"></div>\n';
        html +='<div id="imageFlow-container" style="display:none;">\n';
        html +='    <div id="imageFlow">\n';
        html +='        <div id="imageFlow-mode1">\n';
        html +='            <div id="imageFlow-canvasContainer">\n';
//        html +='                <a href="#" id="imageFlow-button-close"></a>\n';
        html +='                <div id="imageFlow-frame"><img id="imageFlow-canvas" /></div>\n';
        html +='                <div id="imageFlow-meta">\n';
        html +='                    <div id="imageFlow-subtitle">Titel</div>\n';
        html +='                    <div id="imageFlow-imageinfo">Bild <span id="imageFlow-imageIndex">?</span> von <span id="imageFlow-imageCount">?</span></div>\n';
        html +='                </div>\n';        
        html +='            </div>\n';        
                    
        html +='            <div id="imageFlow-thumbs-container">\n';
        html +='                <div class="imageFlow-thumbs">\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                    <img class="imageFlow-thumb active" />\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                    <img class="imageFlow-thumb" />\n';
        html +='                </div>\n';
        html +='                <a href="#" id="imageFlow-previous"></a>\n';
        html +='                <a href="#" id="imageFlow-next"></a>\n';
        html +='            </div>\n';
        html +='        </div>\n';
    
        html +='        <div id="imageFlow-mode2">\n';
        html +='            <div class="imageFlow-mode2-images">\n';
        html +='                <img src="" />\n';
        html +='                <img src="" />\n';
        html +='                <img src="" />\n';
        html +='                <img src="" />\n';
        html +='                <img src="" />\n';
        html +='            </div>\n';
        html +='        </div>\n';
                
        html +='        <div id="imageFlow-nav">\n';
        html +='            <div id="imageFlow-button-mode1">\n';
        html +='                <a href="#" id="imageflow-link-mode1"><span>Einzelbilder</span></a>\n';
        html +='            </div>\n';
        html +='            <div id="imageFlow-button-mode2">\n';
        html +='                <a href="#" id="imageflow-link-mode2"><span>Bl&auml;ttern</span></a>\n';
        html +='            </div>\n';
        html +='            <div class="imageFlow-seperator"></div>\n';
        html +='            <div id="imageFlow-download"><a id="imageFlow-download-link" href="#"><span>Download...</span></a></div>\n';
        html +='            <div id="imageFlow-close"><a href="#" id="imageFlow-button-close">Schlie&szlig;en</a></div>\n';
        html +='        </div>\n';            
        html +='    </div>\n';
        html +='</div>\n';
        
        // TODO: swap elements
        //jQuery('body').children().eq(0).before(html);
        if (jQuery("#imageFlow-overlay").length == 0)
            jQuery('body').append(html);
        ImageFlow.util.log('html injected into dom');
    }
    /**
    * wires up the controller-events, sets up the gui and loads the images 
    */
    function init() {
        injectHtml();
        jQuery(window).bind("resize", function() {
            jQuery('#imageFlow-overlay').css({
                height: jQuery(window).height()
            })
        });
        nav = new ImageFlow.Nav();
    
        if (config.loader === undefined) {
            throw 'no loaded configured';
        }
        
        loader = config.loader;
        loader.load( onImagesLoaded );
        
        /**
         * listens for the click on the mode1-button
         */
        nav.onMode1Click = function() {
            that.mode1();
        };
        /**
         * listens for the click on the mode1-button
         */
        nav.onMode2Click = function() {
            that.mode2();
        };
        /**
         * listens for the navigation-events
         */
        nav.onPrevious = function(){
            //app1.previous();
            //app2.previous();
            currentApp.previous();
        }
        /**
         * listens for the navigation-events
         */
        nav.onNext = function() {
            //app1.next();
            //app2.next();
            currentApp.next();
        };
        
        /**
         * listens for the navigation-events
         */
        nav.onImageClick = function(slot) {
            //app1.gotoSlot( slot );
            //app2.gotoSlot( slot );
            currentApp.gotoSlot( slot );
        };
        
        nav.onEscape = function() {
            that.hide(1);
        };
        /*nav.onDownload = function() {
            return true;
        }*/
        
    }
    
    /**
     * fired when all images have been loaded
     * @param {DOMElement} images
     */
    function onImagesLoaded(images) {
        ImageFlow.util.log('images loaded', images);
        app1 = new ImageFlow.Mode1.App(config, images);
        app2 = new ImageFlow.Mode2.App(config, images);
        
        // sets the default app
        currentApp = config.mode == 2 ? app2 : app1;
        nav.setActiveModeButton(config.mode);
    }
    
    var app1, app2, currentApp = null, nav;
    var that = this;
    init();
};
/**
 * 
 * @param {Map} config
 * @param {List<ImageFlow.Image>} images
 */
ImageFlow.Mode1.App = function(config, images) {
    this.show = function() {
        jQuery('#imageFlow').removeClass('mode2');
        jQuery('#imageFlow').addClass('mode1');
        that.refresh();
    }
    
    this.refresh = function() {
        gui.setThumbs( controller.getVisibleThumbs() );
        gui.setCurrent( controller.getCurrentImage() );
        
        // refresh a.href
        //var a = document.getElementById("imageFlow-download-link");
        //a.href = window.imgFlow.downloadScript + "?file=" + controller.getCurrentImage().imageUrl;
    }
    
    this.hide = function() {
        jQuery('#imageFlow').removeClass('mode1');
        jQuery('#imageFlow').removeClass('mode2');
    }
    
    this.next = function() {
        controller.next();
        that.refresh();
    };
    
    this.previous = function() {
        controller.previous();
        that.refresh();
    };
    
    /**
     * scrolls the thumbnails to the given slot 
     * @param {DOM-Element} slot
     */
    this.gotoSlot = function( slot ) {
        controller.gotoSlot( slot );
        that.refresh();
    };
    
    /**
     * returns the currently displayed image
     */
    this.getCurrentImage = function() {
        return controller.getCurrentImage();
    };
    function init()
    {
        ImageFlow.util.log('config:', config);
        controller = new ImageFlow.Mode1.Controller( { thumbSlots: config.thumbSlots, images: images } );
        
        gui = new ImageFlow.Mode1.Gui({ 
            imageCount: images.length
        });
    }
    
    var that = this;
    var loader = config.loader;
    var controller = null;
    var gui = null;
    
    init();    
};
/**
 * the carusell-mode main program
 * @param {Object} config
 * @param {List<ImageFlow.Image>} images
 */
ImageFlow.Mode2.App = function(config, images ) {
    /**
     * brings up the mode's gui
     */
    this.show = function(){
        // set up the timer to refreshes the gui frequently
        interval = window.setInterval( run, 15);
        jQuery('#imageFlow').removeClass('mode1');
        jQuery('#imageFlow').addClass('mode2');
        jQuery('#imageFlow').show();
        controller.setAnimationSync( config.sync );
        update();
    };
    
    /**
     * hides the mode's gui
     */
    this.hide = function(){
        if( interval ) {
            window.clearInterval( interval );
            interval = null;
        }
        controller.setAnimationSync( true );
        jQuery('#imageFlow').removeClass('mode2');
        jQuery('#imageFlow').removeClass('mode1');
    };
    
    /**
     * returns <code>true</code> if the mode is currently running  
     */
    this.isRunnning = function(){
        return interval == true;
    };
    
    /**
     * navigates to the next image (rotates the carusell in clockwise direction) 
     */
    this.next = function() {
        controller.next();
    };
    /**
     * navigates to the previous image (rotates the carusell in counterclockwise direction) 
     */
    this.previous = function() {
        controller.previous();
    };
    /**
     * rotates to the given slot
     * @param {Object} slot
     */
    this.gotoSlot = function( slot ) {
        controller.gotoSlot( slot );
        update();
    };
    
    /**
     * get's the current active image (which shon "in front")
     */
    this.getCurrentImage = function() {
        return controller.getCurrentImage();
    };
    
    function init() {
        var radius = ImageFlow.util.getWindowSize().width / 2;
        controller = new ImageFlow.Mode2.Controller( { slots: jQuery('#imageFlow .imageFlow-mode2-images img'), images: images, radius: radius });
        gui = new ImageFlow.Mode2.Gui( { images: images, pseudo3d: config.pseudo3d } );
        //gui.setupImages();
    }
    
    /**
     * triggered by the timer-interval
     * @see ImageFlow.Mode2.App.init() 
     */
    function run() {
        if (controller.needsRefresh()) {
            update();
        }
    }
    
    /**
     * updates the animation
     */
    function update()
    {
        //controller.refresh();
        
        //gui.update_start();
        var img = null, data = null;
        
        var slots = controller.getSlots();
        
        for (var i = 0; i < slots.length; i++) {
            var slot = slots[i];
            
            // get the appropriate (precalculated) data for the slot, taking into
            // account the carusell's current rotation 
            data = controller.getPositionFor(slot);
            
            if (data !== undefined) {
                gui.renderSlot(slot, data);
            }
            else {
                ImageFlow.util.log("no data ", slot);
                //throw 'no data';
            }
        }
        //gui.update_end();        
        
        // update a.href
        //var a = document.getElementById("imageFlow-download-link");
        //a.href = window.imgFlow.downloadScript + "?file=" + controller.getCurrentImage().imageUrl;
    }
    
    var that = this;
    var controller, gui, interval = null;
    init();
};ImageFlow.Mode1.Controller = function(config) {
    /**
     * return an int that indicates the index of the current item in the image-iterator
     * needes (according to Steven...) to maintain the current active image 
     * when toggling between both modes
     */
    this.getPosition = function(){
        return position;
    };
    
    this.getNumberOfImages = function() {
        return images.length;
    };
    
    /**
     * @return ImageFlow.Image
     */
    this.getCurrentImage = function() {
        return imageIterator.current();
    };
    
    /**
     * returns a span of the imageIterator containing those images
     * currently visible in the thumbnail area
     */
    this.getVisibleThumbs = function(){
        var visibleThumbs = [];
        var it = new ImageFlow.util.ArrayIterator(images);
        
        var firstIndex = imageIterator.getIndex() - Math.ceil(thumbSlots / 2) + 1; 
        it.setIndex(firstIndex);
        
        ImageFlow.util.log('Controller.getVisibleThumbs(): getIndex:' + it.getIndex());
        ImageFlow.util.log('Controller.getVisibleThumbs(): range is ' + firstIndex + ' to ' + (firstIndex + thumbSlots));
        for (var i = 0; i < thumbSlots; i++) {
            visibleThumbs.push(it.current());
            it.next();
        }
    
        return visibleThumbs;
    };
    
    /**
     * navigates to the next image 
     */
    this.next = function() {
        ImageFlow.util.log('Controller: next()');
        ++position;
        return imageIterator.next();
    };
    /**
     * navigates to the previous image 
     */
    this.previous = function() {
        ImageFlow.util.log('Controller: previous()');
        --position;
        return imageIterator.previous();
    };
    
    /**
     * navigates to the given slot, by rotating the thumbnails as well
     * as updating the currently active image
     * @param {ImageFlow.Image} slot
     */
    this.gotoSlot =  function( slot ) {
        ImageFlow.util.log('Controller: going to ', slot.image);
        var image = imageIterator.seek( slot.image);
        return image;
    };
    
    function init() {
        thumbSlots = config.thumbSlots;
        images = config.images;
        imageIterator = new ImageFlow.util.ArrayIterator(images);
        ImageFlow.util.log('Controller: number of thumbnail-slots: ', thumbSlots);
    };
    var that = this;
    
    var images = null,
        loader = null,
        imageIterator = null,
        thumbSlots,
        position = 0;
    
    init();
}
ImageFlow.Mode2.Controller = function(config) {
    
    /**
     * Steven!
     * @param {Object} value
     */
    this.setAnimationSync = function( value ){
        animationSync = value == true;
    };
    
    this.getRotationFor = function(slot) {
        return slot.rotation;
    };
    this.getPosition = function(){
        return position;
    };
    this.gotoPosition = function( newPosition ){
        var positionDiff = newPosition-position;
        startRotating( positionDiff * gap );
        position += positionDiff;
    }
    
    this.next = function( animationOverride ) {
        startRotating( gap );
        ++position;
    };
    
    this.previous = function() {
        startRotating( -gap );
        --position;
    };
    this.gotoSlot =  function( slot ) {
        ImageFlow.util.log('Controller: going to ', slot.image);
        changed = true;
        var toRotate = 90 - slot.rotation;
        position += Math.round( toRotate / gap );
        startRotating( toRotate );
    };
    
    this.needsRefresh = function() {
        if (!changed) {
            return false;
        }
        changed = false;
        return true;
    };
    
    this.getPositionFor = function(slot) {
        var r = Math.round(slot.rotation);
        //ImageFlow.util.log("getting data for rotation= ", r);
        return data[r];
    };
    
    this.getSlots = function() {
        return slots;
    };
    
    this.getCurrentImage = function() {
        // fixme
        imageIterator.setIndex(iteratorIndex + 2);
        return imageIterator.current();
    };
    
    
    function init() {
        slots = config.slots;
        radius = config.radius;
        images = config.images;
        that.setAnimationSync( config.sync );
        
        gap = 180 / slots.length;
        var middle = Math.floor((slots.length - 1) / 2);
        
        for (var i = 0; i < slots.length / 2; i++) {
            slots[middle - i].rotation = 90 - i * gap;
            slots[middle + i].rotation = 90 + i * gap;
        }
        
        
//        for (var i = 0; i < slots.length; i++) {
//            ImageFlow.util.log("slot "+i + ": ", slots[i].rotation);
//        }
        
        precalculatePositions();
        
        imageIterator = new ImageFlow.util.ArrayIterator(images);
        iteratorIndex = -Math.floor( (slots.length -1) / 2);
        assignImages();
    }
    
    function startRotating( rotation )
    {
        //ImageFlow.util.log( 'rotation: ' + rotation );
        if( animationSync )
            updateRotation( rotation );
        else
        {
            if( interval )
                return;
            rotating = rotation;
            lastUpdate = ImageFlow.util.getMilliseconds();
            interval =  window.setInterval( updateRotationCallback, 1000/30 );
        }
    }
    
    function updateRotationCallback(){
        if( rotating ){
            var currTime = ImageFlow.util.getMilliseconds();
            var timediff = currTime-lastUpdate;
            lastUpdate = currTime;
            
            var toRotate = (gap/1000)*timediff;
            toRotate = Math.min( Math.abs( rotating ), toRotate );
            toRotate *= rotating > 0 ? 1 : -1;
            
            updateRotation( toRotate );
            rotating += -toRotate;
        }
        if( !rotating ){
            window.clearInterval( interval );
            interval = null;
        }
    }
    
    function updateRotation(amount) {
        for (var i = 0; i < slots.length; i++) {
            var slot = slots[i];
            var image = null;
            slot.rotation += amount;
            
            if( slot.rotation > 180 ) {
                slot.rotation = (slot.rotation + 180) % 360;
                
                image = imageIterator.setIndex( ++iteratorIndex + slots.length - 1 );
                //ImageFlow.util.log("reassigning image of slot " + i, " (was: ", slot.src, " new: ", image.imageUrl);
                
                slot.src = image.imageUrl;
                slot.image = image;
            }
            else if( slot.rotation < 0 ){
                slot.rotation += 180;
                
                image = imageIterator.setIndex( --iteratorIndex );
                //ImageFlow.util.log("reassigning image of slot " + i, " (was: ", slot.src, " new: ", image.imageUrl);
                
                slot.src = image.imageUrl;
                slot.image = image;
            }
            
            
            slot.title = 'Slot: ' + i + ' iterator index:' +imageIterator.getIndex();
            
            jQuery(slot).css('opacity', that.getPositionFor( slot ).opacity );
        }
        changed = true;
    }
    
    function assignImages() {
        ImageFlow.util.log("initially assigning images");
        
        imageIterator.setIndex( iteratorIndex );
        
        for (var i = slots.length-1; i >= 0; --i) {
            var slot = slots[i];
            slot.src = imageIterator.current().imageUrl;
            slot.image = imageIterator.current();
            ImageFlow.util.log("assigning image image ", slot.src, "to slot ", i, slot);
            slot.title = 'Slot: ' + i + ' iterator index:' +imageIterator.getIndex();
            jQuery(slot).css('opacity', that.getPositionFor( slot ).opacity );
            imageIterator.next();
        }
        imageIterator.setIndex( iteratorIndex );
    }
    
    function precalculatePositions() {
        var x, height;
        
        for (var i = 0; i <= 180; i++) {
            
            var radiant = ImageFlow.util.Degree2Rad( i+0 );
            
            size = Math.max(1, Math.ceil(Math.sin( radiant ) * imageWidth) + 1); /* * (Math.sin ( radiant ))*/;
            
            x = Math.cos( radiant ) * radius;
            var opacity = Math.sin( radiant );
            
            x += radius;
            data[i] = ({
                size: size,
                x: Math.ceil(x),
                opacity: opacity
            });
        }
    }        
    
    var that = this;
    var imageIterator;
    var slots, gap;
    var radius;
//    var imageWidth = 320;
    var imageWidth = 240;
    var data = [];
    var changed = true;
    var iteratorIndex;
    var rotating =0;
    var lastUpdate = 0;
    var interval = null;
    var animationSync;
    var position =0;
    init();
};/**
 * the ordinary 2d-mode of the gallery
 * @param {Object} config
 */
ImageFlow.Mode1.Gui = function(config) {
    
    /**
     * displays the given images as thumnbails
     * @param {List<Image>}        the <code>ImageFlow.Image</code>s to display
     * @see Image.js 
     */
    this.setThumbs = function(images) {
        ImageFlow.util.log('thumbs to load: ', images);
        ImageFlow.util.log('config', config);
        
        if (images.length != thumbSlots.length) {
            throw 'invalid number of thumbs (was: ' + images.length + ', expected: ' + thumbSlots.length + ')';
        }
        
        for (var i = 0; i < images.length; i++) {
            //ImageFlow.util.log('assigning image with index ' + i + ' to slot ', thumbSlots[i]);
            thumbSlots[i].src = images[i].thumbUrl;
            thumbSlots[i].image = images[i];
        }
        
        jQuery('#imageFlow-imageCount').html(config.imageCount);
    };
    
    
    /**
     * sets the large image 
     * @param {Image} the image to display. this is NOT a node but an instance of <code>ImageFlow.Image</code>
     * @see Image.js
     */
    this.setCurrent = function(image) {
        canvas.src = image.imageUrl;
        jQuery('#imageFlow-subtitle').text(image.title);
        
        // FIXME: very dirty hack to extract id
        var id = image.id.match(/-id([0-9]*)$/)[1];
        jQuery('#imageFlow-imageIndex').text((parseInt(id) + 1).toString());
        
        
        function resize() {
           // var dimension = image.scale(450, 340);
            var dimension = image.scale(320, 240);
            canvas.width = dimension.width;
            canvas.height = dimension.height;
            ImageFlow.util.log(image.width, image.height, dimension.width, dimension.height);
        }
        
        if (image.isLoaded()) {
            resize();
        }
        else {
            image.onReady = resize;
        }
        
    };
    
    function init() {
        thumbSlots = jQuery('.imageFlow-thumb');
        canvas = jQuery('#imageFlow-canvas')[0];
        container = jQuery('#imageFlow');
    }
    
    var that = this;
    var thumbSlots = null;
    var canvas = null;
    var container = null;
    init();
}
/**
 * the "Karusell" - mode of te gallery
 * @param {Object} config
 */
ImageFlow.Mode2.Gui = function(config) {
    
    this.setupReflection = function() {
        for (var i = 0; i < images.length; i++) {
            var domImg = imageSlots[i];
                domImg.onload = function() {
                    this.reflection = Reflection.add ( this, {} );
                    jQuery(this.reflection).css( { position: 'absolute', top: (parseInt(this.style.top)+parseInt(this.height))+'px', left: this.style.left, width: this.style.width});
                    ImageFlow.util.log( this.reflection );
                }
        }
    }
    
    /**
     * updates the position and size of a slot
     * @param {DomNode} slot     the DOM img-node to update
     * @param {int} x             the new position on the x-axis
     * @param {int} size        a factor used to calculate the image's width and height
     * @param {float} opacity    the slots opacity (0: invisible, 1: maximum)
     */
    this.renderSlot = function(slot, data) {
        
        var x = data.x;
        
        var image = slot.image;
        
        var height = data.size;
        var width = image.width / image.height * height;
        
        if (pseudo3d) {
            var top = height / 2;
        }
        else {
            var top = windowHeight / 3 - slot.height / slot.width * width / 2;
        }
        
        jQuery(slot).css({
            left: x - width / 2, 
            height: height,
            width: width, 
            zIndex: height,
            top: top,
            opacity: data.opacity
        });
        
        //if(slot.reflection )
        //    jQuery(slot.reflection).css( {left: x, width: width, zIndex: width+100, top: (parseInt(slot.style.top)+parseInt(slot.height))+'px', height: width / 3 } );
/*
        jQuery(slot.reflection).css({
            position: 'absolute',
            left: x, 
            width: width + 3, 
            zIndex: width + 100,
            height: width / 3,
            top: top + Math.ceil(image.height / image.width * width) - 1
        });*/
    };
    
    /**
     * hides the canvas (which contains the whole gui) when the gui is updated (to speed up the animation) 
     */
    this.update_start = function()
    {
        node_canvas.hide();
    }
    
    /**
     * unhides the canvas at the end of an update-process 
     */
    this.update_end = function()
    {
        node_canvas.show();
    }
    
    function init() {
        node_canvas = jQuery('#imageFlow-mode2');
        images = config.images;
        pseudo3d = config.pseudo3d ? config.pseudo3d : false;
        imageSlots = jQuery('#imageFlow .imageFlow-mode2-images img');
        ImageFlow.util.log('number of mode2-image slots:', imageSlots.length);
        if (imageSlots.length == 0) {
            throw 'no image slots found';
        }
        //that.setupReflection();
    }
    
    var that = this;
    var imageSlots, images, pseudo3d = false;
    var node_canvas = null;
    var windowHeight = ImageFlow.util.getWindowSize().height;
    init();
    
};/**
 * represents an image
 * @param {Object} properties    map containing 
 *         (String)imageUrl, 
 *         (String)thumbUrl 
 *         (String) title of the image 
 */
ImageFlow.Image = function(properties) {
    this.imageUrl = null;
    this.thumbUrl = null;
    this.title = null;
    this.width = -1;
    this.height = -1;
    
    this.scale = function(maxWidth, maxHeight) {
        
        var newWidth = maxWidth;
        var newHeight = maxHeight;
        var imgWidth = that.width;
        var imgHeight = that.height;
        if (imgWidth && imgHeight) {
            
            if ( imgWidth > imgHeight) {
                newWidth = maxWidth;
                newHeight = imgHeight / imgWidth *  maxWidth;
            }
            else {
                newHeight = maxHeight;
                newWidth = imgWidth / imgHeight *  maxHeight;
            }
        }
        return { width: newWidth, height: newHeight };
        
    }
    
    this.onReady = function() {};
    this.isLoaded = function() {
        return this.width > 0&& this.height > 0;
    };
    
    
    function init() {
        var img = new Image();
        
        img.onload = function() {
            that.height = this.height;
            that.width = this.width;
            that.onReady();
        }
        img.src = that.imageUrl;
    }
    var that = this;
    ImageFlow.util.apply(properties, this);
    init();
};
/**
 * a loader-implementation that allows the images to be provided directly via javascript
 * @see gui.html for sample usage 
 * @param {Object} imgs
 */
ImageFlow.InlineLoader = function(imgs) {
    this.load = function(callback) {
        makeIds(images);
        
        
        callback(images);
    }
    
    this.addImage = function(img) {
        images.push(img);
    }
    
    function makeIds() {
        for (var i = 0; i < images.length; i++) {
            images[i].id = "imageflow-id"+ i;
        }
    }
    
    function init() {
        if (imgs && imgs.length) {
            for (var i = 0; i < imgs.length; i++) {
                if (imgs[i] && imgs[i].imageUrl) {
                    that.addImage(imgs[i]);
                    log("image added: ", imgs[i]);
                }
            }
        }
    }
    
    var that = this;
    var images = [];
    var index = 0;
    var log = ImageFlow.util.log;
    init();
    
}; /**
 * a loader-implementation that loads the images from a url via an ajax-request
 * it expects the images as a json string:
 * 
 *     [
 *         { 'imageUrl': 'img1.jpg', 'thumUrl': '1-thumb.jpg'},
 *        { 'imageUrl': 'img2.jpg', 'thumUrl': '2-thumb.jpg'}
 *     ]
 * 
 * @see LoaderTest.html for example usage
 */
ImageFlow.JsonLoader = function(config) {
    this.jsonUrl = null;
    this.synchron = false;
    var that = this;
    
    ImageFlow.util.apply(config, this);
    
    this.load = function(callback) {
        jQuery.ajax({ 
            url: that.jsonUrl,
            dataType: 'json', 
            success: function(result) {
                var images = that.parse(result);
                callback(images); 
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                throw errorThrown;
            },
            async: !that.synchron
        });
    };
    
    this.parse = function(json) {
        var images = [];
        for (var i = 0; i < json.length; i++) {
            
            images.push(new ImageFlow.Image({
                imageUrl: json[i].imageUrl, 
                thumbUrl: json[i].thumbUrl,
                id: 'imageflow-img' + i  
            }));
        }
        
        return images;
    }
};/**
 * this basically hooks up the keyboard- and mouse-events for
 * the interaction with the galleries gui
 * it is used by the <code>ImageFlow.App</code>, which dispatches the events
 * to the currently active mode's main program
 */
ImageFlow.Nav = function() {
    this.setActiveModeButton = function(mode) {
        if (mode == 1) {
            jQuery('#imageFlow-button-mode2').removeClass('active');
            jQuery('#imageFlow-button-mode1').addClass('active');
        }
        else {
            jQuery('#imageFlow-button-mode1').removeClass('active');
            jQuery('#imageFlow-button-mode2').addClass('active');
        }
    };
    
    this.enable = function() { enabled = true; };
    this.disable = function() { enabled = false; };
    this.onMode1Click = function() {};
    this.onMode2Click = function() {};
    this.onNext = function() {};
    this.onPrevious = function() {};
    this.onDownload = function() {};
    this.onEscape = function() {};
    function init() {
        jQuery('#imageflow-link-mode1').click(function() {
            that.onMode1Click();
            return false;
        });
        
        jQuery('#imageflow-link-mode2').click(function() {
            that.onMode2Click();
            return false;
        });
        
        jQuery('a#imageFlow-next, #imageFlow-next a ').click(  function() { if (enabled) that.onNext(); return false;} );
        jQuery('a#imageFlow-previous, #imageFlow-previous a').click( function() { if (enabled) that.onPrevious(); return false;} );
        //jQuery('a#imageFlow-download, #imageFlow-download a, #imageFlow-download-link').click( function() { if (enabled) return that.onDownload(); } );
        jQuery('#imageFlow-button-close').click( function() { if (enabled) that.onEscape(); return false;}  );
        
        jQuery('#imageFlow .imageFlow-mode2-images img, #imageFlow .imageFlow-thumbs img').click( function(event) {
            if (enabled) 
                that.onImageClick(event.target);
            return false;
        });
        
        // register global key-handler
        jQuery(document).keydown(  function(e) {
            if (!enabled) {
                return;
            }
            
            var keyCode = e.keyCode ? e.keyCode : e.which;
            switch (keyCode) {
                case 27: // escape key
                    that.onEscape();
                    break;
                case 39: // cursor-key >
                case 43: // +
                    that.onNext();
                    break;
                case 37: // cursor-key  <
                case 45: // key -
                    that.onPrevious();
                    break;
                case 49: // key 1
                    that.onMode1Click();
                    break;
                case 50: // key 2
                    that.onMode2Click();
                    break;
                default:
                    return;
            }
            
            return false;
        });        
    };
    
    var enabled = false;
    var that = this;
    init();
};ImageFlow.util = {};
ImageFlow.util.apply = function(src, dest) {
    for (var i in src) {
        dest[i] = src[i];
    }
};
ImageFlow.util.getMilliseconds = function(){
    return (new Date()).getTime();    
};
ImageFlow.util.Degree2Rad = function( degree ){
    return Math.PI * degree / 180;
};
ImageFlow.util.ArrayIterator = function( array ) {
    
    this.next = function() {
        return that.setIndex(index + 1);
    };
    
    this.previous = function() {
        return that.setIndex(index - 1);
    };
    
    this.current = function() {
        return array.length == 0 ? null : array[index];
    };
    
    this.setIndex = function( newIndex ){
        if( newIndex >= array.length )
        {
            index = newIndex % array.length;
        }
//        else if ( array.length == 1) {
//            index = 0;
//        }
        else if( newIndex <  0 )
        {
            that.setIndex(array.length + ( newIndex % array.length));
        }
        else
        {
            index = newIndex;
        }
        return that.current();
    };
    
    this.get = function(idx) {
        return array.length == 0 ? null : array[idx];
    };
    
    this.getIndex = function() {
        return index;
    };
    
    this.seek = function(value) {
        for (var i = 0; i < array.length; i++) {
            if (array[i] === value) {
                return that.setIndex(i);
            }
        }
    };
    
    var that = this;
    var index = 0;
    
};
ImageFlow.util.log = function() {
    if (typeof console !== 'undefined') {
        console.debug(arguments);
    }
};
ImageFlow.util.getWindowSize = function() {
      var myWidth = 0, myHeight = 0;
      if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
      } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
      } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
      }
      return { width: myWidth, height: myHeight };
};
    function showImageFlow(pageGuid) {
        try {
            // No GalleryExpert so far? Create Array
            if (!window.GalleryExpert)
                window.GalleryExpert = [];
            // Does our GalleryExpert with this pageGuid already exisst?
            if (!window.GalleryExpert[pageGuid]) { 
                if (!window.flowMap)
                    throw "Fehler beim Laden der Grafiken";
                    
                var fapp = window.flowMap[pageGuid];
                if (!fapp || fapp.length <= 0) 
                    throw "Fehler beim Laden der Grafiken oder keine Grafiken vorhanden";
                    // Create new GelelryExpert
                window.GalleryExpert[pageGuid] = new ImageFlow.App({
                    loader: new ImageFlow.InlineLoader(fapp),
                    thumbSlots: 7,
                    mode: 1,
                    pseudo3d: false,
                    downloadScript: ''
                });
                //window.GalleryExpert[pageGuid].downloadScript = '';
            }
            GalleryExpert[pageGuid].show();
        }
        catch(e) {
            (typeof e == "string" ) ? alert(e) : alert(e.message + ", " + e.number + ", " + e.description);
                
        }
        return false;
    };
//NewsTicker Laufband

/*!
 * Marquee jQuery Plug-in
 *
 * Copyright 2009 Giva, Inc. (http://www.givainc.com/labs/) 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Date: 2009-05-20
 * Rev:  1.0.01
 */
;(function($){
    // set the version of the link select
    $.marquee = {version: "1.0.01"};
    
    $.fn.marquee = function(options) {
        var method = typeof arguments[0] == "string" && arguments[0];
        var args = method && Array.prototype.slice.call(arguments, 1) || arguments;
        // get a reference to the first marquee found
        var self = (this.length == 0) ? null : $.data(this[0], "marquee");
        
        // if a method is supplied, execute it for non-empty results
        if( self && method && this.length ){
            // if request a copy of the object, return it            
            if( method.toLowerCase() == "object" ) return self;
            // if method is defined, run it and return either it's results or the chain
            else if( self[method] ){
                // define a result variable to return to the jQuery chain
                var result;
                this.each(function (i){
                    // apply the method to the current element
                    var r = $.data(this, "marquee")[method].apply(self, args);
                    // if first iteration we need to check if we're done processing or need to add it to the jquery chain
                    if( i == 0 && r ){
                        // if this is a jQuery item, we need to store them in a collection
                        if( !!r.jquery ){
                            result = $([]).add(r);
                        // otherwise, just store the result and stop executing
                        } else {
                            result = r;
                            // since we're a non-jQuery item, just cancel processing further items
                            return false;
                        }
                    // keep adding jQuery objects to the results
                    } else if( !!r && !!r.jquery ){
                        result = result.add(r);
                    }
                });
                // return either the results (which could be a jQuery object) or the original chain
                return result || this;
            // everything else, return the chain
            } else return this;
        // initializing request
        } else {
            // create a new marquee for each object found
            return this.each(function (){
                new $.Marquee(this, options);
            });
        };
    };
    $.Marquee = function (marquee, options){
        options = $.extend({}, $.Marquee.defaults, options);
        
        var self = this, $marquee = $(marquee), $lis = $marquee.find("> li"), current = -1, hard_paused = false, paused = false, loop_count = 0;
        // store a reference to this marquee
        $.data($marquee[0], "marquee", self);
        
        // pause the marquee
        this.pause = function (){
            // mark as hard pause (no resume on hover)
            hard_paused = true;
            // pause scrolling
            pause();
        }
        
        // resume the marquee
        this.resume = function (){
            // mark as hard pause (no resume on hover)
            hard_paused = false;
            // resume scrolling
            resume();
        }
        
        // update the marquee
        this.update = function (){
            var iCurrentCount = $lis.length;
            // update the line items
            $lis = $marquee.find("> li");
            
            // if we only have one item, show the next item by resuming playback (which will scroll to the next item)
            if( iCurrentCount <= 1 ) resume();
        }
        // code to introduce the new marquee message
        function show(i){
            // if we're already scrolling an item, stop processing
            if( $lis.filter("." + options.cssShowing).length > 0 ) return false;
            
            var $li = $lis.eq(i);
            
            // run the beforeshow callback
            if( $.isFunction(options.beforeshow) ) options.beforeshow.apply(self, [$marquee, $li]);
            var params = {
                //top: (options.yScroll == "top" ? "-" : "+") + $li.outerHeight() + "px"
                top: 0
                , left: $marquee.outerWidth()
            };
            $marquee.data("marquee.showing", true);
            $li.addClass(options.cssShowing);
            $li.css(params);
            //$li.css(params).animate({top: "0px"}, options.showSpeed, options.fxEasingShow, function (){ 
                // run the show callback
                if( $.isFunction(options.show) ) options.show.apply(self, [$marquee, $li]);
                $marquee.data("marquee.showing", false);
                scroll($li);
            //});
        }
        // keep the message on the screen for the user to read, scrolling long messages
        function scroll($li, delay){
            // if paused, stop processing
            if( paused == true ) return false;
            // get the delay speed
            delay = delay || options.pauseSpeed;
            // if    item is wider than marquee, then scroll
            if( doScroll($li) ){
                setTimeout(function (){
                    // if paused, stop processing (we need to check to see if the pause state has changed)
                    if( paused == true ) return false;
                    var width = $li.outerWidth(), endPos = width * -1, curPos = parseInt($li.css("left"), 10);
                    // scroll the message to the left                    
                    $li.animate({left: endPos + "px"}, ((width + curPos) * options.scrollSpeed), options.fxEasingScroll, function (){ finish($li); });
                }, delay);
            } else if ( $lis.length > 1 ){
                setTimeout(function (){
                    // if paused, stop processing (we need to check to see if the pause state has changed)
                    if( paused == true ) return false;
                    // scroll the message down
                    $li.animate({top: (options.yScroll == "top" ? "+" : "-") + $marquee.innerHeight() + "px"}, options.showSpeed, options.fxEasingScroll);
                    // finish showing this message
                    finish($li);
                }, delay);
            }
            
        }
        
        function finish($li){
            // run the aftershow callback, only after we've displayed the first option
            if( $.isFunction(options.aftershow) ) options.aftershow.apply(self, [$marquee, $li]);
            
            // mark that we're done scrolling this element
            $li.removeClass(options.cssShowing);
            
            // show the next message
            showNext();
        }
        // this function will pause the current animation
        function pause(){
            // mark the message as paused
            paused = true;
            // don't stop animation if we're just beginning to show the marquee message
            if( $marquee.data("marquee.showing") != true ){
                // we must dequeue() the animation to ensure that it does indeed stop animation
                $lis.filter("." + options.cssShowing).dequeue().stop();
            }
        }
        
        // this function will resume the previous animation
        function resume(){
            // mark the message as resumed
            paused = false;
            // don't resume animation if we haven't completed introducing the message
            if( $marquee.data("marquee.showing") != true ) scroll($lis.filter("." + options.cssShowing), 1);
        }
        // determine if we should pause on hover
        if( options.pauseOnHover ){
            $marquee.hover(
                function (){
                    // if hard paused, prevent hover events
                    if( hard_paused ) return false;
                    // pause scrolling
                    pause();
                }
                , function (){
                    // if hard paused, prevent hover events
                    if( hard_paused ) return false;
                    // resume scrolling
                    resume();
                }
            );
        }
        
        // determines if the message needs to be scrolled to read; we always want to scroll
        function doScroll($li){
            // return ($li.outerWidth() > $marquee.innerWidth());
              return true;
        }
        // show the next message in the queue        
        function showNext(){
            // increase the current counter (starts at -1, to indicate a new marquee beginning)
            current++;
            
            // if we only have 1 entry and it doesn't need to scroll, just cancel processing
            if( current >= $lis.length ){
                // if we've reached our loop count, cancel processing
                if( !isNaN(options.loop) && options.loop > 0 && (++loop_count >= options.loop ) ) return false;
                current = 0;
            } 
            
            // show the next message
            show(current);
        }
        
        // run the init callback
        if( $.isFunction(options.init) ) options.init.apply(self, [$marquee, options]);
        
        // show the first item
        showNext();
    };
    $.Marquee.defaults = {
          yScroll: "top"                          // the position of the marquee initially scroll (can be either "top" or "bottom")
        , showSpeed: 0                          // the speed of to animate the initial dropdown of the messages
        , scrollSpeed: 15                         // the speed of the scrolling (keep number low)
        , pauseSpeed: 0                        // the time to wait before showing the next message or scrolling current message
        , pauseOnHover: true                      // determine if we should pause on mouse hover
        , loop: -1                                // determine how many times to loop through the marquees (#'s < 0 = infinite)
        , fxEasingShow: "swing"                   // the animition easing to use when showing a new marquee
        , fxEasingScroll: "linear"                // the animition easing to use when showing a new marquee
        // define the class statements
        , cssShowing: "marquee-showing"
        // event handlers
        , init: null                              // callback that occurs when a marquee is initialized
        , beforeshow: null                        // callback that occurs before message starts scrolling on screen
        , show: null                              // callback that occurs when a new marquee message is displayed
        , aftershow: null                         // callback that occurs after the message has scrolled
    };
})(jQuery);
