").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);/*!
* fancyBox - jQuery Plugin
* version: 2.1.5 (Fri, 14 Jun 2013)
* @requires jQuery v1.6 or later
*
* Examples at http://fancyapps.com/fancybox/
* License: www.fancyapps.com/fancybox/#license
*
* Copyright 2012 Janis Skarnelis - janis@fancyapps.com
*
*/
(function (window, document, $, undefined) {
"use strict";
var H=$("html"),
W=$(window),
D=$(document),
F=$.fancybox=function () {
F.open.apply( this, arguments );
},
IE= navigator.userAgent.match(/msie/i),
didUpdate =null,
isTouch =document.createTouch !==undefined,
isQuery =function(obj) {
return obj && obj.hasOwnProperty && obj instanceof $;
},
isString=function(str) {
return str && $.type(str)==="string";
},
isPercentage=function(str) {
return isString(str) && str.indexOf('%') > 0;
},
isScrollable=function(el) {
return (el && !(el.style.overflow && el.style.overflow==='hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
},
getScalar=function(orig, dim) {
var value=parseInt(orig, 10) || 0;
if (dim && isPercentage(orig)) {
value=F.getViewport()[ dim ] / 100 * value;
}
return Math.ceil(value);
},
getValue=function(value, dim) {
return getScalar(value, dim) + 'px';
};
$.extend(F, {
// The current version of fancyBox
version: '2.1.5',
defaults: {
padding : 15,
margin : 20,
width : 800,
height : 600,
minWidth : 100,
minHeight : 100,
maxWidth : 9999,
maxHeight : 9999,
pixelRatio: 1, // Set to 2 for retina display support
autoSize : true,
autoHeight : false,
autoWidth : false,
autoResize : true,
autoCenter : !isTouch,
fitToView : true,
aspectRatio : false,
topRatio : 0.5,
leftRatio : 0.5,
scrolling : 'auto', // 'auto', 'yes' or 'no'
wrapCSS : '',
arrows : true,
closeBtn : true,
closeClick : false,
nextClick : false,
mouseWheel : true,
autoPlay : false,
playSpeed : 3000,
preload : 3,
modal : false,
loop : true,
ajax : {
dataType : 'html',
headers : { 'X-fancyBox': true }
},
iframe : {
scrolling : 'auto',
preload : true
},
swf : {
wmode: 'transparent',
allowfullscreen : 'true',
allowscriptaccess : 'always'
},
keys : {
next : {
13 : 'left', // enter
34 : 'up', // page down
39 : 'left', // right arrow
40 : 'up' // down arrow
},
prev : {
8 : 'right', // backspace
33 : 'down', // page up
37 : 'right', // left arrow
38 : 'down' // up arrow
},
close : [27], // escape key
play : [32], // space - start/stop slideshow
toggle : [70] // letter "f" - toggle fullscreen
},
direction : {
next : 'left',
prev : 'right'
},
scrollOutside : true,
// Override some properties
index : 0,
type : null,
href : null,
content : null,
title : null,
// HTML templates
tpl: {
wrap : '
',
image : '
',
iframe : '
',
error : '
The requested content cannot be loaded. Please try again later.
',
closeBtn : '
',
next : '
',
prev : '
'
},
// Properties for each animation type
// Opening fancyBox
openEffect : 'fade', // 'elastic', 'fade' or 'none'
openSpeed : 250,
openEasing : 'swing',
openOpacity : true,
openMethod : 'zoomIn',
// Closing fancyBox
closeEffect : 'fade', // 'elastic', 'fade' or 'none'
closeSpeed : 250,
closeEasing : 'swing',
closeOpacity : true,
closeMethod : 'zoomOut',
// Changing next gallery item
nextEffect : 'elastic', // 'elastic', 'fade' or 'none'
nextSpeed : 250,
nextEasing : 'swing',
nextMethod : 'changeIn',
// Changing previous gallery item
prevEffect : 'elastic', // 'elastic', 'fade' or 'none'
prevSpeed : 250,
prevEasing : 'swing',
prevMethod : 'changeOut',
// Enable default helpers
helpers : {
overlay : true,
title : true
},
// Callbacks
onCancel : $.noop, // If canceling
beforeLoad : $.noop, // Before loading
afterLoad : $.noop, // After loading
beforeShow : $.noop, // Before changing in current item
afterShow : $.noop, // After opening
beforeChange : $.noop, // Before changing gallery item
beforeClose : $.noop, // Before closing
afterClose : $.noop // After closing
},
//Current state
group : {}, // Selected group
opts : {}, // Group options
previous : null, // Previous element
coming : null, // Element being loaded
current : null, // Currently loaded element
isActive : false, // Is activated
isOpen : false, // Is currently open
isOpened : false, // Have been fully opened at least once
wrap : null,
skin : null,
outer : null,
inner : null,
player : {
timer : null,
isActive : false
},
// Loaders
ajaxLoad : null,
imgPreload : null,
// Some collections
transitions : {},
helpers : {},
/*
* Static methods
*/
open: function (group, opts) {
if (!group) {
return;
}
if (!$.isPlainObject(opts)) {
opts={};
}
// Close if already active
if (false===F.close(true)) {
return;
}
// Normalize group
if (!$.isArray(group)) {
group=isQuery(group) ? $(group).get() : [group];
}
// Recheck if the type of each element is `object` and set content type (image, ajax, etc)
$.each(group, function(i, element) {
var obj={},
href,
title,
content,
type,
rez,
hrefParts,
selector;
if ($.type(element)==="object") {
// Check if is DOM element
if (element.nodeType) {
element=$(element);
}
if (isQuery(element)) {
obj={
href : element.data('fancybox-href') || element.attr('href'),
title : element.data('fancybox-title') || element.attr('title'),
isDom : true,
element : element
};
if ($.metadata) {
$.extend(true, obj, element.metadata());
}
} else {
obj=element;
}
}
href =opts.href || obj.href || (isString(element) ? element : null);
title=opts.title !==undefined ? opts.title : obj.title || '';
content=opts.content || obj.content;
type =content ? 'html' : (opts.type || obj.type);
if (!type && obj.isDom) {
type=element.data('fancybox-type');
if (!type) {
rez =element.prop('class').match(/fancybox\.(\w+)/);
type=rez ? rez[1] : null;
}
}
if (isString(href)) {
// Try to guess the content type
if (!type) {
if (F.isImage(href)) {
type='image';
} else if (F.isSWF(href)) {
type='swf';
} else if (href.charAt(0)==='#') {
type='inline';
} else if (isString(element)) {
type ='html';
content=element;
}
}
// Split url into two pieces with source url and content selector, e.g,
// "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"
if (type==='ajax') {
hrefParts=href.split(/\s+/, 2);
href =hrefParts.shift();
selector =hrefParts.shift();
}
}
if (!content) {
if (type==='inline') {
if (href) {
content=$( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
} else if (obj.isDom) {
content=element;
}
} else if (type==='html') {
content=href;
} else if (!type && !href && obj.isDom) {
type ='inline';
content=element;
}
}
$.extend(obj, {
href : href,
type : type,
content : content,
title : title,
selector : selector
});
group[ i ]=obj;
});
// Extend the defaults
F.opts=$.extend(true, {}, F.defaults, opts);
// All options are merged recursive except keys
if (opts.keys !==undefined) {
F.opts.keys=opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
}
F.group=group;
return F._start(F.opts.index);
},
// Cancel image loading or abort ajax request
cancel: function () {
var coming=F.coming;
if (!coming || false===F.trigger('onCancel')) {
return;
}
F.hideLoading();
if (F.ajaxLoad) {
F.ajaxLoad.abort();
}
F.ajaxLoad=null;
if (F.imgPreload) {
F.imgPreload.onload=F.imgPreload.onerror=null;
}
if (coming.wrap) {
coming.wrap.stop(true, true).trigger('onReset').remove();
}
F.coming=null;
// If the first item has been canceled, then clear everything
if (!F.current) {
F._afterZoomOut( coming );
}
},
// Start closing animation if is open; remove immediately if opening/closing
close: function (event) {
F.cancel();
if (false===F.trigger('beforeClose')) {
return;
}
F.unbindEvents();
if (!F.isActive) {
return;
}
if (!F.isOpen || event===true) {
$('.fancybox-wrap').stop(true).trigger('onReset').remove();
F._afterZoomOut();
} else {
F.isOpen=F.isOpened=false;
F.isClosing=true;
$('.fancybox-item, .fancybox-nav').remove();
F.wrap.stop(true, true).removeClass('fancybox-opened');
F.transitions[ F.current.closeMethod ]();
}
},
// Manage slideshow:
// $.fancybox.play(); - toggle slideshow
// $.fancybox.play( true ); - start
// $.fancybox.play( false ); - stop
play: function ( action ) {
var clear=function () {
clearTimeout(F.player.timer);
},
set=function () {
clear();
if (F.current && F.player.isActive) {
F.player.timer=setTimeout(F.next, F.current.playSpeed);
}
},
stop=function () {
clear();
D.unbind('.player');
F.player.isActive=false;
F.trigger('onPlayEnd');
},
start=function () {
if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
F.player.isActive=true;
D.bind({
'onCancel.player beforeClose.player' : stop,
'onUpdate.player' : set,
'beforeLoad.player' : clear
});
set();
F.trigger('onPlayStart');
}
};
if (action===true || (!F.player.isActive && action !==false)) {
start();
} else {
stop();
}
},
// Navigate to next gallery item
next: function ( direction ) {
var current=F.current;
if (current) {
if (!isString(direction)) {
direction=current.direction.next;
}
F.jumpto(current.index + 1, direction, 'next');
}
},
// Navigate to previous gallery item
prev: function ( direction ) {
var current=F.current;
if (current) {
if (!isString(direction)) {
direction=current.direction.prev;
}
F.jumpto(current.index - 1, direction, 'prev');
}
},
// Navigate to gallery item by index
jumpto: function ( index, direction, router ) {
var current=F.current;
if (!current) {
return;
}
index=getScalar(index);
F.direction=direction || current.direction[ (index >=current.index ? 'next' : 'prev') ];
F.router =router || 'jumpto';
if (current.loop) {
if (index < 0) {
index=current.group.length + (index % current.group.length);
}
index=index % current.group.length;
}
if (current.group[ index ] !==undefined) {
F.cancel();
F._start(index);
}
},
// Center inside viewport and toggle position type to fixed or absolute if needed
reposition: function (e, onlyAbsolute) {
var current=F.current,
wrap =current ? current.wrap : null,
pos;
if (wrap) {
pos=F._getPosition(onlyAbsolute);
if (e && e.type==='scroll') {
delete pos.position;
wrap.stop(true, true).animate(pos, 200);
} else {
wrap.css(pos);
current.pos=$.extend({}, current.dim, pos);
}
}
},
update: function (e) {
var type=(e && e.type),
anyway=!type || type==='orientationchange';
if (anyway) {
clearTimeout(didUpdate);
didUpdate=null;
}
if (!F.isOpen || didUpdate) {
return;
}
didUpdate=setTimeout(function() {
var current=F.current;
if (!current || F.isClosing) {
return;
}
F.wrap.removeClass('fancybox-tmp');
if (anyway || type==='load' || (type==='resize' && current.autoResize)) {
F._setDimension();
}
if (!(type==='scroll' && current.canShrink)) {
F.reposition(e);
}
F.trigger('onUpdate');
didUpdate=null;
}, (anyway && !isTouch ? 0 : 300));
},
// Shrink content to fit inside viewport or restore if resized
toggle: function ( action ) {
if (F.isOpen) {
F.current.fitToView=$.type(action)==="boolean" ? action : !F.current.fitToView;
// Help browser to restore document dimensions
if (isTouch) {
F.wrap.removeAttr('style').addClass('fancybox-tmp');
F.trigger('onUpdate');
}
F.update();
}
},
hideLoading: function () {
D.unbind('.loading');
$('#fancybox-loading').remove();
},
showLoading: function () {
var el, viewport;
F.hideLoading();
el=$('
').click(F.cancel).appendTo('body');
// If user will press the escape-button, the request will be canceled
D.bind('keydown.loading', function(e) {
if ((e.which || e.keyCode)===27) {
e.preventDefault();
F.cancel();
}
});
if (!F.defaults.fixed) {
viewport=F.getViewport();
el.css({
position : 'absolute',
top : (viewport.h * 0.5) + viewport.y,
left : (viewport.w * 0.5) + viewport.x
});
}
},
getViewport: function () {
var locked=(F.current && F.current.locked) || false,
rez ={
x: W.scrollLeft(),
y: W.scrollTop()
};
if (locked) {
rez.w=locked[0].clientWidth;
rez.h=locked[0].clientHeight;
} else {
// See http://bugs.jquery.com/ticket/6724
rez.w=isTouch && window.innerWidth ? window.innerWidth : W.width();
rez.h=isTouch && window.innerHeight ? window.innerHeight : W.height();
}
return rez;
},
// Unbind the keyboard / clicking actions
unbindEvents: function () {
if (F.wrap && isQuery(F.wrap)) {
F.wrap.unbind('.fb');
}
D.unbind('.fb');
W.unbind('.fb');
},
bindEvents: function () {
var current=F.current,
keys;
if (!current) {
return;
}
// Changing document height on iOS devices triggers a 'resize' event,
// that can change document height... repeating infinitely
W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
keys=current.keys;
if (keys) {
D.bind('keydown.fb', function (e) {
var code =e.which || e.keyCode,
target=e.target || e.srcElement;
// Skip esc key if loading, because showLoading will cancel preloading
if (code===27 && F.coming) {
return false;
}
// Ignore key combinations and key events within form elements
if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
$.each(keys, function(i, val) {
if (current.group.length > 1 && val[ code ] !==undefined) {
F[ i ]( val[ code ] );
e.preventDefault();
return false;
}
if ($.inArray(code, val) > -1) {
F[ i ] ();
e.preventDefault();
return false;
}
});
}
});
}
if ($.fn.mousewheel && current.mouseWheel) {
F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {
var target=e.target || null,
parent=$(target),
canScroll=false;
while (parent.length) {
if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {
break;
}
canScroll=isScrollable( parent[0] );
parent =$(parent).parent();
}
if (delta !==0 && !canScroll) {
if (F.group.length > 1 && !current.canShrink) {
if (deltaY > 0 || deltaX > 0) {
F.prev( deltaY > 0 ? 'down' : 'left' );
} else if (deltaY < 0 || deltaX < 0) {
F.next( deltaY < 0 ? 'up' : 'right' );
}
e.preventDefault();
}
}
});
}
},
trigger: function (event, o) {
var ret, obj=o || F.coming || F.current;
if (!obj) {
return;
}
if ($.isFunction( obj[event] )) {
ret=obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
}
if (ret===false) {
return false;
}
if (obj.helpers) {
$.each(obj.helpers, function (helper, opts) {
if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);
}
});
}
D.trigger(event);
},
isImage: function (str) {
return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
},
isSWF: function (str) {
return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
},
_start: function (index) {
var coming={},
obj,
href,
type,
margin,
padding;
index=getScalar( index );
obj =F.group[ index ] || null;
if (!obj) {
return false;
}
coming=$.extend(true, {}, F.opts, obj);
// Convert margin and padding properties to array - top, right, bottom, left
margin =coming.margin;
padding=coming.padding;
if ($.type(margin)==='number') {
coming.margin=[margin, margin, margin, margin];
}
if ($.type(padding)==='number') {
coming.padding=[padding, padding, padding, padding];
}
// 'modal' propery is just a shortcut
if (coming.modal) {
$.extend(true, coming, {
closeBtn : false,
closeClick : false,
nextClick : false,
arrows : false,
mouseWheel : false,
keys : null,
helpers: {
overlay : {
closeClick : false
}
}
});
}
// 'autoSize' property is a shortcut, too
if (coming.autoSize) {
coming.autoWidth=coming.autoHeight=true;
}
if (coming.width==='auto') {
coming.autoWidth=true;
}
if (coming.height==='auto') {
coming.autoHeight=true;
}
/*
* Add reference to the group, so it`s possible to access from callbacks, example:
* afterLoad : function() {
* this.title='Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
* }
*/
coming.group =F.group;
coming.index =index;
// Give a chance for callback or helpers to update coming item (type, title, etc)
F.coming=coming;
if (false===F.trigger('beforeLoad')) {
F.coming=null;
return;
}
type=coming.type;
href=coming.href;
if (!type) {
F.coming=null;
//If we can not determine content type then drop silently or display next/prev item if looping through gallery
if (F.current && F.router && F.router !=='jumpto') {
F.current.index=index;
return F[ F.router ]( F.direction );
}
return false;
}
F.isActive=true;
if (type==='image' || type==='swf') {
coming.autoHeight=coming.autoWidth=false;
coming.scrolling ='visible';
}
if (type==='image') {
coming.aspectRatio=true;
}
if (type==='iframe' && isTouch) {
coming.scrolling='scroll';
}
// Build the neccessary markup
coming.wrap=$(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
$.extend(coming, {
skin : $('.fancybox-skin', coming.wrap),
outer : $('.fancybox-outer', coming.wrap),
inner : $('.fancybox-inner', coming.wrap)
});
$.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
coming.skin.css('padding' + v, getValue(coming.padding[ i ]));
});
F.trigger('onReady');
// Check before try to load; 'inline' and 'html' types need content, others - href
if (type==='inline' || type==='html') {
if (!coming.content || !coming.content.length) {
return F._error( 'content' );
}
} else if (!href) {
return F._error( 'href' );
}
if (type==='image') {
F._loadImage();
} else if (type==='ajax') {
F._loadAjax();
} else if (type==='iframe') {
F._loadIframe();
} else {
F._afterLoad();
}
},
_error: function ( type ) {
$.extend(F.coming, {
type : 'html',
autoWidth : true,
autoHeight : true,
minWidth : 0,
minHeight : 0,
scrolling : 'no',
hasError : type,
content : F.coming.tpl.error
});
F._afterLoad();
},
_loadImage: function () {
// Reset preload image so it is later possible to check "complete" property
var img=F.imgPreload=new Image();
img.onload=function () {
this.onload=this.onerror=null;
F.coming.width =this.width / F.opts.pixelRatio;
F.coming.height=this.height / F.opts.pixelRatio;
F._afterLoad();
};
img.onerror=function () {
this.onload=this.onerror=null;
F._error( 'image' );
};
img.src=F.coming.href;
if (img.complete !==true) {
F.showLoading();
}
},
_loadAjax: function () {
var coming=F.coming;
F.showLoading();
F.ajaxLoad=$.ajax($.extend({}, coming.ajax, {
url: coming.href,
error: function (jqXHR, textStatus) {
if (F.coming && textStatus !=='abort') {
F._error( 'ajax', jqXHR );
} else {
F.hideLoading();
}
},
success: function (data, textStatus) {
if (textStatus==='success') {
coming.content=data;
F._afterLoad();
}
}
}));
},
_loadIframe: function() {
var coming=F.coming,
iframe=$(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)
.attr('src', coming.href);
// This helps IE
$(coming.wrap).bind('onReset', function () {
try {
$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();
} catch (e) {}
});
if (coming.iframe.preload) {
F.showLoading();
iframe.one('load', function() {
$(this).data('ready', 1);
// iOS will lose scrolling if we resize
if (!isTouch) {
$(this).bind('load.fb', F.update);
}
// Without this trick:
// - iframe won't scroll on iOS devices
// - IE7 sometimes displays empty iframe
$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();
F._afterLoad();
});
}
coming.content=iframe.appendTo( coming.inner );
if (!coming.iframe.preload) {
F._afterLoad();
}
},
_preloadImages: function() {
var group =F.group,
current=F.current,
len =group.length,
cnt =current.preload ? Math.min(current.preload, len - 1) : 0,
item,
i;
for (i=1; i <=cnt; i +=1) {
item=group[ (current.index + i ) % len ];
if (item.type==='image' && item.href) {
new Image().src=item.href;
}
}
},
_afterLoad: function () {
var coming =F.coming,
previous=F.current,
placeholder='fancybox-placeholder',
current,
content,
type,
scrolling,
href,
embed;
F.hideLoading();
if (!coming || F.isActive===false) {
return;
}
if (false===F.trigger('afterLoad', coming, previous)) {
coming.wrap.stop(true).trigger('onReset').remove();
F.coming=null;
return;
}
if (previous) {
F.trigger('beforeChange', previous);
previous.wrap.stop(true).removeClass('fancybox-opened')
.find('.fancybox-item, .fancybox-nav')
.remove();
}
F.unbindEvents();
current =coming;
content =coming.content;
type =coming.type;
scrolling=coming.scrolling;
$.extend(F, {
wrap : current.wrap,
skin : current.skin,
outer : current.outer,
inner : current.inner,
current : current,
previous : previous
});
href=current.href;
switch (type) {
case 'inline':
case 'ajax':
case 'html':
if (current.selector) {
content=$('
').html(content).find(current.selector);
} else if (isQuery(content)) {
if (!content.data(placeholder)) {
content.data(placeholder, $('
').insertAfter( content ).hide() );
}
content=content.show().detach();
current.wrap.bind('onReset', function () {
if ($(this).find(content).length) {
content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);
}
});
}
break;
case 'image':
content=current.tpl.image.replace('{href}', href);
break;
case 'swf':
content='
';
embed ='';
$.each(current.swf, function(name, val) {
content +=' ';
embed +=' ' + name + '="' + val + '"';
});
content +='';
break;
}
if (!(isQuery(content) && content.parent().is(current.inner))) {
current.inner.append( content );
}
// Give a chance for helpers or callbacks to update elements
F.trigger('beforeShow');
// Set scrolling before calculating dimensions
current.inner.css('overflow', scrolling==='yes' ? 'scroll' : (scrolling==='no' ? 'hidden' : scrolling));
// Set initial dimensions and start position
F._setDimension();
F.reposition();
F.isOpen=false;
F.coming=null;
F.bindEvents();
if (!F.isOpened) {
$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();
} else if (previous.prevMethod) {
F.transitions[ previous.prevMethod ]();
}
F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();
F._preloadImages();
},
_setDimension: function () {
var viewport =F.getViewport(),
steps =0,
canShrink =false,
canExpand =false,
wrap =F.wrap,
skin =F.skin,
inner =F.inner,
current =F.current,
width =current.width,
height =current.height,
minWidth =current.minWidth,
minHeight =current.minHeight,
maxWidth =current.maxWidth,
maxHeight =current.maxHeight,
scrolling =current.scrolling,
scrollOut =current.scrollOutside ? current.scrollbarWidth : 0,
margin =current.margin,
wMargin =getScalar(margin[1] + margin[3]),
hMargin =getScalar(margin[0] + margin[2]),
wPadding,
hPadding,
wSpace,
hSpace,
origWidth,
origHeight,
origMaxWidth,
origMaxHeight,
ratio,
width_,
height_,
maxWidth_,
maxHeight_,
iframe,
body;
// Reset dimensions so we could re-check actual size
wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
wPadding=getScalar(skin.outerWidth(true) - skin.width());
hPadding=getScalar(skin.outerHeight(true) - skin.height());
// Any space between content and viewport (margin, padding, border, title)
wSpace=wMargin + wPadding;
hSpace=hMargin + hPadding;
origWidth =isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;
origHeight=isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
if (current.type==='iframe') {
iframe=current.content;
if (current.autoHeight && iframe.data('ready')===1) {
try {
if (iframe[0].contentWindow.document.location) {
inner.width( origWidth ).height(9999);
body=iframe.contents().find('body');
if (scrollOut) {
body.css('overflow-x', 'hidden');
}
origHeight=body.outerHeight(true);
}
} catch (e) {}
}
} else if (current.autoWidth || current.autoHeight) {
inner.addClass( 'fancybox-tmp' );
// Set width or height in case we need to calculate only one dimension
if (!current.autoWidth) {
inner.width( origWidth );
}
if (!current.autoHeight) {
inner.height( origHeight );
}
if (current.autoWidth) {
origWidth=inner.width();
}
if (current.autoHeight) {
origHeight=inner.height();
}
inner.removeClass( 'fancybox-tmp' );
}
width =getScalar( origWidth );
height=getScalar( origHeight );
ratio =origWidth / origHeight;
// Calculations for the content
minWidth =getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
maxWidth =getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
minHeight=getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
maxHeight=getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
// These will be used to determine if wrap can fit in the viewport
origMaxWidth =maxWidth;
origMaxHeight=maxHeight;
if (current.fitToView) {
maxWidth =Math.min(viewport.w - wSpace, maxWidth);
maxHeight=Math.min(viewport.h - hSpace, maxHeight);
}
maxWidth_ =viewport.w - wMargin;
maxHeight_=viewport.h - hMargin;
if (current.aspectRatio) {
if (width > maxWidth) {
width =maxWidth;
height=getScalar(width / ratio);
}
if (height > maxHeight) {
height=maxHeight;
width =getScalar(height * ratio);
}
if (width < minWidth) {
width =minWidth;
height=getScalar(width / ratio);
}
if (height < minHeight) {
height=minHeight;
width =getScalar(height * ratio);
}
} else {
width=Math.max(minWidth, Math.min(width, maxWidth));
if (current.autoHeight && current.type !=='iframe') {
inner.width( width );
height=inner.height();
}
height=Math.max(minHeight, Math.min(height, maxHeight));
}
// Try to fit inside viewport (including the title)
if (current.fitToView) {
inner.width( width ).height( height );
wrap.width( width + wPadding );
// Real wrap dimensions
width_ =wrap.width();
height_=wrap.height();
if (current.aspectRatio) {
while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {
if (steps++ > 19) {
break;
}
height=Math.max(minHeight, Math.min(maxHeight, height - 10));
width =getScalar(height * ratio);
if (width < minWidth) {
width =minWidth;
height=getScalar(width / ratio);
}
if (width > maxWidth) {
width =maxWidth;
height=getScalar(width / ratio);
}
inner.width( width ).height( height );
wrap.width( width + wPadding );
width_ =wrap.width();
height_=wrap.height();
}
} else {
width =Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));
height=Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));
}
}
if (scrollOut && scrolling==='auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {
width +=scrollOut;
}
inner.width( width ).height( height );
wrap.width( width + wPadding );
width_ =wrap.width();
height_=wrap.height();
canShrink=(width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;
canExpand=current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));
$.extend(current, {
dim : {
width : getValue( width_ ),
height : getValue( height_ )
},
origWidth : origWidth,
origHeight : origHeight,
canShrink : canShrink,
canExpand : canExpand,
wPadding : wPadding,
hPadding : hPadding,
wrapSpace : height_ - skin.outerHeight(true),
skinSpace : skin.height() - height
});
if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {
inner.height('auto');
}
},
_getPosition: function (onlyAbsolute) {
var current =F.current,
viewport=F.getViewport(),
margin =current.margin,
width =F.wrap.width() + margin[1] + margin[3],
height =F.wrap.height() + margin[0] + margin[2],
rez ={
position: 'absolute',
top : margin[0],
left : margin[3]
};
if (current.autoCenter && current.fixed && !onlyAbsolute && height <=viewport.h && width <=viewport.w) {
rez.position='fixed';
} else if (!current.locked) {
rez.top +=viewport.y;
rez.left +=viewport.x;
}
rez.top =getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));
rez.left=getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio)));
return rez;
},
_afterZoomIn: function () {
var current=F.current;
if (!current) {
return;
}
F.isOpen=F.isOpened=true;
F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
F.update();
// Assign a click event
if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
e.preventDefault();
F[ current.closeClick ? 'close' : 'next' ]();
}
});
}
// Create a close button
if (current.closeBtn) {
$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
e.preventDefault();
F.close();
});
}
// Create navigation arrows
if (current.arrows && F.group.length > 1) {
if (current.loop || current.index > 0) {
$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
}
if (current.loop || current.index < F.group.length - 1) {
$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
}
}
F.trigger('afterShow');
// Stop the slideshow if this is the last item
if (!current.loop && current.index===current.group.length - 1) {
F.play( false );
} else if (F.opts.autoPlay && !F.player.isActive) {
F.opts.autoPlay=false;
F.play();
}
},
_afterZoomOut: function ( obj ) {
obj=obj || F.current;
$('.fancybox-wrap').trigger('onReset').remove();
$.extend(F, {
group : {},
opts : {},
router : false,
current : null,
isActive : false,
isOpened : false,
isOpen : false,
isClosing : false,
wrap : null,
skin : null,
outer : null,
inner : null
});
F.trigger('afterClose', obj);
}
});
/*
* Default transitions
*/
F.transitions={
getOrigPosition: function () {
var current =F.current,
element =current.element,
orig =current.orig,
pos ={},
width =50,
height =50,
hPadding=current.hPadding,
wPadding=current.wPadding,
viewport=F.getViewport();
if (!orig && current.isDom && element.is(':visible')) {
orig=element.find('img:first');
if (!orig.length) {
orig=element;
}
}
if (isQuery(orig)) {
pos=orig.offset();
if (orig.is('img')) {
width =orig.outerWidth();
height=orig.outerHeight();
}
} else {
pos.top =viewport.y + (viewport.h - height) * current.topRatio;
pos.left=viewport.x + (viewport.w - width) * current.leftRatio;
}
if (F.wrap.css('position')==='fixed' || current.locked) {
pos.top -=viewport.y;
pos.left -=viewport.x;
}
pos={
top : getValue(pos.top - hPadding * current.topRatio),
left : getValue(pos.left - wPadding * current.leftRatio),
width : getValue(width + wPadding),
height : getValue(height + hPadding)
};
return pos;
},
step: function (now, fx) {
var ratio,
padding,
value,
prop =fx.prop,
current =F.current,
wrapSpace =current.wrapSpace,
skinSpace =current.skinSpace;
if (prop==='width' || prop==='height') {
ratio=fx.end===fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
if (F.isClosing) {
ratio=1 - ratio;
}
padding=prop==='width' ? current.wPadding : current.hPadding;
value =now - padding;
F.skin[ prop ]( getScalar( prop==='width' ? value : value - (wrapSpace * ratio) ) );
F.inner[ prop ]( getScalar( prop==='width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );
}
},
zoomIn: function () {
var current =F.current,
startPos=current.pos,
effect =current.openEffect,
elastic =effect==='elastic',
endPos =$.extend({opacity : 1}, startPos);
// Remove "position" property that breaks older IE
delete endPos.position;
if (elastic) {
startPos=this.getOrigPosition();
if (current.openOpacity) {
startPos.opacity=0.1;
}
} else if (effect==='fade') {
startPos.opacity=0.1;
}
F.wrap.css(startPos).animate(endPos, {
duration : effect==='none' ? 0 : current.openSpeed,
easing : current.openEasing,
step : elastic ? this.step : null,
complete : F._afterZoomIn
});
},
zoomOut: function () {
var current =F.current,
effect =current.closeEffect,
elastic =effect==='elastic',
endPos ={opacity : 0.1};
if (elastic) {
endPos=this.getOrigPosition();
if (current.closeOpacity) {
endPos.opacity=0.1;
}
}
F.wrap.animate(endPos, {
duration : effect==='none' ? 0 : current.closeSpeed,
easing : current.closeEasing,
step : elastic ? this.step : null,
complete : F._afterZoomOut
});
},
changeIn: function () {
var current =F.current,
effect =current.nextEffect,
startPos =current.pos,
endPos ={ opacity : 1 },
direction=F.direction,
distance =200,
field;
startPos.opacity=0.1;
if (effect==='elastic') {
field=direction==='down' || direction==='up' ? 'top' : 'left';
if (direction==='down' || direction==='right') {
startPos[ field ]=getValue(getScalar(startPos[ field ]) - distance);
endPos[ field ] ='+=' + distance + 'px';
} else {
startPos[ field ]=getValue(getScalar(startPos[ field ]) + distance);
endPos[ field ] ='-=' + distance + 'px';
}
}
// Workaround for http://bugs.jquery.com/ticket/12273
if (effect==='none') {
F._afterZoomIn();
} else {
F.wrap.css(startPos).animate(endPos, {
duration : current.nextSpeed,
easing : current.nextEasing,
complete : F._afterZoomIn
});
}
},
changeOut: function () {
var previous =F.previous,
effect =previous.prevEffect,
endPos ={ opacity : 0.1 },
direction=F.direction,
distance =200;
if (effect==='elastic') {
endPos[ direction==='down' || direction==='up' ? 'top' : 'left' ]=( direction==='up' || direction==='left' ? '-' : '+' ) + '=' + distance + 'px';
}
previous.wrap.animate(endPos, {
duration : effect==='none' ? 0 : previous.prevSpeed,
easing : previous.prevEasing,
complete : function () {
$(this).trigger('onReset').remove();
}
});
}
};
/*
* Overlay helper
*/
F.helpers.overlay={
defaults : {
closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay
speedOut : 200, // duration of fadeOut animation
showEarly : true, // indicates if should be opened immediately or wait until the content is ready
css : {}, // custom CSS properties
locked : !isTouch, // if true, the content will be locked into overlay
fixed : true // if false, the overlay CSS position property will not be set to "fixed"
},
overlay : null, // current handle
fixed : false, // indicates if the overlay has position "fixed"
el : $('html'), // element that contains "the lock"
// Public methods
create : function(opts) {
opts=$.extend({}, this.defaults, opts);
if (this.overlay) {
this.close();
}
this.overlay=$('
').appendTo( F.coming ? F.coming.parent : opts.parent );
this.fixed =false;
if (opts.fixed && F.defaults.fixed) {
this.overlay.addClass('fancybox-overlay-fixed');
this.fixed=true;
}
},
open : function(opts) {
var that=this;
opts=$.extend({}, this.defaults, opts);
if (this.overlay) {
this.overlay.unbind('.overlay').width('auto').height('auto');
} else {
this.create(opts);
}
if (!this.fixed) {
W.bind('resize.overlay', $.proxy( this.update, this) );
this.update();
}
if (opts.closeClick) {
this.overlay.bind('click.overlay', function(e) {
if ($(e.target).hasClass('fancybox-overlay')) {
if (F.isActive) {
F.close();
} else {
that.close();
}
return false;
}
});
}
this.overlay.css( opts.css ).show();
},
close : function() {
var scrollV, scrollH;
W.unbind('resize.overlay');
if (this.el.hasClass('fancybox-lock')) {
$('.fancybox-margin').removeClass('fancybox-margin');
scrollV=W.scrollTop();
scrollH=W.scrollLeft();
this.el.removeClass('fancybox-lock');
W.scrollTop( scrollV ).scrollLeft( scrollH );
}
$('.fancybox-overlay').remove().hide();
$.extend(this, {
overlay : null,
fixed : false
});
},
// Private, callbacks
update : function () {
var width='100%', offsetWidth;
// Reset width/height so it will not mess
this.overlay.width(width).height('100%');
// jQuery does not return reliable result for IE
if (IE) {
offsetWidth=Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
if (D.width() > offsetWidth) {
width=D.width();
}
} else if (D.width() > W.width()) {
width=D.width();
}
this.overlay.width(width).height(D.height());
},
// This is where we can manipulate DOM, because later it would cause iframes to reload
onReady : function (opts, obj) {
var overlay=this.overlay;
$('.fancybox-overlay').stop(true, true);
if (!overlay) {
this.create(opts);
}
if (opts.locked && this.fixed && obj.fixed) {
if (!overlay) {
this.margin=D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false;
}
obj.locked=this.overlay.append( obj.wrap );
obj.fixed =false;
}
if (opts.showEarly===true) {
this.beforeShow.apply(this, arguments);
}
},
beforeShow : function(opts, obj) {
var scrollV, scrollH;
if (obj.locked) {
if (this.margin !==false) {
$('*').filter(function(){
return ($(this).css('position')==='fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") );
}).addClass('fancybox-margin');
this.el.addClass('fancybox-margin');
}
scrollV=W.scrollTop();
scrollH=W.scrollLeft();
this.el.addClass('fancybox-lock');
W.scrollTop( scrollV ).scrollLeft( scrollH );
}
this.open(opts);
},
onUpdate : function() {
if (!this.fixed) {
this.update();
}
},
afterClose: function (opts) {
// Remove overlay if exists and fancyBox is not opening
// (e.g., it is not being open using afterClose callback)
//if (this.overlay && !F.isActive) {
if (this.overlay && !F.coming) {
this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
}
}
};
/*
* Title helper
*/
F.helpers.title={
defaults : {
type : 'float', // 'float', 'inside', 'outside' or 'over',
position : 'bottom' // 'top' or 'bottom'
},
beforeShow: function (opts) {
var current=F.current,
text =current.title,
type =opts.type,
title,
target;
if ($.isFunction(text)) {
text=text.call(current.element, current);
}
if (!isString(text) || $.trim(text)==='') {
return;
}
title=$('
' + text + '
');
switch (type) {
case 'inside':
target=F.skin;
break;
case 'outside':
target=F.wrap;
break;
case 'over':
target=F.inner;
break;
default: // 'float'
target=F.skin;
title.appendTo('body');
if (IE) {
title.width( title.width() );
}
title.wrapInner('
');
//Increase bottom margin so this title will also fit into viewport
F.current.margin[2] +=Math.abs( getScalar(title.css('margin-bottom')) );
break;
}
title[ (opts.position==='top' ? 'prependTo' : 'appendTo') ](target);
}
};
// jQuery plugin initialization
$.fn.fancybox=function (options) {
var index,
that =$(this),
selector=this.selector || '',
run =function(e) {
var what=$(this).blur(), idx=index, relType, relVal;
if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {
relType=options.groupAttr || 'data-fancybox-group';
relVal =what.attr(relType);
if (!relVal) {
relType='rel';
relVal =what.get(0)[ relType ];
}
if (relVal && relVal !=='' && relVal !=='nofollow') {
what=selector.length ? $(selector) : that;
what=what.filter('[' + relType + '="' + relVal + '"]');
idx =what.index(this);
}
options.index=idx;
// Stop an event from bubbling if everything is fine
if (F.open(what, options) !==false) {
e.preventDefault();
}
}
};
options=options || {};
index =options.index || 0;
if (!selector || options.live===false) {
that.unbind('click.fb-start').bind('click.fb-start', run);
} else {
D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
}
this.filter('[data-fancybox-start=1]').trigger('click');
return this;
};
// Tests that need a body at doc ready
D.ready(function() {
var w1, w2;
if ( $.scrollbarWidth===undefined ) {
// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
$.scrollbarWidth=function() {
var parent=$('
').appendTo('body'),
child =parent.children(),
width =child.innerWidth() - child.height( 99 ).innerWidth();
parent.remove();
return width;
};
}
if ( $.support.fixedPosition===undefined ) {
$.support.fixedPosition=(function() {
var elem =$('
').appendTo('body'),
fixed=( elem[0].offsetTop===20 || elem[0].offsetTop===15 );
elem.remove();
return fixed;
}());
}
$.extend(F.defaults, {
scrollbarWidth : $.scrollbarWidth(),
fixed : $.support.fixedPosition,
parent : $('body')
});
//Get real width of page scroll-bar
w1=$(window).width();
H.addClass('fancybox-lock-test');
w2=$(window).width();
H.removeClass('fancybox-lock-test');
$("").appendTo("head");
});
}(window, document, jQuery));/*
Masked Input plugin for jQuery
Copyright (c) 2007-2013 Josh Bush (digitalbush.com)
Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
Version: 1.3.1
*/
(function($) {
function getPasteEvent() {
var el=document.createElement('input'),
name='onpaste';
el.setAttribute(name, '');
return (typeof el[name]==='function')?'paste':'input';
}
var pasteEventName=getPasteEvent() + ".mask",
ua=navigator.userAgent,
iPhone=/iphone/i.test(ua),
android=/android/i.test(ua),
caretTimeoutId;
$.mask={
//Predefined character definitions
definitions: {
'9': "[0-9]",
'a': "[A-Za-z]",
'*': "[A-Za-z0-9]"
},
dataName: "rawMaskFn",
placeholder: '_',
};
$.fn.extend({
//Helper Function for Caret positioning
caret: function(begin, end) {
var range;
if (this.length===0 || this.is(":hidden")) {
return;
}
if (typeof begin=='number') {
end=(typeof end==='number') ? end : begin;
return this.each(function() {
if (this.setSelectionRange) {
this.setSelectionRange(begin, end);
} else if (this.createTextRange) {
range=this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', begin);
range.select();
}
});
} else {
if (this[0].setSelectionRange) {
begin=this[0].selectionStart;
end=this[0].selectionEnd;
} else if (document.selection && document.selection.createRange) {
range=document.selection.createRange();
begin=0 - range.duplicate().moveStart('character', -100000);
end=begin + range.text.length;
}
return { begin: begin, end: end };
}
},
unmask: function() {
return this.trigger("unmask");
},
mask: function(mask, settings) {
var input,
defs,
tests,
partialPosition,
firstNonMaskPos,
len;
if (!mask && this.length > 0) {
input=$(this[0]);
return input.data($.mask.dataName)();
}
settings=$.extend({
placeholder: $.mask.placeholder, // Load default placeholder
completed: null
}, settings);
defs=$.mask.definitions;
tests=[];
partialPosition=len=mask.length;
firstNonMaskPos=null;
$.each(mask.split(""), function(i, c) {
if (c=='?') {
len--;
partialPosition=i;
} else if (defs[c]) {
tests.push(new RegExp(defs[c]));
if (firstNonMaskPos===null) {
firstNonMaskPos=tests.length - 1;
}
} else {
tests.push(null);
}
});
return this.trigger("unmask").each(function() {
var input=$(this),
buffer=$.map(
mask.split(""),
function(c, i) {
if (c !='?') {
return defs[c] ? settings.placeholder : c;
}
}),
focusText=input.val();
function seekNext(pos) {
while (++pos < len && !tests[pos]);
return pos;
}
function seekPrev(pos) {
while (--pos >=0 && !tests[pos]);
return pos;
}
function shiftL(begin,end) {
var i,
j;
if (begin<0) {
return;
}
for (i=begin, j=seekNext(end); i < len; i++) {
if (tests[i]) {
if (j < len && tests[i].test(buffer[j])) {
buffer[i]=buffer[j];
buffer[j]=settings.placeholder;
} else {
break;
}
j=seekNext(j);
}
}
writeBuffer();
input.caret(Math.max(firstNonMaskPos, begin));
}
function shiftR(pos) {
var i,
c,
j,
t;
for (i=pos, c=settings.placeholder; i < len; i++) {
if (tests[i]) {
j=seekNext(i);
t=buffer[i];
buffer[i]=c;
if (j < len && tests[j].test(t)) {
c=t;
} else {
break;
}
}
}
}
function keydownEvent(e) {
var k=e.which,
pos,
begin,
end;
//backspace, delete, and escape get special treatment
if (k===8 || k===46 || (iPhone && k===127)) {
pos=input.caret();
begin=pos.begin;
end=pos.end;
if (end - begin===0) {
begin=k!==46?seekPrev(begin):(end=seekNext(begin-1));
end=k===46?seekNext(end):end;
}
clearBuffer(begin, end);
shiftL(begin, end - 1);
e.preventDefault();
} else if (k==27) {//escape
input.val(focusText);
input.caret(0, checkVal());
e.preventDefault();
}
}
function keypressEvent(e) {
var k=e.which,
pos=input.caret(),
p,
c,
next;
if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {//Ignore
return;
} else if (k) {
if (pos.end - pos.begin !==0){
clearBuffer(pos.begin, pos.end);
shiftL(pos.begin, pos.end-1);
}
p=seekNext(pos.begin - 1);
if (p < len) {
c=String.fromCharCode(k);
if (tests[p].test(c)) {
shiftR(p);
buffer[p]=c;
writeBuffer();
next=seekNext(p);
if(android){
setTimeout($.proxy($.fn.caret,input,next),0);
}else{
input.caret(next);
}
if (settings.completed && next >=len) {
settings.completed.call(input);
}
}
}
e.preventDefault();
}
}
function clearBuffer(start, end) {
var i;
for (i=start; i < end && i < len; i++) {
if (tests[i]) {
buffer[i]=settings.placeholder;
}
}
}
function writeBuffer() { input.val(buffer.join('')); }
function checkVal(allow) {
//try to place characters where they belong
var test=input.val(),
lastMatch=-1,
i,
c;
for (i=0, pos=0; i < len; i++) {
if (tests[i]) {
buffer[i]=settings.placeholder;
while (pos++ < test.length) {
c=test.charAt(pos - 1);
if (tests[i].test(c)) {
buffer[i]=c;
lastMatch=i;
break;
}
}
if (pos > test.length) {
break;
}
} else if (buffer[i]===test.charAt(pos) && i !==partialPosition) {
pos++;
lastMatch=i;
}
}
if (allow) {
writeBuffer();
} else if (lastMatch + 1 < partialPosition) {
input.val("");
clearBuffer(0, len);
} else {
writeBuffer();
input.val(input.val().substring(0, lastMatch + 1));
}
return (partialPosition ? i : firstNonMaskPos);
}
input.data($.mask.dataName,function(){
return $.map(buffer, function(c, i) {
return tests[i]&&c!=settings.placeholder ? c : null;
}).join('');
});
if (!input.attr("readonly"))
input
.one("unmask", function() {
input
.unbind(".mask")
.removeData($.mask.dataName);
})
.bind("focus.mask", function() {
clearTimeout(caretTimeoutId);
var pos,
moveCaret;
focusText=input.val();
pos=checkVal();
caretTimeoutId=setTimeout(function(){
writeBuffer();
if (pos==mask.length) {
input.caret(0, pos);
} else {
input.caret(pos);
}
}, 10);
})
.bind("blur.mask", function() {
checkVal();
if (input.val() !=focusText)
input.change();
})
.bind("keydown.mask", keydownEvent)
.bind("keypress.mask", keypressEvent)
.bind(pasteEventName, function() {
setTimeout(function() {
var pos=checkVal(true);
input.caret(pos);
if (settings.completed && pos==input.val().length)
settings.completed.call(input);
}, 0);
});
checkVal(); //Perform initial check for existing values
});
}
});
})(jQuery);/**
* BxSlider v4.1.2 - Fully loaded, responsive content slider
* http://bxslider.com
*
* Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
* Written while drinking Belgian ales and listening to jazz
*
* Released under the MIT license - http://opensource.org/licenses/MIT
*/
!function(t){var e={},s={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},onSliderResize:function(){}};t.fn.bxSlider=function(n){if(0==this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var o={},r=this;e.el=this;var a=t(window).width(),l=t(window).width(),d=function(){o.settings=t.extend({},s,n),o.settings.slideWidth=parseInt(o.settings.slideWidth),o.children=r.children(o.settings.slideSelector),o.children.length
1||o.settings.maxSlides>1,o.carousel&&(o.settings.preloadImages="all"),o.minThreshold=o.settings.minSlides*o.settings.slideWidth+(o.settings.minSlides-1)*o.settings.slideMargin,o.maxThreshold=o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin,o.working=!1,o.controls={},o.interval=null,o.animProp="vertical"==o.settings.mode?"top":"left",o.usingCSS=o.settings.useCSS&&"fade"!=o.settings.mode&&function(){var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in e)if(void 0!==t.style[e[i]])return o.cssPrefix=e[i].replace("Perspective","").toLowerCase(),o.animProp="-"+o.cssPrefix+"-transform",!0;return!1}(),"vertical"==o.settings.mode&&(o.settings.maxSlides=o.settings.minSlides),r.data("origStyle",r.attr("style")),r.children(o.settings.slideSelector).each(function(){t(this).data("origStyle",t(this).attr("style"))}),c()},c=function(){r.wrap(''),o.viewport=r.parent(),o.loader=t('
'),o.viewport.prepend(o.loader),r.css({width:"horizontal"==o.settings.mode?100*o.children.length+215+"%":"auto",position:"relative"}),o.usingCSS&&o.settings.easing?r.css("-"+o.cssPrefix+"-transition-timing-function",o.settings.easing):o.settings.easing||(o.settings.easing="swing"),f(),o.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),o.viewport.parent().css({maxWidth:p()}),o.settings.pager||o.viewport.parent().css({margin:"0 auto 0px"}),o.children.css({"float":"horizontal"==o.settings.mode?"left":"none",listStyle:"none",position:"relative"}),o.children.css("width",u()),"horizontal"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginRight",o.settings.slideMargin),"vertical"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginBottom",o.settings.slideMargin),"fade"==o.settings.mode&&(o.children.css({position:"absolute",zIndex:0,display:"none"}),o.children.eq(o.settings.startSlide).css({zIndex:o.settings.slideZIndex,display:"block"})),o.controls.el=t('
'),o.settings.captions&&P(),o.active.last=o.settings.startSlide==x()-1,o.settings.video&&r.fitVids();var e=o.children.eq(o.settings.startSlide);"all"==o.settings.preloadImages&&(e=o.children),o.settings.ticker?o.settings.pager=!1:(o.settings.pager&&T(),o.settings.controls&&C(),o.settings.auto&&o.settings.autoControls&&E(),(o.settings.controls||o.settings.autoControls||o.settings.pager)&&o.viewport.after(o.controls.el)),g(e,h)},g=function(e,i){var s=e.find("img, iframe").length;if(0==s)return i(),void 0;var n=0;e.find("img, iframe").each(function(){t(this).one("load",function(){++n==s&&i()}).each(function(){this.complete&&t(this).load()})})},h=function(){if(o.settings.infiniteLoop&&"fade"!=o.settings.mode&&!o.settings.ticker){var e="vertical"==o.settings.mode?o.settings.minSlides:o.settings.maxSlides,i=o.children.slice(0,e).clone().addClass("bx-clone"),s=o.children.slice(-e).clone().addClass("bx-clone");r.append(i).prepend(s)}o.loader.remove(),S(),"vertical"==o.settings.mode&&(o.settings.adaptiveHeight=!0),o.viewport.height(v()),r.redrawSlider(),o.settings.onSliderLoad(o.active.index),o.initialized=!0,o.settings.responsive&&t(window).bind("resize",Z),o.settings.auto&&o.settings.autoStart&&H(),o.settings.ticker&&L(),o.settings.pager&&q(o.settings.startSlide),o.settings.controls&&W(),o.settings.touchEnabled&&!o.settings.ticker&&O()},v=function(){var e=0,s=t();if("vertical"==o.settings.mode||o.settings.adaptiveHeight)if(o.carousel){var n=1==o.settings.moveSlides?o.active.index:o.active.index*m();for(s=o.children.eq(n),i=1;i<=o.settings.maxSlides-1;i++)s=n+i>=o.children.length?s.add(o.children.eq(i-1)):s.add(o.children.eq(n+i))}else s=o.children.eq(o.active.index);else s=o.children;return"vertical"==o.settings.mode?(s.each(function(){e+=t(this).outerHeight()}),o.settings.slideMargin>0&&(e+=o.settings.slideMargin*(o.settings.minSlides-1))):e=Math.max.apply(Math,s.map(function(){return t(this).outerHeight(!1)}).get()),e},p=function(){var t="100%";return o.settings.slideWidth>0&&(t="horizontal"==o.settings.mode?o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin:o.settings.slideWidth),t},u=function(){var t=o.settings.slideWidth,e=o.viewport.width();return 0==o.settings.slideWidth||o.settings.slideWidth>e&&!o.carousel||"vertical"==o.settings.mode?t=e:o.settings.maxSlides>1&&"horizontal"==o.settings.mode&&(e>o.maxThreshold||e0)if(o.viewport.width()o.maxThreshold)t=o.settings.maxSlides;else{var e=o.children.first().width();t=Math.floor(o.viewport.width()/e)}else"vertical"==o.settings.mode&&(t=o.settings.minSlides);return t},x=function(){var t=0;if(o.settings.moveSlides>0)if(o.settings.infiniteLoop)t=o.children.length/m();else for(var e=0,i=0;e0&&o.settings.moveSlides<=f()?o.settings.moveSlides:f()},S=function(){if(o.children.length>o.settings.maxSlides&&o.active.last&&!o.settings.infiniteLoop){if("horizontal"==o.settings.mode){var t=o.children.last(),e=t.position();b(-(e.left-(o.viewport.width()-t.width())),"reset",0)}else if("vertical"==o.settings.mode){var i=o.children.length-o.settings.minSlides,e=o.children.eq(i).position();b(-e.top,"reset",0)}}else{var e=o.children.eq(o.active.index*m()).position();o.active.index==x()-1&&(o.active.last=!0),void 0!=e&&("horizontal"==o.settings.mode?b(-e.left,"reset",0):"vertical"==o.settings.mode&&b(-e.top,"reset",0))}},b=function(t,e,i,s){if(o.usingCSS){var n="vertical"==o.settings.mode?"translate3d(0, "+t+"px, 0)":"translate3d("+t+"px, 0, 0)";r.css("-"+o.cssPrefix+"-transition-duration",i/1e3+"s"),"slide"==e?(r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),D()})):"reset"==e?r.css(o.animProp,n):"ticker"==e&&(r.css("-"+o.cssPrefix+"-transition-timing-function","linear"),r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),b(s.resetValue,"reset",0),N()}))}else{var a={};a[o.animProp]=t,"slide"==e?r.animate(a,i,o.settings.easing,function(){D()}):"reset"==e?r.css(o.animProp,t):"ticker"==e&&r.animate(a,speed,"linear",function(){b(s.resetValue,"reset",0),N()})}},w=function(){for(var e="",i=x(),s=0;i>s;s++){var n="";o.settings.buildPager&&t.isFunction(o.settings.buildPager)?(n=o.settings.buildPager(s),o.pagerEl.addClass("bx-custom-pager")):(n=s+1,o.pagerEl.addClass("bx-default-pager")),e+='"}o.pagerEl.html(e)},T=function(){o.settings.pagerCustom?o.pagerEl=t(o.settings.pagerCustom):(o.pagerEl=t(''),o.settings.pagerSelector?t(o.settings.pagerSelector).html(o.pagerEl):o.controls.el.addClass("bx-has-pager").append(o.pagerEl),w()),o.pagerEl.on("click","a",I)},C=function(){o.controls.next=t(''+o.settings.nextText+" "),o.controls.prev=t(''+o.settings.prevText+" "),o.controls.next.bind("click",y),o.controls.prev.bind("click",z),o.settings.nextSelector&&t(o.settings.nextSelector).append(o.controls.next),o.settings.prevSelector&&t(o.settings.prevSelector).append(o.controls.prev),o.settings.nextSelector||o.settings.prevSelector||(o.controls.directionEl=t('
'),o.controls.directionEl.append(o.controls.prev).append(o.controls.next),o.controls.el.addClass("bx-has-controls-direction").append(o.controls.directionEl))},E=function(){o.controls.start=t('"),o.controls.stop=t('"),o.controls.autoEl=t('
'),o.controls.autoEl.on("click",".bx-start",k),o.controls.autoEl.on("click",".bx-stop",M),o.settings.autoControlsCombine?o.controls.autoEl.append(o.controls.start):o.controls.autoEl.append(o.controls.start).append(o.controls.stop),o.settings.autoControlsSelector?t(o.settings.autoControlsSelector).html(o.controls.autoEl):o.controls.el.addClass("bx-has-controls-auto").append(o.controls.autoEl),A(o.settings.autoStart?"stop":"start")},P=function(){o.children.each(function(){var e=t(this).find("img:first").attr("title");void 0!=e&&(""+e).length&&t(this).append(''+e+"
")})},y=function(t){o.settings.auto&&r.stopAuto(),r.goToNextSlide(),t.preventDefault()},z=function(t){o.settings.auto&&r.stopAuto(),r.goToPrevSlide(),t.preventDefault()},k=function(t){r.startAuto(),t.preventDefault()},M=function(t){r.stopAuto(),t.preventDefault()},I=function(e){o.settings.auto&&r.stopAuto();var i=t(e.currentTarget),s=parseInt(i.attr("data-slide-index"));s!=o.active.index&&r.goToSlide(s),e.preventDefault()},q=function(e){var i=o.children.length;return"short"==o.settings.pagerType?(o.settings.maxSlides>1&&(i=Math.ceil(o.children.length/o.settings.maxSlides)),o.pagerEl.html(e+1+o.settings.pagerShortSeparator+i),void 0):(o.pagerEl.find("a").removeClass("active"),o.pagerEl.each(function(i,s){t(s).find("a").eq(e).addClass("active")}),void 0)},D=function(){if(o.settings.infiniteLoop){var t="";0==o.active.index?t=o.children.eq(0).position():o.active.index==x()-1&&o.carousel?t=o.children.eq((x()-1)*m()).position():o.active.index==o.children.length-1&&(t=o.children.eq(o.children.length-1).position()),t&&("horizontal"==o.settings.mode?b(-t.left,"reset",0):"vertical"==o.settings.mode&&b(-t.top,"reset",0))}o.working=!1,o.settings.onSlideAfter(o.children.eq(o.active.index),o.oldIndex,o.active.index)},A=function(t){o.settings.autoControlsCombine?o.controls.autoEl.html(o.controls[t]):(o.controls.autoEl.find("a").removeClass("active"),o.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},W=function(){1==x()?(o.controls.prev.addClass("disabled"),o.controls.next.addClass("disabled")):!o.settings.infiniteLoop&&o.settings.hideControlOnEnd&&(0==o.active.index?(o.controls.prev.addClass("disabled"),o.controls.next.removeClass("disabled")):o.active.index==x()-1?(o.controls.next.addClass("disabled"),o.controls.prev.removeClass("disabled")):(o.controls.prev.removeClass("disabled"),o.controls.next.removeClass("disabled")))},H=function(){o.settings.autoDelay>0?setTimeout(r.startAuto,o.settings.autoDelay):r.startAuto(),o.settings.autoHover&&r.hover(function(){o.interval&&(r.stopAuto(!0),o.autoPaused=!0)},function(){o.autoPaused&&(r.startAuto(!0),o.autoPaused=null)})},L=function(){var e=0;if("next"==o.settings.autoDirection)r.append(o.children.clone().addClass("bx-clone"));else{r.prepend(o.children.clone().addClass("bx-clone"));var i=o.children.first().position();e="horizontal"==o.settings.mode?-i.left:-i.top}b(e,"reset",0),o.settings.pager=!1,o.settings.controls=!1,o.settings.autoControls=!1,o.settings.tickerHover&&!o.usingCSS&&o.viewport.hover(function(){r.stop()},function(){var e=0;o.children.each(function(){e+="horizontal"==o.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)});var i=o.settings.speed/e,s="horizontal"==o.settings.mode?"left":"top",n=i*(e-Math.abs(parseInt(r.css(s))));N(n)}),N()},N=function(t){speed=t?t:o.settings.speed;var e={left:0,top:0},i={left:0,top:0};"next"==o.settings.autoDirection?e=r.find(".bx-clone").first().position():i=o.children.first().position();var s="horizontal"==o.settings.mode?-e.left:-e.top,n="horizontal"==o.settings.mode?-i.left:-i.top,a={resetValue:n};b(s,"ticker",speed,a)},O=function(){o.touch={start:{x:0,y:0},end:{x:0,y:0}},o.viewport.bind("touchstart",X)},X=function(t){if(o.working)t.preventDefault();else{o.touch.originalPos=r.position();var e=t.originalEvent;o.touch.start.x=e.changedTouches[0].pageX,o.touch.start.y=e.changedTouches[0].pageY,o.viewport.bind("touchmove",Y),o.viewport.bind("touchend",V)}},Y=function(t){var e=t.originalEvent,i=Math.abs(e.changedTouches[0].pageX-o.touch.start.x),s=Math.abs(e.changedTouches[0].pageY-o.touch.start.y);if(3*i>s&&o.settings.preventDefaultSwipeX?t.preventDefault():3*s>i&&o.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!=o.settings.mode&&o.settings.oneToOneTouch){var n=0;if("horizontal"==o.settings.mode){var r=e.changedTouches[0].pageX-o.touch.start.x;n=o.touch.originalPos.left+r}else{var r=e.changedTouches[0].pageY-o.touch.start.y;n=o.touch.originalPos.top+r}b(n,"reset",0)}},V=function(t){o.viewport.unbind("touchmove",Y);var e=t.originalEvent,i=0;if(o.touch.end.x=e.changedTouches[0].pageX,o.touch.end.y=e.changedTouches[0].pageY,"fade"==o.settings.mode){var s=Math.abs(o.touch.start.x-o.touch.end.x);s>=o.settings.swipeThreshold&&(o.touch.start.x>o.touch.end.x?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto())}else{var s=0;"horizontal"==o.settings.mode?(s=o.touch.end.x-o.touch.start.x,i=o.touch.originalPos.left):(s=o.touch.end.y-o.touch.start.y,i=o.touch.originalPos.top),!o.settings.infiniteLoop&&(0==o.active.index&&s>0||o.active.last&&0>s)?b(i,"reset",200):Math.abs(s)>=o.settings.swipeThreshold?(0>s?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto()):b(i,"reset",200)}o.viewport.unbind("touchend",V)},Z=function(){var e=t(window).width(),i=t(window).height();(a!=e||l!=i)&&(a=e,l=i,r.redrawSlider(),o.settings.onSliderResize.call(r,o.active.index))};return r.goToSlide=function(e,i){if(!o.working&&o.active.index!=e)if(o.working=!0,o.oldIndex=o.active.index,o.active.index=0>e?x()-1:e>=x()?0:e,o.settings.onSlideBefore(o.children.eq(o.active.index),o.oldIndex,o.active.index),"next"==i?o.settings.onSlideNext(o.children.eq(o.active.index),o.oldIndex,o.active.index):"prev"==i&&o.settings.onSlidePrev(o.children.eq(o.active.index),o.oldIndex,o.active.index),o.active.last=o.active.index>=x()-1,o.settings.pager&&q(o.active.index),o.settings.controls&&W(),"fade"==o.settings.mode)o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed),o.children.filter(":visible").fadeOut(o.settings.speed).css({zIndex:0}),o.children.eq(o.active.index).css("zIndex",o.settings.slideZIndex+1).fadeIn(o.settings.speed,function(){t(this).css("zIndex",o.settings.slideZIndex),D()});else{o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed);var s=0,n={left:0,top:0};if(!o.settings.infiniteLoop&&o.carousel&&o.active.last)if("horizontal"==o.settings.mode){var a=o.children.eq(o.children.length-1);n=a.position(),s=o.viewport.width()-a.outerWidth()}else{var l=o.children.length-o.settings.minSlides;n=o.children.eq(l).position()}else if(o.carousel&&o.active.last&&"prev"==i){var d=1==o.settings.moveSlides?o.settings.maxSlides-m():(x()-1)*m()-(o.children.length-o.settings.maxSlides),a=r.children(".bx-clone").eq(d);n=a.position()}else if("next"==i&&0==o.active.index)n=r.find("> .bx-clone").eq(o.settings.maxSlides).position(),o.active.last=!1;else if(e>=0){var c=e*m();n=o.children.eq(c).position()}if("undefined"!=typeof n){var g="horizontal"==o.settings.mode?-(n.left-s):-n.top;b(g,"slide",o.settings.speed)}}},r.goToNextSlide=function(){if(o.settings.infiniteLoop||!o.active.last){var t=parseInt(o.active.index)+1;r.goToSlide(t,"next")}},r.goToPrevSlide=function(){if(o.settings.infiniteLoop||0!=o.active.index){var t=parseInt(o.active.index)-1;r.goToSlide(t,"prev")}},r.startAuto=function(t){o.interval||(o.interval=setInterval(function(){"next"==o.settings.autoDirection?r.goToNextSlide():r.goToPrevSlide()},o.settings.pause),o.settings.autoControls&&1!=t&&A("stop"))},r.stopAuto=function(t){o.interval&&(clearInterval(o.interval),o.interval=null,o.settings.autoControls&&1!=t&&A("start"))},r.getCurrentSlide=function(){return o.active.index},r.getCurrentSlideElement=function(){return o.children.eq(o.active.index)},r.getSlideCount=function(){return o.children.length},r.redrawSlider=function(){o.children.add(r.find(".bx-clone")).outerWidth(u()),o.viewport.css("height",v()),o.settings.ticker||S(),o.active.last&&(o.active.index=x()-1),o.active.index>=x()&&(o.active.last=!0),o.settings.pager&&!o.settings.pagerCustom&&(w(),q(o.active.index))},r.destroySlider=function(){o.initialized&&(o.initialized=!1,t(".bx-clone",this).remove(),o.children.each(function(){void 0!=t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!=t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),o.controls.el&&o.controls.el.remove(),o.controls.next&&o.controls.next.remove(),o.controls.prev&&o.controls.prev.remove(),o.pagerEl&&o.settings.controls&&o.pagerEl.remove(),t(".bx-caption",this).remove(),o.controls.autoEl&&o.controls.autoEl.remove(),clearInterval(o.interval),o.settings.responsive&&t(window).unbind("resize",Z))},r.reloadSlider=function(t){void 0!=t&&(n=t),r.destroySlider(),d()},d(),this}}(jQuery);var ajax_send=false;
var ie_8=false;
//var hint_txt="Пожалуйста, заполните это поле";
var hint_txt="Не заполнено поле";
var hint_txt_email="Пожалуйста, введите корректный e-mail";
var hint_txt_email="Пожалуйста, введите корректный телефон";
var spinner_button={
lines: 8, // The number of lines to draw
length: 3, // The length of each line
width: 4, // The line thickness
radius: 5, // The radius of the inner circle
corners: 1, // Corner roundness (0..1)
rotate: 0, // The rotation offset
direction: 1, // 1: clockwise, -1: counterclockwise
color: '#fff', // #rgb or #rrggbb or array of colors
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: false, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: 'auto', // Top position relative to parent in px
left: 'auto' // Left position relative to parent in px
};
$(document).ready(
function () {
setTimeout(function () {
//!Validate form
$("body").on("submit", "form",
function (event) {
var form_valid=true;
var obj_form=$(this);
var obj_offset=0;
var inputs=$(":input:not(:submit, :reset, :hidden)", obj_form);
$(".hint").remove();
if (form_valid) {
inputs.filter("[type='text']").each(
function () {
var obj=$(this);
if ($.trim(obj.val())=="" || $.trim(obj.val())==obj.attr("placeholder")) {
obj.val("");
obj_offset=obj.offset();
obj_offset.top +=obj.outerHeight();
var this_place=$(this).attr('data-placeholder');
$(this).css("border", "1px solid red").attr('placeholder', this_place + ': ' + 'заполните это поле');
$(this).addClass('errors');
$("[type='phone']").not(this).css("border", "");
$("[type='text']").not(this).css("border", "1px solid #cecece");
form_valid=false;
return false;
}
}
);
}
// if (form_valid) {
// inputs.filter("[type='password'][required]").each(
// function () {
// var obj=$(this);
// if ($.trim(obj.val())=="" || $.trim(obj.val())==obj.attr("placeholder")) {
// obj.val("");
// obj_offset=obj.offset();
// obj_offset.top +=obj.outerHeight();
// $(".hint").css({"left": obj_offset.left, "top": obj_offset.top, "max-width": obj.outerWidth()});
// form_valid=false;
// return false;
// }
// }
// );
// }
// if (form_valid) {
// inputs.filter("textarea").each(
// function () {
// var obj=$(this);
// if ($.trim(obj.val())=="" || $.trim(obj.val())==obj.attr("placeholder")) {
// obj.val("");
// obj_offset=obj.offset();
// obj_offset.top +=obj.outerHeight();
// $(".hint").css({"left": obj_offset.left, "top": obj_offset.top, "max-width": obj.outerWidth()});
// $(this).css("border","1px solid red");
// form_valid=false;
// return false;
// }
// }
// );
// }
if (form_valid) {
inputs.filter("[type='phone']").each(
function () {
var obj=$(this);
if ($.trim(obj.val())=="" || $.trim(obj.val())==obj.attr("placeholder")) {
obj.val("");
obj_offset=obj.offset();
obj_offset.top +=obj.outerHeight();
var this_place=$(this).attr('data-placeholder');
$(this).css("border", "1px solid red").attr('placeholder', this_place + ': ' + 'заполните это поле');
$("[type='text']").not(this).css("border", "");
$("[type='phone']").not(this).css("border", "1px solid #cecece");
form_valid=false;
return false;
}
}
);
}
// if (form_valid) {
// inputs.filter("[type='email']").each(
// function () {
// var obj=$(this);
// if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test($.trim(obj.val()))) {
// obj_offset=obj.offset();
// obj_offset.top +=obj.outerHeight();
// //$("body").append("");
// $(".hint").css({"left": obj_offset.left, "top": obj_offset.top, "max-width": obj.outerWidth()});
// $(this).css("border","1px solid red");
// form_valid=false;
// return false;
// }
// }
// );
// }
if (form_valid) {
if (!obj_form.hasClass("on_ajax")) return true;
if (!ajax_send) {
ajax_send=true;
$(".hint").remove();
var obj=$("button", obj_form);
//alert("Спасибо, Ваша заявка перинята!");
$data=$('.send').html();
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
maxWidth: 600,
width: '500',
autoHeight: true,
topRatio: 0.15,
padding: 20
});
if (obj.get(0)) {
var spinner=Spinner(spinner_button).spin();
obj.prepend(spinner.el)
} else obj=$("input[type='submit']", obj_form);
var data=obj_form.serializeArray();
var contentType='application/x-www-form-urlencoded; charset=UTF-8';
var processData=true;
$('input[type="text"]').val('').css('border', '1px solid #909095').attr('placeholder', 'ФИО');
$('input[type="phone"]').val('').css('border', '1px solid #909095').attr('placeholder', 'Телефон');
if ($("input[type='file']", obj_form).get(0)) {
var form_data=data;
data=new FormData();
$("input[type='file']", obj_form).each(
function () {
var file=$(this);
data.append(file.attr("name"), file.prop("files")[0]);
}
);
for (key in form_data) data.append(form_data[key]["name"], form_data[key]["value"]);
contentType=false;
processData=false;
}
$.ajax({
url: obj_form.attr("action"),
data: data,
type: "post",
contentType: contentType,
processData: processData,
success: function (reply) {
ajax_send=false;
spinner.stop();
if (reply) {
if (reply.success) {
if (reply.response.redirect_url !=undefined) {
if (reply.response.redirect_url.indexOf("!") !=-1) window.location.reload();
else window.location=reply.response.redirect_url;
}
obj_form.html("" + reply.message + "
");
} else {
$.each(reply.errors, function (key, val) {
obj=$("input[name=" + key + "]:visible");
$("body").append("");
var hint_obj=$(".hint." + key);
hint_obj.css({ "left": obj.offset().left + obj.outerWidth() / 2 - hint_obj.outerWidth() / 2, "top": obj.offset().top + obj.outerHeight(), "margin-top": 5 });
if (hint_obj.offset().left < 0) hint_obj.css({ "left": 0 });
if ((hint_obj.offset().left + hint_obj.outerWidth()) > $(window).width()) hint_obj.css({ "right": 0, "left": "auto" });
if (!obj_form.parent().hasClass("popup_block")) $("html, body").animate({ scrollTop: hint_obj.offset().top - ($(window).height() / 2 - hint_obj.outerHeight() / 2) });
});
}
}
}
});
}
} else {
if (!obj_form.parent().hasClass("popup_block")) $("html, body").animate({ scrollTop: obj_offset.top - ($(window).height() / 2 - $(".hint").outerHeight() / 2) });
$("button", obj_form).addClass("animated bounce").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
function () {
$(this).removeClass("animated bounce");
}
);
}
event.stopImmediatePropagation();
return false;
}
);
}, 1000);
}
);
/*!
* jQuery Cookie Plugin v1.3.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function ($, document, undefined) {
var pluses=/\+/g;
function raw(s) {
return s;
}
function decoded(s) {
return unRfc2068(decodeURIComponent(s.replace(pluses, ' ')));
}
function unRfc2068(value) {
if (value.indexOf('"')===0) {
// This is a quoted cookie as according to RFC2068, unescape
value=value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
return value;
}
function fromJSON(value) {
return config.json ? JSON.parse(value) : value;
}
var config=$.cookie=function (key, value, options) {
// write
if (value !==undefined) {
options=$.extend({}, config.defaults, options);
if (value===null) {
options.expires=-1;
}
if (typeof options.expires==='number') {
var days=options.expires, t=options.expires=new Date();
t.setDate(t.getDate() + days);
}
value=config.json ? JSON.stringify(value) : String(value);
return (document.cookie=[
encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// read
var decode=config.raw ? raw : decoded;
var cookies=document.cookie.split('; ');
var result=key ? null : {};
for (var i=0, l=cookies.length; i < l; i++) {
var parts=cookies[i].split('=');
var name=decode(parts.shift());
var cookie=decode(parts.join('='));
if (key && key===name) {
result=fromJSON(cookie);
break;
}
if (!key) {
result[name]=fromJSON(cookie);
}
}
return result;
};
config.defaults={};
$.removeCookie=function (key, options) {
if ($.cookie(key) !==null) {
$.cookie(key, null, options);
return true;
}
return false;
};
})(jQuery, document);
$(document).ready(function () {
/*Основное меню - подцветка текушего пунтка*/
$('.menu').find('li').each(function () {
var href=$(this).find('a').attr('href');
if (window.location.href.match('/blog/')) {
if (href=='/blog/') {
$(this).addClass('active');
}
} else if (href !='/') {
if (window.location.href.match(href)) {
$(this).addClass('active');
}
} else {
if (window.location.href=='https://www.decarto.ru/') {
$(this).addClass('active');
}
}
});
var variable=$.cookie("banner_content");
if (variable !="true") {
if ($("#corporate_customers_banner").length) {
setTimeout(function () {
$data=$('#corporate_customers_banner').html();
$.fancybox({
type: "html",
content: $data,
autoSize: true,
//wrapCSS: 'fancybox-about-section',
// minWidth: 500,
//maxWidth: 600,
//width: '500',
autoHeight: true,
//topRatio: 0.15,
padding: 20
});
return false;
}, 6000);
setTimeout(function () {
var date=new Date();
date.setTime(date.getTime() + (10 * 60 * 1000));
$.cookie('banner_content', 'true', {
expires: date,
path: '/',
});
}, 6500)
}
}
setTimeout(function () {
$('.form-preloader').fadeOut();
}, 2000);
$('.facts li .desc').each(function () {
var desc_height=$(this).height();
$(this).css('margin-top', -desc_height / 2);
});
//!to_top
$(window).scroll(function () {
var scroll=$(window).scrollTop();
if (scroll > 200) {
$('.to-top').css('opacity', '1');
} else {
$('.to-top').css('opacity', '0');
}
});
$('.to-top').click(function () {
$(this).addClass('offtop');
setTimeout(function () {
$('.to-top').removeClass('offtop');
}, 1000)
$('html,body').animate({ 'scrollTop': 0 }, 1000);
});
//end top
//!INPUT
$('input.fio').attr('value', '');
$('input.phone').attr('value', '');
setTimeout(function () {
$("input.phone").mask("+7 (999) 999-99-99");
}, 1000);
//!POP-UP
$('.pop-up').bind('click', function (e) {
$('#corporate_customers').bPopup({
modalClose: true,
opacity: 0.9,
modalColor: '#262a30',
positionStyle: 'fixed',
});
return false;
});
$("a.fancybox,.detail_text a").fancybox({
'transitionIn': 'none',
'transitionOut': 'none',
'cyclic': true,
'titlePosition': 'over'
});
$(".fulltext img").click(function () {
var src=$(this).attr('src');
$.fancybox({
padding: 0,
href: src
});
});
setTimeout(function () {
$('li.bx-clone a.fancybox').remove();
}, 1000);
// !PARALAX
$(window).bind('scroll', function (e) {
parallaxScroll();
});
function parallaxScroll() {
var scrolled=$(window).scrollTop();
$('.facts').css('background-position-y', (0 - (scrolled * .8)) + 'px');
}
$('body .kostructor .content .buttons div').click(function () {
$('body .kostructor .content .buttons div').removeClass('active');
$(this).addClass('active');
var kostructor_id=$(this).attr('id');
$('body .kostructor .content .flash div').hide();
$('body .kostructor .content .' + kostructor_id).show();
});
//кастыльные отзывы
//$('.reviews .right button').each(function(){
$('.reviews .right button').click(function () {
//$(this).toggleClass('offtop');
$('.reviews .right button').toggleClass('offtop');
$('.reviews .right button').html('Развернуть текст отзыва');
$('.reviews .right button.offtop').html('Свернуть текст отзыва');
//удаляет белый полувидимый слой
$('.shorttext').toggleClass('no_show_before');
//variable
var this_id=$(this).attr('id');
var text_height=$('.reviews #i' + this_id).height();
//добавляем класс + высоту, взависимости от высоты текста
$('.reviews .right').toggleClass('more_height');
$('.reviews .more_height').css('min-height', 450 + text_height + 'px');
//добавляем класс + высоту, взависимости от высоты текста
$('.reviews .bx-viewport').toggleClass('more_height_slider');
$('.reviews .more_height_slider').css('height', 450 + text_height + 'px');
$('.reviews .bx-pager').toggleClass('to_down_nav');
$('.reviews .text').toggle(0);
//Если класс отсуттвует то тогда убераем ширину
if ($('.reviews .right').hasClass('more_height')) {
} else {
$('.reviews .right').css('min-height', '450px');
$('.reviews .bx-viewport').css('height', '450px');
}
});
//});
var blog_name=$('body#blog .content .left ul a.active li').html();
var blog_link=$('body#blog .content .left ul a.active').attr('href');
$('a.link').html(blog_name);
$('a.link').attr('href', blog_link);
$('body#blog .content .right .item a.more').click(function () {
if (!$(this).hasClass('new')) {
$a_id=$(this).attr('id');
$('.detail_text#' + $a_id).toggle(300);
$(this).toggleClass('offtop');
$('body#blog .content .right .item a.more').html('Читать далее');
$('body#blog .content .right .item a.more.offtop').html('Свернуть');
}
});
$('.main_banner li .more').each(function () {
$(this).click(function () {
window.location.href=$(this).attr('data-href');
});
});
//Клик по кнопке "FANCY"
/*
$(".header .contacts button").click(function () {
$data=$('.callbackform').html();
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
// minWidth: 500,
maxWidth: 600,
width: '500',
autoHeight: true,
topRatio: 0.15,
padding: 20
});
return false;
});
*/
$("body .kostructor .content .i_want_button .i_want_a_color").click(function () {
$data=$('.i_want_a_color_form').html();
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
// minWidth: 500,
maxWidth: 600,
width: '500',
autoHeight: true,
topRatio: 0.15,
padding: 20
});
return false;
});
$(".main_servises_place .main_service .order").click(function (event) {
event.preventDefault();
$data=$('.servises').html();
$span=$(this).attr('data-title');
setTimeout(function () {
$('#servises .title span').html($span);
$("input.phone").mask("+7 (999) 999-99-99");
$("input[name='SERVISE']").val($span);
}, 100);
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
// minWidth: 500,
maxWidth: 600,
width: '500',
autoHeight: true,
topRatio: 0.15,
padding: 20
});
return false;
});
//reviews video
$(".reviews .left .show_video").click(function () {
$video=$(this).attr('id');
$data=$('.video_' + $video).html();
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
// minWidth: 500,
//maxWidth: 600,
width: '560',
autoHeight: true,
topRatio: 0.15,
padding: 20
});
return false;
});
$.ajax({
url: "/include/form.php",
cache: false,
beforeSend: function () { $('#bottom_form').html(''); },
success: function (html) {
$("#bottom_form").html(html);
}
});
$.ajax({
url: "/include/form_service.php",
cache: false,
beforeSend: function () { $('.service_form').html(''); },
success: function (html) {
$(".service_form").html(html);
$("input[name='SERVISE']").val(document.title);
}
});
/*
$.ajax({
url: "/include/form_callback.php",
cache: false,
beforeSend: function () { $('.callbackformtest').html(''); },
success: function (html) {
$(".callbackformtest").html(html);
}
});
*/
$.ajax({
url: "/include/i_want_a_color_form.php",
cache: false,
beforeSend: function () { $('.i_want_a_color_form_this').html(''); },
success: function (html) {
$(".i_want_a_color_form_this").html(html);
}
});
$.ajax({
url: "/include/form_banner.php",
cache: false,
beforeSend: function () { $('.banner_form').html(''); },
success: function (html) {
$(".banner_form").html(html);
}
});
//sliders on, start, GO, впиред :D
$('.bxslider').bxSlider({
mode: 'fade',
speed: 500,
});
//works fix
$('.works li.item').css('width', '800px');
$('.works .bx-viewport').css('width', '860px').css('margin', '0 auto');
//arrow_click
$('.workshop .wrapper .arrow_right').click(function () {
$('.workshop .wrapper .listview img.active').next().click();
$(this).css('background-position-x', '+=64');
});
$('.workshop .wrapper .arrow_left').click(function () {
$('.workshop .wrapper .listview img.active').prev().click();
$(this).css('background-position-x', '-=64');
});
//icon text-vertical center
var max_facts_second_h=0;
$('.facts_second li .other').each(function () {
var height=$(this).height();
if (max_facts_second_h < height) {
max_facts_second_h=height;
}
});
max_facts_second_h=max_facts_second_h + 60;
$('.facts_second li').css('min-height', max_facts_second_h + 'px');
max_facts_second_h=max_facts_second_h - 50;
max_facts_second_h=max_facts_second_h / 2;
$('.facts_second li .other').each(function () {
$(this).css('margin-top', -max_facts_second_h);
});
$("#shum_services .items .item .buy").click(function () {
$data=$('.servises').html();
$span=$(this).attr('data-title');
setTimeout(function () {
$('#servises .title span').html($span);
$("input.phone").mask("+7 (999) 999-99-99");
$("input[name='SERVISE']").val($span);
}, 100);
$.fancybox({
type: "html",
content: $data,
autoSize: false,
wrapCSS: 'fancybox-about-section',
// minWidth: 500,
maxWidth: 600,
width: '500',
autoHeight: true,
topRatio: 0.15,
padding: 20,
});
return false;
});
$("#shum_services .items .item .read").click(function () {
$id=$(this).attr('data-id');
$data=$(".read_text .text" + $id).html();
$.fancybox({
type: "html",
content: $data,
wrapCSS: 'fancybox-about-section',
maxWidth: '60%',
width: '70%',
topRatio: 0.15,
padding: 20
});
return false;
});
/* */
if (window.location.href.match('/faq/')) {
$('.text_content p').hide();
$('.text_content h4')
.css({
'cursor': 'pointer',
'padding': '10px',
'margin': '20px -10px 10px -10px',
})
.hover(function () {
$(this).css({'background': '#eee'})
},function () {
$(this).css({'background': 'none'})
}
)
.click(function () {
var nextel=$(this).next();
while ($(nextel).is('p')) {
$(nextel).toggle(300);
nextel=$(nextel).next();
}
});
}
}); // End Action
$(document).ready(function ($) {
/*****************************/
/* Текст всплываемой надписи */
var text='На данном сайте используются cookie-файлы и другие аналогичные технологии. Если, прочитав это сообщение, вы остаетесь на сайте, это означает, что вы не возражаете против использования этих технологий.
';
/* Стили всплывающей надписи */
var styles={
"position": "fixed",
"left": "30px",
"bottom": "30px",
"width": "400px",
"max-width": "80%",
"height": "auto",
"padding": "10px",
"background-color": "#F2F2F2",
"opacity": "1",
"border": "1px solid #888",
"border-radius": "0px",
"color": "#555",
"z-index": "10000",
};
/* Стили всплывающей надписи - параграф(абзац) */
var styles_p={
"margin": "10px 0px",
};
/* Стиль ссылки в надписи*/
var styles_a={
"color": "#188be5",
};
/* Стиль кнопки в надписи */
var styles_button={
"float": "right",
"cursor": "pointer",
"background": "#08A47E",
"color": "#fff",
"padding": "5px 35px",
"border-radius": "0px",
"border": "none",
};
/* Кнопка при наведении */
var styles_button_hover={
"float": "right",
"cursor": "pointer",
"background": "#038868",
"color": "#fff",
"padding": "5px 35px",
"border-radius": "0px",
"border": "none",
};
/****************************************/
/* Текст под формами, не меняйте классы */
var formtext='Нажимая на кнопку, вы даете согласие на обработку персональных данных
';
var formtext_styles={
"color": "#7d7d7d",
"font-size": "12px",
"line-height": "1.1em",
"padding": "15px 5px",
"letter-spacing": "0px",
"text-align": "center"
};
/* стиль для ссылки */
var formtext_styles_a={
"color": "#7d7d7d",
"font-size": "12px",
"line-height": "1.1em",
};
/* Селекторы form которых не надо вставлять надпись, через запятую */
/* Если в форме есть классы (class) то добавим их .имя_класса без пробелов */
/* Если в форме есть идентификатор (id) то добавим их #идентификатор без пробелов */
var ignore_form='';
/************************************************************/
/* !!! Дальше ничего не меняем, если ты НЕ программист !!! */
/************************************************************/
setTimeout(function () {
/* Вставим текст к формам */
FZ152_SetCheckForms();
var ireadthis=0;
ireadthis=FZ152_readCookie('FZ152_ireadthis');
if (ireadthis !='yes') {
/* Вставим надпись , если нет нужной куки */
$('body').append('');
$('.FZ152_personal_information__').css(styles);
$('.FZ152_personal_information__ a').css(styles_a);
$('.FZ152_personal_information__ p').css(styles_p);
$('.FZ152_personal_information__ button').css(styles_button);
$('.FZ152_personal_information__ button').hover(function () {
$(this).css(styles_button_hover);
}, function () {
$(this).css(styles_button);
});
$('.FZ152_personal_information__ button').click(function () {
FZ152_createCookie('FZ152_ireadthis', 'yes', '3');
$('.FZ152_personal_information__').hide();
return false;
});
}
/*Для ajaxform и встлывающих form*/
var isChecking=false;
$('body').bind("DOMSubtreeModified", function () {
if (!isChecking) {
isChecking=true;
setTimeout(function () {
FZ152_SetCheckForms();
isChecking=false;
}, 200);
}
});
}, 1000);
/* Функция для вставки надписи в формы */
function FZ152_SetCheckForms() {
var selector='form';
if (ignore_form !='') {
selector='form:not(' + ignore_form + ')';
};
$(selector).each(function () {
if (!$(this).hasClass('FZ152_form')) {
$(this).append(formtext);
$('.FZ152_personal-information').css(formtext_styles);
$('.FZ152_personal-information a').css(formtext_styles_a);
$(this).addClass('FZ152_form');
}
});
}
});
function FZ152_createCookie(name, value, days) {
var expires;
if (days) {
var date=new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires="; expires=" + date.toGMTString();
} else {
expires="";
}
document.cookie=encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
};
function FZ152_readCookie(name) {
var nameEQ=encodeURIComponent(name) + "=";
var ca=document.cookie.split(';');
for (var i=0; i < ca.length; i++) {
var c=ca[i];
while (c.charAt(0)===' ')
c=c.substring(1, c.length);
if (c.indexOf(nameEQ)===0)
return decodeURIComponent(c.substring(nameEQ.length, c.length));
}
return null;
};