/*!
 * jQuery JavaScript Library v1.4.4
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu Nov 11 19:04:53 2010 -0500
 */
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
var email_regexp=/^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/i;
var ex_email_regexp=/^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/i;
//'
var login_regexp=/^[a-z][-a-z0-9]{2,11}$/i;
var ftplogin_regexp=/^[A-Za-z\d]{3,10}$/;

var search_value='';
var login_value='';
var pass_value='';
var capt_value='';

var search_flag=0;
var login_flag=0;
var pass_flag=0;
var capt_flag=0;

var Nav = navigator.userAgent.toLowerCase(); 
var IsOpera=(Nav.indexOf("opera")!=-1); 
var IsMozilla = (Nav.indexOf("gecko") != -1); 
var IsIe = (Nav.indexOf("msie") != -1 && Nav.indexOf("opera") == -1); 

$(function() {
		   
	$('.pp_examp').click(function(){$('#pp_example').toggle();});
	
	$('#capture-redraw').click(function(){
		$('#capture-image').attr('src', '/capture.gif?' + Math.floor(Math.random()*10));
		return false;
	});
  
	$('#pay-sms').click(function(){
		menu_cleanup();
		$('#show-sms').show();
		$('#pay-sms').addClass('bold-menu');
		return false;
	});
	
	$('#pay-wm').click(function(){
		menu_cleanup();
		$('#show-wm').show();
		$('#pay-wm').addClass('bold-menu');
		return false;
	});
	
	$('#pay-visa').click(function(){
		menu_cleanup();
		$('#show-visa').show();
		$('#pay-visa').addClass('bold-menu');
		return false;
	});
	
	$('#changewallet_paytype').change(function(){
		if(this.value=='paypal')
		{
			$('#pp_tr').show();
			$('#wm_tr').hide();
            $('#mb_tr').hide();
            $('#ap_tr').hide();
		}
		else if (this.value=='moneybook')
		{
			$('#mb_tr').show();
			$('#pp_tr').hide();
            $('#wm_tr').hide();
            $('$ap_tr').hide();
		}
        else if (this.value=='alertpay') 
        {
            $('#mb_tr').hide();
            $('#pp_tr').hide();
            $('#wm_tr').hide();
            $('#ap_tr').show();
        }
        else
        {
            $('#mb_tr').hide();
			$('#pp_tr').hide();
            $('#wm_tr').show();
            $('#ap_tr').hide();
        }
		return false;
	});
	
	
	//---- FROM DESIGN
	/*
		fix for the input in upload form
	*/
	

	/*
		show auth form
	*/
	$('#login_link').click(function(){
		if ($("#auth_form").css('display') == 'none') 
		{
			$("#auth_form").show();
			$("#login_link_container").addClass('login_active');
		}
		else
		{
			$("#auth_form").hide();
			$("#login_link_container").removeClass('login_active');
		}
	});

	/*
		show advanced search
	*/
	$('#top_menu_search_selector').click(function(){
		$("#advanced_search_wrapper").toggle();
	});	
	//---- END FROM DESIGN
	
	
	$('#links_switcher a').click(function()
			{
				if ($('#links_to_file_container').is(':visible')) 
				{
					//hide links
					$("#links_switcher").removeClass("links_switcher_opened");
					$("#links_switcher").addClass("links_switcher_closed");
					$("#links_to_file_container").hide();
					$('#links_switcher a').html("Show more links");
				}
				else
				{
					//show links
					$("#links_switcher").removeClass("links_switcher_closed");
					$("#links_switcher").addClass("links_switcher_opened");
					$("#links_to_file_container").show();
					$('#links_switcher a').html("Hide links");
				}
			});
	
	$('#search_file').focus(function()
	{
		if(!search_flag)
		{
			search_value=$('#search_file').val();
			$('#search_file').val('');
		}
	});
	$('#search_file').change(function()
	{
		search_flag=1;
	});
	
	$('#search_file').blur(function()
	{
		if($('#search_file').val()=='' || !search_flag)
		{
			$('#search_file').val(search_value);
		}
	});
	
	
	
	$('#top_menu_search_selector').click(function(event){
		event.preventDefault();
		event.stopPropagation();
		$("#advanced_search_wrapper").show();
		$('body').one("click", function() {
			$("#advanced_search_wrapper").hide();
		});
		$('#advanced_search_wrapper').click(function(event){
			event.stopPropagation();
		});
		$('#search_file').click(function(event){
			event.stopPropagation();
		});
	});
	
	$('.you_need_premium').click(function(event){
		alert(SEARCH_MES[0]);
	});

	
	//-------------------
	
	$('#captcha_input').focus(function()
	{
		if(!capt_flag)
		{
			capt_value=$('#captcha_input').val();
			$('#captcha_input').val('');
		}
	});
	$('#captcha_input').change(function()
	{
		capt_flag=1;
	});
	$('#captcha_input').blur(function()
	{
		if($('#captcha_input').val()==''|| !capt_flag)
		{
			$('#captcha_input').val(capt_value);
		}
	});
	//-------------------
	$('#auth_login').focus(function()
	{
		if(!login_flag)
		{
			login_value=$('#auth_login').val();
			$('#auth_login').val('');
		}
	});
	$('#auth_login').change(function()
	{
		login_flag=1;
	});
	$('#auth_login').blur(function()
	{
		if($('#auth_login').val()=='' || !login_flag)
		{
			$('#auth_login').val(login_value);
		}
	});
	//-----------
	$('#auth_password').focus(function()
	{
		if(!pass_flag)
		{
			pass_value=$('#auth_password').val();
			$('#auth_password').val('');
		}
	});
	$('#auth_password').change(function()
	{
		pass_flag=1;
	});
	$('#reload_captcha_link').click(function()
	{
		$('#capt').attr("src",$('#capt').attr("src")+Math.floor(Math.random()*10));
		return false;
	});
	
	$('#profile_submit_form').submit(function()
	{
		var ret=true;
		var err=0;
		
		if($('#password_cur').val().length > 0 ){
			if( ($('#password').val().length == 0 || $('#password_repeat').val().length == 0) || $('#password_repeat').val()!=$('#password').val() )
			{		
			$('#password').css("border-color","#ff0000"); 
			$('#password_repeat').css("border-color","#ff0000"); 
			err=1;
			ret=false;
			}
		}
		else {
			$('#password_repeat').css("border-color","#A8A4A5");
			$('#password_cur').css("border-color","#A8A4A5"); 
		}
		
	
		if($('#ftplogin').val().length < 3){
			err=2;
			$('#ftplogin').css("border-color","#ff0000"); 
			ret=false;			
		}else
			$('#ftplogin').css("border-color","#A8A4A5");	
		
		
		//if(!$('#ftplogin').val().match(ftplogin_regexp))
		if(!$('#ftplogin').val().match(/[a-z\d]/i))
		{
			err=3;
			$('#ftplogin').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#ftplogin').css("border-color","#A8A4A5");	
						
		if(!ret)
			$.jGrowl(PROFILE_MES[err], {life: 1000,glue: 'first',speed: 'fast'});

		return ret;	
	});
		
	$('#reg_submit_form').submit(function()
	{
		var ret=true;
		var err=0;
		
		if(!$('#terms').is(':checked'))
		{
			$('#terms').css("border-color","#ff0000"); 
			err=3;
			ret=false;
		}
		else
			$('#terms').css("border-color","#A8A4A5");
		
		if($('#password_repeat').val()!=$('#password').val())
		{
			$('#password_repeat').css("border-color","#ff0000"); 
			err=2;
			ret=false;
		}
		else
			$('#password_repeat').css("border-color","#A8A4A5");
		
		if($('#email').length > 0 && !$('#email').val().match(email_regexp)&&!$('#email').val().match(ex_email_regexp))
		{
			err=5;
			$('#email').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#email').css("border-color","#A8A4A5");
		
		if($('#password').val()=='')
		{
			err=1;
			$('#password').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#password').css("border-color","#A8A4A5");
		
		
		
		if($('#captcha').val()=='')
		{
			err=1;
			$('#captcha').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#captcha').css("border-color","#A8A4A5");
		
		if(!ret)
			$.jGrowl(REG_MES[err], {life: 1000,glue: 'first',speed: 'fast'});
		return ret;	
	});

	$('#restorepass_submit_form').submit(function()
	{
		var ret=true;
		var err=0;
		
		if($('#email').length > 0 && !$('#email').val().match(email_regexp)&&!$('#email').val().match(ex_email_regexp))
		{
			err=5;
			$('#email').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#email').css("border-color","#A8A4A5");
		
		if($('#captcha').val()=='')
		{
			err=1;
			$('#captcha').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#captcha').css("border-color","#A8A4A5");
		
		if(!ret)
			$.jGrowl(REG_MES[err], {life: 1000,glue: 'first',speed: 'fast'});
		return ret;	
	});	
	$('#restorepass_pwd_submit_form').submit(function()
	{
		var ret=true;
		var err=0;
				
		if($('#password_repeat').val()!=$('#password').val())
		{
			$('#password_repeat').css("border-color","#ff0000"); 
			err=2;
			ret=false;
		}
		else
			$('#password_repeat').css("border-color","#A8A4A5");
			
		if($('#password').val()=='')
		{
			err=1;
			$('#password').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#password').css("border-color","#A8A4A5");
		
		
		
		if($('#captcha').val()=='')
		{
			err=1;
			$('#captcha').css("border-color","#ff0000"); 
			ret=false;
		}
		else
			$('#captcha').css("border-color","#A8A4A5");
		
		if(!ret)
			$.jGrowl(REG_MES[err], {life: 1000,glue: 'first',speed: 'fast'});
		return ret;	
	});	
		$('#feed_form').submit(function()
		{
			var ret=true;
			var err=0;
			
			
			if($('#email').length > 0 && !$('#email').val().match(email_regexp) && !$('#email').val().match(ex_email_regexp))
			{
				err=1;  
				$('#email').css("border-color","#ff0000"); 
				ret=false;
			}
			else
				$('#email').css("border-color","#A8A4A5");
			
			
			if($('#topic').val()=='')
			{
				err=1;
				$('#topic').css("border-color","#ff0000"); 
				ret=false;
			}
			else
				$('#topic').css("border-color","#A8A4A5");
			
			if($('#message').val()=='')
			{
				err=1;
				$('#message').css("border-color","#ff0000"); 
				ret=false;
			}
			else
				$('#message').css("border-color","#A8A4A5");
			
			if($('#captcha').val()=='')
			{
				err=1;
				$('#captcha').css("border-color","#ff0000"); 
				ret=false;
			}
			else
				$('#captcha').css("border-color","#A8A4A5");
			
			
			
			if(!ret)
				$.jGrowl(FEED_MES[err], {life: 1000,glue: 'first',speed: 'fast'});
			return ret;	
		});
});

function show_beta()
{
	try{
		if(!$.cookie('show_part'))
		{
			$("#titlemess").show();
			$.cookie('show_part', '1');
		}
	}
	catch(e){}
}

function menu_cleanup()
{
	$('#show-sms').hide();
	$('#show-wm').hide();
	$('#show-visa').hide();
	$('#pay-visa').removeClass('bold-menu');
	$('#pay-sms').removeClass('bold-menu');
	$('#pay-wm').removeClass('bold-menu');
}

function swap_preload()
{
	$('#gen_load').hide();
	$('#gen_link').show();
}

function sec2time(sec)
{
	var hour=parseInt(sec/3600);
	sec-=hour*3600;
	var min	=parseInt(sec/60);
	sec-=min*60;
	sec	=parseInt(sec);
	if(hour<10)
		hour="0"+hour;
	if(min<10)
		min="0"+min;
	if(sec<10)
		sec="0"+sec;
	return hour+":"+min+":"+sec;
}

function HRFileSize(bytes) {
	if(bytes < 1024) {
		return bytes + ' B';
	}
 
	bytes = Math.round(bytes*100 / 1024) /100;
 
	if(bytes < 1024) {
		return bytes + ' KB';
	}
 
	bytes = Math.round(bytes*100 / 1024) /100;
 
	if(bytes < 1024) {
		return bytes + ' MB';
	}
 
	bytes = Math.round(bytes*100 / 1024) /100;
 
	if(bytes < 1024) {
		return bytes + ' GB';
	}
 
	bytes = Math.round(bytes*100 / 1024) /100;
 
	if(bytes < 1024) {
		return bytes + ' TB';
	}
}



//template stuff
String.prototype.template = function (o) {
		return this.replace(/{([^{}]*)}/g,
		function (a, b) {
			var r = o[b];
			return typeof r === 'string' || typeof r === 'number' ? r : a;
		}
		);
};

function set_popunder(lnk, type, selffocus)
{
	if($(lnk).length == 0)
		return;
	$(lnk).click(function(){
		if(IsOpera)
			this.target = "_blank";
		popunder(type, selffocus);
	});
		
}

function PopupClick(url){
	var f = "scrollbars=1,resizable=1,toolbar=1,location=1,menubar=1,status=1,directories=0,width=" + screen.width + ",height=" + screen.height + ",top=0,left=0,fullscreen=yes";
	var m = window.open(url, "", f);
	m.blur();
	window.focus();
	return true;
}

function popunder(type, selffocus)
{
	if(selffocus==null)
		selffocus=true;
	w=window.open('/popup.jsp?type='+type ,'Advertising','scrollbars=yes');
	if(selffocus)
	{
		w.blur();
		self.focus();
	}
	return true;
} 

function mysqlTimeStampToDate(timestamp) {
	//function parses mysql datetime string and returns javascript Date object
	//input has to be in this format: 2007-06-05 15:26:02
	var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
	var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
	return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
}

function microtime(float) {
    var now = new Date().getTime() / 1000;
    var s = parseInt(now, 10);
    return (float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}
function crc32(str) {
    var table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D";
    var crc = 0;
    var x = 0;
    var y = 0;
    crc = crc ^ (-1);
    for (var i = 0, iTop = str.length; i < iTop; i++) {
        y = ( crc ^ str.charCodeAt( i ) ) & 0xFF;
        x = "0x" + table.substr( y * 9, 8 );
        crc = ( crc >>> 8 ) ^ x;
    }
    return crc ^ (-1);
}

$(document).ready(function($)
{/*@NAME: capchatimer.js*/
	//initSms('capchatimer.js');
	
		/*val = $('#smsCountryList').val();
		
		if(val){
			var smsconf = $.smpsnamespace.smsconf;
			if(val == 'UA')
			{
				var txt     = $.smpsnamespace.text_ua;	
				//smsconf[val]['num'] = '1899';//'<img src="/s/img/pay/ua.png">';
				//$('#smscost').html(E_LABELSMS_COST_RU);
				//$('#smsTaxDiv').show();
			}
			else
			{
				var txt     = $.smpsnamespace.text;
				//$('#smscost').html(E_LABELSMS_COST_RU2);
				//$('#smsTaxDiv').hide();
			}

            $('#sms_real_cost2').html(smsconf[val]['real_cost']);

			$('#aftercapcha_sms_instr').html(
			txt.template({'num' : smsconf[val]['num'],'text' : smsconf[val]['text']}));
		}*/ 

    if(typeof(paymentOptions) != 'undefined') {
        $('#show_modal_win').pfForm(paymentOptions);
    }

	$('#aftercapcha_sms_submit').click(function(){
								
		if($('#aftercapcha_sms_code').val() == ''){
			showError(E_EMPTY_FIELD);
			}
		else{
			$('#aftercapcha_preloader').show();
			$('#aftercapcha_sms_submit').attr("disabled", true);
			//showError('test message');
			$.getJSON("/pay.jsp", 
							{
								'sms_submit':1, 
								//'sms_tax':currentTax,
								'sms_code' : $("#aftercapcha_sms_code").val(),
								'fid': $("#aftercapcha_fid").val(),
                                'form_flag': 'DL_CAPCHA_RU',
								'json':1, 
								'rnd': Math.random()
							},
        	function(data){
				$("#aftercapcha_preloader").hide();
				$('#aftercapcha_sms_submit').removeAttr("disabled");
				if(data.err){
					//$('#sms_submit_err_space').hide();
					showError(data.err);
				} else if(data.ok) {
					//$('#sms_submit_err_space').hide();
					showError(data.ok);
					/*$('#sms_submit_err').hide();	
					$("#sms_submit_ok").html("<b>"+data.ok+"</b> "+$.smslinktpl);
					$("#sms_submit_ok").show();*/
					if(data.href) {
						window.location.href = data.href;
					}
				}
        	});
			
		}	
	});	
	
	function showError(message){
		var top = 0;
		var left = 700;
		$('#error_message').empty();
		//left = ($(window).width()/2)+300;
		$('#error_message').css({'top': top, 'left': left }).append(message).show();
		var t = setTimeout(hideError,3000);
		}
	function hideError(){
		$('#error_message').empty();
		$('#error_message').hide();
		}	
});

/*
 */
(function($) {
	
	$.fn.captchatimer = function(options) {        
		
		//defaults
		var settings = {
			time: 30,
			step: 1,
            checkFocus: true,
            onFocus: true,
            windowFocusInEvent: null,
            windowFocusOutEvent: null,
            windowTarget: null
		};
		
		if (options) {
			$.extend(settings, options);
		};

        if (/*@cc_on!@*/false) {
            settings.windowFocusInEvent = 'focusin';
            settings.windowFocusOutEvent = 'focusout';
            settings.windowTarget = document;
        } else {
            settings.windowFocusInEvent = 'focus';
            settings.windowFocusOutEvent = 'blur';
            settings.windowTarget = window;
        }
        
		var countDown = settings.time;
		var el = $(this);
		var sum_t = '';
		var mm = 0;
		var ss = 0;
		var first = true;
		
		if(countDown > 60)
		{
			mm=parseInt((countDown/60+'').split(',')[0]);
			ss=countDown-mm*60;
		}
		else
		{
			mm=0;
			ss=countDown;
		}
		if(ss<10)ss='0'+ss;
		sum_t = mm+':'+ss
		el.html(sum_t);

        function inFocuse() {
            settings.onFocus = true;
        };

        function outFocus() {
             settings.onFocus = false;
        };

        if(settings.checkFocus) {
            $(settings.windowTarget).bind(settings.windowFocusInEvent, inFocuse);
            $(settings.windowTarget).bind(settings.windowFocusOutEvent, outFocus);
        };
		
		el.show();
		var myInterval = setInterval(function(){
			if (countDown > 0)
			{
                
                if(settings.onFocus || !settings.checkFocus) {
    				countDown -= settings.step;
	    			if(countDown > 60)
		    		{
			    		mm=parseInt((countDown/60+'').split(',')[0]);
				    	ss=countDown-mm*60;
    				}
	    			else
		    		{
			    		mm=0;
				    	ss=countDown;
    				}
	    			if(ss<10)ss='0'+ss;
		    		sum_t = mm+':'+ss
			    	el.html(sum_t);
                }
				//if(first){el.show('slow');first=false;}
			}
			else
			{

                if(settings.checkFocus) {
                    $(settings.windowTarget).unbind(settings.windowFocusInEvent, inFocuse);
                    $(settings.windowTarget).unbind(settings.windowFocusOutEvent, outFocus);
                }

			    //showcaptcha
    			settings.timerBlock.hide();
	    		settings.captchaBlock.show();
		    	clearInterval(myInterval);
			}
		}, 1*1000);
		
	};
})(jQuery);


function initSms(from) 
{
	//alert(from);
	 // quick fix for multiple initSms() calling
    if($.sms_inited != undefined) {
        return;
    }
    
    $.sms_inited = true;
	
    if($.smpsnamespace==undefined)
    	return;
   	$('#sms_submit_err').hide();
   	$("#sms_code").val('');
    var currentTax = $('#smsTaxList').val();
   
   	if($.smpsnamespace.country[$.geo]){
    	$("#smscountry").html($.smpsnamespace.country[$.geo]);
    } else {
    	$('#smscountry').hide();
    	$('#wrong_country').hide();
    	$('#sms_show_sel').show();
    }
    //bind func
    
    if($('#smsTaxList').val().indexOf('period') === 0)
		$('#sms_prem_plan_text').html(E_LABELSMS_DESC_PER);
	else
		$('#sms_prem_plan_text').html(E_LABELSMS_DESC_DL);
    
	$("#smsCountryList").change(change_country);	
    $('#smsTaxList').change( function (){
    		currentTax = $(this).val();
    		if(currentTax.indexOf('period') === 0)
    			$('#sms_prem_plan_text').html(E_LABELSMS_DESC_PER);
    		else
    			$('#sms_prem_plan_text').html(E_LABELSMS_DESC_DL);
    });
    
	
    
	if( $("#smsCountryList option[value='"+$.geo+"']").length ){
		
		$("#smsCountryList option[value='"+$.geo+"']").attr('selected', 'selected');
		$("#smsflag").attr('src','/s/img/flags/'+$.geo.toLowerCase()+'.gif');	    
	    $("#smsCountryList").change();	    
	    $("#smsflag").show();
    } else {
    	$("#smsflag").hide();
    }
     
    $('#wrong_country').click(function(){
		$('#wrong_country').hide();
		$('#smscountry').hide();
		
		$("#smsCountryList").show();
		$("#sms_no_country").show();
		$("#smsflag").hide();
 		return false;
	});
	
	$('#sms_no_country a').click(function(){
		$('#smstip').show();
		return false;
	});
	
	
	$('#sms_login_tip').click(function(){
		$('#smstiplogin').show();
		return false;
	});
	
	$('#sms_submit').click(function(){
		if(!$("#sms_code").val().length){
			//$('#sms_submit_err_space').hide();
		    $("#sms_submit_err").show();
			return false;
		}
		$("#preloader").show();
		$('#sms_submit').attr("disabled", true);
		$.getJSON("/pay.jsp", 
							{
								'sms_submit':1, 
								'sms_tax':currentTax,
								'sms_code' : $("#sms_code").val(),
								'fid': $("#period_extafid").val() || false,
								'json':1, 
								'rnd': Math.random()
							},
        	function(data){
				$("#preloader").hide();
				$('#sms_submit').removeAttr("disabled");
				if(data.err){
					//$('#sms_submit_err_space').hide();					
					$("#sms_submit_err").html(data.err);
					$("#sms_submit_err").show();
				} else if(data.ok) {
					//$('#sms_submit_err_space').hide();					
					$('#sms_submit_err').hide();	
					$("#sms_submit_ok").html("<b>"+data.ok+"</b> "+$.smslinktpl);
					$("#sms_submit_ok").show();
					if(data.href) {
						window.location.href = data.href;
					}
				}
        	});

		return false;
	});
	
	$('#sms_submit_free').click(function(){
		if(!$("#sms_code_free").val().length){
			$('#sms_submit_err_space_free').hide();
		    $("#sms_submit_err_free").show();
			return false;
		}
		$("#preloader_free").show();
		$('#sms_submit_free').attr("disabled", true);
		$.getJSON("/pay.jsp", 
							{
								'sms_submit':1, 
								'sms_tax':currentTax,
								'sms_code' : $("#sms_code_free").val(),
								'fid': $("#period_extafid").val() || false,
								'free_code': $('#free_code').attr('checked') || 0,
								'json':1, 
								'rnd': Math.random()
							},
        	function(data){
				$("#preloader_free").hide();
				$('#sms_submit_free').removeAttr("disabled");
				if(data.err){
					$('#sms_submit_err_space_free').hide();					
					$("#sms_submit_err_free").html(data.err);
					$("#sms_submit_err_free").show();
				} else if(data.ok) {
					$('#sms_submit_err_space_free').hide();					
					$('#sms_submit_err_free').hide();	
					$("#sms_submit_ok_free").html("<b>"+data.ok+"</b> "+$.smslinktpl);
					$("#sms_submit_ok_free").show();
					if(data.href) {
						window.location.href = data.href;
					}
				}
        	});

		return false;
	});
	
	$(document.body).click(function(){

		if($('#smstip').css('display') == 'block')
			$('#smstip').hide();
			return true;
		if($('#smstiplogin').css('display') == 'block')
			$('#smstiplogin').hide();
			return true;	
	});
	
	
};

function change_country(){
		val = $('#smsCountryList').val();
		$('#smsflag').attr({src: '/s/img/flag/'+val+'.gif'})
		if(val){
			var smsconf = $.smpsnamespace.smsconf;
			if(val == 'UA')
			{
				var txt     = $.smpsnamespace.text_ua;	
				//smsconf[val]['num'] = '1899';//'<img src="/s/img/pay/ua.png">';
				//smsconf[val]['num'] = smsconf['UA'].num;
				$('#smscost').html(E_LABELSMS_COST_RU);
				//$('#smsTaxDiv').show();
			}
			else
			{
				var txt     = $.smpsnamespace.text;
				$('#smscost').html(E_LABELSMS_COST_RU2);
				//$('#smsTaxDiv').hide();
			}
			
			$("#smsTaxList option[value='period_2w']").text(smsconf[val]['per_day']+' '+$.smpsnamespace.period_prefix);			
			$("#smsTaxList option[value='count30']").text(smsconf[val]['per_dl']+' '+$.smpsnamespace.perdl_prefix);

			$('#smsinstr').html(
			txt.template({'num' : smsconf[val]['num'],'text' : smsconf[val]['text']}));
			if($.smpsnamespace.country[$.geo]) {
				$("#smscountry").html($.smpsnamespace.country[$.geo]);
			} else {
				$("#smscountry").html($.smpsnamespace.country[val]);
			}
			$('#smsinstr').show();
			$('#smsinstr_space').hide();
		} else {
			$('#smsinstr').hide();
			$('#smsinstr_space').show();
		}
        set_sms_real_cost();
}

function set_sms_real_cost() {
    var smsconf = $.smpsnamespace.smsconf;
    var c = $('#smsCountryList').val();
    if(c && smsconf[c]) {
        $('#a1_sms_link').attr('href', smsconf[c].link);
        $('#sms_real_cost').html(smsconf[c].real_cost);
        if(smsconf[c].desc) 
        $('#smscost').html(smsconf[c].desc);

    } else {
        $('#a1_sms_link').attr('href', 'http://www.a1agregator.ru/main');        
        $('#sms_real_cost').html("");
        $('#smscost').html("");
    }
    
}
/*
 */
(function($) {
	
	$.fn.advsearch = function(params) 
	{
		var searchForm = $('#search_form');
		var searchstring = $('#search_file');
		var submitAll = $('#submit_all');

		var categories = $('.srch_cat');
		var sizes = $('.srch_size');
		var ages = $('.srch_age');

		var category = $('#category');
		var size = $('#size');
		var age = $('#age');

		var el = $(this);
		collectData();
		
		categories.click(function(event) 
		{
			event.preventDefault();
			var bool = false;
			bool = $(this).parent().hasClass('active');
			categories.each(function(i)
			{
				if ($(this).parent().hasClass('active'))
				{
					$(this).parent().removeClass('active');
				}
			});
			
			if (bool)
			{
				$(this).parent().removeClass('active');
				category.val('');
			}
			else
			{
				$(this).parent().addClass('active');
				category.val(this.id.replace('srch_cat_', ''));
			}
		});

		sizes.click(function(event) 
		{
			event.preventDefault();
			var bool = false;
			bool = $(this).hasClass('active');

			sizes.each(function(i)
			{
				if ($(this).hasClass('active'))
				{
					$(this).removeClass('active');
				}
			});

			if (bool)
			{
				$(this).removeClass('active');
				size.val('');
			}
			else
			{
				$(this).addClass('active');
				size.val(this.id.replace('srch_size_', ''));
			}
		});

		ages.click(function(event) 
		{
			event.preventDefault();
			var bool = false;
			bool = $(this).hasClass('active');
			ages.each(function(i)
			{
				if ($(this).hasClass('active'))
				{
					$(this).removeClass('active');
				}
			});

			if (bool)
			{
				$(this).removeClass('active');
				age.val('');
			}
			else
			{
				$(this).addClass('active');
				age.val(this.id.replace('srch_age_', ''));
			}
		});

		submitAll.click(function(event)
		{
			return true;
		});

		searchForm.submit(function(event)
		{
			return validate(event);
		});

		function collectData()
		{
			if (category.val() != '')
			{
				$('#srch_cat_' + category.val()).parent().addClass('active');
			}
			if (size.val() != '')
			{
				$('#srch_size_' + size.val()).addClass('active');
			}
			if (age.val() != '')
			{
				$('#srch_age_' + age.val()).addClass('active');
			}
		}

		function validate(event)
		{
			if (category.val() != '' || size.val() != '' || age.val() != '')
			{
			    if(searchstring.val()=='Искать файлы...' || searchstring.val() =='Search files ...')
			        searchstring.val('');
				return true;
			}
			if(searchstring.val()=='Искать файлы...' || searchstring.val() =='Search files ...' || jQuery.trim(searchstring.val()) =='')
			{
				$.jGrowl(BAD_SEARCH, {life: 5000,glue: 'first',speed: 'fast'});
				return false;
			}
			return true;
		}
	};
})(jQuery);

/**
 * jGrowl 1.2.0
 *
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Written by Stan Lemon <stanlemon@mac.com>
 * Last updated: 2009.05.11
 *
 * jGrowl is a jQuery plugin implementing unobtrusive userland notifications.  These 
 * notifications function similarly to the Growl Framework available for
 * Mac OS X (http://growl.info).
 *
 * To Do:
 * - Move library settings to containers and allow them to be changed per container
 *
 * Changes in 1.2.0
 * - Added message pooling to limit the number of messages appearing at a given time.
 * - Closing a notification is now bound to the notification object and triggered by the close button.
 *
 * Changes in 1.1.2
 * - Added iPhone styled example
 * - Fixed possible IE7 bug when determining if the ie6 class shoudl be applied.
 * - Added template for the close button, so that it's content could be customized.
 *
 * Changes in 1.1.1
 * - Fixed CSS styling bug for ie6 caused by a mispelling
 * - Changes height restriction on default notifications to min-height
 * - Added skinned examples using a variety of images
 * - Added the ability to customize the content of the [close all] box
 * - Added jTweet, an example of using jGrowl + Twitter
 *
 * Changes in 1.1.0
 * - Multiple container and instances.
 * - Standard $.jGrowl() now wraps $.fn.jGrowl() by first establishing a generic jGrowl container.
 * - Instance methods of a jGrowl container can be called by $.fn.jGrowl(methodName)
 * - Added glue preferenced, which allows notifications to be inserted before or after nodes in the container
 * - Added new log callback which is called before anything is done for the notification
 * - Corner's attribute are now applied on an individual notification basis.
 *
 * Changes in 1.0.4
 * - Various CSS fixes so that jGrowl renders correctly in IE6.
 *
 * Changes in 1.0.3
 * - Fixed bug with options persisting across notifications
 * - Fixed theme application bug
 * - Simplified some selectors and manipulations.
 * - Added beforeOpen and beforeClose callbacks
 * - Reorganized some lines of code to be more readable
 * - Removed unnecessary this.defaults context
 * - If corners plugin is present, it's now customizable.
 * - Customizable open animation.
 * - Customizable close animation.
 * - Customizable animation easing.
 * - Added customizable positioning (top-left, top-right, bottom-left, bottom-right, center)
 *
 * Changes in 1.0.2
 * - All CSS styling is now external.
 * - Added a theme parameter which specifies a secondary class for styling, such
 *   that notifications can be customized in appearance on a per message basis.
 * - Notification life span is now customizable on a per message basis.
 * - Added the ability to disable the global closer, enabled by default.
 * - Added callbacks for when a notification is opened or closed.
 * - Added callback for the global closer.
 * - Customizable animation speed.
 * - jGrowl now set itself up and tears itself down.
 *
 * Changes in 1.0.1:
 * - Removed dependency on metadata plugin in favor of .data()
 * - Namespaced all events
 */
(function($) {

	/** jGrowl Wrapper - Establish a base jGrowl Container for compatibility with older releases. **/
	$.jGrowl = function( m , o ) {
		// To maintain compatibility with older version that only supported one instance we'll create the base container.
		if ( $('#jGrowl').size() == 0 ) $('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');
		// Create a notification on the container.
		$('#jGrowl').jGrowl(m,o);
	};


	/** Raise jGrowl Notification on a jGrowl Container **/
	$.fn.jGrowl = function( m , o ) {
		if ( $.isFunction(this.each) ) {
			var args = arguments;

			return this.each(function() {
				var self = this;

				/** Create a jGrowl Instance on the Container if it does not exist **/
				if ( $(this).data('jGrowl.instance') == undefined ) {
					$(this).data('jGrowl.instance', new $.fn.jGrowl());
					$(this).data('jGrowl.instance').startup( this );
				}

				/** Optionally call jGrowl instance methods, or just raise a normal notification **/
				if ( $.isFunction($(this).data('jGrowl.instance')[m]) ) {
					$(this).data('jGrowl.instance')[m].apply( $(this).data('jGrowl.instance') , $.makeArray(args).slice(1) );
				} else {
					$(this).data('jGrowl.instance').create( m , o );
				}
			});
		};
	};

	$.extend( $.fn.jGrowl.prototype , {

		/** Default JGrowl Settings **/
		defaults: {
			pool: 			0,
			header: 		'',
			group: 			'',
			sticky: 		false,
			position: 		'top-right', // Is this still needed?
			glue: 			'after',
			theme: 			'default',
			corners: 		'10px',
			check: 			250,
			life: 			3000,
			speed: 			'normal',
			easing: 		'swing',
			closer: 		true,
			closeTemplate: '&times;',
			closerTemplate: '<div>[ close all ]</div>',
			log: 			function(e,m,o) {},
			beforeOpen: 	function(e,m,o) {},
			open: 			function(e,m,o) {},
			beforeClose: 	function(e,m,o) {},
			close: 			function(e,m,o) {},
			animateOpen: 	{
				opacity: 	'show'
			},
			animateClose: 	{
				opacity: 	'hide'
			}
		},
		
		notifications: [],
		
		/** jGrowl Container Node **/
		element: 	null,
	
		/** Interval Function **/
		interval:   null,
		
		/** Create a Notification **/
		create: 	function( message , o ) {
			var o = $.extend({}, this.defaults, o);

			this.notifications[ this.notifications.length ] = { message: message , options: o };
			
			o.log.apply( this.element , [this.element,message,o] );
		},
		
		render: 		function( notification ) {
			var self = this;
			var message = notification.message;
			var o = notification.options;

			var notification = $('<div class="jGrowl-notification' + ((o.group != undefined && o.group != '') ? ' ' + o.group : '') + '"><div class="close">' + o.closeTemplate + '</div><div class="header">' + o.header + '</div><div class="j_message">' + message + '</div></div>')
				.data("jGrowl", o).addClass(o.theme).children('div.close').bind("click.jGrowl", function() {
					$(this).parent().trigger('jGrowl.close');
				}).parent();
				
			( o.glue == 'after' ) ? $('div.jGrowl-notification:last', this.element).after(notification) : $('div.jGrowl-notification:first', this.element).before(notification);

			/** Notification Actions **/
			$(notification).bind("mouseover.jGrowl", function() {
				$(this).data("jGrowl").pause = true;
			}).bind("mouseout.jGrowl", function() {
				$(this).data("jGrowl").pause = false;
			}).bind('jGrowl.beforeOpen', function() {
				o.beforeOpen.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.open', function() {
				o.open.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.beforeClose', function() {
				o.beforeClose.apply( self.element , [self.element,message,o] );
			}).bind('jGrowl.close', function() {
				$(this).trigger('jGrowl.beforeClose').animate(o.animateClose, o.speed, o.easing, function() {
					$(this).remove();
					o.close.apply( self.element , [self.element,message,o] );
				});
			}).trigger('jGrowl.beforeOpen').animate(o.animateOpen, o.speed, o.easing, function() {
				$(this).data("jGrowl").created = new Date();
			}).trigger('jGrowl.open');
		
			/** Optional Corners Plugin **/
			if ( $.fn.corner != undefined ) $(notification).corner( o.corners );

			/** Add a Global Closer if more than one notification exists **/
			if ( $('div.jGrowl-notification:parent', this.element).size() > 1 && $('div.jGrowl-closer', this.element).size() == 0 && this.defaults.closer != false ) {
				$(this.defaults.closerTemplate).addClass('jGrowl-closer').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen, this.defaults.speed, this.defaults.easing).bind("click.jGrowl", function() {
					$(this).siblings().children('div.close').trigger("click.jGrowl");

					if ( $.isFunction( self.defaults.closer ) ) self.defaults.closer.apply( $(this).parent()[0] , [$(this).parent()[0]] );
				});
			};
		},

		/** Update the jGrowl Container, removing old jGrowl notifications **/
		update:	 function() {
			$(this.element).find('div.jGrowl-notification:parent').each( function() {
				if ( $(this).data("jGrowl") != undefined && $(this).data("jGrowl").created != undefined && ($(this).data("jGrowl").created.getTime() + $(this).data("jGrowl").life)  < (new Date()).getTime() && $(this).data("jGrowl").sticky != true && 
					 ($(this).data("jGrowl").pause == undefined || $(this).data("jGrowl").pause != true) ) {
					$(this).trigger('jGrowl.close');
				}
			});

			if ( this.notifications.length > 0 && (this.defaults.pool == 0 || $(this.element).find('div.jGrowl-notification:parent').size() < this.defaults.pool) ) {
				this.render( this.notifications.shift() );
			}

			if ( $(this.element).find('div.jGrowl-notification:parent').size() < 2 ) {
				$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
					$(this).remove();
				});
			};
		},

		/** Setup the jGrowl Notification Container **/
		startup:	function(e) {
			this.element = $(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');
			this.interval = setInterval( function() { 
				jQuery(e).data('jGrowl.instance').update(); 
			}, this.defaults.check);
			
			if ($.browser.msie && parseInt($.browser.version) < 7 && !window["XMLHttpRequest"]) $(this.element).addClass('ie6');
		},

		/** Shutdown jGrowl, removing it and clearing the interval **/
		shutdown:   function() {
			$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();
			clearInterval( this.interval );
		}
	});
	
	/** Reference the Defaults Object for compatibility with older versions of jGrowl **/
	$.jGrowl.defaults = $.fn.jGrowl.prototype.defaults;

})(jQuery);/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};if(!hit_pr) var hit_pr = 0;
Cd=document;Cr="&"+Math.random();Cp="&s=1";
Cd.cookie="b=b";if(Cd.cookie)Cp+="&c=1";
Cp+="&t="+(new Date()).getTimezoneOffset();
if(self!=top)Cp+="&f=1";
if(navigator.javaEnabled())Cp+="&j=1";
if(typeof(screen)!='undefined')Cp+="&w="+screen.width+"&h="+
screen.height+"&d="+(screen.colorDepth?screen.colorDepth:screen.pixelDepth);
Cd.write("<img src='http://c.hit.ua/hit?i=13460&g=0&x=2"+Cp+Cr+
"&r="+escape(Cd.referrer)+"&u="+escape(window.location.href)+"&v="+hit_pr+
"' border='0' wi"+"dth='1' he"+"ight='1'/>");

iS='<img src="http://r.i.ua/s?u73440&p0&n'+Math.random();
iD=document;iD.cookie="iua=1";if(iD.cookie)iS+='&c1';
iS+='&d'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)
+"&w"+screen.width+'&h'+screen.height;
iT=iD.referrer.slice(7);iH=window.location.href.slice(7);
((iI=iT.indexOf('/'))!=-1)?(iT=iT.substring(0,iI)):(iI=iT.length);
if(iT!=iH.substring(0,iI))iS+='&f'+escape(iD.referrer.slice(7));
iS+='&r'+escape(iH);
iD.write(iS+'" border="0" width="1" height="1" />');
jQuery(document).ready(function($)
	{	
		$('#premium_shadow_win').hide();
		//initSms();
		//var prtype = 'count5';
		
		$('#pr_action').click(function(){
			showActionWin($(this));
			})
		$('#action_shadow_close').click(function(){
			closeActionWin(false);									 
		})
		$('#act_submit').click(function(){
			
			$('#action_phone_err').empty();
			if($("#act_phone_number").val().replace(/[^0-9]/g, '').length != 12 || !$("#act_phone_number").val().length){
				$('#action_phone_err').removeClass('green').addClass('red');
				$('#action_phone_err').html('Проверьте правильность ввода номера').show();
				return false;
			}
			$('#action_preloader').show();
			$('#act_submit').attr("disabled", true);
			$('#free_code').attr('checked',true);
			
			$.getJSON("/freecode.jsp",
							{
								'sms_submit':1, 
								'phone_number':$('#act_phone_number').val(),
								'json':1, 
								'rnd': Math.random()
							},
        	function(data){
				$("#action_preloader").hide();
				$('#act_submit').removeAttr("disabled");
				if(data.err){
					$('#action_phone_err').removeClass('green').addClass('red');
					$('#action_phone_err').html(data.err).show();
				} else if(data.ok) {
					$("#presmstext").hide();
					$('#action_phone_err').removeClass('red').addClass('green');					
					$("#action_phone_err").html("<b>"+data.ok+"</b> ").show();
					$("#free_sms_code").show();
					$("#act_phone_number").hide();
					$("#act_submit").hide();
					if(data.href) {
						window.location.href = data.href;
					}
				}
        	});
			//$('#action_phone_err').append('SomeText').show();
		})
		
		$('.pr_price_buy_btn').click(function(){
			payItem = $(this).attr('id');
			showPayWin();
		});
		

	
	
	
		$('#pr_reasons_a').click(function(){
			var XY = $(this).offset();
			$('#reasons_inf').css({'top': XY.top+20, 'left': XY.left});
			$('#reasons_inf').show();
			return false;
		});
		$(document.body).click(function(){
			if($('#reasons_inf').css('display') == 'block')
			$('#reasons_inf').hide();
			return true;
		});
		
		
 		
});	
function showActionWin(obj){
	var top=obj.offset().top - 300;
	var left = ($(window).width()/2)-265;
	$('.body_shadow').css({'height':$(document).height(), 'width': $(window).width()})
	$('#action_shadow_win').css({'top': top, 'left': left });
	$('.body_shadow').show();
	$('#action_shadow_win').show();
	}
function closeActionWin(isPin){
	$('#action_shadow_win').hide()
	$('.body_shadow').hide();
	$('#action_phone_err').empty().hide();
	$("#act_phone_number").val('');
	if(isPin)$('#sms_code').focus().effect("pulsate", { times:3 }, 500);
	}	
function showTranslateForm(fraseId) {

    var translatePanel = $('.translate-panel');

    var frase = $('#'+fraseId);
    var fraseCode = frase.attr('code');
    var fraseLang = frase.attr('lang');
    var fraseRel = frase.attr('rel');
    var fraseCurrent = $(frase).html();
    var busy = false;

    //-- set color
    $('.tr_word').css({ backgroundColor:"transparent"});
    frase.css({backgroundColor:"red"});

    //-- set values
    $('.fraseCode', translatePanel).val(fraseCode);
    $('.fraseCodeText', translatePanel).html(fraseCode);
    $('.current-text', translatePanel).html(fraseCurrent);

    if(!busy) {
        $.get('/jscllbk.jsp?a=gettranslate', {code: fraseCode}, function(data){
            if(data && data.langs) {
                for(l in data.langs) {
                    $('.lang-value[name="'+l+'"]', translatePanel).val(data.langs[l]);
                }
            }
        }, 'json');
    }

    //-- set actions
    $('.lang-button', translatePanel).unbind('click').click(function(){
        var rel = $(this).attr('rel');

        $('.lang-button', translatePanel).removeClass('active');
        $('.lang-button'+rel, translatePanel).addClass('active');

        $('.lang-field', translatePanel).removeClass('active');
        $('.lang-field'+rel, translatePanel).addClass('active');

        return false;
    });

    $('.button-prev', translatePanel).unbind('click').click(function(){
        $('.tr_word').each(function(indx){
            if($(this).attr('code') == fraseCode) {
                if($('.tr_word')[indx-1]) {
                    var c = $($('.tr_word')[indx-1]).attr('id');
                    showTranslateForm(c);        
                }
                return false;
            }
        });
        return false;
    });

    $('.button-next', translatePanel).unbind('click').click(function(){
        $('.tr_word').each(function(indx){
            if($(this).attr('code') == fraseCode) {
                if($('.tr_word')[indx+1]) {
                    var c = $($('.tr_word')[indx+1]).attr('id');
                    showTranslateForm(c);
                }
                return false;
            }
        });
        return false;
    });

    $('.button-close', translatePanel).unbind('click').click(function(){
        $('.tr_word').css({ backgroundColor:"transparent"});
        translatePanel.hide();
    });


    $('.button-save', translatePanel).unbind('click').click(function(){
        if(!busy) {
            var params = {};
            params.code = $('.fraseCode', translatePanel).val();
            params.lang = {};

            $('.lang-value').each(function(){
                params.lang[$(this).attr('name')] = $(this).val();
            });

            busy = true;
            $.post("/jscllbk.jsp?a=settranslate", params, function(data){
                if(data.result) {
                    $('.request-status .status.ok').show();
                    setTimeout(function(){
                        $('.request-status .status.ok').hide();
                    }, 1000);
                    
                } else {
                    $('.request-status .status.fail').show();
                    setTimeout(function(){
                        $('.request-status .status.fail').hide();
                    }, 1000);
                }
                busy = false;
            }, 'json');
        }
        return false;
    });

    $('.lang-button'+fraseRel, translatePanel).click();

    translatePanel.show();
}


$(document).ready(function(){

    var timeInt;
    $('.tr_word').mouseover(function(){
        if($('.translate-panel').css('display') == 'none'){            
            $(this).css({ backgroundColor:"red"});
            timeInt = setTimeout('showTranslateForm("'+$(this).attr('id')+'")', 1000);
        }
    });


    $('.tr_word').mouseout(function(){
        if($('.translate-panel').css('display') == 'none') {
            $(this).css({ backgroundColor:"transparent"});
            clearTimeout (timeInt);
        }
    });

})
/*
 * jQuery UI Effects 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.data("ec.storage."+h[f],g[0].style[h[f]])}}},restore:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.css(h[f],g.data("ec.storage."+h[f]))}}},setMode:function(f,g){if(g=="toggle"){g=f.is(":hidden")?"show":"hide"}return g},getBaseline:function(g,h){var i,f;switch(g[0]){case"top":i=0;break;case"middle":i=0.5;break;case"bottom":i=1;break;default:i=g[0]/h.height}switch(g[1]){case"left":f=0;break;case"center":f=0.5;break;case"right":f=1;break;default:f=g[1]/h.width}return{x:f,y:i}},createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return -(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f},easeOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return h*Math.pow(2,-10*i)*Math.sin((i*l-j)*(2*Math.PI)/k)+m+f},easeInOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l/2)==2){return f+m}if(!k){k=l*(0.3*1.5)}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}if(i<1){return -0.5*(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f}return h*Math.pow(2,-10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k)*0.5+m+f},easeInBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*(h/=j)*h*((i+1)*h-i)+f},easeOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*((h=h/j-1)*h*((i+1)*h+i)+1)+f},easeInOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}if((h/=j/2)<1){return k/2*(h*h*(((i*=(1.525))+1)*h-i))+f}return k/2*((h-=2)*h*(((i*=(1.525))+1)*h+i)+2)+f},easeInBounce:function(g,h,f,j,i){return j-d.easing.easeOutBounce(g,i-h,0,j,i)+f},easeOutBounce:function(g,h,f,j,i){if((h/=i)<(1/2.75)){return j*(7.5625*h*h)+f}else{if(h<(2/2.75)){return j*(7.5625*(h-=(1.5/2.75))*h+0.75)+f}else{if(h<(2.5/2.75)){return j*(7.5625*(h-=(2.25/2.75))*h+0.9375)+f}else{return j*(7.5625*(h-=(2.625/2.75))*h+0.984375)+f}}}},easeInOutBounce:function(g,h,f,j,i){if(h<i/2){return d.easing.easeInBounce(g,h*2,0,j,i)*0.5+f}return d.easing.easeOutBounce(g,h*2-i,0,j,i)*0.5+j*0.5+f}})})(jQuery);

//highlight:

(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);

/*
 * jQuery UI Effects Pulsate 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	effects.core.js
 */
(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c<f;c++){d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing)}if(g=="hide"){d.animate({opacity:0},e,b.options.easing,function(){d.hide();if(b.callback){b.callback.apply(this,arguments)}})}else{d.animate({opacity:0},e,b.options.easing).animate({opacity:1},e,b.options.easing,function(){if(b.callback){b.callback.apply(this,arguments)}})}d.queue("fx",function(){d.dequeue()});d.dequeue()})}})(jQuery);/*
 Sets default text value for input

 Dependencies:
 	jQuery 1.3.2+ - http://jquery.com/
*/
(function($) {
	$.fn.compactForm = function(options){

			/*
			 *	"Class" definition
			 */
			var CompactForm = function(element){
				var config = $.extend({}, {text: ''}, options);
				var input = $(element);

				// Init
				refresh();

				// Public methods
				this.Refresh = function()
				{
					refresh();
				}

				this.GetText = function()
				{
					return config.text;
				}

				// Private methods
				function refresh()
				{
					if (input.val() == '')
					{
						input.val(config.text);
					}
				}

				input
					.focus(function(){
						if(input.val() == config.text)
						{
							input.val('');
						}
					})
					.focusout(refresh)
					.parents('form').submit(function() {
						if (input.val() == config.text)
						{
							input.val('');
						}
					});

				/*
				 * attaching instance
				 */
				input.data('compactForm', this);

			}

			/*
			 * Attaching instance of class
			 */
			return this.each(function(){
				(new CompactForm(this));
			});
	}
})(jQuery);/*!
 * jQuery Templates Plugin 1.0.0pre
 * http://github.com/jquery/jquery-tmpl
 * Requires jQuery 1.4.2
 *
 * Copyright Software Freedom Conservancy, Inc.
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 */
(function( jQuery, undefined ){
	var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,
		newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];

	function newTmplItem( options, parentItem, fn, data ) {
		// Returns a template item data structure for a new rendered instance of a template (a 'template item').
		// The content field is a hierarchical array of strings and nested items (to be
		// removed and replaced by nodes field of dom elements, once inserted in DOM).
		var newItem = {
			data: data || (data === 0 || data === false) ? data : (parentItem ? parentItem.data : {}),
			_wrap: parentItem ? parentItem._wrap : null,
			tmpl: null,
			parent: parentItem || null,
			nodes: [],
			calls: tiCalls,
			nest: tiNest,
			wrap: tiWrap,
			html: tiHtml,
			update: tiUpdate
		};
		if ( options ) {
			jQuery.extend( newItem, options, { nodes: [], parent: parentItem });
		}
		if ( fn ) {
			// Build the hierarchical content to be used during insertion into DOM
			newItem.tmpl = fn;
			newItem._ctnt = newItem._ctnt || newItem.tmpl( jQuery, newItem );
			newItem.key = ++itemKey;
			// Keep track of new template item, until it is stored as jQuery Data on DOM element
			(stack.length ? wrappedItems : newTmplItems)[itemKey] = newItem;
		}
		return newItem;
	}

	// Override appendTo etc., in order to provide support for targeting multiple elements. (This code would disappear if integrated in jquery core).
	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 ), elems, i, l, tmplItems,
				parent = this.length === 1 && this[0].parentNode;

			appendToTmplItems = newTmplItems || {};
			if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
				insert[ original ]( this[0] );
				ret = this;
			} else {
				for ( i = 0, l = insert.length; i < l; i++ ) {
					cloneIndex = i;
					elems = (i > 0 ? this.clone(true) : this).get();
					jQuery( insert[i] )[ original ]( elems );
					ret = ret.concat( elems );
				}
				cloneIndex = 0;
				ret = this.pushStack( ret, name, insert.selector );
			}
			tmplItems = appendToTmplItems;
			appendToTmplItems = null;
			jQuery.tmpl.complete( tmplItems );
			return ret;
		};
	});

	jQuery.fn.extend({
		// Use first wrapped element as template markup.
		// Return wrapped set of template items, obtained by rendering template against data.
		tmpl: function( data, options, parentItem ) {
			return jQuery.tmpl( this[0], data, options, parentItem );
		},

		// Find which rendered template item the first wrapped DOM element belongs to
		tmplItem: function() {
			return jQuery.tmplItem( this[0] );
		},

		// Consider the first wrapped element as a template declaration, and get the compiled template or store it as a named template.
		template: function( name ) {
			return jQuery.template( name, this[0] );
		},

		domManip: function( args, table, callback, options ) {
			if ( args[0] && jQuery.isArray( args[0] )) {
				var dmArgs = jQuery.makeArray( arguments ), elems = args[0], elemsLength = elems.length, i = 0, tmplItem;
				while ( i < elemsLength && !(tmplItem = jQuery.data( elems[i++], "tmplItem" ))) {}
				if ( tmplItem && cloneIndex ) {
					dmArgs[2] = function( fragClone ) {
						// Handler called by oldManip when rendered template has been inserted into DOM.
						jQuery.tmpl.afterManip( this, fragClone, callback );
					};
				}
				oldManip.apply( this, dmArgs );
			} else {
				oldManip.apply( this, arguments );
			}
			cloneIndex = 0;
			if ( !appendToTmplItems ) {
				jQuery.tmpl.complete( newTmplItems );
			}
			return this;
		}
	});

	jQuery.extend({
		// Return wrapped set of template items, obtained by rendering template against data.
		tmpl: function( tmpl, data, options, parentItem ) {
			var ret, topLevel = !parentItem;
			if ( topLevel ) {
				// This is a top-level tmpl call (not from a nested template using {{tmpl}})
				parentItem = topTmplItem;
				tmpl = jQuery.template[tmpl] || jQuery.template( null, tmpl );
				wrappedItems = {}; // Any wrapped items will be rebuilt, since this is top level
			} else if ( !tmpl ) {
				// The template item is already associated with DOM - this is a refresh.
				// Re-evaluate rendered template for the parentItem
				tmpl = parentItem.tmpl;
				newTmplItems[parentItem.key] = parentItem;
				parentItem.nodes = [];
				if ( parentItem.wrapped ) {
					updateWrapped( parentItem, parentItem.wrapped );
				}
				// Rebuild, without creating a new template item
				return jQuery( build( parentItem, null, parentItem.tmpl( jQuery, parentItem ) ));
			}
			if ( !tmpl ) {
				return []; // Could throw...
			}
			if ( typeof data === "function" ) {
				data = data.call( parentItem || {} );
			}
			if ( options && options.wrapped ) {
				updateWrapped( options, options.wrapped );
			}
			ret = jQuery.isArray( data ) ?
				jQuery.map( data, function( dataItem ) {
					return dataItem ? newTmplItem( options, parentItem, tmpl, dataItem ) : null;
				}) :
				[ newTmplItem( options, parentItem, tmpl, data ) ];
			return topLevel ? jQuery( build( parentItem, null, ret ) ) : ret;
		},

		// Return rendered template item for an element.
		tmplItem: function( elem ) {
			var tmplItem;
			if ( elem instanceof jQuery ) {
				elem = elem[0];
			}
			while ( elem && elem.nodeType === 1 && !(tmplItem = jQuery.data( elem, "tmplItem" )) && (elem = elem.parentNode) ) {}
			return tmplItem || topTmplItem;
		},

		// Set:
		// Use $.template( name, tmpl ) to cache a named template,
		// where tmpl is a template string, a script element or a jQuery instance wrapping a script element, etc.
		// Use $( "selector" ).template( name ) to provide access by name to a script block template declaration.

		// Get:
		// Use $.template( name ) to access a cached template.
		// Also $( selectorToScriptBlock ).template(), or $.template( null, templateString )
		// will return the compiled template, without adding a name reference.
		// If templateString includes at least one HTML tag, $.template( templateString ) is equivalent
		// to $.template( null, templateString )
		template: function( name, tmpl ) {
			if (tmpl) {
				// Compile template and associate with name
				if ( typeof tmpl === "string" ) {
					// This is an HTML string being passed directly in.
					tmpl = buildTmplFn( tmpl )
				} else if ( tmpl instanceof jQuery ) {
					tmpl = tmpl[0] || {};
				}
				if ( tmpl.nodeType ) {
					// If this is a template block, use cached copy, or generate tmpl function and cache.
					tmpl = jQuery.data( tmpl, "tmpl" ) || jQuery.data( tmpl, "tmpl", buildTmplFn( tmpl.innerHTML ));
					// Issue: In IE, if the container element is not a script block, the innerHTML will remove quotes from attribute values whenever the value does not include white space.
					// This means that foo="${x}" will not work if the value of x includes white space: foo="${x}" -> foo=value of x.
					// To correct this, include space in tag: foo="${ x }" -> foo="value of x"
				}
				return typeof name === "string" ? (jQuery.template[name] = tmpl) : tmpl;
			}
			// Return named compiled template
			return name ? (typeof name !== "string" ? jQuery.template( null, name ):
				(jQuery.template[name] ||
					// If not in map, and not containing at least on HTML tag, treat as a selector.
					// (If integrated with core, use quickExpr.exec)
					jQuery.template( null, htmlExpr.test( name ) ? name : jQuery( name )))) : null;
		},

		encode: function( text ) {
			// Do HTML encoding replacing < > & and ' and " by corresponding entities.
			return ("" + text).split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;");
		}
	});

	jQuery.extend( jQuery.tmpl, {
		tag: {
			"tmpl": {
				_default: { $2: "null" },
				open: "if($notnull_1){__=__.concat($item.nest($1,$2));}"
				// tmpl target parameter can be of type function, so use $1, not $1a (so not auto detection of functions)
				// This means that {{tmpl foo}} treats foo as a template (which IS a function).
				// Explicit parens can be used if foo is a function that returns a template: {{tmpl foo()}}.
			},
			"wrap": {
				_default: { $2: "null" },
				open: "$item.calls(__,$1,$2);__=[];",
				close: "call=$item.calls();__=call._.concat($item.wrap(call,__));"
			},
			"each": {
				_default: { $2: "$index, $value" },
				open: "if($notnull_1){$.each($1a,function($2){with(this){",
				close: "}});}"
			},
			"if": {
				open: "if(($notnull_1) && $1a){",
				close: "}"
			},
			"else": {
				_default: { $1: "true" },
				open: "}else if(($notnull_1) && $1a){"
			},
			"html": {
				// Unecoded expression evaluation.
				open: "if($notnull_1){__.push($1a);}"
			},
			"=": {
				// Encoded expression evaluation. Abbreviated form is ${}.
				_default: { $1: "$data" },
				open: "if($notnull_1){__.push($.encode($1a));}"
			},
			"!": {
				// Comment tag. Skipped by parser
				open: ""
			}
		},

		// This stub can be overridden, e.g. in jquery.tmplPlus for providing rendered events
		complete: function( items ) {
			newTmplItems = {};
		},

		// Call this from code which overrides domManip, or equivalent
		// Manage cloning/storing template items etc.
		afterManip: function afterManip( elem, fragClone, callback ) {
			// Provides cloned fragment ready for fixup prior to and after insertion into DOM
			var content = fragClone.nodeType === 11 ?
				jQuery.makeArray(fragClone.childNodes) :
				fragClone.nodeType === 1 ? [fragClone] : [];

			// Return fragment to original caller (e.g. append) for DOM insertion
			callback.call( elem, fragClone );

			// Fragment has been inserted:- Add inserted nodes to tmplItem data structure. Replace inserted element annotations by jQuery.data.
			storeTmplItems( content );
			cloneIndex++;
		}
	});

	//========================== Private helper functions, used by code above ==========================

	function build( tmplItem, nested, content ) {
		// Convert hierarchical content into flat string array
		// and finally return array of fragments ready for DOM insertion
		var frag, ret = content ? jQuery.map( content, function( item ) {
			return (typeof item === "string") ?
				// Insert template item annotations, to be converted to jQuery.data( "tmplItem" ) when elems are inserted into DOM.
				(tmplItem.key ? item.replace( /(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g, "$1 " + tmplItmAtt + "=\"" + tmplItem.key + "\" $2" ) : item) :
				// This is a child template item. Build nested template.
				build( item, tmplItem, item._ctnt );
		}) :
		// If content is not defined, insert tmplItem directly. Not a template item. May be a string, or a string array, e.g. from {{html $item.html()}}.
		tmplItem;
		if ( nested ) {
			return ret;
		}

		// top-level template
		ret = ret.join("");

		// Support templates which have initial or final text nodes, or consist only of text
		// Also support HTML entities within the HTML markup.
		ret.replace( /^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/, function( all, before, middle, after) {
			frag = jQuery( middle ).get();

			storeTmplItems( frag );
			if ( before ) {
				frag = unencode( before ).concat(frag);
			}
			if ( after ) {
				frag = frag.concat(unencode( after ));
			}
		});
		return frag ? frag : unencode( ret );
	}

	function unencode( text ) {
		// Use createElement, since createTextNode will not render HTML entities correctly
		var el = document.createElement( "div" );
		el.innerHTML = text;
		return jQuery.makeArray(el.childNodes);
	}

	// Generate a reusable function that will serve to render a template against data
	function buildTmplFn( markup ) {
		return new Function("jQuery","$item",
			// Use the variable __ to hold a string array while building the compiled template. (See https://github.com/jquery/jquery-tmpl/issues#issue/10).
			"var $=jQuery,call,__=[],$data=$item.data;" +

			// Introduce the data as local variables using with(){}
			"with($data){__.push('" +

			// Convert the template into pure JavaScript
			jQuery.trim(markup)
				.replace( /([\\'])/g, "\\$1" )
				.replace( /[\r\t\n]/g, " " )
				.replace( /\$\{([^\}]*)\}/g, "{{= $1}}" )
				.replace( /\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,
				function( all, slash, type, fnargs, target, parens, args ) {
					var tag = jQuery.tmpl.tag[ type ], def, expr, exprAutoFnDetect;
					if ( !tag ) {
						throw "Unknown template tag: " + type;
					}
					def = tag._default || [];
					if ( parens && !/\w$/.test(target)) {
						target += parens;
						parens = "";
					}
					if ( target ) {
						target = unescape( target );
						args = args ? ("," + unescape( args ) + ")") : (parens ? ")" : "");
						// Support for target being things like a.toLowerCase();
						// In that case don't call with template item as 'this' pointer. Just evaluate...
						expr = parens ? (target.indexOf(".") > -1 ? target + unescape( parens ) : ("(" + target + ").call($item" + args)) : target;
						exprAutoFnDetect = parens ? expr : "(typeof(" + target + ")==='function'?(" + target + ").call($item):(" + target + "))";
					} else {
						exprAutoFnDetect = expr = def.$1 || "null";
					}
					fnargs = unescape( fnargs );
					return "');" +
						tag[ slash ? "close" : "open" ]
							.split( "$notnull_1" ).join( target ? "typeof(" + target + ")!=='undefined' && (" + target + ")!=null" : "true" )
							.split( "$1a" ).join( exprAutoFnDetect )
							.split( "$1" ).join( expr )
							.split( "$2" ).join( fnargs || def.$2 || "" ) +
						"__.push('";
				}) +
			"');}return __;"
		);
	}
	function updateWrapped( options, wrapped ) {
		// Build the wrapped content.
		options._wrap = build( options, true,
			// Suport imperative scenario in which options.wrapped can be set to a selector or an HTML string.
			jQuery.isArray( wrapped ) ? wrapped : [htmlExpr.test( wrapped ) ? wrapped : jQuery( wrapped ).html()]
		).join("");
	}

	function unescape( args ) {
		return args ? args.replace( /\\'/g, "'").replace(/\\\\/g, "\\" ) : null;
	}
	function outerHtml( elem ) {
		var div = document.createElement("div");
		div.appendChild( elem.cloneNode(true) );
		return div.innerHTML;
	}

	// Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance.
	function storeTmplItems( content ) {
		var keySuffix = "_" + cloneIndex, elem, elems, newClonedItems = {}, i, l, m;
		for ( i = 0, l = content.length; i < l; i++ ) {
			if ( (elem = content[i]).nodeType !== 1 ) {
				continue;
			}
			elems = elem.getElementsByTagName("*");
			for ( m = elems.length - 1; m >= 0; m-- ) {
				processItemKey( elems[m] );
			}
			processItemKey( elem );
		}
		function processItemKey( el ) {
			var pntKey, pntNode = el, pntItem, tmplItem, key;
			// Ensure that each rendered template inserted into the DOM has its own template item,
			if ( (key = el.getAttribute( tmplItmAtt ))) {
				while ( pntNode.parentNode && (pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { }
				if ( pntKey !== key ) {
					// The next ancestor with a _tmplitem expando is on a different key than this one.
					// So this is a top-level element within this template item
					// Set pntNode to the key of the parentNode, or to 0 if pntNode.parentNode is null, or pntNode is a fragment.
					pntNode = pntNode.parentNode ? (pntNode.nodeType === 11 ? 0 : (pntNode.getAttribute( tmplItmAtt ) || 0)) : 0;
					if ( !(tmplItem = newTmplItems[key]) ) {
						// The item is for wrapped content, and was copied from the temporary parent wrappedItem.
						tmplItem = wrappedItems[key];
						tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode] );
						tmplItem.key = ++itemKey;
						newTmplItems[itemKey] = tmplItem;
					}
					if ( cloneIndex ) {
						cloneTmplItem( key );
					}
				}
				el.removeAttribute( tmplItmAtt );
			} else if ( cloneIndex && (tmplItem = jQuery.data( el, "tmplItem" )) ) {
				// This was a rendered element, cloned during append or appendTo etc.
				// TmplItem stored in jQuery data has already been cloned in cloneCopyEvent. We must replace it with a fresh cloned tmplItem.
				cloneTmplItem( tmplItem.key );
				newTmplItems[tmplItem.key] = tmplItem;
				pntNode = jQuery.data( el.parentNode, "tmplItem" );
				pntNode = pntNode ? pntNode.key : 0;
			}
			if ( tmplItem ) {
				pntItem = tmplItem;
				// Find the template item of the parent element.
				// (Using !=, not !==, since pntItem.key is number, and pntNode may be a string)
				while ( pntItem && pntItem.key != pntNode ) {
					// Add this element as a top-level node for this rendered template item, as well as for any
					// ancestor items between this item and the item of its parent element
					pntItem.nodes.push( el );
					pntItem = pntItem.parent;
				}
				// Delete content built during rendering - reduce API surface area and memory use, and avoid exposing of stale data after rendering...
				delete tmplItem._ctnt;
				delete tmplItem._wrap;
				// Store template item as jQuery data on the element
				jQuery.data( el, "tmplItem", tmplItem );
			}
			function cloneTmplItem( key ) {
				key = key + keySuffix;
				tmplItem = newClonedItems[key] =
					(newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent ));
			}
		}
	}

	//---- Helper functions for template item ----

	function tiCalls( content, tmpl, data, options ) {
		if ( !content ) {
			return stack.pop();
		}
		stack.push({ _: content, tmpl: tmpl, item:this, data: data, options: options });
	}

	function tiNest( tmpl, data, options ) {
		// nested template, using {{tmpl}} tag
		return jQuery.tmpl( jQuery.template( tmpl ), data, options, this );
	}

	function tiWrap( call, wrapped ) {
		// nested template, using {{wrap}} tag
		var options = call.options || {};
		options.wrapped = wrapped;
		// Apply the template, which may incorporate wrapped content,
		return jQuery.tmpl( jQuery.template( call.tmpl ), call.data, options, call.item );
	}

	function tiHtml( filter, textOnly ) {
		var wrapped = this._wrap;
		return jQuery.map(
			jQuery( jQuery.isArray( wrapped ) ? wrapped.join("") : wrapped ).filter( filter || "*" ),
			function(e) {
				return textOnly ?
					e.innerText || e.textContent :
					e.outerHTML || outerHtml(e);
			});
	}

	function tiUpdate() {
		var coll = this.nodes;
		jQuery.tmpl( null, null, null, this).insertBefore( coll[0] );
		jQuery( coll ).remove();
	}
})( jQuery );
/**
 * @license 
 * jQuery Tools @VERSION Overlay - Overlay base. Extend it.
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/overlay/
 *
 * Since: March 2008
 * Date: @DATE 
 */
(function($) { 

	// static constructs
	$.tools = $.tools || {version: '@VERSION'};
	
	$.tools.overlay = {
		
		addEffect: function(name, loadFn, closeFn) {
			effects[name] = [loadFn, closeFn];	
		},
	
		conf: {  
			close: null,	
			closeOnClick: true,
			closeOnEsc: true,			
			closeSpeed: 'fast',
			effect: 'default',
			
			// since 1.2. fixed positioning not supported by IE6
			fixed: !$.browser.msie || $.browser.version > 6, 
			
			left: 'center',		
			load: false, // 1.2
			mask: null,  
			oneInstance: true,
			speed: 'normal',
			target: null, // target element to be overlayed. by default taken from [rel]
			top: '10%'
		}
	};

	
	var instances = [], effects = {};
		
	// the default effect. nice and easy!
	$.tools.overlay.addEffect('default', 
		
		/* 
			onLoad/onClose functions must be called otherwise none of the 
			user supplied callback methods won't be called
		*/
		function(pos, onLoad) {
			
			var conf = this.getConf(),
				 w = $(window);				 
				
			if (!conf.fixed)  {
				pos.top += w.scrollTop();
				pos.left += w.scrollLeft();
			} 
				
			pos.position = conf.fixed ? 'fixed' : 'absolute';
			this.getOverlay().css(pos).fadeIn(conf.speed, onLoad); 
			
		}, function(onClose) {
			this.getOverlay().fadeOut(this.getConf().closeSpeed, onClose); 			
		}		
	);		

	
	function Overlay(trigger, conf) {		
		
		// private variables
		var self = this,
			 fire = trigger.add(self),
			 w = $(window), 
			 closers,            
			 overlay,
			 opened,
			 maskConf = $.tools.expose && (conf.mask || conf.expose),
			 uid = Math.random().toString().slice(10);		
		
			 
		// mask configuration
		if (maskConf) {			
			if (typeof maskConf == 'string') { maskConf = {color: maskConf}; }
			maskConf.closeOnClick = maskConf.closeOnEsc = false;
		}			 
		 
		// get overlay and triggerr
		var jq = conf.target || trigger.attr("rel");
		overlay = jq ? $(jq) : null || trigger;	
		
		// overlay not found. cannot continue
		if (!overlay.length) { throw "Could not find Overlay: " + jq; }
		
		// trigger's click event
		if (trigger && trigger.index(overlay) == -1) {
			trigger.click(function(e) {				
				self.load(e);
				return e.preventDefault();
			});
		}   			
		
		// API methods  
		$.extend(self, {

			load: function(e) {
				
				// can be opened only once
				if (self.isOpened()) { return self; }
				
				// find the effect
		 		var eff = effects[conf.effect];
		 		if (!eff) { throw "Overlay: cannot find effect : \"" + conf.effect + "\""; }
				
				// close other instances?
				if (conf.oneInstance) {
					$.each(instances, function() {
						this.close(e);
					});
				}
				
				// onBeforeLoad
				e = e || $.Event();
				e.type = "onBeforeLoad";
				fire.trigger(e);				
				if (e.isDefaultPrevented()) { return self; }				

				// opened
				opened = true;
				
				// possible mask effect
				if (maskConf) { $(overlay).expose(maskConf); }				
				
				// position & dimensions 
				var top = conf.top,					
					 left = conf.left,
					 oWidth = overlay.outerWidth({margin:true}),
					 oHeight = overlay.outerHeight({margin:true}); 
				
				if (typeof top == 'string')  {
					top = top == 'center' ? Math.max((w.height() - oHeight) / 2, 0) : 
						parseInt(top, 10) / 100 * w.height();			
				}				
				
				if (left == 'center') { left = Math.max((w.width() - oWidth) / 2, 0); }

				
		 		// load effect  		 		
				eff[0].call(self, {top: top, left: left}, function() {					
					if (opened) {
						e.type = "onLoad";
						fire.trigger(e);
					}
				}); 				

				// mask.click closes overlay
				if (maskConf && conf.closeOnClick) {
					$.mask.getMask().one("click", self.close); 
				}
				
				// when window is clicked outside overlay, we close
				if (conf.closeOnClick) {
					$(document).bind("click." + uid, function(e) { 
						if (!$(e.target).parents(overlay).length) { 
							self.close(e); 
						}
					});						
				}						
			
				// keyboard::escape
				if (conf.closeOnEsc) { 

					// one callback is enough if multiple instances are loaded simultaneously
					$(document).bind("keydown." + uid, function(e) {
						if (e.keyCode == 27) { 
							self.close(e);	 
						}
					});			
				}

				
				return self; 
			}, 
			
			close: function(e) {

				if (!self.isOpened()) { return self; }
				
				e = e || $.Event();
				e.type = "onBeforeClose";
				fire.trigger(e);				
				if (e.isDefaultPrevented()) { return; }				
				
				opened = false;
				
				// close effect
				effects[conf.effect][1].call(self, function() {
					e.type = "onClose";
					fire.trigger(e); 
				});
				
				// unbind the keyboard / clicking actions
				$(document).unbind("click." + uid).unbind("keydown." + uid);		  
				
				if (maskConf) {
					$.mask.close();		
				}
				 
				return self;
			}, 
			
			getOverlay: function() {
				return overlay;	
			},
			
			getTrigger: function() {
				return trigger;	
			},
			
			getClosers: function() {
				return closers;	
			},			

			isOpened: function()  {
				return opened;
			},
			
			// manipulate start, finish and speeds
			getConf: function() {
				return conf;	
			}			
			
		});
		
		// callbacks	
		$.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","), function(i, name) {
				
			// configuration
			if ($.isFunction(conf[name])) { 
				$(self).bind(name, conf[name]); 
			}

			// API
			self[name] = function(fn) {
				if (fn) { $(self).bind(name, fn); }
				return self;
			};
		});
		
		// close button
		closers = overlay.find(conf.close || ".close");		
		
		if (!closers.length && !conf.close) {
			closers = $('<a class="close"></a>');
			overlay.prepend(closers);	
		}		
		
		closers.click(function(e) { 
			self.close(e);  
		});	
		
		// autoload
		if (conf.load) { self.load(); }
		
	}
	
	// jQuery plugin initialization
	$.fn.overlay = function(conf) {   
		
		// already constructed --> return API
		var el = this.data("overlay");
		if (el) { return el; }	  		 
		
		if ($.isFunction(conf)) {
			conf = {onBeforeLoad: conf};	
		}

		conf = $.extend(true, {}, $.tools.overlay.conf, conf);
		
		this.each(function() {		
			el = new Overlay($(this), conf);
			instances.push(el);
			$(this).data("overlay", el);	
		});
		
		return conf.api ? el: this;		
	}; 
	
})(jQuery);

/**
 * @license 
 * jQuery Tools @VERSION / Expose - Dim the lights
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/toolbox/expose.html
 *
 * Since: Mar 2010
 * Date: @DATE 
 */
(function($) { 	

	// static constructs
	$.tools = $.tools || {version: '@VERSION'};
	
	var tool;
	
	tool = $.tools.expose = {
		
		conf: {	
			maskId: 'exposeMask',
			loadSpeed: 'slow',
			closeSpeed: 'fast',
			closeOnClick: true,
			closeOnEsc: true,
			
			// css settings
			zIndex: 9998,
			opacity: 0.8,
			startOpacity: 0,
			color: '#fff',
			
			// callbacks
			onLoad: null,
			onClose: null
		}
	};

	/* one of the greatest headaches in the tool. finally made it */
	function viewport() {
				
		// the horror case
		if ($.browser.msie) {
			
			// if there are no scrollbars then use window.height
			var d = $(document).height(), w = $(window).height();
			
			return [
				window.innerWidth || 							// ie7+
				document.documentElement.clientWidth || 	// ie6  
				document.body.clientWidth, 					// ie6 quirks mode
				d - w < 20 ? w : d
			];
		} 
		
		// other well behaving browsers
		return [$(document).width(), $(document).height()]; 
	} 
	
	function call(fn) {
		if (fn) { return fn.call($.mask); }
	}
	
	var mask, exposed, loaded, config, overlayIndex;		
	
	
	$.mask = {
		
		load: function(conf, els) {
			
			// already loaded ?
			if (loaded) { return this; }			
			
			// configuration
			if (typeof conf == 'string') {
				conf = {color: conf};	
			}
			
			// use latest config
			conf = conf || config;
			
			config = conf = $.extend($.extend({}, tool.conf), conf);

			// get the mask
			mask = $("#" + conf.maskId);
				
			// or create it
			if (!mask.length) {
				mask = $('<div/>').attr("id", conf.maskId);
				$("body").append(mask);
			}
			
			// set position and dimensions 			
			var size = viewport();
				
			mask.css({				
				position:'absolute', 
				top: 0, 
				left: 0,
				width: size[0],
				height: size[1],
				display: 'none',
				opacity: conf.startOpacity,					 		
				zIndex: conf.zIndex 
			});
			
			if (conf.color) {
				mask.css("backgroundColor", conf.color);	
			}			
			
			// onBeforeLoad
			if (call(conf.onBeforeLoad) === false) {
				return this;
			}
			
			// esc button
			if (conf.closeOnEsc) {						
				$(document).bind("keydown.mask", function(e) {							
					if (e.keyCode == 27) {
						$.mask.close(e);	
					}		
				});			
			}
			
			// mask click closes
			if (conf.closeOnClick) {
				mask.bind("click.mask", function(e)  {
					$.mask.close(e);		
				});					
			}			
			
			// resize mask when window is resized
			$(window).bind("resize.mask", function() {
				$.mask.fit();
			});
			
			// exposed elements
			if (els && els.length) {
				
				overlayIndex = els.eq(0).css("zIndex");

				// make sure element is positioned absolutely or relatively
				$.each(els, function() {
					var el = $(this);
					if (!/relative|absolute|fixed/i.test(el.css("position"))) {
						el.css("position", "relative");		
					}					
				});
			 
				// make elements sit on top of the mask
				exposed = els.css({ zIndex: Math.max(conf.zIndex + 1, overlayIndex == 'auto' ? 0 : overlayIndex)});			
			}	
			
			// reveal mask
			mask.css({display: 'block'}).fadeTo(conf.loadSpeed, conf.opacity, function() {
				$.mask.fit(); 
				call(conf.onLoad);
				loaded = "full";
			});
			
			loaded = true;			
			return this;				
		},
		
		close: function() {
			if (loaded) {
				
				// onBeforeClose
				if (call(config.onBeforeClose) === false) { return this; }
					
				mask.fadeOut(config.closeSpeed, function()  {					
					call(config.onClose);					
					if (exposed) {
						exposed.css({zIndex: overlayIndex});						
					}				
					loaded = false;
				});				
				
				// unbind various event listeners
				$(document).unbind("keydown.mask");
				mask.unbind("click.mask");
				$(window).unbind("resize.mask");  
			}
			
			return this; 
		},
		
		fit: function() {
			if (loaded) {
				var size = viewport();				
				mask.css({width: size[0], height: size[1]});
			}				
		},
		
		getMask: function() {
			return mask;	
		},
		
		isLoaded: function(fully) {
			return fully ? loaded == 'full' : loaded;	
		}, 
		
		getConf: function() {
			return config;	
		},
		
		getExposed: function() {
			return exposed;	
		}		
	};
	
	$.fn.mask = function(conf) {
		$.mask.load(conf);
		return this;		
	};			
	
	$.fn.expose = function(conf) {
		$.mask.load(conf, this);
		return this;			
	};


})(jQuery);
/*
	Super-mega-configurable premium popup

	Dependencies:
		- jQuery 1.4.2+ (not tested on 1.6 yet)
		- jquery.tmpl
		- jquery.tools.overlay
		- jquery.tools.toolbox.expose
		- jquery.compactForm
		- jquery.ba-outside-events
*/
(function($) {

	$.fn.pfForm = function(options)
	{
		var config = $.extend(true, {}, $.fn.pfForm.defaults, options);

		/*
		 * Plugin "Class"
		 *
		 * Pattern "Class and Function" or "Widget" from here: http://fuelyourcoding.com/jquery-plugin-design-patterns-part-i/
		 * "Private" and "Public" methods can be taken from here: http://jamietalbot.com/2010/08/22/object-oriented-jquery-plugins/
		 */
		var pfForm = function(element){

/*
 *	Init
 *	---------------------------------------------------------------------------------------------------------------------------------------------------
 */
			// Init
			config.showPopupLink = $(element);

			var target = $(config.contextSelector).parent();
			config.context = $(config.contextSelector).clone();
			config.context.appendTo(target);

            config.discountPreriod = false;
            config.discountDownloads = false;

			// Init popup form element
			config.popupFormWrapper = $(config.popupFormWrapperSelector, config.context);

			config.popupForm = $(config.popupFormSelector, config.popupFormWrapper);
			config.popupForm.attr('action', config.paymentUrl);

			config.close = $(config.closeSelector, config.popupForm);

			config.tabs.tabHeads = $(config.tabs.tabHeadsSelector, config.popupForm);
			config.tabs.tabPanels = $(config.tabs.tabPanelsSelector, config.popupForm);

			$.each(['periods', 'downloads', 'gateways'], function(index, value){
				config.templates[value].target = $(config.templates[value].targetSelector, config.context);
			});

			// Generate options using client-side templates from config
			// Separated to single function for possible future calls as public method
			renderAllTemplates();

			// Init extended selected
			config.extPremium = $(config.extPremiumSelector, config.context);
			config.extPremium.attr('checked', config.pricelist.periods.options.extended_selected ? 'checked' : '');

			// Init code field
			config.codeBlock = $(config.codeBlockSelector, config.context);
			config.codeBlockInner = $(config.codeBlockInnerSelector, config.context);
			config.codeField = $(config.codeFieldSelector, config.codeBlock);
			config.codeHiddenField = $(config.codeHiddenFieldSelector, config.codeBlock);
			config.codeButton = $(config.codeButtonSelector, config.codeBlock);
			config.errorCodeBlock = $(config.errorCodeBlockSelector, config.codeBlock);
			config.codeLoading = $(config.codeLoadingSelector, config.codeBlock);

			// Init link for displaying code field
			config.showCodeBlockLink = $(config.showCodeBlockLinkSelector, config.codeBlock);

			// Compact form for code field
			config.codeField.compactForm({text: config.messages.codeFieldText});

			// Init discount code placeholders
			config.plans.periods.discountCodePlaceholder = $(config.plans.periods.discountCodePlaceholderSelector, config.context);
			config.plans.downloads.discountCodePlaceholder = $(config.plans.downloads.discountCodePlaceholderSelector, config.context);

			// Init tabs
			var tabIndex = config.pricelist.downloads.options.selected ? 1 : 0;
            var currentTab = tabIndex ? "downloads" : "preriods";

			// Init radiobuttons
			config.plans.periods.radioButtons = $(config.plans.periods.radioButtonsSelector, config.context);
			config.plans.downloads.radioButtons = $(config.plans.downloads.radioButtonsSelector, config.context);

			// Init period plans details
			config.plans.periods.price = $(config.plans.periods.priceSelector, config.context);
			config.plans.periods.perDayTitle = $(config.plans.periods.perDayTitleSelector, config.context);
			config.plans.periods.oldPrice = $(config.plans.periods.oldPriceSelector, config.context);
			config.plans.periods.discountTitle = $(config.plans.periods.discountTitleSelector, config.context);
			config.plans.periods.discountLabelBlock = $(config.plans.periods.discountLabelBlockSelector, config.context);
			config.plans.periods.discountLabel = $(config.plans.periods.discountLabelSelector, config.plans.periods.discountLabelBlock);

			// Init download plans details
			config.plans.downloads.price = $(config.plans.downloads.priceSelector, config.context);
			config.plans.downloads.perDownloadTitle = $(config.plans.downloads.perDownloadTitleSelector, config.context);
			config.plans.downloads.oldPrice = $(config.plans.downloads.oldPriceSelector, config.context);
			config.plans.downloads.discountTitle = $(config.plans.downloads.discountTitleSelector, config.context);

			// Init e-mail field
			config.emailBlock = $(config.emailBlockSelector, config.context);
			config.emailField = $(config.emailFieldSelector, config.emailBlock);
			config.emailButton = $(config.emailButtonSelector, config.emailBlock);
			config.errorEmailBlock = $(config.errorEmailBlockSelector, config.emailBlock);

			// Compact form for e-mail field
			config.emailField.compactForm({text: config.messages.emailFieldText});

			// Init pay now submit button
			config.payNowBlock = $(config.payNowBlockSelector, config.context);
			config.payNowButton = $(config.payNowButtonSelector, config.payNowBlock);

			// Init payment method selectors
			config.paymentMethods = $(config.paymentMethodsSelector, config.context);


			// Copy default config to variable
			config.stored.pricelist = $.extend(true, {}, config.pricelist);

			// Enable tabs, select plan etc...
			refreshAllTabs();

			// Init SMS show link block
			config.showSMSPopupBlock = $(config.showSMSPopupBlockSelector, config.popupForm);

			// Init SMS
			if (config.sms != null)
			{
				config.showSMSPopupBlock.show();

				config.showSMSPopupLink = $(config.showSMSPopupLinkSelector, config.context);
				config.SMSForm = $(config.SMSFormSelector, config.context);
				config.closeSMS = $(config.closeSMSSelector, config.SMSForm);
				config.SMSNotInListLink = $(config.SMSNotInListLinkSelector, config.SMSForm);
				config.SMSNotInListTip = $(config.SMSNotInListTipSelector, config.SMSForm);
				config.SMSCountriesSelectBox = $(config.SMSCountriesSelectBoxSelector, config.SMSForm);
				config.SMSOperatorsInfo = $(config.SMSOperatorsInfoSelector, config.SMSForm);
				resetCountries();
				config.SMSCodeField = $(config.SMSCodeFieldSelector, config.SMSForm);
				config.SMSCodeButton = $(config.SMSCodeButtonSelector, config.SMSForm);
				config.SMSCodeLoading = $(config.SMSCodeLoadingSelector, config.SMSForm);
				config.errorSMSCodeBlock = $(config.errorSMSCodeBlockSelector, config.SMSForm);
				config.SMSCodeResult = $(config.SMSCodeResultSelector, config.SMSForm);

                
                config.SMSCodeResultWtf = $(config.SMSCodeResultSelectorWtf, config.SMSForm);
                config.SMSCodeResultWtfTooltip = $(config.SMSCodeResultSelectorWtfTooltip, config.SMSForm);
                config.SMSCodeResultWtfRegister = $(config.SMSCodeResultSelectorWtfRegister, config.SMSForm);

				config.InRequest = false;

                config.SMSCodeResultWtf.click(function(){
                    if(config.SMSCodeResultWtfTooltip.css('display') == 'none') {
                        config.SMSCodeResultWtfTooltip.show();
                    } else {
                        config.SMSCodeResultWtfTooltip.hide();
                    }
                });

                    
				// SMS overlay setup
				config.overlayApiSMS = config.SMSForm.overlay({
					close: false,
					expose: false,
					top: 'center',
					oneInstance: false,
					closeOnClick: false,
                    speed: 'fast',
					onBeforeLoad: function() {
					},
					onClose: function() {
						config.overlayApiSMS.close();
						config.popupFormWrapper.css('z-index', '9999');
						config.SMSForm.css('z-index', '0');
					}
				}).data('overlay');
			}
			else
			{
				config.showSMSPopupBlock.hide();
			}

			// Overlay setup
			config.overlayApi = config.popupFormWrapper.overlay({
				close: false,
				mask: {
					color: 'gray',
					loadSpeed: 200,
					opacity: 0.8
				},
                speed: 'fast',
				oneInstance: false,
				top: 'center',
				closeOnClick: false,
				load: config.autoOpen,
				onBeforeLoad: function() {

					// Restore default config without discount on close/open
					if (config.discountEnabled)
					{
						config.pricelist = $.extend(true, {}, config.stored.pricelist);
						config.codeHiddenField.val('');
						config.discountEnabled = false;
					}

                    refreshAllTabs();
				},
                onLoad: function() {
                    if(config.sms != null && config.sms.options && config.sms.options.selected && config.showSMSPopupLink) {
                        config.showSMSPopupLink.click();
                    }
                }
			}).data('overlay');

/*
 *	UI handlers -- overlay
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			// Open overlay
			config.showPopupLink.click(function(){
				config.overlayApi.load();
				return false;
			});

			// Close overlay
			config.close.click(function(){
				config.overlayApi.close();
				return false;
			});

/*
 *	UI handlers -- SMS overlay
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
		if (config.sms != null)
		{
			// Open overlay
			config.showSMSPopupLink.click(function(){
				config.popupFormWrapper.css('z-index', '0');
				config.SMSForm.css('z-index', config.zindex);
				config.overlayApiSMS.load();
				return false;
			});

			// Close overlay
			config.closeSMS.click(function(){
				config.overlayApiSMS.close();
				config.popupFormWrapper.css('z-index', config.zindex);
				config.SMSForm.css('z-index', '0');
				return false;
			});
		}

/*
 *	UI handlers -- tabs
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			// Change tab
			config.tabs.tabHeads.click(function(){
				var _this = $(this);
				if (!_this.hasClass(config.tabs.selectedClass))
				{
					changeTab(_this.index());
				}
				return false;
			});

/*
 *	UI handlers -- premium plans
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			// Change radiobutton at periods
			config.plans.periods.radioButtons.click(function(){
				changePeriodPlans();
			});

			// Extended premium checkbox
			config.extPremium.click(function(){
				changePeriodPlans();
			});

			// Change radiobutton at downloads
			config.plans.downloads.radioButtons.click(function(){
				changeDownloadPlans();
			});

/*
 *	UI handlers -- payment methods
 *	-----------------------------------------------------------------------------------------------------------------------------------------$bonus_days_*/
			config.paymentMethods.click(function(){
				if(config.emailBlock.is(':visible'))
				{
					config.emailField.val('').focus();
					config.emailBlock.hide();
					config.errorEmailBlock.hide();
					config.emailField.removeClass(config.emailFieldErrorClass);
					config.payNowBlock.show();
				}
			});

/*
 *	UI handlers -- "Pay now" button click
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			config.payNowButton.click(function(){
				var paymentId = config.paymentMethods.filter(':checked').first().val();
				if (config.gateways.types[paymentId].requireEmail)
				{
					config.payNowBlock.hide();
					config.emailBlock.show();
					return false;
				}
			});

/*
 *	UI handlers -- "OK" button click (send e-mail address)
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			config.emailButton.click(function(){
				config.errorEmailBlock.hide();
				config.emailField.removeClass(config.emailFieldErrorClass);
				var hasErrors = false;
				var emailVal = config.emailField.val();

				if(!config.emailReg.test(emailVal)) {
					config.errorEmailBlock.show().html(config.messages.errorEmailIncorrectText);
					config.emailField.addClass(config.emailFieldErrorClass);
					hasErrors = true;
				}

				if (hasErrors)
				{
					return false;
				}
			});

/*
 *	UI handlers -- popup form submit
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			config.popupForm.submit(function() {
				config.codeField.attr('disabled', 'disabled');
			});

/*
 *	UI handlers -- discount codes AJAX send
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			// Code button click
			config.codeButton.click(function() {
				if (!config.InRequest)
				{
					var codeFieldValue = config.codeField.val();
					if (codeFieldValue != '' && codeFieldValue != config.messages.codeFieldText)
					{
						config.codeField.attr('disabled', 'disabled');
						config.codeLoading.show();
						config.InRequest = true;

                        var premium_type = '';

                        if(config.tabs.tabPanels.not(':hidden').hasClass('m-downloads')) {
                            premium_type = 'downloads';
                        } else {
                            premium_type = 'period'
                        }

						$.post(config.discountCodeUrl, {code: codeFieldValue, pt: premium_type}, function(data){
							config.codeLoading.hide();
							config.InRequest = false;
							if (data.result)
							{
								config = $.extend(true, {}, config, data.pricelist);
								config.codeHiddenField.val(codeFieldValue);
								changePeriodPlans();
								changeDownloadPlans();
								config.discountEnabled = true;
								//alert(data.resultText);
							} 
                            else if(data.success == false && data.message)
                            {
                                config.codeField.addClass(config.codeFieldErrorClass);
                                alert(data.message);
                            }
							else
							{
								config.codeField.addClass(config.codeFieldErrorClass);
                                if(!data.resultText) {
    								alert(config.messages.errorCodeIncorrectText);
                                } else {
                                    alert(data.resultText);
                                }
							}
							config.codeField.removeAttr('disabled');
						}, 'json'); //type of result
					}
					else
					{
						config.codeField.addClass(config.codeFieldErrorClass);
					}
				}
				return false;
			});

			// Code field 'Enter' click
			config.codeField.keypress(function(e){
				if(e.which == 13){
					config.codeButton.click();
				}
			});

/*
 *	UI handlers -- SMS code AJAX send
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			if (config.sms != null)
			{
				// SMS code button click
				config.SMSCodeButton.click(function() {
					if (!config.InRequest)
					{
						var SMSCodeFieldValue = config.SMSCodeField.val();
						if (SMSCodeFieldValue != '')
						{
							config.SMSCodeField.attr('disabled', 'disabled');
							config.SMSCodeLoading.show();
							config.InRequest = true;
							$.post(config.SMSCodeUrl,
								{
									/*
									 * Допишите здесь все требуемые параметры, отсылаемые на сервер при запросе
									 */
                                    fid: $(config.SMSCodeFidSelector).val() ? $(config.SMSCodeFidSelector).val() : false,
                                    owner: $(config.SMSCodeOwnerSelector).val() ? $(config.SMSCodeOwnerSelector).val() : false,
                                    sms_submit: 1, 
									sms_code: SMSCodeFieldValue,
									sms_tax: config.SMSTariffsSelectBox.val(),
                                    json: 1
								},
								function(data){
									config.SMSCodeLoading.hide();
									config.InRequest = false;
									config.errorSMSCodeBlock.hide();
									if (data.ok)
									{
										config.SMSCodeField.removeClass(config.SMSCodeFieldErrorClass);
										config.SMSCodeResult.html(data.ok).removeClass(config.SMSCodeResultErrorClass).show();

                                        if(data.href) {
                                            setTimeout(function(){
                                                window.location.href = data.href;
                                            }, 1000);
                                        } else if(data.register_href) {

                                            config.SMSCodeResultWtfRegister.attr('href', data.register_href);
                                            config.SMSCodeResultWtf.show();
                                        } 
									}
									else
									{
										config.SMSCodeResult.html(data.err).addClass(config.SMSCodeResultErrorClass).show();
										config.SMSCodeField.addClass(config.SMSCodeFieldErrorClass);
									}
									config.SMSCodeField.removeAttr('disabled');
								},
							'json'); //type of result
						}
						else
						{
							config.SMSCodeResult.hide();
							config.SMSCodeField.addClass(config.SMSCodeFieldErrorClass);
							config.errorSMSCodeBlock.html(config.sms.messages.emptyCode).show();
						}
					}
					return false;
				});

				// SMS SMSCode field 'Enter' click
				config.SMSCodeField.keypress(function(e){
					if(e.which == 13){
						config.SMSCodeButton.click();
					}
				});
			}

/*
 *	UI handlers -- SMS countries selectbox change
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			if (config.sms != null)
			{
				config.SMSCountriesSelectBox.change(function() {
					resetCountries();

					// UI handlers -- SMS tariffs selectbox change
					$(config.SMSTariffsSelectBox).click(function() {
						resetTariffs();
					});
				});
			}

/*
 *	UI handlers -- SMS not in list click
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			if (config.sms != null)
			{
				config.SMSNotInListLink.click(function() {
					config.SMSNotInListTip.show();
					return false;
				});

				config.SMSNotInListTip.bind('clickoutside', function(){
					$(this).hide();
				});

				config.SMSNotInListTip.click(function(){
					$(this).hide();
				});
			}

/*
 *	Real code of UI handlers (if applicable)
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */

/*
	SMS
*/
			// Reset countries
			function resetCountries()
			{
				config.templates.tariffs.target.empty();
				var targetSourceId = config.SMSCountriesSelectBox.val();
				var targetSource;
				$.each(config.sms.pricelist, function(key, value) {
					if (value.id == targetSourceId)
					{
						targetSource = value;
						return false;
					}
				});
				$(config.templates.tariffs.templateSelector).tmpl(targetSource).appendTo(config.templates.tariffs.target);
				config.SMSTariffsSelectBox = $(config.SMSTariffsSelectBoxSelector, config.SMSForm);
				config.SMSOperatorsInfo.html(targetSource.operators_link_html);
				config.SMSTariffsInfo = $(config.SMSTariffsInfoSelector, config.SMSForm);
				config.SMSTariffsInfo.html(targetSource.tariffs_link_html);
				config.SMSNotInListTip.html(targetSource.not_in_list_tip);
				resetTariffs();
			}

			// Reset tariffs
			function resetTariffs()
			{
				var targetSource;
				var targetSourceId = config.SMSCountriesSelectBox.val();

				$.each(config.sms.pricelist, function(key, value) {
					if (value.id == targetSourceId)
					{
						targetSource = value;
						return false;
					}
				});

				targetSourceId = config.SMSTariffsSelectBox.val();
				$.each(targetSource.plans, function(key, value) {
					if (value.id == targetSourceId)
					{
						targetSource = value;
						return false;
					}
				});
				$('.b-info').html(targetSource.details);
			}

/*
	Main form
*/
			// Render all templates
			function renderAllTemplates()
			{
				// Render period options
				config.pricelist.periods.plans_array = [];
				prepareArray(config.pricelist.periods.plans, config.pricelist.periods.plans_array);
				config.templates.periods.target.empty();
				$(config.templates.periods.templateSelector).tmpl(config.pricelist.periods).appendTo(config.templates.periods.target);

				// Render downloads options
				config.pricelist.downloads.plans_array = [];
				prepareArray(config.pricelist.downloads.plans, config.pricelist.downloads.plans_array);
				config.templates.downloads.target.empty();
				$(config.templates.downloads.templateSelector).tmpl(config.pricelist.downloads).appendTo(config.templates.downloads.target);

				// Render payment options
				config.gateways.types_array = [];
				prepareArray(config.gateways.types, config.gateways.types_array);
				config.templates.gateways.target.empty();
				$(config.templates.gateways.templateSelector).tmpl(config.gateways).appendTo(config.templates.gateways.target);

				// Render sms countries
				if (config.sms != null)
				{
					$.each(['countries', 'tariffs'], function(index, value){
						config.templates[value].target = $(config.templates[value].targetSelector, config.context);
					});
					config.templates.countries.target.empty();
					$(config.templates.countries.templateSelector).tmpl(config.sms).appendTo(config.templates.countries.target);
				}
			}

			function refreshAllTabs()
			{
                // Change tab
                changeTab(tabIndex);

				// Init period plans
				changePeriodPlans();

				// Init download plans
				changeDownloadPlans();

				// Change tab
				//changeTab(tabIndex);

                // Set GateWay
                for(i in config.gateways.types) {
                    if(config.gateways.types[i].selected) {
                        $('input[value="'+i+'"]', config.context).click();
                    }
                }
			}

			// Change tab
			function changeTab(tabIndex)
			{
				config.tabs.tabHeads.removeClass(config.tabs.selectedClass);
				config.tabs.tabHeads.eq(tabIndex).addClass(config.tabs.selectedClass);
				if (tabIndex == 0)
				{
					config.codeBlock.appendTo(config.plans.periods.discountCodePlaceholder);
                    currentTab = 'periods';
					changePeriodPlans();                    
				}
				else
				{
					config.codeBlock.appendTo(config.plans.downloads.discountCodePlaceholder);
                    currentTab = 'downloads';
					changeDownloadPlans();
				}
				config.tabs.tabPanels.hide().find(config.tabs.disableableInputSelector).attr('disabled', 'disabled');
				config.tabs.tabPanels.eq(tabIndex).show().find(config.tabs.disableableInputSelector).attr('disabled', '');
			}

			// Change premium periods plan
			function changePeriodPlans()
			{
				var checkedRadioButton = config.plans.periods.radioButtons.filter(':checked').first();
				var checkedRadioButtonParent = checkedRadioButton.parents('li').first();
				var plan = config.pricelist.periods.plans[checkedRadioButton.val()];
				var isExt = config.extPremium.is(':checked');

				var price = isExt ? plan.price_ext : plan.price;
				var per_day_title;

				var discount = plan.discount;
				if (discount != null)
				{
                    config.discountPreriod = true;

					config.codeBlockInner.hide();
					config.showCodeBlockLink.show();

					switch (discount.type)
					{
						case 'days':
						{
							config.plans.periods.oldPrice.hide();

							config.plans.periods.discountLabelBlock.appendTo(checkedRadioButtonParent).show();
							config.plans.periods.discountLabel.html(discount.label);
							config.plans.periods.discountTitle.html(discount.title).show();
							break;
						}
						case 'money':
						{
							config.plans.periods.discountLabelBlock.hide();

							config.plans.periods.oldPrice.html(price).show();

							price = isExt ? discount.price_ext : discount.price;
							per_day_title = isExt ? discount.per_day_ext_title : discount.per_day_title;

							config.plans.periods.discountTitle.html(discount.title).show();

							break;
						}
					}
				}
				else
				{

                    config.discountPreriod = false;

                    if(!config.discountDownloads) {
    					config.showCodeBlockLink.hide();
                        config.codeBlockInner.show();
                    }

					config.plans.periods.oldPrice.hide();
					config.plans.periods.discountTitle.hide();
					config.plans.periods.discountLabelBlock.hide();

					resetCodeField();

					per_day_title = isExt ? plan.per_day_ext_title : plan.per_day_title;
				}

				config.plans.periods.price.html(price);
				config.plans.periods.perDayTitle.html(per_day_title);

                if(currentTab == 'periods') {
                    $(config.payPlanHiddenSelector, config.context).val(checkedRadioButton.val());
                }
			}

			// Change premium downloads plan
			function changeDownloadPlans()
			{
				var checkedRadioButton = config.plans.downloads.radioButtons.filter(':checked').first();
				var plan = config.pricelist.downloads.plans[checkedRadioButton.val()];

				var price = plan.price;
				var per_download_title;

				var discount = plan.discount;
				if (discount != null)
				{
                    config.discountDownloads = true;
                    
					config.codeBlockInner.hide();
					config.showCodeBlockLink.show();

					switch (discount.type)
					{
						case 'money':
						{
							config.plans.downloads.oldPrice.html(price).show();

							price = discount.price;
							per_download_title = discount.per_download_title;

							config.plans.downloads.discountTitle.html(discount.title).show();

							break;
						}
					}
				}
				else
				{

                    config.discountDownloads = false;

                    if(!config.discountPreriod) {
    					config.showCodeBlockLink.hide();
	    				config.codeBlockInner.show();
                    }
					config.plans.downloads.oldPrice.hide();
					config.plans.downloads.discountTitle.hide();

					resetCodeField();

					per_download_title = plan.per_download_title;
				}

				config.plans.downloads.price.html(price);
				config.plans.downloads.perDownloadTitle.html(per_download_title);

                if(currentTab == 'downloads') {
                    $(config.payPlanHiddenSelector, config.context).val(checkedRadioButton.val());
                }
			}

			// Click at "Enter new discount code"
			config.showCodeBlockLink.click(function(){
				config.showCodeBlockLink.hide();
				config.codeBlockInner.show();

				resetCodeField();

				config.plans.downloads.oldPrice.hide();
				config.plans.downloads.discountTitle.hide();

				config.plans.periods.oldPrice.hide();
				config.plans.periods.discountTitle.hide();
				config.plans.periods.discountLabelBlock.hide();

				return false;
			});

/*
 *	Routine
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*
 */
			// Convert options to arrays for rendering in templates
			function prepareArray(from, to)
			{
				var foundSelected = false;
				for (i in from)
				{
					from[i].id = i;
					foundSelected = from[i].selected;
					to.push(from[i]);
				}

				to.sort(function(a, b){
					return a.order-b.order;
				});

				if (!foundSelected)
				{
					to[0].selected = true;
				}
			}

			// Reset code field
			function resetCodeField()
			{
				config.codeField.val('');
				config.codeField.data('compactForm').Refresh();
				config.codeField.removeClass(config.codeFieldErrorClass);
			}


            this.setActiveGateway = function(gateway_) {
                for(i in config.gateways.types) {
                    if(i == gateway_) {
                        config.gateways.types[i].selected = true;
                    } else {
                        config.gateways.types[i].selected = false;
                    }
                }
            }

/*
 * Attaching the instance of this object to the jQuery wrapped DOM node for possible calls of 'public' methods
 *	---------------------------------------------------------------------------------------------------------------------------------------------------*	*
 */
			config.showPopupLink.data('pfForm', this);
		} // var pfForm = ..

		/*
		 * Attaching instance of class
		 */
		new pfForm(this);
/*
		This will give one instance per jQuery element, not what we need

		return this.each(function(){
			(new pfForm(this));
		});
*/
	}

	/*
	 * Default settings are namespaced, note "namespace" in '$.fn.pfForm.defaults'
	 */
	$.fn.pfForm.defaults = {

		emailReg: /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,	// E-mail regexp

		zindex: 9999,
		discountEnabled: false,

		showPopupLink: null,
		autoOpen: false,

		context: null,
		contextSelector: '.b-pf-popup-context:first',
		overlayApi: null,

		popupForm: null,
		popupFormSelector: '.b-pf-popup-form',
		popupFormWrapper: null,
		popupFormWrapperSelector: '.b-pf-popup-wrapper',

		close: null,
		closeSelector: '.b-close',

		extPremium: null,
		extPremiumSelector: '.m-periods .b-ext-premium input',

		emailBlock: null,
		emailBlockSelector: '.b-pf-popup-email',
		emailFieldSelector: 'input.email',
		emailButton: null,
		emailButtonSelector: '.b-pf-popup-submit',

		emailFieldErrorClass: 'm-error',
		errorEmailBlock: null,
		errorEmailBlockSelector: '.b-error',

		messages:
			{
			errorEmailIncorrectText: 'Please enter a valid email address',
			errorCodeIncorrectText: 'Please enter a code'
			},

		codeBlock: null,
		codeBlockSelector: '.b-pf-popup-code',
		codeBlockInner: null,
		codeBlockInnerSelector: '.b-pf-popup-code-inner',
		codeField: null,
		codeFieldSelector: 'input.code',
		codeHiddenField: null,
		codeHiddenFieldSelector: 'input.code-hidden',
		codeButton: null,
		codeButtonSelector: '.b-easy-button',
		showCodeBlock: null,
		showCodeBlockLinkSelector: '.b-show-code-block',
		codeLoading: null,
		codeLoadingSelector: '.b-code-loading',

		codeFieldErrorClass: 'm-error',
		errorCodeBlock: null,
		errorCodeBlockSelector: '.b-error',

		paymentMethods: null,
		paymentMethodsSelector: '.b-pf-popup-payment-methods input',

		payNowBlock: null,
		payNowBlockSelector: '.b-pf-popup-submit-wrapper',
		payNowButton: null,
		payNowButtonSelector: '.b-pf-popup-submit',

        payPlanHiddenSelector: 'input.hidden-pay-plan',

		tabs: {
			selectedClass: 'selected',
			tabHeadsSelector: '.b-pf-popup-tabs-links a',
			tabHeads: null,
			tabPanelsSelector: '.b-pf-popup-tabs-panel',
			tabPanels: null,
			disableableInputSelector: 'input'
		},

		plans: {
			periods: {
				radioButtonsSelector: '.m-periods .b-periods-options input',
				radioButtons: null,
				priceSelector: '.m-periods .b-pf-popup-main .b-price',
				price: null,
				perDayTitleSelector: '.m-periods .b-pf-popup-main .b-per-day-title',
				perDayTitle: null,
				oldPrice: null,
				oldPriceSelector: '.m-periods .b-old-price',
				discountTitle: null,
				discountTitleSelector: '.m-periods .b-discount-title',
				discountLabelBlock: null,
				discountLabelBlockSelector: '.m-periods .b-discount-label',
				discountLabel: null,
				discountLabelSelector: '.b-discount-label-inner',
				discountCodePlaceholder: null,
				discountCodePlaceholderSelector: '.m-periods .col-center.m-bottom'
			},
			downloads: {
				radioButtonsSelector: '.m-downloads .b-downloads-options input',
				radioButtons: null,
				priceSelector: '.m-downloads .b-pf-popup-main .b-price',
				price: null,
				perDownloadTitleSelector: '.m-downloads .b-pf-popup-main .b-per-day-title',
				perDownloadTitle: null,
				oldPrice: null,
				oldPriceSelector: '.m-downloads .b-old-price',
				discountTitle: null,
				discountTitleSelector: '.m-downloads .b-discount-title',
				discountCodePlaceholder: null,
				discountCodePlaceholderSelector: '.m-downloads .col-center.m-bottom'
			}
		},

		stored: {
			pricelist: null
		},

		pricelist: {
			periods: {
				plans_array: null
			},
			downloads: {
				plans_array: null
			}
		},

		gateways: {
			types_array : null
		},

		templates: {
			periods: {
				target: null,
				targetSelector: '.b-periods-options',
				templateSelector: '#tmpl-periods-options'
			},
			downloads: {
				target: null,
				targetSelector: '.b-downloads-options',
				templateSelector: '#tmpl-downloads-options'
			},
			gateways: {
				target: null,
				targetSelector: '.b-gateways-options',
				templateSelector: '#tmpl-gateways-options'
			},
			countries: {
				target: null,
				targetSelector: '.b-countries-options',
				templateSelector: '#tmpl-countries-options'
			},
			tariffs: {
				target: null,
				targetSelector: '.b-tariffs-options',
				templateSelector: '#tmpl-tariffs-options'
			}
		},

		showSMSPopupBlock: null,
		showSMSPopupBlockSelector: '.b-show-sms-popup',

		showSMSPopupLink: null,
		showSMSPopupLinkSelector: '.b-sms-popup-link',

		SMSForm: null,
		SMSFormSelector: '.b-pf-popup-sms-wrapper',

		closeSMS: null,
		closeSMSSelector: '.b-close-sms',

		SMSNotInListLink: null,
		SMSNotInListLinkSelector: '.b-not-in-list',
		SMSNotInListTip: null,
		SMSNotInListTipSelector: '.b-not-in-list-tip',

		SMSCountriesSelectBox: null,
		SMSCountriesSelectBoxSelector: '.b-countries',

		SMSTariffsSelectBox: null,
		SMSTariffsSelectBoxSelector: '.b-tariffs',

		SMSOperatorsInfo: null,
		SMSOperatorsInfoSelector: '.b-operators-info',

		SMSTariffsInfo: null,
		SMSTariffsInfoSelector: '.b-tariffs-info',

		SMSCodeField: null,
		SMSCodeFieldSelector: '.b-easy-input.sms-code',
		SMSCodeButton: null,
		SMSCodeButtonSelector: '.b-easy-button',
		SMSCodeLoading: null,
		SMSCodeLoadingSelector: '.b-code-loading',
		SMSCodeFieldErrorClass: 'm-error',
		SMSCodeResultErrorClass: 'm-error',
		errorSMSCodeBlock: null,
		errorSMSCodeBlockSelector: '.b-error',
		SMSCodeResult: null,
		SMSCodeResultSelector: '.b-sms-code-result',
        SMSCodeFidSelector: '#sms-fid',
        SMSCodeOwnerSelector: '#sms-owner',

        SMSCodeResultWtf: null,
        SMSCodeResultSelectorWtf: '.b-sms-code-result-wtf',
        SMSCodeResultWtfTooltip: null,
        SMSCodeResultSelectorWtfTooltip:  '.b-wtf-tip',
        SMSCodeResultWtfRegister: null,
        SMSCodeResultSelectorWtfRegister: '.wtf-register'


	}
})(jQuery);
(function($) {

    $.fn.pfSMSForm = function(options)
    {
        var config = $.extend(true, {}, $.fn.pfSMSForm.defaults, options);

        function getCountry() {
            return $('option:selected', config.SMSCountriesSelectBox).val();
        }

        function setTexts() {
            var curCountry = getCountry();

            var textNoCountriesTip = '';
            var textOperatorsLink = '';
            var textTarifsLink = '';
            var textPlanDetails = '';
            
            var plan = '';
            var code = '';
            var sms_number = '';

            for(i in config.pricelist) {
                if(config.pricelist[i].id == curCountry) {

                    textNoCountriesTip = config.pricelist[i].not_in_list_tip;
                    textOperatorsLink =  config.pricelist[i].operators_link_html;
                    textTarifsLink = config.pricelist[i].tariffs_link_html;

                    code = config.pricelist[i].code;
                    sms_number = config.pricelist[i].number;

                    var plans = config.pricelist[i].plans;
                    for(j in plans) {
                        if(plans[j].id == config.defaultPlan) {
                            plan = plans[j].id;
                            textPlanDetails = plans[j][config.defaultDetails];
                            break;
                        }
                    }

                    break;
                }
            }

            var tpl_vars = {
                code: code,
                sms_number: sms_number
            }


            config.templates.smsText.target = $( config.templates.smsText.targetSelector, config.context);
            config.templates.smsText.target.empty();
            $(config.templates.smsText.templateSelector, config.context).tmpl(tpl_vars).appendTo(config.templates.smsText.target);

            $(config.SMStarifLink).html(textTarifsLink);
            $(config.SMSoperatorLink).html(textOperatorsLink);
            $(config.SMSplanDetails).html(textPlanDetails);

            config.SMSnoCountriesTip.html(); 
        }

        function smsSubmit() {

            if(config.busy) return false;

            var smsCode = $.trim(config.SMScode.val());

            config.SMSresponse.hide();
            config.SMSnextStep.hide();

            if(!smsCode) {
                config.SMSresponse.html('<span class="sms-submit-err">'+config.messages.emptyCode+'</span>');
                config.SMSresponse.show();

                return false;
            } 

            config.busy = true;
            config.SMSpreloader.show();

            var params = {
                'sms_submit':   1,
                'sms_tax':      config.defaultPlan,
                'sms_code' :    smsCode,
                'fid':          config.SMSfid.val() || false,
                'form_flag':    config.SMSformFlag.val(),
                'json':         1,
                'rnd':          Math.random()
            };

            $.getJSON(config.SMSsubmitUrl, params, function(data){
                config.busy = false;
                config.SMSpreloader.hide();
                
                if(data) {
                    if(data.err) { 

                        config.SMSresponse.html('<span class="sms-submit-err">'+data.err+'</span>');
                        config.SMSresponse.show();
                    } else if(data.ok) {

                        config.SMSnextStep.html("<b>"+data.ok+"</p>"+config.templates.smsNextStep.target);
                        config.SMSnextStep.show();

                        if(data.href) {
                            window.location.href = data.href;
                        }
                    }
                }
            });

            return false;
        }

        var SMSForm  = function(element) {

            config.context = $(element);

            config.SMSnoCountries = $(config.SMSnoCountriesSelector, config.context);
            config.SMSnoCountriesTip = $(config.SMSnoCountriesTipSelector, config.context);
            config.SMSloginTip = $(config.SMSloginTipSelector, config.context);
            config.SMStarifLink = $(config.SMStarifLinkSelector, config.context);
            config.SMSoperatorLink = $(config.SMSoperatorLinkSelector, config.context);
            config.SMSplanDetails = $(config.SMSplanDetailsSelector, config.context);
            config.SMSsubmit = $(config.SMSsubmitSelector, config.context);
            config.SMScode = $(config.SMScodeSelector, config.context);
            config.SMSresponse = $(config.SMSresponseSelector, config.context);
            config.SMSpreloader = $(config.SMSpreloaderSelector, config.context);
            config.SMSfid = $(config.SMSfidSelector, config.context);
            config.SMSfidOwner = $(config.SMSfidOwnerSelector, config.context);
            config.SMSformFlag = $(config.SMSformFlagSelector, config.context);

            config.SMSnextStep = $(config.SMSnextStepSelector, config.context);
            config.SMSlogin = $(config.SMSloginSelector, config.context);
            
            //-- link "Что тальше"
            config.templates.smsNextStep.target = $(config.templates.smsNextStep.templateSelector, config.context).html();

            //-- set up countries
            config.templates.countries.target = $( config.templates.countries.targetSelector, config.context);
            config.templates.countries.target.empty();
            $(config.templates.countries.templateSelector, config.context).tmpl(config).appendTo(config.templates.countries.target);

            config.SMSCountriesSelectBox = $(config.SMSCountriesSelectBoxSelector, config.templates.countries.target);

            //-- run
            setTexts();

            if(config.SMSCountriesSelectBox.length) {
                config.SMSCountriesSelectBox.change(function(){
                    setTexts();
                });
            }

            if(config.SMSnoCountries.length) {
                config.SMSnoCountries.click(function(){
                    var position = {
                        top: $(this).offset().top,
                        left: $(this).offset().left
                    };

                    config.SMSnoCountriesTip.css({
                        position: "absolute",
                        top: position.top,
                        left: position.left
                    });
                    config.SMSnoCountriesTip.show();

                    function hideTip() {
                        config.SMSnoCountriesTip.hide();
                        $(document).unbind('click', hideTip);
                    };
                    $(document).bind('click', hideTip);

                    return false;
                });
            }

            if(config.SMSlogin.length) {
                config.SMSlogin.live('click', function(){
                    var position = {
                        top: $(this).offset().top,
                        left: $(this).offset().left
                    };

                    config.SMSloginTip.css({
                        position: "absolute",
                        top: position.top,
                        left: position.left
                    });
                    config.SMSloginTip.show();

                    function hideTip() {
                        config.SMSloginTip.hide();
                        $(document).unbind('click', hideTip);
                    };
                    $(document).bind('click', hideTip);

                    return false;
                });
            }

            if(config.SMSsubmit.length) {
                config.SMSsubmit.click(function(){
                    smsSubmit();
                    return false;
                });
            }

        }

        new SMSForm(this);
    }

    $.fn.pfSMSForm.defaults = {
        context: null,
        busy: false,
        defaultPlan: '2w',
        defaultDetails: 'details2',

        templates: {
            smsNextStep: {
                target: "",
                templateSelector: "#tmpl-sms-next-step" 
            },

            smsText: {
                target: null,
                targetSelector: '.b-sms-text',
                templateSelector: '#tmpl-sms-text'
            },

            countries: {
                target: null,
                targetSelector: '.b-smsCountryList',
                templateSelector: '#tmpl-sms-countries-options'
            }
        },

        SMSplanDetails: null,
        SMSplanDetailsSelector: '.b-plan-details',

        SMSCountriesSelectBox: null,
        SMSCountriesSelectBoxSelector: '.smsCountryList',

        SMSnoCountries: null,
        SMSnoCountriesSelector: ".sms-no-country",

        SMSlogin: null,
        SMSloginSelector: ".b-sms-login",

        SMSnoCountriesTip: null,
        SMSnoCountriesTipSelector: ".sms-no-countries-tip",
        SMSloginTip: null,
        SMSloginTipSelector: ".sms-login-tip",

        SMStarifLink: null,
        SMStarifLinkSelector: ".b-sms-tarif",

        SMSoperatorLink: null,
        SMSoperatorLinkSelector: ".b-sms-operators",

        SMScode: null,
        SMScodeSelector: ".b-sms-code",

        SMSresponse: null,
        SMSresponseSelector: ".b-submit-response",

        SMSpreloader: null,
        SMSpreloaderSelector: ".b-sms-preloader",

        SMSfid: null,
        SMSfidSelector: "#sms-fid",
        SMSfidOwner: null,
        SMSfidOwnerSelector: "#sms-owner",
        SMSformFlag: null,
        SMSformFlagSelector: "#sms-form-flag",
        
        SMSsubmitUrl: "/pay.jsp",
        SMSsubmit: null,
        SMSsubmitSelector: ".b-sms-submit",

        SMSnextStep: null,
        SMSnextStepSelector: ".b-sms-next-step"

    }

})(jQuery)
REG_MES=new Array();
REG_MES[1]="All fields requried";
REG_MES[2]="Passwords don't match";
REG_MES[3]="Please agree the service terms";
REG_MES[4]="Login is invalid";
REG_MES[5]="Email is invalid";

FEED_MES=new Array();
FEED_MES[1]="All fields required";
FEED_MES[2]="Email is wrong";


PROFILE_MES=new Array();
PROFILE_MES[1]="Passwords don't match";
PROFILE_MES[2]="FTP login is wrong, 3 chars minimum";
PROFILE_MES[3]="FTP login is wrong. Restricted chars";


BAD_SEARCH="You can't find a empty string without any parameters.<br><br>Press <a href='/search.jsp'>All</a>, to find all files";

UPLOAD_FORM_IMG="/s/img/_lang/en/browse.gif";

E_STATUSBAR_DEFAULTTEXT      = 'Selected folder: /';
E_STATUSBAR_SAVE_TEXT        = 'Get link';
E_STATUSBAR_SAVETOOLTIP_TEXT = 'Get files links';
E_STATUSBAR_REFR_TEXT        = 'Refresh list';
E_STATUSBAR_REFRTOOLTIP_TEXT = 'Refresh files list';
E_STATUSBAR_SAVING_TEXT   	 = 'Saving...';
E_STATUSBAR_TOTALFILES_TEXT  = 'Total files: ';
E_AJAX_WAIT                  = 'Connecting';
E_AJAX_SEND                  = 'Sending data...';
E_MSG_ERR                    = 'Error occured!';
E_MSG_SRV_1                  = 'Server returned unrecognized response';
E_SAVE_OK                    = 'Files saved successfully!';
E_MSG_OK                     = 'Congratulations!';
E_SAVE_OK2                   = 'All files saved successfully!';
E_MSG_SRV_2                  = 'The following error occurred during the files downloading:';
E_MSG_SRV_3                  = 'Transfer wasn\'t completed!';
E_MSG_ATT                    = 'Attention!';
E_MSG_SRV_4     			 = 'Server is unaccessible :';
E_MSG_FOLDER                 = 'Folders';
E_MSG_NO      				 = 'No';
E_MSG_YES     				 = 'Yes';
E_SAVE_OK3                   = 'File saved';

E_GRID_RENAME_FILE          = 'Rename files';
E_GRID_GET_LINK             = 'Get links';

E_LINK_URL                  = 'URL';
E_LINK_URL_FNAME            = 'URL with filename';
E_LINK_HTML                 = 'HTML lins';
E_LINK_FORUM                = 'For forums';

E_DEFAULT_FILES_PER_PAGE    = 10;
E_GRID_DIPL_MSG             = 'Showing files {0} - {1} of {2}';
E_GRID_DIPL_MSG_TPL         = function(data) {return data.charAt(0).toUpperCase()+data.slice(1)+' displayed {0} - {1} of {2}'};
E_GRID_TBAR_SHOW_FROM       = 'Show from:';
E_GRID_TBAR_SHOW_TO         = 'till:';
E_GRID_TBAR_SUBMIT          = 'Apply';
E_GRID_EMPTY_MSG            = 'No data';
E_GRID_BEFORE_MSG           = 'Page';
E_GRID_AFTER_MSG	        = 'of {0}';
E_GRID_FTP_TITLE            = 'Файлы из Вашей ФТП папки';
E_GRID_FLDR_TITLE           = 'Ваши Файлы';
E_GRID_FLDR_MYTITLE         = 'My files';
E_GRID_COLUMN_NAME          = 'Name';
E_GRID_COLUMN_PRIVATE       = 'Privacy';
E_GRID_COLUMN_PREMIUM_ONLY  = 'Premium only';
E_GRID_COLUMN_SIZE          = 'Size';
E_GRID_COLUMN_DATE          = 'Upload date';
E_GRID_COLUMN_DATE2         = 'Date';
E_GRID_COLUMN_FILE          = 'File';
E_GRID_COLUMN_PERIOD        = 'Type';
E_GRID_COLUMN_METHOD        = 'Pay method';
E_GRID_COLUMN_SUM           = 'Amount';
E_GRID_COLUMN_SITE          = 'Site';
E_GRID_COLUMN_SITE_DL       = 'Disable free download';
E_GRID_COLUMN_COUNTRY       = 'Country';
E_GRID_COLUMN_FILE          = 'File';
E_GRID_COLUMN_INCOME        = 'Income';
E_GRID_COLUMN_BUYS          = 'Sales';
E_GRID_COLUMN_DL            = 'Dl';
E_GRID_DOWNLOAD             = 'Download';
E_GRID_DOWNLOAD_URL         = 'Link';
E_GRID_RESTORE              = 'Restore';
E_GRID_DELETE_EVER          = 'Delete forever';
E_GRID_COLUMN_DLCONT        = 'Downloaded';
E_GRID_COLUMN_STATUS        = 'Status';
E_GRID_COLUMN_INFO          = 'Stats';
E_GRID_COLUMN_STATUS1		= 'Removed';
E_GRID_COLUMN_STATUS101		= 'Abused';
E_GRID_COLUMN_STATUS102		= 'Hidden';
E_GRID_COLUMN_STATUS103		= 'Completely removed';
E_GRID_COLUMN_STATUS106		= 'Removed by time';
E_GRID_COLUMN_ACTION        = 'Action';
E_GRID_COLUMN_RMDATE        = 'Remove date';
E_GRID_COMBO_GROUPBY        = 'Group by';
E_GRID_COMBO_BYDAYS         = 'days';
E_GRID_COMBO_BYWEEKS        = 'weeks';
E_GRID_COMBO_BYMONTHS       = 'months';
E_CHART_COMBO_DL            = 'All downloads';
E_CHART_COMBO_PERIOD        = 'Show period';
E_CHART_COMBO_BUYS          = 'Sales';
E_CHART_COMBO_BUYS_SUM      = 'Sales volume';
E_CHART_COMBO_DL_IN         = 'Dl income';
E_CHART_COMBO_BUYS_IN       = 'Sales income';
E_CHART_COMBO_TOTAL_IN      = 'Total income';
E_CHART_COMBO_30D           = '30 days';
E_CHART_COMBO_1M            = 'month';
E_CHART_COMBO_PREM          = 'previous month';
E_CHART_COMBO_6M            = 'half-year';
E_CHART_COMBO_2Y            = '2 years';
E_COMBO_DISPLAY_ITEMS       = 'Show items';
E_SEARCH_DISPLAY_ITEMS      = 'Search';
E_MSG_DEL_FILE              = 'Delete';
E_LABEL_CONFIRM_DEL_FILE    = 'Are you sure you want to delete these files?';
E_LABEL_CONFIRM_RESTORE_FILE    = 'Are you sure you want to restore selected files?';
E_LABEL_CONFIRM_DELETEEVER_FILE = 'Are you sure you want to delete selected files?';
E_LABEL_CONFIRM_FORCE_UPLOAD_FILE = 'Are you sure you want to upload incompletely loaded files?';
E_LABEL_CONFIRM_COPY_FILES  = 'Are you sure you want to make copy of selected files?';
E_LABEL_CONFIRM_CANCEL_TORRENT = 'Are you shure you want cancel selected tasks?';
E_LABEL_CONFIRM_COPY_FILES  = 'Are you sure you want to create copies of selected files?';
E_GRID_COLUMN_UPLOADED      = 'Status';
E_GRID_COLUMN_UPLOADED_DONE = 'Ready';
E_GRID_COLUMN_UPLOADED_INPROGRERSS = 'Loading ...';
E_GRID_PAYTYPE              = 'Type';

E_LABEL_CONFIRM_CLEAR       = 'Are you sure you want to delete the selected files?';
E_LABEL_CONFIRM_CLEAR_ALL   = 'Are you sure you want to delete all the files?';
E_MSG_NO_RDOWNLOAD_CANCEL   = 'Not one of the selected downloads can not be stopped';

E_TREE_CURRENT_FLDR         = 'Current folder: ';
E_MSG_LOADING               = 'Loading';
E_MSG_CR_FLDR               = 'Create folder';
E_MSG_RENAME_FLDR           = 'Rename folder';
E_MSG_SELECT_FLDR           = 'Select folder';
E_MSG_DEL_FLDR              = 'Delete folder';
E_MSG_FTP_FLD_EMPTY         = 'Your FTP folder is empty';
E_MSG_ROOT_FLDR             = '/ root folder';
E_LABEL_NAME                = 'Tilte';
E_LABEL_DESC                = 'Description';
E_LABEL_SAVE_FLDR           = 'Save changes';
E_LABEL_CANCEL              = 'Cancel';
E_LABEL_LOADNEW             = 'Upload new:';
E_LABEL_CONFIRM             = 'Confirm';
E_LABEL_CONFIRM_DEL         = 'Are you sure you want to delete this folder and all it contents?';
E_GRID_SELECT               = 'Select';
E_GRID_ROWS_SELECTED        = 'Delete selected files...';
E_MSG_NO_FILES_SELECTED     = 'Nothing is selected';
E_MSG_NO_FILE_NAME          = 'Filename cannot be empty';
E_LABEL_FILE_NAME_EDIT      = 'Filename editing';
E_LABEL_PRIVACY_EDIT        = 'Privacy editing';
E_LABEL_FILE_NAME           = 'Filename';
E_LABEL_FILE_NAME_SAVE      = 'Save';
E_LABEL_FILE_NAME_CANCEL    = 'Cancel';
E_LABEL_FILE_COPY           = 'Copy files';

UPLOAD_MES=new Array();
UPLOAD_MES[0]='Select file to upload.';
UPLOAD_MES[1]='You must agree our terms and conditions';

SEARCH_MES=new Array();
SEARCH_MES[0]="Search engine is available in demo mode.\r\nBuy premium to use it without limitations.";
E_LABELSMS_COST_RU          = 'Prices are valid for all national GSM providers';
E_LABELSMS_COST_RU2         = '';
E_LABELSMS_DESC_PER         = 'standart premium will we activated for <b>2 weeks</b>';
E_LABELSMS_DESC_DL          = '<b>30 downloads</b> will be added to your account';
E_LABEL_IMAGE               = 'Image';

E_CREDIT_CARD				= 'credit card';
E_PAYPAL					= 'PayPal system';
E_WEBMONEY					= 'WebMoney system';
E_YANDEX_MONEY				= 'Yandex money system';

E_EMPTY_FIELD				= 'Field is empty.';

E_RESSELLER_CODE            = 'Code';
E_RESSELLER_DATE            = 'Created';
E_RESSELLER_PERIOD          = 'Period';
E_RESSELLER_SUM             = 'Sum';
E_RESSELLER_DISCONT         = 'Discount';
E_RESSELLER_DISC_SUM        = 'Sum after discount';
E_RESSELLER_STATUS          = 'Status';
E_RESSELLER_STATUS_ACT      = 'Activated';
E_RESSELLER_STATUS_NACT     = 'Not activated';

