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


if (typeof wbk == "undefined")
{
    /**
     * The SKYPE global namespace object
     * @class SKYPE
     * @static
     */
    var wbk = {};
}

/**
 *
 * @method namespace
 * @static
 * @param  {String*} arguments 1-n namespaces to create 
 * @return {Object}  A reference to the last namespace object created
 */
wbk.namespace = function()
{
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; ++i)
    {
        d=a[i].split(".");
        o=wbk;
        
        for (j=(d[0] == "wbk") ? 1 : 0; j<d.length; ++j)
        {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }
    return o;
};

/**
 * Uses console.log to output a log message, if the console object is available.
 *
 * @method log
 * @static
 * @param  {String}  msg  The message to log.
 * @param  {String}  cat  The log category for the message.  Default
 *                        categories are "info", "warn", "error", time".
 *                        Custom categories can be used as well. (opt)
 * @param  {String}  src  The source of the the message (opt)
 * @return {Boolean}      True if the log operation was successful.
 */
wbk.__log_enabled = null;
wbk.log = function(msg, cat, src)
{
    if (wbk.__log_enabled === null)
    {
        wbk.__log_enabled = (
            location.host.indexOf(".test") > -1
            || document.cookie.indexOf("debug") > -1
            || location.search.indexOf("debug") > -1
        );
        
        if (!wbk.__log_enabled) return;
        
        wbk.__log_type = null;
        if (typeof YAHOO != "undefined" && YAHOO.widget && YAHOO.widget.Logger && YAHOO.widget.Logger.log)
            wbk.__log_type = "yui";
        else if (wbk.util.Browser.isGecko && typeof console != "undefined" && typeof console.log != "undefined")
            wbk.__log_type = "firebug";
        else if (wbk.util.Browser.isSafari && typeof window.console != "undefined" && typeof window.console.log != "undefined")
            wbk.__log_type = "webkit";
        else if (wbk.util.Browser.isOpera && typeof opera == "object" && typeof opera.postError != "undefined")
            wbk.__log_type = "opera";
        else if (typeof console != "undefined" && (typeof console.log == "function" || typeof console.log == "object"))
            wbk.__log_type = "native";
    }
    if (!wbk.__log_enabled) return;
    
    switch (wbk.__log_type)
    {
        // YUI logger
        case "yui":
            return YAHOO.widget.Logger.log(msg, cat, src);
            break;
        
        // Firefox Firebug
        case "firebug":
            if (cat && (typeof console[cat] != "undefined"))
                console[cat](msg);
            else
                console.log((cat ? "["+cat.toUpperCase()+"] " : "") + msg);
            break;
            
        // Safari/WebKit JS console
        case "webkit":
            window.console.log((cat ? "["+cat.toUpperCase()+"] " : "") + msg);
            break;
        
        // Opera error console
        case "opera":
            opera.postError((cat ? "["+cat.toUpperCase()+"] " : "") + msg);
            break;

        case "native":
            console.log((cat ? "["+cat.toUpperCase()+"] " : "") + msg);
    }
};

/**
 * Registers a module with the SKYPE object
 * @method register
 * @static
 * @param {String}   name    the name of the module (event, slider, etc)
 * @param {Function} mainClass a reference to class in the module.  This
 *                             class will be tagged with the version info
 *                             so that it will be possible to identify the
 *                             version that is in use when multiple versions
 *                             have loaded
 * @param {Object}   data      metadata object for the module.  Currently it
 *                             is expected to contain a "version" property
 *                             and a "build" property at minimum.
 */
wbk.register = function(name, mainClass, data) {
    var mods = wbk.env.modules;
    if (!mods[name]) {
        mods[name] = { versions:[], builds:[] };
    }
    var m=mods[name],v=data.version,b=data.build,ls=wbk.env.listeners;
    m.name = name;
    m.version = v;
    m.build = b;
    m.versions.push(v);
    m.builds.push(b);
    m.mainClass = mainClass;
    // fire the module load listeners
    for (var i=0;i<ls.length;i=i+1) {
        ls[i](m);
    }
    // label the main class
    if (mainClass) {
        mainClass.VERSION = v;
        mainClass.BUILD = b;
    } else {
        wbk.log("mainClass is undefined for module " + name, "warn");
    }
};


/**
 * wbk.env is used to keep track of what is known about the YUI library and
 * the browsing environment
 * @class wbk.env
 * @static
 */
wbk.env = wbk.env || {

    /**
     * Keeps the version info for all modules that have reported themselves
     * @property modules
     * @type Object[]
     */
    modules: [],
    
    /**
     * List of functions that should be executed every time a module
     * reports itself.
     * @property listeners
     * @type Function[]
     */
    listeners: []
};

/**
 * Returns the version data for the specified module:
 *      <dl>
 *      <dt>name:</dt>      <dd>The name of the module</dd>
 *      <dt>version:</dt>   <dd>The version in use</dd>
 *      <dt>build:</dt>     <dd>The build number in use</dd>
 *      <dt>versions:</dt>  <dd>All versions that were registered</dd>
 *      <dt>builds:</dt>    <dd>All builds that were registered.</dd>
 *      <dt>mainClass:</dt> <dd>An object that was was stamped with the
 *                 current version and build. If 
 *                 mainClass.VERSION != version or mainClass.BUILD != build,
 *                 multiple versions of pieces of the library have been
 *                 loaded, potentially causing issues.</dd>
 *       </dl>
 *
 * @method getVersion
 * @static
 * @param {String}  name the name of the module (event, slider, etc)
 * @return {Object} The version info
 */
wbk.env.getVersion = function(name) {
    return wbk.env.modules[name] || null;
};

wbk.namespace("util", "user");

wbk.util.Browser = function()
{
    // Partly from ExtJS lib
    var ua = navigator.userAgent.toLowerCase();
    var isStrict = document.compatMode == "CSS1Compat";
    var isOpera = ua.indexOf("opera") > -1;
    var isSafari = /webkit|khtml/.test(ua);
    var isIE = ua.indexOf("msie") > -1;
    var isIE7 = ua.indexOf("msie 7") > -1;
    var isGecko = !isSafari && ua.indexOf("gecko") > -1;
    var isBorderBox = isIE && !isStrict;
    var isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1);
    var isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1);
    var isLinux = /x11|linux|freebsd|netbsd/.test(ua);
    
    return {
        isStrict: isStrict
        ,isOpera: isOpera
        ,isSafari: isSafari
        ,isIE: isIE
        ,isIE7: isIE7
        ,isGecko: isGecko
        ,isBorderBox: isBorderBox
        ,isWindows: isWindows
        ,isMac: isMac
        ,isLinux: isLinux
    };
}();
wbk.register("skype", wbk, {version: "1.0.0", build: "1"});

wbk.namespace("helpers");
wbk.namespace("navigation");
wbk.namespace("user");

/* Load CSS with javascript help */

wbk.helpers.loadCss = function (filename) {
    var fileref = document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", filename);
    if (typeof fileref != "undefined") {
        document.getElementsByTagName("head")[0].appendChild(fileref);
    }
};

/* Used to show title as a value in input field when it's 'empty' requires title attribute */
wbk.helpers.grayOutInputs = function() {
	$(document).ready(function(){
		
		var applyGrayOut = function($element){
	        if ($element.val() != $element.attr('title') && $element.hasClass("grayOut")) {
	            $element.removeClass("grayOut");
	        }
        
	        $element.focus(function () {
	            if ($element.val() == $element.attr('title')) {
	                $element.val("");
	                $element.removeClass("grayOut");
	            }
	        });
	        $element.blur(function () {
	            if ($element.val() == "") {
	                $element.addClass("grayOut");
					$element.val($element.attr('title'));
	            }
	        });			
		};
		
		// special case for search field
		$("#google-input").attr('title', $("#google-input").val());
		$("#google-input").addClass('grayOut');
		
		// grayOut all inputs with grayOut class
	    $("input.grayOut").each(function(){
			applyGrayOut($(this));
	    });	
	});
}();

/* Settings */

/* @legal: Cookie handling code from the book "JavaScript: The Definitive Guide" by David Flanagan published by O'Reilly. ISBN: 0-596-00048-0 */
wbk.util.Cookie = function(document, name, hours, path, domain, secure, fieldsep, valuesep) {
    this.document = document;
    this.name = name;
    if (hours) {
        this.expiration = new Date((new Date()).getTime() + hours*3600000);
    } else {
        this.expiration = null;
    }
    this.path = path ? path : null;
    this.domain = domain ? domain : null;
    this.secure = secure ? true : false;
    this.fieldsep = fieldsep ? fieldsep : ':';
    this.valuesep = valuesep ? valuesep : '&';
    this.isSimpleValue = false;
    // Actual cookie data is held in this one
    this.data = {};
};

wbk.util.Cookie.prototype = {
    /**
     * Saves values set in cookie.
     */
    store: function (doSort) {
        var cookieval = "";
        var cookie = "";
        var keys = [];
        if (typeof this.data == "object")
        {
            for(var prop in this.data)
            {
                keys.push(prop);
            }
            if (doSort)
                keys.sort();
            for (var i=0; i < keys.length; i++)
            {
                if (cookieval != "") cookieval += this.fieldsep;
                cookieval += keys[i] + this.valuesep + escape(this.data[keys[i]]);
            }
        }
        else
        {
            cookieval = escape(this.data.toString());
        }
        cookie = this.name + '=' + cookieval;
        if (this.expiration)
            cookie += '; expires=' + this.expiration.toGMTString();
        if (this.path) cookie += '; path=' + this.path;
        if (this.domain) cookie += '; domain=' + this.domain;
        if (this.secure) cookie += '; secure';
        this.document.cookie = cookie;
    },
    
    /**
     * Loads values from cookie
     */
    load: function()
    {
        if (this.isSimpleValue && typeof this.data != "string")
            this.data = this.data.toString();
        var allcookies = this.document.cookie;
        if (allcookies == "") return false;
        var start = allcookies.indexOf(this.name + '=');
        if (start == -1) return false;
        start += this.name.length + 1;
        var end = allcookies.indexOf(';', start);
        if (end == -1) end = allcookies.length;
        var cookieval = allcookies.substring(start, end);
        if (!this.isSimpleValue)
        {
            var a = cookieval.split(this.fieldsep);
            for (var i=0; i < a.length; i++)
                a[i] = a[i].split(this.valuesep);
            for (var i = 0; i < a.length; i++)
                this.data[a[i][0]] = unescape(a[i][1]);
        } else {
            this.data = cookieval;
        }
        return true;
    },
    
    /**
     * Removes cookie if it was set.
     */
    remove: function()
    {
        var cookie = this.name + '=';
        if (this.path) cookie += '; path=' + this.path;
        if (this.domain) cookie += '; domain=' + this.domain;
        cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';
        this.document.cookie = cookie;
    }
};



wbk.user.Preferences = function() {
    var values = {
        'LC':''
        ,'CCY':''
        ,'CC':''
        ,'TZ':''
        ,'VER':''
        ,'TS':''
        ,'TM':''
        ,'VAT':''
        ,'UCP':''
        ,'ENV':''
    };
    
    var domain = null;
    var cookieName = "SC";
    var cookie = null;
    var path = "/";
    var secure = false;
    var expires = null;
    var _parsing = false;
    
    var platformNames = {
        '0':'windows'
        ,'1':'pocketpc'
        ,'2':'linux'
        ,'3':'osx'
    };
    
    return {
        init: function()
        {
            this.setDomain();
            expires = 365;
            this.parseCookie();
        },
        getCookie: function()
        {
            var c = new wbk.util.Cookie(document, cookieName, expires, path, domain, secure, ":", "=");
            c.load();
            return c;
        },
        scrubCookieValue: function(value)
        {
            return value.replace(/[\n\r]/g, "").replace(/</g, "&lt;").replace(/>/g, "&gt;");
        },
        setDomain: function(dom)
        {
            if (dom) {
                domain = dom;
            } else if (location && location.hostname) {
                var parts = location.hostname.split(".");
                var i = parts.length;
                if (i >= 2 && isNaN(parseInt(parts[i-1]))) {
                    domain = "."+parts[i-2]+"."+parts[i-1];
                }
            }
        },
        parseCookie: function()
        {
            cookie = this.getCookie();
            var knownSetters = {
                'LC': 'setLanguage'
                ,'CCY': 'setCurrency'
                ,'CC': 'setCountryCode'
                ,'TZ': 'setTimezone'
                ,'VER': 'setVersion'
                ,'TS': 'setTimeStamp'
                ,'TM': 'setTimeModified'
                ,'VAT': 'setVatEligible'
                ,'UCP': 'setClientProfile'
            };
            _parsing = true;
            for (var prop in cookie.data)
            {
                if (prop.search(/[A-Z]+/) != -1)
                {
                    if (knownSetters[prop])
                        this[knownSetters[prop]](cookie.data[prop]);
                    else
                        this.setValue(prop, cookie.data[prop]);
                }
            }
            _parsing = false;
            return true;
        },
        
        save: function()
        {
            for (var val in values)
            {
                cookie.data[val] = values[val];
            }
            cookie.store(true);
        },
        
        clear: function()
        {
            cookie.remove();
        },
        
        getValue: function(key, def)
        {
            if (typeof def == "undefined")
                def = "";
            if (values[key] && values[key] != null && values[key].length)
                return values[key];
            return def;
        },
        setValue: function(key, value)
        {
            values[key] = value.toString();
        },
        
        touchCookie: function()
        {
            var now = parseInt(new Date().getTime()/1000);
            if (_parsing)
                return false;
            if (!this.getTimeStamp().length)
                this.setValue("TS", now);
            this.setValue("TM", now);
            return true;
        },
        
        setLanguage: function(value)
        {
            /* TODO: Should do validation here before setting? */
            this.setValue("LC", value.replace(/_/g, "-"));
            this.touchCookie();
            return true;
        },
        getLanguage: function(def)
        {
            return this.getValue("LC", def);
        },
        
        setCurrency: function(value)
        {
            if (/^([A-Z]{3}|[0-9]{3})$/.test(value) == false)
                value = "";
            this.setValue("CCY", value);
            this.touchCookie();
            return true;
        },
        getCurrency: function(def)
        {
            return this.getValue("CCY", def);
        },
        
        setCountryCode: function(value)
        {
            if (/^([A-Z]{2,3}|[0-9]{3})$/.test(value) == false)
                value = "";
            this.setValue("CC", value);
            this.touchCookie();
            return true;
        },
        getCountryCode: function(def)
        {
            return this.getValue("CC", def);
        },
        
        formatDecimal: function(value)
        {
            if (value < 10)
                return "0" + value;
            return value;
        },
        
        setTimezone: function(value)
        {
            if (/^([-+]((0[0-9]|1[0-3]):[0-5][0-9]|14:00)|Z)$/.test(value) == false)
            {
                var matches = value.match(/^([-+]?)([0-9]{1,2})(\.[0-9])?$/);
                if (matches)
                {
                    var sign = matches[1] && matches[1].length ? matches[1] : '+';
                    var hours = parseInt(matches[2]);
                    var minutes = matches[3] && matches[3].length ? parseInt(60 * parseFloat(matches[3])) : 0;
                    if (hours > 14) hours = 14;
                    if (hours == 14) minutes = 0;
                    if (minutes > 59) minutes = 0;
                    value = sign+this.formatDecimal(hours)+":"+this.formatDecimal(minutes);
                }
            }
            this.setValue("TZ", value);
            this.touchCookie();
            return true;
        },
        getTimezone: function(def)
        {
            return this.getValue("TZ", def);
        },
        
        setVersion: function(value)
        {
            if (typeof value == "object")
            {
                var defaultValues = {
                    'platform':''
                    ,'platformname':''
                    ,'version':''
                    ,'campaign':''
                    ,'partner':''
                    ,'partnername':''
                };
                for (var prop in defaultValues)
                {
                    if (value[prop] == null)
                        value[prop] = defaultValues[prop];
                }
                var splitVer = value.version.split(".");
                
                value = value.platform+"/"+splitVer[0]+"."+splitVer[1]+"."+(value.partner.length ? value.partner : splitVer[2])+"."+splitVer[3]+"/"+value.campaign;
            }
            
            if (/^[0-9]?\/[0-9]{1,2}(\.[0-9]{1,3}){3}\/[0-9]*$/.test(value) == false)
                return false;
            
            this.setValue("VER", value);
            this.touchCookie();
            return true;
        },
        getVersion: function(def)
        {
            return this.getValue("VER", def);
        },
        getParsedVersion: function(def)
        {
            var result = {
                'platform':''
                ,'platformname':''
                ,'version':''
                ,'campaign':''
                ,'partner':''
                ,'partnername':''
            };
            var ver = this.getVersion(def);
            if (!ver.length)
                return result;
            var splitVer = ver.split("/");
            result.platform = splitVer[0];
            result.version = splitVer[1];
            result.campaign = splitVer[2];
            splitVer = result.version.split(".");
            result.partner = (splitVer.length > 2 && splitVer[2]) ? splitVer[2] : 0;
            return result;
        },
        
        setTimeStamp: function(value)
        {
            this.setValue("TS", value);
            this.touchCookie();
        },
        getTimeStamp: function(def)
        {
            return parseInt(this.getValue("TS", def));
        },
        
        setTimeModified: function(value)
        {
            if (_parsing)
            {
                this.setValue("TM", value);
            }
            this.touchCookie();
        },
        getTimeModified: function(def)
        {
            return parseInt(this.getValue("TM", def));
        },
        
        setClientProfile: function(value)
        {
            this.setValue("UCP", value);
            this.touchCookie();
        },
        getClientProfile: function(def)
        {
            return this.getValue("UCP", def);
        },
        
        setVatEligible: function(value)
        {
            var result = "";
            // If string was passed in, then only accept "true" and "false" as valid
            if (typeof value == "string")
            {
                if (value == "true") result = "true";
                else if (value == "false") result = "false";
                else result = "";
            }
            // Turn booleans into strings
            else if (typeof value == "boolean")
            {
                result = value ? "true" : "false";
            }
            // Accept only numbers 0 and 1, nothing else
            else if (typeof value == "number")
            {
                if (value == 1) result = "true";
                else if (value == 0) result = "false";
                else result = "";
            }
            this.setValue("VAT", result);
            this.touchCookie();
        },
        isVatEligible: function()
        {
            var val = this.getValue("VAT");
            if (val == "true") return true;
            else if (val == "false") return false;
            else return null;
        },
        
        setEnv: function(value)
        {
            value = value.replace(/\//g, "-");
            
            if (!this.getEnv(value))
            {
                var env = this.getValue("ENV");
                env = env.length ? env.split("/") : [];
                env.push(value);
                this.setValue("ENV", env.join("/"));
                this.touchCookie();
            }
        },
        getEnv: function(value)
        {
            value = value.replace(/\//g, "-");
            
            var env = this.getValue("ENV").split("/");
            for (var i = 0; i < env.length; i++)
            {
                if (env[i] === value) return true;
            }
            return false;
        },
        deleteEnv: function(value)
        {
            var env = this.getValue("ENV").split("/");
            for (var i=0; i < env.length; i++)
            {
                if (env[i] === value)
                {
                    env.splice(i, 1);
                }
            };
            this.setValue("ENV", env.join("/"));
            this.touchCookie();
        },
        clearEnv: function()
        {
            this.setValue("ENV", "");
            this.touchCookie();
        },
        
        debug: function()
        {
            var result = "";
            for (var key in values)
            {
                result = result + key + " = " + values[key] + "\n";
            }
            return result;
        }
    };
}();
wbk.user.Preferences.init();

wbk.findParentTag = function(el, tagName) {
    tagName = tagName.toUpperCase();

    while (el.parentNode) {
        if (el.parentNode.tagName.toUpperCase() == tagName)
        {
            return el.parentNode;
        }
        el = el.parentNode;
    }

    return null;
};

wbk.navigation.changeLanguage = function(){
	$(document).ready(function(){
		$("#userLanguage").change(function(){
			// replace [LC] in form action with language code from userLanguage selection
			var changeUrl = $("#userPreferencesForm").attr("action").replace(/(%5B|\[)LC(%5D|\])/g, $("#userLanguage").val());
            wbk.user.Preferences.setLanguage($("#userLanguage").val());
            wbk.user.Preferences.save();

			// if not changing to light site then check if we can keep the page
			if(!$("#userLanguage").val().match("(zh-Hans|cs|da|nl|et|fi|ko|no|hu|pt-pt|es-world|ar)") && !window.location.hostname.match("secure|search|share|support|about|jobs")) {
				// split window.location into urlArray - protocol+hostname, intl/XX-XXXXX, rest of the url
				var reg = new RegExp("(^"+window.location.protocol+"//"+window.location.hostname+"/)"+"(intl/[a-zA-Z-]{2,8})?/?(.*)");
				var urlArray = reg.exec(window.location);
				if(typeof urlArray[1] != undefined) {
					var newLocation = urlArray[1];  
					newLocation +=  "intl/" + $("#userLanguage").val() + "/";
					if(typeof urlArray[3] != undefined) {
						newLocation += urlArray[3];
					}
					changeUrl = newLocation;
				}
			}
			window.location = changeUrl;
		});
    });
}();

/* quickFilter needs jquery.autocomplete.js to work */

wbk.helpers.quickFilter = function() {
	var callClearTimer;
	return {
		apply: function($element, callback, clearCallback) {
			var $quickfilterInput = $element.find("input");
			var $quickfilterClear = $element.find("a.clear");
			
			if ($quickfilterClear.length > 0) {
				$quickfilterClear.click(function(ev){
					ev.preventDefault();
					var defaultValue = $quickfilterInput.attr("title");
					$quickfilterInput.addClass("grayOut");
					$quickfilterInput.val(defaultValue);
					$quickfilterClear.fadeOut('fast');

					if (typeof clearCallback == "function") {
						clearCallback(ev);
					}
				});
				
				$quickfilterInput.keyup(function(){
					var quickfilterInputValue = $quickfilterInput.val();
					if (quickfilterInputValue.length > 0) {
						$quickfilterClear.fadeIn('fast');
					} else {
						$quickfilterClear.fadeOut('fast');

						callClearTimer = setTimeout(function() {
							if ($quickfilterInput.val() == "") {
								if (typeof clearCallback == "function") {
									clearCallback();
								}
							}
						}, 1000);
					}
				});
			}
			
			if ($quickfilterInput.length > 0 && $element.find("option").length > 0) {
				var quickList = [];
				
				$element.find("option").each(function(){
					var country = {"cc": this.value, "name": $(this).html()};

					if (wbk.countryAliasMap && (this.value in wbk.countryAliasMap)) {
						country.aliases = wbk.countryAliasMap[this.value];
					}

					quickList.push(country);
				});

				$quickfilterInput.closest("form").submit(function(ev){
					ev.preventDefault();
				});
				
				$quickfilterInput.autocomplete(quickList, {
					max: 7,
					scroll: false,
					matchContains: true,
					beforeShow: function(data,max){
						updateQuickfilterStatus(data,max,'false');
					},
					formatItem: function(row, i, max) {
						return "<span class=\"flag "+ row.cc +"\"></span> " + row.name;
					},
					formatMatch: function(row, i, max) {
						var aliasMatch = "";

						if (row.aliases) {
							for (var i = 0; i < row.aliases.length; i++) {
								aliasMatch += row.aliases[i] + " ";
							}
						}

						return row.name + " " + row.cc + " " + aliasMatch;
					},
					formatResult: function(row) {
						return row.name;
					},
					onEmpty: function() {
						if (typeof(jsCopy) != 'undefined' && jsCopy.noMatches) {
							var noResults = jsCopy.noMatches;

							if ($("li.quickFilterNone", $results).length <= 0) {
								$results.append("<li class=\"quickFilterNone\">"+noResults.replace(/\%search\%/g, $quickfilterInput.val())+"</li>");
							} else {
								$("li.quickFilterNone", $results).html(noResults.replace(/\%search\%/g, $quickfilterInput.val()));
								$("li.quickFilterNone", $results).show();
							}

							return false;
						}
					}
				});
				
				$quickfilterInput.result(function(event, data, formatted) {
					callback(event, data, formatted, data.cc);
				});
			}
			
			var updateQuickfilterStatus = function(data, max, dosearch) {
				$results = $("div.ac_results ul");

				$("li.quickFilterNone", $results).hide();

				if (data.length > max && typeof(jsCopy) != 'undefined') {
					var more = data.length - max;
					if (more == 1) {
						var moreResults = jsCopy.oneMoreMatch;
					} else {
						var moreResults = jsCopy.moreMatches;
					}
					if($("li.quickFilterMax", $results).length <= 0) {
						$results.append("<li class=\"quickFilterMax\">"+moreResults.replace('%more%', more)+"</li>");
					} else {
						$("li.quickFilterMax", $results).html(moreResults.replace('%more%', more));
						$("li.quickFilterMax", $results).show();
					}
				} else {
					$("li.quickFilterMax", $results).hide();
				}
			};
		}
	};
}();

/**
 * Apply generic Quickfilters if theres any
 */
wbk.helpers.applyGenericQuickfilters = function() {
	$(document).ready(function(){
		if ($("form.genericQuickfilter").length > 0) {
			$("form.genericQuickfilter").each(function(){
				var $form = $(this);
				if ($(this).find("select.quickList option").length > 0 && $(this).find("div.quickFilter").length > 0) {
					wbk.helpers.quickFilter.apply($(this).find("div.quickFilter"), function(event, data, formatted, formattedValue) {
						if (data) {
							var formAction = $form.attr("action");
							var fieldName = $form.find("select.quickList").attr("name");
							// redirect to form action url with select dropdown element name set as a parameter
							window.location = formAction + "?" + fieldName + "=" + formattedValue.toLowerCase();
						}
					});
				}
			});
		}
	});
}();

/**
 * Apply generic Quickfilters if theres any
 */
wbk.helpers.HomepageRateWidget = function() {
	var configuratorUrl = "",
		originalUrl;

	var getPackagePrices = function(cc, fnCallback) {
		if (wbk.packagePriceApi) {
			showLoading();

			if ($(".ratesArea .ratesIntro").is(":visible")) {
				$(".ratesArea .ratesIntro").hide("slideup");
				$(".ratesArea .countryRateDetails").show("fade");
			}

			$(".rateSelector a.subsAnchor").each(function() {
				this.href = configuratorUrl + "?country=" + cc;
			});

			var checkUnlimited = ($(".countryRateOptions .unlimited").length > 0 && cc == 'US');  // Check for unlimited subscriptions if template allows it

			$.ajax({
				url: wbk.packagePriceApi.replace("%s", cc.toLowerCase())
				, type: "get"
				, dataType: "jsonp"
				, jsonp: "jsoncallback"
				, success: function(data) {
					if (data && typeof data == "object") {
						endLoading(function() {
							var minIndex = -1;
							var minPrice = 999999;
							var hasUnlimited = false;

							for (var i = 0; i < data.pricelist.subscription.length; i++) {
								var subs = data.pricelist.subscription[i];
								if (subs.minute_rate && subs.minute_rate.amount < minPrice && subs.minute_rate.amount > 0) {
									minPrice = subs.minute_rate.amount;
									minIndex = i;
								} else if (checkUnlimited && !subs.minute_rate && subs.unlimited) {
									minIndex = i;
									hasUnlimited = true;
									break;
								}
							}

							if (minIndex < 0) {
								if ($(".ratesArea .payMonthly .paymentNotFound").length && $(".ratesArea").hasClass("showNotFoundMessage")) {
									$(".ratesArea .payMonthly .paymentDetails:visible").hide("fade", function() {
										$(".ratesArea .payMonthly .paymentNotFound:hidden").show("fade");
									});
								} else {
									$(".ratesArea .payMonthly:visible").hide("fade");
								}

							} else {
								var price, priceVat;
								if (!hasUnlimited) {
									$(".ratesArea .countryRateDetails.unlimited").removeClass("unlimited");
									$(".ratesArea .payMonthly .standard").show();
									$(".ratesArea .payMonthly .unlimited").hide();
									price    = data.pricelist.subscription[minIndex].minute_rate.formatted;
									priceVat = data.pricelist.subscription[minIndex].minute_rate_vat.formatted;
								} else {
									$(".ratesArea .countryRateDetails").addClass("unlimited");
									$(".ratesArea .payMonthly .standard").hide();
									$(".ratesArea .payMonthly .unlimited").show();
									price    = data.pricelist.subscription[minIndex].price.formatted;
									priceVat = data.pricelist.subscription[minIndex].price_vat.formatted;
								}

								$(".ratesArea .payMonthly .noVat .price").text(price);
								$(".ratesArea .payMonthly .vat .price").text(priceVat);
								$(".ratesArea a.subsAnchor").each(function() {
									this.href = configuratorUrl + "?country=" + cc + "&product-type=" + data.pricelist.subscription[minIndex].category;
								});

								if ($(".ratesArea .payMonthly .paymentNotFound").length && $(".ratesArea").hasClass("showNotFoundMessage")) {
									$(".ratesArea .payMonthly .paymentNotFound:visible").hide("fade", function() {
										$(".ratesArea .payMonthly .paymentDetails:hidden").show("fade");
									});
								} else {
									$(".ratesArea .payMonthly:not(:visible)").show("fade");
								}

							}

							fnCallback();

						});

					} else {
						endLoading(function() {
							if ($(".ratesArea .payMonthly .paymentNotFound").length) {
								$(".ratesArea .payMonthly .paymentDetails:visible").hide("fade", function() {
									$(".ratesArea .payMonthly .paymentNotFound:hidden").show("fade");
								});
							} else {
								$(".ratesArea .payMonthly:visible").hide("fade");
							}

							fnCallback();

						});

					}

				}
				, error: function(data) {
					$(".ratesArea .payMonthly:visible").fadeOut("fast");
				}
			});
		}
	};

	var sleepTime = 1100,
	    running = false,
	    timer = null,
	    timeoutCallback = null;

	var showLoading = function() {
		var loadingOverlay = $(".ratesArea .countryRateDetails .loadingOverlay");

		if (!$(".ratesArea .countryRateDetails .loadingOverlay").length) {
			loadingOverlay = $("<div class=\"loadingOverlay\"></div>").css({"opacity": 0});
			$(".ratesArea .countryRateDetails").append(loadingOverlay);
			loadingOverlay.fadeOut(0);
		}

		if (running) {
			clearTimeout(timer);
			timer = setTimeout(function() {
				timer = null;
				running = false;
				if (typeof timeoutCallback == "function") {
					timeoutCallback();
					timeoutCallback = null;
				}
			}, sleepTime);

		} else {
			running = true;
			timer = setTimeout(function() {
				timer = null;
				running = false;
				if (typeof timeoutCallback == "function") {
					timeoutCallback();
					timeoutCallback = null;
				}
			}, sleepTime);

		}

		$(".ratesArea .countryRateDetails .loadingOverlay").fadeTo(300, 0.9);
	};

	var endLoading = function(fnCallback) {
		if (running) {
			timeoutCallback = fnCallback;

		} else {
			fnCallback();
			timeoutCallback = null;

		}
	};

	$(document).ready(function(){
		if ($("#homeRateSelector").length > 0 && wbk.callRates) {
			$("#homeRateSelector").each(function(){
				if (wbk.callRates.globalRate) {
					$(".ratesArea .ratesIntro .globalRate").text(wbk.callRates.globalRate.rate);
				}

				if ($(this).parents(".ratesArea").hasClass("homepageRates")) {
					$(this).parents(".ratesArea").find("p.learnMore .buttonSimpleMedium").removeClass("buttonSimpleMedium");
				}

				originalUrl = $(".ratesArea .viewMoreButton:first").attr("href");

				if ($(this).find("select.quickList option").length) {
					wbk.helpers.quickFilter.apply($(this), function(event, data, formatted, formattedValue) {
						if (data) {
							getPackagePrices(data.cc, function() {
								var rates = SKYPE.callRates[data.cc];

								$(".ratesArea .callTo").hide();


								$(".ratesArea .payAsYouGo a[href*=/allrates]").each(function() {
									if (!this.href.match(/\?country=[A-Z]+/)) {
										this.href = this.href + "?country=" + data.cc;
									} else {
										this.href = this.href.replace(/(\?country=[A-Z]+)?$/, "?country=" + data.cc);
									}
								});

								$(".ratesArea .payAsYouGo .noVat .price").text(rates.rate);
								$(".ratesArea .payAsYouGo .vat .price").text(rates.rateVat);

								$(".ratesArea .countryRateDetails .loadingOverlay").fadeOut(300);
							});
						}
					}, function() {
						if ($(".ratesArea .ratesIntro").length && $(".ratesArea .ratesIntro").not(":visible")) {
							$(".ratesArea .ratesIntro").show("slidedown");
							$(".ratesArea .countryRateDetails").hide("fade");
							$(".rateSelector a.viewMoreButton").each(function() {
								this.href = originalUrl;
							});
						}
					});
				}
			});
		}
	});
}();

wbk.helpers.PrettyPrice = function() {
	var priceFix = function(integer, fraction) {
		var nicerPrice = "";

		if (fraction == 0) {
			nicerPrice = integer;
		} else if (fraction < 10) {
			nicerPrice = integer + ".0" + fraction;
		} else {
			nicerPrice = integer + "." + fraction;
		}

		return nicerPrice;
	};

	var parseAmount = function(input) {
		var amount = input.match(/[0-9][,.]?[,.0-9]*/)[0];
		var bits;
		if (amount.match(/\./)) {
			bits = amount.split(".");
		} else if (amount.match(/\,/)) {
			bits = amount.split(",");
		} else {
			bits = [amount, 0];
		}

		var fraction = bits[1];

		if (bits[1].length > 2) {
			fraction = (bits[1].substr(0, 2) + "." + bits[1].substr(2));

		} else if (bits[1].length < 2) {
			fraction = bits[1] + "0";

		}

		return {
			"integer": bits[0]
			, "fraction": Math.round(fraction)
			, "original": amount
		};
	};

	var parse = function(ccy, input) {
		formattedPrice = input.replace(/^\s+/, "").replace(/\s+$/, "");

		var price = parseAmount(input),
		    nicePrice = priceFix(price.integer, price.fraction);

		if ("" + price.original != "" + nicePrice) {
			formattedPrice = formattedPrice.replace(price.original, priceFix(price.integer, price.fraction));
		}

		return formattedPrice;
	};

	return {
		parse: function(ccy, input) {
			return parse(ccy, input);
		}
	};
}();


/* Function to show/hide different kind of help bubbles */
wbk.helpers.HelpBubbles = function() {

	var _createBubble = function(el) {
		var bubbleId = "helpBubble-" + $(".helpBubble").length;

		var $bubble = $("<div class='helpBubble' />")
			.attr("id", bubbleId)
			.append($('<div class="pointer"/><div class="close"/><div class="body"/>'));

		switch (el.tagName) {
			case "SPAN":
				$bubble.css({display: "none", top: "-1000px"});
				$(el).attr("rel", bubbleId);

				$("body").append($bubble);

				$("span.text", el)
					.remove()
					.appendTo("#" + bubbleId + " .body");

				$(el).click(function(ev) {
					ev.preventDefault();
					ev.stopPropagation();

					$bubble.toggle();

					var pos = $(this).position();
					var $offsetParent = $(this).offsetParent();
					var offsetPos = {
						top: $offsetParent.position().top
						,left: $offsetParent.position().left
					};

					while ($offsetParent[0].tagName.toUpperCase() != "BODY") {
						$offsetParent = $offsetParent.offsetParent();
						offsetPos.left += $offsetParent.position().left;
						offsetPos.top += $offsetParent.position().top;
					};

					pos.left += offsetPos.left;
					pos.top += offsetPos.top;

					if ($bubble.is(":hidden")) {
						$bubble.css({top: "-1000px"});
					} else {
						if ($(this).hasClass("bottomRight")) {
							$bubble.addClass("bottomRight");
							$bubble.css({
								top: (pos.top + $(this).outerHeight(true) - parseInt($(this).css('margin-bottom'))),
								left: (pos.left + parseInt($(this).css('margin-left')))
							});

						} else if ($(this).hasClass("topRight")) {
							$bubble.addClass("topRight");
							$bubble.css({
								top: (pos.top - $bubble.outerHeight() + parseInt($(this).css('margin-top'))),
								left: pos.left + parseInt($(this).css('margin-left'))
							});

						} else if ($(this).hasClass("topLeft")) {
							$bubble.addClass("topLeft");
							$bubble.css({
								top: (pos.top - $bubble.outerHeight() + parseInt($(this).css('margin-top'))),
								left: (pos.left - $bubble.outerWidth() + $(this).outerWidth() + parseInt($(this).css('margin-left')))
							});
						} else {
							wbk.log("Help position not defined");
						}
					}
				});
				break;

			case "A":
				if (!$(el).hasClass("bubbleVisible")) {
					$bubble.css({display: "none"});
				} else {
					$bubble.css({display: "block"});
				}
				if ($(el).hasClass("bottomRight")) {
					$bubble.addClass("bottomRight");
				} else if ($(el).hasClass("bottomLeft")) {
					$bubble.addClass("bottomLeft");					
				} else if ($(el).hasClass("topRight")) {
					$bubble.addClass("topRight");
				} else if ($(el).hasClass("topLeft")) {
					$bubble.addClass("topLeft");
				} else if ($(el).hasClass("rightTop")) {
					$bubble.addClass("rightTop");
				}
				$(el).parent().append($bubble);
				$("#" + bubbleId + " .body").append($(el).attr("title"));
				break;
		}

		$(".close", $bubble).click(function() {
			$bubble.hide();
		});
	};

	_formBubbles = function() {

		$("a.fieldAction").click(function(e) {
			e.preventDefault();

			$(".helpBubble").hide();

			$link = $(this);
			$bubble = $($(this).attr("rel"));

			var pos = $(this).position();
			var $offsetParent = $(this).offsetParent();
			var offsetPos = {
				top: $offsetParent.position().top
				,left: $offsetParent.position().left
			};

			while ($offsetParent[0].tagName.toUpperCase() != "BODY") {
				$offsetParent = $offsetParent.offsetParent();
				offsetPos.left += $offsetParent.position().left;
				offsetPos.top += $offsetParent.position().top;
			};
			
			pos.left += offsetPos.left + 10;
			pos.top += offsetPos.top + $link.outerHeight();
			
			if ($bubble.hasClass("rightTop")) {
				pos.left += offsetPos.left + $link.outerWidth(true);
				pos.top += offsetPos.top + $link.outerHeight(true) - $bubble.outerHeight();
			} else if ($bubble.hasClass("topRight")) {
				pos.left += offsetPos.left;
				pos.top += offsetPos.top - $link.outerHeight(true) - $bubble.outerHeight();
			} else if ($bubble.hasClass("bottomLeft")) {
				pos.left += offsetPos.left + $link.outerWidth(true) - $bubble.outerWidth(true) + 50;
				pos.top += offsetPos.top + $link.outerHeight();
			} else {
				pos.left += offsetPos.left + 10;
				pos.top += offsetPos.top + $link.outerHeight();
			}

			$(".formBubble").hide();

			$bubble.show();
			
			$bubble.css({
				"top" : pos.top + "px",
				"left" : pos.left + "px"
			});

			$(".close", $bubble).click(function() {
				$bubble.hide();
			});
			
			$(".blueClose", $bubble).click(function() {
				$bubble.hide();
			});

		});
	};

	$(document).ready(function() {
		$("span.helpButton, a.hasBubble").each(function(i) {
			_createBubble(this);
		});

		_formBubbles();

		$(document).click(function() {
			$("span.helpButton:hidden").each(function() {
				$("#" + $(this).attr("rel"))
					.hide()
					.css({top: "-1000px"});
			});
		});
	});

	return {
		create: function(el) {
			_createBubble(el);
		},
		hideAll: function() {
			$("span.helpButton").each(function(i) {
				$("#" + $(this).attr("rel"))
					.hide()
					.css({top: "-1000px"});
			});
		},
		hideHidden: function() {
			$("span.helpButton:hidden").each(function(i) {
				$("#" + $(this).attr("rel"))
					.hide()
					.css({top: "-1000px"});
			});
		},
		hideInElement: function(el) {
			$("span.helpButton", el).each(function(i) {
				$("#" + $(this).attr("rel"))
					.hide()
					.css({top: "-1000px"});
			});
		}
	};
}();

/* Does magic to some buttons */
wbk.helpers.ButtonTweaks = function() {
	$(function() {
		$("a.buttonSimple.disabled, a.buttonSimpleMedium.disabled").live("click", function(ev) {
			ev.preventDefault();
			return;
		});
	});
}();


/* find and replace links */
wbk.helpers.UpdateLinks = function(find, replace) {
	$(document).ready(function() {
		var links = $("a");
		var domain = 'http://' + window.location.hostname;

		for (i=0; i<links.length; i++) {
			if (links[i].href.replace(domain,'') == find) {
				links[i].href = replace + encodeURIComponent(links[i].href);
			}
		}
	});
};


/**
 * Triggers automatic downloads
 *
 * Searches for links with '.autodownload' class name and fires the request on them
 */
wbk.navigation.AutoDownload = function() {
    $(window).bind("load", function() {
        $('a.autodownload:first').each(function() {
            if (location.href.match(/author-/) == null) {
                location.href = this.href;
            }
        });
    });
}();


wbk.navigation.getExternalLinks = function() {
	var addNote = function(el) {
		var message = $("#externalLinkTip");
		var messageHeight = message.outerHeight();
		
		el.mouseover(function() {
			message.css({opacity: 1, top: el.offset().top-messageHeight-8, left: el.offset().left-10}).animate({top: el.offset().top-messageHeight}, 200);
		});
		el.mouseout(function() {
			message.animate({opacity: 0}, 200, function() {
				message.css({top: "-1000px", left: 0});
			});
		});
	};
	
	$(document).ready(function() {

		if ($("#externalLinkTip").length == 0) {
			return;
		}

		$("a").each(function() {
			if (!this.href.match(/\.\.(com|net|test)/)) {
				addNote($(this));
			};
		});
	});
}();



if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;

var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();

if (typeof wbk !== "undefined")
{
  wbk.namespace("analytics");
  wbk.analytics.ChannelTrack = (function () {
   
    var cookieName    = "CHANNEL",
        referr_url    = document.referrer,
        page_url      = location,
        params_url    = (decodeURIComponent(location.search)).toLowerCase(),
        chann_source  = "",      //by default is Direct
        cookie_expire = 90,      //default cookie expiration time
    
    createCookie = function (name, value, days) {
      
      var expires = "",
          dom = "",
      date;
    
      try {
        dom = "." + location.host.split(".")[1] + "." + location.host.split(".")[2];
      }
      catch (err) {}

      if (days) {
        date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; domain=" + dom + "; expires=" + date.toGMTString();
      }
    
      document.cookie = name + "=" + value + expires + "; path=/";
    },

    readCookie = function (name) {
      var nameEQ  = name + "=",
      ca          = document.cookie.split(';'),
      i, c;
      
      for (i = 0; i < ca.length; i = i + 1) {
        c = ca[i];
        while (c.charAt(0) === ' ') {
          c = c.substring(1, c.length);
        }
        if (c.indexOf(nameEQ) === 0) {
          return c.substring(nameEQ.length, c.length);
        }
      }
      return null;
    },
    
    eraseCookie = function (name)
    {
      createCookie(name, "", -1);
    },    

    /* Channels */
    isAffiliateTraffic = function ()
    {
      
      var affiliate_arr = {"200504paffiliate": "211",
                           "TRADEDOUBLER":     "210",
                           "AGENCY1":          "214",
                           "AGENCY2":          "215",
                           "AGENCY3":          "216",
                           "TRIBAL01":         "221",
                           "MEDIABUY":         "224",
                           "VALUECOMMERCE":    "258"};
      
      //can pick up the one from the array
      if (affiliate_arr[readCookie("linkedcampaign")] !== undefined)
      {
        chann_source = affiliate_arr[readCookie("linkedcampaign")];
        
        /* Traffic Broker segmentation */
        if (chann_source === "211" && (params_url.indexOf("sid=1010") !== -1))
        {
          chann_source = "228";
        }
        
        /* 296 segmentation */
        if (chann_source === "211" && (params_url.indexOf("sid=2943525") !== -1))
        {
          chann_source = "296";
        }
      }
    };
    
    return {  
      
      /*******************/
      /* Detect Tracking */
      detectTracking: function ()
      {
        try
        {
          //check if we have a channel already
          if (readCookie("channel") !== null)
          {
            return;
          }
          
          isAffiliateTraffic();
          
          //write the cookie to output
          if (chann_source !== "")
          {
            createCookie("channel", chann_source, cookie_expire);
          }
        }
        catch (err) {}
      }   
    };
  }());
  
  /*****************************************/
  wbk.analytics.ChannelTrack.detectTracking();
}

if (typeof wbk.inclient === "undefined") { 
  wbk.namespace("inclient");
}
wbk.inclient.Trackable = (function () { 
  
  var the_referrer = (document.referrer).toLowerCase(),
  the_url          = location.pathname.toLowerCase(),
  the_param        = (decodeURIComponent(location.search)).toLowerCase(),
  
  createCookie = function (name, value, days) {
  
    var expires = "",
    dom = "",
    date;
    
    try {
      dom = "." + location.host.split(".")[1] + "." + location.host.split(".")[2];
    }
    catch (err) {}

    if (days) {
      date = new Date();
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      expires = "; domain=" + dom + "; expires=" + date.toGMTString();
    }
    
    document.cookie = name + "=" + value + expires + "; path=/";
  },
  
  readCookie = function (name) {
    var nameEQ  = name + "=",
    ca          = document.cookie.split(';'),
    i, c;
    
    for (i = 0; i < ca.length; i = i + 1) {
      c = ca[i];
      while (c.charAt(0) === ' ') {
        c = c.substring(1, c.length);
      }
      if (c.indexOf(nameEQ) === 0) {
        return c.substring(nameEQ.length, c.length);
      }
    }
    return null;
  },
  
  isAlreadyTagged = function ()
  {
    return ((readCookie("channel_source") !== null) || (readCookie("channel") !== null));
  },

  eraseCookie = function (name) {
    createCookie(name, "", -1);
  },
  
  dropCookie = function (cookie, cookie_time) {
    
    var MODE = "production";
    
    //check if we have a channel already
    if (isAlreadyTagged() || (typeof cookie === "undefined") ||
        (cookie === "") || (typeof cookie_time === "undefined")) {
      return false;
    }
    else {
      createCookie("channel_source", cookie, cookie_time);
      
      if (MODE !== "production" && (typeof console !== "undefined") && 
          (typeof console.log !== "undefined")) {
        console.log("Inclient.Trackable.dropCookie:", arguments);
      }
      
      return true;
    }
  },
  
  dropChannelCookie = function (trackableid, duration) {
   
    //check if we have a channel already
    if (isAlreadyTagged() || (typeof trackableid !== "string") ||
        (trackableid === "") || (typeof duration !== "number")) {
      return false;
    }
    else {
      createCookie("channel", trackableid, duration);
      return true;
    }
  },
  
  /*********************
   * Trackable Channels  
   *********************/

  /* All the channels bellow are invoked in pre-defined way, 
   * so all are required to have same interfacing rules:
   * - trackable... = function (a_referrer, a_url, a_param) {
   * - return false, when no channel found.
   * - return { cookie: "", cookie_time: 90 }; when channel found.
   */
  
  trackableNatural = function (a_referrer, a_url, a_param) {

    //Excluding the stuff coming in with marketing tags
    if ((typeof a_referrer === "undefined") || a_referrer === "" ||
        (a_param.indexOf("cm_mmc=") !== -1) || (a_param.indexOf("source=") !== -1)) {
      return false;
    }
    
    var segment = { cookie: "", cookie_time: 90 },
    
    sengs   = [ /*Order matters, because it stops eval when match*/
      { regex: /google\..*(\?q=|&q=)([^&]+).*/,                    cookie: "259" },
      { regex: /yahoo\.co.*(\?p=|&p=)([^&]+).*/,                   cookie: "260" },
      { regex: /bing\..*(\?q=|&q=)([^&]+).*/,                      cookie: "261" },
      { regex: /msn\..*(\?q=|&q=)([^&]+).*/,                       cookie: "261" },
      { regex: /^http:\/\/search\.live\.com.*(\?q=|&q=)([^&]+).*/, cookie: "261" },
      { regex: /yandex\.ru\/.*([\?|&]text=)([^&]+).*/,             cookie: "353" }
    ],

    tkey;
    
    //figure out which engine
    for (tkey in sengs) {
      if (a_referrer.match(sengs[tkey].regex)) {
        segment.cookie = sengs[tkey].cookie;
        break;
      }
    }
    
    return segment;
  },

  trackablePaid = function (a_referrer, a_url, a_param) {
    
    if (a_param.indexOf("cm_mmc=paids|") === -1) {
      return false; //not paid, drops off
    }

    var segment = { cookie: "", cookie_time: 90 },
    
    paids   = [

      // GAWS
      { name: "209", regex: /paids\|/, stop: false },
      { name: "217", regex: /paids\|gaws\-_\-.*\-_\-bd\|/, stop: false },
      { name: "298", regex: /paids\|gaws\-_\-.*\-_\-bd\|lp/, stop: true }, /*depricated*/
      { name: "298", regex: /paids\|gaws\-_\-.*\-_\-gn\|dicod/, stop: true },
      { name: "299", regex: /paids\|gaws\-_\-.*\-_\-bd\|sp/, stop: true }, /*depricated*/
      { name: "299", regex: /paids\|gaws\-_\-.*\-_\-gn\|docal/, stop: true },
      { name: "301", regex: /paids\|gaws\-_\-.*\-_\-bd\|np/, stop: true },
      { name: "225", regex: /paids\|gaws\-_\-.*\-_\-gn\|/, stop: false },
      { name: "226", regex: /paids\|gaws\-_\-.*\-_\-cc\|/, stop: true },
      { name: "229", regex: /paids\|gaws\-_\-.*\-_\-hw\|/, stop: true }, /*deprecated*/
      { name: "229", regex: /paids\|gaws\-_\-.*\-_\-gn\|savem\-_\-/, stop: true },
      { name: "253", regex: /paids\|gaws\-_\-.*\-_\-sb\|/, stop: true },
/*    { name: "287", regex: /paids\|gaws\-_\-.*\-_\-sb\|/, stop: true }, BIZ version*/
      { name: "227", regex: /paids\|gaws\-_\-.*\-_\-vc\|video\-_\-/, stop: true },
      { name: "230", regex: /paids\|gaws\-_\-.*\-_\-gn\|voipr\-_\-/, stop: true },
      { name: "291", regex: /paids\|gaws\-_\-.*\-_\-gn\|cards\-_\-/, stop: true },
      { name: "233", regex: /paids\|gaws\-_\-.*\-_\-tc\|00002\-_\-/, stop: true },
      { name: "234", regex: /paids\|gaws\-_\-.*\-_\-ev\|intwd\-_\-/, stop: true },
      { name: "257", regex: /paids\|gaws\-_\-.*\-_\-ev\|mothd\-_\-/, stop: true },
      { name: "357", regex: /paids\|gaws\-_\-.*\-_\-gn\|chcal/, stop: true },    

      { name: "388", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocren\-_\-/, stop: true },
      { name: "389", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocres\-_\-/, stop: true },
      { name: "390", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrde\-_\-/, stop: true },
      { name: "391", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrfr\-_\-/, stop: true },
      { name: "392", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrit\-_\-/, stop: true },
      { name: "393", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrzt\-_\-/, stop: true },
      { name: "394", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrar\-_\-/, stop: true },
      { name: "395", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrjp\-_\-/, stop: true },

      { name: "398", regex: /paids\|gaws\-_\-.*\-_\-gn\|ocrzs\-_\-/, stop: true },

      { name: "408", regex: /paids\|gaws\-_\-.*\-_\-ex\|expat\-_\-/, stop: true },
      { name: "409", regex: /paids\|gawc\-_\-.*\-_\-ex\|expat\-_\-/, stop: true },
      { name: "410", regex: /paids\|gaws\-_\-.*\-_\-te\|tests\-_\-/, stop: true },

      //YSMB
      { name: "358", regex: /paids\|ysmb/, stop: true },
      //YSMS
      { name: "284", regex: /paids\|ysms/, stop: false },
      { name: "254", regex: /paids\|ysms\-_\-.*\-_\-cc\|/, stop: true },
      { name: "290", regex: /paids\|ysms\-_\-.*\-_\-gn\|cards\-_\-/, stop: true },
      { name: "288", regex: /paids\|ysms\-_\-.*\-_\-gn\|voipr\-_\-/, stop: true },       
      { name: "300", regex: /paids\|gaws\-_\-.*\-_\-bd\|ep/, stop: true }, /*depricated*/
      { name: "300", regex: /paids\|ysms\-_\-.*\-_\-gn\|video/, stop: true },
      { name: "359", regex: /paids\|ysms\-_\-.*\-_\-gn\|savem\-_\-/, stop: true },
      { name: "362", regex: /paids\|ysms\-_\-.*\-_\-gn\|dicod\-_\-/, stop: true },
      { name: "363", regex: /paids\|ysms\-_\-.*\-_\-gn\|incal\-_\-/, stop: true },
      { name: "364", regex: /paids\|ysms\-_\-.*\-_\-gn\|chcal\-_\-/, stop: true },
      { name: "365", regex: /paids\|ysms\-_\-.*\-_\-gn\|docal\-_\-/, stop: true },
      // GAWC                                 
      { name: "243", regex: /paids\|gawc\-_\-.*\-_\-bd\|/, stop: false },
      { name: "244", regex: /paids\|gawc\-_\-.*\-_\-gn\|/, stop: false },
      { name: "245", regex: /paids\|gawc\-_\-.*\-_\-cc\|/, stop: true },
      { name: "256", regex: /paids\|gawc\-_\-.*\-_\-sb\|/, stop: true },
/*    { name: "TRACKABLE302",      regex: /paids\|gawc\-_\-.*\-_\-sb\|/, stop: true }, BIZ version*/
      { name: "238", regex: /paids\|gawc\-_\-.*\-_\-bd\|ebeta\-_\-/, stop: true },
      { name: "234", regex: /paids\|gawc\-_\-.*\-_\-bd\|ebetb\-_\-/, stop: true }, 
      { name: "239", regex: /paids\|gawc\-_\-.*\-_\-gn\|voipr\-_\-/, stop: true },
      { name: "246", regex: /paids\|gawc\-_\-.*\-_\-bl\|basel\-_\-/, stop: true },
      //MSN
      { name: "285", regex: /paids\|msns/, stop: false },
      { name: "255", regex: /paids\|msns\-_\-.*\-_\-cc\|/, stop: true },
      { name: "289", regex: /paids\|msns\-_\-.*\-_\-gn\|voipr\-_\-/, stop: true },
      { name: "294", regex: /paids\|msns\-_\-.*\-_\-gn\|cards\-_\-/, stop: true },   
      //WAYN
      { name: "232", regex: /paids\|wayn/, stop: true },
      //NAVS
      { name: "297", regex: /paids\|navs\-_\-aspac|kr\|.*\-_\-bd\|/, stop: true },
      //GAWP
      { name: "249", regex: /paids\|gawp\-_\-.*\-_\-bd\|/, stop: true },
      { name: "286", regex: /paids\|gawp\-_\-.*\-_\-pl\|expat\-_\-/, stop: true },
      //FACE
      { name: "252", regex: /paids\|face\-_\-.*\-_\-bd\|00001\-_\-/, stop: true },
      //YANS WALA and YANS
      { name: "355", regex: /paids\|yans/, stop: true },
      { name: "356", regex: /paids\|wlas/, stop: true },
      { name: "360", regex: /paids\|ayns/, stop: true }
    ],
    amatch;
    
    //figure out which engine
    for (amatch in paids) { 
      if (a_param.match(paids[amatch].regex)) {
        segment.cookie = paids[amatch].name;
        if (paids[amatch].stop) {
          break;
        }
      }
    }
    return segment;
  },

  trackableTagger = function (a_referrer, a_url, a_param) {
    
    var tags = {
      "cm_mmc=viral|":                      { cookie: "354", cookie_time: 90 }, 
      "cm_mmc=banna|yahoo":                 { cookie: "214", cookie_time: 90 },
      "cm_mmc=banna|gcn-_-":                { cookie: "237", cookie_time: 90 },
      "cm_mmc=banna|gcnr-_-":               { cookie: "316", cookie_time: 90 },
      "cm_mmc=banna|turn":                  { cookie: "264", cookie_time: 90 },
      "cm_mmc=banna|vc":                    { cookie: "269", cookie_time: 90 },
      "cm_mmc=banna|vrta":                  { cookie: "317", cookie_time: 90 },
      "cm_mmc=hp-_-promo-_-client-_-08":    { cookie: "161", cookie_time: 90 },
      "cm_mmc=acceleration-_-email-_-wtaf": { cookie: "213", cookie_time: 90 },
      "cm_mmc=acceleration-_-email-_-ctaf": { cookie: "212", cookie_time: 90 },
      "cm_mmc=socialm-_-":                  { cookie: "366", cookie_time: 90 },
      "cm_mmc=acceleration-_-email-_-ftaf": { cookie: "374", cookie_time: 90 },
      "cm_mmc=banna|sg":                    { cookie: "223", cookie_time: 90 },
      "cm_mmc=banna|rt":                    { cookie: "267", cookie_time: 90 },
      "cm_mmc=mgomd-_-":                    { cookie: "295", cookie_time: 90 },
      "cm_mmc=omdint|q2-_":                 { cookie: "303", cookie_time: 90 },

      "cm_mmc=banap|video-_-apac|jp|ja-_-goog-_-bnr300":            { cookie: "345", cookie_time: 90 },
      "cm_mmc=banap|generic-_-apac|jp|ja-_-goog-_-bnr300ukulelecm": { cookie: "345", cookie_time: 90 },
      "cm_mmc=banap|generic-_-apac|jp|ja-_-goog-_-bnr300ukulelepm": { cookie: "345", cookie_time: 90 },
      "cm_mmc=banap|generic-_-apac|jp|ja-_-goog-_-bnr300rakugocm":  { cookie: "345", cookie_time: 90 },
      "cm_mmc=banap|generic-_-apac|jp|ja-_-goog-_-bnr300rakugopm":  { cookie: "345", cookie_time: 90 },

      "cm_mmc=banap|travel-_-apac|au|en-_-tripadv-_-bnr728":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|au|en-_-tripadv-_-bnr300":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-tripadv-_-bnr728":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-tripadv-_-bnr300":   { cookie: "361", cookie_time: 90 }, 
      "cm_mmc=banap|travel-_-apac|au|en-_-wego-_-txtfree"  :   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-yahjap-_-bnr300" :   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-yahjap-_-txtfree":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-rakutn-_-bnr180" :   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-rakutn-_-txtfree":   { cookie: "361", cookie_time: 90 },

      "cm_mmc=banap|travel|au|en-_-wego-_-bonus1":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel|au|en-_-wego-_-bonus2":   { cookie: "361", cookie_time: 90 },
      "cm_mmc=banap|travel|au|en-_-wego-_-bonus3":   { cookie: "361", cookie_time: 90 },
      
      "cm_mmc=banap|generic-_-apac|au|en-_-ebuddy-_-bnr728":   { cookie: "383", cookie_time: 90 },
      "cm_mmc=banap|generic-_-apac|au|en-_-ebuddy-_-bnr300":   { cookie: "383", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-ebuddy-_-bnr728" :   { cookie: "383", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-ebuddy-_-bnr300" :   { cookie: "383", cookie_time: 90 },
      "cm_mmc=banap|paidart-_-apac|jp|ja-_-paidart2-_-txtfree": { cookie: "384", cookie_time: 90 },
      "cm_mmc=banap|paidart-_-apac|jp|ja-_-paidart-_-txtfree": { cookie: "384", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|au|en-_-network-_-bnr728":   { cookie: "385", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|au|en-_-network-_-bnr300":   { cookie: "385", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-network-_-bnr728":   { cookie: "385", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-network-_-bnr300":   { cookie: "385", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-google-_-txtfree":   { cookie: "385", cookie_time: 90 },
      "cm_mmc=banap|travel-_-apac|jp|ja-_-yahoo-_-txtfree":    { cookie: "385", cookie_time: 90 },
      "cm_mmc=world-_-c_-_u-_-p":                              { cookie: "401", cookie_time: 90 },

      "cm_mmc=cm_mmc=banap|creditcard-_-apac|jp|ja-_-jcb-_-txtfree": { cookie: "407", cookie_time: 90 }
    },
    tag = "";
    
    for (tag in tags) {
      if (a_param.indexOf(tag) !== -1) {
        return tags[tag];
      }
    }
    
    return false;
  },
  
  /* To be used, to directly report values 
   * variables to be used:
   * var aCustomTrackable = { cookie: "", cookie_time: 90 };
   */
  trackableCustom = function (a_referrer, a_url, a_param) {
    if (typeof aCustomTrackable  !== "undefined") {
      return aCustomTrackable;
    }
  },

  /* ******** */

  getAllSegmentMethods = function () { 
    return [trackableNatural, trackablePaid, trackableTagger, trackableCustom];
  };
  
  return {

    segment: function (a_referrer, a_url, a_param) {
      
      /*No point in going further if we already tagged*/
      if (isAlreadyTagged())
      {
        return false;
      }

      var f_referrer  = (a_referrer || the_referrer).toLowerCase(),
      f_url           = (a_url || the_url).toLowerCase(),
      f_param         = (decodeURIComponent(a_param || the_param)).toLowerCase(),
      all_segment     = getAllSegmentMethods(),
      segment         = null,
      sucess          = false,
      i;

      for (i = 0; i < all_segment.length; i = i + 1) { 
        segment = all_segment[i](f_referrer, f_url, f_param);
        if (segment && segment.cookie && segment.cookie !== "" && segment.cookie_time) {
          sucess = dropChannelCookie(segment.cookie, segment.cookie_time);
          break;
        }
      }
         
      return ((sucess) ? "cookie:" + segment.cookie + ";cookie_time:" + segment.cookie_time : false);
    }
  };
}());

wbk.inclient.Trackable.segment();

if (typeof wbk.inclient === "undefined") {
  wbk.namespace("inclient");
}

wbk.inclient.Acquisition = (function () {
  
  var the_referrer  = document.referrer.toLowerCase(),
  the_url           = location.pathname.toLowerCase(),
  the_param         = (decodeURIComponent(location.search)).toLowerCase(),
  

  getCMTagValues = function (a_param) {
    
    var a_temp,
    segment     = { channel: "", source: "", group: "", detail: ""};
    
    if (a_param.indexOf("cm_mmc=") === -1) {
      return false; //if no cm_mmc, drops off
    }
    
    /* get the cm_mmc part */
    a_temp = a_param.match(/cm_mmc=([^&]*)/)[1];
    
    /* breaks into 4 */
    a_temp = a_temp.split("-_-");
    
    if (a_temp.length === 4) {
      segment.channel = a_temp[0];
      segment.source  = a_temp[1];
      segment.group   = a_temp[2];
      segment.detail  = a_temp[3];

      return segment;
    }
    else {
      return false;
    }
  },
  
  isSegmentValid = function (segment) {
    return ((typeof segment.channel !== "undefined") && (typeof segment.source !== "undefined") &&
            (typeof segment.group !== "undefined") && (typeof segment.detail !== "undefined"));
  },
  
  isInClientValid = function (acquisition_channel, partner_site, group, detailed_source) {
    return ((typeof acquisition_channel !== "undefined") && acquisition_channel.match(/^[A-Z-_|\.0-9]+$/i) &&
            (typeof partner_site !== "undefined") && partner_site.match(/^[A-Z-_|\.0-9]+$/i) &&
            (typeof group !== "undefined") && group.match(/^[A-Z-_|\.0-9]+$/i) &&
            (typeof detailed_source !== "undefined"));
  },

  writeTrackingFlash = function (trackingFlashUrl, acquisition_channel, partner_site, group, detailed_source) {
    var so = new SWFObject(trackingFlashUrl, "trackFls", "3", "3", 9, "#FFFFFF");
    so.addParam("wmode", "transparent");
    so.addParam("allowScriptAccess", "always");
    
    so.addVariable("acquisition_channel", acquisition_channel);
    so.addVariable("partner_site", partner_site);
    so.addVariable("group", group);
    if (typeof detailed_source !== "undefined") {
      so.addVariable("detailed_source", detailed_source);
    }
    
    so.write(makeContainerDiv("inclientchannel"));
  },
  
  makeContainerDiv = function (divID) {
    var container = document.createElement("div");
    container.id  = divID;
    container.style.position = "absolute";
    container.style.width    = "3px";
    container.style.height   = "3px";
    container.style.font     = "1px monospace";
    container.style.top      = "0px";
    container.style.left     = "0px";
    document.body.appendChild(container);
    return container;
  },
  
  /**********************
   *  Reporting Methods */
  inClientReport = function (acquisition_channel, partner_site, group, detailed_source) {

    if (!isInClientValid(acquisition_channel, partner_site, group, detailed_source)) {
      return false;
    }

    var MODE = "production",
    trackingFlashUrl = (MODE === "production") ? "" :
      "";
    if (MODE === "production") {
      writeTrackingFlash(trackingFlashUrl, acquisition_channel, partner_site, group, detailed_source);
    }
    else {
      if ((typeof console !== "undefined") && (typeof console.log !== "undefined")) {
        console.log("Inclient.report: ", arguments);
      }
      writeTrackingFlash(trackingFlashUrl, acquisition_channel, partner_site, group, detailed_source);
    }
    return true;
  },

  
  
  inclientNatural = function (a_referrer, a_url, a_param) {

    //Excluding the stuff coming in with marketing tags
    if ((typeof a_referrer === "undefined") || a_referrer === "" ||
	(a_param.indexOf("cm_mmc=") !== -1) || (a_param.indexOf("source=") !== -1)) {
      return false;
    }

    var segment = { channel: "", source: "", group: "", detail: ""},

    s_engines   = {/*Order matters, because it stops eval when match*/
      "google-suggest": /google\..*(\?q=|&q=)([^&]+).*source=suggest.*/,
      "google":         /google\..*(\?q=|&q=)([^&]+).*/,
      "yahoo":          /yahoo\.co.*(\?p=|&p=)([^&]+).*/,
      "bing":           /bing\..*(\?q=|&q=)([^&]+).*/,
      "msn":            /msn\..*(\?q=|&q=)([^&]+).*/,
      "msn.live":       /^http:\/\/search\.live\.com.*(\?q=|&q=)([^&]+).*/,
      "yandex":         /yandex\.ru\/.*([\?|&]text=)([^&]+).*/,
      "baidu":          /baidu\.com\/.*([\?|&]wd=)([^&]+).*/,
      "naver":          /naver\.com\/.*([\?|&]query=)([^&]+).*/,
      "ayna":           /ayna\.com\/.*(\?q=|&q=)([^&]+).*/,
      "wala":           /search\.walla\.co\.il\/.*(\?q=|&q=)([^&]+).*/
    },

    the_params  = {
      "google":         /q=([^&]*)/,
      "google-suggest": /q=([^&]*)/,
      "yahoo":          /p=([^&]*)/,
      "bing":           /q=([^&]*)/,
      "msn":            /q=([^&]*)/,
      "msn.live":       /q=([^&]*)/,
      "yandex":         /text=([^&]*)/,
      "baidu":          /wd=([^&]*)/,
      "naver":          /query=([^&]*)/,
      "ayna":           /q=([^&]*)/,
      "wala":           /q=([^&]*)/
    },
    
    tkey, tkey2;

    //figure out which engine
    for (tkey in s_engines) {
      if (a_referrer.match(s_engines[tkey])) {
        segment.channel = "natural-search";
        segment.source = tkey;
        break;
      }
    }

    if (segment.channel === "") {
      return false; //no inclient neither cookie, drops off
    }

    //figure out the local
    segment.group = a_referrer.replace("http://", "").split("/")[0];

    //figure out the search keyword
    for (tkey2 in the_params) {
      if (tkey2 === segment.source) {
        segment.detail = a_referrer.match(the_params[tkey2])[1];
        break;
      }
    }
    return segment;
  },
  
  inclientTagger = function (a_referrer, a_url, a_param) {
    
    var tags = [
      "cm_mmc=paids|",
      "cm_mmc=aff",
      "cm_mmc=banem|cnn", 
      "cm_mmc=banla|",
      "cm_mmc=banna|", 
      "cm_mmc=banap|", 
      "cm_mmc=viral|",
      "cm_mmc=socialm"
    ],
    idx = 0;
    
    for (idx in tags) {
      if (a_param.indexOf(tags[idx]) !== -1) {
        return getCMTagValues(a_param);
      }
    }
    return false; //none matched, so drops off
  },

  /* To be used, to directly report values 
   * variables to be used:
   * var chCustomSegment = { channel: "", source: "", group: "", detail: ""};
   */
  inclientCustom = function (a_referrer, a_url, a_param) {
    if (typeof chCustomSegment  !== "undefined") {
      return chCustomSegment;
    }
  },

  getAllSegmentMethods = function () {
    return [inclientNatural, inclientTagger, inclientCustom];
  };

  $(document).ready(function () {
    wbk.inclient.Acquisition.segment(the_referrer, the_url, the_param);
  });

  return {

    
    segment: function (a_referrer, a_url, a_param) {

      var f_referrer = (a_referrer || the_referrer).toLowerCase(),
      f_url          = (a_url || the_url).toLowerCase(),
      f_param        = (decodeURIComponent(a_param || the_param)).toLowerCase(),
      all_segment    = getAllSegmentMethods(),
      segment        = null,
      sucess         = false, 
      i;

      for (i = 0; i < all_segment.length; i = i + 1) {
        segment = all_segment[i](f_referrer, f_url, f_param);
        if (segment && isSegmentValid(segment) && segment.channel !== "") {
          sucess = inClientReport(segment.channel, segment.source, segment.group, segment.detail);
          break;
        }
      }

      return ((sucess) ? "channel:" + segment.channel + ";source:" + segment.source +
              ";group:" + segment.group + ";detail:" + segment.detail : false);
    }
  };
}());

if(typeof SkypeDetection=="undefined"){SkypeDetection=function(){var _detectionSwfUrl=(location.protocol=="http:")?"":"";var _detectionSwfID="";var _containerID="";var _verbose=false;var _flashCreated=false;var _initalizing=false;var _successCallbacks=[];var _failureCallbacks=[];var _failureTimeout=5000;var createContainer=function(){var container=document.createElement("div");container.id=_containerID;container.style.position="absolute";container.style.width="5px";container.style.height="5px";container.style.top="0px";container.style.left="-10px";var div=document.body&&document.body.appendChild(container);if(!div){log("Seems like container creating failed.");return;}window.setTimeout(createFlash,10);};var createFlash=function(){if(typeof YAHOO!="undefined"&&YAHOO.widget&&YAHOO.widget.SWF){log("Using YUI SWF module to embed Flash content");var yuiswf=new YAHOO.widget.SWF(_containerID,_detectionSwfUrl,{version:9,fixedAttributes:{allowScriptAccess:"always",width:5,height:5}});_flashCreated=true;_detectionSwfID=yuiswf._id;}else{if(window.jQuery&&$&&$.flash&&typeof $.flash.create=="function"){log("Using jquery-swfobject to embed Flash content");$("#"+_containerID).flash({swf:_detectionSwfUrl,id:_detectionSwfID,width:5,height:5,hasVersion:9,params:{allowscriptaccess:"always"}});_flashCreated=true;}else{if(window.jQuery&&$&&$.fn.flash){log("Using jquery-flash to embed Flash content");$("#"+_containerID).flash({id:_detectionSwfID,src:_detectionSwfUrl,width:5,height:5,allowscriptaccess:"always",version:"9.0"});_flashCreated=true;}else{if(typeof swfobject!="undefined"&&swfobject.embedSWF){log("Using SWFObject 2.x to embed Flash content");swfobject.embedSWF(_detectionSwfUrl,_containerID,5,5,"9.0",null,null,{allowScriptAccess:"always"},{id:_detectionSwfID,style:"position: absolute; top: 0px; left: -10px;"},flashStatusCallback);}else{if(typeof deconcept!="undefined"&&deconcept.SWFObject){log("Using SWFObject 1.5 to embed Flash content");var so=new SWFObject(_detectionSwfUrl,_detectionSwfID,5,5,"9.0");so.addParam("allowScriptAccess","always");so.write(_containerID);_flashCreated=true;}else{log("No supported way of embedding Flash was found");detectionFail();return;}}}}}window.setTimeout(detectionFail,_failureTimeout);};var flashStatusCallback=function(e){if(e.success==false){log("Flash embedding via SWFObject embedding failed");detectionFail();}else{if(e.success==true){log("SWFObject callback indicated success");_flashCreated=true;}}};var detectionFail=function(){if(!SkypeDetection.ready){log("Detection seems to have failed, calling failure callbacks");for(var i=0;i<_failureCallbacks.length;i++){_failureCallbacks[i]();}}};var detectionSuccess=function(){log("Detection succeeded, calling success callbacks");for(var i=0;i<_successCallbacks.length;i++){_successCallbacks[i]();}};var log=function(msg){if(_verbose&&typeof console!="undefined"&&console.log){console.log("[SkypeDetection] "+msg);}};var registerCallback=function(stack,fn){for(var i=0;i<stack.length;i++){if(stack[i]===fn){return;}}stack.push(fn);};var readDetectionData=function(){var swf=document.getElementById(_detectionSwfID);try{var data=swf.getData();}catch(e){log("Getting data with swf.getData() failed, likely reason is browser issue with ExternalInterface setup");detectionFail();return;}SkypeDetection.installed=swf.isInstalled();SkypeDetection.internal.segment=data.segment||"";log("Reading detection data, Skype is "+(SkypeDetection.installed?"installed":"not installed"));if(SkypeDetection.installed){SkypeDetection.version=data.version;SkypeDetection.platform=data.platform;SkypeDetection.language=data.language;log("Using Skype version '"+data.version+"' on '"+data.platform+"' platform in language '"+data.language+"'");if(swf.getSharedObjectData){try{data=swf.getSharedObjectData();}catch(e){log("Could not read swf.getSharedObjectData()");}if(data.ui_timezone){SkypeDetection.internal.profileTimezone=data.ui_timezone;}if(data.os_timezone){SkypeDetection.internal.osTimezone=data.os_timezone;}else{SkypeDetection.internal.osTimezone=parseInt(new Date().getTimezoneOffset()/60);}if(data.ui_installdate){if(typeof data.ui_installdate=="string"){data.ui_installdate=parseInt(data.ui_installdate);}if(isNaN(data.ui_installdate)||data.ui_installdate==0){SkypeDetection.internal.profileAge=-1;}else{SkypeDetection.internal.profileAge=Math.floor(((new Date()).getTime()/1000-data.ui_installdate)/60/60/24);}}}if(swf.getSessionData){try{data=swf.getSessionData();}catch(e){log("Could not read swf.getSessionData()");}if(data.username){SkypeDetection.internal.username=data.username;var timeNow=(new Date()).getTime()/1000;if(typeof data.expires!="undefined"&&data.expires<timeNow){SkypeDetection.internal.username="";try{swf.clearSessionData();}catch(e){}}}}}detectionSuccess();};var setUserSegment=function(value){try{var swf=document.getElementById(_detectionSwfID);if(swf.setUserSegment){swf.setUserSegment(value);SkypeDetection.internal.segment=swf.getUserSegment();log("Set user segment to "+value);return true;}}catch(e){log("Setting user segment failed");}return false;};return{setVerbose:function(verbose){_verbose=verbose;log("Enabled verbose mode");},setReady:function(){log("Flash detection code indicated to JS that it is ready");SkypeDetection.ready=true;window.setTimeout(readDetectionData,10);},detect:function(successFn,failureFn){successFn&&registerCallback(_successCallbacks,successFn);failureFn&&registerCallback(_failureCallbacks,failureFn);if(SkypeDetection.ready){log("Detection has already been run before");window.setTimeout(SkypeDetection.installed?detectionSuccess:detectionFail,10);}else{if(!_flashCreated&&!_initalizing){_initalizing=true;log("Creating detection Flash helper");window.setTimeout(createContainer,10);}else{log("Unhandled case, marked not ready and flash somehow created?");}}},isQualifiedVersion:function(reqver){if(!SkypeDetection.ready||!SkypeDetection.installed){return false;}var ver=SkypeDetection.version;log("Comparing detected version "+ver+" to required version "+reqver);ver=ver.split(".");reqver=reqver.split(".");try{if(parseInt(ver[0])>parseInt(reqver[0])||(parseInt(ver[0])==parseInt(reqver[0])&&parseInt(ver[1])>parseInt(reqver[1]))||(parseInt(ver[0])==parseInt(reqver[0])&&parseInt(ver[1])==parseInt(reqver[1])&&parseInt(ver[3])>=parseInt(reqver[3]))){return true;}}catch(e){}return false;},ready:false,version:null,platform:null,language:null,installed:null,internal:{username:null,profileTimezone:null,osTimezone:null,profileAge:null,segment:null,setUserSegment:setUserSegment}};}();}
wbk.util.ConditionalContent = function()
{
    $(function()
    {
        // Get all alternative content blocks
        $("div.alternative").each(function()
        {
            // Hide if it's not default block
            $(this).css("display", $(this).hasClass("cond-default") ? "block" : "none");
        });
    });
    
    var filters = {
        "30days": function()
        {
            var age = SkypeDetection.internal.profileAge;
            if (age && age >= 1 && age <= 30)
            {
                return $("div.cond-30days");
            }
            return [];
        }
        ,"existing": function()
        {
            if (SkypeDetection.installed)
            {
                return $("div.cond-existing");
            }
            return [];
        }
    };
    
    var _getFiltered = function()
    {
        var result = [];
        var tmp;
        for (filter in filters)
        {
            tmp = filters[filter]();
            //SKYPE.log("Running conditionals filter "+filter+" found "+tmp.length+" items");
            result = result.concat(tmp);
            if (result.length) break;
        }
        return result;
    };
    
    var _getRoot = function() 
    {
        var root = "";
        // Top root / or /intl/xx/ root
        var rootRE = /^(\/|\/intl\/[^\/]+\/)(useskype\/)?$/;
        
        // Check if we are on root page
        var result = location.pathname.match(rootRE);
        if (result)
        {
            root = result[1];
        }
        return root;
    };
    
    return {
        run: function()
        {
            wbk.util.ConditionalContent.cookify();
            wbk.util.ConditionalContent.switchAlternatives();
            wbk.util.ConditionalContent.toggleUsername();
            
        }
        
        ,cookify: function()
        {
            var installed = SkypeDetection.installed;
            var age = SkypeDetection.internal.profileAge;
            
            // Set the profile value in SC cookie
            var modTime = SKYPE.user.Preferences.getTimeModified();
            
            
            
            if (installed)
            {
                var modify = false;
                // 24 hours delay is for new user check
                if (isNaN(modTime) || modTime < (new Date()).getTime() / 1000 - 60*60*24)
                {
                    wbk.log("Modification time is more than a day ago, checking profile");
                    if (age && age > 30)
                    {
                        wbk.log("Setting cookie profile to: existing");
                        wbk.user.Preferences.setClientProfile("existing");
                    }
                    else
                    {
                        wbk.log("Setting cookie profile to: 30days");
                        wbk.user.Preferences.setClientProfile("30days");
                    }
                    modify = true;
                }
                
                // Check wether client version has been updated
                var skypeVer = wbk.util.ConditionalContent.getPlatformID()+"/"+SkypeDetection.version+"/";
                
                // Ignore when source=installer etc is on URL
                if (skypeVer != wbk.user.Preferences.getVersion() && location.search.indexOf("source=") == -1) {
                    wbk.log("Setting installed version to "+skypeVer);
                    wbk.user.Preferences.setVersion(skypeVer);
                    modify = true;
                }
                
                // Only update cookie if needed
                if (modify) {
                    wbk.log("Updating cookie with client profile info");
                    wbk.user.Preferences.save();
                }
            }
        }
        
        ,getPlatformID: function()
        {
            switch (SkypeDetection.platform)
            {
                case "windows": return 0;
                case "macosx": return 3;
                case "linux": return 2;
            }
            return "";
        }
        
        ,switchPages: function()
        {
            // 
            // if landing on root
            //  - send to useskype if known user
            // 
            // if landing on useskype
            //  - send to completedownload if known download abandoner
            //  - send to newtoskype if seems totally new
            //  - send to welcomeback if returning user age > 30 days
            //  - leave on useskype if known and age < 30 days
            // 
            
            var installed = SkypeDetection.installed;
            var age = SkypeDetection.profileAge;
            var root = _getRoot();
            
            // known user on front page
            if (installed && location.pathname == root)
            {
                // returning user age > 30 days
                if (age && age > 30)
                {
                    location.href = root+"home/";
                }
                else
                {
                    location.href = root+"home/";
                }
            }
            else if (location.pathname == root+"home/")
            {
                // seems totally new
                if (!installed)
                {
                    location.href = root+"home/";
                }
                // returning user age > 30 days
                else if (installed && age && age > 30)
                {
                    location.href = root+"home/";
                }
                // known and age < 30 days
                else if (installed && age && age < 30)
                {
                    wbk.log("Leave on existing page");
                }
                // known download abandoner
                // TODO: add completedownload check with other SO data
            }
        }
        
        ,switchAlternatives: function()
        {
            
            
            var enableAlts = _getFiltered();
            if (enableAlts.length)
            {
                $(enableAlts).css("display", "block");
                wbk.util.ConditionalContent.hideDefaults();
            }
            else
            {
                wbk.util.ConditionalContent.showDefaults();
            }
        }
        ,showDefaults: function()
        {
            $("div.cond-default").each(function()
            {
                $(this).css("display", "block");
            });
        }
        ,hideDefaults: function()
        {
            $("div.cond-default").each(function()
            {
                $(this).css("display", "none");
            });
        }
        
        ,toggleUsername: function()
        {
            var username = SkypeDetection.internal.username;
            
            if (typeof username != "string" || !username.length) return;
            
            $("#loggedin-username").html(username.replace(/[<>]/, ""));
            $("#loggedin-welcome").css("display", "inline");
            $("#loggedin-links").css("display", "inline");
            $("#loggedin-signout").css("display", "inline");
            $("#loggedin-signin").css("display", "none");
            $("#loggedin-haveskype").css("display", "none");
            $("#main-menu-account").css("display", "inline");
        }
    };
}();

if (typeof SkypeDetection != "undefined")
{
	$(document).ready(function(){
	    SkypeDetection.detect(
	        	wbk.util.ConditionalContent.run
	    );
	});
}

wbk.namespace("flash");
wbk.flash._player = function(url) {
	var _dynCssReady = false;

	// Dom / event manipulations
	var _getById  = (typeof jQuery != "undefined") ? function(id) { return $("#" + id)[0]; }             : YAHOO.util.Dom.get;
	var _domReady = (typeof jQuery != "undefined") ? function(callback) { $(document).ready(callback); } : function(callback) { YAHOO.util.Event.onDOMReady(callback); };

	var _removeClass = (typeof jQuery != "undefined") ? function(element, className) { $(element).removeClass(className); } : YAHOO.util.Dom.removeClass;
	var _addClass    = (typeof jQuery != "undefined") ? function(element, className) { $(element).addClass(className); }    : YAHOO.util.Dom.addClass;
	
	var _divIds = [];

	var _getLang = function() {
		// get selected language from language bar
		var lang = _getById("userLanguage") && _getById("userLanguage").options[_getById("userLanguage").selectedIndex].value;

		// if no language bar, get it from html attribute (exclude 'en')
		if (!lang) {
			if ("en" != document.getElementsByTagName("html")[0].lang) {
				lang = document.getElementsByTagName("html")[0].lang;
			}
		}

		//trust cookie when no language bar on page
		if (!lang && wbk && wbk.user && wbk.user.Preferences) {
			lang = wbk.user.Preferences.getLanguage();
		}

		return lang;
	};


	var writePlayer = function(divId, width, height, conf, bgcolor) {
		var so = new SWFObject(url, "videoPlayer"+_divIds.length, width, height, 9, bgcolor);
		so.addParam("menu", "false");
		if (conf.transparent) {
			so.addParam("wmode", "transparent");
		} else {
			so.addParam("wmode", "opaque");
		}
		so.addParam("AllowScriptAccess", "always");
		so.addParam("AllowFullScreen", "true");
		so.useExpressInstall('/i/flash/expressinstall.swf');

		_divIds.push(divId);

		//conf object to flashVars format
		for (name in conf) {
			so.addVariable(name, conf[name]);
		}

		//autoplay rule from url
		if (document.location.href.indexOf("autoplay") > 0) {
			so.addVariable("autoPlay","true");
		}

		//tracking
		if (typeof conf.tracking != "undefined" && typeof s_account != "undefined") {
			so.addVariable("omniAccount", s_account);
		}

		//language
		if (typeof conf.lang == "undefined") {
			//try to detect document language
			var lang = _getLang();
			so.addVariable("lang", lang);
		}

		//avoid noflash content flicker in old Firefox and IE
		_removeClass(divId, "jsHidden");

		var flashOk = so.write(divId);
		var isIPhone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i));
		var hasIPhoneMovie = (typeof conf.iphoneUrl != "undefined");
		
		if (!flashOk && isIPhone && hasIPhoneMovie) {
			writeIPhone(divId, conf.iphoneUrl, width, height);
		}
	};


	var writeIPhone = function(divId, url, width, height) {
		if (_getById(divId)) {
			_getById(divId).innerHTML = '<embed src="'+url+'" target="myself" width="'+width+'" height="'+height+'" controller="false" autoplay="false" scale="1" cache="true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"/>';
		}
	};
	
	//returns flash object based on original div
	var getSwf = function(divId) {
		for (i in _divIds) {
			if (_divIds[i] == divId) {
				return (navigator.appName.indexOf("Microsoft") != -1 ? window["videoPlayer"+i] : document["videoPlayer"+i]);
			}
		}
		return null;
	};


	return {
		
		write: function(divId, width, height, conf, bgcolor) {
			//error conditions
			if (typeof SWFObject == "undefined"
			    || arguments.length < 4
			    || typeof conf != "object") {
				return;
			}

			// Load dynamic css file that contains jsHidden class which hides "no flash installed" alert warning
			if (!_dynCssReady && wbk.loadCss) {
				wbk.loadCss('');
				_dynCssReady = true;
			}

			_domReady(function() {
				writePlayer(divId, width, height, conf, bgcolor || "#FFFFFF");
			});
		}
		,stop: function(divId) {
			try {
				var swf = getSwf(divId);
				if (swf) {
					swf.stopVideo();
				}
			} catch(e) {}
		}
	};
};
// We need to do some browser sniffing to weed out IE 6 only
// because only IE6 needs this hover hack.
if (document.all && !window.opera && (navigator.appVersion.search("MSIE 6.0") != -1) && $.browser.msie) {
  function IEHoverPseudo() {
      $("ul.nice-menu li.menuparent").hover(function(){
          $(this).addClass("over").find("> ul").show().addShim();
        },function(){
          $(this).removeClass("over").find("> ul").removeShim().hide();
        }
      );
      // Add a hover class to all li for CSS styling. Silly naming is done
      // so we don't break CSS compatibility for .over class already in use
      // and due to the fact that IE6 doesn't understand multiple selectors.
      $("ul.nice-menu li").hover(function(){
          $(this).addClass("ie-over");
        },function(){
          $(this).removeClass("ie-over");
        }
      );
    }

    // This is the jquery method of adding a function
    // to the BODY onload event.  (See jquery.com)
    $(document).ready(function(){ IEHoverPseudo() });
}

$.fn.addShim = function() {
  return this.each(function(){
	  if(document.all && $("select").size() > 0) {
	    var ifShim = document.createElement('iframe');
	    ifShim.src = "javascript:false";
			ifShim.style.width=$(this).width()+1+"px";
      ifShim.style.height=$(this).find("> li").size()*23+20+"px";
			ifShim.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
		  ifShim.style.zIndex="0";
    $(this).prepend(ifShim);
      $(this).css("zIndex","99");
		}
	});
};

$.fn.removeShim = function() {
  return this.each(function(){
	  if (document.all) $("iframe", this).remove();
	});
};
;


(function($) {
	$.prettyPhoto = {version: '3.0'};
	
	$.fn.prettyPhoto = function(pp_settings) {
		pp_settings = jQuery.extend({
			animationSpeed: 'fast', /* fast/slow/normal */
			slideshow: false, /* false OR interval time in ms */
			autoplay_slideshow: false, /* true/false */
			opacity: 0.80, /* Value between 0 and 1 */
			showTitle: false, /* true/false */
			allowresize: true, /* true/false */
			default_width: 500,
			default_height: 344,
			counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
			theme: 'facebook', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
			hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
			wmode: 'opaque', /* Set the flash wmode attribute */
			autoplay: true, /* Automatically start videos: True/False */
			modal: false, /* If set to true, only the close button will close the window */
			overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
			changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
			callback: function(){}, /* Called when prettyPhoto is closed */
			markup: '<div class="pp_pic_holder"> \
						<div class="ppt">&nbsp;</div> \
						<div class="pp_top"> \
							<div class="pp_left"></div> \
							<div class="pp_middle"></div> \
							<div class="pp_right"></div> \
						</div> \
						<div class="pp_content_container"> \
							<div class="pp_left"> \
							<div class="pp_right"> \
								<div class="pp_content"> \
									<div class="pp_loaderIcon"></div> \
									<div class="pp_fade"> \
										<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
										<div class="pp_hoverContainer"> \
											<a class="pp_next" href="#">next</a> \
											<a class="pp_previous" href="#">previous</a> \
										</div> \
										<div id="pp_full_res"></div> \
										<div class="pp_details clearfix"> \
											<a class="pp_close" href="#">Close</a> \
											<p class="pp_description"></p> \
											<div class="pp_nav"> \
												<a href="#" class="pp_arrow_previous">Previous</a> \
												<p class="currentTextHolder">0/0</p> \
												<a href="#" class="pp_arrow_next">Next</a> \
											</div> \
										</div> \
									</div> \
								</div> \
							</div> \
							</div> \
						</div> \
						<div class="pp_bottom"> \
							<div class="pp_left"></div> \
							<div class="pp_middle"></div> \
							<div class="pp_right"></div> \
						</div> \
					</div> \
					<div class="pp_overlay"></div>',
			gallery_markup: '<div class="pp_gallery"> \
								<a href="#" class="pp_arrow_previous">Previous</a> \
								<ul> \
									{gallery} \
								</ul> \
								<a href="#" class="pp_arrow_next">Next</a> \
							</div>',
			image_markup: '<img id="fullResImage" src="" />',
			flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
			quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',
			iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
			inline_markup: '<div class="pp_inline clearfix">{content}</div>'
		}, pp_settings);
		
		// Global variables accessible only by prettyPhoto
		var matchedObjects = this, percentBased = false, correctSizes,
		
		// prettyPhoto container specific
		pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
		
		// Window size
		windowHeight = $(window).height(), windowWidth = $(window).width(),

		// Global elements
		pp_slideshow;
		
		doresize = true, scrollPos = _getScroll();
	
		// Window/Keyboard events
		$(window).unbind('scroll').scroll(function(){ scrollPos = _getScroll(); _centerOverlay(); });
		$(window).unbind('resize').resize(function(){ _centerOverlay(); _resizeOverlay(); });
		$(document).unbind('keydown').keydown(function(e){
			if(typeof $pp_pic_holder != 'undefined'){
				if($pp_pic_holder.is(':visible')){
					switch(e.keyCode){
						case 37:
							$.prettyPhoto.changePage('previous');
							break;
						case 39:
							$.prettyPhoto.changePage('next');
							break;
						case 27:
							if(!settings.modal)
							$.prettyPhoto.close();
							break;
					};
					return false;
				};
			};
		});
		
		
		/**
		* Initialize prettyPhoto.
		*/
		$.prettyPhoto.initialize = function() {
			settings = pp_settings;
			
			if($.browser.msie && parseInt($.browser.version) == 6) settings.theme = "light_square"; // Fallback to a supported theme for IE6
			
			_buildOverlay(this); // Build the overlay {this} being the caller
			
			setItem = (_getFileType($(this).attr('href')) != 'youtube') ? $(this).attr('href').toLowerCase() : $(this).attr('href');
			
			setPosition = jQuery.inArray(setItem, pp_images); // Define where in the array the clicked item is positionned

			$.prettyPhoto.open();
			
			return false;
		}


		/**
		* Opens the prettyPhoto modal box.
		* @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
		* @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
		* @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
		*/
		$.prettyPhoto.open = function() {
			if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables
				settings = pp_settings;
				_buildOverlay(this); // Build the overlay {this} being the caller
				pp_images = $.makeArray(arguments[0]);
				pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray("");
				pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
				isSet = (pp_images.length > 1) ? true : false;
				setPosition = 0;
			}

			if($.browser.msie && $.browser.version == 6) $('select').css('visibility','hidden'); // To fix the bug with IE select boxes
			
			if(settings.hideflash) $('object,embed').css('visibility','hidden'); // Hide the flash

			_checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images.
		
			$('.pp_loaderIcon').show();
		
			// Fade the content in
			if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
			$pp_overlay.show().fadeTo(settings.animationSpeed,settings.opacity);

			// Display the current position
			$pp_pic_holder.find('.currentTextHolder').text((setPosition+1) + settings.counter_separator_label + $(pp_images).size());

			// Set the description
			$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[setPosition]));

			// Set the title
			(settings.showTitle && pp_titles[setPosition] != "") ? $ppt.html(unescape(pp_titles[setPosition])) : $ppt.html('&nbsp;');
			
			// Get the dimensions
			movie_width = ( parseFloat(grab_param('width',pp_images[setPosition])) ) ? grab_param('width',pp_images[setPosition]) : settings.default_width.toString();
			movie_height = ( parseFloat(grab_param('height',pp_images[setPosition])) ) ? grab_param('height',pp_images[setPosition]) : settings.default_height.toString();
			
			// If the size is % based, calculate according to window dimensions
			if(movie_width.indexOf('%') != -1 || movie_height.indexOf('%') != -1){
				movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 100);
				movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 100);
				percentBased = true;
			};
			
			// Fade the holder
			$pp_pic_holder.fadeIn(function(){
				imgPreloader = "";
				
				// Inject the proper content
				switch(_getFileType(pp_images[setPosition])){
					case 'image':
						imgPreloader = new Image();

						// Preload the neighbour images
						nextImage = new Image();
						if(isSet && setPosition > $(pp_images).size()) nextImage.src = pp_images[setPosition + 1];
						prevImage = new Image();
						if(isSet && pp_images[setPosition - 1]) prevImage.src = pp_images[setPosition - 1];

						$pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup;
						$pp_pic_holder.find('#fullResImage').attr('src',pp_images[setPosition]);

						imgPreloader.onload = function(){
							// Fit item to viewport
							correctSizes = _fitToViewport(imgPreloader.width,imgPreloader.height);

							_showContent();
						};

						imgPreloader.onerror = function(){
							alert('Image cannot be loaded. Make sure the path is correct and image exist.');
							$.prettyPhoto.close();
						};
					
						imgPreloader.src = pp_images[setPosition];
					break;
				
					case 'youtube':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport

						movie = 'http://www.youtube.com/v/'+grab_param('v',pp_images[setPosition]);
						if(settings.autoplay) movie += "&autoplay=1";
					
						toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
					break;
				
					case 'vimeo':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
					
						movie_id = pp_images[setPosition];
						movie = 'http://vimeo.com/moogaloop.swf?clip_id='+ movie_id.replace('http://vimeo.com/','');
						if(settings.autoplay) movie += "&autoplay=1";
				
						toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
					break;
				
					case 'quicktime':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
						correctSizes['height']+=15; correctSizes['contentHeight']+=15; correctSizes['containerHeight']+=15; // Add space for the control bar
				
						toInject = settings.quicktime_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[setPosition]).replace(/{autoplay}/g,settings.autoplay);
					break;
				
					case 'flash':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
					
						flash_vars = pp_images[setPosition];
						flash_vars = flash_vars.substring(pp_images[setPosition].indexOf('flashvars') + 10,pp_images[setPosition].length);

						filename = pp_images[setPosition];
						filename = filename.substring(0,filename.indexOf('?'));
					
						toInject =  settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
					break;
				
					case 'iframe':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
				
						frame_url = pp_images[setPosition];
						frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
				
						toInject = settings.iframe_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,frame_url);
					break;
				
					case 'inline':
						// to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
						myClone = $(pp_images[setPosition]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body'));
						correctSizes = _fitToViewport($(myClone).width(),$(myClone).height());
						$(myClone).remove();
						toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[setPosition]).html());
					break;
				};

				if(!imgPreloader){
					$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
				
					// Show content
					_showContent();
				};
			});

			return false;
		};

	
		/**
		* Change page in the prettyPhoto modal box
		* @param direction {String} Direction of the paging, previous or next.
		*/
		$.prettyPhoto.changePage = function(direction){
			currentGalleryPage = 0;
			
			if(direction == 'previous') {
				setPosition--;
				if (setPosition < 0){
					setPosition = 0;
					return;
				};
			}else if(direction == 'next'){
				if(pp_slideshow && $('.pp_arrow_next').is('.disabled')) {
					setPosition = -1;
				}else if($('.pp_arrow_next').is('.disabled')){
					return;
				}
				setPosition++;
			}else{
				setPosition=direction;
			};

			if(!doresize) doresize = true; // Allow the resizing of the images

			_hideContent(function(){ $.prettyPhoto.open(); });
		};


		/**
		* Change gallery page in the prettyPhoto modal box
		* @param direction {String} Direction of the paging, previous or next.
		*/
		$.prettyPhoto.changeGalleryPage = function(direction){
			if(direction=='next'){
				currentGalleryPage ++;

				if(currentGalleryPage > totalPage){
					currentGalleryPage = 0;
				};
			}else if(direction=='previous'){
				currentGalleryPage --;

				if(currentGalleryPage < 0){
					currentGalleryPage = totalPage;
				};
			};
			
			// Slide the pages, logic ++
			$pp_pic_holder.find('.pp_gallery li').each(function(i){
				$(this).animate({
					'left': (i * itemWidth) - ((itemsPerPage * itemWidth) * currentGalleryPage)
				});
			});
		};


		/**
		* Start the slideshow...
		*/
		$.prettyPhoto.startSlideshow = function(){
			if(typeof pp_slideshow == 'undefined'){
				$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){
					$.prettyPhoto.stopSlideshow();
					return false;
				});
			}else{
				$.prettyPhoto.changePage('next');
			};
			
			pp_slideshow = setTimeout($.prettyPhoto.startSlideshow,settings.slideshow);
		}


		/**
		* Stop the slideshow...
		*/
		$.prettyPhoto.stopSlideshow = function(){
			$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){
				$.prettyPhoto.startSlideshow();
				return false;
			});
			clearTimeout(pp_slideshow);
		}


		/**
		* Closes the prettyPhoto modal box.
		*/
		$.prettyPhoto.close = function(){
			clearTimeout(pp_slideshow);
			
			$pp_pic_holder.find('object,embed').css('visibility','hidden');
			
			$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animationSpeed,function(){ $(this).remove(); });
			
			$pp_overlay.fadeOut(settings.animationSpeed, function(){
				if($.browser.msie && $.browser.version == 6) $('select').css('visibility','visible'); // To fix the bug with IE select boxes
				
				if(settings.hideflash) $('object,embed').css('visibility','visible'); // Show the flash
				
				$(this).remove(); // No more need for the prettyPhoto markup
				
				settings.callback();
				
				doresize = true;
				
				delete settings;
			});
		};
	
		/**
		* Set the proper sizes on the containers and animate the content in.
		*/
		_showContent = function(){
			$('.pp_loaderIcon').hide();
			
			$ppt.fadeTo(settings.animationSpeed,1);

			// Calculate the opened top position of the pic holder
			projectedTop = scrollPos['scrollTop'] + ((windowHeight/2) - (correctSizes['containerHeight']/2));
			if(projectedTop < 0) projectedTop = 0;

			// Resize the content holder
			$pp_pic_holder.find('.pp_content').animate({'height':correctSizes['contentHeight']},settings.animationSpeed);
			
			// Resize picture the holder
			$pp_pic_holder.animate({
				'top': projectedTop,
				'left': (windowWidth/2) - (correctSizes['containerWidth']/2),
				'width': correctSizes['containerWidth']
			},settings.animationSpeed,function(){
				$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(correctSizes['height']).width(correctSizes['width']);

				$pp_pic_holder.find('.pp_fade').fadeIn(settings.animationSpeed); // Fade the new content

				// Show the nav
				if(isSet && _getFileType(pp_images[setPosition])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }
			
				if(correctSizes['resized']) $('a.pp_expand,a.pp_contract').fadeIn(settings.animationSpeed); // Fade the resizing link if the image is resized
				
				settings.changepicturecallback(); // Callback!
			});
			
			if(isSet && settings.overlay_gallery && _getFileType(pp_images[setPosition])=="image") {
				itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
				navWidth = (settings.theme == "facebook") ? 58 : 38; // Define the arrow width depending on the theme
				
				itemsPerPage = Math.floor((correctSizes['containerWidth'] - 100 - navWidth) / itemWidth);
				itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
				totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1;

				// Hide the nav in the case there's no need for links
				if(totalPage == 0){
					navWidth = 0; // No nav means no width!
					$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').hide();
				}else{
					navWidth = (settings.theme == "facebook") ? 58 : 38; // Define the arrow width
					
					$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').show();
				};

				galleryWidth = itemsPerPage * itemWidth + navWidth;
				
				// Set the proper width to the gallery items
				$pp_pic_holder.find('.pp_gallery')
					.width(galleryWidth)
					.css('margin-left',-(galleryWidth/2));
					
				$pp_pic_holder.find('.pp_gallery ul').width(itemsPerPage * itemWidth);
				
				// Reposition the LIs
				$pp_pic_holder.find('.pp_gallery ul li').each(function(i){
					$(this).css({
						'position':'absolute',
						'left': i * itemWidth
					});
				});
			}else{
				$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');
				$pp_pic_holder.find('.pp_gallery').hide();
			};
			
			if(settings.autoplay_slideshow) {
				pp_slideshow = clearTimeout(pp_slideshow);
				$.prettyPhoto.startSlideshow();
				settings.autoplay_slideshow = false; // Because we only want it to autostart on the first opening.
			};
		};
		
		/**
		* Hide the content...DUH!
		*/
		function _hideContent(callback){
			// Fade out the current picture
			$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
			$pp_pic_holder.find('.pp_fade').fadeOut(settings.animationSpeed,function(){
				$('.pp_loaderIcon').show();
				
				callback();
			});
		};
	
		/**
		* Check the item position in the gallery array, hide or show the navigation links
		* @param setCount {integer} The total number of items in the set
		*/
		function _checkPosition(setCount){
			// If at the end, hide the next link
			if(setPosition == setCount-1) {
				$pp_pic_holder.find('a.pp_next').css('visibility','hidden');
				$pp_pic_holder.find('.pp_nav a.pp_arrow_next').addClass('disabled').unbind('click');
			}else{ 
				$pp_pic_holder.find('a.pp_next').css('visibility','visible');
				$pp_pic_holder.find('.pp_nav a.pp_arrow_next.disabled').removeClass('disabled').bind('click',function(){
					$.prettyPhoto.changePage('next');
					return false;
				});
			};
		
			// If at the beginning, hide the previous link
			if(setPosition == 0) {
				$pp_pic_holder.find('a.pp_previous').css('visibility','hidden');
				$pp_pic_holder.find('.pp_nav a.pp_arrow_previous').addClass('disabled').unbind('click');
			}else{
				$pp_pic_holder.find('a.pp_previous').css('visibility','visible');
				$pp_pic_holder.find('.pp_nav a.pp_arrow_previous.disabled').removeClass('disabled').bind('click',function(){
					$.prettyPhoto.changePage('previous');
					return false;
				});
			};
			
			(setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set.
		};
	
		/**
		* Resize the item dimensions if it's bigger than the viewport
		* @param width {integer} Width of the item to be opened
		* @param height {integer} Height of the item to be opened
		* @return An array containin the "fitted" dimensions
		*/
		function _fitToViewport(width,height){
			resized = false;

			_getDimensions(width,height);
			
			// Define them in case there's no resize needed
			imageWidth = width, imageHeight = height;

			if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allowresize && !percentBased) {
				resized = true, fitting = false;
			
				while (!fitting){
					if((pp_containerWidth > windowWidth)){
						imageWidth = (windowWidth - 200);
						imageHeight = (height/width) * imageWidth;
					}else if((pp_containerHeight > windowHeight)){
						imageHeight = (windowHeight - 200);
						imageWidth = (width/height) * imageHeight;
					}else{
						fitting = true;
					};

					pp_containerHeight = imageHeight, pp_containerWidth = imageWidth;
				};
			
				_getDimensions(imageWidth,imageHeight);
			};

			return {
				width:Math.floor(imageWidth),
				height:Math.floor(imageHeight),
				containerHeight:Math.floor(pp_containerHeight),
				containerWidth:Math.floor(pp_containerWidth) + 40, // 40 behind the side padding
				contentHeight:Math.floor(pp_contentHeight),
				contentWidth:Math.floor(pp_contentWidth),
				resized:resized
			};
		};
		
		/**
		* Get the containers dimensions according to the item size
		* @param width {integer} Width of the item to be opened
		* @param height {integer} Height of the item to be opened
		*/
		function _getDimensions(width,height){
			width = parseFloat(width);
			height = parseFloat(height);
			
			// Get the details height, to do so, I need to clone it since it's invisible
			$pp_details = $pp_pic_holder.find('.pp_details');
			$pp_details.width(width);
			detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
			$pp_details = $pp_details.clone().appendTo($('body')).css({
				'position':'absolute',
				'top':-10000
			});
			detailsHeight += $pp_details.height();
			detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
			if($.browser.msie && $.browser.version==7) detailsHeight+=8;
			$pp_details.remove();
			
			// Get the container size, to resize the holder to the right dimensions
			pp_contentHeight = height + detailsHeight;
			pp_contentWidth = width;
			pp_containerHeight = pp_contentHeight + $ppt.height() + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
			pp_containerWidth = width;
		}
	
		function _getFileType(itemSrc){
			if (itemSrc.match(/youtube\.com\/watch/i)) {
				return 'youtube';
			}else if (itemSrc.match(/vimeo\.com/i)) {
				return 'vimeo';
			}else if(itemSrc.indexOf('.mov') != -1){ 
				return 'quicktime';
			}else if(itemSrc.indexOf('.swf') != -1){
				return 'flash';
			}else if(itemSrc.indexOf('iframe') != -1){
				return 'iframe'
			}else if(itemSrc.substr(0,1) == '#'){
				return 'inline';
			}else{
				return 'image';
			};
		};
	
		function _centerOverlay(){
			if(doresize && typeof $pp_pic_holder != 'undefined') {
				titleHeight = $ppt.height(), contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width();
				
				projectedTop = (windowHeight/2) + scrollPos['scrollTop'] - (contentHeight/2);
				
				$pp_pic_holder.css({
					'top': projectedTop,
					'left': (windowWidth/2) + scrollPos['scrollLeft'] - (contentwidth/2)
				});
			};
		};
	
		function _getScroll(){
			if (self.pageYOffset) {
				return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
			} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
				return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
			} else if (document.body) {// all other Explorers
				return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
			};
		};
	
		function _resizeOverlay() {
			windowHeight = $(window).height(), windowWidth = $(window).width();
			
			if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height());
		};
	
		function _buildOverlay(caller){
			// Find out if the picture is part of a set
			theRel = $(caller).attr('rel');
			galleryRegExp = /\[(?:.*)\]/;
			isSet = (galleryRegExp.exec(theRel)) ? true : false;
			
			// Put the SRCs, TITLEs, ALTs into an array.
			pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(caller).attr('href'));
			pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(caller).find('img').attr('alt'));
			pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(caller).attr('title'));
			
			$('body').append(settings.markup); // Inject the markup
			
			$pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
			
			// Inject the inline gallery!
			if(isSet && settings.overlay_gallery) {
				currentGalleryPage = 0;
				toInject = "";
				for (var i=0; i < pp_images.length; i++) {
					var regex = new RegExp("(.*?)\.(jpg|jpeg|png|gif)$");
					pp_images[i] = pp_images[i].toLowerCase();
					var results = regex.exec( pp_images[i] );
					if(!results){
						classname = 'default';
					}else{
						classname = '';
					}
					toInject += "<li class='"+classname+"'><a href='#'><img src='" + pp_images[i] + "' width='50' alt='' /></a></li>";
				};
				
				toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
				
				$pp_pic_holder.find('#pp_full_res').after(toInject);
				
				$pp_pic_holder.find('.pp_gallery .pp_arrow_next').click(function(){
					$.prettyPhoto.changeGalleryPage('next');
					$.prettyPhoto.stopSlideshow();
					return false;
				});
				
				$pp_pic_holder.find('.pp_gallery .pp_arrow_previous').click(function(){
					$.prettyPhoto.changeGalleryPage('previous');
					$.prettyPhoto.stopSlideshow();
					return false;
				});
				
				$pp_pic_holder.find('.pp_content').hover(
					function(){
						$pp_pic_holder.find('.pp_gallery').fadeIn();
					},
					function(){
						$pp_pic_holder.find('.pp_gallery').fadeOut();
					});

				itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
				$pp_pic_holder.find('.pp_gallery ul li').each(function(i){
					$(this).css({
						'position':'absolute',
						'left': i * itemWidth
					});

					$(this).find('a').unbind('click').click(function(){
						$.prettyPhoto.changePage(i);
						$.prettyPhoto.stopSlideshow();
						return false;
					});
				});
			};
			
			
			// Inject the play/pause if it's a slideshow
			if(settings.slideshow){
				$pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
				$pp_pic_holder.find('.pp_nav .pp_play').click(function(){
					$.prettyPhoto.startSlideshow();
					return false;
				});
			}
			
			$pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
			
			$pp_overlay
				.css({
					'opacity':0,
					'height':$(document).height(),
					'width':$(document).width()
					})
				.bind('click',function(){
					if(!settings.modal) $.prettyPhoto.close();
				});

			$('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; });

			$('a.pp_expand').bind('click',function(e){
				// Expand the image
				if($(this).hasClass('pp_expand')){
					$(this).removeClass('pp_expand').addClass('pp_contract');
					doresize = false;
				}else{
					$(this).removeClass('pp_contract').addClass('pp_expand');
					doresize = true;
				};
			
				_hideContent(function(){ $.prettyPhoto.open(); });
		
				return false;
			});
		
			$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){
				$.prettyPhoto.changePage('previous');
				$.prettyPhoto.stopSlideshow();
				return false;
			});
		
			$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){
				$.prettyPhoto.changePage('next');
				$.prettyPhoto.stopSlideshow();
				return false;
			});
			
			_centerOverlay(); // Center it
		};
		
		return this.unbind('click').click($.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
	};
	
	function grab_param(name,url){
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( url );
	  return ( results == null ) ? "" : results[1];
	}
	
})(jQuery);
;
﻿/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);;
$(document).ready(function() {

        function megaHoverOver(){
                $(this).find(".sub").stop().fadeTo('fast', 1).show();
                $(this).find(".parent").addClass("selected");


                //Calculate width of all ul's
                (function($) {
                        jQuery.fn.calcSubWidth = function() {
                                rowWidth = 0;
                                //Calculate row
                                $(this).find("ul").each(function() {
                                        rowWidth += $(this).width();
                                });
                        };
                })(jQuery);

                if ( $(this).find(".row").length > 0 ) { //If row exists...
                        var biggestRow = 0;
                        //Calculate each row
                        $(this).find(".row").each(function() {
                                $(this).calcSubWidth();
                                //Find biggest row
                                if(rowWidth > biggestRow) {
                                        biggestRow = rowWidth;
                                }
                        });
                        //Set width
                        $(this).find(".sub").css({'width' :biggestRow});
                        $(this).find(".row:last").css({'margin':'0'});

                } else { //If row does not exist...

                        $(this).calcSubWidth();
                        //Set Width
                        $(this).find(".sub").css({'width' : rowWidth});
                }

        }

function megaHoverOut(){
          $(this).find(".parent").removeClass("selected");
          $(this).find(".sub").stop().fadeTo('fast', 0, function() {
          $(this).hide();
          });
        }


        var config = {
                 sensitivity: 2,                // number = sensitivity threshold (must be 1 or higher)
                 interval: 0,                   // number = milliseconds for onMouseOver polling interval
                 over: megaHoverOver,   // function = onMouseOver callback (REQUIRED)
                 timeout: 0,                    // number = milliseconds delay before onMouseOut
                 out: megaHoverOut              // function = onMouseOut callback (REQUIRED)
        };

        $("ul#topnav li .sub").css({'opacity':'0'});
        $("ul#topnav li").hoverIntent(config);

});

;


