/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license //@ sourceMappingURL=jquery-2.0.3.min.map */ (function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t) };"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("'); $box.html($i); var $preloader = $('
' + (i18n.m1019 || 'Loading') + '...
').prependTo($box); $i.on('load', function(){ $box.data('loaded', true); $preloader.remove(); if(onload && typeof onload == 'function'){ onload.call($box, $i); } }); } } }, livefyreCommentsVisibleInit: function(id, onload){ var windowHeight = document.documentElement.clientHeight, box = document.getElementById(id); if(box && box.ready == undefined){ var box_rect = box.getBoundingClientRect(); if(box_rect.top < windowHeight){ this.livefyreComments($(box), onload); box.ready = 1; } } }, asideWidgetRepeater: function(widgets, contentEl, sidebarEl, stopheight){ var windowHeight = document.documentElement.clientHeight, sidebar = document.getElementById(sidebarEl), content = document.getElementById(contentEl); if(widgets.length && sidebar && content){ var $sidebar = $(sidebar), sidebarData = $sidebar.data(); var asideBoxesNumber = sidebarData.asideBoxesNumber || 0, asideNumber = sidebarData.asideNumber || 100, sidebar_rect = sidebar.getBoundingClientRect(), content_rect = content.getBoundingClientRect(); var stopRec = false; if(sidebar_rect.height < content_rect.height && sidebar_rect.bottom - windowHeight <= 10){ if(stopRec && sidebar_rect.height == 0){ return null; } if(!stopRec){ stopRec = true; } var $widget = $(widgets[asideBoxesNumber]); var $box = $widget.clone(); if(stopheight){ var boxData = $box.data(); if(boxData.height && boxData.height > content_rect.height - sidebar_rect.height){ return 'stop'; } } $sidebar.append($box); if(stopheight){ var boxHeight = $box.height(); if(content_rect.height - sidebar_rect.height < boxHeight){ $box.remove(); $widget.attr('data-height', boxHeight).data('height', boxHeight); return 'remove'; } } var type = $box.data('type'); if(type == 'content'){ $box.jplDateFormat(layoutConfig.dateFormat); } /*if(type == 'recommendations'){ var url = $box.data('url'); if(url){ $.ajax({ url: url, success: function(response){ if(response && response.constructor === Object && response.status && response.html){ $box.html(response.html); $box.jplDateFormat(layoutConfig.dateFormat); } } }); } }*/ if(type == 'ad'){ $box.find('.ap').data('number', asideNumber).attr('data-number', asideNumber); utils.banners($box); } if(asideBoxesNumber < widgets.length - 1){ asideBoxesNumber++; $sidebar.data('asideBoxesNumber', asideBoxesNumber); }else{ $sidebar.data('asideBoxesNumber', 0); } asideNumber++; $sidebar.data('asideNumber', asideNumber); return this.asideWidgetRepeater(widgets, contentEl, sidebarEl, stopheight); } return 'keepon'; } return null; }, listMorePage: function(contentEl, buttonEl){ var windowHeight = document.documentElement.clientHeight, content = document.getElementById(contentEl); if(content){ var content_rect = content.getBoundingClientRect(); if(content_rect.bottom - windowHeight <= 200){ $(buttonEl).trigger('click'); } } }, calculateTruncation: function($box, $textbox, endText, crop){ /*var $textbox = $textbox != undefined && $textbox.length ? $textbox : $box, dataText = $textbox.data('text'), text = false; if(dataText == undefined){ text = $.trim($textbox.html()); if(text.length){ $textbox.data('text', text); } }else{ $textbox.html(dataText); text = true; } if(text){ var el = $box[0]; var ntext, n = 0; while(el.clientHeight < el.scrollHeight) { ntext = $textbox[0].innerHTML.trim(); if(ntext.split(' ').length <= 1) { break; } $textbox[0].innerHTML = ntext.replace(/\W*\s(\S)*$/, endText || '...'); n++; } if(crop >= 1 && n > crop){ while(crop) { ntext = $textbox[0].innerHTML.trim(); if(ntext.split(' ').length <= 1) { break; } $textbox[0].innerHTML = ntext.replace(/\W*\s(\S)*$/, endText || '...'); crop--; } } }*/ }, dateCalendar: function(box, options){ var $box = $(box); if($box.length){ var $startDate = $box.find('.startDate'), $endDate = $box.find('.endDate'), $calendar = $box.find('.dateCalendar'), range = $calendar.data('range'); /*$box.find('.showDate').on('keydown', function(event){ event.preventDefault(); switch(event.keyCode){ case 13: case 32: case 40: $(this).trigger('click'); break; } });*/ if(range){ this.dateCalendarSetValue(range, $box, $calendar, $startDate, $endDate, options); }else{ this.dateCalendarSetValue(range, $box, $calendar, $startDate, false, options); } } }, dateCalendarClear: function(data, element){ var $box = $(element).parent('.dateCalendarBox'), $calendar = $box.find('.dateCalendar'), toDay = new Date, range = [toDay]; if($calendar.data('range')){ range = [toDay, toDay] } $calendar.data('start-date', '').data('end-date', '').trigger('jplcalendar:updated', range); $box.find('.showDate').val(''); $box.find('.startDate').val(''); $box.find('.endDate').val(''); }, dateCalendarRange: function($box, $calendar, options){ var options = options || {}; options.render = false; options.onRangeSelect = function(dateStart, dateEnd) { $box.find('[data-calendar-target="' + $(this).data('value') + '"]').trigger('click'); //$box.find('.showDate').focus(); } $calendar.jplCalendar(options); }, dateCalendarSingle: function($box, $calendar, options){ var options = options || {}; options.render = false; options.onSingleSelect = function(dateStart, dateEnd) { $box.find('[data-calendar-target="' + $(this).data('value') + '"]').trigger('click'); //$box.find('.showDate').focus(); } $calendar.jplCalendar(options); }, dateCalendarSetValue: function(range, $box, $calendar, $startDate, $endDate, options){ if($startDate.length){ var startDateVal = $startDate.val(); if(startDateVal){ var d = startDateVal.split(/[^0-9]/); startDateVal = [d[0],d[1],d[2]].join('/'); var startDate = new Date(startDateVal); if(!isNaN(startDate)){ $calendar.data('start-date', startDateVal); if(range){ if($endDate.length){ var endDateVal = $endDate.val(); if(endDateVal){ d = endDateVal.split(/[^0-9]/); endDateVal = [d[0],d[1],d[2]].join('/'); var endDate = new Date(endDateVal); if(!isNaN(endDate)){ $calendar.data('end-date', endDateVal); }else{ $calendar.data('end-date', startDateVal); } }else{ $calendar.data('end-date', startDateVal); } }else{ $calendar.data('end-date', startDateVal); } this.dateCalendarRange($box, $calendar, options); }else{ this.dateCalendarSingle($box, $calendar, options); } $calendar.trigger('jplcalendar:updated'); }else{ $calendar.data('renderValues', false); if(range){ this.dateCalendarRange($box, $calendar, options); }else{ this.dateCalendarSingle($box, $calendar, options); } $calendar.trigger('jplcalendar:updated'); } }else{ $calendar.data('renderValues', false); if(range){ this.dateCalendarRange($box, $calendar, options); }else{ this.dateCalendarSingle($box, $calendar, options); } $calendar.trigger('jplcalendar:updated'); } } }, movieDirection: function(sX, sY, eX, eY){ var angle = 0, X = sX-eX, Y = eY-sY, Z = Math.round(Math.sqrt(Math.pow(X,2)+Math.pow(Y,2))), //the distance - rounded - in pixels r = Math.atan2(Y,X); //angle in radians (Cartesian system) angle = Math.round(r*180/Math.PI); //angle in degrees if(angle < 0){ angle = 360 - Math.abs(angle); } if((angle <= 45) && (angle >= 0)){ direction = 'left'; distance = sX - eX; }else if((angle <= 360) && (angle >= 315)){ direction = 'left'; distance = sX - eX; }else if((angle >= 135) && (angle <= 225)) { direction = 'right'; distance = eX - sX; }else if((angle > 45) && (angle < 135)) { direction = 'down'; distance = eY - sY; }else{ direction = 'up'; distance = sY - eY; } return {direction:direction, distance:distance}; }, googlemaps: { setMarkers: function(map, locations) { for (var i = 0; i < locations.length; i++) { var location = locations[i]; var myLatlng = new google.maps.LatLng(location[1], location[2]); var marker = new google.maps.Marker({ position: myLatlng, map: map, title:location[0] }); } }, zoomMap: function(map, lat, lng, zoom) { var myLatlng = new google.maps.LatLng(lat, lng); map.setZoom(zoom || 3); map.setCenter(myLatlng); } }, crc32: function (str) { var a_table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D"; var b_table = a_table.split(' ').map(function(s){ return parseInt(s,16) }); var crc = crc ^ (-1); for(var i=0, iTop=str.length; i>> 8 ) ^ b_table[( crc ^ str.charCodeAt( i ) ) & 0xFF]; } return (crc ^ (-1)) >>> 0; }, adSkinsFlags: { phone: true, pad: true, desktop: true }, adSkinsInit: function(params){ if(params && typeof params == 'object'){ var _out = [], bodyClass = false; _out.push(''); if(bodyClass){ // var $page_skin_top = $('#ms_skins_top_box'); // if(!$page_skin_top.length){ // return; // } var $page = $('[data-role="page"]').first(); $page.addClass(bodyClass); if(params.CLICK_URL){ var $pageAdSkinUrl = $('.takeOverAdLink'); $pageAdSkinUrl.attr('href', params.CLICK_URL); if(params.CLICK_URL_TARGET){ $pageAdSkinUrl.attr('target', params.CLICK_URL_TARGET); }else{ $pageAdSkinUrl.attr('target', '_blank'); } } $page.append(_out.join('')); // console.log(_out.join('')); // console.log('adSkins', params); } } }, adOverlayFooterInit: function(params){ if(params && typeof params == 'object'){ //console.log(params); function boxes(settings, type, width, height, small){ var box = []; if(settings.IMAGE){ box.push('
'); box.push(''); if(settings.BACKGROUND_COLOR_2){ box.push(''); } box.push(''); box.push(''); if(settings.IMAGE_X2){ box.push(''); } box.push(''); box.push(''); box.push('
'); } return box; } var box = []; var box_small = []; if(params.PHONE){ box = box.concat(boxes(params.PHONE, 'phone', 320, 90)); box_small = box_small.concat(boxes(params.PHONE, 'phone', 320, 40, 1)); } if(params.PAD){ box = box.concat(boxes(params.PAD, 'pad', 728, 90)); box_small = box_small.concat(boxes(params.PAD, 'pad', 728, 40, 1)); } if(params.DESKTOP){ box = box.concat(boxes(params.DESKTOP, 'desktop', 970, 90)); box_small = box_small.concat(boxes(params.DESKTOP, 'desktop', 970, 40, 1)); } var $overlayAd = $('.overlayAd'); if(box.length){ var $box = $('
' + box.join('') + '
').appendTo($overlayAd); setTimeout(function(){ $overlayAd.attr('data-ovft', 0); },100) $box.find('.boxClose').on('click', function(){ $overlayAd.remove(); }); } if(box_small.length){ var $box_small = $('
' + box_small.join('') + '
').appendTo($overlayAd); $box_small.on('mouseenter', function(){ $overlayAd.attr('data-ovft', 0); }); $box_small.find('.boxClose').on('click', function(){ $overlayAd.remove(); }); } } }, adOverlayInit: function(params){ if(params && typeof params == 'object'){ //console.log(params); function popup($content){ var $adOverlayPopup = $('.adOverlayPopup'); if(!$adOverlayPopup.length){ $adOverlayPopup = $('
') }else{ $adOverlayPopup.html(''); } var $adOverlayPopupBox = $('
'); $adOverlayPopupBox.appendTo($adOverlayPopup); var $adOverlayPopupClose = $('
').appendTo($adOverlayPopupBox); $content.appendTo($adOverlayPopupBox); $adOverlayPopup.appendTo(document.body); $adOverlayPopupClose.on('click', function(){ $adOverlayPopup.remove(); }); } if(params.IMAGE){ var image = new Image(); image.src = params.IMAGE; $(image).on('load', function(){ var $adOverlayPopupImage = $(''); $(this).appendTo($adOverlayPopupImage); popup($adOverlayPopupImage); }); } } } }; var fn = { adSkins: function(params){ try{ utils.adSkinsInit(params); } catch(e) { if('console' in window){ console.log('Skin init: ' + e); } } }, adOverlay: function(params){ try{ utils.adOverlayInit(params); } catch(e) { if('console' in window){ console.log('Overlay init: ' + e); } } }, adOverlayFooter: function(params){ try{ utils.adOverlayFooterInit(params); } catch(e) { if('console' in window){ console.log('Overlay init: ' + e); } } } } $.fn.broadcast = function(params) { var $wrapper = this, $statusWrapper = $wrapper.find('.statusWrapper'), $connectionsCount = $wrapper.find('.usersCount span'), $messagesWrapper = $wrapper.find('.broadcastMessages'), checkStateInterval = params.interval || 30000, reconnectInterval = params.reconnectInterval || 10000, checkStateTimout, restartOnConnectionLost = true, api = {}, tabReactivated = false, ws; $wrapper.find('.embed-item').each(function(index, item) { var $el = $(item), code = $el.data('embed-code'); $el.html(unescape(code)); }); var $broadcastItems = $messagesWrapper.children('.broadcastItem'), broadcastItemsCount = $broadcastItems.length, broadcastBannerTpl = window.broadcastBannerTpl, bannerEveryNth = 20; // delete window.broadcastBannerTpl; $broadcastItems.each(function(index, item) { var $item = $(item), $date = $item.find('.date'), data = $date.data('data'), date = new Date(data); if (data && date) { $date.html(date.format('HH:MM')); } }); var state = 0, wsStates = { // id: [title, class] 0: [i18n.m3464, 'planned'], 1: [i18n.m3465, 'live'], 2: [i18n.m3466, 'paused'], 3: [i18n.m3467, 'finished'], 4: [i18n.m3880, 'message'], 5: [i18n.m3881, 'message'] }; function getBroadcastStatus() { $.post('/live-text/get-status/', { broadcastId: params.broadcastId }, function(response) { if (response && response.status) { switch (response.broadcast_status) { // on open connection or reconnect case '1': // if planned, disconnected or connecting, try to establish connection if ([0, 4, 5].indexOf(state) !== -1) { setState(5); establishConnection(params.wsUri); } break; // on close connection case '3': if (ws) { setState(3); } break; } } if (response.broadcast_status === '0') { checkStateTimout = setTimeout(function() { getBroadcastStatus(); }, checkStateInterval); } }).fail(function() { checkStateTimout = setTimeout(function() { getBroadcastStatus(); }, checkStateInterval); }); } getBroadcastStatus(); function detectTabChange() { var hidden, visState, visibilityChange; if (typeof document.hidden !== "undefined") { hidden = "hidden"; visibilityChange = "visibilitychange"; visState = "visibilityState"; } else if (typeof document.mozHidden !== "undefined") { hidden = "mozHidden"; visibilityChange = "mozvisibilitychange"; visState = "mozVisibilityState"; } else if (typeof document.msHidden !== "undefined") { hidden = "msHidden"; visibilityChange = "msvisibilitychange"; visState = "msVisibilityState"; } else if (typeof document.webkitHidden !== "undefined") { hidden = "webkitHidden"; visibilityChange = "webkitvisibilitychange"; visState = "webkitVisibilityState"; } // we need to reconnect to websocket if tab returns to visible visState // this solves the issue on mobile devices where they lost connection to websocket // after going to sleep (Mobile Safari has this problem) document.addEventListener(visibilityChange, function() { var tabState = document[visState]; if (tabState !== hidden) { tabReactivated = true; if (ws) { ws.close(); state = 4; } } }, false); } detectTabChange(); function setState(newState, error) { if (!tabReactivated && wsStates[newState]) { state = newState; if (newState == 3 && ws) { restartOnConnectionLost = false; ws.close(); } $wrapper.trigger('statuschange', newState); $statusWrapper.html(''+ wsStates[state][0] + (error ? error : '') + ''); } } function getState() { return state; } function closeWebSocket() { clearTimeout(checkStateTimout); restartOnConnectionLost = false; if (ws) { ws.close(); } } var getElementMarkup = (function() { var sharesTwitterMarkup = [ '', '', '' ].join(''); var sharesMarkup = [ '', '' ].join(''); return function(message) { var params = message.params, isTweet = params.message.indexOf('twitter-tweet') !== -1, $el = $([ '
', '', '', '', '' + params.message + '', '', '', isTweet ? sharesTwitterMarkup : sharesMarkup, '', '
' ].join('')); return $el; }; })(); function establishConnection(wsUri) { if (!ws) { ws = new WebSocket(wsUri); ws.onopen = function(ev) { tabReactivated = false; setState(1); }; ws.onerror = function(ev) { if (ws) { ws.close(); } }; ws.onclose = function(ev) { ws = null; if (!restartOnConnectionLost) { restartOnConnectionLost = true; return; } setState(4); setTimeout(function() { getBroadcastStatus(); // establishConnection(wsUri); }, reconnectInterval); }; ws.onmessage = function(ev) { var msg = JSON.parse(ev.data), $el, $date, date; switch (parseInt(msg.message_action, 10)) { // on close socket connection case -1: if (ws && ws.readyState !== 2 && ws.readyState !== 3) { setState(3); } break; // create case 1: broadcastItemsCount++; $el = getElementMarkup(msg.message); $el.addClass("newMsg"); $date = $el.find('.date'); date = new Date($date.data('data')); $date.html(date.format('HH:MM')); if (broadcastItemsCount % bannerEveryNth === 1) { $messagesWrapper.prepend(broadcastBannerTpl); } $messagesWrapper.prepend($el); $el.find('.embed-item').each(function(index, item) { var $el = $(item), code = $el.data('embed-code'); $el.html(unescape(code)); }); utils.banners($messagesWrapper); setTimeout(function(){ $el.removeClass("newMsg"); }, 1000); break; // update case 2: $el = getElementMarkup(msg.message); $el.addClass("newMsg"); $date = $el.find('.date'); date = new Date($date.data('data')); $date.html(date.format('HH:MM')); $messagesWrapper.find('#message_' + msg.broadcast_message_id).replaceWith($el); $el.find('.embed-item').each(function(index, item) { var $el = $(item), code = $el.data('embed-code'); $el.html(unescape(code)); }); setTimeout(function(){ $el.removeClass("newMsg"); }, 1000); break; // delete case 3: $el = $messagesWrapper.find('#message_' + msg.broadcast_message_id); $el.fadeOut(500, function() { $el.remove(); }); break; // users count case 4: // skip if not admin if (!$connectionsCount.length) return; $connectionsCount.text(msg.users_count); break; // update message id on successful save case 5: $messagesWrapper .find('#message_' + msg.message.fake_broadcast_message_id) .attr('id', 'message_' + msg.message.broadcast_message_id); break; } }; } } api = { getState: getState, close: closeWebSocket }; $wrapper.data('api', api); return api; }; // configVars.analytics.cxense = {}; var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var pageBuildFn = []; //var _gaq = _gaq || []; var _qevents = _qevents || []; var _fbq = _fbq || []; var cX = cX || {}; cX.callQueue = cX.callQueue || []; var pageReferer = ''; var touchesPageX = 0, touchesPageY = 0; var isCookieSupported = false; var preventBodyScroll = false; $(function(){ var stDelay = null; utils.scaleFix(); $(document.body).addClass(("ontouchstart" in window) ? ' touch' : ' no-touch'); /* start coockie supported */ var testCookie = $.cookie('cookie_supported'); if (!testCookie) { $.cookie('cookie_supported', 1, {expires: 1, path: '/'}); } isCookieSupported = parseInt($.cookie('cookie_supported'), 10) === 1; /* end coockie supported */ $(window).on('beforeunload', function(){ var $page = ajaxNavigationBuildPopup.status ? ajaxNavigationBuildPopup.$getPupup() : ajaxNavigation.$getPage(); //var $page = ajaxNavigation.$getPage(); pagesFn.managePagesForTimeSpent($page); }); $(document).on('touchmove', function(event){ if(preventBodyScroll){ event.preventDefault(); } }) .on('touchstart', function(event){ var touches = event.originalEvent.changedTouches[0]; touchesPageX = touches.pageX; touchesPageY = touches.pageY; }) .on('touchend', function(event){ preventBodyScroll = false; }); $(document).on('touchmove', '.isolateScrolling', function(event){ var $this = $(this), pageY = event.originalEvent.changedTouches[0].pageY, sHeight = this.scrollHeight, height = $this.outerHeight(); if(sHeight <= height || (pageY > touchesPageY && this.scrollTop == 0) || ((pageY < touchesPageY) && this.scrollTop >= sHeight - height)){ preventBodyScroll = true; }else{ event.stopPropagation(); } }) .on('click', '[data-role="popup"]', function(event){ if(event.target == this){ $(this).find('.popupClose').trigger('click'); event.preventDefault(); } }) .on('mousewheel touchmove', '[data-role="popup"]', function(event){ if(event.target == this){ event.preventDefault(); } }) .on('mousewheel', function(event){ if(preventBodyScroll){ event.stopPropagation(); event.preventDefault(); preventBodyScroll = false; } }) .on('mousewheel', '.isolateScrolling', function(event){ var rect = this.getBoundingClientRect(); if(event.deltaY > 0 && this.scrollTop == 0 || event.deltaY < 0 && this.scrollHeight - this.scrollTop - 1 <= parseInt(rect.height)){ preventBodyScroll = true; }else{ event.stopPropagation(); } }); $(document.body) .on('click', 'a[href^="#"]',function(event){ var hash = $(this).attr('href'); if(hash){ hash = hash.replace('#',''); if(hash){ var $el = $("#" + hash); if($el.length){ //event.preventDefault(); $('html, body').animate({ scrollTop: $el.offset().top - 70 }, 400); } } } }); $('.root') .on('mouseenter', '.thumb', function(event){ if(document.documentElement.clientWidth <= 1024){ return; } var $this = $(this); var data = $this.data(); if(data.timeout){ clearTimeout(data.timeout); } $this.data('timeout', setTimeout(function(){ var rect = $this[0].getBoundingClientRect(); $this.width(rect.width); $this.height(rect.height); $this.addClass('thumbZoom'); }, 100)); }) .on('mouseleave', '.thumb', function(){ if(document.documentElement.clientWidth <= 1024){ return; } var $this = $(this); var data = $this.data(); if(data.timeout){ clearTimeout(data.timeout); } if(!$this.is('.thumbZoom')){ return; } $this.removeClass('thumbZoom'); $this.data('timeout', setTimeout(function(){ $this.removeAttr('style'); }, 300)); }); cmpTrayAlert.init({insert:1}); cmpDialog.init({ buttonOk: i18n.m1021, buttonCancel: i18n.m1022, buttonClose: i18n.m1020 }); var preventBuildAction = $(document.body).data('pba'); ajaxNavigation.init({ preventBuildAction: preventBuildAction, reloadingScript: true, stopPage: function($element, data, href){ pageReferer = window.location.href.replace(window.location.protocol + '//' + window.location.host, ''); if(data && data.confirmMessage !== undefined){ var ready = data.ready if(!ready){ cmpDialog.confirm(data.confirmMessage || 'Are you sure?', null, function(value){ if(value){ $element.data('ready', 1); $element.trigger('click'); } }); return false; } $element.data('ready', 0); } }, requestBeforeSend: function(build, href, options, jqXHR){ if(build == 'popstate'){ var $part = $('[data-page-target="' + utils.crc32(href) + '"]'); if($part.length){ //$(document).scrollTop($part.offset().top - 60); $("html, body").stop(true, true).animate({ scrollTop: parseInt($part.offset().top) - 60 }, 500, 'swing'); return false; } } var $page = build == 'popup' ? ajaxNavigationBuildPopup.$getPupup() : this.$getPage(); pagesFn.managePagesForTimeSpent($page); return true; }, receivedAsJSON: function(pageId, buildType, href, options, jqXHR){ var json = $.parseJSON(jqXHR.responseText); if(json.error){ cmpTrayAlert.show(json.error.message || i18n.m1034, 'error', 30); }else{ cmpTrayAlert.show(json.message || i18n.m1034, json.status ? 'message' : 'error', json.status ? 10 : 30); } }, beforePageBuild: function(oldPageId, buildType, href){ //if you need to cleanse previous page if((buildType == 'build' || buildType == 'popstate') && pages.remove[oldPageId] && typeof pages.remove[oldPageId] == 'function'){ pages.remove[oldPageId].call(this, oldPageId, buildType, href); } // removes footer scroll listener which is added for each page // except articles detail $(window).off('scroll.register_footer'); }, afterPageBuild: function(oldPageId, newPageId, buildType, href){ var loginLimitCookie; //init page //console.log(newPageId, href); if(buildType == 'rebuild'){ ajaxNavigationBuildPopup.clear(); if(pages.rebuild[newPageId] && typeof pages.rebuild[newPageId] == 'function'){ pages.rebuild[newPageId].call(this, oldPageId, newPageId, buildType, href); } }else if(buildType == 'popup'){ if(pages.popup[newPageId] && typeof pages.popup[newPageId] == 'function'){ pages.popup[newPageId].call(this, oldPageId, newPageId, buildType, href); } $(document).on('keydown.popup_close', function(event){ if(event.keyCode == 27){ ajaxNavigationBuildPopup.clear(true); } }); }else{ loginLimitCookie = $.cookie('limit_logout'); if (loginLimitCookie) { $.removeCookie('limit_logout', { path: '/' }); cmpTrayAlert.show(i18n.m4680, 'error', 30); } ajaxNavigationBuildPopup.clear(); cmpButtons.groupName = false; cmpBubbles.groupName = false; utils.adSkinsFlags.phone = true; utils.adSkinsFlags.pad = true; utils.adSkinsFlags.desktop = true; var $body = $(document.body); clearTimeout(stDelay); $body.removeClass('st-delay'); stDelay = setTimeout(function(){ $body.addClass('st-delay'); }, 600); mainSecondMenuStick = 0; if(pages.init[newPageId] && typeof pages.init[newPageId] == 'function'){ pages.init[newPageId].call(this, oldPageId, newPageId, buildType, href); } $(window).trigger('resize.menusItems', 1); $('#search_form').validate({ showErrors: function(errorMap, errorList) { //cmpTrayAlert.show(errorList[0]['message'], 'error', 10); } }); // show register footer if user is not signed in /* (function() { var $window = $(window), $page = $('#' + newPageId), preventForPages, preventRegister, registerLightBox = $.cookie('reglb'), registerFooter = $.cookie('regft'); preventForPages = [ 'page_join', 'page_join_prime', 'page_login', 'page_articles_detail', 'page_index_index_sweepstakes' ]; preventRegister = preventForPages.indexOf($page.attr('id')) !== -1; if (preventRegister) return; if (!window.isAuthorized && isCookieSupported) { // footer once per session if (!registerFooter) { $window.on('scroll.register_footer', function() { var scrollTop = $window.scrollTop(); if (scrollTop < 700) return; $window.off('scroll.register_footer'); showRegisterFooter(); }); } } })(); */ } utils.banners(); $('.root').jplDateFormat(layoutConfig.dateFormat); // track Giorgio Piola's content (function() { var gpPage = $.cookie('gpiola_page'); // if it's not a GP topic page if (!gpPage) return; gaTrackGP(gpPage, window.location.href); $.removeCookie('gpiola_page', { path: '/' }); })(); var trackUrl = $('#' + (buildType == 'popup' ? 'track_url' : 'current_series')).data('trackUrl') || href; if(!utils.preventGA){ gaTrack(trackUrl); } utils.preventGA = false; if(!utils.preventQC){ qcTrack(); } utils.preventQC = false; if(!utils.preventFBQ){ fbqTrack(trackUrl); } utils.preventFBQ = false; if(!utils.preventGAdWordsConversion){ gAdWordsConversion(); } utils.preventGAdWordsConversion = false; if(!utils.preventComscoreTrack){ comscoreTrack(); } utils.preventComscoreTrack = false; if(!utils.preventCaptifyTrack){ captifyTrack(); } utils.preventCaptifyTrack = false; if(!utils.preventCxenseTrack){ cxenseTrack(); } utils.preventCxenseTrack = false; if(pageBuildFn.length){ for(var i = 0, c = pageBuildFn.length; i < c; i++){ if(typeof pageBuildFn[0] == 'function'){ pageBuildFn[i].call(this, trackUrl, pageReferer, ajaxNavigation.page.firstBoot, newPageId, buildType); } } } }, requestError: function(buildType, href, options, jqXHR){ if(jqXHR.status == 403){ var json = $.parseJSON(jqXHR.responseText); cmpTrayAlert.show(json.message || i18n.m1034, json.status ? 'message' : 'error', json.status ? 10 : 30); }else{ cmpTrayAlert.show(i18n.m1034, 'error', 30); } }, errorPageBuild: function(oldPageId, build, href, options, jqXHR){ cmpTrayAlert.show(i18n.m1034, 'error', 10); }/*, receivedStatus404: function(buildType, href, options, jqXHR){ }*/ }); ajaxNavigationCtrl.init(); ajaxNavigationBuildPopup.init({remove: function(pageId){ if(pages.removePopup[pageId] && typeof pages.removePopup[pageId] == 'function'){ pages.removePopup[pageId].call(this, pageId); } $(document).off('keydown.popup_close'); }}); cmpButtons.init({ buttons: buttons, error: function(data, element, response, textStatus, jqXHR){ cmpTrayAlert.show(jqXHR.responseJSON && jqXHR.responseJSON.constructor === Object && jqXHR.responseJSON.message ? jqXHR.responseJSON.message : i18n.m1034, 'error', 30); } }); cmpButtonsToggle.init(); // cmpButtonsCurrent.init(); cmpBubbles.init({ minWidth: 640, error: function(data, element, response, textStatus, jqXHR){ cmpTrayAlert.show(jqXHR.responseJSON && jqXHR.responseJSON.constructor === Object && jqXHR.responseJSON.message ? jqXHR.responseJSON.message : i18n.m1034, 'error', 30); } }); setInterval(function(){ $('.root').jplDateFormat(layoutConfig.dateFormat); }, 60000); var bannerTimeout = null; $(window).on('resize', function(){ clearTimeout(bannerTimeout); bannerTimeout = setTimeout(function(){ utils.banners(); },500); $('.thumbZoom').removeAttr("style").removeClass("thumbZoom"); }); utils.preventGA = false; utils.preventQC = false; utils.preventFBQ = false; utils.preventGAdWordsConversion = false; utils.preventComscoreTrack = false; utils.preventCaptifyTrack = false; utils.preventCxenseTrack = false; utils.thirdPartyServices = [ //[('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js', configVars.analytics.google.load], ['//www.google-analytics.com/analytics.js', configVars.analytics.google.load], [(document.location.protocol == "https:" ? "https://secure" : "http://edge") + '.quantserve.com/quant.js', configVars.analytics.quantcast.load], ['//connect.facebook.net/en_US/fbds.js', configVars.analytics.facebook.load, function(){_fbq.loaded = true;}], ['//script.crazyegg.com/pages/scripts/0049/9618.js?' + Math.floor(new Date().getTime()/3600000), configVars.analytics.crazyegg.load], ['//www.googletagservices.com/tag/js/gpt.js', 1, utils.dfpScriptLoad], ['//www.googleadservices.com/pagead/conversion_async.js', configVars.analytics.google_conversion.load, gAdWordsConversion], ['http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/tms/cx_lgr.js', configVars.analytics.cxense.load], [(document.location.protocol == "https:" ? "https://sb" : "http://b") + '.scorecardresearch.com/beacon.js', configVars.analytics.comscore.load, comscoreTrack], ]; utils.connectThirdPartyServices(utils.thirdPartyServices); function showRegisterFooter() { var $footer = $('#register_footer_wrapper'), $closeBtn = $footer.find('.close'), $form = $footer.find('form'), $emailField = $form.find('input[type="email"]'), registerFormLoading = false; $footer.addClass('visible'); $form.validate({ errorPlacement: function(error, element) { element.attr('title', error.text()); }, submitHandler: function() { if (registerFormLoading) return; registerFormLoading = true; hideRegisterFooter(); goToUrl('/join/', 'popup', {data: {params: { is_popup: 1, user_email: $emailField.val() }}}); } }); $closeBtn.on('click', hideRegisterFooter); function hideRegisterFooter() { $closeBtn.off('click'); $.cookie('regft', 1, {path: '/'}); $footer.fadeOut(function() { $footer.remove(); }); } } }); dateFormat.i18n = { dayNames: [ i18n.m1043 || 'Sun', i18n.m1044 || 'Mon', i18n.m1045 || 'Tue', i18n.m1046 || 'Wed', i18n.m1047 || 'Thu', i18n.m1048 || 'Fri', i18n.m1049 || 'Sat', i18n.m1050 || 'Sunday', i18n.m1051 || 'Monday', i18n.m1052 || 'Tuesday', i18n.m1053 || 'Wednesday', i18n.m1054 || 'Thursday', i18n.m1055 || 'Friday', i18n.m1056 || 'Saturday' ], monthNames: [ i18n.m1057 || 'Jan', i18n.m1058 || 'Feb', i18n.m1059 || 'Mar', i18n.m1060 || 'Apr', i18n.m1061 || 'May', i18n.m1062 || 'Jun', i18n.m1063 || 'Jul', i18n.m1064 || 'Aug', i18n.m1065 || 'Sep', i18n.m1066 || 'Oct', i18n.m1067 || 'Nov', i18n.m1068 || 'Dec', i18n.m1069 || 'January', i18n.m1070 || 'February', i18n.m1071 || 'March', i18n.m1072 || 'April', i18n.m1073 || 'May', i18n.m1074 || 'June', i18n.m1075 || 'July', i18n.m1076 || 'August', i18n.m1077 || 'September', i18n.m1078 || 'October', i18n.m1079 || 'November', i18n.m1080 || 'December' ] }; jplCalendarLangs = { monthTitles: [i18n.m1069 || 'January', i18n.m1070 || 'February', i18n.m1071 || 'March', i18n.m1072 || 'April', i18n.m1073 || 'May', i18n.m1074 || 'June', i18n.m1075 || 'July', i18n.m1076 || 'August', i18n.m1077 || 'September', i18n.m1078 || 'October', i18n.m1079 || 'November', i18n.m1080 || 'December'], from: i18n.m1089 || 'from', to: i18n.m1090 || 'to', today: i18n.m1091 || 'Today', rangesBefore: [i18n.m1092 || 'Last 7 days', i18n.m1093 || 'Last 15 days', i18n.m1094 || 'Last 30 days', i18n.m1095 || 'Last 90 days', i18n.m1096 || 'This week', i18n.m1097 || 'This month'], rangesAfter: [i18n.m1098 || 'Next 7 days', i18n.m1099 || 'Next 15 days', i18n.m1100 || 'Next 30 days', i18n.m1101 || 'Next 90 days', i18n.m1096 || 'This week', i18n.m1097 || 'This month'], dayTitles: { mondayBased: [i18n.m1044 || 'Mon', i18n.m1045 || 'Tue', i18n.m1046 || 'Wed', i18n.m1047 || 'Thu', i18n.m1048 || 'Fri', i18n.m1049 || 'Sat', i18n.m1043 || 'Sun'], sundayBased: [i18n.m1043 || 'Sun', i18n.m1044 || 'Mon', i18n.m1045 || 'Tue', i18n.m1046 || 'Wed', i18n.m1047 || 'Thu', i18n.m1048 || 'Fri', i18n.m1049 || 'Sat'] }, mondayBased: false }; cmpUploaderLangs = { maxItemsSimultaneously : i18n.m3161 || "You can\'t upload more than {0} files simultaneously.", validExtensions : i18n.m3160 || "No valid files were found. Valid extensions are: {0}", maxItemsPerUload : i18n.m1018 || "The maximum number of files allowed to be uploaded simultaneously has been exceeded. Upload no more than {0} files at a time!", pauseBtnText : i18n.m3996 || "Pause", resumeBtnText : i18n.m3997 || "Resume", cancelBtnText : i18n.m1022 || "Cancel", deleteBtnText : i18n.m2657 || "Delete", selectAllItemsBtnText : i18n.m3176 || "Select All", deselectAllItemsBtnText : i18n.m3180 || "Deselect All", resumeSelectedText : i18n.m3998 || "Resume Selected", resumeAllText : i18n.m3213 || "Resume All", pauseSelectedBtnText : i18n.m3215 || "Pause Selected", pauseAllBtnText : i18n.m3178 || "Pause All", removeSelectedMsg : i18n.m3188 || "Remove selected items?", areYouSure : i18n.m2720 || "Are you sure?", leavePageWarningText : i18n.m3156 || "If you leave this page now your items will not be uploaded.", leavePageWarningTitle : i18n.m3158 || "Leave this page?", addItemBtnText : i18n.m3999 || "Add new item", fileProcessError : i18n.m4000 || "Some files hasn't been processed successfully" }; var layoutConfig = { dateFormat: { lang: i18n.m1111 || 'en', ago: i18n.m1041 || 'ago', there: i18n.m1087 || '', hour: i18n.m1038 || 'hour', minute: i18n.m1039 || 'minute', second: i18n.m1040 || 'second', fewSecondsAgo: i18n.m1081 || 'Few seconds ago', yesterday: i18n.m1042 || 'Yesterday', at: i18n.m1037 || 'at', of: i18n.m1086 || 'of' } }; /*####### cmpStylizedInputFile - v1.1 - 14.11.2011 #######*/ $.fn.cmpStylizedInputFile = function(options){ var options = $.extend({ cls: false }, options); var $this = $(this); $this.wrap(''); var $fileButton = $this.parent('.fileButton'), $fileText = $('').attr('title',$this.val()).text(utils.fileName($this.val())); $this.addClass('fileInput').css({ opacity: 0 }).show(); $fileButton.append('' + options.buttonTitle + ''); $fileButton.wrap(''); $fileButton.after($fileText); $this.on('change', function(){ var $this = $(this), $fileText = $this.parent('.fileButton').next('.fileText'); if (this.files && 'object' == typeof this.files && $this.val() != '') { $fileText.attr('title',$this.val()).text(utils.fileNameMultiple(this)); } else { $fileText.attr('title',$this.val()).text(utils.fileName($this.val())); } }); return this; }; $.fn.simpleProgressBar = function(params){ var options = $.extend({ cls: '' },params); var $box = $('
') .addClass('cmpProgressBar') .width(options.width) .appendTo(this); var $track = $('
').appendTo($box), $runner = $('
').appendTo($box); this .on('progressBarUpdate', function(event, data){ if(data && data.meter > 0){ if(data.meter < 100){ $runner .stop(true, true) .animate({ width: data.meter + '%' }); } else { $runner .stop(true, true) .width('100%'); } } }) .on('progressBarComplete', function(){ $runner.stop(true, true).width('100%'); }) .on('progressBarShow progressBarReset', function(){ $runner.stop(true, true).width(0); }) .on('progressBarHide', function(){ $(this).hide(); }); return this; }; window.ga = window.ga || function(){(ga.q=ga.q||[]).push(arguments)}; ga.l=+new Date; if(configVars.analytics.google.load){ ga('create', { trackingId: configVars.analytics.google.id, cookieDomain: 'auto', name: 'MSTracker' }); ga('MSTracker.require', 'linkid'); // ga('create', { // trackingId: 'UA-100718017-1', // cookieDomain: 'auto', // name: 'MSNTracker', // allowLinker: true // }); // ga('MSNTracker.require', 'linker'); // ga('MSNTracker.linker:autoLink', ['motorsport.com,motor1.com,motorstore.com']); } function gaTrack(url){ if(configVars.analytics.google.load){ // _gaq.push(['_require', 'inpage_linkid', '//www.google-analytics.com/plugins/ga/inpage_linkid.js']); // _gaq.push(['_setDomainName', 'motorsport.com']); // _gaq.push(['_setAccount', configVars.analytics.google.id], ['_trackPageview', url]); ga('MSTracker.send', { hitType: 'pageview', page: url, dimension1: $(document.body).data('edtn') || 'none' }); // ga('MSNTracker.send', { // hitType: 'pageview', // page: url, // dimension1: $(document.body).data('edtn') || 'none' // }); } } function gaTrackSocial(network, action, url) { if(configVars.analytics.google.load){ ga('MSTracker.send', { hitType: 'social', socialNetwork: network, socialAction: action, socialTarget: url, dimension1: $(document.body).data('edtn') || 'none' }); } } function gaArticleSubmit(action, url) { if(configVars.analytics.google.load){ ga('MSTracker.send', { hitType: 'event', eventCategory: 'articleSubmit', eventAction: action, eventLabel: url, dimension1: $(document.body).data('edtn') || 'none' }); } } function gaArticleEmailSubscription(action, url) { if(configVars.analytics.google.load){ ga('MSTracker.send', { hitType: 'event', eventCategory: 'emailFromArticleSubmit', eventAction: action, eventLabel: url, dimension1: $(document.body).data('edtn') || 'none' }); } } function gaTrackGP(action, url) { if(configVars.analytics.google.load){ ga('MSTracker.send', { hitType: 'event', eventCategory: 'Giorgio Piola', eventAction: action, eventLabel: url, dimension1: $(document.body).data('edtn') || 'none' }); } } function gaTrackEvent(category, action, label, value, opt){ if(configVars.analytics.google.load){ //_gaq.push(['_trackEvent', category, action, label, value, opt]); } } function gaTrackPrime(type, packageName) { var action; if(configVars.analytics.google.load){ switch (type) { case '0': action = packageName + '-Signup'; break; case '1': action = 'UpgradeTo-' + packageName + '-Signup'; break; case '2': action = packageName + '-Extended'; break; } if (action) { ga('MSTracker.send', { hitType: 'event', eventCategory: 'Prime', eventAction: action, dimension1: $(document.body).data('edtn') || 'none' }); } } } function gAdWordsConversion(){ if(configVars.analytics.google_conversion.load && 'google_trackConversion' in window){ window.google_trackConversion({ google_conversion_id: configVars.analytics.google_conversion.id, google_custom_params: window.google_tag_params, google_remarketing_only: true }); window.google_trackConversion({ google_conversion_id: 858029425, google_custom_params: window.google_tag_params, google_remarketing_only: true }); // Added by John Nguyen request for Autosport campaings window.google_trackConversion({ google_conversion_id: 856527196, google_custom_params: window.google_tag_params, google_remarketing_only: true }); } } function comscoreTrack(){ if(configVars.analytics.comscore.load && 'COMSCORE' in window){ COMSCORE.beacon({ c1: "2", c2: configVars.analytics.comscore.id}); } } function qcTrack(){ if(configVars.analytics.quantcast.load){ var opt = {qacct:configVars.analytics.quantcast.id}; if(!ajaxNavigation.page.firstBoot){ opt.event = 'refresh'; } _qevents.push(opt); } } function fbqTrack(url){ if(configVars.analytics.facebook.load){ if(ajaxNavigation.page.firstBoot){ _fbq.push(['addPixelId', configVars.analytics.facebook.id]); _fbq.push(['track', 'PixelInitialized']); } _fbq.push(['track', 'ViewPage', {url: url}]); } } function captifyTrack(){ //var captify_kw_query_11878 = ""; if(configVars.analytics.captify.load){ $.getScript('https://p.cpx.to/p/' + configVars.analytics.captify.id + '/px.js'); } } function cxenseTrack(){ if(configVars.analytics.cxense.load){ if(ajaxNavigation.page.firstBoot){ cX.callQueue.push(['setSiteId', configVars.analytics.cxense.id]); } cX.callQueue.push(['sendPageViewEvent']); } } $(function(){ var isTouch = ("ontouchstart" in window); //$(document.body).addClass(isTouch ? ' touch' : ' no-touch'); var isTextRtl = $(document.body).is('.textRtl'); var _mobileMQMaxWidth = 1023; var tempScrollTop = 0, scrollDir = 1, menusItemsTimeout = null, menusItemsResize = false, headerStickTimeout = null, docCurrentWidth = 0, scroll_stop_timeout = null, scroll_stop_count = 0, is_cookie_accept = $.cookie('cookie_accept') || false; $(window).on('resize.menusItems', function(event, force){ if(document.documentElement.clientWidth <= _mobileMQMaxWidth){ return; } var docNewtWidth = document.documentElement.clientWidth; if(force === undefined && docCurrentWidth == docNewtWidth){ return; } docCurrentWidth = document.documentElement.clientWidth; var delay = (force === 2 ? 10 : 200); clearInterval(menusItemsTimeout); menusItemsTimeout = setTimeout(function(){ if(force !== 2){ var $eContentMenu = $('.eContentMenu').first(); var $currentEContentMenuItem = $eContentMenu.find('>li.current'), $moreItemEContentMenu = $eContentMenu.find('>li.more'), itemsEContentMenuWidth = 0, $itemsEContentMenu = $().add(), eContentMenuWidth = parseInt($eContentMenu.width() - ($moreItemEContentMenu.length ? $moreItemEContentMenu.width() : 0)- ($currentEContentMenuItem.length ? $currentEContentMenuItem.width() : 0)); $eContentMenu.find('>li:not(.more):not(.current)').removeClass('vhidden').each(function(i){ var $this = $(this), thisWidth = parseInt($this.width()); itemsEContentMenuWidth += thisWidth; if(itemsEContentMenuWidth >= eContentMenuWidth){ var $thisCopy = $this.clone(true,true); $thisCopy.find('ul').remove(); $itemsEContentMenu = $itemsEContentMenu.add($thisCopy); $this.find('> ul > li').each(function(){ $itemsEContentMenu = $itemsEContentMenu.add($(this).clone(true,true)); }); $this.addClass('hidden'); } }); var $moreItemEContentMenuUL = $moreItemEContentMenu.removeClass('vhidden').find('ul').empty(); if($itemsEContentMenu.length){ $itemsEContentMenu.appendTo($moreItemEContentMenuUL); }else{ $moreItemEContentMenu.addClass('hidden'); } $eContentMenu.addClass('ready'); } if(force === true){ menusItemsResize = false; return; } var $eMainMenu = $('.eMainMenu.visible').first(); var $currentEMainMenuItem = $eMainMenu.find('>li.current:not(.all-series)'), $moreItemEMainMenu = $eMainMenu.find('>li.more'), itemsEMainMenuWidth = 0, moreItemColumns = 0, $itemsEMainMenu = $().add(), eMainMenuWidth = parseInt($eMainMenu.width() - ($moreItemEMainMenu.length ? $moreItemEMainMenu.width() : 0)- ($currentEMainMenuItem.length ? $currentEMainMenuItem.width() : 0)); var incr = 0; $eMainMenu.find('>li:not(.more):not(.current):not(.all-series)').removeClass('vhidden').each(function(i){ var $this = $(this), thisWidth = parseInt($this.width()); itemsEMainMenuWidth += thisWidth; if(itemsEMainMenuWidth >= eMainMenuWidth){ $this.find('> ul > li').each(function(){ var $thisCopy = $(this).clone(true,true); $thisCopy.find('ul').remove(); $itemsEMainMenu = $itemsEMainMenu.add($thisCopy); if(incr%(document.documentElement.clientWidth/document.documentElement.clientHeight < 1 ? 15 : 10) == 0){ moreItemColumns++; } incr++; }); $this.addClass('hidden'); } }); var $moreItemEMainMenuUL = $moreItemEMainMenu.removeClass('vhidden').find('ul').empty(); if($itemsEMainMenu.length){ $moreItemEMainMenu.removeClass('cur'); $itemsEMainMenu.appendTo($moreItemEMainMenuUL); if($moreItemEMainMenuUL.find('>li.current').length){ $moreItemEMainMenu.addClass('cur'); } //$moreItemEMainMenu.removeClass('hidden'); }else{ $moreItemEMainMenu.addClass('hidden'); } if(document.documentElement.clientWidth < 1024 && moreItemColumns > 3){ moreItemColumns = 3; } $moreItemEMainMenu.attr('data-columns', moreItemColumns > 4 ? 4 : moreItemColumns); moreItemColumns = 0; $eMainMenu.addClass('ready'); menusItemsResize = false; },delay); if(!menusItemsResize){ menusItemsResize = true; if(force !== true){ var $eMainMenu = $('.eMainMenu.visible').first(); $eMainMenu.find('>li.more').addClass('hidden'); $eMainMenu.find('>li.hidden').removeClass('hidden').addClass('vhidden'); $eMainMenu.removeClass('ready'); } if(force !== 2){ var $eContentMenu = $('.eContentMenu').first(); $eContentMenu.find('>li.more').addClass('hidden'); $eContentMenu.find('>li.hidden').removeClass('hidden').addClass('vhidden'); $eContentMenu.removeClass('ready'); } } }) .on('scroll.header', function(){ if(scroll_stop_timeout !== null) { clearTimeout(scroll_stop_timeout); } if(!is_cookie_accept && $('#cookie_accept_button').length){ if(scroll_stop_count == 5){ is_cookie_accept = true; $('#cookie_accept_button').trigger('click'); } scroll_stop_timeout = setTimeout(function() { scroll_stop_count ++; }, 150); } var scrollTop = window.scrollY || window.pageYOffset || 0; //$('#console').html(scrollTop + ' ' + (document.body.scrollHeight - document.documentElement.clientHeight)); if((scrollTop + 100) > (document.body.scrollHeight - document.documentElement.clientHeight)){ return; } if(scrollTop <= 0){ $('body').removeClass('headerStick'); } if(scrollTop < 120){ return; } if (tempScrollTop > scrollTop) { if(scrollDir == 0 ){ var $body = $('body'); $body.addClass('footerStick'); clearTimeout(headerStickTimeout); headerStickTimeout = setTimeout(function() { $body.removeClass('headerStick'); $(window).trigger('resize.menusItems', true); }, 500); } scrollDir = 1; }else if (tempScrollTop < scrollTop){ if(scrollDir == 1){ var $body = $('body'); $body.removeClass('footerStick'); clearTimeout(headerStickTimeout); headerStickTimeout = setTimeout(function() { $body.addClass('headerStick'); var $overlayAd= $('.overlayAd[data-ovft]'); if($overlayAd.length){ $overlayAd.attr('data-ovft', 1); } $(window).trigger('resize.menusItems', true); }, 500); } scrollDir = 0; } tempScrollTop = scrollTop; }) .trigger('resize.menusItems'); $(document.body) .on('mouseenter','.eMainMenu > li, .eContentMenu > li',function(){if(document.documentElement.clientWidth <= _mobileMQMaxWidth){return;}$(this).parent().addClass('active');}) .on('mouseleave','.eMainMenu > li, .eContentMenu > li',function(){if(document.documentElement.clientWidth <= _mobileMQMaxWidth){return;}$(this).parent().removeClass('active');}) .on('click','.eContentMenu > li > a, .eUserMenu > li > a',function(event){ if(document.documentElement.clientWidth <= _mobileMQMaxWidth || !isTouch){ return; } var $this = $(this); if($this.next('ul').length){ event.preventDefault(); } }) .on('click', '.eSearchForm', function(event){event.stopPropagation();}) .on('click', '.eMainMenu, .eContentMenu', function(event){ event.stopPropagation(); }); $('.root') .on('mousedown', '.eContentMenu > li:first-child', function(event){ if(document.documentElement.clientWidth > _mobileMQMaxWidth){return;} var $ul = $(this).parent('ul'); if($ul.is('.closed')){ $ul.removeClass('closed'); }else{ $ul.addClass('closed'); } }) .on('mousedown', '.eMainMenu > li', function(event){ if(document.documentElement.clientWidth > _mobileMQMaxWidth){return;} var $this = $(this); if($this.is('.open')){ $this.removeClass('open'); }else{ $this.addClass('open'); } }) .on('mousedown', '.eMainMenu a, .eContentMenu a', function(event){ event.stopPropagation(); }); $(document) .on('touchmove', '.eHeaderBoxWrapper', function(event){ if(document.documentElement.clientWidth > _mobileMQMaxWidth){ return; } var changedTouches = event.originalEvent.changedTouches[0]; var t = utils.movieDirection(touchesPageX, touchesPageY, changedTouches.pageX, changedTouches.pageY); var $targetElement = $(event.target); var $scroledElement = $targetElement.parents('.stick-box'); var scroledElement = this; if($targetElement.is('.stick-box')){ scroledElement = $targetElement[0]; }else if($scroledElement.length){ scroledElement = $scroledElement[0]; } if(t.direction == 'down' && scroledElement.scrollTop == 0){ preventBodyScroll = true; }else if(t.direction == 'up' && scroledElement.scrollTop >= scroledElement.scrollHeight - $(scroledElement).outerHeight()){ preventBodyScroll = true; } }) .on('touchmove', '#center_overlay', function(event){ if(document.documentElement.clientWidth > _mobileMQMaxWidth){ return; } preventBodyScroll = true; }) .on('touchend', '.eHeaderBoxWrapper', function(event){ if(document.documentElement.clientWidth > _mobileMQMaxWidth){ return; } var changedTouches = event.originalEvent.changedTouches[0]; var t = utils.movieDirection(touchesPageX, touchesPageY, changedTouches.pageX, changedTouches.pageY); var dir = isTextRtl ? 'right' : 'left'; var $targetElement = $(event.target); if($targetElement.is('.stick-box') || $targetElement.parents('.stick-box').length){ dir = isTextRtl ? 'left' : 'right'; } if(t.direction == dir && t.distance > 30){ $('body').trigger('click'); event.preventDefault(); } }); }); /* * BlockAdBlock 3.2.1 * Copyright (c) 2015 Valentin Allaire * Released under the MIT license * https://github.com/sitexw/BlockAdBlock */ (function(window) { var BlockAdBlock = function(options) { this._options = { checkOnLoad: false, resetOnEnd: false, loopCheckTime: 50, loopMaxNumber: 5, baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links', baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;', debug: false }; this._var = { version: '3.2.1', bait: null, checking: false, loop: null, loopNumber: 0, event: { detected: [], notDetected: [] } }; if(options !== undefined) { this.setOption(options); } var self = this; var eventCallback = function() { setTimeout(function() { if(self._options.checkOnLoad === true) { if(self._options.debug === true) { self._log('onload->eventCallback', 'A check loading is launched'); } if(self._var.bait === null) { self._creatBait(); } setTimeout(function() { self.check(); }, 1); } }, 1); }; if(window.addEventListener !== undefined) { window.addEventListener('load', eventCallback, false); } else { window.attachEvent('onload', eventCallback); } }; BlockAdBlock.prototype._options = null; BlockAdBlock.prototype._var = null; BlockAdBlock.prototype._bait = null; BlockAdBlock.prototype._log = function(method, message) { console.log('[BlockAdBlock]['+method+'] '+message); }; BlockAdBlock.prototype.setOption = function(options, value) { if(value !== undefined) { var key = options; options = {}; options[key] = value; } for(var option in options) { this._options[option] = options[option]; if(this._options.debug === true) { this._log('setOption', 'The option "'+option+'" he was assigned to "'+options[option]+'"'); } } return this; }; BlockAdBlock.prototype._creatBait = function() { var bait = document.createElement('div'); bait.setAttribute('class', this._options.baitClass); bait.setAttribute('style', this._options.baitStyle); this._var.bait = window.document.body.appendChild(bait); this._var.bait.offsetParent; this._var.bait.offsetHeight; this._var.bait.offsetLeft; this._var.bait.offsetTop; this._var.bait.offsetWidth; this._var.bait.clientHeight; this._var.bait.clientWidth; if(this._options.debug === true) { this._log('_creatBait', 'Bait has been created'); } }; BlockAdBlock.prototype._destroyBait = function() { window.document.body.removeChild(this._var.bait); this._var.bait = null; if(this._options.debug === true) { this._log('_destroyBait', 'Bait has been removed'); } }; BlockAdBlock.prototype.check = function(loop) { if(loop === undefined) { loop = true; } if(this._options.debug === true) { this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop'); } if(this._var.checking === true) { if(this._options.debug === true) { this._log('check', 'A check was canceled because there is already an ongoing'); } return false; } this._var.checking = true; if(this._var.bait === null) { this._creatBait(); } var self = this; this._var.loopNumber = 0; if(loop === true) { this._var.loop = setInterval(function() { self._checkBait(loop); }, this._options.loopCheckTime); } setTimeout(function() { self._checkBait(loop); }, 1); if(this._options.debug === true) { this._log('check', 'A check is in progress ...'); } return true; }; BlockAdBlock.prototype._checkBait = function(loop) { var detected = false; if(this._var.bait === null) { this._creatBait(); } if(window.document.body.getAttribute('abp') !== null || this._var.bait.offsetParent === null || this._var.bait.offsetHeight == 0 || this._var.bait.offsetLeft == 0 || this._var.bait.offsetTop == 0 || this._var.bait.offsetWidth == 0 || this._var.bait.clientHeight == 0 || this._var.bait.clientWidth == 0) { detected = true; } if(window.getComputedStyle !== undefined) { var baitTemp = window.getComputedStyle(this._var.bait, null); if(baitTemp && (baitTemp.getPropertyValue('display') == 'none' || baitTemp.getPropertyValue('visibility') == 'hidden')) { detected = true; } } if(this._options.debug === true) { this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative')); } if(loop === true) { this._var.loopNumber++; if(this._var.loopNumber >= this._options.loopMaxNumber) { this._stopLoop(); } } if(detected === true) { this._stopLoop(); this._destroyBait(); this.emitEvent(true); if(loop === true) { this._var.checking = false; } } else if(this._var.loop === null || loop === false) { this._destroyBait(); this.emitEvent(false); if(loop === true) { this._var.checking = false; } } }; BlockAdBlock.prototype._stopLoop = function(detected) { clearInterval(this._var.loop); this._var.loop = null; this._var.loopNumber = 0; if(this._options.debug === true) { this._log('_stopLoop', 'A loop has been stopped'); } }; BlockAdBlock.prototype.emitEvent = function(detected) { if(this._options.debug === true) { this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called'); } var fns = this._var.event[(detected===true?'detected':'notDetected')]; for(var i in fns) { if(this._options.debug === true) { this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length); } if(fns.hasOwnProperty(i)) { fns[i](); } } if(this._options.resetOnEnd === true) { this.clearEvent(); } return this; }; BlockAdBlock.prototype.clearEvent = function() { this._var.event.detected = []; this._var.event.notDetected = []; if(this._options.debug === true) { this._log('clearEvent', 'The event list has been cleared'); } }; BlockAdBlock.prototype.on = function(detected, fn) { this._var.event[(detected===true?'detected':'notDetected')].push(fn); if(this._options.debug === true) { this._log('on', 'A type of event "'+(detected===true?'detected':'notDetected')+'" was added'); } return this; }; BlockAdBlock.prototype.onDetected = function(fn) { return this.on(true, fn); }; BlockAdBlock.prototype.onNotDetected = function(fn) { return this.on(false, fn); }; window.BlockAdBlock = BlockAdBlock; if(window.blockAdBlock === undefined) { window.blockAdBlock = new BlockAdBlock({ checkOnLoad: true, resetOnEnd: true }); } })(window); page = {}; pages = { page_featured_timeout: null, timespent: { page_articles_detail: { time: 0, id: 0 }, page_photos_detail: { time: 0, id: 0 }, page_videos_detail: { time: 0, id: 0 } }, init: { page_prime_magazine_detail: function (oldPageId, newPageId, buildType) { // console.log('page_prime_magazine_detail'); if ('primeMagazine' in window) { // console.log('run magazine'); window.primeMagazine.init(); } }, page_featured_simple: function (oldPageId, newPageId, buildType) { utils.spotimCountsToShareBox('#articles_data, #videos_data'); }, page_featured: function (oldPageId, newPageId, buildType) { if(ajaxNavigation.page.firstBoot){ $(document).scrollTop(0); } pagesFn.features.initSection1(buildType); pagesFn.features.initScroll('features'); if('page_featured' == newPageId){ if(configVars.engine.loaderTimeout > 60000){ pages.page_featured_timeout = setTimeout(function(){ goToUrl(window.location.href); },configVars.engine.loaderTimeout); } } }, page_driver_detail: function (oldPageId, newPageId, buildType) { pagesFn.dotdotdotBox(buildType, '#bio_box', 'page_driver_detail', 500); }, page_team_detail: function (oldPageId, newPageId, buildType) { pagesFn.dotdotdotBox(buildType, '#history_box', 'page_team_detail', 500); }, page_track_detail: function (oldPageId, newPageId, buildType) { pagesFn.dotdotdotBox(buildType, '#history_box', 'page_track_detail', 500); }, page_photos_browse: function(oldPageId, newPageId, buildType, href){ $('#filters_form').validate(); utils.inputRadioOnLabelUnselect('#filters_form .period'); function clearCalendar(){ if($('#filters_form #dt_calendar').val()){ utils.dateCalendarClear({}, '#filters_form #dt_calendar'); } } $('#filters_form').on('click', '.periodRange', function(){ $('#filters_form .periodYear').val(''); clearCalendar(); }); $('#filters_form #dt_calendar').on('focus', function(){ $('#filters_form .periodYear').val(''); $('#filters_form .period input[type="radio"]:checked').prop('checked', false); }); $('#filters_form .periodYear').on('change', function(){ $('#filters_form .period input[type="radio"]:checked').prop('checked', false); clearCalendar(); }); utils.dateCalendar('#dt_calendar_box', {showRangeSelect: true}); //pagesFn.scrollPageToPart('#photos_list', href); $('#filters_form').on('click', '.column.driver .alphabetList > span', function(){ var $this = $(this), value = $this.data('value'); if($this.is('.disabled') || $this.is('.current')){ return; } $this.parent().find('.current').removeClass('current'); $this.addClass('current'); var $driverList = $this.parent().next('.driverList'); $driverList.find('.letter.current').removeClass('current'); $driverList.find('.letter[data-value="' + value + '"]').addClass('current'); }); utils.inputRadioOnLabelUnselect('#filters_form .photographer'); utils.inputRadioOnLabelUnselect('#filters_form .driver'); $('#filters_form').on('mousedown', '.photographer label, .driver label', function(){ var $this = $(this), $input = $this.prev('input[type="radio"]'), $column = $this.parents('.column'), url = $column.data('url'), name = $column.is('.driver') ? 'd' : 'ph', $box = $column.parent('.filtersContentWrapper'), params = {}; if(!$input.is(':checked')){ params[name] = $input.val(); } var $check = $box.find('.column.' + (name == 'd' ? 'photographer' : 'driver') + ' input[type="radio"]:checked'); if($check.length){ params[name == 'd' ? 'ph' : 'd'] = $check.val(); } if(name == 'd'){ var $dl = $box.find('.column.driver .alphabetList .current'); if($dl.length){ var dl = $dl.data('value'); if(dl){ params['dl'] = dl; } } } $.ajax({ url: url, data: params, success: function(response){ if(response && response.constructor === Object && response.html){ var $html = $('
').append(response.html); if($html.length && $box.length){ var $ph = $html.find('.column.photographer'), $dr = $html.find('.column.driver'); if($ph.length && $dr.length){ $box.find('.column.photographer').hide().after($ph).remove(); $box.find('.column.driver').hide().after($dr).remove(); } } $html.remove(); } } }); }); var stopScroll = ajaxNavigation.page.firstBoot || buildType == 'popstate' ? true : false; if(stopScroll){ $(document).scrollTop(0); } var scrollTimeout = null; $(window).on('scroll.page_photos_browse', function(event){ clearTimeout(scrollTimeout); if(ajaxNavigationBuildPopup.status){ return true; } scrollTimeout = setTimeout(function(){ if(stopScroll){ stopScroll = false; return true; } if(!ajaxNavigation.stoped){ utils.listMorePage('photos_list', '#pager .more'); } }, 300); }); }, 'page_about-us': function(oldPageId, newPageId, buildType, href) { var $page = $('#' + newPageId), $window = $(window), $flagsContainer = $page.find('.editionBox'), $flags = $flagsContainer.find('.item'), count = $flags.length, flagsVisible = false; var step = (2*Math.PI) / $flags.length, offsetX = 20, offsetY = 40; function rearangeFlagIcons() { var angle = Math.PI * 3 / 2, height = $flagsContainer.height() - offsetY, width = $flagsContainer.width() - offsetX, halfHeight = height / 2, halfWidth = width / 2; if (height < 50) { setTimeout(function() { rearangeFlagIcons(); }, 50); } else if (!flagsVisible) { flagsVisible = true; $flags.fadeIn(); } $flags.each(function(index, el) { var x = Math.round(halfWidth + halfWidth * Math.cos(angle) - $(this).width()/2) + offsetX / 2, y = Math.round(halfHeight + halfHeight * Math.sin(angle) - $(this).height()/2) + offsetY / 2; $(this).css({ left: x + 'px', top: y + 'px' }); if (index == 0) { angle += step + (step / 8); } else { angle += step - step / 64; } }); } $window.on('resize', rearangeFlagIcons); rearangeFlagIcons(); // $flags.each(function(index, el) { // var $el = $(this); // setTimeout(function() { // $el.fadeIn(); // }, 100 * index); // }); }, page_digest_detail: function(oldPageId, newPageId, buildType, href){ setTimeout(function(){ $('#livefyre_comments_box .showCommentsBtn').trigger('click'); },500); }, page_articles_detail: function(oldPageId, newPageId, buildType, href){ var d = new Date(), $page = $('#article_detail'), $body = $(document.body), edition = $body.data('edtn'), $window = $(window), $articlePhoto = $('.articleWrapper .articlePhoto img'), mainPhotoLoadInterval, $articleBox = $('.articleTextBox'), $sliderViewBtn = $articleBox.find('.btnImageSliderView'), $articleContent = $articleBox.find('.content'); // there is a porblem with flaot, so if player is inserted it breaks floated text // also width of player will be different if it floats something // showAdInEditions = ['en', 'me', 'lat', 'it', 'in', 'uk', 'au', 'de', 'nl', 'cn', 'ru', 'fr', 'br']; var showAdInEditions = []; var $graph = $('#shares_speed_graph'), $path = $('#shares_line'), lineData = pagesFn.getSharesGraphPoints($graph, $graph.data('shares')); if (lineData.length) { var lineFunction = d3.svg.line() .x(function(d) { return d.x; }) .y(function(d) { return $graph.height() - d.y; }) .interpolate("monotone"); $path.attr('d', lineFunction(lineData)); } $('.embed-item').each(function(index, item) { var $el = $(item), code = $el.data('embed-code'); $el.html(unescape(code)); }); pages.timespent.page_articles_detail.time = d.getTime(); pages.timespent.page_articles_detail.id = $('#page_articles_detail_info').data('id') || 0; var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#article_sidebar [data-widget]').detach(); var scrollTimeout = null; $window.on('scroll.page_article_detail', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ var r = utils.asideWidgetRepeater(widgets, 'article_detail', 'article_sidebar', true); } // utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ // if(document.documentElement.clientWidth >= 900){ // $window.trigger('scroll.page_article_detail'); // } // }); }, 300); }).trigger('scroll.page_article_detail'); pagesFn.features.initScroll('features'); setTimeout(function(){ $('#livefyre_comments_box .showCommentsBtn').trigger('click'); },500); // // var $misspellWraper = $('#misspell_report'); // if($misspellWraper.length){ // var userAgent = navigator.platform.toLowerCase(), // isMac = userAgent.indexOf('mac') >= 0, // isTouchDevice = !!('ontouchstart' in window); // if (!isTouchDevice) { // $misspellWraper.html('
'+ i18n.m3681.replace('%s', isMac ? 'Cmd' : 'Ctrl' ) + '
'); // } // } $window.on('keydown.mistake', function(event) { if ((event.keyCode == 10 || event.keyCode == 13) && (event.ctrlKey || event.metaKey)) { pagesFn.showMistakeWindow(); } }); var $contentImages = $articleContent.find('.image .thumb[href^="/"]'); if($contentImages.length){ $contentImages.attr('data-build', 'popup'); $contentImages.attr('data-extra-params', 'is_popup:1'); } // show insider block (function() { var $articleParagraphs = $articleContent.children('p'), paragraphsCount = $articleParagraphs.length, $insiderForm = $('#motorsport_insider_form'), middle; // show register form only when register pop-up already shown // should be disabled if there is no register pop-up // var registerLightBox = $.cookie('reglb'); // if (isCookieSupported && !registerLightBox) return; // if (!$insiderForm.length || paragraphsCount < 10) return; middle = Math.floor(paragraphsCount / 2); $articleParagraphs.eq(middle - 1).after($insiderForm); $insiderForm.show(); $insiderForm.validate(); /* $insiderForm.validate({ submitHandler: function(form) { var $form = $(form), $emailField = $form.find('input[type="email"]'); console.log(form); // goToUrl('/join/', 'popup', {data: {params: { // is_popup: 1, // user_email: $emailField.val() // }}}); pagesFn.showRegisterPopup({ email: $emailField.val() }); //add here send email to server for subscription // console.log($emailField.val()); gaArticleEmailSubscription('articleEmailSubscription', window.location.href); } }); */ })(); // show register popup if user not registered (function() { var registerLightBox = $.cookie('reglb'), isPrimeEdition = $body.hasClass('primeEdition'); // disable register pop-up for all editions // don't forget to update logic for insider block return; // show register popup only in editions which have premium version if (!isPrimeEdition) { return; } // lightbox every 3 days if (!window.isAuthorized && isCookieSupported && !registerLightBox) { /* var registerTimeout = setTimeout(function() { $.cookie('reglb', 1, {expires: 3, path: '/'}); goToUrl('/join/', 'popup', {data: {params: { is_popup: 1 }}}); }, 5000); */ var registerTimeout = setTimeout(pagesFn.showRegisterPopup, 5000); $page.data('register-timeout', registerTimeout); } })(); // show ad video /* Skip advertisement if article has slider gallery */ if ($sliderViewBtn.length !== 1 && (showAdInEditions.indexOf(edition) !== -1)) { mainPhotoLoadInterval = setInterval(function() { if ($articlePhoto.height() === 0) return; clearInterval(mainPhotoLoadInterval); var $articleParagraphs = $articleContent.children('p'), paragraphsCount = $articleParagraphs.length, middle = Math.floor(paragraphsCount / 2), showAds = $articleContent.data('show-ads'), $video = $([ '
' ].join('')), windowHeight = $window.innerHeight(), videoHeight, videoOffset; if (!showAds) return; if (paragraphsCount < 5) { $articleParagraphs.eq(paragraphsCount - 1).after($video); } else { $articleParagraphs.eq(middle - 1).after($video); } videoOffset = $video.offset(); videoHeight = $video.height(); $video.css({ height: 0, margin: 0 }); $video.on('adFinished', function(event) { $video.slideUp(1000, function() { $video.remove(); }); }); $window .on('resize.articleVideoAd', function() { $video.css({ height: 'auto' }); videoOffset = $video.offset(); videoHeight = $video.height(); $video.height(0); windowHeight = $window.innerHeight(); }) .on('scroll.articleVideoAd', function() { var scrollTop = $window.scrollTop(); if (scrollTop + windowHeight - videoHeight / 2 > videoOffset.top && scrollTop - videoHeight / 2 < videoOffset.top) { $window .off('resize.articleVideoAd') .off('scroll.articleVideoAd'); $video.append(''); $video.on('adStart', function() { $video.animate({height: videoHeight}, 500); }); } }).trigger('scroll.articleVideoAd'); }, 100); } /* */ var $slider = $('#article_fw_gallery'); if($slider.length){ var $items = $slider.find('.item'); if($items.length > 1){ function getCurrent(){ return $items.filter('.current').first(); } var hash = decodeURIComponent(document.location.hash); if(/^#image-/.test(hash)){ var alias = hash.substr(7), $newCurrent = $items.filter('[data-name="' + alias + '"]'); if($newCurrent.length){ $items.removeClass('current'); $newCurrent.addClass('current'); } } var $currentItem = getCurrent(); function detectNextPrev($current){ return [$current.next('.item'), $current.prev('.item')]; } function initControls(){ $slider.find('.sliderCntrl .btn.nextPhoto, .sliderCntrl .btn.prevPhoto').removeClass('disabled'); } initControls(); var adsTimeout = null; $slider.on('click', '.fullWidthSlider .sliderCntrl .btn', function(event){ event.stopPropagation(); event.preventDefault(); var $this = $(this), $current = getCurrent(), next_prev = detectNextPrev($current); if($this.is('.disabled')){ return false; } else if($this.is('.nextPhoto')){ if(next_prev[0].length){ $items.removeClass('current'); $current = next_prev[0].addClass('current'); }else{ $items.removeClass('current'); $current = $items.first().addClass('current'); } }else if($this.is('.prevPhoto')){ if(next_prev[1].length){ $items.removeClass('current'); $current = next_prev[1].addClass('current'); }else{ $items.removeClass('current'); $current = $items.last().addClass('current'); } } document.location.hash = 'image-' + $current.data('name'); var trackUrl = $('#current_series').data('track-url'); if(trackUrl){ gaTrack(trackUrl); } var $adsBox = $('#article_sidebar [data-type="ad"][data-widget]').first(), $ads = $adsBox.find('.ap'); if($ads.length){ clearTimeout(adsTimeout); adsTimeout = setTimeout(function(){ $ads.data('ready', false).attr('data-ready', false).find('>div').empty(); utils.banners($adsBox); },1000); } }) .on('click', '.fullWidthSlider .item .thumb', function(event){ event.stopPropagation(); event.preventDefault(); $('.fullWidthSlider').find('.sliderControlsGen.sliderCntrl .btn.nextPhoto').trigger('click'); }).on('touchend', '.fullWidthSlider .item .thumb', function(event){ var changedTouches = event.originalEvent.changedTouches[0]; var t = utils.movieDirection(touchesPageX, touchesPageY, changedTouches.pageX, changedTouches.pageY); if(t.direction == 'left' && t.distance > 30){ $('.fullWidthSlider').find('.sliderControlsGen.sliderCntrl .btn.nextPhoto').trigger('click'); }else if(t.direction == 'right' && t.distance > 30){ $('.fullWidthSlider').find('.sliderControlsGen.sliderCntrl .btn.prevPhoto').trigger('click'); } }); } } $body.on('keydown.page-article-detail-key-navigation', function(event){ if('ajaxNavigationBuildPopup' in window && ajaxNavigationBuildPopup.status){ return; } if(event.altKey || event.ctrlKey || event.shiftKey){ return true; } var prevCodes = [37,100], nextCodes = [39,102]; if($.inArray(event.keyCode, prevCodes) >= 0){ //$('.articleDetail .contentNavigSmall').first().find('.prev').trigger('click'); $('.fullWidthSlider').find('.sliderControlsGen.sliderCntrl .btn.prevPhoto').trigger('click'); } else if($.inArray(event.keyCode, nextCodes) >= 0){ //$('.articleDetail .contentNavigSmall').first().find('.next').trigger('click'); $('.fullWidthSlider').find('.sliderControlsGen.sliderCntrl .btn.nextPhoto').trigger('click'); } }); // Floating share box (function() { var $articleDetail = $('#article_detail'), $shareBox = $articleDetail.find('.shareBox').eq(0).clone(true), isRtl = $body.hasClass('textRtl'), $centerSharesBlock = $('#center_shares_block'); var $relatedPage = $('#related_page'); $centerSharesBlock.addClass('hidden'); $shareBox.attr('class', '').addClass('shareBox share-box-icon-list').appendTo($centerSharesBlock); $centerSharesBlock.append(''); $centerSharesBlock.append(''); setTimeout(function() { $centerSharesBlock.removeClass('hidden'); setTimeout(function() { $centerSharesBlock.addClass('initialized'); }, 1000); }, 5000); $centerSharesBlock .on('click', 'a', function(event) { var isHidden = parseInt($centerSharesBlock.css(isRtl ? 'right' : 'left'), 10) !== 0; if (isHidden) { event.preventDefault(); event.stopPropagation(); } }) .on('click', '.collapseBtn', function() { $centerSharesBlock.addClass('collapsed'); }) .on('click', '.expandBtn', function() { $centerSharesBlock.removeClass('collapsed'); }); $window.on('scroll.share_widget', function() { var scrollTop = window.scrollY || window.pageYOffset || 0, relatedPageTop = $relatedPage.offset().top; if (scrollTop + window.innerHeight > relatedPageTop) { $centerSharesBlock.fadeOut(); } else { $centerSharesBlock.fadeIn(); } }); })(); /* (function() { var userMenuHeight = $('#user_menu').height(), headerHeight = $('#header_box').height(), mainMenuHeight = headerHeight - userMenuHeight, $articleDetail = $('#article_detail'), $shareBox = $articleDetail.find('.shareBox').eq(0).clone(true), $articleStart = $articleDetail.find('.articlePhoto'), $articleAbout = $articleDetail.find('.aboutInfo'), $stickSideCenter = $('#stick_side_center'), innerHeight = window.innerHeight, sharesVisible = false; if(!$shareBox.length || !$stickSideCenter.length || !$articleAbout.length) return; if (!$articleStart.length) { if (!$slider.length) return; $articleStart = $articleDetail.find('.articleContent'); } $shareBox.attr('class', '').addClass('shareBox share-box-icon-list').appendTo($stickSideCenter); $window .on('resize.share_box', function() { innerHeight = window.innerHeight; }) .on('scroll.share_box', function(event) { var articleStartBbox = $articleStart[0].getBoundingClientRect(), articleAboutBbox = $articleAbout[0].getBoundingClientRect(); if (articleStartBbox.top - mainMenuHeight < 0 && innerHeight < articleAboutBbox.bottom) { if (sharesVisible) return; sharesVisible = true; $stickSideCenter.addClass('show-info'); } else { sharesVisible = false; $stickSideCenter.removeClass('show-info'); } }).trigger('scroll.share_box'); })(); */ var $outbtain_box = $('.OUTBRAIN'); if($outbtain_box.length){ $outbtain_box.after(''); } var $ligatus_box = $('#ligatus_box'); if($ligatus_box.length){ $ligatus_box.html(''); } var $smi2ru_box = $('#smi2ru_box'); if($smi2ru_box.length){ $smi2ru_box.html(''); } var $sharethrough_box = $('#sharethrough_box'); if($sharethrough_box.length){ $sharethrough_box.after(''); } }, page_team: function(oldPageId, newPageId, buildType, href) { var $this = $(this), $window = $(window), $pageTeamCenterBlock = $('.pageTeamCenterBlock'), $overlayContentWrapper = $('[data-role="popup"]'); $pageTeamCenterBlock.on('click', '.personsWithDetailInfo .person', function(event) { var $this = $(this); if ($this.hasClass('noDetails')) return; if ($(event.target).is('a')) { return; } var html = [ '
', '', $this.html(), '
' ]; $window.on('keyup.team-overlay click', function (event) { if (event.keyCode === 27) { $overlayContentWrapper.find('.popupClose').trigger('click'); } }); $overlayContentWrapper .on('click.team-overlay', function() { $overlayContentWrapper.find('.popupClose').trigger('click'); }) .on('click.team-overlay', '.personInfoWrapper', function(event) { event.stopPropagation(); }) .on('click.team-overlay', '.popupClose', function(event) { $overlayContentWrapper .removeClass("enabled") .addClass("disabled") .empty(); $overlayContentWrapper.off('click.team-overlay'); $window.off('keyup.team-overlay'); }); $overlayContentWrapper .addClass('enabled') .removeClass('disabled') .html(html.join('')); }); }, page_videos_detail: function(oldPageId, newPageId, buildType, href){ var d = new Date(); pages.timespent.page_videos_detail.time = d.getTime(); pages.timespent.page_videos_detail.id = $('#page_videos_detail_info').data('id') || 0; var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#video_sidebar [data-widget]').detach(); var scrollTimeout = null; $(window).on('scroll.page_videos_detail', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ var r = utils.asideWidgetRepeater(widgets, 'video_detail', 'video_sidebar', true); } // utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ // if(document.documentElement.clientWidth >= 900){ // $(window).trigger('scroll.page_videos_detail'); // } // }); }, 300); }).trigger('scroll.page_videos_detail'); pagesFn.features.initScroll('features'); setTimeout(function(){ $('#livefyre_comments_box .showCommentsBtn').trigger('click'); },500); }, page_tvshow_episode_detail: function(oldPageId, newPageId, buildType, href){ var d = new Date(); pages.timespent.page_videos_detail.time = d.getTime(); pages.timespent.page_videos_detail.id = $('#page_videos_detail_info').data('id') || 0; var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#video_sidebar [data-widget]').detach(); var scrollTimeout = null; $(window).on('scroll.page_tvshow_episode_detail', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ var r = utils.asideWidgetRepeater(widgets, 'video_detail', 'video_sidebar', true); } // utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ // if(document.documentElement.clientWidth >= 900){ // $(window).trigger('scroll.page_tvshow_episode_detail'); // } // }); }, 300); }).trigger('scroll.page_tvshow_episode_detail'); setTimeout(function(){ $('#livefyre_comments_box .showCommentsBtn').trigger('click'); },500); }, page_topic_detail_bio: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetDetailScroll('page_topic_detail_bio', 'topic_detail_bio', 'topic_bio_sidebar'); }, page_driver_detail_bio: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetDetailScroll('page_driver_detail_bio', 'driver_detail_bio', 'driver_bio_sidebar'); }, page_team_detail_history: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetDetailScroll('page_team_detail_history', 'team_detail_history', 'team_history_sidebar'); }, page_track_detail_history: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetDetailScroll('page_track_detail_history', 'track_detail_history', 'track_history_sidebar'); }, page_photos_detail: function(oldPageId, newPageId, buildType, href){ var d = new Date(); pages.timespent.page_photos_detail.time = d.getTime(); pages.timespent.page_photos_detail.id = $('#page_photos_detail_info').data('id') || 0; if('photosDetail' in page){ page.photosDetail.pageInit(); page.photosDetail.keyNavigationInit(); } var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#photos_sidebar [data-widget]').detach(); var scrollTimeout = null; $(window).on('scroll.page_photos_detail', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ var r = utils.asideWidgetRepeater(widgets, 'photos_box', 'photos_sidebar', true); //console.log(r); // if(r != 'keepon' && parseInt(document.getElementById('page_photos_detail').getBoundingClientRect().bottom) <= document.documentElement.clientHeight){ // if($livefyre_comments_box.data('loaded')){ // console.log('loading new content'); // } // } } // utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ // if(document.documentElement.clientWidth >= 900){ // $(window).trigger('scroll.page_photos_detail'); // } // }); }, 300); }).trigger('scroll.page_photos_detail'); pagesFn.features.initScroll('features'); setTimeout(function(){ $('#livefyre_comments_box .showCommentsBtn').trigger('click'); },500); }, page_news_browse: function(oldPageId, newPageId, buildType, href){ $('#filters_form').validate(); utils.inputRadioOnLabelUnselect('#filters_form .period'); function clearCalendar(){ if($('#filters_form #dt_calendar').val()){ utils.dateCalendarClear({}, '#filters_form #dt_calendar'); } } $('#filters_form').on('click', '.periodRange', function(){ $('#filters_form .periodYear').val(''); clearCalendar(); }); $('#filters_form #dt_calendar').on('focus', function(){ $('#filters_form .periodYear').val(''); $('#filters_form .period input[type="radio"]:checked').prop('checked', false); }); $('#filters_form .periodYear').on('change', function(){ $('#filters_form .period input[type="radio"]:checked').prop('checked', false); clearCalendar(); }); utils.dateCalendar('#dt_calendar_box', {showRangeSelect: true}); pagesFn.asideWidgetMoreScroll('page_news_browse', 'news_list', 'news_sidebar'); utils.spotimCountsToShareBox('#news_list #news_list_wrapper'); }, page_digest_browse: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetDefaultScroll('page_digest_browse', 'digest_list', 'digest_sidebar'); }, page_videos_browse: function(oldPageId, newPageId, buildType, href){ $('#filters_form').validate(); utils.inputRadioOnLabelUnselect('#filters_form .period'); utils.inputRadioOnLabelUnselect('#filters_form .topics'); function clearCalendar(){ if($('#filters_form #dt_calendar').val()){ utils.dateCalendarClear({}, '#filters_form #dt_calendar'); } } $('#filters_form').on('click', '.periodRange', function(){ $('#filters_form .periodYear').val(''); clearCalendar(); }); $('#filters_form #dt_calendar').on('focus', function(){ $('#filters_form .periodYear').val(''); $('#filters_form .period input[type="radio"]:checked').prop('checked', false); }); $('#filters_form .periodYear').on('change', function(){ $('#filters_form .period input[type="radio"]:checked').prop('checked', false); clearCalendar(); }); utils.dateCalendar('#dt_calendar_box', {showRangeSelect: true}); pagesFn.asideWidgetMoreScroll('page_videos_browse', 'videos_list', 'videos_sidebar'); }, page_broadcasts_browse: function(oldPageId, newPageId, buildType, href) { var $page = $('#' + newPageId), $dates = $page.find('[data-future-date]'); $dates.each(function(index, el) { var $el = $(el), date; if ($el.data('ready')) return; date = new Date($el.data('future-date') * 1000); $el.data('ready', true); $el.html('' + date.format('yyyy-mm-dd HH:MM:ss') + ''); }); pagesFn.asideWidgetMoreScroll('page_broadcasts_browse', 'live_texts_list', 'live_texts_sidebar'); }, page_broadcast: function(oldPageId, newPageId, buildType, href) { var $window = $(window), $page = $('#' + newPageId), $statusIcon = $page.find('#article_detail h1 img'), $broadcastWrapper = $('#broadcast_wrapper'), $connectionsCountWrapper = $broadcastWrapper.find('.usersCount'), broadcastData = $broadcastWrapper.data(), $commentsWrapper = $page.find('.commentsWrapper'), $liveTextPlanned = $page.find('.liveTextPlanned'), $yourDate = $liveTextPlanned.find('.yourDate'), $localDate = $liveTextPlanned.find('.localDate'), $liveTextDateCtrl = $liveTextPlanned.find('.liveTextDateControl'), $liveTextDates = $liveTextPlanned.find('.livetextDate'), broadcastApi, twitterVia = broadcastData.via.split("/").pop() || 'motorsport', date = new Date(); $liveTextDates.addClass('hidden').eq(0).removeClass('hidden'); $liveTextDateCtrl.eq(0).addClass('active'); $liveTextDateCtrl.on('click', function(el) { var $this = $(this), index = $liveTextDateCtrl.index($this); $liveTextDateCtrl.removeClass('active'); $this.addClass('active'); $liveTextDates.addClass('hidden'); $liveTextDates.eq(index).removeClass('hidden'); }); if ($yourDate.length) { date = new Date(parseInt($yourDate.data('future-date'), 10) * 1000 + date.getTimezoneOffset()); $yourDate.text(dateFormat(date, 'yyyy-mm-dd HH:MM')); } broadcastApi = $broadcastWrapper.broadcast({ startTime: broadcastData.startTime, wsUri: broadcastData.wsUri, wsState: broadcastData.wsState, broadcastId: broadcastData.broadcastId, via: twitterVia }); $broadcastWrapper.on('statuschange', function(event, status) { if (status === 1) { $statusIcon.removeClass('hidden'); $commentsWrapper.removeClass('hidden'); $connectionsCountWrapper.show(); $liveTextPlanned.remove(); $window.on('beforeunload.page_broadcast', function() { return i18n.m4369; }); } else { $statusIcon.addClass('hidden'); $connectionsCountWrapper.hide(); $window.off('beforeunload.page_broadcast'); } }); var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#article_sidebar [data-widget]').detach(); var scrollTimeout = null; var bannersInitialized = false; var bannerAndGaInterval = 300000; // 5 min $window.on('scroll.page_broadcast', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(window.innerWidth > 1024) { var r = utils.asideWidgetRepeater(widgets, 'article_detail', 'article_sidebar', true); } if(!bannersInitialized && configVars.engine.loaderTimeout > 60000) { initBannerReloader(); bannersInitialized = true; } utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ if(window.innerWidth > 1024) { $window.trigger('scroll.page_broadcast'); } }); }, 300); }).trigger('scroll.page_broadcast'); // reload banner and send page view function initBannerReloader() { function refreshBannersAndPageView() { var $topBanner = $('.topAp .ap'), $leftBanner = $('.sidebar .ap').eq(0), scrollTop = $window.scrollTop(), trackUrl = broadcastData.trackUrl; if(window.innerWidth > 747 && scrollTop < 165){ $topBanner.each(function(index, el) { var $el = $(el); $el.empty(); $el.removeAttr('data-ready'); utils.banners($el.parent()); }); } if(window.innerWidth > 1024 && scrollTop < 510){ $leftBanner.empty(); $leftBanner.removeAttr('data-ready'); utils.banners($leftBanner.parent()); } gaTrack(trackUrl); pages.page_broadcast_timeout = setTimeout(refreshBannersAndPageView, bannerAndGaInterval); } pages.page_broadcast_timeout = setTimeout(refreshBannersAndPageView, bannerAndGaInterval); } }, page_login: function(){ $('#login-form').validate(); }, page_info_join: function() { var $body = $(document.body), $vacancies = $('#table_vacancies'), hash = window.location.hash.replace('#', ''), $vacancyHeader; if (hash) { $vacancyHeader = $vacancies.find('[data-value="'+ hash +'"]'); $vacancyHeader.addClass('active').attr('data-toggle', 1); $vacancies.find('[data-button-target="'+ hash +'"]').addClass('enabled').removeClass('disabled'); setTimeout(function() { $body.stop().animate({scrollTop: $vacancyHeader.offset().top - 60}, 500); }, 500); } $(".joinForm").each(function(index, el) { $(el).validate(); }); }, page_join: function() { $("#join-form").validate({ rules: { login: { remote: { type: 'POST', url: '/join/standalone-validate/' } }, email: { remote: { type: 'POST', url: '/join/standalone-validate/' } } } }); }, page_join_prime: function() { $("#join-form").validate({ rules: { login: { remote: { type: 'POST', url: '/join/standalone-validate/' } }, email: { remote: { type: 'POST', url: '/join/standalone-validate/' } } } }); }, recovery_password: function(){ $('#recovery-password-form').validate(); }, reset_password: function(){ $('#change-password-form').validate(); }, page_albums_browse: function(oldPageId, newPageId, buildType, href) { var timer = setTimeout(initUploader, 50); function initUploader() { if( 'initPhotoUploader' in pagesFn && page.cmpUploader && typeof page.cmpUploader.ChunkUploader === "function" ) { pagesFn.initPhotoUploader(); } else { setTimeout(initUploader, 100); } } var widgets = $('#albums_sidebar [data-widget]').detach(); var stopScroll = ajaxNavigation.page.firstBoot || buildType == 'popstate' ? true : false; if(stopScroll){ $(document).scrollTop(0); } var scrollTimeout = null; $(window).on('scroll.page_albums_browse', function(){ var $moreBtn = $('#pager .more'); clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ utils.asideWidgetRepeater(widgets, 'albums_grid', 'albums_sidebar', true); } if(stopScroll){ stopScroll = false; return true; } if ($('#album_edit_wrapper').is(":visible") || $moreBtn.is(".disabled")) { return false; } if(!ajaxNavigation.stoped){ utils.listMorePage('albums_grid', '#pager .more'); } }, 300); }).trigger('scroll.page_albums_browse'); }, page_video_add: function(oldPageId, newPageId, buildType, href) { if( 'initVideoUploader' in pagesFn && page.cmpUploader && typeof page.cmpUploader.ChunkUploader === "function" ) { pagesFn.initVideoUploader(); } else { setTimeout(pages.init.page_video_add, 50); } }, page_results: function(){ $('.pageResults .filtersBox .filterSelectAction').on('change', function(){ goToUrl($(this).find(':selected').val()); }); var widgets = $('#results_sidebar [data-widget]').detach(); var scrollTimeout = null; $(window).on('scroll.page_results', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ utils.asideWidgetRepeater(widgets, 'results_box', 'results_sidebar', true); } }, 300); }).trigger('scroll.page_results'); if ( $('#page_results').is('.pageResultsWrc') ) { var $tableWithFlags = $('.results'), $racesTitleWrapepr = $('.filterSelectAction').eq(1).find('option'), $tableTh; if( $tableWithFlags.length ){ $tableTh = $tableWithFlags.find('th').not('.c0, .c1, .cz').not(':last-child'); $tableTh.each(function(pos, el){ var $item = $(el), $linkItem = $racesTitleWrapepr.eq((pos + 1)), href = $linkItem.attr('value'); $item.find('a').attr('href', href); }); } } }, page_content_filter: function(oldPageId, newPageId, buildType, href){ var isEventPage = $('.root').is('.pageFilterEvent'); var widgets = $('#filter_sidebar [data-widget]').detach(); var stopScroll = false; if(isEventPage){ $('#filters_form').validate(); utils.inputRadioOnLabelUnselect('#filters_form .period'); function clearCalendar(){ if($('#filters_form #dt_calendar').val()){ utils.dateCalendarClear({}, '#filters_form #dt_calendar'); } } $('#filters_form').on('click', '.periodRange', function(){ $('#filters_form .periodYear').val(''); clearCalendar(); }); $('#filters_form #dt_calendar').on('focus', function(){ $('#filters_form .periodYear').val(''); $('#filters_form .period input[type="radio"]:checked').prop('checked', false); }); $('#filters_form .periodYear').on('change', function(){ $('#filters_form .period input[type="radio"]:checked').prop('checked', false); clearCalendar(); }); utils.dateCalendar('#dt_calendar_box', {showRangeSelect: true}); stopScroll = ajaxNavigation.page.firstBoot || buildType == 'popstate' ? true : false; if(stopScroll){ $(document).scrollTop(0); } } var scrollTimeout = null; $(window).on('scroll.page_content_filter', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ utils.asideWidgetRepeater(widgets, 'filter_list', 'filter_sidebar', true/*!isEventPage*/); } if(isEventPage){ if(stopScroll){ stopScroll = false; return true; } if(!ajaxNavigation.stoped){ utils.listMorePage('filter_list', '#pager .more'); } } }, 300); }).trigger('scroll.page_content_filter'); }, page_profile : function(){ function prepareForm (form) { if(form.length) { form.validate(); return form; } } var $account = prepareForm($('#form_update_account')), $password = prepareForm($('#form_change_password')), $notifi = prepareForm($('#form_email_options')), $email = prepareForm($('#form_change_email')), $delete = prepareForm($('#form_delete_account')), $album = prepareForm($('#form_change_album')), $subs = $('#form_update_subs'), $pageSkin = prepareForm($('#form_change_page_skin')), $btn_Delete = $('#delete_album', $album).hide(), $album_name = $('#album_name', $album), $albumSave = $('[type="submit"]', $album), $photo_albums = $('#form_add_photo_albums'), $change_image_form = prepareForm($('#change-image-form')), $crop_image_form = $('#crop_image_form'), $crop_image_button = $('#crop_image_button'), $change_image_input = $('#change_image_input'), $newsletter_series = $("#motorsport_newsletter_series-element"); var $message = $('.fullWidthMsgWrapper'); if ($message.length) { if (!$message.hasClass('persist')) { setTimeout(function() { hideMessage($message); }, 10000); } } $message.on('click', '.close', function() { var $this = $(this), $message = $this.closest('.fullWidthMsgWrapper'); if ($message.hasClass('removing')) return; $message.addClass('removing'); hideMessage($message); }); function hideMessage() { $message.slideUp(1000, function() { $message.remove(); }); } if( $change_image_input && $change_image_input.length) { $change_image_input.on('change', function(){ $('#change_image').trigger('click'); }); } if( $album && $album.length) { $album.find('[type="reset"]').on('click', function(){ $album.attr('action', $album.data('create-album')); $btn_Delete.hide(); $albumSave.val(i18n.m1032); }); $album.on('change', '#form_add_photo_albums', function(event){ var $this = $(this), $selected = $this.find(':selected'); if ( $selected.val() && $selected.val() != '') { $btn_Delete.show(); $album_name.val($selected.attr('label')); $albumSave.val(i18n.m2792); $album.attr('action', $album.data('update-album')); $btn_Delete.data('extra-params', 'album_id: ' + $selected.val() + '') } else { $btn_Delete.hide(); $album_name.val(''); $albumSave.val(i18n.m1032); $album.attr('action', $album.data('create-album')); } }); } if ($pageSkin && $pageSkin.length) { $pageSkin.find('#page_skin_tablet_title_color').on('change', function() { $('#page_skin_tablet_title_color_x2').val($(this).val()); }); $pageSkin.find('#page_skin_phone_title_color').on('change', function() { $('#page_skin_phone_title_color_x2').val($(this).val()); }); } if ($notifi) { $notifi.find('#motorsport_newsletter_form_email_options_daily').on('click', function() { var $this = $(this), isChecked = $this.is(":checked"); if (isChecked) { $newsletter_series.removeAttr('disabled').show(); } else { $newsletter_series.attr('disabled', 'disabled').hide(); } }); } // track user subscription information (function() { var type = $.cookie('prime_upgrade_type'), packageName = $.cookie('prime_package_name'); if (!type || !packageName) return; gaTrackPrime(type, packageName); $.removeCookie("prime_upgrade_type", { path: '/' }); $.removeCookie("prime_package_name", { path: '/' }); })(); }, page_members_browse: function(oldPageId, newPageId, buildType, href){ pagesFn.asideWidgetMoreScroll('page_members_browse', 'members_list', 'members_sidebar'); }, page_feedback: function(){ $('#feedback_form').validate(); }, page_feed: function(){ var $feedBtn = $('#feed_button'), $feedBtnCount = $feedBtn.find('> a'); $feedBtnCount.attr('data-feed-count', ''); $.cookie('feed_count', 0, { path: '/' }); $feedBtn.addClass('hidden'); pagesFn.asideWidgetMoreScroll('page_feed', 'feeds_list', 'feeds_sidebar'); }, page_corporate_info: function(oldPageId, newPageId, buildType ){ pagesFn.asideWidgetDefaultScroll('page_corporate_info', 'article_detail', 'article_sidebar'); }, page_mediawall: function(oldPageId, newPageId, buildType ){ var widgets = $('#mediawall_sidebar [data-widget]').detach(); var stopScroll = ajaxNavigation.page.firstBoot || buildType == 'popstate' ? true : false; if(stopScroll){ $(document).scrollTop(0); } var scrollTimeout = null; $(window).on('scroll.page_mediawall', function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= 900){ utils.asideWidgetRepeater(widgets, 'mediawall_list', 'mediawall_sidebar', true); } if(stopScroll){ stopScroll = false; return true; } if(!ajaxNavigation.stoped){ utils.listMorePage('mediawall_list', '#pager .more'); } }, 300); }).trigger('scroll.page_mediawall'); var $list = $('#mediawall_list'); var delay = 60000; function getNewPosts(){ var data = $list.data(), sdata = {dt: data.dt}; if('category' in data){ sdata.category = data.category; } if('raceType' in data){ sdata.raceType = data.raceType; } $.ajax({ type: "POST", url: "/socialwall/np/", data: sdata, success: function(response){ if(response && response.constructor === Object){ if(response.status && response.message){ var newcount = response.count || 0; var oldcount = data.count == undefined ? 0 : data.count; if(newcount > oldcount){ cmpTrayAlert.show(response.message, null, false, null, 'mediawall-new-posts'); $list.data('count', newcount); } } $list.data('getnew', setTimeout(getNewPosts, delay)); } } }); } //$list.data('getnew', setTimeout(getNewPosts, delay)); }, page_corporate_press: function( oldPageId, newPageId, buildType ){ //pagesFn.asideWidgetDefaultScroll('page_corporate_press', 'news_list', 'news_sidebar'); }, page_search : function( oldPageId, newPageId, buildType ){ pagesFn.asideWidgetDefaultScroll('page_search', 'search_list_box', 'search_sidebar'); }, page_drivers_browse: function( oldPageId, newPageId, buildType ){ pagesFn.asideWidgetDefaultScroll('page_drivers_browse', 'drivers_list', 'drivers_sidebar'); }, page_teams_browse: function( oldPageId, newPageId, buildType ){ pagesFn.asideWidgetDefaultScroll('page_teams_browse', 'teams_list', 'teams_sidebar'); }, page_track_browse: function( oldPageId, newPageId, buildType ){ pagesFn.googleMapsBox('#map-canvas', '#track_list'); pagesFn.asideWidgetDefaultScroll('page_track_browse', 'track_list', 'track_sidebar'); }, page_schedule_browse: function( oldPageId, newPageId, buildType ){ $('#filters_form').validate(); pagesFn.googleMapsBox('#map-canvas', '#events_list'); pagesFn.asideWidgetDefaultScroll('page_schedule_browse', 'schedule_list', 'schedule_sidebar'); }, page_tvshow_episodes_browse: function( oldPageId, newPageId, buildType ){ pagesFn.asideWidgetMoreScroll('page_tvshow_episodes_browse', 'videos_list'); }, page_tvshow_allepisodes_browse: function( oldPageId, newPageId, buildType ){ pagesFn.asideWidgetMoreScroll('page_tvshow_allepisodes_browse', 'videos_list'); }, page_subscription: function(){ var $form = $('#subscription_form'), $newsletterSeries = $("#motorsport_newsletter_series-element"); $form.validate(); $form.find('#motorsport_newsletter_form_email_options_daily').on('click', function() { var $this = $(this), isChecked = $this.is(":checked"); if (isChecked) { $newsletterSeries.removeAttr('disabled').show(); } else { $newsletterSeries.attr('disabled', 'disabled').hide(); } }); }, page_index_index_sweepstakes: function() { var $form = $('#sweepstake-form'); $form.validate(); } }, rebuild: { page_broadcasts_browse: function(oldPageId, newPageId, buildType, href) { var $page = $('#' + newPageId), $dates = $page.find('[data-future-date]'); $dates.each(function(index, el) { var $el = $(el), date; if ($el.data('ready')) return; date = new Date($el.data('future-date') * 1000); $el.data('ready', true); $el.html('' + date.format('yyyy-mm-dd HH:MM:ss') + ''); }); }, page_news_browse: function(oldPageId, newPageId, buildType, href){ utils.spotimCountsToShareBox('#news_list #news_list_wrapper'); } }, remove: { page_prime_magazine_detail: function () { // console.log('page_prime_magazine_detail remove'); $(window).off('resize.page_prime_magazine_detail'); $(document) .off('keydown.page_prime_magazine_detail') .off('fullscreenchange.page_prime_magazine_detail'); }, page_news_browse: function () { $(window).off('scroll.page_news_browse'); }, page_digest_browse: function () { $(window).off('scroll.page_digest_browse'); }, page_photos_browse: function () { $(window).off('scroll.page_photos_browse'); }, page_results: function () { $(window).off('scroll.page_results'); }, page_content_filter: function () { $(window).off('scroll.page_content_filter'); }, page_videos_browse: function () { $(window).off('scroll.page_videos_browse'); }, page_tvshow_episodes_browse: function () { $(window).off('scroll.page_tvshow_episodes_browse'); }, page_videos_detail: function () { $(window).off('scroll.page_videos_detail').off('resize.page_featured').off('scroll.page_featured'); }, page_tvshow_episode_detail: function () { $(window).off('scroll.page_tvshow_episode_detail'); }, page_driver_detail_bio: function () { $(window).off('scroll.page_driver_detail_bio'); }, page_team_detail_history: function () { $(window).off('scroll.page_team_detail_history'); }, page_team_detail: function () { $(window).off('resize.page_team_detail'); }, page_track_detail_history: function () { $(window).off('scroll.page_track_detail_history'); }, page_track_detail: function () { $(window).off('resize.page_track_detail'); }, page_photos_detail: function () { $(window).off('scroll.page_photos_detail').off('resize.page_featured').off('scroll.page_featured'); if('photosDetail' in page){ page.photosDetail.keyNavigationDestroy(); } }, page_featured: function(){ clearTimeout(pages.page_featured_timeout); $(window).off('resize.page_featured').off('scroll.page_featured'); }, page_driver_detail: function(){ $(window).off('resize.page_driver_detail'); }, page_articles_detail: function(){ var $page = $('#article_detail'); $(window) .off('scroll.page_article_detail') .off('resize.page_featured') .off('keydown.mistake') .off('scroll.page_featured') .off('resize.articleVideoAd') .off('scroll.articleVideoAd') .off('resize.share_box') .off('scroll.share_box'); window.mistakewindowVisible = null; clearTimeout($page.data('register-timeout')); $(document.body).off('keydown.page-article-detail-key-navigation'); }, page_profile: function(){ $(window).off('scroll.page_profile'); }, page_members_browse: function(){ $(window).off('scroll.page_members_browse'); }, page_corporate_info: function(){ $(window).off('scroll.page_corporate_info'); }, page_search: function(){ $(window).off('scroll.page_search'); }, page_drivers_browse: function(){ $(window).off('scroll.page_drivers_browse'); }, page_teams_browse: function(){ $(window).off('scroll.page_teams_browse'); }, page_track_browse: function(){ $(window).off('scroll.page_track_browse'); }, page_schedule_browse: function(){ $(window).off('scroll.page_schedule_browse'); }, page_albums_browse: function(){ $(window).off('scroll.page_albums_browse'); }, page_corporate_press: function(){ $(window).off('scroll.page_corporate_press'); }, page_mediawall: function(){ clearTimeout($('#mediawall_list').data('getnew')); $(window).off('scroll.page_mediawall'); $(document.body).off('keydown.page-mediawall-popup-detail-key-navigation'); }, page_broadcast: function() { var $broadcastWrapper = $('#broadcast_wrapper'), broadcastApi = $broadcastWrapper.data('api'), $window = $(window); broadcastApi.close(); $window.off('scroll.page_broadcast'); $window.off('beforeunload.page_broadcast'); clearTimeout(pages.page_broadcast_timeout); } }, popup: { popup_photos_detail: function(oldPageId, newPageId, buildType, href){ if('photosDetail' in page){ var d = new Date(); pages.timespent.page_photos_detail.time = d.getTime(); pages.timespent.page_photos_detail.id = $('#page_photos_detail_info').data('id') || 0; page.photosDetail.popupInit(); page.photosDetail.keyNavigationInit(true); page.photosDetail.slideShowInit(); $('.popup.photoDetail').jplDateFormat(layoutConfig.dateFormat); if(!page.photosDetail.slideShow){ //if(document.documentElement.clientWidth >= 1230){ if($('#livefyre_comments_btn').data('on')){ utils.livefyreComments($('.popup.photoDetail #livefyre_comments_box')); } //} } } }, popup_feedback: function(oldPageId, newPageId, buildType, href) { $('#feedback_form').validate(); }, popup_registration: function(oldPageId, newPageId, buildType, href) { var popup = this, $popup = $('#' + newPageId), $form = $('#join-form'); utils.preventGA = true; $form.validate(); $form.on('registered', function() { $popup.addClass('registered'); }); } }, removePopup: { popup_photos_detail: function(pageId){ if('photosDetail' in page){ pagesFn.setPagesTimeSpent('photo', 'page_photos_detail'); page.photosDetail.keyNavigationDestroy(); page.photosDetail.slideShowDestroy(); } }, popup_feedback: function(pageId) { window.mistakewindowVisible = null; }, popup_registration: function(pageId) { var $popup = $('#' + pageId), $form = $('#join-form'); $form.off('registered'); if ($popup.hasClass('registered')) { // wait a bit so popup restores original url setTimeout(function() { window.location.reload(); }, 100); } } } }; forms = { config: { 'join-form': { //preventAlert: true }, 'motorsport_insider_form': { beforeSubmit: function() { // console.log('form submit'); // status false // cmpTrayAlert.show(i18n.m1002, 'error', 10); // status true // cmpDialog.show(i18n.m1034, '', 10); // on submit event gaArticleEmailSubscription('in-article-email-subscription', window.location.href); } } }, statusFalse: { 'login-form': function($form, validator, response){ if(response.reload){ goToUrl('/login/'); } }, 'join-form': function($form, validator, response){ if(response.reload){ $('#captcha_reload').trigger('click'); $('[name="captcha_input"]').val(''); } } }, statusTrue: { 'motorsport_insider_form': function($form, validator, response){ $form[0].reset(); var $popupMarkup = $('#hiddenSucccessMessage'); gaArticleEmailSubscription('in-article-email-subscription-success', window.location.href); cmpDialog.content($popupMarkup.html(), null, function() {}, 'registerDialog', function afterVisible() { var dialog = this, $container = dialog.$contayner; $container.on('click', '.popupClose, a', function() { dialog.remove(); }); }); }, 'form_edit_subscribe_popup': function($form, validator, response) { var alertId = $form.find('[name="alert_id"]').val(), $deletableBox = $('[data-alert-id="' + alertId + '"]'); var checkedValues = $form.find('[name="types[]"]:checked').map(function() { return Number(this.value); }).get(); $deletableBox.data('checked', checkedValues); var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); }, 'form_subscribe_popup': function($form, validator, response) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); }, 'login-form': function($form, validator, response) { if (response.relogin) { cmpDialog.alert(response.notification, null, function() { goToUrl(response.url || response.redirect, false); }); } else if (!response.message) { goToUrl(response.url || response.redirect, false); } }, 'sweepstake-form': function($form, validator, response) { if (response && response.status) { $form.closest('[data-role="page"]').addClass('registered'); } }, 'join-form': function($form, validator, response){ var isPopup = $form.data('popup'); $form.closest('[data-role="page"]').addClass('registered'); if (isPopup) { $form.trigger('registered'); return; } goToUrl(response.url || '/', false); /* cmpDialog.alert(response.text, response.title, function(value){ if(value){ goToUrl(response.url || '/', false); } }); */ }, 'submit-vacancy': function($form, validator, response) { if(response.reload){ goToUrl('/info/join/'); } }, 'recovery-password-form': function($form, validator, response) { goToUrl(response.url || '/'); }, 'change-image-form' : function($form, validator, response){ $('#current_user_pic').attr('src', response.image); $('#current_user_pic_small').attr('src', response.image_small); }, 'feedback_form': function($form, validator, response) { var $popupClose; if (response && response.status) { $popupClose = $('.popup.feedbackPopup .popupClose'); if ($popupClose.length) { $popupClose.trigger("click"); } } }, form_delete_account: function($form, validator, response){ goToUrl(response.url || '/', false); }, form_edit_photo: function($form, validator, response){ $form.remove(); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, form_edit_video: function($form, validator, response){ $form.remove(); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, // START user info edit popups form_update_account_popup: function($form, validator, response) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, form_change_password_popup: function($form, validator, response) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, form_change_album_popup: function($form, validator, response) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, form_delete_account_popup: function($form, validator, response) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); $overlay.trigger('click'); goToUrl('/', null, {data: {preventScrolling: ""}}); } // END user info edit popups } }; buttons = { request: cmpButtonsUtils.buttons.request, requestC: cmpButtonsUtils.buttons.requestC, requestM: cmpButtonsUtils.buttons.requestM, //requestMC: cmpButtonsUtils.buttons.requestMC, select: cmpButtonsUtils.buttons.select, //selectAll: cmpButtonsUtils.buttons.selectAll, toggleBox: cmpButtonsUtils.buttons.toggleBox, dateCalendarClear: utils.dateCalendarClear, contentDialog: function(data){ if(data.contentId){ var $content = $('#' + data.contentId); if($content.length){ cmpDialog.alert($content.html(), "Admin info"); } } }, toggleRowActivity: function(data, element) { var $row = $(element).parents('tr'); if($row.length){ if($row.is('.active')){ $row.removeClass('active'); }else{ $row.addClass('active'); } } }, toggleTimeWRaceWidget: function(data, element) { this.toggleButtons(element); if(data.button && data.value !== undefined){ var $box = $('#weekend_race_widget'); if($box.length){ $.cookie(data.button, data.value, { expires: 365, path: "/"}); var $times = $box.find('[data-gmt]'); if($times.length){ $times.each(function(){ var $this = $(this), itdata = $this.data(), gmt = $this.data('gmt'), local = itdata.localTime || false, d = false; if(data.value == 1){ if(local){ d = local; }else{ var dt = new Date(); dt.setTime(gmt + '000'); d = dt.format('HH:MM', true); } }else if(data.value == 2){ var dt = new Date(); dt.setTime(gmt + '000'); d = dt.format('HH:MM', false); } if(d){ $this.html(d); } }); } } } }, toggleBoxVacancies: function(data, element) { if (data.toggle) { window.location.hash = ''; } else { window.location.hash = data.value; } cmpButtonsUtils.buttons.toggleBox.click.call(this, data, element); }, goToHref: function(data, element){ window.location.href = data.href; }, goToUrl: function(data, element){ goToUrl(data.href); }, documentScrollToTop: function(){ $(document).scrollTop(0); }, closeTryAlert: function(data, element){ $(element).parents('.item').find('.close').trigger('click'); }, share: { beforeSend: function(data, element, jqXHR){ window.open(element.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=' + data.height + ',width=' + data.width); gaTrackSocial(data.shareNetwork, 'share', data.shareUrl); if(!data.value){ return false; } if(!data.extraParams){ return false; } } }, shareLiveText: function(data, element) { var $item = $(element).closest('.broadcastItem'), width = data.width || 600, height = data.height || 450, $message = $item.find('.message-text'), $images = $message.find('img'), $videos = $message.find('.video'), text = $message[0].innerText.trim(), baseUrl = window.location.protocol + '//' + window.location.host, href, urls = [], $articleBoxInfo = $('#center_box .articleBox'), twitterUrl = $articleBoxInfo.data("social-twitter-edition").split("/").pop() || 'motorsport', facebookUrl = $articleBoxInfo.data("social-facebook-edition") || 'motorsport', via = twitterUrl || data.via || 'motorsport', twitterMessage, lengthURLForTwitter, message; $images.each(function(index, el) { var $el = $(el), $a = $el.parent(); if (!$a.is('a')) return; urls.push(baseUrl+ $a.attr('href')); }); $videos.each(function(index, el) { var $iframe = $(el).find('iframe'), src; if (!$iframe) return; src = $iframe.attr('src'); urls.push(baseUrl + '/all/video/?id=' + src.split('/')[4]); }); lengthURLForTwitter = window.location.href.length; message = text + " \n " + (urls.length ? ' ' + urls.join(' ') : ''); twitterMessage = message; if(text.length + lengthURLForTwitter > 164) { twitterMessage = text.substr(0, 164 - lengthURLForTwitter) + "\n" + "... " + window.location.href + '\n ' + (urls.length ? ' ' + urls.join(' ') : ''); } switch (data.network) { case 'Twitter': href = "https://twitter.com/intent/tweet?via=" + via + "&text=" + twitterMessage; break; case 'Facebook': href = "https://www.facebook.com/sharer/sharer.php?u=" + window.location.href + '"e=' + message; break; } if (!href) { cmpTrayAlert.show(i18n.m1034, 'error', 10); return; } window.open(href, '', 'menubar=no,toolbar=no,width='+ width +',height=' + height); gaTrackSocial(data.network, 'share message', window.location.href); }, tweetLiveText: function(data, element) { var href, width = data.width || 600, height = data.height || 450, tweetId, $item = $(element).closest('.broadcastItem'), $embedItem = $item.find('.message .embed-item'), $tempEl = $('
'), embedCode, $lastLink, lastLinkHrefSplit, twitterMaxLength = 140; if (!$embedItem) { cmpTrayAlert.show(i18n.m1034, 'error', 10); return; } embedCode = unescape($embedItem.data('embed-code')); $tempEl.html(embedCode); $lastLink = $tempEl.find('a').last(); if (!$lastLink) { cmpTrayAlert.show(i18n.m1034, 'error', 10); return; } lastLinkHrefSplit = $lastLink.attr('href').split('/'); tweetId = lastLinkHrefSplit[lastLinkHrefSplit.length - 1]; if (!tweetId) { cmpTrayAlert.show(i18n.m1034, 'error', 10); return; } switch (data.action) { case 'reply': href = 'https://twitter.com/intent/tweet?in_reply_to=' + tweetId; break; case 'retweet': href = 'https://twitter.com/intent/retweet?tweet_id=' + tweetId; break; case 'like': href = 'https://twitter.com/intent/like?tweet_id=' + tweetId; break; } window.open(href, '', 'menubar=no,toolbar=no,width='+ width +',height=' + height); gaTrackSocial('Twitter', data.action, 'tweetId=' + tweetId); }, layoutViewButtons: function(data, element){ this.toggleButtons(element, data); if(this.options.target && data.on && data.off){ $target = $('.' + this.options.target); if($target.length){ $target.removeClass(data.off).addClass(data.on); if(data.button && data.value !== undefined){ $.cookie(data.button, data.value, { expires: 365, path: "/"}); } } } }, buttonToggleLiveText: function(data, element, response){ this.toggleButtons(element, data); if (response.constructor === Object && response.status && response.message) { cmpTrayAlert.show(response.message); } }, buttonResendConfirmEmail: function(data, element, response){ this.toggleButtons(element, data); if (response.constructor === Object && response.message) { cmpTrayAlert.show(response.message, response.status ? 'message' : 'error'); } }, cookieAccept: function(data, element){ var $cookie_accept = $('#cookie_accept'); if($cookie_accept.length){ $cookie_accept.addClass('hide'); setTimeout(function(){ $('#cookie_accept').remove(); },500); $.cookie('cookie_accept', 1, { expires: 365, path: "/"}); var url = $(element).attr('data-href'); if(url){ goToUrl(url); } } }, privacyAccept: function(data, element){ var $privacy_accept = $('#privacy_accept'); if($privacy_accept.length){ $privacy_accept.addClass('hide'); setTimeout(function(){ $('#privacy_accept').remove(); },500); $.cookie('privacy_accept', 1, { expires: 365, path: "/"}); var url = $(element).attr('data-href'); if(url){ goToUrl(url); } } }, toggleBoxCookie: function(data, element){ cmpButtonsUtils.buttons.toggleBox.click.call(this, data, element); var aData = $(element).data(); if(aData.cookie && aData.toggle !== undefined){ $.cookie(aData.cookie, aData.toggle ? 1 : 0, { expires: 365, path: "/"}); } }, toggleMtMainMenu: function(data, element){ cmpButtonsUtils.buttons.toggleBox.click.call(this, data, element); var $ser_sw_ntlt = $('#ser_sw_ntlt'); if($ser_sw_ntlt.length){ $ser_sw_ntlt.fadeOut(); $.cookie('ser_sw_ntlt', 1, { expires: 365, path: "/"}); } var aData = $(element).data(); if(aData.hasseries){ $('.eMtMainMenu').find('.eMainMenu').toggleClass('visible'); } $('.eContentMenu').addClass('closed'); $(window).trigger('resize.menusItems', 2); if(aData.toggle !== undefined){ if(aData.hasseries){ $.cookie('mupfs', aData.toggle ? 1 : 0, { expires: 365, path: "/"}); } if(aData.toggle){ if(aData.dashboard){ if(aData.hasseries){ goToUrl('/feeds/'); } else { goToUrl(aData.dashboard); } } else { goToUrl('/prime/', false); } } else { goToUrl('/'); } } }, searchBox: function(data, element){ //if(document.documentElement.clientWidth <= 1024){ cmpButtonsUtils.buttons.toggleBox.click.call(this, data, element); if(data.toggle){ $('#search').focus(); } // }else{ // if(!data.toggle || data.close){ // cmpButtonsUtils.buttons.toggleBox.click.call(this, data, element); // $.removeData(element,'close'); // } // $('#search').focus(); // } }, popupClose: function(data){ var back = data.back == undefined ? true : data.back; ajaxNavigationBuildPopup.clear(back); }, popupMediawallClose: function(data){ ajaxNavigationBuildPopup.clear(false); $(document.body).off('keydown.page-mediawall-popup-detail-key-navigation'); }, photosSlideShow: function(data, element){ clearTimeout(page.photosDetail.slideShowDelay); if(page.photosDetail.slideShow){ page.photosDetail.slideShow = false; }else{ page.photosDetail.slideShow = true; } page.photosDetail.slideShowInit(); }, photosHighRes: function(data, element) { page.photosDetail.highResToggle(); }, photosFullScreen: function(data, element) { page.photosDetail.galleryFullScreen(); }, livefyreCommentsAppend: function(data, element){ utils.livefyreComments($(element).parent('#livefyre_comments_box')); }, livefyreCommentsToggle: function(data, element){ var aData = $(element).data(); if(aData.cookie && aData.on !== undefined){ var $box = $(element).next('#livefyre_comments_box') if(aData.on == 0){ utils.livefyreComments($box); $(element).data('on',1).attr('data-on',1); $.cookie(aData.cookie, 1, { expires: 365, path: "/"}); }else if(aData.on == 1){ $box.hide(); $(element).data('on',2).attr('data-on',2); $.cookie(aData.cookie, 0, { expires: 365, path: "/"}); }else if(aData.on == 2){ $box.show(); $(element).data('on',1).attr('data-on',1); $.cookie(aData.cookie, 1, { expires: 365, path: "/"}); } } }, broadcastLoadMore: { statusTrue: function(data, element, response) { var $broadcastWidget = $('.broadcastWidget'), $messagesWrapper = $broadcastWidget.find('.broadcastMessages'), $pager = $broadcastWidget.find('.pagerBox .more'), $newContent, $newMessages, count; if (response.status) { response.html += window.broadcastBannerTpl; $newContent = $(response.html); $newMessages = $newContent.filter('.broadcastItem'); count = $newMessages.length; $newMessages.each(function(index, item) { var $date = $(item).find('.date'), date = new Date($date.data('data')); $date.html(date.format('HH:MM')); }); $messagesWrapper.append($newContent); $newContent.find('.embed-item').each(function(index, item) { var $el = $(item), code = $el.data('embed-code'); $el.html(unescape(code)); }); utils.banners($messagesWrapper); if (count !== 20) { $pager.addClass('disabled'); } else { $pager.data('value', response.message_id); } } } }, mediawallPopup:{ statusTrue: function(data, element, response){ if('ajaxNavigationBuildPopup' in window){ ajaxNavigationBuildPopup.clear(); var $popup = ajaxNavigationBuildPopup.$getPupup(); if($popup.length && response.html){ ajaxNavigationBuildPopup.status = true; $popup.removeClass('disabled').addClass('mediawallDetail enabled').html(response.html); $popup.jplDateFormat(layoutConfig.dateFormat); utils.banners($popup); $popup.find('.photoControls').on('click', '.btn', function(event){ event.preventDefault(); var $this = $(this), $pic = $popup.find('.photoPicture img'); if($pic.length){ var data = $pic.data(), urls = data.urls; if(urls){ urls = urls.split(','); if(urls.length > 1){ var index = data.index == undefined ? 0 : data.index; var newIndex = index + 1; if($this.is('.prevPhoto')){ newIndex = index - 1; newIndex = newIndex < 0 ? (urls.length - 1) : newIndex; }else{ newIndex = (newIndex == urls.length ? 0 : newIndex); } var $newPic = $('').attr('src', urls[newIndex]); $newPic.on('load', function(){ $pic.attr('src', urls[newIndex]); $newPic.remove(); }); $pic.data('index', newIndex); } } } }); $(document.body).on('keydown.page-mediawall-popup-detail-key-navigation', function(event){ if(event.keyCode == 27){ buttons.popupMediawallClose(); return; } if(event.altKey || event.shiftKey){ return true; } var prevCodes = [37,100], nextCodes = [39,102], disableCodes = [38,104,40,98,33,34]; if(event.ctrlKey){ if($.inArray(event.keyCode, prevCodes) >= 0){ $popup.find('.photoControls .prevPhoto').trigger('click'); } else if($.inArray(event.keyCode, nextCodes) >= 0){ $popup.find('.photoControls .nextPhoto').trigger('click'); } return true; } if($.inArray(event.keyCode, prevCodes) >= 0){ $popup.find('.postBox .postNavig .prev').trigger('click'); } else if($.inArray(event.keyCode, nextCodes) >= 0){ $popup.find('.postBox .postNavig .next').trigger('click'); } else if($.inArray(event.keyCode, disableCodes) >= 0){ event.preventDefault(); } }); $popup.on('mousewheel', function(event){ var $scroll = []; if(document.documentElement.clientWidth < 1024){ $scroll = $(event.target).parents('.postBox'); }else{ $scroll = $(event.target).parents('.postInfoWrapper'); } if($scroll.length){ var scroll = $scroll[0]; var rect = scroll.getBoundingClientRect(); if(event.deltaY == 1 && scroll.scrollTop == 0 || event.deltaY == -1 && scroll.scrollHeight - scroll.scrollTop - 1 <= parseInt(rect.height)){ event.stopPropagation(); event.preventDefault(); } }else{ event.preventDefault(); } }); } } }, statusFalse: function(data, element){ var $postLink = $(element).parent().find('.postLink'); if($postLink.length){ var href = $postLink.attr('href'); if(href){ window.open(href); } } } }, crop_image_button: function(data, element, response, textStatus){ if ( !response || (response && !response.status) ) { if(response.message) { cmpTrayAlert.show(response.message, 'error'); } return false; } var urlImage = response.image, $crop_image_form = $('#crop_image_form'), $image = $('').prependTo($crop_image_form), $upload_crop = $('#upload_crop'), $cancel_crop = $('#cancel_crop'), $user_info_block = $('#user_info_block'), $current_user_pic = $('#current_user_pic'), user_src = $current_user_pic.attr('src'), jcrop_api, width = 0, heght = 0, resizeTimeout = null; $(window).on('resize.page_profile', function(event){ clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function(){ var $testImage = $crop_image_form.find('img'); if( $testImage && $testImage.length && jcrop_api ) { jcrop_api.destroy(); $image.attr('style', ''); $image.Jcrop({ minSize: [200, 200], setSelect: [ 0, 0, 200, 200 ], allowSelect: false, aspectRatio: 1, trueSize: [width, height], onChange: changeCoords, onSelect: changeCoords }, function(){ jcrop_api = this; }); } }, 500); }); $cancel_crop.on('click', function(){ $current_user_pic.attr('src', user_src); $image.trigger('close'); }); $image .on('close', function() { jcrop_api.destroy(); $user_info_block.removeClass('loadedImage'); $crop_image_form.find('img').remove(); $current_user_pic.attr('style', ''); }) .on('load', function(){ $user_info_block.addClass('loadedImage'); width = $image.width(); height = $image.height(); $image .attr('width', '100%') .Jcrop({ minSize: [200, 200], setSelect: [ 0, 0, 200, 200 ], allowSelect: false, aspectRatio: 1, trueSize: [width, height], onChange: changeCoords, onSelect: changeCoords }, function(){ jcrop_api = this; }); $current_user_pic.attr('src', urlImage) }) .attr('src', urlImage); function changeCoords(c) { var rx = 100 / c.w; var ry = 100 / c.h; $current_user_pic.css({ width: Math.round( rx * width * 2) + 'px', height: Math.round( ry * height * 2) + 'px', marginLeft: '-' + Math.round(rx * c.x * 2) + 'px', marginTop: '-' + Math.round(ry * c.y * 2) + 'px' }); $upload_crop.data('extra-params', '{x1:' + c.x + ', x2:' + c.x2 + ', y1:' + c.y + ', y2:' + c.y2 + ', w: ' + c.w + ', h:' + c.h + '}'); } }, upload_crop: function(data, element, response, textStatus){ if(response) { if( response.src_s1 ) { $('#crop_image_form img').trigger('close'); $('#current_user_pic').attr('src', response.src_s1); } else { cmpTrayAlert.show(response.message, 'error'); } } }, captcha_reload: function(data, element, response, textStatus){ var $button = $(element), $form = $button.parents('form'), $image = $form.find('img'), $input = $form.find('#captcha_id'); if(response) { $image.attr('src', response.src); $input.prop('value', response.captcha_id); } }, editPhoto: { beforeSend: function(data, element){ return !$('[data-target="' + data.id + '"]').contents().length; }, statusTrue: function(data, element, response){ if(response.html){ var $box = $('[data-target="' + data.id + '"]'), $form = $(response.html); $box.html($form); $form.validate(); var $events = $form.find('select[name="events"]'); if($events.find('option').length > 1){ $events.removeAttr('disabled'); }else{ $events.attr('disabled', 'disabled'); } $form.on('click', '.cancel', function(){ $form.remove(); }) .on('change', 'select[name="series"], select[name="years"]', function(){ var $series = $form.find('select[name="series"]'), $year = $form.find('select[name="years"]'), $events = $form.find('select[name="events"]'), url = $form.data('event-url'); $.ajax({ type: "POST", url: url, data: { series_id: $series.val(), year: $year.val() }, success: function(response){ if(response.html){ $events.html(response.html); if($events.find('option').length > 1){ $events.removeAttr('disabled'); }else{ $events.attr('disabled', 'disabled'); } } } }); }); } } }, editVideo: { beforeSend: function(data, element){ return !$('[data-target="' + data.id + '"]').contents().length; }, statusTrue: function(data, element, response){ if(response.html){ var $box = $('[data-target="' + data.id + '"]'), $form = $(response.html); $box.html($form); $form.validate(); var $events = $form.find('select[name="event"]'); if($events.find('option').length > 1){ $events.removeAttr('disabled'); }else{ $events.attr('disabled', 'disabled'); } $form.on('click', '.cancel', function(){ $form.remove(); }) .on('change', 'select[name="series"], select[name="year"]', function(){ var $series = $form.find('select[name="series"]'), $year = $form.find('select[name="year"]'), $events = $form.find('select[name="event"]'), url = $form.data('event-url'); $.ajax({ type: "POST", url: url, data: { series_id: $series.val(), year: $year.val() }, success: function(response){ if(response.html){ $events.html(response.html); if($events.find('option').length > 1){ $events.removeAttr('disabled'); }else{ $events.attr('disabled', 'disabled'); } } } }); }); } } }, removeAlbum: { statusTrue: function(data, element, response) { if (response && response.message) { cmpTrayAlert.show(response.message); goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); cmpDialog.remove(); } }, statusFalse: function(data, element, response) { cmpTrayAlert.show(response.message || i18n.m1034, 'error', 10); } }, dashboardContinueSubscription: { statusTrue: function(data, element, response) { if (response && response.message) { cmpTrayAlert.show(response.message); } goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, statusFalse: function(data, element, response) { cmpTrayAlert.show(response.message || i18n.m1034, 'error', 10); } }, dashboardCancelSubscription: { beforeSendAsync: function(data, element, callback) { cmpDialog.confirm(i18n.m4872, i18n.m2720, function(result) { if (result && callback && typeof callback == 'function') { callback(); } }); }, statusTrue: function(data, element, response) { if (response && response.message) { cmpTrayAlert.show(response.message); } goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); }, statusFalse: function(data, element, response) { cmpTrayAlert.show(response.message || i18n.m1034, 'error', 10); } }, showPopupEditUserInfo: function(data, element) { var $form = $('#form_' + data.form), title = $form.prev().text(); $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); // fix equalto fields var $equalFields = $form.find('[data-rule-equalto]'); $equalFields.each(function(index, el) { var $el = $(el), origId = $el.data('rule-equalto'), $origField = $(origId); $origField.attr('id', $origField.attr('id') + '_popup'); $el.attr('data-rule-equalto', origId + '_popup'); }); cmpDialog.content('', title, null, 'popupEditUserInfo', function() { var dialogCfg = this, $container = dialogCfg.$contayner, $content = $container.find('.content'); $content.append($form); $form.validate(); if (data.field) { $form.find('[name="'+ data.field +'"]').focus(); } else { $form.find('input').first().focus(); } }); }, showPopupRemoveUserAccount: function(data, element) { var $form = $('#form_' + data.form), title = $form.prev().text(); $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); cmpDialog.content('', title, null, 'popupRemoveUserAccount', function() { var dialogCfg = this, $container = dialogCfg.$contayner, $content = $container.find('.content'); $content.append($form); $form.validate(); $form.find('input').first().focus(); }); }, showPopupEditUserGalleries: function(data, element) { var $form = $('#form_' + data.form), title = $form.prev().text(); $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); var $btn_Delete = $('#delete_album', $form).hide(), $album_name = $('#album_name', $form), $formSave = $('[type="submit"]', $form); cmpDialog.content('', title, null, 'popupEditUserInfo', function() { var dialogCfg = this, $container = dialogCfg.$contayner, $content = $container.find('.content'); $content.append($form); $form.validate(); $form.find('[type="reset"]').on('click', function(){ $form.attr('action', $form.data('create-album')); $btn_Delete.hide(); $formSave.val(i18n.m1032); }); $form.on('change', '#form_add_photo_albums', function(event){ var $this = $(this), $selected = $this.find(':selected'); if ( $selected.val() && $selected.val() != '') { $btn_Delete.show(); $album_name.val($selected.attr('label')); $formSave.val(i18n.m2792); $form.attr('action', $form.data('update-album')); $btn_Delete.data('extra-params', 'album_id: ' + $selected.val() + ''); } else { $btn_Delete.hide(); $album_name.val(''); $formSave.val(i18n.m1032); $form.attr('action', $form.data('create-album')); } }); if (data.field) { $form.find('[name="'+ data.field +'"]').focus(); } else { $form.find('input').first().focus(); } }); }, showPopupEditUserSeries: function() { var $form = $('#form_update_subs'), maxSelectedOptions = 30, title = $form.prev().text(); $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); cmpDialog.content('', title, null, 'popupEditUserSeries', function() { var dialogCfg = this, $container = dialogCfg.$contayner, $label, $submitBtn, $countWrapper = $(''), $content = $container.find('.content'); $content.append($form); $submitBtn = $container.find('input[type="submit"]'); $label = $container.find('label[for="series_field"]'); $label.append($countWrapper); var $chosen = $form.find('.seriesField').chosen({ width: '100%', max_selected_options: maxSelectedOptions, }), $primeCategories = $form.find('.primeCategories'), $itemsWrapper = $chosen.next(); $chosen.on('change chosen:updated', function() { var count = ($chosen.val() || []).length; $countWrapper.text(count + '/' + maxSelectedOptions); if (maxSelectedOptions < count) { $countWrapper.addClass('error'); $submitBtn.attr('disabled', true); } else { $countWrapper.removeClass('error'); $submitBtn.removeAttr('disabled'); } }).trigger('change'); $form.validate({ submitHandler: function(form, values, qwe, asd, zxc) { var validator = this, $submit = $(validator.submitButton), $options = $chosen.children(), $els = $itemsWrapper.find('.search-choice'), $newOptions = $([]), isBrowserSupported = $itemsWrapper.hasClass('chosen-container'); $submit.addClass('wait'); if (isBrowserSupported) { $options.removeAttr('selected'); $els.each(function(index, el) { var $el = $els.eq(index), $indexHolder = $el.find('.search-choice-close'), arrayIndex = $indexHolder.attr('data-option-array-index'), $option = $options.eq(arrayIndex), $optionClone = $option.clone(true); $indexHolder.attr('data-option-array-index', index); $newOptions = $newOptions.add($optionClone); $option.remove(); }); $newOptions.attr('selected', 'selected'); $chosen.prepend($newOptions); } $(form).ajaxSubmit({ success: function(response) { $submit.removeClass('wait'); if (response && response.status) { if (response.message) { cmpTrayAlert.show(response.message, 'message', 10); } dialogCfg.remove(); goToUrl(window.location.href, null); // with prevent scrolling menu has wrong width on iPad // goToUrl(window.location.href, null, {data: {preventScrolling: ""}}); } else if (response && response.message) { cmpTrayAlert.show(response.message, 'error', 20); } }, error: function(jqXHR) { $submit.removeClass('wait'); if(jqXHR.responseJSON && jqXHR.responseJSON.constructor === Object && jqXHR.responseJSON.message){ cmpTrayAlert.show(jqXHR.responseJSON.message, 'error', 30); } } }); } }); $primeCategories.on('click', '.category', function() { var $options = $chosen.children(), $el = $(this), primeCategoryId = $el.data('prime-category'); $options.filter('[data-prime-category="'+ primeCategoryId +'"]').prop('selected', true); $chosen.trigger("chosen:updated"); }); $itemsWrapper.sortable({ 'placeholder' : 'ui-state-highlight', 'items' : '.search-choice', forceHelperSize: true, opacity: 0.75, forcePlaceholderSize: true }); }); }, showPopupEditSubscribe: function(data, element) { var $form = $('#form_' + data.form), title = $form.data('title') + data.title; $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); // check fields var frequencies = Array.isArray(data.checked) ? data.checked : []; frequencies.forEach(function(value) { $form.find('[type="checkbox"][value="'+ value + '"]').prop('checked', true); }); // set other data $form.find('[name="entity_type"]').val(data.entityType); $form.find('[name="alert_id"]').val(data.alertId); $form.find('[name="entity_id"]').val(data.entityId); cmpDialog.content('', title, null, 'popupEditSubscribe', function(){ var dialogCfg = this, $container = dialogCfg.$contayner, $content = $container.find('.content'); $content.append($form); $form.validate(); $form.removeClass('ms-hidden'); }); $form.on('click', '[type="submit"]', function() { var noFrequencySelected = $form.find('[name="types[]"]:checked').length === 0; if (noFrequencySelected) { var $dialog = $form.closest('.cmpDialog'), $overlay = $dialog.find('.overlay'); window.buttons.removeEmailAlert(null, element); $overlay.trigger('click'); } }); }, showPopupSubscribe: function(data) { var $form = $('#form_' + data.form), title = $form.data('title'); $form = $form.clone(); $form.attr('id', $form.attr('id') + '_popup'); cmpDialog.content('', title, null, 'popupSubscribe', function(){ var dialogCfg = this, $container = dialogCfg.$contayner, $content = $container.find('.content'); $content.append($form); $form.validate(); $form.removeClass('ms-hidden'); }); }, removeEmailAlert: function(data, element) { var $deletableBox = $(element).closest('.deletable-box'), $form = $('#form_' + $deletableBox.data('form')); $.ajax({ type: $form.attr('method'), dataType: 'json', url: $form.attr('action'), data: { entity_type: $deletableBox.data('entity-type'), alert_id: $deletableBox.data('alert-id'), entity_id: $deletableBox.data('entity-id'), types: [0] } }).done(function(response) { var $alertSection; if (response.status) { $alertSection = $deletableBox.closest('.alert-section'); if ($alertSection.find('.deletable-box').length === 1) { $alertSection.remove(); } else { $deletableBox.remove(); } cmpTrayAlert.show(response.message, 'success', 10); } else { cmpTrayAlert.show(response.message, 'error', 10); } }); } }; pagesFn = { googleMapsBox: function(map_selector, list_selector){ var $map = $(map_selector); if($map.length){ var markers = $map.data('markers'); if(markers.constructor == Array && markers.length){ loadGoogleMaps( null, 'AIzaSyCVdUjItzt4QpwSbXq0n3_yvLHU89yKlMc', i18n.m1111).done(function() { $map.show(); var mapOptions = { center: { lat:24.622063, lng: 15.132159}, zoom: 2 } var map = new google.maps.Map($map[0], mapOptions); utils.googlemaps.setMarkers(map, markers); if(list_selector){ var $list = $(list_selector); if($list.length){ $list.on('click', '.location', function(){ var data = $(this).data(), lat = data.lat, lng = data.lng; if(lat && lng){ utils.googlemaps.zoomMap(map, lat, lng, 10); $(document).scrollTop($map.offset().top - 70); } }); } } }); } } }, dotdotdotBox: function(buildType, box_selector, resize_event_name, resize_timeout, after_selector){ var $box = $(box_selector), resize_timeout = resize_timeout || 1; var resizeTimeout = setTimeout(function(){ $box.dotdotdot({ after: after_selector || 'a.keepReading', wrap: $.inArray($('body').data('edtn'), ['cn']) != -1 ? 'letter' : 'word' }); }, (buildType == 'firstBoot' ? resize_timeout : 1)); $(window).on('resize.' + resize_event_name , function(event){ clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function(){ $box.trigger('update.dot'); }, resize_timeout); }); }, features: { initSection1: function (buildType){ pagesFn.dotdotdotBox(buildType, '#main_article_box', 'page_featured', 500); utils.spotimCountsToShareBox('.topArticles, .mainArticle'); }, getSection: function ($section, callback){ if($section.length){ var data = $section.data(); if(data.processing){ return; } $section.data('processing', true); var url = data.url, section = data.section; if(url && section){ $section.find('.preloaderBox').show(); return $.ajax({ url: url, data: { section: section }, success: function(response){ if(response && response.constructor === Object && response.status && response.html){ if(response.simple_page){ $section.data('simple', true); } $section.html(response.html); $section.data('ready', true); if(callback && typeof callback == 'function'){ callback.call(this); } }else{ $section.find('.preloaderBox').hide(); } }, error:function(){ $section.find('.preloaderBox').hide(); } }); } } }, initScroll: function (id){ var $section_1 = $('#features_section_1'), $section_2 = $('#features_section_2'), $section_3 = $('#features_section_3'); var scrollTimeout = null; $(window).on('scroll.page_featured', function(event){ clearTimeout(scrollTimeout); if(ajaxNavigationBuildPopup.status){ return true; } scrollTimeout = setTimeout(function(){ if(!ajaxNavigation.stoped){ var windowHeight = document.documentElement.clientHeight, content = document.getElementById(id); if(!content){ return; } var section = content.section || 2; if(content){ if(section > 2){ return; } var content_rect = content.getBoundingClientRect(); /*$('#console').html(content_rect.bottom - windowHeight, content_rect.bottom, windowHeight); console.log(content_rect.bottom - windowHeight, content_rect.bottom, windowHeight);*/ if(content_rect.bottom - windowHeight <= 200){ var section1data = $section_1.data(); if($section_1.length && !section1data.ready){ pagesFn.features.getSection($section_1, function(){ if($section_1.data('simple')){ $section_1.removeClass('featuresBox'); $(window).off('scroll.page_featured'); }else{ pagesFn.features.initSection1('firstBoot'); } utils.banners($section_1); $section_1.jplDateFormat(layoutConfig.dateFormat); if(section1data.url){ gaTrack(section1data.url); } }); } var section2data = $section_2.data(); if(section1data.ready && $section_2.length && !section2data.ready){ pagesFn.features.getSection($section_2, function(){ var btn_time_wr_wdg = $.cookie('btn_time_wr_wdg'); if(btn_time_wr_wdg == 2){ var $weekend_race_widget = $('#weekend_race_widget .switchTimeZone .timeBtnYour'); if($weekend_race_widget.length){ $weekend_race_widget.trigger('click'); } } $section_2.jplDateFormat(layoutConfig.dateFormat); utils.banners($section_2); utils.spotimCountsToShareBox('#features_section_2 .columnArticles'); }); } var section3data = $section_3.data(); if(section2data.ready && $section_3.length && !section3data.ready){ pagesFn.features.getSection($section_3, function(){ $section_3.jplDateFormat(layoutConfig.dateFormat); utils.banners($section_3); utils.spotimCountsToShareBox('#features_section_3 .contentCenterList'); if(section3data.trackUrl){ gaTrack(section3data.trackUrl); } $(window).off('scroll.page_featured'); }); } } } } }, 50); }).trigger('scroll.page_featured'); } }, showMistakeWindow: function() { if (window.mistakewindowVisible) return; var text = '', maxLength = 100; if (window.getSelection) { text = window.getSelection().toString(); } else if (document.selection && document.selection.type != "Control") { text = document.selection.createRange().text; } if (text.length) { if (text.length > maxLength) { cmpTrayAlert.show(i18n.m3680.replace('%s', maxLength), 'error'); return; } ajaxNavigation.stoped = false; goToUrl('/info/feedback', 'popup', {data: {params: { type: 2, is_popup: 1, mistake: text, url: window.location.href }}}); window.mistakewindowVisible = true; } }, asideWidgetDefaultScroll: function(page_id, list_id, sidebar_id, client_width, stop_scroll){ var widgets = $('#' + sidebar_id + ' [data-widget]').detach(); var stopScroll = ajaxNavigation.page.firstBoot; if(stop_scroll && stopScroll){ $(document).scrollTop(0); } var scrollTimeout = null; $(window).on('scroll.' + page_id, function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= (client_width || 900)){ utils.asideWidgetRepeater(widgets, list_id, sidebar_id, true); } if(stopScroll){ stopScroll = false; } }, 300); }).trigger('scroll.' + page_id); }, asideWidgetDetailScroll: function(page_id, list_id, sidebar_id, client_width){ var $livefyre_comments_box = $('#livefyre_comments_box'); var widgets = $('#' + sidebar_id + ' [data-widget]').detach(); var scrollTimeout = null; $(window).on('scroll.' + page_id, function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= (client_width || 900)){ utils.asideWidgetRepeater(widgets, list_id, sidebar_id, true); } utils.livefyreCommentsVisibleInit('livefyre_comments_box', function(){ if(document.documentElement.clientWidth >= 900){ $(window).trigger('scroll.' + page_id); } }); }, 300); }).trigger('scroll.' + page_id); }, asideWidgetMoreScroll: function(page_id, list_id, sidebar_id, client_width){ var widgets = $('#' + sidebar_id + ' [data-widget]').detach(); var stopScroll = ajaxNavigation.page.firstBoot; if(stopScroll){ $(document).scrollTop(0); } var scrollTimeout = null; $(window).on('scroll.' + page_id, function(){ clearTimeout(scrollTimeout); scrollTimeout = setTimeout(function(){ if(document.documentElement.clientWidth >= (client_width || 900)){ utils.asideWidgetRepeater(widgets, list_id, sidebar_id, true); } if(stopScroll){ stopScroll = false; return true; } if(!ajaxNavigation.stoped){ utils.listMorePage(list_id, '#pager .more'); } }, 300); }).trigger('scroll.' + page_id); }, setPagesTimeSpent: function(type, page_id){ if(pages.timespent[page_id]){ var start_time = pages.timespent[page_id].time, content_id = pages.timespent[page_id].id; if(start_time && content_id){ var d = new Date(), end_time = d.getTime(), time = Math.round((end_time - start_time)/1000); //console.log(type, content_id, time); var lvc = [ '{', '"' + type + 's":{', '"' + type + '_id":' + content_id, ',"time_spent":' + time, '}', '}' ].join(''); $.cookie('lvc', lvc, { path: '/' }); //, expires: 365 } } }, managePagesForTimeSpent: function($page){ if($page.length){ var page_id = $page.attr('id') || 0; switch(page_id){ case 'page_articles_detail': pagesFn.setPagesTimeSpent('article', page_id); break; case 'page_photos_detail': pagesFn.setPagesTimeSpent('photo', page_id); break; case 'popup_photos_detail': pagesFn.setPagesTimeSpent('photo', 'page_photos_detail'); break; case 'page_videos_detail': pagesFn.setPagesTimeSpent('video', page_id); break; } } }, scrollPageToPart: function(selector, href){ if(selector){ var $list = $(selector), $parts = $list.find('[data-part]'); if($parts.length > 1){ $parts.each(function(){ var $this = $(this); if($this.data('part') == href){ //setTimeout(function(){ $(document).scrollTop($this.offset().top - 10); //},1000); } }); } } }, getSharesGraphPoints: function(svg, shares) { var res = [], lineThickness = 2, x = lineThickness, width = svg.width() - lineThickness, height = svg.height() - lineThickness * 2, sharesCount, step, maxVal = 0, koef; if (!shares) return res; sharesCount = shares.length; step = width / (sharesCount - 1); shares.forEach(function (v, k) { var p = (v / shares[sharesCount - 1]) * 1000, pl = k > 0 ? (shares[k - 1] / shares[sharesCount - 1]) * 1000 : 0, val = (k > 0 ? p - pl : 0); res.push({ x: x, y: val }); x += step; }); res.forEach(function (v, k) { res[k].y = (k > 0 && k < res.length - 1 ? (res[k - 1].y + res[k].y + res[k + 1].y) / 3 : res[k].y); // middle if (maxVal < res[k].y) { maxVal = res[k].y; } }); koef = height / maxVal; res.forEach(function (v, k) { res[k].y = res[k].y ? res[k].y * koef - lineThickness : 0; res[k].x -= lineThickness / 2; }); return res; }, uploaderMethods: { setEventField: function(series, year, $event, format, getEventUrl) { // var $dropDownSelectBoxTitle = $event.parent().find(".title"); if(format === "option"){ $event.find('option').first().empty().text(i18n.m1019); } else if(format === "li"){ // $dropDownSelectBoxTitle.text(i18n.m1019); } $.ajax({ type: 'POST', cache: false, url: getEventUrl, data: { 'series_id': series, 'year': year }, success: function(data){ if(format === "option"){ $event.prop('disabled', 'disabled'); if (data && data.status) { $event.empty().html(data.html); if( data.html.length && $(data.html).filter('option').length > 1){ $event.prop('disabled', ''); } } } else if (format === "li"){ var html = [], $jspContainer = $event.find(".jspContainer"), $jspPane = $event.find(".jspPane"); for(var key in data.data){ if(key === "") continue; html.push('
  • '+ data.data[key] +'
  • '); } html = html.length ? html.join("") : ""; // $dropDownSelectBoxTitle.text(i18n.m2037); $event.data("options-html", data.html); // api.getContentPane().html(html); // Make dropdown select list dynamic height $event.show(); if(html.length){ $jspContainer.css("height", $jspPane.outerHeight(true)); } else { $jspContainer.css("height", 0); } $event.hide(); } } }); } }, showRegisterPopup: function(params) { $.post('/join/popup/', function(response) { $.cookie('reglb', 1, {expires: 3, path: '/'}); cmpDialog.content(response.html, null, function onClose() { var dialog = this; if (!dialog.isUserRegistered) return; window.location.reload(); }, 'registerDialog', function afterVisible() { var dialog = this, $container = dialog.$contayner, $form = $container.find('form'); if (params && params.email) { $form.find('input[name="email"]').val(params.email); } $form.validate(); $container.on('click', '.popupClose, a', function() { dialog.remove(); }); $form.on('registered', function() { $container.addClass('registered'); gaArticleSubmit('articleRegistration', window.location.href); dialog.isUserRegistered = true; }); }); }); }, adBlockDetected: function() { var alreadySent = $.cookie('adblock_ga'); if (!isCookieSupported || alreadySent) return; $.cookie('adblock_ga', 1, {expires: 1}); if (configVars.analytics.google.load) { ga('MSTracker.send', { hitType: 'event', eventCategory: 'AdBlock', eventAction: 'ad-block-detected', nonInteraction: 1 }); } } }; // Recommended audit because AdBlock lock the file 'blockadblock.js' // If the file is not called, the variable does not exist 'blockAdBlock' // This means that AdBlock is present if(typeof blockAdBlock === 'undefined') { pagesFn.adBlockDetected(); } else { blockAdBlock.on(true, pagesFn.adBlockDetected); }