/* Copyright (c) 2009 Spil Games; Includes also: jQuery by John Resig (jquery.com) and several jQuery plugins. */;(function(){var
window=this,undefined,_jQuery=window.jQuery,_$=window.$,jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);},quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,isSimple=/^.[^:#\[\.,]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;this.context=selector;return this;}
if(typeof selector==="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])
selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem&&elem.id!=match[3])
return jQuery().find(selector);var ret=jQuery(elem||[]);ret.context=document;ret.selector=selector;return ret;}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))
return jQuery(document).ready(selector);if(selector.selector&&selector.context){this.selector=selector.selector;this.context=selector.context;}
return this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector));},selector:"",jquery:"1.3.2",size:function(){return this.length;},get:function(num){return num===undefined?Array.prototype.slice.call(this):this[num];},pushStack:function(elems,name,selector){var ret=jQuery(elems);ret.prevObject=this;ret.context=this.context;if(name==="find")
ret.selector=this.selector+(this.selector?" ":"")+selector;else if(name)
ret.selector=this.selector+"."+name+"("+selector+")";return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(typeof name==="string")
if(value===undefined)
return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)
value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!=="object"&&text!=null)
return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)
ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode)
wrap.insertBefore(this[0]);wrap.map(function(){var elem=this;while(elem.firstChild)
elem=elem.firstChild;return elem;}).append(this);}
return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType==1)
this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},push:[].push,sort:[].sort,splice:[].splice,find:function(selector){if(this.length===1){var ret=this.pushStack([],"find",selector);ret.length=0;jQuery.find(selector,this[0],ret);return ret;}else{return this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return jQuery.find(selector,elem);})),"find",selector);}},clone:function(events){var ret=this.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLDoc(this)){var html=this.outerHTML;if(!html){var div=this.ownerDocument.createElement("div");div.appendChild(this.cloneNode(true));html=div.innerHTML;}
return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0];}else
return this.cloneNode(true);});if(events===true){var orig=this.find("*").andSelf(),i=0;ret.find("*").andSelf().each(function(){if(this.nodeName!==orig[i].nodeName)
return;var events=jQuery.data(orig[i],"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(this,type,events[type][handler],events[type][handler].data);}}
i++;});}
return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,jQuery.grep(this,function(elem){return elem.nodeType===1;})),"filter",selector);},closest:function(selector){var pos=jQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=0;return this.map(function(){var cur=this;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(cur).is(selector)){jQuery.data(cur,"closest",closer);return cur;}
cur=cur.parentNode;closer++;}});},not:function(selector){if(typeof selector==="string")
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector);else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector==="string"?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return!!selector&&this.is("."+selector);},val:function(value){if(value===undefined){var elem=this[0];if(elem){if(jQuery.nodeName(elem,'option'))
return(elem.attributes.value||{}).specified?elem.value:elem.text;if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)
return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery(option).val();if(one)
return value;values.push(value);}}
return values;}
return(elem.value||"").replace(/\r/g,"");}
return undefined;}
if(typeof value==="number")
value+='';return this.each(function(){if(this.nodeType!=1)
return;if(jQuery.isArray(value)&&/radio|checkbox/.test(this.type))
this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)
this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value===undefined?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,+i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},domManip:function(args,table,callback){if(this[0]){var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),scripts=jQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=fragment.firstChild;if(first)
for(var i=0,l=this.length;i<l;i++)
callback.call(root(this[i],first),this.length>1||i>0?fragment.cloneNode(true):fragment);if(scripts)
jQuery.each(scripts,evalScript);}
return this;function root(elem,cur){return table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)
jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)
elem.parentNode.removeChild(elem);}
function now(){return+new Date;}
jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!=="object"&&!jQuery.isFunction(target))
target={};if(length==i){target=this;--i;}
for(;i<length;i++)
if((options=arguments[i])!=null)
for(var name in options){var src=target[name],copy=options[name];if(target===copy)
continue;if(deep&&copy&&typeof copy==="object"&&!copy.nodeType)
target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)
target[name]=copy;}
return target;};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{},toString=Object.prototype.toString;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)
window.jQuery=_jQuery;return jQuery;},isFunction:function(obj){return toString.call(obj)==="[object Function]";},isArray:function(obj){return toString.call(obj)==="[object Array]";},isXMLDoc:function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&jQuery.isXMLDoc(elem.ownerDocument);},globalEval:function(data){if(data&&/\S/.test(data)){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.support.scriptEval)
script.appendChild(document.createTextNode(data));else
script.text=data;head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length===undefined){for(name in object)
if(callback.apply(object[name],args)===false)
break;}else
for(;i<length;)
if(callback.apply(object[i++],args)===false)
break;}else{if(length===undefined){for(name in object)
if(callback.call(object[name],name,object[name])===false)
break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}
return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))
value=value.call(elem,i);return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)
elem.className=classNames!==undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return elem&&jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(var name in options)
elem.style[name]=old[name];},css:function(elem,name,force,extra){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border")
return;jQuery.each(which,function(){if(!extra)
val-=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;if(extra==="margin")
val+=parseFloat(jQuery.curCSS(elem,"margin"+this,true))||0;else
val-=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});}
if(elem.offsetWidth!==0)
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,Math.round(val));}
return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;if(name=="opacity"&&!jQuery.support.opacity){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}
if(name.match(/float/i))
name=styleFloat;if(!force&&style&&style[name])
ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))
name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle)
ret=computedStyle.getPropertyValue(name);if(name=="opacity"&&ret=="")
ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}
return ret;},clean:function(elems,context,fragment){context=context||document;if(typeof context.createElement==="undefined")
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;if(!fragment&&elems.length===1&&typeof elems[0]==="string"){var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match)
return[context.createElement(match[1])];}
var ret=[],scripts=[],div=context.createElement("div");jQuery.each(elems,function(i,elem){if(typeof elem==="number")
elem+='';if(!elem)
return;if(typeof elem==="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!jQuery.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)
div=div.lastChild;if(!jQuery.support.tbody){var hasBody=/<tbody/i.test(elem),tbody=!tags.indexOf("<table")&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);}
if(!jQuery.support.leadingWhitespace&&/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);elem=jQuery.makeArray(div.childNodes);}
if(elem.nodeType)
ret.push(elem);else
ret=jQuery.merge(ret,elem);});if(fragment){for(var i=0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1)
ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));fragment.appendChild(ret[i]);}}
return scripts;}
return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&elem.parentNode)
elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";elem[name]=value;}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;if(name=="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(a|area)$/i)&&elem.href?0:undefined;}
return elem[name];}
if(!jQuery.support.style&&notxml&&name=="style")
return jQuery.attr(elem.style,"cssText",value);if(set)
elem.setAttribute(name,""+value);var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
if(!jQuery.support.opacity&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+
(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}
return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}
name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)
elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||typeof array==="string"||jQuery.isFunction(array)||array.setInterval)
ret[0]=array;else
while(i)
ret[--i]=array[i];}
return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)
if(array[i]===elem)
return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(!jQuery.support.getAll){while((elem=second[i++])!=null)
if(elem.nodeType!=8)
first[pos++]=elem;}else
while((elem=second[i++])!=null)
first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}
return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)
if(!inv!=!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)
ret[ret.length]=value;}
return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,'0'])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")
ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret),name,selector);};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector);for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery.fn[original].apply(jQuery(insert[i]),elems);ret=ret.concat(elems);}
return this.pushStack(ret,name,selector);};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames,state){if(typeof state!=="boolean")
state=!jQuery.className.has(this,classNames);jQuery.className[state?"add":"remove"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",this).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(this).children().remove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}
var expando="jQuery"+now(),uuid=0,windowData={};jQuery.extend({cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)
id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]={};if(data!==undefined)
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery.data(elem,type);if(!q||jQuery.isArray(data))
q=jQuery.data(elem,type,jQuery.makeArray(data));else if(data)
q.push(data);}
return q;},dequeue:function(elem,type){var queue=jQuery.queue(elem,type),fn=queue.shift();if(!type||type==="fx")
fn=queue[0];if(fn!==undefined)
fn.call(elem);}});jQuery.fn.extend({data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)
data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
if(data===undefined)
return jQuery.queue(this[0],type);return this.each(function(){var queue=jQuery.queue(this,type,data);if(type=="fx"&&queue.length==1)
queue[0].call(this);});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});}});(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString;var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;if(context.nodeType!==1&&context.nodeType!==9)
return[];if(!selector||typeof selector!=="string"){return results;}
var parts=[],m,set,checkSet,check,mode,extra,prune=true;chunker.lastIndex=0;while((m=chunker.exec(selector))!==null){parts.push(m[1]);if(m[2]){extra=RegExp.rightContext;break;}}
if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector])
selector+=parts.shift();set=posProcess(selector,set);}}}else{var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));set=Sizzle.filter(ret.expr,ret.set);if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,isXML(context));}}
if(!checkSet){checkSet=set;}
if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context.nodeType===1){for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(var i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,context,results,seed);if(sortOrder){hasDuplicate=false;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.find=function(expr,context,isXML){var set,match;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.match[type].exec(expr))){var left=RegExp.leftContext;if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=context.getElementsByTagName("*");}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;if(curLoop==result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}
if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr;}else{break;}}
old=expr;}
return curLoop;};var Expr=Sizzle.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(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false;}}}else{for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!part.match(/\W/)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[];}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){return context.getElementsByTagName(match[1]);}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){if(!inplace)
result.push(elem);}else if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(/\\/g,"");},TAG:function(match,curLoop){for(var i=0;curLoop[i]===false;i++){}
return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase();},CHILD:function(match){if(match[1]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if(match[3].match(chunker).length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return/h\d/i.test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON";},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0==i;},eq:function(elem,i,match){return match[3]-0==i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var i=0,l=not.length;i<l;i++){if(not[i]===elem){return false;}}
return true;}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case'only':case'first':while(node=node.previousSibling){if(node.nodeType===1)return false;}
if(type=='first')return true;node=elem;case'last':while(node=node.nextSibling){if(node.nodeType===1)return false;}
return true;case'nth':var first=match[2],last=match[3];if(first==1&&last==0){return true;}
var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent.sizcache=doneName;}
var diff=elem.nodeIndex-last;if(first==0){return diff==0;}else{return(diff%first==0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);}
var makeArray=function(array,results){array=Array.prototype.slice.call(array);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes);}catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var i=0,l=array.length;i<l;i++){ret.push(array[i]);}}else{for(var i=0;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true;}
return ret;};}else if("sourceIndex"in document.documentElement){sortOrder=function(a,b){var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true;}
return ret;};}else if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true;}
return ret;};}
(function(){var form=document.createElement("form"),id="script"+(new Date).getTime();form.innerHTML="<input name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}})();if(document.querySelectorAll)(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra);}catch(e){}}
return oldSizzle(query,context,extra,seed);};Sizzle.find=oldSizzle.find;Sizzle.filter=oldSizzle.filter;Sizzle.selectors=oldSizzle.selectors;Sizzle.matches=oldSizzle.matches;})();if(document.getElementsByClassName&&document.documentElement.getElementsByClassName)(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(div.getElementsByClassName("e").length===0)
return;div.lastChild.className="e";if(div.getElementsByClassName("e").length===1)
return;Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(elem.nodeName===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;elem.sizset=i;}
elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16;}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};var isXML=function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&isXML(elem.ownerDocument);};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}
return Sizzle.filter(later,tmpSet);};jQuery.find=Sizzle;jQuery.filter=Sizzle.filter;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;Sizzle.selectors.filters.hidden=function(elem){return elem.offsetWidth===0||elem.offsetHeight===0;};Sizzle.selectors.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0;};Sizzle.selectors.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.multiFilter=function(expr,elems,not){if(not){expr=":not("+expr+")";}
return Sizzle.matches(expr,elems);};jQuery.dir=function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)
matched.push(cur);cur=cur[dir];}
return matched;};jQuery.nth=function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])
if(cur.nodeType==1&&++num==result)
break;return cur;};jQuery.sibling=function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)
r.push(n);}
return r;};return;window.Sizzle=Sizzle;})();jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)
return;if(elem.setInterval&&elem!=window)
elem=window;if(!handler.guid)
handler.guid=this.guid++;if(data!==undefined){var fn=handler;handler=this.proxy(fn);handler.data=data;}
var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(arguments.callee.elem,arguments):undefined;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();handler.type=namespaces.slice().sort().join(".");var handlers=events[type];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].setup.call(elem,data,namespaces);if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem,data,namespaces)===false){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)
return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types===undefined||(typeof types==="string"&&types.charAt(0)=="."))
for(var type in events)
this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}
jQuery.each(types.split(/\s+/),function(index,type){var namespaces=type.split(".");type=namespaces.shift();var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");if(events[type]){if(handler)
delete events[type][handler.guid];else
for(var handle in events[type])
if(namespace.test(events[type][handle].type))
delete events[type][handle];if(jQuery.event.specialAll[type])
jQuery.event.specialAll[type].teardown.call(elem,namespaces);for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem,namespaces)===false){if(elem.removeEventListener)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=null;delete events[type];}}});}
for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(event,data,elem,bubbling){var type=event.type||event;if(!bubbling){event=typeof event==="object"?event[expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true;}
if(!elem){event.stopPropagation();if(this.global[type])
jQuery.each(jQuery.cache,function(){if(this.events&&this.events[type])
jQuery.event.trigger(event,data,this.handle.elem);});}
if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event);}
event.currentTarget=elem;var handle=jQuery.data(elem,"handle");if(handle)
handle.apply(elem,data);if((!elem[type]||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
event.result=false;if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}
this.triggered=false;if(!event.isPropagationStopped()){var parent=elem.parentNode||elem.ownerDocument;if(parent)
jQuery.event.trigger(event,data,parent,true);}},handle:function(event){var all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;var namespaces=event.type.split(".");event.type=namespaces.shift();all=!namespaces.length&&!event.exclusive;var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||namespace.test(handler.type)){event.handler=handler;event.data=handler.data;var ret=handler.apply(this,arguments);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}
if(event.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(event){if(event[expando])
return event;var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop];}
if(!event.target)
event.target=event.srcElement||document;if(event.target.nodeType==3)
event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)
event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)
event.metaKey=event.ctrlKey;if(!event.which&&event.button)
event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy=proxy||function(){return fn.apply(this,arguments);};proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll:{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespaces[0],liveHandler);},teardown:function(namespaces){if(namespaces.length){var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((jQuery.data(this,"events").live||{}),function(){if(name.test(this.type))
remove++;});if(remove<1)
jQuery.event.remove(this,namespaces[0],liveHandler);}}}}};jQuery.Event=function(src){if(!this.preventDefault)
return new jQuery.Event(src);if(src&&src.type){this.originalEvent=src;this.type=src.type;}else
this.type=src;this.timeStamp=now();this[expando]=true;};function returnFalse(){return false;}
function returnTrue(){return true;}
jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.preventDefault)
e.preventDefault();e.returnValue=false;},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e)
return;if(e.stopPropagation)
e.stopPropagation();e.cancelBubble=true;},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation();},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;while(parent&&parent!=this)
try{parent=parent.parentNode;}
catch(e){parent=this;}
if(parent!=this){event.type=event.data;jQuery.event.handle.apply(this,arguments);}};jQuery.each({mouseover:'mouseenter',mouseout:'mouseleave'},function(orig,fix){jQuery.event.special[fix]={setup:function(){jQuery.event.add(this,orig,withinElement,fix);},teardown:function(){jQuery.event.remove(this,orig,withinElement);}};});jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result;}},toggle:function(fn){var args=arguments,i=1;while(i<args.length)
jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(fn);return this;},live:function(type,fn){var proxy=jQuery.event.proxy(fn);proxy.guid+=this.selector+type;jQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);return this;},die:function(type,fn){jQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);return this;}});function liveHandler(event){var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),stop=true,elems=[];jQuery.each(jQuery.data(this,"events").live||[],function(i,fn){if(check.test(fn.type)){var elem=jQuery(event.target).closest(fn.data)[0];if(elem)
elems.push({elem:elem,fn:fn});}});elems.sort(function(a,b){return jQuery.data(a.elem,"closest")-jQuery.data(b.elem,"closest");});jQuery.each(elems,function(){if(this.fn.call(this.elem,event,this.fn.data)===false)
return(stop=false);});return stop;}
function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".");}
jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document,jQuery);});jQuery.readyList=null;}
jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);jQuery.ready();},false);}else if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);jQuery.ready();}});if(document.documentElement.doScroll&&window==window.top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.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(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});jQuery(window).bind('unload',function(){for(var id in jQuery.cache)
if(id!=1&&jQuery.cache[id].handle)
jQuery.event.remove(jQuery.cache[id].handle.elem);});(function(){jQuery.support={};var root=document.documentElement,script=document.createElement("script"),div=document.createElement("div"),id="script"+(new Date).getTime();div.style.display="none";div.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 all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0];if(!all||!all.length||!a){return;}
jQuery.support={leadingWhitespace:div.firstChild.nodeType==3,tbody:!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:a.style.opacity==="0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};script.type="text/javascript";try{script.appendChild(document.createTextNode("window."+id+"=1;"));}catch(e){}
root.insertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEval=true;delete window[id];}
root.removeChild(script);if(div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",arguments.callee);});div.cloneNode(true).fireEvent("onclick");}
jQuery(function(){var div=document.createElement("div");div.style.width=div.style.paddingLeft="1px";document.body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;document.body.removeChild(div).style.display='none';});})();var styleFloat=jQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props={"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!=="string")
return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var type="GET";if(params)
if(jQuery.isFunction(params)){callback=params;params=null;}else if(typeof params==="object"){params=jQuery.param(params);type="POST";}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);if(callback)
self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return this.elements?jQuery.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(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return window.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(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!=="string")
s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))
s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))
s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}
if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)
s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=="script"&&s.cache==null)
s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}
if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=="script"&&type=="GET"&&parts&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=location.host)){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)
script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();script.onload=script.onreadystatechange=null;head.removeChild(script);}};}
head.appendChild(script);return undefined;}
var requestDone=false;var xhr=s.xhr();if(s.username)
xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)
xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend&&s.beforeSend(xhr,s)===false){if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");xhr.abort();return false;}
if(s.global)
jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(xhr.readyState==0){if(ival){clearInterval(ival);ival=null;if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}}else if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}
status=isTimeout=="timeout"?"timeout":!jQuery.httpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"notmodified":"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s);}catch(e){status="parsererror";}}
if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=modRes;if(!jsonp)
success();}else
jQuery.handleError(s,xhr,status);complete();if(isTimeout)
xhr.abort();if(s.async)
xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xhr&&!requestDone)
onreadystatechange("timeout");},s.timeout);}
try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xhr,s]);}
function complete(){if(s.complete)
s.complete(xhr,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)
jQuery.event.trigger("ajaxStop");}
return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)
jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223;}catch(e){}
return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url];}catch(e){}
return false;},httpData:function(xhr,type,s){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")
throw"parsererror";if(s&&s.dataFilter)
data=s.dataFilter(data,type);if(typeof data==="string"){if(type=="script")
jQuery.globalEval(data);if(type=="json")
data=window["eval"]("("+data+")");}
return data;},param:function(a){var s=[];function add(key,value){s[s.length]=encodeURIComponent(key)+'='+encodeURIComponent(value);};if(jQuery.isArray(a)||a.jquery)
jQuery.each(a,function(){add(this.name,this.value);});else
for(var j in a)
if(jQuery.isArray(a[j]))
jQuery.each(a[j],function(){add(j,this);});else
add(j,jQuery.isFunction(a[j])?a[j]():a[j]);return s.join("&").replace(/%20/g,"+");}});var elemdisplay={},timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type;});return obj;}
jQuery.fn.extend({show:function(speed,callback){if(speed){return this.animate(genFx("show",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");this[i].style.display=old||"";if(jQuery.css(this[i],"display")==="none"){var tagName=this[i].tagName,display;if(elemdisplay[tagName]){display=elemdisplay[tagName];}else{var elem=jQuery("<"+tagName+" />").appendTo("body");display=elem.css("display");if(display==="none")
display="block";elem.remove();elemdisplay[tagName]=display;}
jQuery.data(this[i],"olddisplay",display);}}
for(var i=0,l=this.length;i<l;i++){this[i].style.display=jQuery.data(this[i],"olddisplay")||"";}
return this;}},hide:function(speed,callback){if(speed){return this.animate(genFx("hide",3),speed,callback);}else{for(var i=0,l=this.length;i<l;i++){var old=jQuery.data(this[i],"olddisplay");if(!old&&old!=="none")
jQuery.data(this[i],"olddisplay",jQuery.css(this[i],"display"));}
for(var i=0,l=this.length;i<l;i++){this[i].style.display="none";}
return this;}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){var bool=typeof fn==="boolean";return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn==null||bool?this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]();}):this.animate(genFx("toggle",3),fn,fn2);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,hidden=this.nodeType==1&&jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
return opt.complete.call(this);if((p=="height"||p=="width")&&this.style){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}
if(opt.overflow!=null)
this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}
if(parts[1])
end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)
if(timers[i].elem==this){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(name,props){jQuery.fn[name]=function(speed,callback){return this.animate(props,speed,callback);};});jQuery.extend({speed:function(speed,easing,fn){var opt=typeof speed==="object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:jQuery.fx.speeds[opt.duration]||jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)
options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)
this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style)
this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))
return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;var self=this;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(timerId);timerId=undefined;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!==true)
done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")
this.elem.style.display="block";}
if(this.options.hide)
jQuery(this.elem).hide();if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);this.options.complete.call(this.elem);}
return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null)
fx.elem.style[fx.prop]=fx.now+fx.unit;else
fx.elem[fx.prop]=fx.now;}}});if(document.documentElement["getBoundingClientRect"])
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,top=box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,left=box.left+(self.pageXOffset||jQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left};};else
jQuery.fn.offset=function(){if(!this[0])return{top:0,left:0};if(this[0]===this[0].ownerDocument.body)return jQuery.offset.bodyOffset(this[0]);jQuery.offset.initialized||jQuery.offset.initialize();var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView.getComputedStyle(elem,null),top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){computedStyle=defaultView.getComputedStyle(elem,null);top-=elem.scrollTop,left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop,left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName)))
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevOffsetParent=offsetParent,offsetParent=elem.offsetParent;}
if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible")
top+=parseInt(computedStyle.borderTopWidth,10)||0,left+=parseInt(computedStyle.borderLeftWidth,10)||0;prevComputedStyle=computedStyle;}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static")
top+=body.offsetTop,left+=body.offsetLeft;if(prevComputedStyle.position==="fixed")
top+=Math.max(docElem.scrollTop,body.scrollTop),left+=Math.max(docElem.scrollLeft,body.scrollLeft);return{top:top,left:left};};jQuery.offset={initialize:function(){if(this.initialized)return;var body=document.body,container=document.createElement('div'),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,html='<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>';rules={position:'absolute',top:0,left:0,margin:0,border:0,width:'1px',height:'1px',visibility:'hidden'};for(prop in rules)container.style[prop]=rules[prop];container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);innerDiv.style.overflow='hidden',innerDiv.style.position='relative';this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);body.style.marginTop='1px';this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);body.style.marginTop=bodyMarginTop;body.removeChild(container);this.initialized=true;},bodyOffset:function(body){jQuery.offset.initialized||jQuery.offset.initialize();var top=body.offsetTop,left=body.offsetLeft;if(jQuery.offset.doesNotIncludeMarginInBodyOffset)
top+=parseInt(jQuery.curCSS(body,'marginTop',true),10)||0,left+=parseInt(jQuery.curCSS(body,'marginLeft',true),10)||0;return{top:top,left:left};}};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent||document.body;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return null;return val!==undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?jQuery.css(this[0],lower,false,"padding"):null;};jQuery.fn["outer"+name]=function(margin){return this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null;};var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(document.documentElement["client"+name],document.body["scroll"+name],document.documentElement["scroll"+name],document.body["offset"+name],document.documentElement["offset"+name]):size===undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,typeof size==="string"?size:size+"px");};});})();;if(typeof SPI=="undefined"||!SPI){var SPI={_settings:{},_langStrings:{},_templates:{},_tplCache:{}};}
SPI.log=function(msg){if(window.console&&console.log){console.log(msg);}else{alert(msg);}};SPI.render=function render(str,data){var fn=!/\W/.test(str)?SPI._tplCache[str]=SPI._tplCache[str]||render(document.getElementById(str).innerHTML):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};"+"with(obj){p.push('"+
str.split("'").join("\\'").replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'").split("\\\\'").join("\\'")
+"');}return p.join('');");return data?fn(data):fn;};SPI.addslashes=function(x){return x.replace(/('|"|\\)/g,"\\$1")};SPI.str_repeat=function(i,m){for(var o=[];m>0;o[--m]=i);return(o.join(''));};SPI.sprintf=function(){var i=0,a,f=arguments[i++],o=[],m,p,c,x;while(f){if(m=/^[^\x25]+/.exec(f))o.push(m[0]);else if(m=/^\x25{2}/.exec(f))o.push('%');else if(m=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)){if(((a=arguments[m[1]||i++])==null)||(a==undefined))throw("Too few arguments.");if(/[^s]/.test(m[7])&&(typeof(a)!='number'))
throw("Expecting number but found "+typeof(a));switch(m[7]){case'b':a=a.toString(2);break;case'c':a=String.fromCharCode(a);break;case'd':a=parseInt(a);break;case'e':a=m[6]?a.toExponential(m[6]):a.toExponential();break;case'f':a=m[6]?parseFloat(a).toFixed(m[6]):parseFloat(a);break;case'o':a=a.toString(8);break;case's':a=((a=String(a))&&m[6]?a.substring(0,m[6]):a);break;case'u':a=Math.abs(a);break;case'x':a=a.toString(16);break;case'X':a=a.toString(16).toUpperCase();break;}
a=(/[def]/.test(m[7])&&m[2]&&a>0?'+'+a:a);c=m[3]?m[3]=='0'?'0':m[3].charAt(1):' ';x=m[5]-String(a).length;p=m[5]?SPI.str_repeat(c,x):'';o.push(m[4]?a+p:p+a);}
else throw("Huh ?!");f=f.substring(m[0].length);}
return o.join('');};SPI.getAndUpdateConfig=function(app,local,update){var x=['settings','langStrings','templates'];update=update||{};for(var i in x){local[x[i]]=local[x[i]]||{};jQuery.extend(true,local[x[i]],SPI[('_'+x[i])][app]||{},update[x[i]]||{});}};SPI.escape=function(string){return jQuery('<div/>').text(string).html();};SPI.ltrim=function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"");};SPI.rtrim=function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"");};SPI.trim=function(str,chars){return SPI.ltrim(SPI.rtrim(str,chars),chars);};SPI.typeOf=function(value){var s=typeof value;if(s==='object'){if(value){if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))&&typeof value.splice==='function'){s='array';}}else{s='null';}}
return s;};SPI.paginatorString=function(totalRes,curPage,elemPerPage,surround,handler,strings){curPage=curPage||1;elemPerPage=elemPerPage||20;surround=surround||9;strings=strings||{next:'Next',prev:'Previous',separator:' | '};var totalPages=Math.ceil(totalRes/elemPerPage);if(totalPages<=1){return'';}
var ret='<div>';var naviStart=Math.min(curPage-Math.floor(surround/2),Math.ceil(totalRes/elemPerPage-surround));var naviStart=Math.max(naviStart,1);if(curPage>1){ret+='<a href="#'+(Math.max(1,curPage-1))+'">'+strings.prev+'</a>';}else{ret+='<span class="prev_next">'+strings.prev+'</span>';}
ret+=strings.separator;for(var i=naviStart;i<=totalPages&&i<surround+naviStart;i++){if(i==curPage){ret+='<span class="current">'+i+'</span>';}else{ret+='<span><a href="#'+i+'">'+i+'</a></span>';}
ret+=strings.separator;}
if(curPage<totalPages){ret+='<a href="#'+(Math.min(curPage+1,totalPages))+'">'+strings.next+'</a>';}else{ret+='<span class="prev_next">'+strings.next+'</span>';}
ret+='</div>';if(handler){ret=$(ret);$('a',ret).click(function(){handler.call(this,parseInt($(this).attr('href').replace(/[^\#]*#/,'')));return false;});}
return ret;};SPI.flashMessage=(function(){var cookieName='_profilar_fmessage';var that={};that.get=function(){var cookieValue=$.cookie(cookieName)||'';that.clear();return(cookieValue.split('|'));};that.set=function(message,error){that.clear();var isError=error||false;$.cookie(cookieName,message+'|'+isError);};that.clear=function(){$.cookie(cookieName,null);};return that;})();SPI.number_format=function(number,decimals,dec_point,thousands_sep){var decimals=decimals||0;var dec_point=dec_point||SPI._settings.global.number_format_decimalseparator;var thousands_sep=thousands_sep||SPI._settings.global.number_format_thousandsseparator;var n=number,prec=decimals;var toFixedFix=function(n,prec){var k=Math.pow(10,prec);return(Math.round(n*k)/k).toString();};n=!isFinite(+n)?0:+n;prec=!isFinite(+prec)?0:Math.abs(prec);var sep=(typeof thousands_sep==='undefined')?',':thousands_sep;var dec=(typeof dec_point==='undefined')?'.':dec_point;var s=(prec>0)?toFixedFix(n,prec):toFixedFix(Math.round(n),prec);var abs=toFixedFix(Math.abs(n),prec);var _,i;if(abs>=1000){_=abs.split(/\D/);i=_[0].length%3||3;_[0]=s.slice(0,i+(n<0))+
_[0].slice(i).replace(/(\d{3})/g,sep+'$1');s=_.join(dec);}else{s=s.replace('.',dec);}
var decPos=s.indexOf(dec);if(prec>=1&&decPos!==-1&&(s.length-decPos-1)<prec){s+=new Array(prec-(s.length-decPos-1)).join(0)+'0';}
else if(prec>=1&&decPos===-1){s+=dec+new Array(prec).join(0)+'0';}
return s;};SPI.formatDate=function(date,langStrings,day){var s=langStrings||SPI._langStrings.relative_date;var lowestIsDay=day||false;var diff=((new Date()).getTime()/1000-date),day_diff=Math.floor(diff/86400);if(isNaN(day_diff))return'';if(lowestIsDay===true){if(diff<86400||day_diff<1)return s[13];}
if(diff<0||day_diff<0)return s[0];if(day_diff>=730)return SPI.sprintf(s[12],Math.ceil(day_diff/365));if(day_diff==0)return diff<60&&s[0]||diff<120&&s[1]||diff<3600&&SPI.sprintf(s[2],Math.floor(diff/60))||diff<7200&&s[3]||diff<86400&&SPI.sprintf(s[4],Math.floor(diff/3600));return day_diff==1&&s[5]||day_diff<7&&SPI.sprintf(s[6],day_diff)||day_diff<14&&s[7]||day_diff<31&&SPI.sprintf(s[8],Math.ceil(day_diff/7))||day_diff<60&&s[9]||day_diff<365&&SPI.sprintf(s[10],Math.ceil(day_diff/30))||day_diff<730&&s[11];};SPI.formatAbsDate=function(date,isTimestamp,template){isTimestamp=isTimestamp===undefined?true:isTimestamp;template=template===undefined?SPI._langStrings.formatabsdate:template;var day,month,year;if(isTimestamp){var tmp=new Date()
tmp.setTime(parseInt(date)*1000);day=tmp.getDate();month=tmp.getMonth()+1;year=tmp.getFullYear();}else{day=date.substr(6,2);month=date.substr(4,2);year=date.substr(0,4);}
return SPI.sprintf(template,year,month,day);};SPI.cutStringPlease=function(string,limit,specialchars,ending){var limit=limit||0;var specialchars=specialchars||false;var ending=ending||'...';if(limit==0){return string;}
if(specialchars==true){string=this.escape(string);}
if(string.length>limit){string=string.substring(0,limit-1)+''+ending;}
return string;};SPI.getURLparam=function(name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);return(results==null)?'':results[1];};SPI.reloadSite=function(url){var url=url||SPI.getURLparam('r')||SPI._settings.global.static_domain||'/';try{top.location.href=url;}catch(e){};};SPI.handlers=(function(){var that={};var callbacks={};that.clear=function(bucket){if(bucket===undefined){callbacks={};}else{delete callbacks[bucket];}};that.add=function(bucket,callback){if(callbacks[bucket]===undefined){callbacks[bucket]=[];}
callbacks[bucket].push(callback);};that.run=function(bucket,_arguments,debug){if(callbacks[bucket]===undefined){return;}
for(var i in callbacks[bucket]){try{callbacks[bucket][i].apply(this,_arguments===undefined?[]:_arguments);}catch(e){if(debug===true)throw e;}}
that.clear(bucket);};return that;})();;(function($){$.dimensions={version:'1.2'};$.each(['Height','Width'],function(i,name){$.fn['inner'+name]=function(){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';return this.is(':visible')?this[0]['client'+name]:num(this,name.toLowerCase())+num(this,'padding'+torl)+num(this,'padding'+borr);};$.fn['outer'+name]=function(options){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';options=$.extend({margin:false},options||{});var val=this.is(':visible')?this[0]['offset'+name]:num(this,name.toLowerCase())
+num(this,'border'+torl+'Width')+num(this,'border'+borr+'Width')
+num(this,'padding'+torl)+num(this,'padding'+borr);return val+(options.margin?(num(this,'margin'+torl)+num(this,'margin'+borr)):0);};});$.each(['Left','Top'],function(i,name){$.fn['scroll'+name]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(name=='Left'?val:$(window)['scrollLeft'](),name=='Top'?val:$(window)['scrollTop']()):this['scroll'+name]=val;}):this[0]==window||this[0]==document?self[(name=='Left'?'pageXOffset':'pageYOffset')]||$.boxModel&&document.documentElement['scroll'+name]||document.body['scroll'+name]:this[0]['scroll'+name];};});$.fn.extend({position:function(){var left=0,top=0,elem=this[0],offset,parentOffset,offsetParent,results;if(elem){offsetParent=this.offsetParent();offset=this.offset();parentOffset=offsetParent.offset();offset.top-=num(elem,'marginTop');offset.left-=num(elem,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&$.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;return $(offsetParent);}});function num(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};})(jQuery);;jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};;(function($){$.extend({manageAjax:function(o){o=$.extend({manageType:'normal',maxReq:0,blockSameRequest:false,global:true},o);return new $.ajaxManager(o);},ajaxManager:function(o){this.opt=o;this.queue=[];}});$.extend($.ajaxManager.prototype,{add:function(o){var quLen=this.queue.length,s=this.opt,q=this.queue,self=this,i,j;o=$.extend({},s,o);var cD=(o.data&&typeof o.data!="string")?$.param(o.data):o.data;if(s.blockSameRequest){var toPrevent=false;for(i=0;i<quLen;i++){if(q[i]&&q[i].data===cD&&q[i].url===o.url&&q[i].type===o.type){toPrevent=true;break;}}
if(toPrevent){return false;}}
q[quLen]={fnError:o.error,fnSuccess:o.success,fnComplete:o.complete,fnAbort:o.abort,error:[],success:[],complete:[],done:false,queued:false,data:cD,url:o.url,type:o.type,xhr:null};o.error=function(){if(q[quLen]){q[quLen].error=arguments;}};o.success=function(){if(q[quLen]){q[quLen].success=arguments;}};o.abort=function(){if(q[quLen]){q[quLen].abort=arguments;}};function startCallbacks(num,opts){if(q[num].fnError&&q[num].error.length){q[num].fnError.apply(opts||$,q[num].error);}
if(q[num].fnSuccess&&!q[num].error.length){q[num].fnSuccess.apply(opts||$,q[num].success);}
if(q[num].fnComplete){q[num].fnComplete.apply(opts||$,q[num].complete);}
self.abort(num,true);}
o.complete=function(){if(!q[quLen]){return;}
q[quLen].complete=arguments;q[quLen].done=true;switch(s.manageType){case'sync':if(quLen===0||!q[quLen-1]){var curQLen=q.length;for(i=quLen;i<curQLen;i++){if(q[i]){if(q[i].done){startCallbacks(i,this);}
else{break;}}}}
break;case'queue':if(quLen===0||!q[quLen-1]){var curQLen=q.length;for(i=0,j=0;i<curQLen;i++){if(q[i]&&q[i].queued){q[i].xhr=jQuery.ajax(q[i].xhr);q[i].queued=false;break;}}}
startCallbacks(quLen,this);break;case'abortOld':startCallbacks(quLen,this);for(i=quLen;i>=0;i--){if(q[i]){self.abort(i);}}
break;default:startCallbacks(quLen,this);break;}};if(s.maxReq){if(s.manageType!='queue'){for(i=quLen,j=0;i>=0;i--){if(j>=s.maxReq){this.abort(i);}
if(q[i]){j++;}}}
else{for(i=0,j=0;i<=quLen&&!q[quLen].queued;i++){if(q[i]&&!q[i].queued)
j++;if(j>s.maxReq)
q[quLen].queued=true;}}}
q[quLen].xhr=(q[quLen].queued)?o:jQuery.ajax(o);return quLen;},cleanUp:function(){this.queue=[];},abort:function(num,completed){var qLen=this.queue.length,s=this.opt,q=this.queue,self=this,i;function del(num){if(!q[num]){return;}
((!completed&&q[num].fnAbort)&&q[num].fnAbort.apply($,[num]));if(!q[num]){return;}
if(q[num].xhr){if(typeof q[num].xhr.abort!='undefined'){q[num].xhr.abort();}
if(typeof q[num].xhr.close!='undefined'){q[num].xhr.close();}
q[num].xhr=null;}
if(s.global&&$.active&&!--$.active){$.event.trigger("ajaxStop");}
q[num]=null;}
if(!num&&num!==0){for(i=0;i<qLen;i++){del(i);}
this.cleanUp();}
else{del(num);var allowCleaning=true;for(i=qLen;i>=0;i--){if(q[i]){allowCleaning=false;break;}}
if(allowCleaning){this.cleanUp();}}}});})(jQuery);;;(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track;$.tooltip={blocked:false,defaults:{delay:false,fade:false,showURL:false,extraClass:"",top:15,left:-32,id:"tooltip",track:true,fixPNG:true,fancyImages:{topLeft:'',topRight:'',bottomLeft:'',bottomRight:''}},block:function(){$.tooltip.blocked=!$.tooltip.blocked;}};$.fn.extend({ntooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip",settings);this.tOpacity=helper.parent.css("opacity");this.tooltipText=this.title;$(this).removeAttr("title");$('img',this).removeAttr("title").removeAttr("alt");this.alt="";}).mouseover(save).mouseout(hide).click(hide);},fixPNG:IE?function(){return this.find("*").each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')
$(this).css('position','relative');});}});}:function(){return this;},unfixPNG:IE?function(){return this.each(function(){$(this).css({'filter':'',backgroundImage:''});});}:function(){return this;},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]();});},url:function(){return this.attr('href')||this.attr('src');}});function createHelper(settings){if(helper.parent)
return;helper.parent=$('<div id="'+settings.id+'"><div class="top">&#160;</div><div class="middle"><h3></h3><div class="body"></div><div class="url"></div></div><div class="bottom">&#160;</div></div>').appendTo(document.body).hide();if($.fn.bgiframe)
helper.parent.bgiframe();helper.title=$('h3',helper.parent);helper.body=$('div.body',helper.parent);helper.url=$('div.url',helper.parent);}
function settings(element){return $.data(element,"tooltip");}
function handle(event){track=!!settings(this).track;if(settings(this).delay){tID=setTimeout(show,settings(this).delay);}else
show();$(document.body).bind('mousemove',update);update(event);}
function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler))
return;current=this;title=this.tooltipText;helper.body.removeClass('onlybody');if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent);}
helper.body.show();}else if(settings(this).showBody){var parts=title.split(settings(this).showBody);var getTitle=parts.shift();if(getTitle.length>0&&getTitle!=''){helper.title.html(getTitle).show();}else{helper.title.hide();helper.body.addClass('onlybody');}
helper.body.empty();for(var i=0,part;(part=parts[i]);i++){if(i>0)
helper.body.append("<br />");helper.body.append(part);}
helper.body.hideWhenEmpty();}else{helper.title.remove();helper.body.html(title).show();}
if(settings(this).showURL&&$(this).url())
helper.url.html($(this).url().replace('http://','')).show();else
helper.url.remove();helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG)
helper.parent.fixPNG();handle.apply(this,arguments);}
function show(){tID=null;if((!IE||!$.fn.bgiframe)&&settings(current).fade){if(helper.parent.is(":animated"))
helper.parent.stop().show().fadeTo(settings(current).fade,current.tOpacity);else
helper.parent.is(':visible')?helper.parent.fadeTo(settings(current).fade,current.tOpacity):helper.parent.fadeIn(settings(current).fade);}else{helper.parent.show();}
update();}
function update(event){if($.tooltip.blocked)
return;if(event&&event.target.tagName=="OPTION"){return;}
if(!track&&helper.parent.is(":visible")){$(document.body).unbind('mousemove',update)}
if(current==null){$(document.body).unbind('mousemove',update);return;}
helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");helper.parent.removeClass("topRight").removeClass("bottomRight").removeClass("topLeft").removeClass("bottomLeft");helper.parent.css({"background":"none"});var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;var right='auto';if(settings(current).positionLeft){right=$(window).width()-left;left='auto';}
helper.parent.css({left:left,right:right,top:top});}
var v=viewport(),h=helper.parent[0];var _vx=v.x+v.cx;var _hx=h.offsetLeft+h.offsetWidth;var _vy=v.y+v.cy;var _hy=h.offsetTop+h.offsetHeight+20;var MSIE6=$.browser.msie&&parseInt(Math.floor($.browser.version))==6?true:false;if(_vx<_hx&&_vy>=_hy){helper.parent.addClass("topRight");if(settings(current).fancyImages.topRight!=''){$('div.top',helper.parent).css({"background":"url("+settings(current).fancyImages.topRight.top+") no-repeat"});$('div.bottom',helper.parent).css({"background":"url("+settings(current).fancyImages.topRight.bottom+") no-repeat"});$('div.middle',helper.parent).css({"background":"url("+settings(current).fancyImages.topRight.middle+") repeat-y"});}}else if(_vx<_hx&&_vy<_hy){helper.parent.addClass("bottomRight");if(settings(current).fancyImages.bottomRight!=''){$('div.top',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomRight.top+") no-repeat"});$('div.bottom',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomRight.bottom+") no-repeat"});$('div.middle',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomRight.middle+") repeat-y"});}}else if(_vx>_hx&&_vy>=_hy){helper.parent.addClass("topLeft");if(settings(current).fancyImages.topLeft!=''){$('div.top',helper.parent).css({"background":"url("+settings(current).fancyImages.topLeft.top+") no-repeat"});$('div.middle',helper.parent).css({"background":"url("+settings(current).fancyImages.topLeft.middle+") repeat-y"});$('div.bottom',helper.parent).css({"background":"url("+settings(current).fancyImages.topLeft.bottom+") no-repeat"});}}else if(_vx>_hx&&_vy<_hy){helper.parent.addClass("bottomLeft");if(settings(current).fancyImages.bottomLeft!=''){$('div.top',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomLeft.top+") no-repeat"});$('div.bottom',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomLeft.bottom+") no-repeat"});$('div.middle',helper.parent).css({"background":"url("+settings(current).fancyImages.bottomLeft.middle+") repeat-y"});}}
if(IE){$('div.middle',helper.parent).css('height',$('div.middle',helper.parent).height()+'px');}
if(v.x+v.cx<h.offsetLeft+h.offsetWidth){left-=h.offsetWidth+0+2*settings(current).left;helper.parent.css({left:left+'px'});}
if(_vy<_hy){top-=h.offsetHeight+0+settings(current).top+7;helper.parent.css({top:top+'px'});}
if(MSIE6&&settings(current).fixPNG){helper.parent.fixPNG();}}
function viewport(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()};}
function hide(event){if($.tooltip.blocked)
return;if(tID)
clearTimeout(tID);current=null;var tsettings=settings(this);function complete(){helper.parent.removeClass(tsettings.extraClass).hide().css("opacity","");}
if((!IE||!$.fn.bgiframe)&&tsettings.fade){if(helper.parent.is(':animated'))
helper.parent.stop().fadeTo(tsettings.fade,0,complete);else
helper.parent.stop().fadeOut(tsettings.fade,complete);}else
complete();if(settings(this).fixPNG)
helper.parent.unfixPNG();}})(jQuery);;;(function($){jQuery.fn.pngFix=function(settings){settings=jQuery.extend({blankgif:'blank.gif'},settings);var ie55=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 5.5")!=-1);var ie6=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 6.0")!=-1);if(jQuery.browser.msie&&(ie55||ie6)){jQuery(this).find("img[src$=.png]").each(function(){jQuery(this).attr('width',jQuery(this).width());jQuery(this).attr('height',jQuery(this).height());var prevStyle='';var strNewHTML='';var imgId=(jQuery(this).attr('id'))?'id="'+jQuery(this).attr('id')+'" ':'';var imgClass=(jQuery(this).attr('class'))?'class="'+jQuery(this).attr('class')+'" ':'';var imgTitle=(jQuery(this).attr('title'))?'title="'+jQuery(this).attr('title')+'" ':'';var imgAlt=(jQuery(this).attr('alt'))?'alt="'+jQuery(this).attr('alt')+'" ':'';var imgAlign=(jQuery(this).attr('align'))?'float:'+jQuery(this).attr('align')+';':'';var imgHand=(jQuery(this).parent().attr('href'))?'cursor:hand;':'';if(this.style.border){prevStyle+='border:'+this.style.border+';';this.style.border='';}
if(this.style.padding){prevStyle+='padding:'+this.style.padding+';';this.style.padding='';}
if(this.style.margin){prevStyle+='margin:'+this.style.margin+';';this.style.margin='';}
var imgStyle=(this.style.cssText);strNewHTML+='<span '+imgId+imgClass+imgTitle+imgAlt;strNewHTML+='style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;strNewHTML+='width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;';strNewHTML+='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+jQuery(this).attr('src')+'\', sizingMethod=\'scale\');';strNewHTML+=imgStyle+'"></span>';if(prevStyle!=''){strNewHTML='<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;'+'">'+strNewHTML+'</span>';}
jQuery(this).hide();jQuery(this).after(strNewHTML);});jQuery(this).find("*").each(function(){var bgIMG=jQuery(this).css('background-image');if(bgIMG.indexOf(".png")!=-1){var iebg=bgIMG.split('url("')[1].split('")')[0];jQuery(this).css('background-image','none');jQuery(this).get(0).runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iebg+"',sizingMethod='scale')";}});jQuery(this).find("input[src$=.png]").each(function(){var bgIMG=jQuery(this).attr('src');jQuery(this).get(0).runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+bgIMG+'\', sizingMethod=\'scale\');';jQuery(this).attr('src',settings.blankgif)});}
return jQuery;};})(jQuery);;(function($){$.fn.extend({tabify:function(){function getHref(el){hash=$(el).find('a').attr('href');if(hash)
return hash.substring(0,hash.length-4);else
return false;}
function setActive(el){$(el).addClass('active');if(getHref(el))
$(getHref(el)).show();else
return false;$(el).siblings('li').each(function(){$(this).removeClass('active');$(getHref(this)).hide();});}
return this.each(function(){var self=this;$(this).find('li a').each(function(){$(this).attr('href',$(this).attr('href')+'-tab');});function handleHash(){if(location.hash)
setActive($(self).find('a[href='+location.hash+']').parent().parent());}
if(location.hash)
handleHash();$(this).find('li a').click(function(){setActive($(this).parent().parent());return false;});$(this).find('li').each(function(){if($(this).hasClass('active'))
$(getHref(this)).show();else
$(getHref(this)).hide();});});}});})(jQuery);;var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";String.prototype.encodeBase64=function(utf8encode){utf8encode=(typeof utf8encode=='undefined')?false:utf8encode;var o1,o2,o3,bits,h1,h2,h3,h4,e=[],pad='',c,plain,coded;plain=utf8encode?this.encodeUTF8():this;c=plain.length%3;if(c>0){while(c++<3){pad+='=';plain+='\0';}}
for(c=0;c<plain.length;c+=3){o1=plain.charCodeAt(c);o2=plain.charCodeAt(c+1);o3=plain.charCodeAt(c+2);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;e[c/3]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}
coded=e.join('');coded=coded.slice(0,coded.length-pad.length)+pad;return coded;}
String.prototype.decodeBase64=function(utf8decode){utf8decode=(typeof utf8decode=='undefined')?false:utf8decode;var o1,o2,o3,h1,h2,h3,h4,bits,d=[],plain,coded;coded=utf8decode?this.decodeUTF8():this;for(var c=0;c<coded.length;c+=4){h1=b64.indexOf(coded.charAt(c));h2=b64.indexOf(coded.charAt(c+1));h3=b64.indexOf(coded.charAt(c+2));h4=b64.indexOf(coded.charAt(c+3));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>>16&0xff;o2=bits>>>8&0xff;o3=bits&0xff;d[c/4]=String.fromCharCode(o1,o2,o3);if(h4==0x40)d[c/4]=String.fromCharCode(o1,o2);if(h3==0x40)d[c/4]=String.fromCharCode(o1);}
plain=d.join('');return utf8decode?plain.decodeUTF8():plain;}
String.prototype.encodeUTF8=function(){var str=this.replace(/[\u0080-\u07ff]/g,function(c){var cc=c.charCodeAt(0);return String.fromCharCode(0xc0|cc>>6,0x80|cc&0x3f);});str=str.replace(/[\u0800-\uffff]/g,function(c){var cc=c.charCodeAt(0);return String.fromCharCode(0xe0|cc>>12,0x80|cc>>6&0x3F,0x80|cc&0x3f);});return str;}
String.prototype.decodeUTF8=function(){var str=this.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(c){var cc=(c.charCodeAt(0)&0x1f)<<6|c.charCodeAt(1)&0x3f;return String.fromCharCode(cc);});str=str.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(c){var cc=((c.charCodeAt(0)&0x0f)<<12)|((c.charCodeAt(1)&0x3f)<<6)|(c.charCodeAt(2)&0x3f);return String.fromCharCode(cc);});return str;};bpe=0;mask=0;radix=mask+1;digitsStr='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\\'\"+-';for(bpe=0;(1<<(bpe+1))>(1<<bpe);bpe++);bpe>>=1;mask=(1<<bpe)-1;radix=mask+1;one=int2bigInt(1,1,1);t=new Array(0);ss=t;s0=t;s1=t;s2=t;s3=t;s4=t;s5=t;s6=t;s7=t;T=t;sa=t;mr_x1=t;mr_r=t;mr_a=t;eg_v=t;eg_u=t;eg_A=t;eg_B=t;eg_C=t;eg_D=t;md_q1=t;md_q2=t;md_q3=t;md_r=t;md_r1=t;md_r2=t;md_tt=t;primes=t;pows=t;s_i=t;s_i2=t;s_R=t;s_rm=t;s_q=t;s_n1=t;s_a=t;s_r2=t;s_n=t;s_b=t;s_d=t;s_x1=t;s_x2=t,s_aa=t;function findPrimes(n){var i,s,p,ans;s=new Array(n);for(i=0;i<n;i++)
s[i]=0;s[0]=2;p=0;for(;s[p]<n;){for(i=s[p]*s[p];i<n;i+=s[p])
s[i]=1;p++;s[p]=s[p-1]+1;for(;s[p]<n&&s[s[p]];s[p]++);}
ans=new Array(p);for(i=0;i<p;i++)
ans[i]=s[i];return ans;}
function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length){mr_x1=dup(x);mr_r=dup(x);mr_a=dup(x);}
copyInt_(mr_a,b);copy_(mr_r,x);copy_(mr_x1,x);addInt_(mr_r,-1);addInt_(mr_x1,-1);k=0;for(i=0;i<mr_r.length;i++)
for(j=1;j<mask;j<<=1)
if(x[i]&j){s=(k<mr_r.length+bpe?k:0);i=mr_r.length;j=mask;}else
k++;if(s)
rightShift_(mr_r,s);powMod_(mr_a,mr_r,x);if(!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){j=1;while(j<=s-1&&!equals(mr_a,mr_x1)){squareMod_(mr_a,x);if(equalsInt(mr_a,1)){return 0;}
j++;}
if(!equals(mr_a,mr_x1)){return 0;}}
return 1;}
function bitSize(x){var j,z,w;for(j=x.length-1;(x[j]==0)&&(j>0);j--);for(z=0,w=x[j];w;(w>>=1),z++);z+=bpe*j;return z;}
function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);copy_(ans,x);return ans;}
function randTruePrime(k){var ans=int2bigInt(0,k,0);randTruePrime_(ans,k);return trim(ans,1);}
function mod(x,n){var ans=dup(x);mod_(ans,n);return trim(ans,1);}
function addInt(x,n){var ans=expand(x,x.length+1);addInt_(ans,n);return trim(ans,1);}
function mult(x,y){var ans=expand(x,x.length+y.length);mult_(ans,y);return trim(ans,1);}
function powMod(x,y,n){var ans=expand(x,n.length);powMod_(ans,trim(y,2),trim(n,2),0);return trim(ans,1);}
function sub(x,y){var ans=expand(x,(x.length>y.length?x.length+1:y.length+1));sub_(ans,y);return trim(ans,1);}
function add(x,y){var ans=expand(x,(x.length>y.length?x.length+1:y.length+1));add_(ans,y);return trim(ans,1);}
function inverseMod(x,n){var ans=expand(x,n.length);var s;s=inverseMod_(ans,n);return s?trim(ans,1):null;}
function multMod(x,y,n){var ans=expand(x,n.length);multMod_(ans,y,n);return trim(ans,1);}
function randTruePrime_(ans,k){var c,m,pm,dd,j,r,B,divisible,z,zz,recSize;if(primes.length==0)
primes=findPrimes(30000);if(pows.length==0){pows=new Array(512);for(j=0;j<512;j++){pows[j]=Math.pow(2,j/511.-1.);}}
c=0.1;m=20;recLimit=20;if(s_i2.length!=ans.length){s_i2=dup(ans);s_R=dup(ans);s_n1=dup(ans);s_r2=dup(ans);s_d=dup(ans);s_x1=dup(ans);s_x2=dup(ans);s_b=dup(ans);s_n=dup(ans);s_i=dup(ans);s_rm=dup(ans);s_q=dup(ans);s_a=dup(ans);s_aa=dup(ans);}
if(k<=recLimit){pm=(1<<((k+2)>>1))-1;copyInt_(ans,0);for(dd=1;dd;){dd=0;ans[0]=1|(1<<(k-1))|Math.floor(Math.random()*(1<<k));for(j=1;(j<primes.length)&&((primes[j]&pm)==primes[j]);j++){if(0==(ans[0]%primes[j])){dd=1;break;}}}
carry_(ans);return;}
B=c*k*k;if(k>2*m)
for(r=1;k-k*r<=m;)
r=pows[Math.floor(Math.random()*512)];else
r=.5;recSize=Math.floor(r*k)+1;randTruePrime_(s_q,recSize);copyInt_(s_i2,0);s_i2[Math.floor((k-2)/bpe)]|=(1<<((k-2)%bpe));divide_(s_i2,s_q,s_i,s_rm);z=bitSize(s_i);for(;;){for(;;){randBigInt_(s_R,z,0);if(greater(s_i,s_R))
break;}
addInt_(s_R,1);add_(s_R,s_i);copy_(s_n,s_q);mult_(s_n,s_R);multInt_(s_n,2);addInt_(s_n,1);copy_(s_r2,s_R);multInt_(s_r2,2);for(divisible=0,j=0;(j<primes.length)&&(primes[j]<B);j++)
if(modInt(s_n,primes[j])==0){divisible=1;break;}
if(!divisible)
if(!millerRabin(s_n,2))
divisible=1;if(!divisible){addInt_(s_n,-3);for(j=s_n.length-1;(s_n[j]==0)&&(j>0);j--);for(zz=0,w=s_n[j];w;(w>>=1),zz++);zz+=bpe*j;for(;;){randBigInt_(s_a,zz,0);if(greater(s_n,s_a))
break;}
addInt_(s_n,3);addInt_(s_a,2);copy_(s_b,s_a);copy_(s_n1,s_n);addInt_(s_n1,-1);powMod_(s_b,s_n1,s_n);addInt_(s_b,-1);if(isZero(s_b)){copy_(s_b,s_a);powMod_(s_b,s_r2,s_n);addInt_(s_b,-1);copy_(s_aa,s_n);copy_(s_d,s_b);GCD_(s_d,s_n);if(equalsInt(s_d,1)){copy_(ans,s_aa);return;}}}}}
function randBigInt(n,s){var a,b;a=Math.floor((n-1)/bpe)+2;b=int2bigInt(0,0,a);randBigInt_(b,n,s);return b;}
function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)
b[i]=0;a=Math.floor((n-1)/bpe)+1;for(i=0;i<a;i++){b[i]=Math.floor(Math.random()*(1<<(bpe-1)));}
b[a-1]&=(2<<((n-1)%bpe))-1;if(s==1)
b[a-1]|=(1<<((n-1)%bpe));}
function GCD(x,y){var xc,yc;xc=dup(x);yc=dup(y);GCD_(xc,yc);return xc;}
function GCD_(x,y){var i,xp,yp,A,B,C,D,q,sing;if(T.length!=x.length)
T=dup(x);sing=1;while(sing){sing=0;for(i=1;i<y.length;i++)
if(y[i]){sing=1;break;}
if(!sing)break;for(i=x.length;!x[i]&&i>=0;i--);xp=x[i];yp=y[i];A=1;B=0;C=0;D=1;while((yp+C)&&(yp+D)){q=Math.floor((xp+A)/(yp+C));qp=Math.floor((xp+B)/(yp+D));if(q!=qp)
break;t=A-q*C;A=C;C=t;t=B-q*D;B=D;D=t;t=xp-q*yp;xp=yp;yp=t;}
if(B){copy_(T,x);linComb_(x,y,A,B);linComb_(y,T,D,C);}else{mod_(x,y);copy_(T,x);copy_(x,y);copy_(y,T);}}
if(y[0]==0)
return;t=modInt(x,y[0]);copyInt_(x,y[0]);y[0]=t;while(y[0]){x[0]%=y[0];t=x[0];x[0]=y[0];y[0]=t;}}
function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(x[0]&1)&&!(n[0]&1)){copyInt_(x,0);return 0;}
if(eg_u.length!=k){eg_u=new Array(k);eg_v=new Array(k);eg_A=new Array(k);eg_B=new Array(k);eg_C=new Array(k);eg_D=new Array(k);}
copy_(eg_u,x);copy_(eg_v,n);copyInt_(eg_A,1);copyInt_(eg_B,0);copyInt_(eg_C,0);copyInt_(eg_D,1);for(;;){while(!(eg_u[0]&1)){halve_(eg_u);if(!(eg_A[0]&1)&&!(eg_B[0]&1)){halve_(eg_A);halve_(eg_B);}else{add_(eg_A,n);halve_(eg_A);sub_(eg_B,x);halve_(eg_B);}}
while(!(eg_v[0]&1)){halve_(eg_v);if(!(eg_C[0]&1)&&!(eg_D[0]&1)){halve_(eg_C);halve_(eg_D);}else{add_(eg_C,n);halve_(eg_C);sub_(eg_D,x);halve_(eg_D);}}
if(!greater(eg_v,eg_u)){sub_(eg_u,eg_v);sub_(eg_A,eg_C);sub_(eg_B,eg_D);}else{sub_(eg_v,eg_u);sub_(eg_C,eg_A);sub_(eg_D,eg_B);}
if(equalsInt(eg_u,0)){if(negative(eg_C))
add_(eg_C,n);copy_(x,eg_C);if(!equalsInt(eg_v,1)){copyInt_(x,0);return 0;}
return 1;}}}
function inverseModInt(x,n){var a=1,b=0,t;for(;;){if(x==1)return a;if(x==0)return 0;b-=a*Math.floor(n/x);n%=x;if(n==1)return b;if(n==0)return 0;a-=b*Math.floor(x/n);x%=n;}}
function inverseModInt_(x,n){return inverseModInt(x,n);}
function eGCD_(x,y,v,a,b){var g=0;var k=Math.max(x.length,y.length);if(eg_u.length!=k){eg_u=new Array(k);eg_A=new Array(k);eg_B=new Array(k);eg_C=new Array(k);eg_D=new Array(k);}
while(!(x[0]&1)&&!(y[0]&1)){halve_(x);halve_(y);g++;}
copy_(eg_u,x);copy_(v,y);copyInt_(eg_A,1);copyInt_(eg_B,0);copyInt_(eg_C,0);copyInt_(eg_D,1);for(;;){while(!(eg_u[0]&1)){halve_(eg_u);if(!(eg_A[0]&1)&&!(eg_B[0]&1)){halve_(eg_A);halve_(eg_B);}else{add_(eg_A,y);halve_(eg_A);sub_(eg_B,x);halve_(eg_B);}}
while(!(v[0]&1)){halve_(v);if(!(eg_C[0]&1)&&!(eg_D[0]&1)){halve_(eg_C);halve_(eg_D);}else{add_(eg_C,y);halve_(eg_C);sub_(eg_D,x);halve_(eg_D);}}
if(!greater(v,eg_u)){sub_(eg_u,v);sub_(eg_A,eg_C);sub_(eg_B,eg_D);}else{sub_(v,eg_u);sub_(eg_C,eg_A);sub_(eg_D,eg_B);}
if(equalsInt(eg_u,0)){if(negative(eg_C)){add_(eg_C,y);sub_(eg_D,x);}
multInt_(eg_D,-1);copy_(a,eg_C);copy_(b,eg_D);leftShift_(v,g);return;}}}
function negative(x){return((x[x.length-1]>>(bpe-1))&1);}
function greaterShift(x,y,shift){var kx=x.length,ky=y.length;k=((kx+shift)<ky)?(kx+shift):ky;for(i=ky-1-shift;i<kx&&i>=0;i++)
if(x[i]>0)
return 1;for(i=kx-1+shift;i<ky;i++)
if(y[i]>0)
return 0;for(i=k-1;i>=shift;i--)
if(x[i-shift]>y[i])return 1;else if(x[i-shift]<y[i])return 0;return 0;}
function greater(x,y){var i;var k=(x.length<y.length)?x.length:y.length;for(i=x.length;i<y.length;i++)
if(y[i])
return 0;for(i=y.length;i<x.length;i++)
if(x[i])
return 1;for(i=k-1;i>=0;i--)
if(x[i]>y[i])
return 1;else if(x[i]<y[i])
return 0;return 0;}
function divide_(x,y,q,r){var kx,ky;var i,j,y1,y2,c,a,b;copy_(r,x);for(ky=y.length;y[ky-1]==0;ky--);b=y[ky-1];for(a=0;b;a++)
b>>=1;a=bpe-a;leftShift_(y,a);leftShift_(r,a);for(kx=r.length;r[kx-1]==0&&kx>ky;kx--);copyInt_(q,0);while(!greaterShift(y,r,kx-ky)){subShift_(r,y,kx-ky);q[kx-ky]++;}
for(i=kx-1;i>=ky;i--){if(r[i]==y[ky-1])
q[i-ky]=mask;else
q[i-ky]=Math.floor((r[i]*radix+r[i-1])/y[ky-1]);for(;;){y2=(ky>1?y[ky-2]:0)*q[i-ky];c=y2>>bpe;y2=y2&mask;y1=c+q[i-ky]*y[ky-1];c=y1>>bpe;y1=y1&mask;if(c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i])
q[i-ky]--;else
break;}
linCombShift_(r,y,-q[i-ky],i-ky);if(negative(r)){addShift_(r,y,i-ky);q[i-ky]--;}}
rightShift_(y,a);rightShift_(r,a);}
function carry_(x){var i,k,c,b;k=x.length;c=0;for(i=0;i<k;i++){c+=x[i];b=0;if(c<0){b=-(c>>bpe);c+=b*radix;}
x[i]=c&mask;c=(c>>bpe)-b;}}
function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)
c=(c*radix+x[i])%n;return c;}
function int2bigInt(t,bits,minSize){var i,k;k=Math.ceil(bits/bpe)+1;k=minSize>k?minSize:k;buff=new Array(k);copyInt_(buff,t);return buff;}
function str2bigInt(s,base,minSize){var d,i,j,x,y,kk;var k=s.length;if(base==-1){x=new Array(0);for(;;){y=new Array(x.length+1);for(i=0;i<x.length;i++)
y[i+1]=x[i];y[0]=parseInt(s,10);x=y;d=s.indexOf(',',0);if(d<1)
break;s=s.substring(d+1);if(s.length==0)
break;}
if(x.length<minSize){y=new Array(minSize);copy_(y,x);return y;}
return x;}
x=int2bigInt(0,base*k,0);for(i=0;i<k;i++){d=digitsStr.indexOf(s.substring(i,i+1),0);if(base<=36&&d>=36)
d-=26;if(d<base&&d>=0){multInt_(x,base);addInt_(x,d);}}
for(k=x.length;k>0&&!x[k-1];k--);k=minSize>k+1?minSize:k+1;y=new Array(k);kk=k<x.length?k:x.length;for(i=0;i<kk;i++)
y[i]=x[i];for(;i<k;i++)
y[i]=0;return y;}
function equalsInt(x,y){var i;if(x[0]!=y)
return 0;for(i=1;i<x.length;i++)
if(x[i])
return 0;return 1;}
function equals(x,y){var i;var k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)
if(x[i]!=y[i])
return 0;if(x.length>y.length){for(;i<x.length;i++)
if(x[i])
return 0;}else{for(;i<y.length;i++)
if(y[i])
return 0;}
return 1;}
function isZero(x){var i;for(i=0;i<x.length;i++)
if(x[i])
return 0;return 1;}
function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length)
s6=dup(x);else
copy_(s6,x);if(base==-1){for(i=x.length-1;i>0;i--)
s+=x[i]+',';s+=x[0];}
else{while(!isZero(s6)){t=divInt_(s6,base);s=digitsStr.substring(t,t+1)+s;}}
if(s.length==0)
s="0";return s;}
function dup(x){var i;buff=new Array(x.length);copy_(buff,x);return buff;}
function copy_(x,y){var i;var k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)
x[i]=y[i];for(i=k;i<x.length;i++)
x[i]=0;}
function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++){x[i]=c&mask;c>>=bpe;}}
function addInt_(x,n){var i,k,c,b;x[0]+=n;k=x.length;c=0;for(i=0;i<k;i++){c+=x[i];b=0;if(c<0){b=-(c>>bpe);c+=b*radix;}
x[i]=c&mask;c=(c>>bpe)-b;if(!c)return;}}
function rightShift_(x,n){var i;var k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)
x[i]=x[i+k];for(;i<x.length;i++)
x[i]=0;n%=bpe;}
for(i=0;i<x.length-1;i++){x[i]=mask&((x[i+1]<<(bpe-n))|(x[i]>>n));}
x[i]>>=n;}
function halve_(x){var i;for(i=0;i<x.length-1;i++){x[i]=mask&((x[i+1]<<(bpe-1))|(x[i]>>1));}
x[i]=(x[i]>>1)|(x[i]&(radix>>1));}
function leftShift_(x,n){var i;var k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)
x[i]=x[i-k];for(;i>=0;i--)
x[i]=0;n%=bpe;}
if(!n)
return;for(i=x.length-1;i>0;i--){x[i]=mask&((x[i]<<n)|(x[i-1]>>(bpe-n)));}
x[i]=mask&(x[i]<<n);}
function multInt_(x,n){var i,k,c,b;if(!n)
return;k=x.length;c=0;for(i=0;i<k;i++){c+=x[i]*n;b=0;if(c<0){b=-(c>>bpe);c+=b*radix;}
x[i]=c&mask;c=(c>>bpe)-b;}}
function divInt_(x,n){var i,r=0,s;for(i=x.length-1;i>=0;i--){s=r*radix+x[i];x[i]=Math.floor(s/n);r=s%n;}
return r;}
function linComb_(x,y,a,b){var i,c,k,kk;k=x.length<y.length?x.length:y.length;kk=x.length;for(c=0,i=0;i<k;i++){c+=a*x[i]+b*y[i];x[i]=c&mask;c>>=bpe;}
for(i=k;i<kk;i++){c+=a*x[i];x[i]=c&mask;c>>=bpe;}}
function linCombShift_(x,y,b,ys){var i,c,k,kk;k=x.length<ys+y.length?x.length:ys+y.length;kk=x.length;for(c=0,i=ys;i<k;i++){c+=x[i]+b*y[i-ys];x[i]=c&mask;c>>=bpe;}
for(i=k;c&&i<kk;i++){c+=x[i];x[i]=c&mask;c>>=bpe;}}
function addShift_(x,y,ys){var i,c,k,kk;k=x.length<ys+y.length?x.length:ys+y.length;kk=x.length;for(c=0,i=ys;i<k;i++){c+=x[i]+y[i-ys];x[i]=c&mask;c>>=bpe;}
for(i=k;c&&i<kk;i++){c+=x[i];x[i]=c&mask;c>>=bpe;}}
function subShift_(x,y,ys){var i,c,k,kk;k=x.length<ys+y.length?x.length:ys+y.length;kk=x.length;for(c=0,i=ys;i<k;i++){c+=x[i]-y[i-ys];x[i]=c&mask;c>>=bpe;}
for(i=k;c&&i<kk;i++){c+=x[i];x[i]=c&mask;c>>=bpe;}}
function sub_(x,y){var i,c,k,kk;k=x.length<y.length?x.length:y.length;for(c=0,i=0;i<k;i++){c+=x[i]-y[i];x[i]=c&mask;c>>=bpe;}
for(i=k;c&&i<x.length;i++){c+=x[i];x[i]=c&mask;c>>=bpe;}}
function add_(x,y){var i,c,k,kk;k=x.length<y.length?x.length:y.length;for(c=0,i=0;i<k;i++){c+=x[i]+y[i];x[i]=c&mask;c>>=bpe;}
for(i=k;c&&i<x.length;i++){c+=x[i];x[i]=c&mask;c>>=bpe;}}
function mult_(x,y){var i;if(ss.length!=2*x.length)
ss=new Array(2*x.length);copyInt_(ss,0);for(i=0;i<y.length;i++)
if(y[i])
linCombShift_(ss,x,y[i],i);copy_(x,ss);}
function mod_(x,n){if(s4.length!=x.length)
s4=dup(x);else
copy_(s4,x);if(s5.length!=x.length)
s5=dup(x);divide_(s4,n,s5,x);}
function multMod_(x,y,n){var i;if(s0.length!=2*x.length)
s0=new Array(2*x.length);copyInt_(s0,0);for(i=0;i<y.length;i++)
if(y[i])
linCombShift_(s0,x,y[i],i);mod_(s0,n);copy_(x,s0);}
function squareMod_(x,n){var i,j,d,c,kx,kn,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);k=kx>n.length?2*kx:2*n.length;if(s0.length!=k)
s0=new Array(k);copyInt_(s0,0);for(i=0;i<kx;i++){c=s0[2*i]+x[i]*x[i];s0[2*i]=c&mask;c>>=bpe;for(j=i+1;j<kx;j++){c=s0[i+j]+2*x[i]*x[j]+c;s0[i+j]=(c&mask);c>>=bpe;}
s0[i+kx]=c;}
mod_(s0,n);copy_(x,s0);}
function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);y=new Array(i+k);copy_(y,x);return y;}
function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length)
s7=dup(n);if((n[0]&1)==0){copy_(s7,x);copyInt_(x,1);while(!equalsInt(y,0)){if(y[0]&1)
multMod_(x,s7,n);divInt_(y,2);squareMod_(s7,n);}
return;}
copyInt_(s7,0);for(kn=n.length;kn>0&&!n[kn-1];kn--);np=radix-inverseModInt(modInt(n,radix),radix);s7[kn]=1;multMod_(x,s7,n);if(s3.length!=x.length)
s3=dup(x);else
copy_(s3,x);for(k1=y.length-1;k1>0&!y[k1];k1--);if(y[k1]==0){copyInt_(x,1);return;}
for(k2=1<<(bpe-1);k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){k1--;if(k1<0){mont_(x,one,n,np);return;}
k2=1<<(bpe-1);}
mont_(x,x,n,np);if(k2&y[k1])
mont_(x,s3,n,np);}}
function mont_(x,y,n,np){var i,j,c,ui,t;var kn=n.length;var ky=y.length;if(sa.length!=kn)
sa=new Array(kn);for(;kn>0&&n[kn-1]==0;kn--);copyInt_(sa,0);for(i=0;i<kn;i++){t=sa[0]+x[i]*y[0];ui=((t&mask)*np)&mask;c=(t+ui*n[0])>>bpe;t=x[i];for(j=1;j<ky;j++){c+=sa[j]+t*y[j]+ui*n[j];sa[j-1]=c&mask;c>>=bpe;}
for(;j<kn;j++){c+=sa[j]+ui*n[j];sa[j-1]=c&mask;c>>=bpe;}
sa[j-1]=c&mask;}
if(!greater(n,sa))
sub_(sa,n);copy_(x,sa);};function generateNonce(c){var f=new Array(c);var e=Math.floor(Math.random()*18446744073709552000);var d=Math.floor(e/4294967296);var a=e%4294967296;for(var b=0;b<4;b++){f[b]=(d>>>b*8)&255}
for(var b=0;b<4;b++){f[b+4]=(a>>>b*8)&255}
return f}
function Cipher(e,a){var d=4;var h=a.length/d-1;var g=[[],[],[],[]];for(var f=0;f<4*d;f++){g[f%4][Math.floor(f/4)]=e[f]}
g=AddRoundKey(g,a,0,d);for(var c=1;c<h;c++){g=SubBytes(g,d);g=ShiftRows(g,d);g=MixColumns(g,d);g=AddRoundKey(g,a,c,d)}
g=SubBytes(g,d);g=ShiftRows(g,d);g=AddRoundKey(g,a,h,d);var b=new Array(4*d);for(var f=0;f<4*d;f++){b[f]=g[f%4][Math.floor(f/4)]}
return b}
function SubBytes(b,a){for(var d=0;d<4;d++){for(var e=0;e<a;e++){b[d][e]=Sbox[b[d][e]]}}
return b}
function ShiftRows(d,a){var b=new Array(4);for(var e=1;e<4;e++){for(var f=0;f<4;f++){b[f]=d[e][(f+e)%a]}
for(var f=0;f<4;f++){d[e][f]=b[f]}}
return d}
function MixColumns(h,f){for(var j=0;j<4;j++){var e=new Array(4);var d=new Array(4);for(var g=0;g<4;g++){e[g]=h[g][j];d[g]=h[g][j]&128?h[g][j]<<1^283:h[g][j]<<1}
h[0][j]=d[0]^e[1]^d[1]^e[2]^e[3];h[1][j]=e[0]^d[1]^e[2]^d[2]^e[3];h[2][j]=e[0]^e[1]^d[2]^e[3]^d[3];h[3][j]=e[0]^d[0]^e[1]^e[2]^d[3]}
return h}
function AddRoundKey(f,a,d,b){for(var e=0;e<4;e++){for(var g=0;g<b;g++){f[e][g]^=a[d*4+g][e]}}
return f}
function KeyExpansion(f){var d=4;var b=f.length/4;var g=b+6;var e=new Array(d*(g+1));var h=new Array(4);for(var c=0;c<b;c++){var a=[f[4*c],f[4*c+1],f[4*c+2],f[4*c+3]];e[c]=a}
for(var c=b;c<(d*(g+1));c++){e[c]=new Array(4);for(var j=0;j<4;j++){h[j]=e[c-1][j]}
if(c%b==0){h=SubWord(RotWord(h));for(var j=0;j<4;j++){h[j]^=Rcon[c/b][j]}}else{if(b>6&&c%b==4){h=SubWord(h)}}
for(var j=0;j<4;j++){e[c][j]=e[c-b][j]^h[j]}}
return e}
function SubWord(a){for(var b=0;b<4;b++){a[b]=Sbox[a[b]]}
return a}
function RotWord(a){var c=a[0];for(var b=0;b<3;b++){a[b]=a[b+1]}
a[3]=c;return a}
var Sbox=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22];var Rcon=[[0,0,0,0],[1,0,0,0],[2,0,0,0],[4,0,0,0],[8,0,0,0],[16,0,0,0],[32,0,0,0],[64,0,0,0],[128,0,0,0],[27,0,0,0],[54,0,0,0]];function AESEncryptCtr(d,u,q){var o=16;if(!(q==128||q==192||q==256)){return""}
d=d.encodeUTF8();var e=8;var j=generateNonce(o);var a=String.fromCharCode(e+8);for(var l=0;l<e;l++){a+=String.fromCharCode(j[l])}
for(var l=0;l<8;l++){a+=String.fromCharCode(0)}
var f=KeyExpansion(u);var v=Math.ceil(d.length/o);var n=new Array(v);for(var r=0;r<v;r++){for(var p=0;p<4;p++){j[15-p]=(r>>>p*8)&255}
for(var p=0;p<4;p++){j[15-p-4]=(r/4294967296>>>p*8)}
var m=Cipher(j,f);var h=r<v-1?o:(d.length-1)%o+1;var s=new Array(h);for(var l=0;l<h;l++){s[l]=m[l]^d.charCodeAt(r*o+l);s[l]=String.fromCharCode(s[l])}
n[r]=s.join("")}
var g=a+n.join("");g=g.encodeBase64();return g}
function AESGetKey(a,d){if(!(d==128||d==192||d==256)){return""}
a=a.encodeUTF8();var f=d/8;var e=new Array(f);for(var c=0;c<f;c++){e[c]=isNaN(a.charCodeAt(c))?0:a.charCodeAt(c)}
var b=Cipher(e,KeyExpansion(e));b=b.concat(b.slice(0,f-16));return b}
function AESBigKey(e,d){if(!(d==128||d==192||d==256)){return""}
var g=d/8;var c=new Array(g);var f=bigInt2str(e,16);for(var b=Math.ceil(f.length/2);b>0;b--){var a=f.substring(f.length-2,f.length);c[b-1]=parseInt(a,16);f=f.substring(0,f.length-2)}
if(e.length>g){c=c.slice(0,g-1)}else{if(e.length<g){for(b=e.length;b<g;b++){c[b]=0}}}
var f="";for(b=0;b<c.length;b++){f+=c[b]+", "}
return c};jQuery.profilar=(function($){var DHExchange=(function(){var _that={};var sieveSize=4000;var sieve0=(-1*sieveSize);var sieve=[];var lastPrime=0;var primes;var Primes=[3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021];var _p=0,_q=0,_c=0,_z=0,_d=0,sharedKey=0;var forUser='';_that.reset=function(){_p=0;_q=0;_c=0;_z=0;_d=0;sharedKey=0;forUser='';}
var nextPrime=function(c){var d;if(c==Primes[lastPrime]&&lastPrime<Primes.length-1){return Primes[++lastPrime];}
if(c<Primes[Primes.length-1]){for(d=Primes.length-2;d>0;d--){if(Primes[d]<=c){lastPrime=d+1;return Primes[d+1];}}}
var b,a;c++;if((c&1)==0){c++;}
for(;;){if(c-sieve0>sieveSize||c<sieve0){for(d=sieveSize-1;d>=0;d--){sieve[d]=0;}
sieve0=c;primes=Primes.concat();}
if(sieve[c-sieve0]==0){for(d=0;d<primes.length;d++){if((b=primes[d])&&c%b==0){for(a=c-sieve0;a<sieveSize;a+=b){sieve[a]=b;}
c+=2;primes[d]=0;break;}}
if(d>=primes.length){return c;}}else{c+=2;}}};var generatePrime=function(){var prime=0;do{prime=nextPrime(Math.floor(Math.random()*1000000));}while(prime<16385);return int2bigInt(prime,128,2);};_that.initialized=function(user){return sharedKey!=0&&forUser==user;}
_that.initKey=function(){_that.reset();_p=generatePrime();_q=generatePrime();_c=generatePrime();_d=powMod(_p,_c,_q);return{p:bigInt2str(_p,10),q:bigInt2str(_q,10),d:bigInt2str(_d,10)};};_that.generateSharedKey=function(z){_z=str2bigInt(z,-1,8*bpe);sharedKey=powMod(_z,_c,_q);};_that.encryptMessage=function(text){return AESEncryptCtr(new String(text),AESBigKey(sharedKey,128),128);};return _that;})();var RW_FIELDS=['gender','givenname','surname','streetaddress','postcode','city','state','country','dob','email','language','fbc_id','gfc_id'];var RO_FIELDS=RW_FIELDS.concat(['ip','siteid','channel','username','regdate','lastlogin','age','activated','deleted','banned']);var WR_FIELDS=RW_FIELDS.concat(['password']);var RO_PUB_FIELDS=['username','channel','siteid','gender','city','state','country','age','language','regdate','lastlogin'];var RW_PREFS=['avatar','privacy','mygames'];var that=this;var settings={url:'/pr/pb/1/',cookieName:'_profilar',cookieLevel:'_SPI_level',cookieDomain:null,cookieExpire:30,sessionCookie:'_profilarS',sessionCookieExpire:10,autoLogin:false,asyncTimeout:5000,session_cache:[],prefs_cache:[],siteId:null,channelId:null,fbcApiKey:null,gfcApiKey:null,prefsLevel:'site',debug:false};var userData={};var userPref={};var userName='';var provider='';var authKey='';var initHandlers=[],loginHandlers=[];var escapeForXML=function(string){return $('<div/>').text(string).html();};var packagetoXml=function(data){return'<?xml version="1.0" encoding="UTF-8"?><profilar>'+data+"</profilar>";};var ajaxPost=function(data,success,error){$.ajax({type:'POST',global:false,timeout:settings.asyncTimeout,dataType:'xml',url:settings.url,contentType:"text/xml;charset=UTF-8",data:packagetoXml(data),success:success,error:error});};var convertError=function(errorObj){var fields=errorObj.find('*'),ret={};for(var i=0;i<fields.length;++i){if(fields[i].tagName.toLowerCase()=='suggestions'){ret[fields[i].tagName.toLowerCase()]=[];$('username',fields[i]).each(function(){ret[fields[i].tagName.toLowerCase()].push($(this).text());});}else{ret[fields[i].tagName.toLowerCase()]=$(fields[i]).text();}}
return ret;};var getPrefLevelXml=function(level){level=level!==undefined?level:settings.prefsLevel;if(level=='global')return'';if(level=='channel')return"<channel>"+settings.channelId+"</channel>";if(level=='site')return"<siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel>";throw new Error("Not valid preference access level");};that.getFbcUserId=function(){return $.cookie(settings.fbcApiKey+'_user');};that.isGfcAuthorized=function(){return $.cookie('fcauth'+settings.gfcApiKey)?true:false;};that.getGfcUserId=function(callback){var gfcHash=$.cookie('fcauth'+settings.gfcApiKey);if(gfcHash){$.ajax({url:'/people/@viewer/@self',dataType:'data',success:function(data){callback.call(this,data[0].id);},error:function(){callback.call(this,null);}});}else{callback.call(this,null);}};that.set=function(key,value){if(value===undefined){userData=key;}else{userData[key]=value;}};that.get=function(key){if(key=='username')return userName;return key!==undefined?(userData[key]===undefined?'':userData[key]):userData;};that.setPref=function(key,value){if(value===undefined){userPref=key;}else{userPref[key]=value;}};that.getPref=function(key){return key!==undefined?(userPref[key]===undefined?'':userPref[key]):userPref;};that.customMessage=function(msg,callback){ajaxPost(msg,function(data){var errors=[];$('error',data).each(function(){errors.push(convertError($(this)));});if(errors.length>0){callback.call(this,data,errors);}else{callback.call(this,data,null);}},function(){callback.call(this,null,[{code:'500'}]);});};that.customSafeMessage=function(msg,callback,_userName){_userName=_userName?_userName:userName;if(settings.debug&&window.console!==undefined)console.log(msg);var _fun=function(){that.customMessage('<username>'+escapeForXML(_userName)+"</username><ciphertext>"+DHExchange.encryptMessage(packagetoXml(msg))+"</ciphertext>",callback);};if(!DHExchange.initialized(_userName)){var keys=DHExchange.initKey(),z=0;ajaxPost('<keyexchange><username>'+escapeForXML(_userName)+"</username><p>"+keys.p+"</p><q>"+keys.q+"</q><d>"+keys.d+'</d></keyexchange>',function(data){var z=$('z',data).text();if(z){DHExchange.generateSharedKey(z);_fun();}else{callback.call(this,null,[{code:'500'}]);}},function(){callback.call(this,null,[{code:'500'}]);});}else{_fun();}};var createSessionCookie=function(){var data=[userName.encodeBase64(true)];for(var c in settings.session_cache){var tmp=userData[settings.session_cache[c]];data.push(tmp?tmp.encodeBase64(true):'');}
for(var c in settings.prefs_cache){var tmp=userPref[settings.prefs_cache[c]];data.push(tmp?tmp.encodeBase64(true):'');}
var expires;if(settings.sessionCookieExpire){expires=new Date();expires.setTime(expires.getTime()+settings.sessionCookieExpire*60000);}else{expires=null;}
$.cookie(settings.sessionCookie,data.join('|').encodeBase64(),{path:'/',expires:expires});};var createProfilarCookie=function(){var tmp=[userName.encodeBase64(true),authKey,that.autoLogin()?'1':'0'];if(provider!=''){tmp.push(provider);}
if(settings.debug&&window.console!==undefined)console.log(tmp);$.cookie(settings.cookieName,tmp.join('|').encodeBase64(),{path:'/',expires:that.autoLogin()?settings.cookieExpire:null,domain:settings.cookieDomain});};that.clearSessionCache=function(){$.cookie(settings.sessionCookie,null,{path:'/',expires:-1});};that.clearAll=function(){that.clearSessionCache();$.cookie(settings.cookieName,null,{path:'/',expires:-1,domain:settings.cookieDomain});$.cookie(settings.cookieLevel,null,{path:'/',expires:-1});authKey='';userName='';provider='';userData={};userPref={};};var loggedInCheck=function(_userName,_authKey,callback,fromInit){var cookie=$.cookie(settings.sessionCookie);if(cookie){try{var cookieData=cookie.decodeBase64().split('|');var tmpUserName=cookieData.shift().decodeBase64(true);if(_userName.toLowerCase()!=tmpUserName.toLowerCase()){throw new Error("Usernames do not match");}
userName=_userName;authKey=_authKey;for(var c in settings.session_cache){if(cookieData[c]!=''){that.set(settings.session_cache[c],cookieData[c].decodeBase64(true));}}
for(var c in settings.prefs_cache){if(cookieData[parseInt(c)+settings.session_cache.length]!=''){that.setPref(settings.prefs_cache[c],cookieData[parseInt(c)+settings.session_cache.length].decodeBase64(true));}}
if(callback)callback.call(this,true);if(fromInit===true){runInitHandlers(true);}else if(fromInit===false){runLoginHandlers();}
return;}catch(e){if(settings.debug&&window.console!==undefined)console.log(e);}}
var prefsXml=settings.prefs_cache.length?('<'+settings.prefs_cache.join('/><')+'/>'):'';if(prefsXml){prefsXml='<getprefs>'+getPrefLevelXml()+prefsXml+'</getprefs>';}
ajaxPost('<authenticate><hash>'+_authKey+'</hash></authenticate><request><username/><'+settings.session_cache.join('/><')+'/></request>'+prefsXml,function(data){if($('request username',data).text().toLowerCase()==_userName.toLowerCase()){userName=_userName;authKey=_authKey;$('profilar request',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.set(tag,$(this).text());}});$('profilar getprefs',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.setPref(tag,$(this).text());}});createSessionCookie();if(callback)callback.call(this,true);if(fromInit===true){runInitHandlers(true);}}else{that.clearAll();if(callback)callback.call(this,false);if(fromInit===true){runInitHandlers(false);}}},function(){that.clearAll();});};that.loggedIn=function(callback){if(callback){loggedInCheck(userName,authKey,callback);}else{return userName!==''&&authKey!=='';}};that.autoLogin=function(enabled){if(enabled===undefined){return settings.autoLogin;}
settings.autoLogin=enabled;};that.addInitHandler=function(callback){initHandlers.push(callback);};that.addLoginHandler=function(callback){loginHandlers.push(callback);};var runInitHandlers=function(logged){for(var i in initHandlers){try{initHandlers[i].call(this,logged);}catch(e){if(settings.debug)throw e;}}};var runLoginHandlers=function(errors){for(var i in loginHandlers){try{loginHandlers[i].call(this,errors);}catch(e){if(settings.debug)throw e;}}};that.init=function(options,callback){$.extend(settings,options);if(settings.siteId==null||settings.channelId==null){throw new Error('You have to set siteId and channelId in the init() call!');}
var cookie=$.cookie(settings.cookieName);if(!cookie){that.clearSessionCache();$.cookie(settings.cookieLevel,null,{path:'/',expires:-1});if(callback)callback.call(this,false);runInitHandlers(false);return;}
try{var cookieData=cookie.decodeBase64().split('|');if(cookieData.length==3||cookieData.length==4){that.autoLogin(cookieData[2]==='1');if(cookieData.length==4){provider=cookieData[3];}else{provider='';}
loggedInCheck(cookieData[0].decodeBase64(true),cookieData[1],callback,true);}else{throw new Error('Three or four elements expected!');}}catch(e){that.clearAll();if(callback)callback.call(this,false);runInitHandlers(false);}};that.login=function(login,password,autoLogin,callback,strict){if(strict){strictXml="<siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel><strict>1</strict>";}else{strictXml='';}
var prefsXml=settings.prefs_cache.length?('<'+settings.prefs_cache.join('/><')+'/>'):'';if(prefsXml){prefsXml='<getprefs>'+getPrefLevelXml()+prefsXml+'</getprefs>';}
that.customSafeMessage('<authenticate><username>'+escapeForXML(login)+"</username><password>"+escapeForXML(password)+"</password>"+strictXml+"</authenticate><request><"+settings.session_cache.join('/><')+'/></request>'+prefsXml,function(data,errors){if(!errors){authKey=$('authenticate',data).text();if(!authKey){if(callback)callback.call(this,[{code:'500'}]);runLoginHandlers([{code:'500'}]);}
userName=login;that.autoLogin(autoLogin);createProfilarCookie();$('profilar request',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.set(tag,$(this).text());}});$('profilar getprefs',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.setPref(tag,$(this).text());}});createSessionCookie();if(callback)callback.call(this);runLoginHandlers();}else{if(callback)callback.call(this,errors);runLoginHandlers(errors);}},login);};that.loginUsingHash=function(login,hash,autoLogin,callback){userName=login;authKey=hash;that.autoLogin(autoLogin);createProfilarCookie();loggedInCheck(login,hash,callback,false);};that.loginUsingRelaying=function(_provider,autoLogin,callback,strict){if(strict){strictXml="<siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel><strict>1</strict>";}else{strictXml='';}
var prefsXml=settings.prefs_cache.length?('<'+settings.prefs_cache.join('/><')+'/>'):'';if(prefsXml){prefsXml='<getprefs>'+getPrefLevelXml()+prefsXml+'</getprefs>';}
var providerXml;if(_provider=='fbc'){providerXml='<fbc_api_key>'+settings.fbcApiKey+'</fbc_api_key>';}else if(_provider=='gfc'){providerXml='<gfc_api_key>'+settings.gfcApiKey+'</gfc_api_key>';}else{throw new Error('Unsupported provider!');}
that.customMessage('<authenticate>'+providerXml+strictXml+"</authenticate><request><"+settings.session_cache.join('/><')+'/></request>'+prefsXml,function(data,errors){if(!errors){authKey=$('authenticate',data).text();provider=_provider;if(!authKey){if(callback)callback.call(this,[{code:'500'}]);runLoginHandlers([{code:'500'}]);}
$('profilar request',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.set(tag,$(this).text());}else{userName=$(this).text();}});$('profilar getprefs',data).children().each(function(){var tag=this.tagName.toLowerCase();if(tag!='username'){that.setPref(tag,$(this).text());}});that.autoLogin(autoLogin);createProfilarCookie();createSessionCookie();if(callback)callback.call(this);runLoginHandlers();}else{if(callback)callback.call(this,errors);runLoginHandlers(errors);}});};that.isUsernameAvailable=function(login,callback,dummyEmail){dummyEmail=dummyEmail?dummyEmail:'nmvdsjfsjkfh39df'+parseInt(Math.random()*1000000)+'@spilgames.com';that.customMessage('<register><simulate>1</simulate><username>'+escapeForXML(login)+"</username><siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel><email>"+dummyEmail+"</email></register>",function(data,errors){if(!errors){callback.call(this,true);}else if(errors[0].code=='409'){callback.call(this,errors[0].suggestions);}else if(errors[0].code=='406'){callback.call(this,[]);}else{callback.call(this,errors);}});};that.isEmailAvailable=function(email,callback,dummyLogin){dummyLogin=dummyLogin?dummyLogin:'asce'+parseInt(Math.random()*1000000);that.customMessage('<register><simulate>1</simulate><username>'+escapeForXML(dummyLogin)+"</username><siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel><email>"+email+"</email></register>",function(data,errors){if(!errors){callback.call(this,true);}else if(errors[0].code=='409'||errors[0].code=='406'){callback.call(this,false);}else{callback.call(this,errors);}});};that.register=function(login,password,email,callback,profileData,_provider){var encFields='';for(var c in profileData){encFields+="<"+c+">"+escapeForXML(profileData[c])+"</"+c+">";}
var providerXml;if(_provider=='fbc'){providerXml='<fbc_api_key>'+settings.fbcApiKey+'</fbc_api_key>';}else if(_provider=='gfc'){providerXml='<gfc_api_key>'+settings.gfcApiKey+'</gfc_api_key>';}else{providerXml="<password>"+escapeForXML(password)+"</password>";}
that.customSafeMessage('<register><username>'+escapeForXML(login)+"</username>"+providerXml+"<siteid>"+settings.siteId+"</siteid><channel>"+settings.channelId+"</channel><email>"+escapeForXML(email)+"</email>"+encFields+"</register>"
+'<authenticate>'+(_provider?'':('<username>'+escapeForXML(login)+"</username>"))+providerXml+"</authenticate>",function(data,errors){if(!errors){_authKey=$('authenticate',data).text();if($('register',data).text()==login&&_authKey){authKey=_authKey;userName=login;provider=_provider;that.autoLogin(false);that.set(profileData);createProfilarCookie();createSessionCookie();if(callback)callback.call(this);runLoginHandlers();}else{if(callback)callback.call(this,[{code:'500'}]);runLoginHandlers([{code:'500'}]);}}else{if(callback)callback.call(this,errors);runLoginHandlers(errors);}},login);};that.unregister=function(login,password,callback){that.customSafeMessage('<deregister><username>'+escapeForXML(login)+"</username><password>"+escapeForXML(password)+"</password></deregister>",function(data,errors){if(!errors){if($('deregister',data).text()==login){that.clearAll();DHExchange.reset();if(callback)callback.call(this);}else{if(callback)callback.call(this,errors);}}else{if(callback)callback.call(this,errors);}},login);};that.submit=function(password,callback,include){include=include?include:WR_FIELDS;var encFields='';for(var c in include){var val=that.get(include[c]);if(userData[include[c]]===undefined)continue;encFields+="<"+include[c]+">"+escapeForXML(val)+"</"+include[c]+">";}
var providerXml;if(provider=='fbc'){providerXml='<fbc_api_key>'+settings.fbcApiKey+'</fbc_api_key>';}else if(provider=='gfc'){providerXml='<gfc_api_key>'+settings.gfcApiKey+'</gfc_api_key>';}else{providerXml="<password>"+escapeForXML(password)+"</password>";}
that.customSafeMessage('<authenticate><hash>'+authKey+"</hash>"+providerXml+"</authenticate><modify>"+encFields+'</modify>',function(data,errors){if(!errors){createSessionCookie();if(callback)callback.call(this);}else{if(callback)callback.call(this,errors);}});};that.submitPref=function(callback,include,level){include=include?include:RW_PREFS;var encFields='';for(var c in include){var val=that.getPref(include[c]);if(userPref[include[c]]===undefined)continue;encFields+="<"+include[c]+">"+escapeForXML(val)+"</"+include[c]+">";}
that.customMessage('<authenticate><hash>'+authKey+"</hash></authenticate><setprefs>"+getPrefLevelXml(level)+encFields+'</setprefs>',function(data,errors){if(!errors){createSessionCookie();if(callback)callback.call(this);}else{if(callback)callback.call(this,errors);}});};that.load=function(callback,include){include=include?include:RO_FIELDS;that.customMessage('<authenticate><hash>'+authKey+'</hash></authenticate><request><'+include.join('/><')+"/></request>",function(data,errors){if(!errors){$('profilar request',data).children().each(function(){that.set(this.tagName.toLowerCase(),$(this).text());});if(callback)callback.call(this);}else{if(callback)callback.call(this,errors);}});};that.loadPref=function(callback,include,level){include=include?include:RW_PREFS;that.customMessage('<authenticate><hash>'+authKey+'</hash></authenticate><getprefs>'+getPrefLevelXml(level)+'<'+include.join('/><')+"/></getprefs>",function(data,errors){if(!errors){$('profilar getprefs',data).children().each(function(){that.setPref(this.tagName.toLowerCase(),$(this).text());});if(callback)callback.call(this);}else{if(callback)callback.call(this,errors);}});};that.loadExternalProfiles=function(usernames,callback,include,level){include=include?include:RO_PUB_FIELDS;var includeXml='<'+include.join('/><')+"/>";var levelXml=getPrefLevelXml(level);var requestXml=[];for(var u in usernames){requestXml.push('<request>'+levelXml+'<username>'+escapeForXML(usernames[u])+'</username><'+include.join('/><')+"/></request>");}
that.customMessage(requestXml.join(''),function(data,errors){var parsedData=[];$('profilar request',data).each(function(){var tmpData={};$(this).children().each(function(){tmpData[this.tagName.toLowerCase()]=$(this).text();});parsedData.push(tmpData);});callback.call(this,parsedData,errors);});};that.loadExternalPrefs=function(usernames,callback,include,level){include=include?include:RW_PREFS;var includeXml='<'+include.join('/><')+"/>";var levelXml=getPrefLevelXml(level);var requestXml=[];for(var u in usernames){requestXml.push('<getprefs>'+levelXml+'<username>'+escapeForXML(usernames[u])+'</username><'+include.join('/><')+"/></getprefs>");}
that.customMessage(requestXml.join(''),function(data,errors){var parsedData=[];$('profilar getprefs',data).each(function(){var tmpData={};$(this).children().each(function(){tmpData[this.tagName.toLowerCase()]=$(this).text();});parsedData.push(tmpData);});callback.call(this,parsedData,errors);});};that.triggerEvent=function(options,callback){options=$.extend({cheetah_ebm:{},cheetah_sub:{},email:that.get('email'),userName:userName,safe:false,fields:[],modify:null},options);var encFields='';for(var c in options.fields){encFields+="<"+options.fields[c].name+">"+(options.fields[c].intern?('<'+options.fields[c].value+'/>'):escapeForXML(options.fields[c].value))+"</"+options.fields[c].name+">";}
var cheetahSub='';for(var c in options.cheetah_sub){cheetahSub+="<"+c+">"+escapeForXML(options.cheetah_sub[c])+"</"+c+">";}
var cheetahEbm='';for(var c in options.cheetah_ebm){cheetahEbm+="<"+c+">"+escapeForXML(options.cheetah_ebm[c])+"</"+c+">";}
var encModify='';if(options.modify){encModify="<modify><"+options.modify.join("/><")+"/></modify>";}
var _fun=function(data,errors){if(!errors){var eventId=$('trigger',data).text();if(callback){if(eventId){callback.call(this,eventId);}else{callback.call(this,null,[{code:'500'}]);}}}else{if(callback)callback.call(this,null,errors);}};var _msg='<trigger>';_msg+=options.userName?('<username>'+escapeForXML(options.userName)+"</username>"):'';_msg+=options.email?("<email>"+escapeForXML(options.email)+"</email>"):'';_msg+=cheetahEbm?("<cheetah_ebm>"+cheetahEbm+"</cheetah_ebm>"):'';_msg+=cheetahSub?("<cheetah_sub>"+cheetahSub+"</cheetah_sub>"):'';_msg+=encFields?"<fields>"+encFields+"</fields>":'';_msg+=encModify+"</trigger>";if(options.safe){that.customSafeMessage(_msg,_fun,options.userName);}else{that.customMessage(_msg,_fun);}};that.eventFollowUp=function(_eventId,_userName,callback,_eventKey,modify){_userName=_userName?_userName:userName;modify=modify===undefined?{}:modify;var encModify='';for(var c in modify){encModify+="<"+c+">"+escapeForXML(modify[c])+"</"+c+">";}
that.customSafeMessage('<followup><username>'+escapeForXML(_userName)+"</username><eventid>"+escapeForXML(_eventId)+"</eventid>"+(_eventKey?("<eventkey>"+escapeForXML(_eventKey)+"</eventkey>"):'')+(encModify?("<modify>"+encModify+"</modify>"):'')+"</followup>",function(data,errors){if(!errors){var eventId=$('followup',data).text();if(callback){if(eventId){callback.call(this,eventId);}else{callback.call(this,null,[{code:'500'}]);}}}else{if(callback)callback.call(this,null,errors);}},_userName);};that.forService=function(){if(that.loggedIn()){return{username:userName,hash:authKey};}else{return{username:'',hash:''};}};return that;})(jQuery);;SPI.gameCache=(function($){var settings={gamedata_url:'/gamedata/%s.json',timeout:7000};var that={};var searchAjaxManagerGame=$.manageAjax({manageType:'queue',maxReq:2,global:false,blockSameRequest:true});var gamesCache=[];var callbackCache={};var getGameFromCache=function(game_id){for(var i=0;i<gamesCache.length;i++){if(gamesCache[i].gid==game_id)return gamesCache[i];}
return false;};var runCallbacks=function(game_id,data){if(callbackCache['_'+game_id]!==undefined){for(var i=0;i<callbackCache['_'+game_id].length;++i){callbackCache['_'+game_id][i](data);}
delete callbackCache['_'+game_id];}};var handleGameResponse=function(data,mesg){if(data.gid!==undefined){gamesCache.push(data);}
this.after_call(data);runCallbacks(this.game_id,data);};var handleGameError=function(xml,mesg,error){this.after_call(null);runCallbacks(this.game_id,null);};that.getGame=function(game_id,callback){var game=getGameFromCache(game_id);if(game!==false){callback.call(this,game);}else{if(searchAjaxManagerGame.add({global:false,type:'GET',cache:true,dataType:'json',success:handleGameResponse,error:handleGameError,timeout:settings.timeout,url:SPI.sprintf(settings.gamedata_url,game_id),after_call:callback,game_id:game_id})===false){if(callbackCache['_'+game_id]===undefined){callbackCache['_'+game_id]=[];}
callbackCache['_'+game_id].push(callback);}}};return that;})(jQuery);;SPI.gamesCookieProxy=function(settings){if(settings==undefined){settings={};}
this.settings=jQuery.extend({maxGames:100,cookieExpire:365,allowMultiple:false,splitter:'.',cookiePath:'/'},settings);this.loadGames=function(){var cookieData=jQuery.cookie(this.settings.cookieName);try{if(cookieData==null||cookieData==''){cookieData=new Array();}else{cookieData=cookieData.split(this.settings.splitter);for(var i=0;i<cookieData.length;++i){cookieData[i]=parseInt(cookieData[i]);}}}catch(e){cookieData=new Array();}
return cookieData;};this.resetGames=function(){jQuery.cookie(this.settings.cookieName,'',{expires:-1,path:this.settings.cookiePath});};this.saveGames=function(games){if(games.length>this.settings.maxGames){games=games.slice(0,this.settings.maxGames);}
var saveData=games.join(this.settings.splitter);if(games.length==0){saveData='';}
jQuery.cookie(this.settings.cookieName,saveData,{expires:this.settings.cookieExpire,path:this.settings.cookiePath});};this.addGame=function(gameId){var games=this.loadGames();if(!this.settings.allowMultiple){var index=jQuery.inArray(gameId,games);if(index!=-1){games.splice(index,1);}}
var newLength=games.unshift(gameId);this.saveGames(games);return newLength;};this.removeGame=function(gameId){var games=this.loadGames();var index=jQuery.inArray(gameId,games);while(index!=-1){games.splice(index,1);if(!this.settings.allowMultiple){break;}
var index=jQuery.inArray(gameId,games);}
this.saveGames(games);return games.length;};};;var TimeTracker=function(opt_bucket){if(opt_bucket){this.bucket_=opt_bucket.sort(this.sortNumber);}else{this.bucket_=TimeTracker.DEFAULT_BUCKET;}};TimeTracker.prototype.startTime_;TimeTracker.prototype.stopTime_;TimeTracker.prototype.bucket_;TimeTracker.DEFAULT_BUCKET=[100,500,1500,2500,5000];TimeTracker.prototype._getTimeDiff=function(){return(this.stopTime_-this.startTime_);};TimeTracker.prototype.sortNumber=function(a,b){return(a-b);}
TimeTracker.prototype._recordStartTime=function(opt_time){if(opt_time!=undefined){this.startTime_=opt_time;}else{this.startTime_=(new Date()).getTime();}};TimeTracker.prototype._recordEndTime=function(opt_time){if(opt_time!=undefined){this.stopTime_=opt_time;}else{this.stopTime_=(new Date()).getTime();}};TimeTracker.prototype._track=function(tracker,opt_event_obj_name,opt_event_label){var eventTracker;if(opt_event_obj_name!=undefined&&opt_event_obj_name.length!=0){eventTracker=tracker._createEventTracker(opt_event_obj_name);}else{eventTracker=tracker._createEventTracker('TimeTracker');}
var i;var bucketString;for(i=0;i<this.bucket_.length;i++){if((this._getTimeDiff())<this.bucket_[i]){if(i==0){bucketString="0-"+(this.bucket_[0]);break;}else{bucketString=this.bucket_[i-1]+"-"+(this.bucket_[i]-1);break;}}}
if(!bucketString){bucketString=this.bucket_[i-1]+"+";}
eventTracker._trackEvent(bucketString,opt_event_label,this._getTimeDiff());};TimeTracker.prototype._setHistogramBuckets=function(buckets_array){this.bucket_=buckets_array.sort(this.sortNumber);};;SPI.highscore=(function($){var config={settings:{defaultData:{authenticated:0},timeout:3000,ajaxCacheGeneral:true,ajaxCacheUser:true,ajaxCacheUserHighscore:true,highscorebox_title_length:16}};var that={};var target,userScore=0;var currentView;var userScores=[];var currentScore={};var canClick=true;var calculateFinalArray=function(general,user,callback){var users=[],items=[],skip11=false;if(general.hyscor&&general.hyscor[currentView]&&general.hyscor[currentView].result.length>0){items=general.hyscor[currentView].result.splice(0,10);for(var i in items){items[i].avatar_url=config.settings.noimage;items[i].current=false;if(items[i].authenticated=='1'){users.push(items[i].username);}}}
if(users.length>0){$.profilar.loadExternalPrefs(users,function(data,errors){for(var j in items){for(var k in data){if(data[k].username&&data[k].username.toLowerCase()==items[j].username.toLowerCase()&&data[k].avatar&&data[k].avatar!=''&&data[k].avatar!=undefined){items[j].avatar_url=SPI.sprintf(SPI._settings.global.avatar_url_small,data[k].avatar)||config.settings.noimage;}
items[j].current=($.profilar.forService().username.toLowerCase()==items[j].username.toLowerCase());if(items[j].current){skip11=true;}}}
if(skip11==false&&user&&user.hyscor&&user.hyscor[currentView]&&user.hyscor[currentView].result.length>0){var currentUser=user.hyscor[currentView].result[0];currentUser.current=true;var useravatar=$.profilar.getPref('avatar');if(useravatar!=''){useravatar=SPI.sprintf(SPI._settings.global.avatar_url_small,useravatar);}else{useravatar=config.settings.noimage;}
currentUser.avatar_url=useravatar;items.push(currentUser);}
if(items.length>11){items=items.splice(0,11);}
var myitems=items.concat();var timestampUser=0;var timestampServer=0;var timeDelta=0;if(userScores.length>0){var userScoresCopy=userScores.concat();for(var i in myitems){timestampServer=parseInt(myitems[i].timestamp);if(myitems[i].current==true){var currentScore=myitems[i];for(var j in userScoresCopy){timestampUser=parseInt(userScoresCopy[j].timestamp);timeDelta=Math.abs(timestampUser-timestampServer);if(currentScore.score==userScoresCopy[j].score&&timeDelta<=10){userScoresCopy.splice(j,1);}}}}
if(userScoresCopy.length>0){for(var k in userScoresCopy){myitems.push(userScoresCopy[k]);}
myitems.sort(sortByScore);updatePositions(myitems);myitems=myitems.splice(0,11);if(myitems.length>10&&myitems[10].current!=true){myitems.pop();}else{if(myitems.length>10){for(i=0;i<10;i++){if(myitems[i].current==true){myitems.pop();break;}}}}}}
myitems.sort(sortByScore);updatePositions(myitems);callback.call(this,myitems);},['avatar']);}else{if(user&&user.hyscor&&user.hyscor[currentView]&&user.hyscor[currentView].result.length>0){var currentUser=user.hyscor[currentView].result[0];currentUser.current=true;currentUser.avatar_url=SPI.sprintf(SPI._settings.global.avatar_url_small,$.profilar.getPref('avatar'))||config.settings.noimage;items.push(currentUser);}
var myitems=items.concat();var timestampUser=0;var timestampServer=0;var timeDelta=0;if(userScores.length>0){var userScoresCopy=userScores.concat();for(var i in myitems){timestampServer=parseInt(myitems[i].timestamp);if(myitems[i].current==true){var currentScore=myitems[i];for(var j in userScoresCopy){timestampUser=parseInt(userScoresCopy[j].timestamp);timeDelta=Math.abs(timestampUser-timestampServer);if(currentScore.score==userScoresCopy[j].score&&timeDelta<=10){userScoresCopy.splice(j,1);}}}}
if(userScoresCopy.length>0){for(var k in userScoresCopy){myitems.push(userScoresCopy[k]);}
myitems.sort(sortByScore);updatePositions(myitems);myitems=myitems.splice(0,11);if(myitems.length>10&&myitems[10].current!=true){myitems.pop();}else{if(myitems.length>10){for(i=0;i<10;i++){if(myitems[i].current==true){myitems.pop();break;}}}}}}
myitems.sort(sortByScore);updatePositions(myitems);callback.call(this,myitems);}};var handleResponseGeneral=function(data,mesg){config.settings.ajaxCacheGeneral=true;if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
this.after_call(data);};var getGeneralHighscores=function(callback){$.ajax({global:false,cache:config.settings.ajaxCacheGeneral,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,config.settings.gameId),type:'GET',dataType:'json',success:handleResponseGeneral,error:function(xml,mesg,error){if(mesg=='timeout'){that.renderHighScores();}else{handleResponseGeneral.call(this,{"hyscor":[]},'');}},after_call:callback,data:{group:currentView,order:config.settings.order,authenticated:'1',outputtype:'json'}});};var handleResponseUser=function(data,mesg){config.settings.ajaxCacheUser=true;if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
this.after_call(data);};var getUserHighscore=function(callback){$.ajax({global:false,cache:config.settings.ajaxCacheUser,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,config.settings.gameId),type:'GET',dataType:'json',success:handleResponseUser,error:function(xml,mesg,error){handleResponseUser.call(this,{"hyscor":[]},'');},after_call:callback,data:{group:currentView,order:config.settings.order,authenticated:'1',outputtype:'json',username:$.profilar.forService().username,hash:$.profilar.forService().hash}});};that.getUserLevel=function(callback,targetUser){var getData={outputtype:'json'};if(targetUser){getData.targetuser=targetUser;}else{getData.username=$.profilar.forService().username;getData.hash=$.profilar.forService().hash;}
$.ajax({global:false,cache:config.settings.ajaxCacheUser,timeout:config.settings.timeout,url:config.settings.gamelevelurl,type:'GET',dataType:'json',success:function(data){callback.call(this,data)},error:function(xml,mesg,error){handleResponseUser.call(this,{"hyscor":[]},'');},after_call:callback,data:getData});};that.init=function(settings){SPI.getAndUpdateConfig('highscore',config,settings);target=$(config.settings.target);currentView=config.settings.defaultView;$('div#highscore_box div.viewbar a').live('click',function(){if(canClick===true){canClick=false;currentView=''+$(this).attr('href').replace(/[^#]*#/g,'');$('div#highscore_box div.viewbar a').removeClass('active');$('div#highscore_box div.viewbar a').unbind('click');that.renderHighScores();}
return false;});if($.profilar.loggedIn()){$('div#highscore_box div.loggedinfolinks').show();}
if($('.loggedinfolinks').length>0){$('.loggedinfolinks').find('a').parent().localScroll({offset:-90,duration:700});}};var saveUserScore=function(userscore,timestamp){if(userscore>0){var uavatar=$.profilar.getPref('avatar')!=''?SPI.sprintf(SPI._settings.global.avatar_url_small,$.profilar.getPref('avatar')):config.settings.noimage;var score={'notLogged':false,'position':1,'timestamp':timestamp+'','username':$.profilar.get('username'),'current':true,'authenticated':1,'score':userscore,'gamelevel':'','country':'','avatar_url':uavatar};currentScore=score;userScores.push(score);userScores.sort(sortByScore);}};var saveNotLoggedScore=function(userscore,timestamp){if(userscore>0){var uavatar='/img/game/a10anonymous.gif';var score={'notLogged':true,'position':1,'timestamp':timestamp+'','username':config.langStrings.guest,'current':true,'authenticated':1,'score':userscore,'gamelevel':'','country':'','avatar_url':uavatar};currentScore=score;userScores.push(score);userScores.sort(sortByScore);}};var sortByScore=function(a,b){var x=parseInt(a.score);var y=parseInt(b.score);return(y-x);};var updatePositions=function(resultsRef){if(resultsRef.length>0){for(i=0;i<resultsRef.length;i++){resultsRef[i].position=i+1;}}};var handleNewScore=function(data,mesg){$('ul.ha_tabs a.highscore_a').click();if(data.hyscor&&data.hyscor.errorcode!==undefined){return;}
saveUserScore(this.score,data.hyscor.time);that.renderHighScores();};var handleNotLoggedScore=function(data,mesg){$('ul.ha_tabs a.highscore_a').click();if(data.hyscor&&data.hyscor.errorcode!==undefined){return;}
saveNotLoggedScore(this.score,data.hyscor.time);that.renderHighScores();};that.newScoreCallback=function(score){currentView='daily';if(score>0){$.ajax({cache:false,timeout:2000,url:config.settings.timeurl,type:'GET',dataType:'json',success:handleNewScore,error:function(xml,mesg,error){handleNewScore.call(this,{"hyscor":[]},'');},data:{outputtype:'json'},'score':score});}};that.notLoggedScoreCallback=function(score){currentView='daily';if(score>0){$.ajax({cache:false,timeout:2000,url:config.settings.timeurl,type:'GET',dataType:'json',success:handleNotLoggedScore,error:function(xml,mesg,error){handleNewScore.call(this,{"hyscor":[]},'');},data:{outputtype:'json'},'score':score});}};that.drawHighscores=function(scores){var boxfooter='';if($.profilar.loggedIn()==false){$('div#highscore_box .loginbox').remove();boxfooter='<div class="loginbox">'+'<div class="extraGame">'+config.langStrings.highscore_game_info+'</div>'+'<div class="infoHolder"><div class="infotext">'+config.langStrings.not_logged_warning+'</div>'+'<div class="button"><a href="#" onclick="loginboxraise();return false;">'+config.langStrings.login+'</a></div>'+'<div class="links">'+'<span class="bottomInfo"><a href="'+config.settings.register_url+'">'+config.langStrings.register+'</a></span>'+'</div>'+'<div class="cb">&#160;</div></div>'+'</div>';};$('div#highscore_box .viewbar').before(boxfooter);$('div#highscore_box div.highscore_box_content').removeClass('highscore_indicator');$('div#highscore_box div.viewbar a.'+currentView).addClass('active');var noresults=false;if(scores.length>0){$('div#highscore_box div.highscore_box_content').append('<ul></ul>');var li='',userscore='',position='',userlink=false;var alreadyOrange=false;var j=1;var cuser='';var scoreCheck=true;for(var i in scores){cuser='';position=scores[i].position||'';userlink=scores[i].authenticated==1;if(scoreCheck===true&&scores[i].current==true&&currentScore.score&&currentScore.score>0&&scores[i].score==currentScore.score){cuser=' cuser="1"';scoreCheck=false;}
if(scores[i].current==true&&!alreadyOrange){extraClass=' class="current"';alreadyOrange=true;}else{extraClass='';}
li='<li'+extraClass+''+cuser+'>'+'<span class="position">'+(scores[i].current==true&&j>10?'&#160;':position)+'</span>'+'<span class="avatar">'+
(scores[i].notLogged!=true&&userlink===true?'<a href="'+SPI.sprintf(config.settings.userprofile_link,scores[i].username)+'">':'')+'<img src="'+scores[i].avatar_url+'" width="30" height="30" alt="'+SPI.addslashes(scores[i].username)+'" border="0" />'+
(userlink===true?'</a>':'')+'</span>'+'<span class="username">'+
(scores[i].notLogged!=true&&userlink===true?'<a href="'+SPI.sprintf(config.settings.userprofile_link,scores[i].username)+'">':'')+
scores[i].username+
(scores[i].notLogged!=true&&userlink===true?'</a>':'')+'</span>'+'<span class="score">'+SPI.number_format(scores[i].score)+'</span>'+
(scores[i].notLogged===true?'<span class="itemWarningNotLogged">'+config.langStrings.item_warning_not_logged+'</span>':'')+'</li>';$('div#highscore_box ul').append(li);j++;}
$('div#highscore_box ul li:even').addClass('even');}else{noresults=true;};if(noresults){var ecl='';if($.profilar.loggedIn()==false){ecl=' style="margin-top: 120px;"';}
$('div#highscore_box div.highscore_box_content').append('<div class="noitems"'+ecl+'>'+config.langStrings.no_results+'</div>');}
that.animateCurrentScore();canClick=true;};that.renderHighScores=function(){$('div#highscore_box div.viewbar a').removeClass('active');$('div#highscore_box div.highscore_box_content').empty().addClass('highscore_indicator');getGeneralHighscores(function(general){if($.profilar.loggedIn()){getUserHighscore(function(user){calculateFinalArray(general,user,function(items){that.drawHighscores(items);});});}else{calculateFinalArray(general,null,function(items){that.drawHighscores(items);});}});};that.animateHighestUserResult=function(){$('div#highscore_box div.highscore_box_content ul li.current:first').animate({opacity:0.5},150).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},350);};that.animateCurrentScore=function(){if($('div#highscore_box ul li[cuser=1]').hasClass('current')){$('div#highscore_box ul li[cuser=1]').animate({opacity:0.5},150).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},350);}else{$('div#highscore_box ul li[cuser=1]').addClass('current').animate({opacity:0.5},150).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},100).animate({opacity:0.5},100).animate({opacity:1},100).animate({opacity:0.2},350,function(){$('div#highscore_box ul li[cuser=1]').removeClass('current').css('opacity','1');});}
currentScore={};};that.UserLevel=function(callback){if($.profilar.loggedIn()){that.getUserLevel(function(data){try{tmp=data.hyscor.level||0;}catch(e){tmp=0;}
callback.call(this,tmp);});}else{callback.call(this,0);}};var handleResponseUserHighscores=function(data,mesg){if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
this.after_call(data);};var getAllUserHighscores=function(username,callback){var targetusername=username||$.profilar.forService().username;$.ajax({global:false,cache:config.settings.ajaxCacheUserHighscore,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.userhighscoresurl,SPI._settings.global.site_id),type:'GET',dataType:'json',success:handleResponseUserHighscores,error:function(xml,mesg,error){handleResponseUserHighscores.call(this,{"hyscor":[]},'');},after_call:callback,data:{outputtype:'json',targetuser:targetusername,pagesize:50}});};var drawHighscoresItems=function(aitems){var temp=[];try{temp=aitems.hyscor.resultset.result;}catch(e){}
var items=temp.concat();var myitems=[];if(items.length>0){$('div#myhighscores div.noresults').hide();$('div#myhighscores div.results').empty();$('div#myhighscores div.results').append('<ul></ul>');var tempdiv='';for(var i in items){tempdiv='<div class="thumb emptythumb">'+'<img src="/img/shared/empty_38x28.gif" width="38" height="28" alt="" />'+'</div>';$('div#myhighscores div.results ul').append('<li id="hsid_'+i+'" class="indicator'+(i%2==0?' even':'')+'">'+tempdiv+'</li>');myitems.push({loggedIn:items[i].loggedIn,game_id:items[i].itemid,score:items[i].score,timestamp:items[i].timestamp});}}
if(myitems.length>0){for(var j in myitems){getGameForHighscore(j,myitems[j]);}}};var getGameForHighscore=function(li_id,item){SPI.gameCache.getGame(item.game_id,function(data){handleBoxHighscore(data,li_id,item);});};var handleBoxHighscore=function(game,li_id,item){$('div#myhighscores div.results ul li[id=hsid_'+li_id+']').removeClass('indicator');if(game==null){return;}
var div='';div='<div class="thumb">'+
game.url+'<img src="'+game.thumbnail+'" width="38" height="28" alt="'+SPI.escape(game.title+'')+'" />'+'</a>'+'</div>'+'<div class="info">'+'<span class="gametitle">'+
game.url+
SPI.cutStringPlease(game.title,config.settings.highscorebox_title_length)+'</a>'+'</span>'+'<span class="gametime">'+SPI.formatDate(item.timestamp,SPI._langStrings.relative_date_plain,true)+'</span>'+'</div>'+'<div class="gamescore">'+SPI.number_format(item.score)+'</div>';$('div#myhighscores div.results ul li[id=hsid_'+li_id+']').empty().append(div);if(li_id%2==0){$('div#myhighscores div.results ul li[id=hsid_'+li_id+']').addClass('even');}};that.renderHighScoresBox=function(user){var username=user||null;getAllUserHighscores(username,function(items){drawHighscoresItems(items)});};return that;})(jQuery);;SPI.achievements=(function($){var config={settings:{timeout:7000,awardsbox_gametitle_length:30,awardsbox_awardtitle_length:75,achievementItemsPerPage:18,gamerPointsOverviewItemsPerPage:5,unachieved_limit:9,latest_limit:8,unachieved_li:'unachid_',latest_li:'latawa_'}};var that={};var userAwards=[];var userAwardsCount=0;var allAwardsCount=0;var achievementUsername=null;that.init=function(settings){SPI.getAndUpdateConfig('achievement',config,settings);};that.renderAchievements=function(achievements){$('div#achievement_box div.achievement_box_content').empty();if($.profilar.loggedIn()){$('div#achievement_box div.loggedinfolinks').show();}
getAchievements(function(general){if($.profilar.loggedIn()){getUserAchievements(function(user){calculateFinalArray(general,user,function(items){that.drawAchievements(items);if(items.length>0){allAwardsCount=items.length;userAwardsCount=userAwards.length;updateViewBar();}});});}else{calculateFinalArray(general,null,function(items){that.drawAchievements(items);});}});};var updateViewBar=function(){if($('div#achievement_box div.viewbar').length==0){$('div#achievement_box').prepend('<div class="viewbar">'+SPI.sprintf(config.langStrings.earned_achievements,userAwardsCount,allAwardsCount)+'</div>');}else{$('div#achievement_box div.viewbar').empty().html(SPI.sprintf(config.langStrings.earned_achievements,userAwardsCount,allAwardsCount));}};var handleResponse=function(data,mesg){config.settings.ajaxCacheUser=true;if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
if(data.hyscor.resultset&&data.hyscor.resultset.result&&data.hyscor.resultset.result.length>5){data.hyscor.resultset.result=data.hyscor.resultset.result.splice(0,5);}
this.after_call(data);};var getAchievements=function(callback){$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,0,config.settings.gameId),type:'GET',dataType:'json',success:handleResponse,error:function(xml,mesg,error){if(mesg=='timeout'){that.renderAchievements();}else{handleResponse.call(this,{"hyscor":[]},'');}},after_call:callback,data:{outputtype:'json',locale:SPI._settings.global.lang_id}});};var handleResponseUser=function(data,mesg){config.settings.ajaxCacheUser=true;if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
this.after_call(data);};var getUserAchievements=function(callback){$.ajax({global:false,cache:config.settings.ajaxCacheUser,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,config.settings.gameId),type:'GET',dataType:'json',success:handleResponseUser,error:function(xml,mesg,error){handleResponseUser.call(this,{"hyscor":[]},'');},after_call:callback,data:{outputtype:'json',username:$.profilar.forService().username,hash:$.profilar.forService().hash,locale:SPI._settings.global.lang_id}});};that.getAchievementsCountForUser=function(callback,targetUser){var getData={outputtype:'json',icondata:'0',pagesize:'1',pagenr:'1',outputtype:'json'};if(targetUser){getData.targetuser=targetUser;}else{getData.username=$.profilar.forService().username;getData.hash=$.profilar.forService().hash;}
$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,0),type:'GET',dataType:'json',success:handleResponseUser,error:function(xml,mesg,error){handleResponse.call(this,{"hyscor":[]},'');},after_call:callback,data:getData});};var calculateFinalArray=function(general,user,callback){var items=[];if(general.hyscor&&general.hyscor.resultset&&general.hyscor.resultset.result&&general.hyscor.resultset.result.length>0){items=general.hyscor.resultset.result.splice(0,5);}
if(items.length>1){for(var i=items.length-2;i>=0;i--){for(var j=0;j<=i;j++){if(parseInt(items[j+1].difficulty)<parseInt(items[j].difficulty)){var tempValue=items[j];items[j]=items[j+1];items[j+1]=tempValue;}}}}
if(user!=null){if(user.hyscor&&user.hyscor.resultset&&user.hyscor.resultset.result&&user.hyscor.resultset.result.length>0){for(var i in user.hyscor.resultset.result){for(var z in items){if(items[z].tag==user.hyscor.resultset.result[i].tag){userAwards.push(user.hyscor.resultset.result[i].tag);}}}}}
callback.call(this,items);};var getDifficulty=function(difficulty_level,points){var usePointsString=points!=undefined;var retVal='';var difficulty={'_0':config.langStrings.difficulty_easy,'_5':config.langStrings.difficulty_medium,'_10':config.langStrings.difficulty_hard};if(usePointsString){retVal=SPI.sprintf(config.langStrings.difficultyPoints,difficulty['_'+difficulty_level],points)}else{retVal=SPI.sprintf(config.langStrings.difficulty,difficulty['_'+difficulty_level])}
return retVal;};that.drawAchievements=function(achievements){var boxfooter='';if($.profilar.loggedIn()==false){boxfooter='<div class="loginbox">'+'<div class="extraGame">'+config.langStrings.awards_game_info+'</div>'+'<div class="infoHolder"><div class="infotext">'+config.langStrings.not_logged_warning+'</div>'+'<div class="button"><a href="#" onclick="loginboxraise();return false;">'+config.langStrings.login+'</a></div>'+'<div class="links">'+'<span class="bottomInfo"><a href="'+config.settings.register_url+'">'+config.langStrings.register+'</a></span>'+'</div>'+'<div class="cb">&#160;</div></div>'+'</div>';};$('div#achievement_box div.achievement_box_content').append(boxfooter);if(achievements.length>0){$('div#achievement_box div.achievement_box_content').append('<ul></ul>');var li='',extraClass='',thumbPath='';for(var i in achievements){thumbPath=SPI.sprintf(config.settings.thumb_template,achievements[i].awardid);var diff=getDifficulty(achievements[i].difficulty,achievements[i].raise);var achTitle=SPI.sprintf(config.langStrings.award_title,achievements[i].title);var achDesc=achievements[i].description;achTitle=SPI.cutStringPlease(achTitle,22);achDesc=SPI.cutStringPlease(achDesc,53);li='<li'+extraClass+' tag="tag_'+achievements[i].tag+'">'+'<div class="thumb">'+'<div class="bigborder"><img src="'+thumbPath+'" alt="" /></div>'+'</div>'+'<div class="info">'+'<span class="title">'+achTitle+'</span>'+'<span class="desc">'+achDesc+'</span>'+'<span class="difficulty">'+diff+'</span>'+'</div>'+'<div class="awardedinfo">'+'<span class="awardsSlogan">'+config.langStrings.new_achievement+'</span>'+'<span class="title">'+achievements[i].title+'</span>'+'<span class="points">'+SPI.sprintf(config.langStrings.achievements_points,achievements[i].raise)+'</span>'+'<span class="pointshidden">'+SPI.sprintf(config.langStrings.achievements_points,achievements[i].raise)+'</span>'+'<input class="raise" type="hidden" name="raise" value="'+achievements[i].raise+'">'+'</div>'+'</li>';$('div#achievement_box ul').append(li);}
if(userAwards.length>0){for(var j in userAwards){$('div#achievement_box ul li[tag=tag_'+userAwards[j]+']').addClass('active');}}
$('div#achievement_box ul li:even').addClass('even');$('div#achievement_box ul li:not(.active)').mouseenter(function(){if(!$(this).hasClass('active')){$(this).addClass('active').addClass('removeactive');}});$('div#achievement_box ul li:not(.active)').mouseleave(function(){if($(this).hasClass('removeactive')){$(this).removeClass('active').removeClass('removeactive');}});}};var scaleup=function(tage,callback){$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder').animate({'width':'58px','height':'58px','top':'2px','left':'10px'},200,'swing',function(){callback.call(this,tage)});};var scaledown=function(tage,callback){$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder').animate({'width':'50px','height':'50px','top':'6px','left':'13px'},200,'swing',function(){callback.call(this,tage)});};var awardscleanup=function(tage,oldbackground){$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').css('display','none');$('div#achievement_box ul li[tag=tag_'+tage+'] div.info').css('display','block');$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder img').css('border','1px solid #2E160A');$('div#achievement_box ul li[tag=tag_'+tage+']').css('background',oldbackground);$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder').css('background-color','transparent');};var cycle=function(tage,cycles,cleanup,oldbackground){if(cycles>=0){scaleup(tage,function(){scaledown(tage,function(){cycle(tage,cycles,cleanup,oldbackground);});});}else{if(cleanup===true)setTimeout(function(){SPI.achievements.cleanAchievements(tage,oldbackground)},1000);}
cycles=cycles-1;};var prepareItem=function(tage){$('div#achievement_box ul li[tag=tag_'+tage+'] div.info').css('display','none');$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').css('display','block');$('div#achievement_box ul li[tag=tag_'+tage+']').css('background','transparent url(/img/shared/achievementbg.png) repeat-x');$('div#achievement_box ul li[tag=tag_'+tage+'] div.thumb').css('width','69px');$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder img').css('border','1px solid #1f52e5');$('div#achievement_box ul li[tag=tag_'+tage+'] .bigborder').css('background-color','#FFF');$('div#achievement_box ul li[tag=tag_'+tage+']').addClass('active');}
var prepareNotLoggedItem=function(tage){$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').find('.notLoggedTitle, .notLoggedPoints, .itemWarningNotLogged').remove();$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').append('<span class="notLoggedTitle">'+$('div#achievement_box ul li[tag=tag_'+tage+'] div.info .title').html()+'</span>');$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').append('<span class="notLoggedPoints">'+$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo .pointshidden').html()+'</span>');$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').append('<span class="itemWarningNotLogged">'+config.langStrings.item_warning_not_logged+'</span>');$('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo').find('.awardsSlogan, .title, .points, .raise').remove();}
that.cleanAchievements=function(tage,oldbackground){awardscleanup(tage,oldbackground);}
that.newAchievementCallback=function(tage){$('ul.ha_tabs a.achievement_a').click();if(userAwardsCount<allAwardsCount){userAwardsCount++;updateViewBar();};if($.cookie('_SPI_level')){tmp=parseInt($.cookie('_SPI_level'))+parseInt($('div#achievement_box ul li[tag=tag_'+tage+'] div.awardedinfo input').val());fillPoints(tmp,true,false,true);}else{SPI.highscore.init();SPI.highscore.UserLevel((function(_tage){return function(data){fillPoints(parseInt(data),true,false,true);}})(tage));};var cycles=6;var oldbackground=$('div#achievement_box ul li[tag=tag_'+tage+']').css('background-color');prepareItem(tage);cycle(tage,cycles,true,oldbackground);};that.notLoggedAchievementCallback=function(tage){$('ul.ha_tabs a.achievement_a').click();if(userAwardsCount<allAwardsCount){userAwardsCount++;updateViewBar();};var cycles=4;var oldbackground=$('div#achievement_box ul li[tag=tag_'+tage+']').css('background-color');prepareNotLoggedItem(tage);prepareItem(tage);cycle(tage,cycles,false,oldbackground);};that.UserAwardsCount=function(callback){if($.profilar.loggedIn()){that.getAchievementsCountForUser(function(data){try{tmp=data.hyscor.resultset.total||0;}catch(e){tmp=0;}
callback.call(this,tmp);},$.profilar.forService().username);}else{callback.call(this,0);}};var handleResponseUserAchievements=function(data,mesg){if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":[]};}
this.after_call(data,this.page);};var getAllUserAchievements=function(callback,page){var sendData={};if(achievementUsername==null){sendData={pagesize:config.settings.achievementItemsPerPage,pagenr:page,locale:SPI._settings.global.lang_id,outputtype:'json',username:$.profilar.forService().username,hash:$.profilar.forService().hash};}else{sendData={pagesize:config.settings.achievementItemsPerPage,pagenr:page,locale:SPI._settings.global.lang_id,outputtype:'json',targetuser:achievementUsername};}
$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,0),type:'GET',dataType:'json',success:handleResponseUserAchievements,error:function(xml,mesg,error){handleResponseUserAchievements.call(this,{"hyscor":[]},'');},after_call:callback,data:sendData,'page':page});};var drawAchievementsItems=function(aitems,page){var temp=[];try{temp=aitems.hyscor.resultset.result;}catch(e){temp=[];}
var items=temp.concat();var page=page||1;if(items.length==0){$('div#myawards div.noresults').show();$('div#myawards div.results').empty().hide();return;}
var sitesQuantity=Math.ceil(that.userAchievementsLength/config.settings.achievementItemsPerPage);$('div#myawards div.noresults').hide();$('div#myawards div.results').empty();var columns=3;var uls=Math.ceil(items.length/columns);for(i=0;i<uls;i++){$('div#myawards div.results').append('<ul id="aul_'+i+'" class="'+(i%2==0?'even':'')+'"></ul>')}
var selectedUl=0;var insertString='';for(var i=(page*config.settings.achievementItemsPerPage)-config.settings.achievementItemsPerPage,j=0;i<(page*config.settings.achievementItemsPerPage)&&i<that.userAchievementsLength;i++,j++){if(j%columns==0&&j!=0){selectedUl++;}
insertString='<li id="awid_'+i+'" class="indicator"></li>';$('div#myawards div.results ul[id=aul_'+selectedUl+']').append(insertString);getGameForAchievement(i,items[j]);}
var paging=SPI.paginatorString(that.userAchievementsLength,page,config.settings.achievementItemsPerPage,config.settings.maxPages,function(page){getAllUserAchievements(function(items,page){drawAchievementsItems(items,page);},page);},{next:config.langStrings.next,prev:config.langStrings.prev,separator:config.langStrings.separator});$("#paging_center").empty();if(paging!=''){$("#paging_center").append(paging).show();}};var getGameForAchievement=function(li_id,item){SPI.gameCache.getGame(item.itemid,function(data){handleBoxAchievement(data,li_id,item);});};var handleBoxAchievement=function(game,li_id,item){var diff=getDifficulty(item.difficulty,item.raise);$('div#myawards div.results ul li[id=awid_'+li_id+']').removeClass('indicator');if(game==null){return;}
var div='';var thumbnail=thumbPath=SPI.sprintf(config.settings.thumb_template,item.awardid);div='<div class="thumb">'+
game.url.slice(0,game.url.length-1)+' title="| '+SPI.escape(item.description+'')+'">'+'<img src="'+thumbnail+'" width="48" height="48" alt="'+SPI.escape(game.title+'')+'" />'+'</a>'+'</div>'+'<div class="info">'+'<span class="gametitle">'+
game.url.slice(0,game.url.length-1)+' title="| '+SPI.escape(item.description+'')+'">'+
SPI.cutStringPlease(game.title,config.settings.awardsbox_gametitle_length)+'</a>'+'</span>'+'<span class="awardtitle" title="| '+SPI.escape(item.description+'')+'">'+
SPI.cutStringPlease(item.title,config.settings.awardsbox_awardtitle_length)+'</span>'+'<span class="difficulty" title="| '+SPI.escape(item.description+'')+'">'+diff+'</span>'+'</div>';$('div#myawards div.results ul li[id=awid_'+li_id+']').append(div);$('div#myawards div.results ul li[id=awid_'+li_id+'] a, div#myawards div.results ul li[id=awid_'+li_id+'] span').ntooltip({extraClass:'pretty',showBody:'| ',fancyImages:SPI._settings.tooltipFancyImagesArray});};that.renderUserAchievements=function(user){achievementUsername=user||null;getAllUserAchievements(function(items){that.userAchievementsLength=0;try{that.userAchievementsLength=items.hyscor.resultset.total;}catch(e){};drawAchievementsItems(items);},1);};var renderUnachievedRow=function(row,game,i){row.gameurl=game.url;row.gamename=SPI.cutStringPlease(game.title,config.settings.awardsbox_gametitle_length);row.thumbnail=SPI.sprintf(config.settings.thumb_template,row.awardid);row.awardtitle=SPI.cutStringPlease(row.title,config.settings.awardsbox_awardtitle_length);row.diff=getDifficulty(row.difficulty,row.raise);row.i=i+1;var ed=$(SPI.render(config.templates.unachieved_li,row));$('a, span',ed).ntooltip({extraClass:'pretty',showBody:'| ',fancyImages:SPI._settings.tooltipFancyImagesArray});return ed;};var handleUnachievedResponse2=function(data,mesg){if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":{resultset:{result:[]}}};}
var all=data.hyscor.resultset.result,user=this.userData.hyscor.resultset.result;var unachieved=[],push;for(var i=0;i<all.length;++i){push=true;for(var j=0;j<user.length;j++){if(all[i].awardid==user[j].awardid){push=false;break;}}
if(push){unachieved.push(all[i]);}
if(unachieved.length>=config.settings.unachieved_limit){break;}}
if(unachieved.length==0){$('#'+config.settings.unachieved_li+'0'+' div.info').append('<p class="nodata_title">'+config.langStrings.no_unachieved_award+'</p><p class="nodata_text">'+config.langStrings.stop_playing_now+'</p>');$(config.settings.unachieved_div+' div.unachievedmorelink').hide();return;}
var i,ed,row;for(i=0;i<unachieved.length;++i){$('#'+config.settings.unachieved_li+i).addClass("indicator");SPI.gameCache.getGame(unachieved[i].itemid,function(_row,_i,_liid){return function(game){if(game){$('#'+_liid).removeClass('indicator').empty().append(renderUnachievedRow(_row,game,_i)).hover(function(){$(this).addClass('hover');},function(){$(this).removeClass('hover');});}}}(unachieved[i],i,config.settings.unachieved_li+i));}};var handleUnachievedResponse1=function(data,mesg){if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":{resultset:{result:[]}}};}
$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,0,0),type:'GET',dataType:'json',success:handleUnachievedResponse2,error:function(xml,mesg,error){handleUnachievedResponse2.call(this,{"hyscor":{resultset:{result:[]}}},'');},data:{outputtype:'json',locale:SPI._settings.global.lang_id},userData:data});};that.renderUnachieved=function(){var box=$(config.settings.unachieved_div+' div.results');var columns=3;var uls=Math.ceil(config.settings.unachieved_limit/columns);for(i=0;i<uls;i++){box.append('<ul id="uaul_'+i+'" class="'+(i%2==0?'even':'')+'"></ul>');}
var i;var selectedUl=0;for(i=0;i<config.settings.unachieved_limit;++i){if(i%columns==0&&i!=0){selectedUl++;}
$('ul[id=uaul_'+selectedUl+']',box).append('<li id="'+config.settings.unachieved_li+i+'"></li>');$('#'+config.settings.unachieved_li+i).append(SPI.render(config.templates.unachieved_li_empty,{}));}
$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,0),type:'GET',dataType:'json',success:handleUnachievedResponse1,error:function(xml,mesg,error){handleUnachievedResponse1.call(this,{"hyscor":{resultset:{result:[]}}},'');},data:{outputtype:'json',username:$.profilar.forService().username,hash:$.profilar.forService().hash,locale:SPI._settings.global.lang_id}});};var renderLatestRow=function(row,game,i){row.gameurl=game.url;row.gamename=SPI.cutStringPlease(game.title,config.settings.awardsbox_gametitle_length);row.thumbnail=SPI.sprintf(config.settings.thumb_template,row.awardid);row.awardtitle=SPI.cutStringPlease(row.title,config.settings.awardsbox_awardtitle_length);row.diff=getDifficulty(row.difficulty,row.raise);row.i=i+1;var ed=$(SPI.render(config.templates.latest_li,row));$('a, span',ed).ntooltip({extraClass:'pretty',showBody:'| ',fancyImages:SPI._settings.tooltipFancyImagesArray});return ed;};var handleLatestAwards=function(data,mesg){if(data.hyscor&&data.hyscor.errorcode!==undefined){data={"hyscor":{resultset:{result:[]}}};}
var latest=data.hyscor.resultset.result.splice(0,config.settings.latest_limit);if(latest.length==0){$('#'+config.settings.latest_li+'0'+' div.info').append('<p class="nogames_title">'+config.langStrings.no_achieved_award+'</p><p class="nogames_text">'+config.langStrings.start_playing_now+'</p>');$(config.settings.latest_div+' div.latestawardsmorelink').hide();return;}
var i,ed,row;for(i=0;i<latest.length;++i){$('#'+config.settings.latest_li+i).addClass("indicator");SPI.gameCache.getGame(latest[i].itemid,function(_row,_i,_liid){return function(game){if(game){$('#'+_liid).removeClass('indicator').empty().append(renderLatestRow(_row,game,_i));}}}(latest[i],i,config.settings.latest_li+i));}};that.renderLatestsAwards=function(targetUser){var box=$(config.settings.latest_div+' div.results');var columns=2;var uls=Math.ceil(config.settings.latest_limit/columns);for(i=0;i<uls;i++){box.append('<ul id="laul_'+i+'" class="'+(i%2==0?'even':'')+'"></ul>');}
var i;var selectedUl=0;for(i=0;i<config.settings.latest_limit;++i){if(i%columns==0&&i!=0){selectedUl++;}
$('ul[id=laul_'+selectedUl+']',box).append('<li id="'+config.settings.latest_li+i+'"></li>');$('#'+config.settings.latest_li+i).append(SPI.render(config.templates.latest_li_empty,{}));}
var getData={pagesize:config.settings.achievementItemsPerPage,pagenr:1,locale:SPI._settings.global.lang_id,outputtype:'json'};if(targetUser){getData.targetuser=targetUser;}else{getData.username=$.profilar.forService().username;getData.hash=$.profilar.forService().hash;}
$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,0),type:'GET',dataType:'json',success:handleLatestAwards,error:function(xml,mesg,error){handleLatestAwards.call(this,{"hyscor":{resultset:{result:[]}}},'');},data:getData});};var getTargetuserAchievements=function(_username,_callback,_pagenumber){var targetusername=_username||$.profilar.forService().username;var page=(_pagenumber>0)?_pagenumber:0;var getData={locale:SPI._settings.global.lang_id,outputtype:'json',targetuser:targetusername,pagesize:config.settings.gamerPointsOverviewItemsPerPage,pagenr:page};$.ajax({global:false,cache:true,timeout:config.settings.timeout,url:SPI.sprintf(config.settings.url,SPI._settings.global.site_id,0),type:'GET',dataType:'json',success:handleResponseUserAchievements,error:function(xml,mesg,error){handleResponseUserAchievements.call(this,{"hyscor":[]},'');},after_call:_callback,page:page,data:getData});};var fillGamePointBox=function(game,li_id,item){$('div#gamepointbox div.results ul li[id=awid_'+li_id+']').removeClass('indicator');if(game==null){return;}
var div='';var row={date:SPI.formatAbsDate(item.timestamp),gamename:game.url+SPI.cutStringPlease(game.title,config.settings.awardsbox_gametitle_length),gameurl:game.url.slice(0,game.url.length-1),gamedesc:SPI.escape(item.description+''),gametitle:SPI.addslashes(game.title+''),awardtitle:SPI.cutStringPlease(item.title,config.settings.awardsbox_awardtitle_length),awarddesc:item.description,points:item.raise,thumbnail:thumbPath=SPI.sprintf(config.settings.thumb_template,item.awardid),diff:getDifficulty(item.difficulty)}
var div=$(SPI.render(config.templates.gamepoint_li,row));$('div#gamepointbox div.results ul li[id=awid_'+li_id+']').append(div);};var loadGamePointsOverview=function(li_id,item){SPI.gameCache.getGame(item.itemid,function(data){fillGamePointBox(data,li_id,item);});};return that;})(jQuery);;SPI.checkSearchField=function(formname,searchfield,length){var temp=eval('document.'+formname+'.elements[\''+searchfield+'\']').value;temp=temp.replace(/ /g,'');if(temp.length<length){alert(SPI._langStrings.global.search_alert);return false;}
return true;};SPI.trackExtViewar=function(siteid,gameid){var i=new Image(1,1);i.src='http://api.viewar.org/vw/pb/1/add/'+siteid+'/1/'+gameid+'/1';var delay=500;i.onload=i.onerror=function(){delay=0;};var start=new Date().getTime();while(new Date().getTime()<start+delay);};SPI.imageErrorHandler=function(){$('img[src*="/120x90/"], img[src*="/120X90/"], img[src*="/200x120/"], img[src*="/200X120/"]').one("error",function(){this.src='/img/noimage.gif';});};jQuery.fn.spiIeh=function(){return this.each(function(){$('img[src*="/120x90/"], img[src*="/120X90/"], img[src*="/200x120/"], img[src*="/200X120/"]',this).one("error",function(){this.src='/img/noimage.gif';});});};jQuery.fn.spiFeatureUrl=function(feature){return this.each(function(){var cleanedHref=this.href.replace(/([&?])(feature=\w+[&?]?)/,"$1");if(this.href.indexOf('?')!=-1){this.href=cleanedHref+'&feature='+feature;}else{this.href=cleanedHref+'?feature='+feature;}});};SPI.upFrame=function(contenturl,width,height,gamename){var ha=window.open('','po1234','width='+width+',height='+height+',top=0,left=0,resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no');ha.document.writeln('<html><head><title>'+gamename+'</title><style type="text/css">'
+'body {padding: 0px; margin: 0px; border: 0px;}'
+'</style></head><body onLoad="self.focus();">'
+'<iframe src="'+contenturl+'" width="100%" height="100%" frameborder="0" scrolling="no" marginwidth="0" marginheight="0">'
+'&nbsp;</iframe></body></html>');ha.document.close();};function trackIt(trackingPath){try{pageTracker._trackPageview(trackingPath+'');}catch(e){}};var hideFlashMessage=function(){var layer=$('div#flashMessage');if(layer.length>0){layer.slideUp('slow');}};$(function(){$('#searchinput_top').focus(function(){this.value='';$(this).val('').unbind('focus');});$('#searchtopmenu').submit(function(){$('#searchinput_top').focus();return SPI.checkSearchField('searchtopmenu','search',3);});$("div#catsortingbar a").pngFix();$(".tooltip").ntooltip({extraClass:'pretty',showBody:"| ",fancyImages:SPI._settings.tooltipFancyImagesArray});var flashMessage=SPI.flashMessage.get();if(flashMessage.length==2&&flashMessage[0]!=''){var layer=$('div#flashMessage');if(layer.length>0){layer.empty().html('<div class="'+(flashMessage[1]=='true'?'bad':'good')+'"><div class="text">'+flashMessage[0]+'</div></div>').show();setTimeout('hideFlashMessage()',5000);}}});var objectstohide;loginboxraise=function(){var myWidth=0,myHeight=0;if(typeof(window.innerWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){myWidth=document.documentElement.clientWidth;myHeight=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){myWidth=document.body.clientWidth;myHeight=document.body.clientHeight;}
if(!$.profilar.loggedIn()){newmargin=Math.round((parseInt(myHeight)-328)/2);if(newmargin<0)newmargin=0;objectstohide=$('object:visible').add('#flashobj_mc').add('#gameiframe_js');$(objectstohide).each(function(){$(this).css('visibility','hidden')});$('div.loginboxWrapper').css('margin-top',newmargin+'px');$('div#loginBoxPopup input[name=username]').add('div#loginBoxPopup input[name=password]').removeAttr('disabled');$('div#loginBoxPopup a#logmein').unbind('click').click(clickActionLoginBox);$('.heightHolder').css('display','block');$('.loginsalert').css('display','none')
$('div#shadow').css('display','block');};};loginboxclose=function(){$('div#shadow').css('display','none');$('#loginBoxPopup input').val('');$('#loginBoxPopup .heightHolder').css('display','block');$('#loginBoxPopup .loginsalert').css('display','none');$(objectstohide).each(function(){$(this).css('visibility','visible')});objectstohide=[];};loginbarFill=function(){var leftbox=false;if($(".leftbox_myprofile").length>0){leftbox=true;};if($.cookie('_SPI_level')){fillPoints(parseInt($.cookie('_SPI_level')),false,leftbox,true);}else{SPI.highscore.init();SPI.highscore.UserLevel(function(data){fillPoints(data,true,leftbox,true);});};if($('#userinfo #awardsCount').length>0){SPI.achievements.init();SPI.achievements.UserAwardsCount(function(data){$('#userinfo #awardsCount').html(data);});}
$('.loginInfoLeft span').text($.profilar.get('username'));$('.loginInfoLeft span').wrap('<a href="'+SPI._settings.loginbar.myprofile_url+'"></a>');$('.loginInfoLeft img').show();$('.loginInfoLeft').show();$('.loginLinks a.login').hide();$('.loginLinks a.join').hide();$('.loginLinks a.logout').show();$('.loginLinks a.myprofile').show();$('.loginLinks a.myfavorites').show();$('.loginLinks img').show();if($.profilar.getPref('avatar')!=''){if($.profilar.getPref('avatar')!='')$('.loginInfoLeft img').attr('src',SPI.sprintf(SPI._settings.global.avatar_url_small,$.profilar.getPref('avatar')));}else{$('.loginInfoLeft img').attr('src','/img/profile/dummy_small.jpg');};};var checkLevel=function(userLevels,userPoints){var level=0,currentLevel=0,previousLevel=0,currentPoints=0,previousPoints=0,pointsLeft=0,nextLevel=0;if(userPoints>=userLevels[userLevels.length-1]){return{'level':userLevels.length-1,'levelFrom':userLevels[userLevels.length-1],'points':userPoints,'pointsLeft':0,'nextLevel':userLevels.length-1,'nextLevelFrom':userLevels[userLevels.length-1]};}
for(var i=userLevels.length-1;i>0;i--){level=i;currentLevel=i;currentPoints=userLevels[currentLevel];previousLevel=i-1;previousPoints=userLevels[previousLevel];if(userPoints==currentPoints){userLevel=currentLevel;nextLevel=userLevel+1;pointsLeft=userLevels[nextLevel]-userPoints;if(userLevels[nextLevel]==undefined){pointsLeft=0;nextLevel=-1;}
return{'level':userLevel,'points':userPoints,'pointsLeft':pointsLeft,'nextLevel':nextLevel,'nextLevelFrom':userLevels[nextLevel]};}
if(userPoints<currentPoints&&userPoints>=previousPoints){userLevel=previousLevel;nextLevel=userLevel+1;pointsLeft=userLevels[nextLevel]-userPoints;return{'level':userLevel,'levelFrom':userLevels[userLevel],'points':userPoints,'pointsLeft':pointsLeft,'nextLevel':nextLevel,'nextLevelFrom':userLevels[nextLevel]};}}
return{'level':1,'levelFrom':0,'points':0,'pointsLeft':userLevels[2],'nextLevel':2,'nextLevelFrom':userLevels[2]};};var fillPoints=function(userPoints,storeincookie,leftbox,loginbar){if(storeincookie){var myDate=new Date();myDate.setTime(myDate.getTime()+600000);$.cookie('_SPI_level',userPoints,{path:'/',expires:myDate});};var user=checkLevel(userLevels,userPoints);var currLevelmax=user.levelFrom;var nextLevelmax=user.nextLevelFrom;var pointsLeft=user.pointsLeft;var nextLevel=user.nextLevel;var level=user.level;var percent=Math.round(100*(userPoints-currLevelmax)/(nextLevelmax-currLevelmax));if(loginbar){$('.loginInfoPoints span var').html(userPoints);$('.loginInfoLevel span').html(level);$('.progresIndicator').css('width',percent+'%');if(nextLevelmax!=currLevelmax){$('.loginProgress').attr('title',SPI.sprintf(SPI._langStrings.loginbar.points_left,pointsLeft,nextLevel));}else{$('.progresIndicator').css('width','100%');};};if(leftbox){$('#userinfo #points span').html(userPoints);$('#userinfo #level span').html(level);$('#userinfo #emptybar #fullbar').css('width',percent+'%');if(nextLevelmax!=currLevelmax){$('#userinfo #emptybar').attr('title',SPI.sprintf(SPI._langStrings.loginbar.points_left,pointsLeft,nextLevel)).ntooltip({extraClass:'pretty',showBody:"|",fancyImages:SPI._settings.tooltipFancyImagesArray});;}else{$('#userinfo #emptybar #fullbar').css('width','100%');};};if($("div#gamepointbox_pointsleft_value").length>0){$("div#gamepointbox_pointsleft_value").text(pointsLeft);};if(loginbar){$(".loginProgress").ntooltip({extraClass:'pretty',showBody:"|",fancyImages:SPI._settings.tooltipFancyImagesArray});};};
