/*
* jQuery JavaScript Library v1.3.2
* http://jquery.com/
*
* Copyright (c) 2009 John Resig
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*
* Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
* Revision: 6246
*/

if (typeof(jQuery) == 'undefined') {
	(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
	(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.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\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<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>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
}

/*
 * Date Format 1.2.2
 * (c) 2007-2008 Steven Levithan <stevenlevithan.com>
 * MIT license
 * Includes enhancements by Scott Trenda <scott.trenda.net> and Kris Kowal <cixar.com/~kris.kowal/>
 *
 * Accepts a date, a mask, or a date and a mask.
 * Returns a formatted version of the given date.
 * The date defaults to the current date/time.
 * The mask defaults to dateFormat.masks.default.
 */
var mindzWidgetDateFormat = function() {
    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function(val, len) {
		    val = String(val);
		    len = len || 2;
		    while (val.length < len) val = "0" + val;
		    return val;
		};

    // Regexes and supporting functions are cached through closure
    return function(date, mask, utc) {
        var dF = mindzWidgetDateFormat;

        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
        if (arguments.length == 1 && (typeof date == "string" || date instanceof String) && !/\d/.test(date)) {
            mask = date;
            date = undefined;
        }

        // Passing date through Date applies Date.parse, if necessary
        date = date ? new Date(date) : new Date();
        if (isNaN(date)) throw new SyntaxError("invalid date");

        mask = String(dF.masks[mask] || mask || dF.masks["default"]);

        // Allow setting the utc argument via the mask
        if (mask.slice(0, 4) == "UTC:") {
            mask = mask.slice(4);
            utc = true;
        }
        var _ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
			    d: d,
			    dd: pad(d),
			    ddd: dF.i18n.dayNames[mindzWidgetSettings['profile']['preferredLanguageId']][D],
			    dddd: dF.i18n.dayNames[mindzWidgetSettings['profile']['preferredLanguageId']][D + 7],
			    m: m + 1,
			    mm: pad(m + 1),
			    mmm: dF.i18n.monthNames[mindzWidgetSettings['profile']['preferredLanguageId']][m],
			    mmmm: dF.i18n.monthNames[mindzWidgetSettings['profile']['preferredLanguageId']][m + 12],
			    yy: String(y).slice(2),
			    yyyy: y,
			    h: H % 12 || 12,
			    hh: pad(H % 12 || 12),
			    H: H,
			    HH: pad(H),
			    M: M,
			    MM: pad(M),
			    s: s,
			    ss: pad(s),
			    l: pad(L, 3),
			    L: pad(L > 99 ? Math.round(L / 10) : L),
			    t: H < 12 ? "a" : "p",
			    tt: H < 12 ? "am" : "pm",
			    T: H < 12 ? "A" : "P",
			    TT: H < 12 ? "AM" : "PM",
			    Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
			    o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
			    S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

        return mask.replace(token, function($0) {
            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
        });
    };
} ();

// Some common format strings
mindzWidgetDateFormat.masks = {
    "default": "ddd mmm dd yyyy HH:MM:ss",
    shortDate: "m/d/yy",
    mediumDate: "mmm d, yyyy",
    longDate: "mmmm d, yyyy",
    fullDate: "dddd, mmmm d, yyyy",
    shortTime: "h:MM TT",
    mediumTime: "h:MM:ss TT",
    longTime: "h:MM:ss TT Z",
    isoDate: "yyyy-mm-dd",
    isoTime: "HH:MM:ss",
    isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};


//var mindzWidgetDatabaseLangID_EN = mindzWidgetSettings['lang']['en_id'];
//var mindzWidgetDatabaseLangID_NL = mindzWidgetSettings['lang']['nl_id'];
// Internationalization strings
mindzWidgetDateFormat.i18n = {
    dayNames: { 52: [
		"zo", "ma", "di", "wo", "do", "vr", "za",
		"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"
	],
        64: [
		"su", "mo", "tu", "we", "th", "fr", "sa",
		"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"
	]
    },
    monthNames: { 52: [
		"jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec",
		"januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"
		],
        64: [
		"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
		]
    }
};

// For convenience...
Date.prototype.format = function(mask, utc) {
    return mindzWidgetDateFormat(this, mask, utc);
};
/**
* 
* 	MINDZ Widget
* 
* @copyright Mindz.com
* @version 0.1
* @author Shareforce S.R.L Romania - Rusu Dragos Mihai <dragosrusu@shareforce.eu>
* 
*/
// ############################# OPTIONS ###############################################################################


var mindzWidgetSettings = new Array();
mindzWidgetSettings['webservice'] = new Array();
mindzWidgetSettings['webservice']['url'] = "http://www.mindz.com/WebServices/MindzWS.asmx/"; //mindzWidgetWebserviceUrl;
mindzWidgetSettings['webservice']['defaultArgs'] = '&form=json&callback=?'; //mindzWidgetWebserviceDefaultArgs;
mindzWidgetSettings['lang'] = new Array();
//mindzWidgetSettings['lang']['en_id'] = mindzWidgetDatabaseLangID_EN;
//mindzWidgetSettings['lang']['nl_id'] = mindzWidgetDatabaseLangID_NL;
// profile
mindzWidgetSettings['profile'] = new Array();
mindzWidgetSettings['profile']['id'] = p;  //mindzWidgetProfileId;
mindzWidgetSettings['profile']['preferredLanguageId'] = l;  //mindzWidgetProfilePreferredLanguageId;
mindzWidgetSettings['profile']['descriptionMaxLength'] = 550; //mindzWidgetProfileDescriptionMaxLength;
mindzWidgetSettings['profile']['baseLink'] = 'http://www.mindz.com/profiles/'; //mindzWidgetProfileLinkUrl;
mindzWidgetSettings['profile']['link'] = "";
// weblog
mindzWidgetSettings['weblog'] = new Array();
mindzWidgetSettings['weblog']['descriptionMaxLength'] = 130;  //mindzWidgetWeblogDescriptionMaxLength;
// plazas 
mindzWidgetSettings['plazas'] = new Array();
mindzWidgetSettings['plazas']['descriptionMaxLength'] = 100;  //mindzWidgetPlazaDescriptionMaxLength;
// events 
mindzWidgetSettings['events'] = new Array();
mindzWidgetSettings['events']['descriptionMaxLength'] = 100;  //mindzWidgetEventDescriptionMaxLength;

// default selected tab and content
mindzWidgetSettings['defaultSelectedTab'] = 0;  //mindzWidgetDefaultSelectedTab; // first tab
mindzWidgetSettings['defaultSelectedPage'] = 0;  //mindzWidgetDefaultSelectedPage; // first page from first tab



// ############################# CHANGE IF YOU KNOW WHAT YOU ARE DOING #################################################
// we can easily later change these names with translations in other languages
var mindzWidgetTemporaryDivName = "mindzWidgetContent";

var mindzWidgetTabContentItems = [
		{ name: "mindzWidgetProfiel", pages: "3", totalItems: "3", itemsPerPage: "1" }, // 0 - Profile tab fixed
		{name: "mindzWidgetWeblog", pages: "0", totalItems: null, itemsPerPage: "3" }, // 1 - second tab
		{name: "mindzWidgetPlazas", pages: "0", totalItems: null, itemsPerPage: "3" }, // 2 - third tab
		{name: "mindzWidgetEvents", pages: "0", totalItems: null, itemsPerPage: "3"}  // 3 - fourth tab   // DO NOT ADD EXTRA "," - IE interprets it as another element and counts 5
	];


//################################# DO NOT CHANGE BELOW #######################################################################################
var mindzWidgetAjaxObject = new oMindzWidgetAjax();
var mindzWidgetUrlObject = new oMindzWidgetURL();
var mindzWidgetTE = new mindzWidgetTemplateEngine();
var mindzWidgetTabs = new Array();
var mindzWidgetSelectedTab = null;

// ## bug-fixing variables
var mindzWidgetAddReadCount_Read = "gelezen";

/**
*	FUNCTIONS
*/
function mindzWidgetValidateTabsArray() {
    var ok = true;
    for (var i in mindzWidgetTabContentItems) {
        if (mindzWidgetTabContentItems[i].totalItems == null) {
            ok = false;
            break;
        }
    }
    return ok;
}

function mindzWidgetBuildInitialTabsArray() {
    // we need profile pages, weblog firstpage, plazas firstpage and events first page -- errors - trying to add to an undefined array
    for (var i = 0; i < mindzWidgetTabContentItems.length; i++) {
        var oneTab = new Array();
        mindzWidgetTabContentItems[i].pages = Math.ceil(mindzWidgetTabContentItems[i].totalItems / mindzWidgetTabContentItems[i].itemsPerPage);
        if (mindzWidgetTabContentItems[i].pages == "0") {
            mindzWidgetTabContentItems[i].pages = 1; // events, weblog, plazas
        }
        for (var j = 0; j < mindzWidgetTabContentItems[i].pages; j++) {
            if (i > 0 && j > 0) break; // 0 => 0,1,2 ; 1=>0, 2=>0, 3=>0
            var item = new oMindzWidgetContentItem("", 0, "", "", "MISSING", false, mindzWidgetTabContentItems[i].name, "", false, 1, "");
            oneTab.push(item);
        }
        mindzWidgetTabs.push(oneTab);
    }
}

function mindzWidgetCompleteTabsArray() {
    if (!mindzWidgetValidateTabsArray()) {
        // did initial ajax calls returned yet? if not, stop
        return;
    }
    for (var i = 1; i < mindzWidgetTabContentItems.length; i++) {
        mindzWidgetTabContentItems[i].pages = Math.ceil(mindzWidgetTabContentItems[i].totalItems / mindzWidgetTabContentItems[i].itemsPerPage);
        for (var j = 1; j < mindzWidgetTabContentItems[i].pages; j++) {
            mindzWidgetTabs[i].push(new Array()); // creating [i][j]
            mindzWidgetTabs[i][j] = new oMindzWidgetContentItem("", 0, "", "", "MISSING", false, mindzWidgetTabContentItems[i].name, "", false, 1, "");
        }
        //			if (oneTab.length == 0) {
        //				var item = new oMindzWidgetContentItem("", 0, "", "", "MISSING", false, mindzWidgetTabContentItems[i].name, "", false, 1, "");
        //				oneTab.push(item);
        //			}
    }


    /**
    *	TABS TEMPLATES
    */
    // Profile-1
    mindzWidgetTabs[0][0].template = '' +
				'<div class="mindzWidgetProfileImageElement"><img width="84" height="84" src="" id="mindzWidgetProfileImage" /></div>' +
				'<div>' +
					'<div id="mindzWidgetProfileName"></div>' +
					'<div id="mindzWidgetProfileJob"><span id="mindzWidgetProfileJobFunction"></span> - <span id="mindzWidgetProfileJobCompany"></span></div>' +
					'<div id="mindzWidgetProfileDescription"></div>' +
				'</div>';


    // Profile 2
    mindzWidgetTabs[0][1].template = '<span id="mindzWidgetInitalNOTUSEDID"></span>';

    mindzWidgetTabs[0][1].infoPanel = '' +
					'<img class="mindzWidgetColoredSquare" src="http://images.mindz.com/ProfileWidget/img/squaregreen.gif" /><span class="mindzWidgetColoredSquareText"> = gestegen</span>' +
					'<img class="mindzWidgetColoredSquare" src="http://images.mindz.com/ProfileWidget/img/squareorange.gif" /><span class="mindzWidgetColoredSquareText"> = gedaald</span>' +
					'<img class="mindzWidgetColoredSquare" src="http://images.mindz.com/ProfileWidget/img/squareblue.gif" /><span class="mindzWidgetColoredSquareText"> = nieuw</span>';
    mindzWidgetTabs[0][1].contentClass = "mindzWidgetContentDNA";
    mindzWidgetTabs[0][1].contentTitle = "Profiel - Digitale DNA";

    // Profile 3
    mindzWidgetTabs[0][2].template = '<img id="mindzWidgetInitalNOTUSEDID" src="" width="85" height="24" style="border:1px solid #CBCBCB" />';
    mindzWidgetTabs[0][2].contentTitle = "Profiel - Bekijk mij op:";

    // Weblog
    mindzWidgetTabs[1][0].template = '' +
				'<div class="mindzWidgetItem">' +
				'	<p id="mindzWidgetInfoTitle"></p>' +
				'	<p id="mindzWidgetInfoDate"></p>' +
				'	<div class="mindzWidgetInfoImageElement"><img src="" id="mindzWidgetInfoImage" width="44" height="44"/></div>' +
				'	<div id="mindzWidgetInfoText" style="width: 257px;"></div>' +
				'</div>';
    mindzWidgetTabs[1][0].contentItems = 3;
    mindzWidgetTabs[1][0].firstTemplateAsDefault = true;
    mindzWidgetTabs[1][0].firstInfoPanelAsDefault = true;

    // Plazas
    mindzWidgetTabs[2][0].template = '' +
				'<div class="mindzWidgetItem">' +
				'	<div id="mindzWidgetStarPanel">' +
				'		<img src="http://images.mindz.com/ProfileWidget/img/star.gif" class="mindzWidgetStar" />' +
				'	</div>' +
				'	<div class="mindzWidgetInfo">' +
				'		<p id="mindzWidgetInfoTitle"></p>' +
				'		<div class="mindzWidgetInfoImageElement"><img src="" id="mindzWidgetInfoImage" width="44" height="44"/></div>' +
				'		<div id="mindzWidgetInfoText"></div>' +
				'	</div>' +
				'</div>';
    mindzWidgetTabs[2][0].infoPanel = '' +
				'<img src="http://images.mindz.com/ProfileWidget/img/star.gif" /><img src="http://images.mindz.com/ProfileWidget/img/star.gif" /><img src="http://images.mindz.com/ProfileWidget/img/star.gif" /> = Manager' +
				'<img style="margin-left:5px" src="http://images.mindz.com/ProfileWidget/img/star.gif" /><img src="http://images.mindz.com/ProfileWidget/img/star.gif" /> = Moderator' +
				'<img style="margin-left:5px" src="http://images.mindz.com/ProfileWidget/img/star.gif" /> = Member';
    mindzWidgetTabs[2][0].contentItems = 3;
    mindzWidgetTabs[2][0].firstTemplateAsDefault = true;
    mindzWidgetTabs[2][0].firstInfoPanelAsDefault = true;


    // Events
    mindzWidgetTabs[3][0].template = '' +
				'<div class="mindzWidgetItem">' +
				'	<div id="mindzWidgetStarPanel">' +
				'		<img src="http://images.mindz.com/ProfileWidget/img/star.gif" class="mindzWidgetStar" />' +
				'	</div>' +
				'	<div class="mindzWidgetInfo">' +
				'		<p id="mindzWidgetInfoTitle"></p>' +
				'		<p id="mindzWidgetInfoDate">30 december 2008</p>' +
				'		<div class="mindzWidgetInfoImageElement"><img src="" id="mindzWidgetInfoImage" /></div>' +
				'		<div id="mindzWidgetInfoText"></div>' +
				'	</div>' +
				'</div>';
    mindzWidgetTabs[3][0].infoPanel = '' +
				'<img src="http://images.mindz.com/ProfileWidget/img/star.gif" /><img src="http://images.mindz.com/ProfileWidget/img/star.gif" /> Organisator' +
				'<img style="margin-left:5px" src="http://images.mindz.com/ProfileWidget/img/star.gif" /> Deelnemer';
    mindzWidgetTabs[3][0].contentItems = 3;
    mindzWidgetTabs[3][0].firstTemplateAsDefault = true;
    mindzWidgetTabs[3][0].firstInfoPanelAsDefault = true;

    // start up the application
    mindzWidgetTE.changeTab(mindzWidgetSettings['defaultSelectedTab']);
}

function mindzWidgetSearchKeyword() {
    var keywords = $("#mindzWidgetSearchInput").val();
    var keywordsArray = keywords.split(" ");
    var completekeywordsarray = new Array();
    for (var i in keywordsArray) {
        if (keywordsArray[i] != "") {
            keywordsArray[i] = keywordsArray[i].replace(/^\s+|\s+$/g, '');
            completekeywordsarray.push(keywordsArray[i]);
        }
    }
    var finalkeywords = completekeywordsarray.join(",");
    if (finalkeywords != "") {
        window.location = "http://www.mindz.com/search?keywords=" + finalkeywords;
    }
}
function mindzWidgetFormatDateField(dateString) {
    var now = new Date(Number(dateString)); //1236014760000+0100
    return String(now.format("d mmmm yyyy"));
}
function mindzWidgetAddReadCount(string, readcount) {
    if (readcount == undefined) return string;
    string += ' - ' + readcount + 'x ' + mindzWidgetAddReadCount_Read;
    return string;
}

function mindzWidgetGetFontSize(itemSize, maxFontSize) {
    var itemFontSize = Math.floor(150 * (1.0 + (1.2 * Number(itemSize) - maxFontSize / 2) / maxFontSize));
    if (itemFontSize > 200) itemFontSize = 200;
    if (itemFontSize < 80) itemFontSize = 80;
    return itemFontSize;
}

function mindzWidgetClearSlashTagsRecursive(textOrArray) {
    if (typeof textOrArray == 'object') {
        for (var i in textOrArray) {
            if (typeof textOrArray == 'object') {
                textOrArray[i] = mindzWidgetClearSlashTagsRecursive(textOrArray[i]);
            }
            else {
                textOrArray[i] = mindzWidgetStripslashes(textOrArray[i]);
                textOrArray[i] = mindzWidgetStripTags(textOrArray[i], 'a');
                //textOrArray[i] = utf8_decode(textOrArray[i]);

            }
        }
    }
    else {
        textOrArray = mindzWidgetStripslashes(textOrArray);
        textOrArray = mindzWidgetStripTags(textOrArray, 'a');
        //textOrArray = utf8_decode(textOrArray);

    }
    return textOrArray;
}

function mindzWidgetSortArrayByName(inputArray, start, rest) {
    for (var i = rest - 1; i >= start; i--) {
        for (var j = start; j <= i; j++) {
            if (mindzWidgetStrcmp(inputArray[j + 1].Name.toLowerCase(), inputArray[j].Name.toLowerCase()) < 0) { // alphabetical 
                var tempValue = inputArray[j];
                inputArray[j] = inputArray[j + 1];
                inputArray[j + 1] = tempValue;
            }
        }
    }
    return inputArray;
}

// PHP JS FUNCTIONS
function mindzWidgetStrcmp(str1, str2) {
    return ((str1 == str2) ? 0 : ((str1 > str2) ? 1 : -1));
}

function mindzWidgetStripTags(str, allowed_tags) {
    var key = '', tag = '', allowed = false;
    var matches = allowed_array = [];
    var replacer = function(search, replace, str) {
        return str.split(search).join(replace);
    };
    if (allowed_tags) {
        allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);
    }
    str += '';
    matches = str.match(/(<\/?[^>]+>)/gi);
    for (key in matches) {
        if (isNaN(key)) {
            // IE7 Hack
            continue;
        }
        html = matches[key].toString();
        allowed = false;
        for (k in allowed_array) {
            allowed_tag = allowed_array[k];
            i = -1;
            if (i != 0) { i = html.toLowerCase().indexOf('<' + allowed_tag + '>'); }
            if (i != 0) { i = html.toLowerCase().indexOf('<' + allowed_tag + ' '); }
            if (i != 0) { i = html.toLowerCase().indexOf('</' + allowed_tag); }
            if (i == 0) {
                allowed = true;
                break;
            }
        }
        if (!allowed) {
            str = replacer(html, "", str); // Custom replace. No regexing
        }
    }
    return str;
}

function mindzWidgetWordwrap(str, int_width, str_break, cut) {
    var m = ((arguments.length >= 2) ? arguments[1] : 75);
    var b = ((arguments.length >= 3) ? arguments[2] : "\n");
    var c = ((arguments.length >= 4) ? arguments[3] : false);
    var i, j, l, s, r;
    str += '';
    if (m < 1) {
        return str;
    }
    for (i = -1, l = (r = str.split("\n")).length; ++i < l; r[i] += s) {
        for (s = r[i], r[i] = ""; s.length > m; r[i] += s.slice(0, j) + ((s = s.slice(j)).length ? b : "")) {
            j = c == 2 || (j = s.slice(0, m + 1).match(/\S*(\s)?$/))[1] ? m : j.input.length - j[0].length || c == 1 && m || j.input.length + (j = s.slice(m).match(/^\S*/)).input.length;
        }
    }
    return r.join(str_break);
}

function mindzWidgetStripslashes(str) {
    return (str + '').replace(/\0/g, '0').replace(/\\([\\'"])/g, '$1');
}

function mindzWidgetStrTrim(str, maxlen, elli, maxoverflow, wsplit) {
    if (str.length > maxlen) {
        var tagsArray = new Array();

        var output = "";
        var body = str.split(" ");
        var body_count = body.length;
        var i = 0;
        do {
            if (body[i].length > wsplit) {
                body[i] = mindzWidgetWordwrap(body[i], wsplit, "-<BR />", true);
            }
            output += body[i] + " ";
            thisLen = output.length;
            cycle = (thisLen < maxlen && i < body_count - 1 && (thisLen + body[i + 1].length) < maxlen + maxoverflow ? true : false);
            i++;
        } while (cycle);
        return output + elli;
    }
    else { return str; }
}

/**
*	Widget Objects 
*/
function oMindzWidgetContentItem(c, cl, tpl, tplDefault, missingTemplate, cclass, ctitle, cinfopanel, cfirstInfoPanelAsDefault, citems) { // OBJECT
    this.content = c;
    this.contentLoaded = cl;
    this.template = tpl;
    this.firstTemplateAsDefault = tplDefault;
    this.missingTemplate = tpl;
    this.contentClass = cclass;
    this.contentTitle = ctitle;
    this.infoPanel = cinfopanel;
    this.firstInfoPanelAsDefault = cfirstInfoPanelAsDefault;
    this.contentItems = citems; // how many times to replicate the template in same content (usually 3)
}

function oMindzWidgetUrlArgument(aname, avalue) {
    this.name = aname;
    this.value = avalue;
}

function oMindzWidgetURL() {
    this.defaulturl = mindzWidgetSettings['webservice']['url'];
    this.getURL = function(method, args) {
        var sargs = this.argToString(args);
        return this.defaulturl + method + "?" + sargs + mindzWidgetSettings['webservice']['defaultArgs'];
    }
    this.argToString = function(args) {
        argString = "";
        for (var i in args) {
            argString += args[i].name + "=" + args[i].value;
            if (i != args.length - 1) {
                argString += "&";
            }
        }
        return argString;
    }
    this.method = ""; // ex: GetProfileAlias
    this.arg = ""; // ex: mindzWidgetSettings['profile']['id']=29
}

function oMindzWidgetTemplateArg(telementid, tattribute, tvalue, tclass, turl, telementname, tstyle) {
    this.elementid = telementid;
    this.value = tvalue;
    this.attribute = tattribute;
    this.classname = "";
    if (tclass != undefined) {
        this.classname = tclass;
    }
    this.url = "";
    if (turl != undefined) {
        this.url = turl;
    }
    this.elementname = "";
    if (telementname != undefined) {
        this.elementname = telementname;
    }
    this.style = "";
    if (tstyle != undefined && tstyle != "") {
        this.style = tstyle;
    }
}

/** 
*	AJAX
*/
function oMindzWidgetAjax() { // TO DO: transfer every ajax here
    this.GetProfileBlogMessagesCount = function GetProfileBlogMessagesCount(profileId, preferredLanguageId) {
        var args = [
				new oMindzWidgetUrlArgument("profileId", profileId),
				new oMindzWidgetUrlArgument("preferredLanguageId", preferredLanguageId)
			];
        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileBlogMessagesCount", args), function(data) {
            mindzWidgetTabContentItems[1].totalItems = data;
            mindzWidgetCompleteTabsArray(); // it is only executed once
        });
    }
    this.GetProfilePlazasCount = function GetProfilePlazasCount(profileId, preferredLanguageId) {
        var args = [
				new oMindzWidgetUrlArgument("profileId", profileId)
			];
        $.getJSON(mindzWidgetUrlObject.getURL("GetProfilePlazasCount", args), function(data) {
            mindzWidgetTabContentItems[2].totalItems = data;
            mindzWidgetCompleteTabsArray(); // it is only executed once
        });
    }
    this.GetProfileEventsCount = function GetProfileEventsCount(profileId, preferredLanguageId) {
        var args = [
				new oMindzWidgetUrlArgument("profileId", profileId),
			];
        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileEventsCount", args), function(data) {
            mindzWidgetTabContentItems[3].totalItems = data;
            mindzWidgetCompleteTabsArray(); // it is only executed once
        });
    }
    this.GetWidgetLabels = function GetWidgetLabels(profileId, languageId) {
        var args = [
				new oMindzWidgetUrlArgument("profileId", profileId),
				new oMindzWidgetUrlArgument("preferredLanguageId", languageId),
			];
        $.getJSON(mindzWidgetUrlObject.getURL("GetWidgetLabels", args), function(item) {
            $("#mindzWidgetTabProfileLink").attr("innerHTML", item.Profile);
            $("#mindzWidgetGetWidgetLink").attr("innerHTML", item.GetWidget);
            $("#mindzWidgetTitle").attr("innerHTML", item.Profile); // updating first page title
            $("#mindzWidgetSearchButton").attr("value", item.Search); 		// SEARCH BUTTON TEXT
            $("#mindzWidgetAbout").attr("innerHTML", item.AboutMindz); 		// About MINDZ link (below search)
            //$("#mindzWidgetSearchButton").attr("innerHTML", item.Search);	

            // updating tabs
            $("#mindzWidgetProfileTab").attr("innerHTML", item.Profile.replace(/´/g, ''));
            $("#mindzWidgetWeblogTab").attr("innerHTML", item.Weblog.replace(/´/g, ''));
            $("#mindzWidgetPlazasTab").attr("innerHTML", item.Plazas.replace(/´/g, ''));
            $("#mindzWidgetEventsTab").attr("innerHTML", item.Events.replace(/´/g, ''));

            // Titles of tabs
            mindzWidgetTabs[0][0].contentTitle = item.Profile;
            mindzWidgetTabs[0][1].contentTitle = item.DNA;
            mindzWidgetTabs[0][2].contentTitle = item.ExternalNetworks;
            mindzWidgetTabs[1][0].contentTitle = item.Weblog;
            mindzWidgetTabs[2][0].contentTitle = item.Plazas;
            mindzWidgetTabs[3][0].contentTitle = item.Events;

            /** Profile(2) - DIGITAL DNA page*/
            mindzWidgetTabs[0][1].infoPanel = mindzWidgetTabs[0][1].infoPanel.replace(/gestegen/, item.Grown); // Profile DIGITAL DNA - GROWN
            mindzWidgetTabs[0][1].infoPanel = mindzWidgetTabs[0][1].infoPanel.replace(/gedaald/, item.Shrunk); // Profile DIGITAL DNA - SHRUNK
            mindzWidgetTabs[0][1].infoPanel = mindzWidgetTabs[0][1].infoPanel.replace(/nieuw/, item.New); 		// Profile DIGITAL DNA - NEW
            /** Plazas page */
            mindzWidgetTabs[2][0].infoPanel = mindzWidgetTabs[2][0].infoPanel.replace(/Manager/, item.Manager);
            mindzWidgetTabs[2][0].infoPanel = mindzWidgetTabs[2][0].infoPanel.replace(/Moderator/, item.Moderator);
            mindzWidgetTabs[2][0].infoPanel = mindzWidgetTabs[2][0].infoPanel.replace(/Member/, item.Member);
            /** Weblog and Events page date formatting */
            mindzWidgetAddReadCount_Read = item.Read;

            /** No data policy */
            mindzWidgetTabs[1][0].missingTemplate = item.NoBlogPosts;
            mindzWidgetTabs[2][0].missingTemplate = item.NoPlazas;
            mindzWidgetTabs[3][0].missingTemplate = item.NoEvents;


        });
    }
    this.GetProfileURLName = function GetProfileURLName(profileId) {
        var args = [
				new oMindzWidgetUrlArgument("profileId", profileId),
			];
        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileURLName", args), function(data) {
            mindzWidgetSettings['profile']['urlName'] = data;
            mindzWidgetSettings['profile']['link'] = mindzWidgetSettings['profile']['baseLink'] + mindzWidgetSettings['profile']['urlName'];
        });

    }
}

/**
*	Functions
*/
// checks if is last content from current tab	

function mindzWidgetTemplateEngine() {
    this.temporaryArgs = new Array();
    this.isLastContent = function isLastContent(tabId, page) {
        if ((mindzWidgetTabContentItems[tabId].pages - 1) == page) { // items = 4 => 0,1,2,3
            return true;
        }
        return false;
    }

    this.getContent = function getContent(tabId, page, asynCallbackParamNo) {
        var ok = false;
        var template = mindzWidgetTabs[tabId][page].template;
        if (mindzWidgetTabs[tabId][0].firstTemplateAsDefault) {
            template = mindzWidgetTabs[tabId][0].template;
        }
        //$("#mindzWidgetContent").append('<span id="mindzWidgetTag1" class="mindzWidgetTag '+keywordClasses+'">'+keywords[i].name+'</span>');			
        switch (tabId) {
            case 0:
                switch (page) {
                    case 0:
                        if (asynCallbackParamNo == undefined) {
                            this.getData(tabId, page); // creating JSON calls for the data (asyn)
                        }
                        else {
                            // test if data is completely received
                            if (this.temporaryArgs.length == asynCallbackParamNo) {
                                $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                                for (var i in this.temporaryArgs) {
                                    $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                    if (this.temporaryArgs[i].url != "") {
                                        var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + this.temporaryArgs[i].elementid).html() + "</a>";
                                        $("#" + this.temporaryArgs[i].elementid).attr("innerHTML", temp);
                                        $(".mindzWidgetProfileImageElement").attr("innerHTML", '<a href="' + this.temporaryArgs[i].url + '">' + $(".mindzWidgetProfileImageElement").html() + '</a>');
                                    }
                                }
                                // if profile job and company are empty, remove the "-"
                                if ($("#mindzWidgetProfileJobFunction").html() == "" && $("#mindzWidgetProfileJobCompany").html() == "") {
                                    var mindzWidgetProfileJob = $("#mindzWidgetProfileJob").html();
                                    mindzWidgetProfileJob = mindzWidgetProfileJob.replace(/-/, '');
                                    $("#mindzWidgetProfileJob").attr("innerHTML", mindzWidgetProfileJob);
                                }


                                mindzWidgetTabs[tabId][page].content = $("#" + mindzWidgetTemporaryDivName).html();
                                // empty the array after template parsing
                                this.temporaryArgs = new Array();

                                ok = true;
                            }
                        }
                        break;
                    case 1:
                        if (asynCallbackParamNo == undefined) {
                            this.getData(tabId, page); // creating JSON calls for the data (asyn)
                        }
                        else {
                            // test if data is completely received (usually deppends on how many threads we are waiting)
                            if (this.temporaryArgs.length == asynCallbackParamNo) {
                                $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                                mindzWidgetTabs[tabId][page].content = "";
                                for (var i in this.temporaryArgs) {
                                    $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                                    $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                    if (this.temporaryArgs[i].classname != "") {
                                        $("#" + this.temporaryArgs[i].elementid).attr("class", this.temporaryArgs[i].classname);
                                    }
                                    if (this.temporaryArgs[i].style != "") {
                                        $("#" + this.temporaryArgs[i].elementid).attr("style", this.temporaryArgs[i].style);
                                    }
                                    $("#" + this.temporaryArgs[i].elementid).attr("id", "mindzWidgetTag" + String(parseInt(i) + 1)); // change tab id
                                    if (this.temporaryArgs[i].url != "") {
                                        var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + mindzWidgetTemporaryDivName).html() + "</a>";
                                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", temp);
                                    }
                                    mindzWidgetTabs[tabId][page].content += $("#" + mindzWidgetTemporaryDivName).html();
                                }
                                // empty the array after template parsing
                                this.temporaryArgs = new Array();
                                $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", "");
                                ok = true;
                            }
                        }
                        break;
                    case 2:
                        if (asynCallbackParamNo == undefined) {
                            this.getData(tabId, page); // creating JSON calls for the data (asyn)
                        }
                        else {
                            // test if data is completely received (usually deppends on how many threads we are waiting)
                            if (this.temporaryArgs.length == asynCallbackParamNo) {
                                $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                                for (var i in this.temporaryArgs) {
                                    $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                                    $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                    if (this.temporaryArgs[i].classname != "") { // quick solution - not best
                                        $("#" + this.temporaryArgs[i].elementid).attr("class", this.temporaryArgs[i].classname);
                                    }
                                    // if element has a name, add it
                                    if (this.temporaryArgs[i].elementname != "") {
                                        $("#" + this.temporaryArgs[i].elementid).attr("name", this.temporaryArgs[i].elementname);
                                    }
                                    $("#" + this.temporaryArgs[i].elementid).attr("id", "mindzWidgetNetwork" + String(parseInt(i) + 1));
                                    // this template should not be here - quick solution (deadline)
                                    if (this.temporaryArgs[i].url != "") {
                                        var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + mindzWidgetTemporaryDivName).html() + "</a>";
                                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", temp);
                                    }
                                    mindzWidgetTabs[tabId][page].content += $("#" + mindzWidgetTemporaryDivName).html();
                                }
                                // empty the array after template parsing
                                this.temporaryArgs = new Array();
                                $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", "");

                                ok = true;
                            }
                        }
                        break;
                }
                break;
            case 1:
                if (asynCallbackParamNo == undefined) {
                    this.getData(tabId, page); // creating JSON calls for the data (asyn)
                }
                else {
                    if (this.temporaryArgs.length == 0) {
                        mindzWidgetTabs[tabId][page].content = mindzWidgetTabs[tabId][page].missingTemplate;
                        ok = true;
                    }
                    // test if data is completely received (usually deppends on how many threads we are waiting)
                    else if (this.temporaryArgs.length == asynCallbackParamNo) {
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                        mindzWidgetTabs[tabId][page].content = "";
                        var i = 0;
                        while (i != this.temporaryArgs.length) {
                            $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                            for (var j = 0; j < 4; j++) {
                                $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                if (this.temporaryArgs[i].url != "") {
                                    var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + this.temporaryArgs[i].elementid).html() + "</a>";
                                    $("#" + this.temporaryArgs[i].elementid).attr("innerHTML", temp);
                                    $(".mindzWidgetInfoImageElement").attr("innerHTML", '<a href="' + this.temporaryArgs[i].url + '">' + $("#mindzWidgetInfoImage").parent().html() + '</a>');
                                }
                                i++;
                            }
                            mindzWidgetTabs[tabId][page].content += $("#" + mindzWidgetTemporaryDivName).html();
                        }
                        // empty the array after template parsing
                        this.temporaryArgs = new Array();
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", "");

                        ok = true;
                    }
                }
                break;
            case 2:
                if (asynCallbackParamNo == undefined) {
                    this.getData(tabId, page); // creating JSON calls for the data (asyn)
                }
                else {
                    if (this.temporaryArgs.length == 0) {
                        mindzWidgetTabs[tabId][page].content = mindzWidgetTabs[tabId][page].missingTemplate;
                        ok = true;
                    }
                    // test if data is completely received (usually deppends on how many threads we are waiting)
                    else if (this.temporaryArgs.length == asynCallbackParamNo) {
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                        var starTemplate = $("#mindzWidgetStarPanel").html(); // saving star image template
                        mindzWidgetTabs[tabId][page].content = "";
                        var i = 0;
                        while (i != this.temporaryArgs.length) {
                            $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                            for (var j = 0; j < 5; j++) {
                                if (this.temporaryArgs[i].elementid == "mindzWidgetStarPanel") {
                                    $("#mindzWidgetStarPanel").attr("innerHTML", "");
                                    for (var k = 0; k < this.temporaryArgs[i].value; k++) {
                                        $("#mindzWidgetStarPanel").append(starTemplate);
                                    }
                                }
                                else {
                                    $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                    // this template should not be here - quick solution (deadline)
                                    if (this.temporaryArgs[i].url != "") {
                                        var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + this.temporaryArgs[i].elementid).html() + "</a>";
                                        $("#" + this.temporaryArgs[i].elementid).attr("innerHTML", temp);
                                        $(".mindzWidgetInfoImageElement").attr("innerHTML", '<a href="' + this.temporaryArgs[i].url + '">' + $("#mindzWidgetInfoImage").parent().html() + '</a>');
                                    }
                                }
                                i++;
                            }

                            mindzWidgetTabs[tabId][page].content += $("#" + mindzWidgetTemporaryDivName).html();
                        }

                        // empty the array after template parsing
                        this.temporaryArgs = new Array();
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", "");

                        ok = true;
                    }
                }
                break;
            case 3:
                if (asynCallbackParamNo == undefined) {
                    this.getData(tabId, page); // creating JSON calls for the data (asyn)
                }
                else {
                    if (this.temporaryArgs.length == 0) {
                        mindzWidgetTabs[tabId][page].content = mindzWidgetTabs[tabId][page].missingTemplate;
                        ok = true;
                    }
                    // test if data is completely received (usually deppends on how many threads we are waiting)
                    else if (this.temporaryArgs.length == asynCallbackParamNo) {
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                        var starTemplate = $("#mindzWidgetStarPanel").html(); // saving star image template
                        mindzWidgetTabs[tabId][page].content = "";
                        var i = 0;
                        while (i != this.temporaryArgs.length) {
                            $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", template);
                            for (var j = 0; j < 5; j++) {
                                if (this.temporaryArgs[i].elementid == "mindzWidgetStarPanel") {
                                    $("#mindzWidgetStarPanel").attr("innerHTML", "");
                                    for (var k = 0; k < this.temporaryArgs[i].value; k++) {
                                        $("#mindzWidgetStarPanel").append(starTemplate);
                                    }
                                }
                                else {
                                    $("#" + this.temporaryArgs[i].elementid).attr(this.temporaryArgs[i].attribute, this.temporaryArgs[i].value);
                                    // this template should not be here - quick solution (deadline)
                                    if (this.temporaryArgs[i].url != "") {
                                        var temp = '<a href="' + this.temporaryArgs[i].url + '">' + $("#" + this.temporaryArgs[i].elementid).html() + "</a>";
                                        $("#" + this.temporaryArgs[i].elementid).attr("innerHTML", temp);
                                        $(".mindzWidgetInfoImageElement").attr("innerHTML", '<a href="' + this.temporaryArgs[i].url + '">' + $("#mindzWidgetInfoImage").parent().html() + '</a>');
                                    }
                                }
                                i++;
                            }

                            mindzWidgetTabs[tabId][page].content += $("#" + mindzWidgetTemporaryDivName).html();
                        }

                        // empty the array after template parsing
                        this.temporaryArgs = new Array();
                        $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", "");

                        ok = true;
                    }
                }
                break;
        }

        if (ok) {
            mindzWidgetTabs[tabId][page].contentLoaded = 1;
            $("#" + mindzWidgetTemporaryDivName).attr("innerHTML", ""); // clearing space - avoid bugs later on
            this.changeContent(tabId, page, false);
        }
    }

    // fire ajax calls for the data	
    this.getData = function getData(tabId, page) {
        var contentItems = mindzWidgetTabs[tabId][page].contentItems;
        if (mindzWidgetTabs[tabId][0].firstTemplateAsDefault) {
            contentItems = mindzWidgetTabs[tabId][0].contentItems;
        }
        if (this.isLastContent(tabId, page)) {
            // if is last page, we should show only last contents
            //contentItems = mindzWidgetTabContentItems[tabId].totalItems - (mindzWidgetTabContentItems[tabId].pages-1)* mindzWidgetTabContentItems[tabId].itemsPerPage; 	
            contentItems = mindzWidgetTabContentItems[tabId].totalItems % mindzWidgetTabContentItems[tabId].itemsPerPage;
            if (contentItems == 0) {
                contentItems = mindzWidgetTabContentItems[tabId].totalItems - page * mindzWidgetTabContentItems[tabId].itemsPerPage; // starts at index 0
            }
        }
        switch (tabId) {
            case 0: // PROFILE
                switch (page) {
                    case 0:
                        var asynCallback = 5; // we wait for 5 ajax threads (compared with temporaryArgs.length)
                        var args = [
								new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id'])
								];
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileAlias", args), function(profileName) {
                            profileName = mindzWidgetClearSlashTagsRecursive(profileName);
                            //alert("name:"+profileName);
                            mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileName", "innerHTML", profileName, "", mindzWidgetSettings['profile']['link']));
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileCompanyFunction", args), function(profileCompanyFunction) {
                            profileCompanyFunction = mindzWidgetClearSlashTagsRecursive(profileCompanyFunction);
                            //alert("profileCompanyFunction:"+profileCompanyFunction);
                            mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileJobFunction", "innerHTML", profileCompanyFunction));
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileCompanyName", args), function(profileCompanyName) {
                            profileCompanyName = mindzWidgetClearSlashTagsRecursive(profileCompanyName);
                            //alert("companyname:"+profileCompanyName);
                            mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileJobCompany", "innerHTML", profileCompanyName));
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileImageUrl", args), function(profileImage) {
                            //alert("profileImage:"+profileImage);
                            mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileImage", "src", profileImage));
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });

                        args.push(new oMindzWidgetUrlArgument("preferredLanguageId", mindzWidgetSettings['profile']['preferredLanguageId']));
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileDescription", args), function(profileDescription) {
                            profileDescription = mindzWidgetClearSlashTagsRecursive(profileDescription);
                            profileDescription = mindzWidgetStrTrim(profileDescription, mindzWidgetSettings['profile']['descriptionMaxLength'], "...", 15, "<br />"); // TO BE MOVED TOP AS PARAMETER
                            //alert("profileDescription:"+profileDescription);
                            mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileDescription", "innerHTML", profileDescription));
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });
                        break;
                    case 1:
                        var args = [
								new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id']),
								new oMindzWidgetUrlArgument("count", 33) // TO BE MOVED TOP AS PARAMETER
								];
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileDigitalDNA", args), function(items) {
                            mindzWidgetTE.temporaryArgs = new Array(); // clean again to be sure
                            items = mindzWidgetClearSlashTagsRecursive(items);
                            var asynCallback = items.length;
                            // find maximum value as keyword importance
                            var maxm = Number(items[0].Count);
                            for (var i in items) {
                                if (Number(items[i].Count) > maxm) maxm = items[i].Count;
                            }
                            $.each(items, function(i, item) {
                                var itemFontSize = Math.floor(150 * (1.0 + (1.2 * Number(item.Count) - maxm / 2) / maxm));
                                var keywordClasses = "mindzWidgetTag ";
                                if (item.Grown == "true") {
                                    keywordClasses += "mindzWidgetTagGreen";
                                } else if (item.New == "true") {
                                    keywordClasses += "mindzWidgetTagBlue";
                                } else if (item.Shrunk == "true") {
                                    keywordClasses += "mindzWidgetTagOrange";
                                }
                                itemUrl = "http://www.mindz.com/search?keywords=" + item.Name;
                                mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInitalNOTUSEDID", "innerHTML", item.Name, keywordClasses, itemUrl, "", "font-size:" + itemFontSize + "%;")); // here we have no "this"
                            });
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });
                        break;
                    case 2:
                        var args = [
								new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id'])
								];
                        $.getJSON(mindzWidgetUrlObject.getURL("GetProfileExternalNetworks", args), function(items) { //mindzWidgetUrlObject.getURL("GetProfileDigitalDNA", args)
                            mindzWidgetTE.temporaryArgs = new Array(); // clean again to be sure
                            var asynCallback = items.length;
                            $.each(items, function(i, item) {
                                var imageClass = "mindzWidgetNetworkImage";
                                if (i % 3 == 2) {
                                    imageClass += " mindzWidgetNetworkImageNoMargin";
                                }
                                mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInitalNOTUSEDID", "src", item.ImageUrl, imageClass, item.Url, item.Name));
                            });
                            mindzWidgetTE.getContent(tabId, page, asynCallback);
                        });

                        mindzWidgetTabs[tabId][page].content = $("#mindzWidgetContent").html();
                        break;
                }
                break;
            case 1: // WEBLOGS
                var args = [
						new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id']),
						new oMindzWidgetUrlArgument("preferredLanguageId", mindzWidgetSettings['profile']['preferredLanguageId']),
						new oMindzWidgetUrlArgument("page", (page + 1)),
						new oMindzWidgetUrlArgument("count", contentItems)
						];
                $.getJSON(mindzWidgetUrlObject.getURL("GetProfileBlogMessages", args), function(items) {
                    mindzWidgetTE.temporaryArgs = new Array(); // clean again to be sure
                    items = mindzWidgetClearSlashTagsRecursive(items);
                    $.each(items, function(i, item) {
                        item.ImageUrl = item.ImageUrl.replace(/52/g, "44"); // TO DO BY MINDZ
                        item.Date = mindzWidgetFormatDateField(item.Date.substring(6, item.Date.length - 7));
                        dateCountField = mindzWidgetAddReadCount(item.Date, item.ReadCount);
                        item.Title = mindzWidgetStrTrim(item.Title, 36, "...", 10, item.Title.length);
                        item.ShortMessage = mindzWidgetStrTrim(item.ShortMessage, mindzWidgetSettings['weblog']['descriptionMaxLength'], "...", 15, "<br />"); // TO BE MOVED TOP AS PARAMETER
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoText", "innerHTML", item.ShortMessage));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoDate", "innerHTML", dateCountField));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoImage", "src", item.ImageUrl));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoTitle", "innerHTML", item.Title, "", item.MessageUrl));
                        //mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetProfileImageElement", "innerHTML", "", "", item.MesageUrl )); // add url to image
                    });
                    asynCallback = contentItems * 4; // count * 4
                    mindzWidgetTE.getContent(tabId, page, asynCallback);
                });
                break;
            case 2: // PLAZAS
                var args = [
						new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id']),
						new oMindzWidgetUrlArgument("page", (page + 1)),
						new oMindzWidgetUrlArgument("count", contentItems)
						];
                $.getJSON(mindzWidgetUrlObject.getURL("GetProfilePlazas", args), function(items) {
                    mindzWidgetTE.temporaryArgs = new Array(); // clean again to be sure
                    items = mindzWidgetClearSlashTagsRecursive(items);
                    $.each(items, function(i, item) {
                        item.ImageUrl = item.ImageUrl.replace(/84/g, "44"); // TO DO BY MINDZ
                        item.Name = mindzWidgetStrTrim(item.Name, 40, "...", 10, item.Name.length);
                        //item.Date = mindzWidgetFormatDateField(item.Date.substring(6, item.Date.length-7));
                        //dateCountField = mindzWidgetAddReadCount(item.Date, item.ReadCount);
                        dateCountField = "";
                        item.ShortDescription = mindzWidgetStrTrim(item.ShortDescription, mindzWidgetSettings['plazas']['descriptionMaxLength'], "...", 15, "<br />"); // TO BE MOVED TOP AS PARAMETER
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoText", "innerHTML", item.ShortDescription));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoDate", "innerHTML", dateCountField));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoImage", "src", item.ImageUrl));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoTitle", "innerHTML", item.Name, "", item.PlazaUrl));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetStarPanel", "innerHTML", item.Role));
                    });
                    asynCallback = contentItems * 5; // count * 4
                    mindzWidgetTE.getContent(tabId, page, asynCallback);
                });

                break;
            case 3: // EVENTS
                var args = [
						new oMindzWidgetUrlArgument("profileId", mindzWidgetSettings['profile']['id']),
						new oMindzWidgetUrlArgument("page", (page + 1)),
						new oMindzWidgetUrlArgument("count", contentItems)
						];
                $.getJSON(mindzWidgetUrlObject.getURL("GetProfileEvents", args), function(items) { // mindzWidgetUrlObject.getURL("GetProfileEvents", args) // "http://renedekat.is.ew.ro/mindzwidget/json.php?callback=?" 
                    mindzWidgetTE.temporaryArgs = new Array(); // clean again to be sure
                    items = mindzWidgetClearSlashTagsRecursive(items);
                    $.each(items, function(i, item) {
                        //			            	item.ToDate = item.ToDate.substring(6, item.ToDate.length-7);
                        //	            	    	var eventFinishDate = new Date(Number(item.ToDate));//1236014760000+0100
                        //	            	    	if(eventFinishDate > new Date()) {
                        item.ImageUrl = item.ImageUrl.replace(/84/g, "44"); // TO DO BY MINDZ
                        item.Name = mindzWidgetStrTrim(item.Name, 40, "...", 10, item.Name.length);
                        item.FromDate = mindzWidgetFormatDateField(item.FromDate.substring(6, item.FromDate.length - 7));
                        dateCountField = mindzWidgetAddReadCount(item.FromDate);
                        item.ShortDescription = mindzWidgetStrTrim(item.ShortDescription, mindzWidgetSettings['events']['descriptionMaxLength'], "...", 15, "<br />"); // TO BE MOVED TOP AS PARAMETER
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoText", "innerHTML", item.ShortDescription));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoDate", "innerHTML", dateCountField));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoImage", "src", item.ImageUrl));
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetInfoTitle", "innerHTML", item.Name, "", item.EventUrl));
                        itemRole = (item.Organizer == true ? '2' : '1');
                        mindzWidgetTE.temporaryArgs.push(new oMindzWidgetTemplateArg("mindzWidgetStarPanel", "innerHTML", itemRole)); // we change 1 or 2 with stars in template
                        //	            	    	}
                    });
                    asynCallback = contentItems * 5; // count * 5
                    mindzWidgetTE.getContent(tabId, page, asynCallback);
                });
                break;
        }
    }

    // changes content regarding tab and content item
    this.changeContent = function changeContent(tabId, page, executeInitialCode) {
        // executed on first call 
        // (second call is made by ajax-callback function and it only needs to update the inner content)

        if (executeInitialCode == undefined) {
            mindzWidgetSettings['defaultSelectedTab'] = tabId;
            mindzWidgetSettings['defaultSelectedPage'] = page;
            mindzWidgetSelectedTab.id = mindzWidgetTabContentItems[tabId].name;
            var contentTitle = mindzWidgetTabs[tabId][0].contentTitle;
            if (tabId > 0 && mindzWidgetTabs[tabId][0].contentTitle != "") { // profile page has specific titles for each page
                contentTitle = mindzWidgetTabs[tabId][0].contentTitle;
            }
            else if (mindzWidgetTabs[tabId][page].contentTitle != "") {
                contentTitle = mindzWidgetTabs[tabId][page].contentTitle;
            }
            if (contentTitle != "mindzWidgetProfiel") {
                $("#mindzWidgetTitle").attr("innerHTML", contentTitle);
            }
            $("#mindzidgetContent").hide();
            $("#mindzWidgetContent").attr("innerHTML", "");
        }

        if (mindzWidgetTabs[tabId][page].contentLoaded == 1) {
            //$("#mindzWidgetContent").hide(); // add this here again, maybe content was shown and the screen flickers while changing content
            var contentClass = "";
            if (mindzWidgetTabs[tabId][page].contentClass !== false) {
                contentClass = mindzWidgetTabs[tabId][page].contentClass;
            }
            $("#mindzWidgetContent").attr("className", contentClass);
            $("#mindzWidgetContent").attr("innerHTML", mindzWidgetTabs[tabId][page].content);
            $("#mindzWidgetNavigationStartItem").attr("innerHTML", String(page + 1));
            $("#mindzWidgetInfoPanel").attr("innerHTML", mindzWidgetTabs[tabId][page].infoPanel);
            if (mindzWidgetTabs[tabId][0].firstInfoPanelAsDefault) {
                $("#mindzWidgetInfoPanel").attr("innerHTML", mindzWidgetTabs[tabId][0].infoPanel);
            }
            $("#mindzWidgetContent").show("fast");
        }
        else {
            this.getContent(tabId, page); // this one calls back changeContent with updated content
        }
        return false;
    }

    // changes tab regarding tab Name
    this.changeTab = function changeTab(tabId) {
        $("#mindzWidgetNavigationStartItem").attr("innerHTML", "1");
        var contentEndPage = mindzWidgetTabContentItems[tabId].pages;
        if (mindzWidgetTabContentItems[tabId].pages == 0) {
            contentEndPage = 1;
        }
        $("#mindzWidgetNavigationEndItem").attr("innerHTML", contentEndPage);
        this.changeContent(tabId, 0); // initiate first content page from tab
        return false;
    }
    // Navigation :: next
    this.nextContent = function nextContent() {
        var currentTab = mindzWidgetSettings['defaultSelectedTab'];
        var currentPage = mindzWidgetSettings['defaultSelectedPage'];

        var nextPage = 0;
        if (mindzWidgetTE.isLastContent(currentTab, currentPage)) { // we can simplify this IF but it's clearer for the programmer
            nextPage = 0;
        } else {
            nextPage = currentPage + 1;
        }

        // no data policy
        if (mindzWidgetTabs[currentTab] == undefined || mindzWidgetTabs[currentTab][nextPage] == undefined) {
            return false;
        }

        this.changeContent(currentTab, nextPage);
    }

    // Navigation :: back
    this.previousContent = function previousContent() {
        var currentTab = mindzWidgetSettings['defaultSelectedTab'];
        var currentPage = mindzWidgetSettings['defaultSelectedPage'];

        var previousPage = 0;
        if (currentPage == 0) {  // we can simplify this IF but it's clearer for the programmer
            previousPage = mindzWidgetTabContentItems[mindzWidgetSettings['defaultSelectedTab']].pages - 1; // for example 4 items, counted from 0 to 3
        } else {
            previousPage = currentPage - 1;
        }

        // no data policy
        if (mindzWidgetTabs[currentTab] == undefined || mindzWidgetTabs[currentTab][previousPage] == undefined) {
            return false;
        }

        this.changeContent(currentTab, previousPage);
    }
}


$(document).ready(function() {
    $('head').append($('<link rel="stylesheet" type="text/css" href="http://www.mindz.com/ProfileWidget/css/widget.css" />'));
    
    // used for manipulating tabs
    mindzWidgetSelectedTab = document.getElementById("mindzWidgetProfiel"); // "Profiel" here is just a name to identify the tab
    // show first tab
    // profile is static pag, no items

    mindzWidgetBuildInitialTabsArray(); // adding initial tabs array: profile1, profile2, profile3, weblogs, plazas, events

    mindzWidgetAjaxObject.GetProfileURLName(mindzWidgetSettings['profile']['id']);
    mindzWidgetAjaxObject.GetProfileBlogMessagesCount(mindzWidgetSettings['profile']['id'], mindzWidgetSettings['profile']['preferredLanguageId']); // TO BE EXECUTED IF THE USER CLICKS THIS TAB
    mindzWidgetAjaxObject.GetProfilePlazasCount(mindzWidgetSettings['profile']['id'], mindzWidgetSettings['profile']['preferredLanguageId']); // TO BE EXECUTED IF THE USER CLICKS THIS TAB
    mindzWidgetAjaxObject.GetProfileEventsCount(mindzWidgetSettings['profile']['id'], mindzWidgetSettings['profile']['preferredLanguageId']); // TO BE EXECUTED IF THE USER CLICKS THIS TAB
    //		alert("test")
    //		alert(mindzWidgetTabs[0][0].contentTitle);
    mindzWidgetAjaxObject.GetWidgetLabels(mindzWidgetSettings['profile']['id'], mindzWidgetSettings['profile']['preferredLanguageId']);
});

document.write('<div class="mindzWidget">');
document.write('	<div id="mindzWidgetProfiel" class="mindzWidgetMainContainer">');
document.write('		<div class="mindzWidgetContainer">');
document.write('			<div class="mindzWidgetDotCom"><a href="http://www.mindz.com/"><img class="mindzWidgetDotComImage" src="http://images.mindz.com/ProfileWidget/img/mindzcom.gif" /></a></div>');
document.write('			<div class="mindzWidgetInnerContainer">');
document.write('				<p id="mindzWidgetTitle">Profiel</p>');
document.write('				<hr class="mindzWidgetFade" />');
document.write('				<div id="mindzWidgetContent">');
document.write('				</div>');
document.write('				<div id="mindzWidgetInfoPanel">');
document.write('				</div>');
document.write('				<div class="mindzWidgetNavigation">');
document.write('					<div><input type="button" onClick="return mindzWidgetTE.previousContent()" class="mindzWidgetNavigationLeftButton" /></div>');
document.write('					<div class="mindzWidgetNavigationNumbering"><span id="mindzWidgetNavigationStartItem">1</span> / <span id="mindzWidgetNavigationEndItem">3</span></div>');
document.write('					<div><input type="button" onClick="return mindzWidgetTE.nextContent()" class="mindzWidgetNavigationRightButton" /></div>');
document.write('				</div>');
document.write('			</div>');
document.write('	  	</div>');
document.write('		<div id="mindzWidgetNav">');
document.write('			<ul>');
document.write('				<li id="t1"><a href="#" onClick="return mindzWidgetTE.changeTab(0);" id="mindzWidgetProfileTab"><nobr>Profiel</nobr></a></li>');
document.write('				<li id="t2"><a href="#" onClick="return mindzWidgetTE.changeTab(1);" id="mindzWidgetWeblogTab"><nobr>Weblog</nobr></a></li>');
document.write('				<li id="t3"><a href="#" onClick="return mindzWidgetTE.changeTab(2);" id="mindzWidgetPlazasTab"><nobr>Plazas</nobr></a></li>');
document.write('				<li id="t4"><a href="#" onClick="return mindzWidgetTE.changeTab(3);" id="mindzWidgetEventsTab"><nobr>Events</nobr></a></li>');
document.write('			</ul>');
document.write('		</div>');
document.write('		<div id="mindzWidgetSearch">');
document.write('			<input id="mindzWidgetSearchInput" type="text" name="keywords" />');
document.write('			<input id="mindzWidgetSearchButton" type="button" onclick="mindzWidgetSearchKeyword();" value="Zoeken" />');
document.write('			<div id="mindzWidgetLinks"><a id="mindzWidgetGetWidgetLink" href="#" >Wil je ook deze widget?</a> | <a id="mindzWidgetAbout" href="http://www.mindz.com/about">Over MINDZ</a></div>');
document.write('		</div>');
document.write('	</div>');
document.write('</div>');