
(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);
var NUP = function($) {
function initPage(){
if ($("#home").length) {
$("#aktuell").hover(function(){
$("#hometoptext p").addClass("on");
}, function(){
$("#hometoptext p").removeClass("on");
});
}
};
return {
initPage : initPage
};
}(jQuery);
(function($) {
$(document).ready(function() {
NUP.initPage();
});
})(jQuery);
(function(window) {
var soundManager = null;
function SoundManager(smURL, smID) {
this.flashVersion = 8;             // version of flash to require, either 8 or 9. Some API features require Flash 9.
this.debugMode = true;             // enable debugging output (div#soundmanager-debug, OR console if available+configured)
this.debugFlash = false;           // enable debugging output inside SWF, troubleshoot Flash/browser issues
this.useConsole = true;            // use firebug/safari console.log()-type debug console if available
this.consoleOnly = false;          // if console is being used, do not create/write to #soundmanager-debug
this.waitForWindowLoad = false;    // force SM2 to wait for window.onload() before trying to call soundManager.onload()
this.nullURL = 'about:blank';      // path to "null" (empty) MP3 file, used to unload sounds (Flash 8 only)
this.allowPolling = true;          // allow flash to poll for status update (required for whileplaying() events, peak, sound spectrum functions to work.)
this.useFastPolling = false;       // uses lower flash timer interval for higher callback frequency, best combined with useHighPerformance
this.useMovieStar = true;          // enable support for Flash 9.0r115+ (codename "MovieStar") MPEG4 audio+video formats (AAC, M4V, FLV, MOV etc.)
this.bgColor = '#ffffff';          // movie (.swf) background color, '#000000' useful if showing on-screen/full-screen video etc.
this.useHighPerformance = false;   // position:fixed flash movie can help increase js/flash speed, minimize lag
this.flashLoadTimeout = 1000;      // msec to wait for flash movie to load before failing (0 = infinity)
this.wmode = null;                 // mode to render the flash movie in - null, transparent, opaque (last two allow layering of HTML on top)
this.allowFullScreen = true;       // enter full-screen (via double-click on movie) for flash 9+ video
this.allowScriptAccess = 'always'; // for scripting the SWF (object/embed property), either 'always' or 'sameDomain'
this.useFlashBlock = false;        // *requires flashblock.css, see demos* - allow recovery from flash blockers. Wait indefinitely and apply timeout CSS to SWF, if applicable.
this.useHTML5Audio = false;        // Beta feature: Use HTML 5 Audio() where API is supported (most Safari, Chrome versions), Firefox (no MP3/MP4.) Ideally, transparent vs. Flash API where possible.
this.html5Test = /^probably$/i;    // HTML5 Audio().canPlayType() test. /^(probably|maybe)$/i if you want to be more liberal/risky.
this.audioFormats = {
'mp3': {
type: ['audio/mpeg; codecs="mp3"','audio/mpeg','audio/mp3','audio/MPA','audio/mpa-robust'],
required: true
},
'mp4': {
related: ['aac','m4a'], // additional formats under the MP4 container.
type: ['audio/mp4; codecs="mp4a.40.2"','audio/aac','audio/x-m4a','audio/MP4A-LATM','audio/mpeg4-generic'],
required: true
},
'ogg': {
type: ['audio/ogg; codecs=vorbis'],
required: false
},
'wav': {
type: ['audio/wav; codecs="1"','audio/wav','audio/wave','audio/x-wav'],
required: false
}
};
this.defaultOptions = {
'autoLoad': false,             // enable automatic loading (otherwise .load() will be called on demand with .play(), the latter being nicer on bandwidth - if you want to .load yourself, you also can)
'stream': true,                // allows playing before entire file has loaded (recommended)
'autoPlay': false,             // enable playing of file as soon as possible (much faster if "stream" is true)
'loops': 1,                    // how many times to repeat the sound (position will wrap around to 0, setPosition() will break out of loop when >0)
'onid3': null,                 // callback function for "ID3 data is added/available"
'onload': null,                // callback function for "load finished"
'whileloading': null,          // callback function for "download progress update" (X of Y bytes received)
'onplay': null,                // callback for "play" start
'onpause': null,               // callback for "pause"
'onresume': null,              // callback for "resume" (pause toggle)
'whileplaying': null,          // callback during play (position update)
'onstop': null,                // callback for "user stop"
'onfinish': null,              // callback function for "sound finished playing"
'onbeforefinish': null,        // callback for "before sound finished playing (at [time])"
'onbeforefinishtime': 5000,    // offset (milliseconds) before end of sound to trigger beforefinish (eg. 1000 msec = 1 second)
'onbeforefinishcomplete': null,// function to call when said sound finishes playing
'onjustbeforefinish': null,    // callback for [n] msec before end of current sound
'onjustbeforefinishtime': 200, // [n] - if not using, set to 0 (or null handler) and event will not fire.
'multiShot': true,             // let sounds "restart" or layer on top of each other when played multiple times, rather than one-shot/one at a time
'multiShotEvents': false,      // fire multiple sound events (currently onfinish() only) when multiShot is enabled
'position': null,              // offset (milliseconds) to seek to within loaded sound data.
'pan': 0,                      // "pan" settings, left-to-right, -100 to 100
'type': null,                  // MIME-like hint for file pattern / canPlay() tests, eg. audio/mp3
'volume': 100                  // self-explanatory. 0-100, the latter being the max.
};
this.flash9Options = {      // flash 9-only options, merged into defaultOptions if flash 9 is being used
'isMovieStar': null,      // "MovieStar" MPEG4 audio/video mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL
'usePeakData': false,     // enable left/right channel peak (level) data
'useWaveformData': false, // enable sound spectrum (raw waveform data) - WARNING: CPU-INTENSIVE: may set CPUs on fire.
'useEQData': false,       // enable sound EQ (frequency spectrum data) - WARNING: Also CPU-intensive.
'onbufferchange': null,   // callback for "isBuffering" property change
'ondataerror': null       // callback for waveform/eq data access error (flash playing audio in other tabs/domains)
};
this.movieStarOptions = { // flash 9.0r115+ MPEG4 audio/video options, merged into defaultOptions if flash 9+movieStar mode is enabled
'onmetadata': null,     // callback for when video width/height etc. are received
'useVideo': false,      // if loading movieStar content, whether to show video
'bufferTime': 3,        // seconds of data to buffer before playback begins (null = flash default of 0.1 seconds - if AAC playback is gappy, try increasing.)
'serverURL': null,      // rtmp: FMS or FMIS server to connect to, required when requesting media via RTMP or one of its variants
'onconnect': null       // rtmp: callback for connection to flash media server
};
this.version = null;
this.versionNumber = 'V2.96a.20100822';
this.movieURL = null;
this.url = (smURL || null);
this.altURL = null;
this.swfLoaded = false;
this.enabled = false;
this.o = null;
this.movieID = 'sm2-container';
this.id = (smID || 'sm2movie');
this.swfCSS = {
swfDefault: 'movieContainer',
swfError: 'swf_error', // SWF loaded, but SM2 couldn't start (other error)
swfTimedout: 'swf_timedout',
swfUnblocked: 'swf_unblocked', // or loaded OK
sm2Debug: 'sm2_debug',
highPerf: 'high_performance',
flashDebug: 'flash_debug'
};
this.oMC = null;
this.sounds = {};
this.soundIDs = [];
this.muted = false;
this.isFullScreen = false; // set later by flash 9+
this.isIE = (navigator.userAgent.match(/MSIE/i));
this.isSafari = (navigator.userAgent.match(/safari/i));
this.debugID = 'soundmanager-debug';
this.debugURLParam = /([#?&])debug=1/i;
this.specialWmodeCase = false;
this.didFlashBlock = false;
this.filePattern = null;
this.filePatterns = {
flash8: /\.mp3(\?.*)?$/i,
flash9: /\.mp3(\?.*)?$/i
};
this.baseMimeTypes = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; // mp3
this.netStreamMimeTypes = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; // mp3, mp4, aac etc.
this.netStreamTypes = ['aac', 'flv', 'mov', 'mp4', 'm4v', 'f4v', 'm4a', 'mp4v', '3gp', '3g2']; // Flash v9.0r115+ "moviestar" formats
this.netStreamPattern = new RegExp('\\.(' + this.netStreamTypes.join('|') + ')(\\?.*)?$', 'i');
this.mimePattern = this.baseMimeTypes;
this.features = {
buffering: false,
peakData: false,
waveformData: false,
eqData: false,
movieStar: false
};
this.sandbox = {
'type': null,
'types': {
'remote': 'remote (domain-based) rules',
'localWithFile': 'local with file access (no internet access)',
'localWithNetwork': 'local with network (internet access only, no local access)',
'localTrusted': 'local, trusted (local+internet access)'
},
'description': null,
'noRemote': null,
'noLocal': null
};
this.hasHTML5 = null; // switch for handling logic
this.html5 = { // stores canPlayType() results, etc. read-only.
usingFlash: null // set if/when flash fallback is needed
};
this.ignoreFlash = false; // used for special cases (eg. iPad/iPhone/palm OS?)
var SMSound,
_s = this, _sm = 'soundManager', _id, _ua = navigator.userAgent, _wl = window.location.href.toString(), _fV = this.flashVersion, _doNothing, _init, _onready = [], _debugOpen = true, _debugTS, _didAppend = false, _appendSuccess = false, _didInit = false, _disabled = false, _windowLoaded = false, _wDS, _wdCount, _initComplete, _mergeObjects, _addOnReady, _processOnReady, _initUserOnload, _go, _waitForEI, _setVersionInfo, _handleFocus, _beginInit, _strings, _initMovie, _dcLoaded, _didDCLoaded, _getDocument, _createMovie, _mobileFlash, _setPolling, _debugLevels = ['log', 'info', 'warn', 'error'], _defaultFlashVersion = 8, _disableObject, _failSafely, _normalizeMovieURL, _oRemoved = null, _oRemovedHTML = null, _str, _flashBlockHandler, _getSWFCSS, _toggleDebug, _loopFix, _complain, _idCheck, _waitingForEI = false, _initPending = false, _smTimer, _onTimer, _startTimer, _stopTimer, _needsFlash = null, _featureCheck, _html5OK, _html5Only = false, _html5CanPlay, _html5Ext,  _dcIE, _testHTML5,
_is_pre = _ua.match(/pre\//i),
_iPadOrPhone = _ua.match(/(ipad|iphone)/i),
_isMobile = (_ua.match(/mobile/i) || _is_pre || _iPadOrPhone),
_hasConsole = (typeof console !== 'undefined' && typeof console.log !== 'undefined'),
_isFocused = (typeof document.hasFocus !== 'undefined'?document.hasFocus():null),
_tryInitOnFocus = (typeof document.hasFocus === 'undefined' && this.isSafari),
_okToDisable = !_tryInitOnFocus;
this._use_maybe = (_wl.match(/sm2\-useHTML5Maybe\=1/i)); // temporary feature: #sm2-useHTML5Maybe=1 forces loose canPlay() check
this._overHTTP = (document.location?document.location.protocol.match(/http/i):null);
this.useAltURL = !this._overHTTP; // use altURL if not "online"
if (_iPadOrPhone || _is_pre) {
_s.useHTML5Audio = true;
_s.ignoreFlash = true;
}
if (_is_pre || this._use_maybe) {
_s.html5Test = /^(probably|maybe)$/i;
}
(function(){
var a = '#sm2-usehtml5audio=', l = _wl, b = null;
if (l.indexOf(a) !== -1) {
b = (l.substr(l.indexOf(a)+a.length) === '1');
if (typeof console !== 'undefined' && typeof console.log !== 'undefined') {
console.log((b?'Enabling ':'Disabling ')+'useHTML5Audio via URL parameter');
}
_s.useHTML5Audio = b;
}
}());
this.supported = function() {
return (_needsFlash?(_didInit && !_disabled):(_s.useHTML5Audio && _s.hasHTML5));
};
this.getMovie = function(smID) {
return _s.isIE?window[smID]:(_s.isSafari?_id(smID) || document[smID]:_id(smID));
};
this.loadFromXML = function(sXmlUrl) {
try {
_s.o._loadFromXML(sXmlUrl);
} catch(e) {
_failSafely();
return true;
}
};
this.createSound = function(oOptions) {
var _cs = 'soundManager.createSound(): ',
thisOptions = null, oSound = null, _tO = null;
if (!_didInit) {
throw _complain(_cs + _str('notReady'), arguments.callee.caller);
}
if (arguments.length === 2) {
oOptions = {
'id': arguments[0],
'url': arguments[1]
};
}
thisOptions = _mergeObjects(oOptions); // inherit SM2 defaults
_tO = thisOptions; // alias
if (_tO.id.toString().charAt(0).match(/^[0-9]$/)) {
_s._wD(_cs + _str('badID', _tO.id), 2);
}
_s._wD(_cs + _tO.id + ' (' + _tO.url + ')', 1);
if (_idCheck(_tO.id, true)) {
_s._wD(_cs + _tO.id + ' exists', 1);
return _s.sounds[_tO.id];
}
function make() {
thisOptions = _loopFix(thisOptions);
_s.sounds[_tO.id] = new SMSound(_tO);
_s.soundIDs.push(_tO.id);
return _s.sounds[_tO.id];
}
if (_html5OK(_tO)) {
oSound = make();
_s._wD('Loading sound '+_tO.id+' from HTML5');
oSound._setup_html5(_tO);
} else {
if (_fV > 8 && _s.useMovieStar) {
if (_tO.isMovieStar === null) {
_tO.isMovieStar = ((_tO.serverURL || (_tO.type?_tO.type.match(_s.netStreamPattern):false)||_tO.url.match(_s.netStreamPattern))?true:false);
}
if (_tO.isMovieStar) {
_s._wD(_cs + 'using MovieStar handling');
}
if (_tO.isMovieStar) {
if (_tO.usePeakData) {
_wDS('noPeak');
_tO.usePeakData = false;
}
if (_tO.loops > 1) {
_wDS('noNSLoop');
}
}
}
oSound = make();
if (_fV === 8) {
_s.o._createSound(_tO.id, _tO.onjustbeforefinishtime, _tO.loops||1);
} else {
_s.o._createSound(_tO.id, _tO.url, _tO.onjustbeforefinishtime, _tO.usePeakData, _tO.useWaveformData, _tO.useEQData, _tO.isMovieStar, (_tO.isMovieStar?_tO.useVideo:false), (_tO.isMovieStar?_tO.bufferTime:false), _tO.loops||1, _tO.serverURL, _tO.duration||null, _tO.totalBytes||null, _tO.autoPlay, true);
if (!_tO.serverURL) {
oSound.connected = true;
if (_tO.onconnect) {
_tO.onconnect.apply(oSound);
}
}
}
}
if (_tO.autoLoad || _tO.autoPlay) {
if (oSound) {
if (_s.isHTML5) {
oSound.autobuffer = 'auto'; // early HTML5 implementation (non-standard)
oSound.preload = 'auto'; // standard
} else {
oSound.load(_tO);
}
}
}
if (_tO.autoPlay) {
oSound.play();
}
return oSound;
};
this.createVideo = function(oOptions) {
var fN = 'soundManager.createVideo(): ';
if (arguments.length === 2) {
oOptions = {
'id': arguments[0],
'url': arguments[1]
};
}
if (_fV >= 9) {
oOptions.isMovieStar = true;
oOptions.useVideo = true;
} else {
_s._wD(fN + _str('f9Vid'), 2);
return false;
}
if (!_s.useMovieStar) {
_s._wD(fN + _str('noMS'), 2);
}
return _s.createSound(oOptions);
};
this.destroySound = function(sID, bFromSound) {
if (!_idCheck(sID)) {
return false;
}
for (var i = 0; i < _s.soundIDs.length; i++) {
if (_s.soundIDs[i] === sID) {
_s.soundIDs.splice(i, 1);
continue;
}
}
_s.sounds[sID].unload();
if (!bFromSound) {
_s.sounds[sID].destruct();
}
delete _s.sounds[sID];
};
this.destroyVideo = this.destroySound;
this.load = function(sID, oOptions) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].load(oOptions);
};
this.unload = function(sID) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].unload();
};
this.play = function(sID, oOptions) {
var fN = 'soundManager.play(): ';
if (!_didInit) {
throw _complain(fN + _str('notReady'), arguments.callee.caller);
}
if (!_idCheck(sID)) {
if (!(oOptions instanceof Object)) {
oOptions = {
url: oOptions
}; // overloading use case: play('mySound','/path/to/some.mp3');
}
if (oOptions && oOptions.url) {
_s._wD(fN + 'attempting to create "' + sID + '"', 1);
oOptions.id = sID;
return _s.createSound(oOptions).play();
} else {
return false;
}
}
return _s.sounds[sID].play(oOptions);
};
this.start = this.play; // just for convenience
this.setPosition = function(sID, nMsecOffset) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].setPosition(nMsecOffset);
};
this.stop = function(sID) {
if (!_idCheck(sID)) {
return false;
}
_s._wD('soundManager.stop(' + sID + ')', 1);
return _s.sounds[sID].stop();
};
this.stopAll = function() {
_s._wD('soundManager.stopAll()', 1);
for (var oSound in _s.sounds) {
if (_s.sounds[oSound] instanceof SMSound) {
_s.sounds[oSound].stop(); // apply only to sound objects
}
}
};
this.pause = function(sID) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].pause();
};
this.pauseAll = function() {
for (var i = _s.soundIDs.length; i--;) {
_s.sounds[_s.soundIDs[i]].pause();
}
};
this.resume = function(sID) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].resume();
};
this.resumeAll = function() {
for (var i = _s.soundIDs.length; i--;) {
_s.sounds[_s.soundIDs[i]].resume();
}
};
this.togglePause = function(sID) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].togglePause();
};
this.setPan = function(sID, nPan) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].setPan(nPan);
};
this.setVolume = function(sID, nVol) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].setVolume(nVol);
};
this.mute = function(sID) {
var fN = 'soundManager.mute(): ',
i = 0;
if (typeof sID !== 'string') {
sID = null;
}
if (!sID) {
_s._wD(fN + 'Muting all sounds');
for (i = _s.soundIDs.length; i--;) {
_s.sounds[_s.soundIDs[i]].mute();
}
_s.muted = true;
} else {
if (!_idCheck(sID)) {
return false;
}
_s._wD(fN + 'Muting "' + sID + '"');
return _s.sounds[sID].mute();
}
};
this.muteAll = function() {
_s.mute();
};
this.unmute = function(sID) {
var fN = 'soundManager.unmute(): ', i;
if (typeof sID !== 'string') {
sID = null;
}
if (!sID) {
_s._wD(fN + 'Unmuting all sounds');
for (i = _s.soundIDs.length; i--;) {
_s.sounds[_s.soundIDs[i]].unmute();
}
_s.muted = false;
} else {
if (!_idCheck(sID)) {
return false;
}
_s._wD(fN + 'Unmuting "' + sID + '"');
return _s.sounds[sID].unmute();
}
};
this.unmuteAll = function() {
_s.unmute();
};
this.toggleMute = function(sID) {
if (!_idCheck(sID)) {
return false;
}
return _s.sounds[sID].toggleMute();
};
this.getMemoryUse = function() {
if (_fV === 8) {
return 0;
}
if (_s.o) {
return parseInt(_s.o._getMemoryUse(), 10);
}
};
this.disable = function(bNoDisable) {
if (typeof bNoDisable === 'undefined') {
bNoDisable = false;
}
if (_disabled) {
return false;
}
_disabled = true;
_wDS('shutdown', 1);
for (var i = _s.soundIDs.length; i--;) {
_disableObject(_s.sounds[_s.soundIDs[i]]);
}
_initComplete(bNoDisable); // fire "complete", despite fail
if (window.removeEventListener) {
window.removeEventListener('load', _initUserOnload, false);
}
};
this.canPlayMIME = function(sMIME) {
var result;
if (_s.hasHTML5) {
result = _html5CanPlay({type:sMIME});
}
if (!_needsFlash || result) {
return result;
} else {
return (sMIME?(sMIME.match(_s.mimePattern)?true:false):null);
}
};
this.canPlayURL = function(sURL) {
var result;
if (_s.hasHTML5) {
result = _html5CanPlay(sURL);
}
if (!_needsFlash || result) {
return result;
} else {
return (sURL?(sURL.match(_s.filePattern)?true:false):null);
}
};
this.canPlayLink = function(oLink) {
if (typeof oLink.type !== 'undefined' && oLink.type) {
if (_s.canPlayMIME(oLink.type)) {
return true;
}
}
return _s.canPlayURL(oLink.href);
};
this.getSoundById = function(sID, suppressDebug) {
if (!sID) {
throw new Error('SoundManager.getSoundById(): sID is null/undefined');
}
var result = _s.sounds[sID];
if (!result && !suppressDebug) {
_s._wD('"' + sID + '" is an invalid sound ID.', 2);
}
return result;
};
this.onready = function(oMethod, oScope) {
if (oMethod && oMethod instanceof Function) {
if (_didInit) {
_wDS('queue');
}
if (!oScope) {
oScope = window;
}
_addOnReady(oMethod, oScope);
_processOnReady();
return true;
} else {
throw _str('needFunction');
}
};
this.oninitmovie = function() {
};
this.onload = function() {
_s._wD('soundManager.onload()', 1);
};
this.onerror = function() {
};
this.getMoviePercent = function() {
return (_s.o && typeof _s.o.PercentLoaded !== 'undefined'?_s.o.PercentLoaded():null);
};
this._writeDebug = function(sText, sType, bTimestamp) {
var sDID = 'soundmanager-debug', o, oItem, sMethod;
if (!_s.debugMode) {
return false;
}
if (typeof bTimestamp !== 'undefined' && bTimestamp) {
sText = sText + ' | ' + new Date().getTime();
}
if (_hasConsole && _s.useConsole) {
sMethod = _debugLevels[sType];
if (typeof console[sMethod] !== 'undefined') {
console[sMethod](sText);
} else {
console.log(sText);
}
if (_s.useConsoleOnly) {
return true;
}
}
try {
o = _id(sDID);
if (!o) {
return false;
}
oItem = document.createElement('div');
if (++_wdCount % 2 === 0) {
oItem.className = 'sm2-alt';
}
if (typeof sType === 'undefined') {
sType = 0;
} else {
sType = parseInt(sType, 10);
}
oItem.appendChild(document.createTextNode(sText));
if (sType) {
if (sType >= 2) {
oItem.style.fontWeight = 'bold';
}
if (sType === 3) {
oItem.style.color = '#ff3333';
}
}
o.insertBefore(oItem, o.firstChild); // bottom-to-top
} catch(e) {
}
o = null;
};
this._wD = this._writeDebug; // alias
this._debug = function() {
_wDS('currentObj', 1);
for (var i = 0, j = _s.soundIDs.length; i < j; i++) {
_s.sounds[_s.soundIDs[i]]._debug();
}
};
this.reboot = function() {
_s._wD('soundManager.reboot()');
if (_s.soundIDs.length) {
_s._wD('Destroying ' + _s.soundIDs.length + ' SMSound objects...');
}
for (var i = _s.soundIDs.length; i--;) {
_s.sounds[_s.soundIDs[i]].destruct();
}
try {
if (_s.isIE) {
_oRemovedHTML = _s.o.innerHTML;
}
_oRemoved = _s.o.parentNode.removeChild(_s.o);
_s._wD('Flash movie removed.');
} catch(e) {
_wDS('badRemove', 2);
}
_oRemovedHTML = null;
_oRemoved = null;
_s.enabled = false;
_didInit = false;
_waitingForEI = false;
_initPending = false;
_didAppend = false;
_appendSuccess = false;
_disabled = false;
_s.swfLoaded = false;
_s.soundIDs = [];
_s.sounds = [];
_s.o = null;
for (i = _onready.length; i--;) {
_onready[i].fired = false;
}
_s._wD(_sm + ': Rebooting...');
window.setTimeout(function() {
_s.beginDelayedInit();
}, 20);
};
this.destruct = function() {
_s._wD('soundManager.destruct()');
_s.disable(true);
};
this.beginDelayedInit = function() {
_windowLoaded = true;
_dcLoaded();
setTimeout(_waitForEI, 500);
setTimeout(_beginInit, 20);
};
_html5OK = function(iO) {
return ((iO.type?_html5CanPlay({type:iO.type}):false)||_html5CanPlay(iO.url));
};
_html5CanPlay = function(sURL) {
if (!_s.useHTML5Audio || !_s.hasHTML5) {
return false;
}
var result, mime, fileExt, item, aF = _s.audioFormats;
if (!_html5Ext) {
_html5Ext = [];
for (item in aF) {
if (aF.hasOwnProperty(item)) {
_html5Ext.push(item);
if (aF[item].related) {
_html5Ext = _html5Ext.concat(aF[item].related);
}
}
}
_html5Ext = new RegExp('\\.('+_html5Ext.join('|')+')','i');
}
mime = (typeof sURL.type !== 'undefined'?sURL.type:null);
fileExt = (typeof sURL === 'string'?sURL.toLowerCase().match(_html5Ext):null); // TODO: Strip URL queries, etc.
if (!fileExt || !fileExt.length) {
if (!mime) {
return false;
}
} else {
fileExt = fileExt[0].substr(1); // "mp3", for example
}
if (fileExt && typeof _s.html5[fileExt] !== 'undefined') {
return _s.html5[fileExt];
} else {
if (!mime) {
if (fileExt && _s.html5[fileExt]) {
return _s.html5[fileExt];
} else {
mime = 'audio/'+fileExt;
}
}
result = _s.html5.canPlayType(mime);
_s.html5[fileExt] = result;
return result;
}
};
_testHTML5 = function() {
if (!_s.useHTML5Audio || typeof Audio === 'undefined') {
return false;
}
var a = (typeof Audio !== 'undefined' ? new Audio():null), item, support = {}, aF, i;
function _cp(m) {
var canPlay, i, j, isOK = false;
if (!a || typeof a.canPlayType !== 'function') {
return false;
}
if (m instanceof Array) {
for (i=0, j=m.length; i<j && !isOK; i++) {
if (_s.html5[m[i]] || a.canPlayType(m[i]).match(_s.html5Test)) {
isOK = true;
_s.html5[m[i]] = true;
}
}
return isOK;
} else {
canPlay = (a && typeof a.canPlayType === 'function' ? a.canPlayType(m) : false);
return (canPlay && (canPlay.match(_s.html5Test)?true:false));
}
}
aF = _s.audioFormats;
for (item in aF) {
if (aF.hasOwnProperty(item)) {
support[item] = _cp(aF[item].type);
if (aF[item] && aF[item].related) {
for (i=0; i<aF[item].related.length; i++) {
_s.html5[aF[item].related[i]] = support[item];
}
}
}
}
support.canPlayType = (a?_cp:null);
_s.html5 = _mergeObjects(_s.html5, support);
};
_strings = {
notReady: 'Not loaded yet - wait for soundManager.onload() before calling sound-related methods',
appXHTML: _sm + '::createMovie(): appendChild/innerHTML set failed. May be app/xhtml+xml DOM-related.',
spcWmode: _sm + '::createMovie(): Removing wmode, preventing win32 below-the-fold SWF loading issue',
swf404: _sm + ': Verify that %s is a valid path.',
tryDebug: 'Try ' + _sm + '.debugFlash = true for more security details (output goes to SWF.)',
checkSWF: 'See SWF output for more debug info.',
localFail: _sm + ': Non-HTTP page (' + document.location.protocol + ' URL?) Review Flash player security settings for this special case:\nhttp://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html\nMay need to add/allow path, eg. c:/sm2/ or /users/me/sm2/',
waitFocus: _sm + ': Special case: Waiting for focus-related event..',
waitImpatient: _sm + ': Getting impatient, still waiting for Flash%s...',
waitForever: _sm + ': Waiting indefinitely for Flash (will recover if unblocked)...',
needFunction: _sm + '.onready(): Function object expected',
badID: 'Warning: Sound ID "%s" should be a string, starting with a non-numeric character',
fl9Vid: 'flash 9 required for video. Exiting.',
noMS: 'MovieStar mode not enabled. Exiting.',
currentObj: '--- ' + _sm + '._debug(): Current sound objects ---',
waitEI: _sm + '::initMovie(): Waiting for ExternalInterface call from Flash..',
waitOnload: _sm + ': Waiting for window.onload()',
docLoaded: _sm + ': Document already loaded',
onload: _sm + '::initComplete(): calling soundManager.onload()',
onloadOK: _sm + '.onload() complete',
init: '-- ' + _sm + '::init() --',
didInit: _sm + '::init(): Already called?',
flashJS: _sm + ': Attempting to call Flash from JS..',
noPolling: _sm + ': Polling (whileloading()/whileplaying() support) is disabled.',
secNote: 'Flash security note: Network/internet URLs will not load due to security restrictions. Access can be configured via Flash Player Global Security Settings Page: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html',
badRemove: 'Warning: Failed to remove flash movie.',
noPeak: 'Warning: peakData features unsupported for movieStar formats',
shutdown: _sm + '.disable(): Shutting down',
queue: _sm + '.onready(): Queueing handler',
smFail: _sm + ': Failed to initialise.',
smError: 'SMSound.load(): Exception: JS-Flash communication failed, or JS error.',
fbTimeout: 'No flash response, applying .'+_s.swfCSS.swfTimedout+' CSS..',
fbLoaded: 'Flash loaded',
manURL: 'SMSound.load(): Using manually-assigned URL',
onURL: _sm + '.load(): current URL already assigned.',
badFV: 'soundManager.flashVersion must be 8 or 9. "%s" is invalid. Reverting to %s.',
as2loop: 'Note: Setting stream:false so looping can work (flash 8 limitation)',
noNSLoop: 'Note: Looping not implemented for MovieStar formats',
needfl9: 'Note: Switching to flash 9, required for MP4 formats.',
mfTimeout: 'Setting flashLoadTimeout = 0 (infinite) for off-screen, mobile flash case',
mfOn: 'mobileFlash::enabling on-screen flash repositioning'
};
_id = function(sID) {
return document.getElementById(sID);
};
_wdCount = 0;
_str = function() { // o [,items to replace]
var params = Array.prototype.slice.call(arguments), // real array, please
o = params.shift(), // first arg
str = (_strings && _strings[o]?_strings[o]:''), i, j;
if (str && params && params.length) {
for (i = 0, j = params.length; i < j; i++) {
str = str.replace('%s', params[i]);
}
}
return str;
};
_loopFix = function(sOpt) {
if (_fV === 8 && sOpt.loops > 1 && sOpt.stream) {
_wDS('as2loop');
sOpt.stream = false;
}
return sOpt;
};
_complain = function(sMsg, oCaller) {
var sPre = 'Error: ', errorDesc;
if (!oCaller) {
return new Error(sPre + sMsg);
}
if (typeof console !== 'undefined' && typeof console.trace !== 'undefined') {
console.trace();
}
errorDesc = sPre + sMsg + '. \nCaller: ' + oCaller.toString();
return new Error(errorDesc);
};
_doNothing = function() {
return false;
};
_disableObject = function(o) {
for (var oProp in o) {
if (o.hasOwnProperty(oProp) && typeof o[oProp] === 'function') {
o[oProp] = _doNothing;
}
}
oProp = null;
};
_failSafely = function(bNoDisable) {
if (typeof bNoDisable === 'undefined') {
bNoDisable = false;
}
if (_disabled || bNoDisable) {
_wDS('smFail', 2);
_s.disable(bNoDisable);
}
};
_normalizeMovieURL = function(smURL) {
var urlParams = null;
if (smURL) {
if (smURL.match(/\.swf(\?\.*)?$/i)) {
urlParams = smURL.substr(smURL.toLowerCase().lastIndexOf('.swf?') + 4);
if (urlParams) {
return smURL; // assume user knows what they're doing
}
} else if (smURL.lastIndexOf('/') !== smURL.length - 1) {
smURL = smURL + '/';
}
}
return (smURL && smURL.lastIndexOf('/') !== - 1?smURL.substr(0, smURL.lastIndexOf('/') + 1):'./') + _s.movieURL;
};
_setVersionInfo = function() {
if (_fV !== 8 && _fV !== 9) {
_s._wD(_str('badFV', _fV, _defaultFlashVersion));
_s.flashVersion = _defaultFlashVersion;
}
var isDebug = (_s.debugMode || _s.debugFlash?'_debug.swf':'.swf'); // debug flash movie, if applicable
if (_s.flashVersion < 9 && _s.useHTML5Audio && _s.audioFormats.mp4.required) {
_s._wD(_str('needfl9'));
_s.flashVersion = 9;
}
_fV = _s.flashVersion; // short-hand for internal use
_s.version = _s.versionNumber + (_html5Only?' (HTML5-only mode)':(_fV === 9?' (AS3/Flash 9)':' (AS2/Flash 8)'));
if (_fV > 8) {
_s.defaultOptions = _mergeObjects(_s.defaultOptions, _s.flash9Options);
_s.features.buffering = true;
}
if (_fV > 8 && _s.useMovieStar) {
_s.defaultOptions = _mergeObjects(_s.defaultOptions, _s.movieStarOptions);
_s.filePatterns.flash9 = new RegExp('\\.(mp3|' + _s.netStreamTypes.join('|') + ')(\\?.*)?$', 'i');
_s.mimePattern = _s.netStreamMimeTypes;
_s.features.movieStar = true;
} else {
_s.features.movieStar = false;
}
_s.filePattern = _s.filePatterns[(_fV !== 8?'flash9':'flash8')];
_s.movieURL = (_fV === 8?'soundmanager2.swf':'soundmanager2_flash9.swf').replace('.swf',isDebug);
_s.features.peakData = _s.features.waveformData = _s.features.eqData = (_fV > 8);
};
_getDocument = function() {
return (document.body?document.body:(document.documentElement?document.documentElement:document.getElementsByTagName('div')[0]));
};
_setPolling = function(bPolling, bHighPerformance) {
if (!_s.o || !_s.allowPolling) {
return false;
}
_s.o._setPolling(bPolling, bHighPerformance);
};
function _initDebug() {
if (_s.debugURLParam.test(_wl)) {
_s.debugMode = true; // allow force of debug mode via URL
}
var oD, oDebug, oTarget, oToggle, tmp;
if (_s.debugMode) {
oD = document.createElement('div');
oD.id = _s.debugID + '-toggle';
oToggle = {
position: 'fixed',
bottom: '0px',
right: '0px',
width: '1.2em',
height: '1.2em',
lineHeight: '1.2em',
margin: '2px',
textAlign: 'center',
border: '1px solid #999',
cursor: 'pointer',
background: '#fff',
color: '#333',
zIndex: 10001
};
oD.appendChild(document.createTextNode('-'));
oD.onclick = _toggleDebug;
oD.title = 'Toggle SM2 debug console';
if (_ua.match(/msie 6/i)) {
oD.style.position = 'absolute';
oD.style.cursor = 'hand';
}
for (tmp in oToggle) {
if (oToggle.hasOwnProperty(tmp)) {
oD.style[tmp] = oToggle[tmp];
}
}
}
if (_s.debugMode && !_id(_s.debugID) && ((!_hasConsole || !_s.useConsole) || (_s.useConsole && _hasConsole && !_s.consoleOnly))) {
oDebug = document.createElement('div');
oDebug.id = _s.debugID;
oDebug.style.display = (_s.debugMode?'block':'none');
if (_s.debugMode && !_id(oD.id)) {
try {
oTarget = _getDocument();
oTarget.appendChild(oD);
} catch(e2) {
throw new Error(_str('appXHTML'));
}
oTarget.appendChild(oDebug);
}
}
oTarget = null;
_initDebug = function(){}; // one-time function
}
_mobileFlash = (function(){
var oM = null;
function resetPosition() {
if (oM) {
oM.left = oM.top = '-9999px';
}
}
function reposition() {
oM.left = window.scrollX+'px';
oM.top = window.scrollY+'px';
}
function setReposition(bOn) {
_s._wD('mobileFlash::flash on-screen hack: '+(bOn?'ON':'OFF'));
var f = window[(bOn?'add':'remove')+'EventListener'];
f('resize', reposition, false);
f('scroll', reposition, false);
}
function check(inDoc) {
oM = _s.oMC.style;
if (_ua.match(/android/i)) {
if (inDoc) {
if (_s.flashLoadTimeout) {
_s._wDS('mfTimeout');
_s.flashLoadTimeout = 0;
}
return false;
}
_s._wD('mfOn');
oM.position = 'absolute';
oM.left = oM.top = '0px';
setReposition(true);
_s.onready(function(){
setReposition(false); // detach
resetPosition(); // restore when OK/timed out
});
reposition();
}
}
return {
check: check
};
}());
_createMovie = function(smID, smURL) {
var specialCase = null,
remoteURL = (smURL?smURL:_s.url),
localURL = (_s.altURL?_s.altURL:remoteURL),
oEmbed, oMovie, oTarget, tmp, movieHTML, oEl, extraClass, s, x, sClass, side = '100%';
smID = (typeof smID === 'undefined'?_s.id:smID);
if (_didAppend && _appendSuccess) {
return false; // ignore if already succeeded
}
function _initMsg() {
_s._wD('-- SoundManager 2 ' + _s.version + (!_html5Only && _s.useHTML5Audio?(_s.hasHTML5?' + HTML5 audio':', no HTML5 audio support'):'') + (_s.useMovieStar?', MovieStar mode':'') + (_s.useHighPerformance?', high performance mode, ':', ') + ((_s.useFastPolling?'fast':'normal') + ' polling') + (_s.wmode?', wmode: ' + _s.wmode:'') + (_s.debugFlash?', flash debug mode':'') + (_s.useFlashBlock?', flashBlock mode':'') + ' --', 1);
}
if (_html5Only) {
_setVersionInfo();
_initMsg();
_s.oMC = _id(_s.movieID);
_init();
_didAppend = true;
_appendSuccess = true;
return false;
}
_didAppend = true;
_setVersionInfo();
_s.url = _normalizeMovieURL(this._overHTTP?remoteURL:localURL);
smURL = _s.url;
if (_s.useHighPerformance && _s.useMovieStar && _s.defaultOptions.useVideo === true) {
specialCase = 'soundManager note: disabling highPerformance, not applicable with movieStar mode+useVideo';
_s.useHighPerformance = false;
}
_s.wmode = (!_s.wmode && _s.useHighPerformance && !_s.useMovieStar?'transparent':_s.wmode);
if (_s.wmode !== null && !_s.isIE && !_s.useHighPerformance && navigator.platform.match(/win32/i)) {
_s.specialWmodeCase = true;
_wDS('spcWmode');
_s.wmode = null;
}
if (_fV === 8) {
_s.allowFullScreen = false;
}
oEmbed = {
name: smID,
id: smID,
src: smURL,
width: side,
height: side,
quality: 'high',
allowScriptAccess: _s.allowScriptAccess,
bgcolor: _s.bgColor,
pluginspage: 'http://www.macromedia.com/go/getflashplayer',
type: 'application/x-shockwave-flash',
wmode: _s.wmode,
allowFullScreen: (_s.allowFullScreen?'true':'false')
};
if (_s.debugFlash) {
oEmbed.FlashVars = 'debug=1';
}
if (!_s.wmode) {
delete oEmbed.wmode; // don't write empty attribute
}
if (_s.isIE) {
oMovie = document.createElement('div');
movieHTML = '<object id="' + smID + '" data="' + smURL + '" type="' + oEmbed.type + '" width="' + oEmbed.width + '" height="' + oEmbed.height + '"><param name="movie" value="' + smURL + '" /><param name="AllowScriptAccess" value="' + _s.allowScriptAccess + '" /><param name="quality" value="' + oEmbed.quality + '" />' + (_s.wmode?'<param name="wmode" value="' + _s.wmode + '" /> ':'') + '<param name="bgcolor" value="' + _s.bgColor + '" /><param name="allowFullScreen" value="' + oEmbed.allowFullScreen + '" />' + (_s.debugFlash?'<param name="FlashVars" value="' + oEmbed.FlashVars + '" />':'') + '<!-- --></object>';
} else {
oMovie = document.createElement('embed');
for (tmp in oEmbed) {
if (oEmbed.hasOwnProperty(tmp)) {
oMovie.setAttribute(tmp, oEmbed[tmp]);
}
}
}
_initDebug();
extraClass = _getSWFCSS();
oTarget = _getDocument();
if (oTarget) {
_s.oMC = _id(_s.movieID)?_id(_s.movieID):document.createElement('div');
if (!_s.oMC.id) {
_s.oMC.id = _s.movieID;
_s.oMC.className = _s.swfCSS.swfDefault + ' ' + extraClass;
s = null;
oEl = null;
if (!_s.useFlashBlock) {
if (_s.useHighPerformance) {
s = {
position: 'fixed',
width: '8px',
height: '8px',
bottom: '0px',
left: '0px',
overflow: 'hidden'
};
} else {
s = {
position: 'absolute',
width: '6px',
height: '6px',
top: '-9999px',
left: '-9999px'
};
}
}
if (_ua.match(/webkit/i)) {
_s.oMC.style.zIndex = 10000; // soundcloud-reported render/crash fix, safari 5
}
x = null;
if (!_s.debugFlash) {
for (x in s) {
if (s.hasOwnProperty(x)) {
_s.oMC.style[x] = s[x];
}
}
}
try {
if (!_s.isIE) {
_s.oMC.appendChild(oMovie);
}
oTarget.appendChild(_s.oMC);
if (_s.isIE) {
oEl = _s.oMC.appendChild(document.createElement('div'));
oEl.className = 'sm2-object-box';
oEl.innerHTML = movieHTML;
}
_appendSuccess = true;
} catch(e) {
throw new Error(_str('appXHTML'));
}
_mobileFlash.check();
} else {
sClass = _s.oMC.className;
_s.oMC.className = (sClass?sClass+' ':_s.swfCSS.swfDefault) + (extraClass?' '+extraClass:'');
_s.oMC.appendChild(oMovie);
if (_s.isIE) {
oEl = _s.oMC.appendChild(document.createElement('div'));
oEl.className = 'sm2-object-box';
oEl.innerHTML = movieHTML;
}
_appendSuccess = true;
_mobileFlash.check(true);
}
}
if (specialCase) {
_s._wD(specialCase);
}
_initMsg();
_s._wD('soundManager::createMovie(): Trying to load ' + smURL + (!this._overHTTP && _s.altURL?' (alternate URL)':''), 1);
};
_idCheck = this.getSoundById;
_wDS = function(o, errorLevel) {
if (!o) {
return '';
} else {
return _s._wD(_str(o), errorLevel);
}
};
if (_wl.indexOf('debug=alert') + 1 && _s.debugMode) {
_s._wD = function(sText) {alert(sText);};
}
_toggleDebug = function() {
var o = _id(_s.debugID),
oT = _id(_s.debugID + '-toggle');
if (!o) {
return false;
}
if (_debugOpen) {
oT.innerHTML = '+';
o.style.display = 'none';
} else {
oT.innerHTML = '-';
o.style.display = 'block';
}
_debugOpen = !_debugOpen;
};
_debugTS = function(sEventType, bSuccess, sMessage) {
if (typeof sm2Debugger !== 'undefined') {
try {
sm2Debugger.handleEvent(sEventType, bSuccess, sMessage);
} catch(e) {
}
}
};
_mergeObjects = function(oMain, oAdd) {
var o1 = {}, // clone o1
i, o2, o;
for (i in oMain) {
if (oMain.hasOwnProperty(i)) {
o1[i] = oMain[i];
}
}
o2 = (typeof oAdd === 'undefined'?_s.defaultOptions:oAdd);
for (o in o2) {
if (o2.hasOwnProperty(o) && typeof o1[o] === 'undefined') {
o1[o] = o2[o];
}
}
return o1;
};
_initMovie = function() {
if (_html5Only) {
_createMovie();
return false;
}
if (_s.o) {
return false; // may already exist
}
_s.o = _s.getMovie(_s.id); // (inline markup)
if (!_s.o) {
if (!_oRemoved) {
_createMovie(_s.id, _s.url);
} else {
if (!_s.isIE) {
_s.oMC.appendChild(_oRemoved);
} else {
_s.oMC.innerHTML = _oRemovedHTML;
}
_oRemoved = null;
_didAppend = true;
}
_s.o = _s.getMovie(_s.id);
}
if (_s.o) {
_s._wD('soundManager::initMovie(): Got '+_s.o.nodeName+' element ('+(_didAppend?'created via JS':'static HTML')+')');
_wDS('waitEI');
}
if (typeof _s.oninitmovie === 'function') {
setTimeout(_s.oninitmovie, 1);
}
};
_go = function(sURL) {
if (sURL) {
_s.url = sURL;
}
_initMovie();
};
_waitForEI = function() {
if (_waitingForEI) {
return false;
}
_waitingForEI = true;
if (_tryInitOnFocus && !_isFocused) {
_wDS('waitFocus');
return false;
}
var p;
if (!_didInit) {
p = _s.getMoviePercent();
_s._wD(_str('waitImpatient', (p === 100?' (SWF loaded)':(p > 0?' (SWF ' + p + '% loaded)':''))));
}
setTimeout(function() {
p = _s.getMoviePercent();
if (!_didInit) {
_s._wD(_sm + ': No Flash response within expected time.\nLikely causes: ' + (p === 0?'Loading ' + _s.movieURL + ' may have failed (and/or Flash ' + _fV + '+ not present?), ':'') + 'Flash blocked or JS-Flash security error.' + (_s.debugFlash?' ' + _str('checkSWF'):''), 2);
if (!this._overHTTP && p) {
_wDS('localFail', 2);
if (!_s.debugFlash) {
_wDS('tryDebug', 2);
}
}
if (p === 0) {
_s._wD(_str('swf404', _s.url));
}
_debugTS('flashtojs', false, ': Timed out' + this._overHTTP?' (Check flash security or flash blockers)':' (No plugin/missing SWF?)');
}
if (!_didInit && _okToDisable) {
if (p === null) {
if (_s.useFlashBlock || _s.flashLoadTimeout === 0) {
if (_s.useFlashBlock) {
_flashBlockHandler();
}
_wDS('waitForever');
} else {
_failSafely(true);
}
} else {
if (_s.flashLoadTimeout === 0) {
_wDS('waitForever');
} else {
_failSafely(true);
}
}
}
}, _s.flashLoadTimeout);
};
_getSWFCSS = function() {
var css = [];
if (_s.debugMode) {
css.push(_s.swfCSS.sm2Debug);
}
if (_s.debugFlash) {
css.push(_s.swfCSS.flashDebug);
}
if (_s.useHighPerformance) {
css.push(_s.swfCSS.highPerf);
}
return css.join(' ');
};
_flashBlockHandler = function() {
var name = 'soundManager::flashBlockHandler()', p = _s.getMoviePercent();
if (!_s.supported()) {
if (_needsFlash) {
_s.oMC.className = _getSWFCSS() + ' ' + _s.swfCSS.swfDefault + ' ' + (p === null?_s.swfCSS.swfTimedout:_s.swfCSS.swfError);
_s._wD(name+': '+_str('fbTimeout')+(p?' ('+_str('fbLoaded')+')':''));
}
_s.didFlashBlock = true;
_processOnReady(true); // fire onready(), complain lightly
if (_s.onerror instanceof Function) {
_s.onerror.apply(window);
}
} else {
if (_s.didFlashBlock) {
_s._wD(name+': Unblocked');
}
if (_s.oMC) {
_s.oMC.className = _getSWFCSS() + ' ' + _s.swfCSS.swfDefault + (' '+_s.swfCSS.swfUnblocked);
}
}
};
_handleFocus = function() {
if (_isFocused || !_tryInitOnFocus) {
return true;
}
_okToDisable = true;
_isFocused = true;
_s._wD('soundManager::handleFocus()');
if (_tryInitOnFocus) {
window.removeEventListener('mousemove', _handleFocus, false);
}
_waitingForEI = false;
setTimeout(_waitForEI, 500);
if (window.removeEventListener) {
window.removeEventListener('focus', _handleFocus, false);
} else if (window.detachEvent) {
window.detachEvent('onfocus', _handleFocus);
}
};
_initComplete = function(bNoDisable) {
if (_didInit) {
return false;
}
if (_html5Only) {
_s._wD('-- SoundManager 2: loaded --');
_didInit = true;
_processOnReady();
_initUserOnload();
return true;
}
var sClass = _s.oMC.className,
wasTimeout = (_s.useFlashBlock && _s.flashLoadTimeout && !_s.getMoviePercent());
if (!wasTimeout) {
_didInit = true;
}
_s._wD('-- SoundManager 2 ' + (_disabled?'failed to load':'loaded') + ' (' + (_disabled?'security/load error':'OK') + ') --', 1);
if (_disabled || bNoDisable) {
if (_s.useFlashBlock) {
_s.oMC.className = _getSWFCSS() + ' ' + (_s.getMoviePercent() === null?_s.swfCSS.swfTimedout:_s.swfCSS.swfError);
}
_processOnReady();
_debugTS('onload', false);
if (_s.onerror instanceof Function) {
_s.onerror.apply(window);
}
return false;
} else {
_debugTS('onload', true);
}
if (_s.waitForWindowLoad && !_windowLoaded) {
_wDS('waitOnload');
if (window.addEventListener) {
window.addEventListener('load', _initUserOnload, false);
} else if (window.attachEvent) {
window.attachEvent('onload', _initUserOnload);
}
return false;
} else {
if (_s.waitForWindowLoad && _windowLoaded) {
_wDS('docLoaded');
}
_initUserOnload();
}
};
_addOnReady = function(oMethod, oScope) {
_onready.push({
'method': oMethod,
'scope': (oScope || null),
'fired': false
});
};
_processOnReady = function(ignoreInit) {
if (!_didInit && !ignoreInit) {
return false;
}
var status = {
success: (ignoreInit?_s.supported():!_disabled)
},
queue = [], i, j,
canRetry = (!_s.useFlashBlock || (_s.useFlashBlock && !_s.supported()));
for (i = 0, j = _onready.length; i < j; i++) {
if (_onready[i].fired !== true) {
queue.push(_onready[i]);
}
}
if (queue.length) {
_s._wD(_sm + ': Firing ' + queue.length + ' onready() item' + (queue.length > 1?'s':''));
for (i = 0, j = queue.length; i < j; i++) {
if (queue[i].scope) {
queue[i].method.apply(queue[i].scope, [status]);
} else {
queue[i].method(status);
}
if (!canRetry) { // flashblock case doesn't count here
queue[i].fired = true;
}
}
}
};
_initUserOnload = function() {
window.setTimeout(function() {
if (_s.useFlashBlock) {
_flashBlockHandler();
}
_processOnReady();
_wDS('onload', 1);
_s.onload.apply(window);
_wDS('onloadOK', 1);
},1);
};
_featureCheck = function() {
var needsFlash, item,
isBadSafari = (!_wl.match(/usehtml5audio/i) && !_wl.match(/sm2\-ignorebadua/i) && _s.isSafari && _ua.match(/OS X 10_6_(3|4)/i) && _ua.match(/(531\.22\.7|533\.16|533\.17\.8)/i)), // Safari 4.0.5 (531.22.7), 5.0 (533.16), and 5.1 (533.17.8) have buggy/broken HTML5 audio on Snow Leopard. :/ Known Apple "radar" bug. https://bugs.webkit.org/show_bug.cgi?id=32159
isSpecial = (_ua.match(/iphone os (1|2|3_0|3_1)/i)?true:false); // iPhone <= 3.1 has broken HTML5 audio(), but firmware 3.2 (iPad) + iOS4 works.
if (isSpecial) {
_s.hasHTML5 = false; // has Audio(), but is broken; let it load links directly.
_html5Only = true; // ignore flash case, however
if (_s.oMC) {
_s.oMC.style.display = 'none';
}
return false;
}
if (_s.useHTML5Audio) {
if (!_s.html5 || !_s.html5.canPlayType) {
_s._wD('SoundManager: No HTML5 Audio() support detected.');
_s.hasHTML5 = false;
return true;
} else {
_s.hasHTML5 = true;
}
if (isBadSafari) {
_s._wD('SoundManager::Note: Buggy HTML5 Audio in this specific browser + OS, see https://bugs.webkit.org/show_bug.cgi?id=32159 - disabling HTML5',1);
_s.useHTML5Audio = false;
_s.hasHTML5 = false;
return true;
}
} else {
return true;
}
for (item in _s.audioFormats) {
if (_s.audioFormats.hasOwnProperty(item)) {
if (_s.audioFormats[item].required && !_s.html5.canPlayType(_s.audioFormats[item].type)) {
needsFlash = true;
}
}
}
if (_s.ignoreFlash) {
needsFlash = false;
}
_html5Only = (_s.useHTML5Audio && _s.hasHTML5 && !needsFlash);
return needsFlash;
};
_init = function() {
var item, tests = [];
_wDS('init');
if (_didInit) {
_wDS('didInit');
return false;
}
function _cleanup() {
if (window.removeEventListener) {
window.removeEventListener('load', _s.beginDelayedInit, false);
} else if (window.detachEvent) {
window.detachEvent('onload', _s.beginDelayedInit);
}
}
if (_s.hasHTML5) {
for (item in _s.audioFormats) {
if (_s.audioFormats.hasOwnProperty(item)) {
tests.push(item+': '+_s.html5[item]);
}
}
_s._wD('-- SoundManager 2: HTML5 support tests ('+_s.html5Test+'): '+tests.join(', ')+' --',1);
}
if (_html5Only) {
if (!_didInit) {
_cleanup();
_s.enabled = true;
_initComplete();
}
return true;
} else {
}
_initMovie();
try {
_wDS('flashJS');
_s.o._externalInterfaceTest(false); // attempt to talk to Flash
if (!_s.allowPolling) {
_wDS('noPolling', 1);
} else {
_setPolling(true, _s.useFastPolling?true:false);
}
if (!_s.debugMode) {
_s.o._disableDebug();
}
_s.enabled = true;
_debugTS('jstoflash', true);
} catch(e) {
_s._wD('js/flash exception: ' + e.toString());
_debugTS('jstoflash', false);
_failSafely(true); // don't disable, for reboot()
_initComplete();
return false;
}
_initComplete();
_cleanup();
};
_beginInit = function() {
if (_initPending) {
return false;
}
_createMovie();
_initMovie();
_initPending = true;
return true;
};
_dcLoaded = function() {
if (_didDCLoaded) {
return false;
}
_didDCLoaded = true;
_initDebug();
_testHTML5();
_s.html5.usingFlash = _featureCheck();
_needsFlash = _s.html5.usingFlash;
_didDCLoaded = true;
_go();
};
_startTimer = function(oSound) {
if (!oSound._hasTimer) {
oSound._hasTimer = true;
}
};
_stopTimer = function(oSound) {
if (oSound._hasTimer) {
oSound._hasTimer = false;
}
};
this._setSandboxType = function(sandboxType) {
var sb = _s.sandbox;
sb.type = sandboxType;
sb.description = sb.types[(typeof sb.types[sandboxType] !== 'undefined'?sandboxType:'unknown')];
_s._wD('Flash security sandbox type: ' + sb.type);
if (sb.type === 'localWithFile') {
sb.noRemote = true;
sb.noLocal = false;
_wDS('secNote', 2);
} else if (sb.type === 'localWithNetwork') {
sb.noRemote = false;
sb.noLocal = true;
} else if (sb.type === 'localTrusted') {
sb.noRemote = false;
sb.noLocal = false;
}
};
this._externalInterfaceOK = function(flashDate) {
if (_s.swfLoaded) {
return false;
}
var eiTime = new Date().getTime();
_s._wD('soundManager::externalInterfaceOK()' + (flashDate?' (~' + (eiTime - flashDate) + ' ms)':''));
_debugTS('swf', true);
_debugTS('flashtojs', true);
_s.swfLoaded = true;
_tryInitOnFocus = false;
if (_s.isIE) {
setTimeout(_init, 100);
} else {
_init();
}
};
this._onfullscreenchange = function(bFullScreen) {
_s._wD('onfullscreenchange(): ' + bFullScreen);
_s.isFullScreen = (bFullScreen === 1?true:false);
if (!_s.isFullScreen) {
try {
window.focus();
_s._wD('window.focus()');
} catch(e) {
}
}
};
SMSound = function(oOptions) {
var _t = this, _resetProperties, _add_html5_events, _stop_html5_timer, _start_html5_timer, _get_html5_duration, _a;
this.sID = oOptions.id;
this.url = oOptions.url;
this.options = _mergeObjects(oOptions);
this.instanceOptions = this.options; // per-play-instance-specific options
this._iO = this.instanceOptions; // short alias
this.pan = this.options.pan;
this.volume = this.options.volume;
this._lastURL = null;
this.isHTML5 = false;
this.id3 = {
};
this._debug = function() {
if (_s.debugMode) {
var stuff = null, msg = [], sF, sfBracket, maxLength = 64;
for (stuff in _t.options) {
if (_t.options[stuff] !== null) {
if (_t.options[stuff] instanceof Function) {
sF = _t.options[stuff].toString();
sF = sF.replace(/\s\s+/g, ' '); // normalize spaces
sfBracket = sF.indexOf('{');
msg.push(' ' + stuff + ': {' + sF.substr(sfBracket + 1, (Math.min(Math.max(sF.indexOf('\n') - 1, maxLength), maxLength))).replace(/\n/g, '') + '... }');
} else {
msg.push(' ' + stuff + ': ' + _t.options[stuff]);
}
}
}
_s._wD('SMSound() merged options: {\n' + msg.join(', \n') + '\n}');
}
};
this._debug();
this.load = function(oOptions) {
var oS = null;
if (typeof oOptions !== 'undefined') {
_t._iO = _mergeObjects(oOptions);
_t.instanceOptions = _t._iO;
} else {
oOptions = _t.options;
_t._iO = oOptions;
_t.instanceOptions = _t._iO;
if (_t._lastURL && _t._lastURL !== _t.url) {
_wDS('manURL');
_t._iO.url = _t.url;
_t.url = null;
}
}
_s._wD('soundManager.load(): ' + _t._iO.url, 1);
if (_t._iO.url === _t.url && _t.readyState !== 0 && _t.readyState !== 2) {
_wDS('onURL', 1);
return _t;
}
_t._lastURL = _t.url;
_t.loaded = false;
_t.readyState = 1;
_t.playState = 0; // (oOptions.autoPlay?1:0); // if autoPlay, assume "playing" is true (no way to detect when it actually starts in Flash unless onPlay is watched?)
if (_html5OK(_t._iO)) {
_s._wD('HTML 5 load: '+_t._iO.url);
oS = _t._setup_html5(_t._iO);
oS.load();
if (_t._iO.autoPlay) {
_t.play();
}
} else {
try {
_t.isHTML5 = false;
_t._iO = _loopFix(_t._iO);
if (_fV === 8) {
_s.o._load(_t.sID, _t._iO.url, _t._iO.stream, _t._iO.autoPlay, (_t._iO.whileloading?1:0), _t._iO.loops||1);
} else {
_s.o._load(_t.sID, _t._iO.url, _t._iO.stream?true:false, _t._iO.autoPlay?true:false, _t._iO.loops||1); // ,(_tO.whileloading?true:false)
if (_t._iO.isMovieStar && _t._iO.autoLoad && !_t._iO.autoPlay) {
_t.pause();
}
}
} catch(e) {
_wDS('smError', 2);
_debugTS('onload', false);
_s.onerror();
_s.disable();
}
}
return _t;
};
this.unload = function() {
if (_t.readyState !== 0) {
_s._wD('SMSound.unload(): "' + _t.sID + '"');
if (_t.readyState !== 2) { // reset if not error
_t.setPosition(0, true); // reset current sound positioning
}
if (!_t.isHTML5) {
if (_fV === 8) {
_s.o._unload(_t.sID, _s.nullURL);
} else {
_t.setAutoPlay(false); // ?
_s.o._unload(_t.sID);
}
} else {
_stop_html5_timer();
if (_a) {
_a.pause();
_a.src = _s.nullURL; // needed? does nulling object work? any better way to cancel/unload/abort?
_a.load();
_t._audio = null;
_a = null;
}
}
_resetProperties();
}
return _t;
};
this.destruct = function() {
_s._wD('SMSound.destruct(): "' + _t.sID + '"');
if (!_t.isHTML5) {
_t._iO.onfailure = null;
_s.o._destroySound(_t.sID);
} else {
_stop_html5_timer();
if (_a) {
_a.pause();
_a.src = 'about:blank';
_a.load();
_t._audio = null;
_a = null;
}
}
_s.destroySound(_t.sID, true); // ensure deletion from controller
};
this.play = function(oOptions) {
var fN = 'SMSound.play(): ', allowMulti;
if (!oOptions) {
oOptions = {};
}
_t._iO = _mergeObjects(oOptions, _t._iO);
_t._iO = _mergeObjects(_t._iO, _t.options);
_t.instanceOptions = _t._iO;
if (_t._iO.serverURL) {
if (!_t.connected) {
_s._wD(fN+' Netstream not connected yet - setting autoPlay');
_t.setAutoPlay(true);
return _t;
}
}
if (_html5OK(_t._iO)) {
_t._setup_html5(_t._iO);
_start_html5_timer();
}
if (_t.playState === 1) {
allowMulti = _t._iO.multiShot;
if (!allowMulti) {
_s._wD(fN + '"' + _t.sID + '" already playing (one-shot)', 1);
return _t;
} else {
_s._wD(fN + '"' + _t.sID + '" already playing (multi-shot)', 1);
if (_t.isHTML5) {
_t.setPosition(_t._iO.position);
}
}
}
if (!_t.loaded) {
if (_t.readyState === 0) {
_s._wD(fN + 'Attempting to load "' + _t.sID + '"', 1);
if (!_t.isHTML5) {
if (!_t._iO.serverURL) {
_t._iO.autoPlay = true;
_t.load(_t._iO);
}
} else {
_t.load(_t._iO);
_t.readyState = 1;
}
} else if (_t.readyState === 2) {
_s._wD(fN + 'Could not load "' + _t.sID + '" - exiting', 2);
return _t;
} else {
_s._wD(fN + '"' + _t.sID + '" is loading - attempting to play..', 1);
}
} else {
_s._wD(fN + '"' + _t.sID + '"');
}
if (_t.paused && _t.position !== null) { // https://gist.github.com/37b17df75cc4d7a90bf6
_s._wD(fN + '"' + _t.sID + '" is resuming from paused state',1);
_t.resume();
} else {
_s._wD(fN+'"'+ _t.sID+'" is starting to play');
_t.playState = 1;
_t.paused = false; // https://gist.github.com/859638f341b25669b587
if (!_t.instanceCount || (_fV > 8 && !_t.isHTML5)) {
_t.instanceCount++;
}
_t.position = (typeof _t._iO.position !== 'undefined' && !isNaN(_t._iO.position)?_t._iO.position:0);
_t._iO = _loopFix(_t._iO);
if (_t._iO.onplay) {
_t._iO.onplay.apply(_t);
}
_t.setVolume(_t._iO.volume, true); // restrict volume to instance options only
_t.setPan(_t._iO.pan, true);
if (!_t.isHTML5) {
if (_fV === 9 && _t._iO.serverURL) {
_t.setAutoPlay(true);
}
_s.o._start(_t.sID, _t._iO.loops || 1, (_fV === 9?_t.position:_t.position / 1000));
} else {
_start_html5_timer();
_t._setup_html5().play();
}
}
return _t;
};
this.start = this.play; // just for convenience
this.stop = function(bAll) {
if (_t.playState === 1) {
_t._onbufferchange(0);
_t.resetOnPosition(0);
if (!_t.isHTML5) {
_t.playState = 0;
}
_t.paused = false;
if (_t._iO.onstop) {
_t._iO.onstop.apply(_t);
}
if (!_t.isHTML5) {
_s.o._stop(_t.sID, bAll);
if (_t._iO.serverURL) {
_t.unload();
}
} else {
if (_a) {
_t.setPosition(0); // act like Flash, though
_a.pause(); // html5 has no stop()
_t.playState = 0;
_t._onTimer(); // and update UI
_stop_html5_timer();
_t.unload();
}
}
_t.instanceCount = 0;
_t._iO = {};
}
return _t;
};
this.setAutoPlay = function(autoPlay) {
_t._iO.autoPlay = autoPlay;
_s.o._setAutoPlay(_t.sID, autoPlay);
if (autoPlay) {
if (!_t.instanceCount) {
_t.instanceCount++;
}
}
};
this.setPosition = function(nMsecOffset, bNoDebug) {
if (typeof nMsecOffset === 'undefined') {
nMsecOffset = 0;
}
var offset = (_t.isHTML5 ? Math.max(nMsecOffset,0) : Math.min(_t.duration, Math.max(nMsecOffset, 0))); // position >= 0 and <= current available (loaded) duration
_t._iO.position = offset;
_t.resetOnPosition(_t._iO.position);
if (!_t.isHTML5) {
_s.o._setPosition(_t.sID, (_fV === 9?_t._iO.position:_t._iO.position / 1000), (_t.paused || !_t.playState)); // if paused or not playing, will not resume (by playing)
} else if (_a) {
_s._wD('setPosition(): setting position to '+(_t._iO.position / 1000));
if (_t.playState) {
try {
_a.currentTime = _t._iO.position / 1000;
} catch(e) {
_s._wD('setPosition('+_t._iO.position+'): WARN: Caught exception: '+e.message, 2);
}
} else {
_s._wD('HTML 5 warning: cannot set position while playState == 0 (not playing)',2);
}
if (_t.paused) { // if paused, refresh UI right away
_t._onTimer(true); // force update
if (_t._iO.useMovieStar) {
_t.resume();
}
}
}
return _t;
};
this.pause = function(bCallFlash) {
if (_t.paused || (_t.playState === 0 && _t.readyState !== 1)) { // TODO: Verify vs. old
return _t;
}
_s._wD('SMSound.pause()');
_t.paused = true;
if (!_t.isHTML5) {
if (bCallFlash || bCallFlash === undefined) {
_s.o._pause(_t.sID);
}
} else {
_t._setup_html5().pause();
_stop_html5_timer();
}
if (_t._iO.onpause) {
_t._iO.onpause.apply(_t);
}
return _t;
};
this.resume = function() {
if (!_t.paused || _t.playState === 0) {
return _t;
}
_s._wD('SMSound.resume()');
_t.paused = false;
_t.playState = 1; // TODO: verify that this is needed.
if (!_t.isHTML5) {
_s.o._pause(_t.sID); // flash method is toggle-based (pause/resume)
} else {
_t._setup_html5().play();
_start_html5_timer();
}
if (_t._iO.onresume) {
_t._iO.onresume.apply(_t);
}
return _t;
};
this.togglePause = function() {
_s._wD('SMSound.togglePause()');
if (_t.playState === 0) {
_t.play({
position: (_fV === 9 && !_t.isHTML5 ? _t.position:_t.position / 1000)
});
return _t;
}
if (_t.paused) {
_t.resume();
} else {
_t.pause();
}
return _t;
};
this.setPan = function(nPan, bInstanceOnly) {
if (typeof nPan === 'undefined') {
nPan = 0;
}
if (typeof bInstanceOnly === 'undefined') {
bInstanceOnly = false;
}
if (!_t.isHTML5) {
_s.o._setPan(_t.sID, nPan);
} else {
}
_t._iO.pan = nPan;
if (!bInstanceOnly) {
_t.pan = nPan;
}
return _t;
};
this.setVolume = function(nVol, bInstanceOnly) {
if (typeof nVol === 'undefined') {
nVol = 100;
}
if (typeof bInstanceOnly === 'undefined') {
bInstanceOnly = false;
}
if (!_t.isHTML5) {
_s.o._setVolume(_t.sID, (_s.muted && !_t.muted) || _t.muted?0:nVol);
} else if (_a) {
_a.volume = nVol/100;
}
_t._iO.volume = nVol;
if (!bInstanceOnly) {
_t.volume = nVol;
}
return _t;
};
this.mute = function() {
_t.muted = true;
if (!_t.isHTML5) {
_s.o._setVolume(_t.sID, 0);
} else if (_a) {
_a.muted = true;
}
return _t;
};
this.unmute = function() {
_t.muted = false;
var hasIO = typeof _t._iO.volume !== 'undefined';
if (!_t.isHTML5) {
_s.o._setVolume(_t.sID, hasIO?_t._iO.volume:_t.options.volume);
} else if (_a) {
_a.muted = false;
}
return _t;
};
this.toggleMute = function() {
return (_t.muted?_t.unmute():_t.mute());
};
this.onposition = function(nPosition, oMethod, oScope) {
_t._onPositionItems.push({
position: nPosition,
method: oMethod,
scope: (typeof oScope !== 'undefined'?oScope:_t),
fired: false
});
return _t;
};
this.processOnPosition = function() {
var i, item, j = _t._onPositionItems.length;
if (!j || !_t.playState || _t._onPositionFired >= j) {
return false;
}
for (i=j; i--;) {
item = _t._onPositionItems[i];
if (!item.fired && _t.position >= item.position) {
item.method.apply(item.scope,[item.position]);
item.fired = true;
_s._onPositionFired++;
}
}
};
this.resetOnPosition = function(nPosition) {
var i, item, j = _t._onPositionItems.length;
if (!j) {
return false;
}
for (i=j; i--;) {
item = _t._onPositionItems[i];
if (item.fired && nPosition <= item.position) {
item.fired = false;
_s._onPositionFired--;
}
}
};
this._onTimer = function(bForce) {
if (_t._hasTimer || bForce) {
var time;
if (_a && (bForce || ((_t.playState > 0 || _t.readyState === 1) && !_t.paused))) { // TODO: May not need to track readyState (1 = loading)
_t.duration = _get_html5_duration();
_t.durationEstimate = _t.duration;
time = _a.currentTime?_a.currentTime*1000:0;
_t._whileplaying(time,{},{},{},{});
return true;
} else {
_s._wD('_onTimer: Warn for "'+_t.sID+'": '+(!_a?'Could not find element. ':'')+(_t.playState === 0?'playState bad, 0?':'playState = '+_t.playState+', OK'));
return false;
}
}
};
_get_html5_duration = function() {
var d = (_a?_a.duration*1000:undefined);
if (d) {
return (!isNaN(d)?d:null);
}
};
_start_html5_timer = function() {
if (_t.isHTML5) {
_startTimer(_t);
}
};
_stop_html5_timer = function() {
if (_t.isHTML5) {
_stopTimer(_t);
}
};
_resetProperties = function(bLoaded) {
_t._onPositionItems = [];
_t._onPositionFired = 0;
_t._hasTimer = null;
_t._added_events = null;
_t._audio = null;
_a = null;
_t.bytesLoaded = null;
_t.bytesTotal = null;
_t.position = null;
_t.duration = null;
_t.durationEstimate = null;
_t.failures = 0;
_t.loaded = false;
_t.playState = 0;
_t.paused = false;
_t.readyState = 0; // 0 = uninitialised, 1 = loading, 2 = failed/error, 3 = loaded/success
_t.muted = false;
_t.didBeforeFinish = false;
_t.didJustBeforeFinish = false;
_t.isBuffering = false;
_t.instanceOptions = {};
_t.instanceCount = 0;
_t.peakData = {
left: 0,
right: 0
};
_t.waveformData = {
left: [],
right: []
};
_t.eqData = [];
_t.eqData.left = [];
_t.eqData.right = [];
};
_resetProperties();
this._setup_html5 = function(oOptions) {
var _iO = _mergeObjects(_t._iO, oOptions);
if (_a) {
if (_t.url !== _iO.url) {
_s._wD('setting new URL on existing object: '+_iO.url);
_a.src = _iO.url;
}
} else {
_s._wD('creating HTML 5 audio element with URL: '+_iO.url);
_t._audio = new Audio(_iO.url);
_a = _t._audio;
_t.isHTML5 = true;
_add_html5_events();
}
_a.loop = (_iO.loops>1?'loop':'');
return _t._audio;
};
_add_html5_events = function() {
if (_t._added_events) {
return false;
}
_t._added_events = true;
function _add(oEvt, oFn, bBubble) {
return (_a ? _a.addEventListener(oEvt, oFn, bBubble||false) : null);
}
_add('load', function(e) {
_s._wD('HTML5::load: '+_t.sID);
if (_a) {
_t._onbufferchange(0);
_t._whileloading(_t.bytesTotal, _t.bytesTotal, _get_html5_duration());
_t._onload(1);
}
}, false);
_add('canplay', function(e) {
_s._wD('HTML5::canplay: '+_t.sID);
_t._onbufferchange(0);
},false);
_add('waiting', function(e) {
_s._wD('HTML5::waiting: '+_t.sID);
_t._onbufferchange(1);
},false);
_add('progress', function(e) { // not supported everywhere yet..
_s._wD('HTML5::progress: '+_t.sID+': loaded/total: '+(e.loaded||0)+','+(e.total||1));
if (!_t.loaded && _a) {
_t._onbufferchange(0); // if progress, likely not buffering
_t._whileloading(e.loaded||0, e.total||1, _get_html5_duration());
}
}, false);
_add('error', function(e) {
if (_a) {
_s._wD('HTML5::error: '+_a.error.code);
_t._onload(0);
}
}, false);
_add('loadstart', function(e) {
_s._wD('HTML5::loadstart: '+_t.sID);
_t._onbufferchange(1);
}, false);
_add('play', function(e) {
_s._wD('HTML5::play: '+_t.sID);
_t._onbufferchange(0);
}, false);
_add('playing', function(e) {
_s._wD('HTML5::playing: '+_t.sID);
_t._onbufferchange(0);
}, false);
_add('timeupdate', function(e) {
_t._onTimer();
}, false);
setTimeout(function(){
if (_t && _a) {
_add('ended',function(e) {
_s._wD('HTML5::ended: '+_t.sID);
_t._onfinish();
}, false);
}
}, 250);
};
this._whileloading = function(nBytesLoaded, nBytesTotal, nDuration, nBufferLength) {
_t.bytesLoaded = nBytesLoaded;
_t.bytesTotal = nBytesTotal;
_t.duration = Math.floor(nDuration);
if (!_t._iO.isMovieStar) {
_t.durationEstimate = parseInt((_t.bytesTotal / _t.bytesLoaded) * _t.duration, 10);
if (_t.durationEstimate === undefined) {
_t.durationEstimate = _t.duration;
}
_t.bufferLength = nBufferLength;
if ((_t._iO.isMovieStar || _t.readyState !== 3) && _t._iO.whileloading) {
_t._iO.whileloading.apply(_t);
}
} else {
_t.durationEstimate = _t.duration;
if (_t.readyState !== 3 && _t._iO.whileloading) {
_t._iO.whileloading.apply(_t);
}
}
};
this._onid3 = function(oID3PropNames, oID3Data) {
_s._wD('SMSound._onid3(): "' + this.sID + '" ID3 data received.');
var oData = [], i, j;
for (i = 0, j = oID3PropNames.length; i < j; i++) {
oData[oID3PropNames[i]] = oID3Data[i];
}
_t.id3 = _mergeObjects(_t.id3, oData);
if (_t._iO.onid3) {
_t._iO.onid3.apply(_t);
}
};
this._whileplaying = function(nPosition, oPeakData, oWaveformDataLeft, oWaveformDataRight, oEQData) {
if (isNaN(nPosition) || nPosition === null) {
return false; // Flash may return NaN at times
}
if (_t.playState === 0 && nPosition > 0) {
nPosition = 0;
}
_t.position = nPosition;
_t.processOnPosition();
if (_fV > 8 && !_t.isHTML5) {
if (_t._iO.usePeakData && typeof oPeakData !== 'undefined' && oPeakData) {
_t.peakData = {
left: oPeakData.leftPeak,
right: oPeakData.rightPeak
};
}
if (_t._iO.useWaveformData && typeof oWaveformDataLeft !== 'undefined' && oWaveformDataLeft) {
_t.waveformData = {
left: oWaveformDataLeft.split(','),
right: oWaveformDataRight.split(',')
};
}
if (_t._iO.useEQData) {
if (typeof oEQData !== 'undefined' && oEQData && oEQData.leftEQ) {
var eqLeft = oEQData.leftEQ.split(',');
_t.eqData = eqLeft;
_t.eqData.left = eqLeft;
if (typeof oEQData.rightEQ !== 'undefined' && oEQData.rightEQ) {
_t.eqData.right = oEQData.rightEQ.split(',');
}
}
}
}
if (_t.playState === 1) {
if (!_t.isHTML5 && _t.isBuffering) {
_t._onbufferchange(0);
}
if (_t._iO.whileplaying) {
_t._iO.whileplaying.apply(_t); // flash may call after actual finish
}
if ((_t.loaded || (!_t.loaded && _t._iO.isMovieStar)) && _t._iO.onbeforefinish && _t._iO.onbeforefinishtime && !_t.didBeforeFinish && _t.duration - _t.position <= _t._iO.onbeforefinishtime) {
_s._wD('duration-position &lt;= onbeforefinishtime: ' + _t.duration + ' - ' + _t.position + ' &lt= ' + _t._iO.onbeforefinishtime + ' (' + (_t.duration - _t.position) + ')');
_t._onbeforefinish();
}
}
};
this._onconnect = function(bSuccess) {
var fN = 'SMSound._onconnect(): ';
bSuccess = (bSuccess === 1);
_s._wD(fN+'"'+_t.sID+'"'+(bSuccess?' connected.':' failed to connect? - '+_t.url), (bSuccess?1:2));
_t.connected = bSuccess;
if (bSuccess) {
_t.failures = 0;
if (_t._iO.autoLoad || _t._iO.autoPlay) {
_t.load(_t._iO);
}
if (_t._iO.autoPlay) {
_t.play();
}
if (_t._iO.onconnect) {
_t._iO.onconnect.apply(_t,[bSuccess]);
}
}
};
this._onload = function(nSuccess) {
var fN = 'SMSound._onload(): ';
nSuccess = (nSuccess === 1?true:false);
_s._wD(fN + '"' + _t.sID + '"' + (nSuccess?' loaded.':' failed to load? - ' + _t.url), (nSuccess?1:2));
if (!nSuccess && !_t.isHTML5) {
if (_s.sandbox.noRemote === true) {
_s._wD(fN + _str('noNet'), 1);
}
if (_s.sandbox.noLocal === true) {
_s._wD(fN + _str('noLocal'), 1);
}
}
_t.loaded = nSuccess;
_t.readyState = nSuccess?3:2;
if (_t._iO.onload) {
_t._iO.onload.apply(_t);
}
};
this._onfailure = function(msg) {
_t.failures++;
_s._wD('SMSound._onfailure(): "'+_t.sID+'" count '+_t.failures);
if (_t._iO.onfailure && _t.failures === 1) {
_t._iO.onfailure(_t, msg);
} else {
_s._wD('SMSound._onfailure(): ignoring');
}
};
this._onbeforefinish = function() {
if (!_t.didBeforeFinish) {
_t.didBeforeFinish = true;
if (_t._iO.onbeforefinish) {
_s._wD('SMSound._onbeforefinish(): "' + _t.sID + '"');
_t._iO.onbeforefinish.apply(_t);
}
}
};
this._onjustbeforefinish = function(msOffset) {
if (!_t.didJustBeforeFinish) {
_t.didJustBeforeFinish = true;
if (_t._iO.onjustbeforefinish) {
_s._wD('SMSound._onjustbeforefinish(): "' + _t.sID + '"');
_t._iO.onjustbeforefinish.apply(_t);
}
}
};
this._onfinish = function() {
_t._onbufferchange(0); // ensure buffer has ended
_t.resetOnPosition(0);
if (_t._iO.onbeforefinishcomplete) {
_t._iO.onbeforefinishcomplete.apply(_t);
}
_t.didBeforeFinish = false;
_t.didJustBeforeFinish = false;
if (_t.instanceCount) {
_t.instanceCount--;
if (!_t.instanceCount) {
_t.playState = 0;
_t.paused = false;
_t.instanceCount = 0;
_t.instanceOptions = {};
_stop_html5_timer();
}
if (!_t.instanceCount || _t._iO.multiShotEvents) {
if (_t._iO.onfinish) {
_s._wD('SMSound._onfinish(): "' + _t.sID + '"');
_t._iO.onfinish.apply(_t);
} else if (_t.isHTML5) {
_t.unload();
}
}
}
};
this._onmetadata = function(oMetaData) {
var fN = 'SMSound.onmetadata()';
_s._wD(fN);
if (!oMetaData.width && !oMetaData.height) {
_wDS('noWH');
oMetaData.width = 320;
oMetaData.height = 240;
}
_t.metadata = oMetaData; // potentially-large object from flash
_t.width = oMetaData.width;
_t.height = oMetaData.height;
if (_t._iO.onmetadata) {
_s._wD(fN + ': "' + _t.sID + '"');
_t._iO.onmetadata.apply(_t);
}
_s._wD(fN + ' complete');
};
this._onbufferchange = function(nIsBuffering) {
var fN = 'SMSound._onbufferchange()';
if (_t.playState === 0) {
return false;
}
if ((nIsBuffering && _t.isBuffering) || (!nIsBuffering && !_t.isBuffering)) {
return false;
}
_t.isBuffering = (nIsBuffering === 1?true:false);
if (_t._iO.onbufferchange) {
_s._wD(fN + ': ' + nIsBuffering);
_t._iO.onbufferchange.apply(_t);
}
};
this._ondataerror = function(sError) {
if (_t.playState > 0) { // hack: called at start, and end from flash at/after onfinish().
_s._wD('SMSound._ondataerror(): ' + sError);
if (_t._iO.ondataerror) {
_t._iO.ondataerror.apply(_t);
}
}
};
}; // SMSound()
if (!_s.hasHTML5 || _needsFlash) {
if (window.addEventListener) {
window.addEventListener('focus', _handleFocus, false);
window.addEventListener('load', _s.beginDelayedInit, false);
window.addEventListener('unload', _s.destruct, false);
if (_tryInitOnFocus) {
window.addEventListener('mousemove', _handleFocus, false); // massive Safari focus hack
}
} else if (window.attachEvent) {
window.attachEvent('onfocus', _handleFocus);
window.attachEvent('onload', _s.beginDelayedInit);
window.attachEvent('unload', _s.destruct);
} else {
_debugTS('onload', false);
soundManager.onerror();
soundManager.disable();
}
}
_dcIE = function() {
if (document.readyState === 'complete') {
_dcLoaded();
document.detachEvent('onreadystatechange', _dcIE);
}
};
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', _dcLoaded, false);
} else if (document.attachEvent) {
document.attachEvent('onreadystatechange', _dcIE);
}
if (document.readyState === 'complete') {
setTimeout(_dcLoaded,100);
}
} // SoundManager()
if (typeof SM2_DEFER === 'undefined' || !SM2_DEFER) {
soundManager = new SoundManager();
}
window.SoundManager = SoundManager; // SoundManager constructor
window.soundManager = soundManager; // public instance: API, Flash callbacks etc.
}(window)); // invocation closure
function InlinePlayer() {
var self = this;
var pl = this;
var sm = soundManager; // soundManager instance
this.playableClass = 'inline-playable'; // CSS class for forcing a link to be playable (eg. doesn't have .MP3 in it)
this.excludeClass = 'inline-exclude'; // CSS class for ignoring MP3 links
this.links = [];
this.sounds = [];
this.soundsByURL = [];
this.indexByURL = [];
this.lastSound = null;
this.soundCount = 0;
var isIE = (navigator.userAgent.match(/msie/i));
this.config = {
playNext: false, // stop after one sound, or play through list until end
autoPlay: false  // start playing the first sound right away
}
this.css = {
sDefault: 'sm2_link', // default state
sLoading: 'sm2_loading',
sPlaying: 'sm2_playing',
sPaused: 'sm2_paused'
}
this.addEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.addEventListener(evtName,evtHandler,false):o.attachEvent('on'+evtName,evtHandler);
}
this.removeEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.removeEventListener(evtName,evtHandler,false):o.detachEvent('on'+evtName,evtHandler);
}
this.classContains = function(o,cStr) {
return (typeof(o.className)!='undefined'?o.className.match(new RegExp('(\\s|^)'+cStr+'(\\s|$)')):false);
}
this.addClass = function(o,cStr) {
if (!o || !cStr || self.classContains(o,cStr)) return false;
o.className = (o.className?o.className+' ':'')+cStr;
}
this.removeClass = function(o,cStr) {
if (!o || !cStr || !self.classContains(o,cStr)) return false;
o.className = o.className.replace(new RegExp('( '+cStr+')|('+cStr+')','g'),'');
}
this.getSoundByURL = function(sURL) {
return (typeof self.soundsByURL[sURL] != 'undefined'?self.soundsByURL[sURL]:null);
}
this.isChildOfNode = function(o,sNodeName) {
if (!o || !o.parentNode) {
return false;
}
sNodeName = sNodeName.toLowerCase();
do {
o = o.parentNode;
} while (o && o.parentNode && o.nodeName.toLowerCase() != sNodeName);
return (o.nodeName.toLowerCase() == sNodeName?o:null);
}
this.events = {
play: function() {
pl.removeClass(this._data.oLink,this._data.className);
this._data.className = pl.css.sPlaying;
pl.addClass(this._data.oLink,this._data.className);
},
stop: function() {
pl.removeClass(this._data.oLink,this._data.className);
this._data.className = '';
},
pause: function() {
pl.removeClass(this._data.oLink,this._data.className);
this._data.className = pl.css.sPaused;
pl.addClass(this._data.oLink,this._data.className);
},
resume: function() {
pl.removeClass(this._data.oLink,this._data.className);
this._data.className = pl.css.sPlaying;
pl.addClass(this._data.oLink,this._data.className);
},
finish: function() {
pl.removeClass(this._data.oLink,this._data.className);
this._data.className = '';
if (pl.config.playNext) {
var nextLink = (pl.indexByURL[this._data.oLink.href]+1);
if (nextLink<pl.links.length) {
pl.handleClick({'target':pl.links[nextLink]});
}
}
}
}
this.stopEvent = function(e) {
if (typeof e != 'undefined' && typeof e.preventDefault != 'undefined') {
e.preventDefault();
} else if (typeof event != 'undefined' && typeof event.returnValue != 'undefined') {
event.returnValue = false;
}
return false;
}
this.getTheDamnLink = (isIE)?function(e) {
return (e && e.target?e.target:window.event.srcElement);
}:function(e) {
return e.target;
}
this.handleClick = function(e) {
if (typeof e.button != 'undefined' && e.button>1) {
return true;
}
var o = self.getTheDamnLink(e);
if (o.nodeName.toLowerCase() != 'a') {
o = self.isChildOfNode(o,'a');
if (!o) return true;
}
var sURL = o.getAttribute('href');
if (!o.href || (!sm.canPlayLink(o) && !self.classContains(o,self.playableClass)) || self.classContains(o,self.excludeClass)) {
return true; // pass-thru for non-MP3/non-links
}
var soundURL = (o.href);
var thisSound = self.getSoundByURL(soundURL);
if (thisSound) {
if (thisSound == self.lastSound) {
thisSound.togglePause();
} else {
thisSound.togglePause(); // start playing current
sm._writeDebug('sound different than last sound: '+self.lastSound.sID);
if (self.lastSound) self.stopSound(self.lastSound);
}
} else {
thisSound = sm.createSound({
id:'inlineMP3Sound'+(self.soundCount++),
url:soundURL,
onplay:self.events.play,
onstop:self.events.stop,
onpause:self.events.pause,
onresume:self.events.resume,
onfinish:self.events.finish
});
thisSound._data = {
oLink: o, // DOM node for reference within SM2 object event handlers
className: self.css.sPlaying
};
self.soundsByURL[soundURL] = thisSound;
self.sounds.push(thisSound);
if (self.lastSound) self.stopSound(self.lastSound);
thisSound.play();
}
self.lastSound = thisSound; // reference for next call
if (typeof e != 'undefined' && typeof e.preventDefault != 'undefined') {
e.preventDefault();
} else {
event.returnValue = false;
}
return false;
}
this.stopSound = function(oSound) {
soundManager.stop(oSound.sID);
soundManager.unload(oSound.sID);
}
this.init = function() {
sm._writeDebug('inlinePlayer.init()');
var oLinks = document.getElementsByTagName('a');
var foundItems = 0;
for (var i=0, j=oLinks.length; i<j; i++) {
if ((sm.canPlayLink(oLinks[i]) || self.classContains(oLinks[i],self.playableClass)) && !self.classContains(oLinks[i],self.excludeClass)) {
self.addClass(oLinks[i],self.css.sDefault); // add default CSS decoration
self.links[foundItems] = (oLinks[i]);
self.indexByURL[oLinks[i].href] = foundItems; // hack for indexing
foundItems++;
}
}
if (foundItems>0) {
self.addEventHandler(document,'click',self.handleClick);
if (self.config.autoPlay) {
self.handleClick({target:self.links[0],preventDefault:function(){}});
}
}
sm._writeDebug('inlinePlayer.init(): Found '+foundItems+' relevant items.');
}
this.init();
}
var inlinePlayer = null;
soundManager.debugMode = false; // disable or enable debug output
soundManager.useFlashBlock = false;
soundManager.url = '/extension/okapidesigns/design/okapidesign/flashs/'; // path to directory containing SM2 SWF
soundManager.flashVersion = 9;
soundManager.useMovieStar = true;
soundManager.onready(function() {
if (soundManager.supported()) {
inlinePlayer = new InlinePlayer();
}
});

