WordPress Social Tools, Related Posts, Monetization – Shareaholic - Version 7.0.3.0

Version Description

  • New feature: You can now center, left AND right align your share buttons!
  • New feature: Added support for custom headers for share buttons! (How-To Instructions)
  • New feature: You can now on / off toggle the "More Options" share button
  • Various bug fixes and performance improvements
  • Cleaned up assets directory, as a result the plugin zip file is now a lot smaller
  • Added a check to ensure multiple versions of Shareaholic are not running at the same time on the same install
  • Bugfix: A host of fixes for the unresponsive "Edit Button" and "General Website Settings" button bug (If you're still facing this issue, please contact us)
Download this release

Release Info

Developer shareaholic
Plugin Icon 128x128 WordPress Social Tools, Related Posts, Monetization – Shareaholic
Version 7.0.3.0
Comparing to
See all releases

Code changes from version 7.0.2.0 to 7.0.3.0

admin.php CHANGED
@@ -140,8 +140,31 @@ class ShareaholicAdmin {
140
  }
141
  }
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  /**
144
  * Inserts admin css and js
 
 
145
  */
146
  public static function admin_head() {
147
  if (isset($_GET['page']) && preg_match('/shareaholic/', $_GET['page'])) {
@@ -234,6 +257,9 @@ class ShareaholicAdmin {
234
 
235
  }
236
 
 
 
 
237
  if (ShareaholicUtilities::has_accepted_terms_of_service()) {
238
  $api_key = ShareaholicUtilities::get_or_create_api_key();
239
  ShareaholicUtilities::get_new_location_name_ids($api_key);
@@ -352,4 +378,4 @@ class ShareaholicAdmin {
352
  }
353
  }
354
  }
355
- ?>
140
  }
141
  }
142
 
143
+ /**
144
+ * Enqueing styles and scripts for the admin the correct way.
145
+ *
146
+ * @since 7.0.2.0
147
+ */
148
+ public static function enqueue_scripts() {
149
+ if (isset($_GET['page']) && preg_match('/shareaholic/', $_GET['page'])) {
150
+ wp_enqueue_style('shareaholic_application_css', ShareaholicUtilities::asset_url('application.css'), false, ShareaholicUtilities::get_version());
151
+ wp_enqueue_style('shareaholic_bootstrap_css', plugins_url('assets/css/bootstrap.min.css', __FILE__), false, ShareaholicUtilities::get_version());
152
+ wp_enqueue_style('shareaholic_main_css', plugins_url('assets/css/main.css', __FILE__), false, ShareaholicUtilities::get_version());
153
+ wp_enqueue_style('shareaholic_open_sans_css', '//fonts.googleapis.com/css?family=Open+Sans:400,300,700');
154
+
155
+ wp_enqueue_script('shareholic_utilities_js', ShareaholicUtilities::asset_url('pub/utilities.js'), false, ShareaholicUtilities::get_version());
156
+ wp_enqueue_script('shareholic_bootstrap_js', plugins_url('assets/js/bootstrap.min.js', __FILE__), false, ShareaholicUtilities::get_version());
157
+ wp_enqueue_script('shareholic_jquery_custom_js', plugins_url('assets/js/jquery_custom.js', __FILE__), false, ShareaholicUtilities::get_version());
158
+ wp_enqueue_script('shareholic_jquery_ui_custom_js', plugins_url('assets/js/jquery_ui_custom.js', __FILE__), array('shareholic_jquery_custom_js'), ShareaholicUtilities::get_version());
159
+ wp_enqueue_script('shareholic_modified_reveal_js', plugins_url('assets/js/jquery.reveal.modified.js', __FILE__), array('shareholic_jquery_custom_js', 'shareholic_jquery_ui_custom_js'), ShareaholicUtilities::get_version());
160
+ wp_enqueue_script('shareholic_main_js', plugins_url('assets/js/main.js', __FILE__), false, ShareaholicUtilities::get_version());
161
+ }
162
+ }
163
+
164
  /**
165
  * Inserts admin css and js
166
+ *
167
+ * @deprecated in 7.0.2.0 and higher
168
  */
169
  public static function admin_head() {
170
  if (isset($_GET['page']) && preg_match('/shareaholic/', $_GET['page'])) {
257
 
258
  }
259
 
260
+ /*
261
+ * Just in case they've added new settings on shareaholic.com
262
+ */
263
  if (ShareaholicUtilities::has_accepted_terms_of_service()) {
264
  $api_key = ShareaholicUtilities::get_or_create_api_key();
265
  ShareaholicUtilities::get_new_location_name_ids($api_key);
378
  }
379
  }
380
  }
381
+ ?>
assets/banner-772x250.jpg DELETED
Binary file
assets/img/wpdirectory/banner-772x250.jpg DELETED
Binary file
assets/img/wpdirectory/index.html DELETED
@@ -1,8 +0,0 @@
1
- <html>
2
- <head>
3
- <meta http-equiv="refresh" content="0; url=http://www.shareaholic.com">
4
- </head>
5
- <body>
6
- Redirecting you now...
7
- </body>
8
- </html>
 
 
 
 
 
 
 
 
assets/js/jquery-1.4.4.min.js DELETED
@@ -1,167 +0,0 @@
1
- /*!
2
- * jQuery JavaScript Library v1.4.4
3
- * http://jquery.com/
4
- *
5
- * Copyright 2010, John Resig
6
- * Dual licensed under the MIT or GPL Version 2 licenses.
7
- * http://jquery.org/license
8
- *
9
- * Includes Sizzle.js
10
- * http://sizzlejs.com/
11
- * Copyright 2010, The Dojo Foundation
12
- * Released under the MIT, BSD, and GPL Licenses.
13
- *
14
- * Date: Thu Nov 11 19:04:53 2010 -0500
15
- */
16
- (function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
17
- h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
18
- h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
19
- "`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
20
- e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
21
- "margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
22
- a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
23
- C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
24
- s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
25
- j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
26
- toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
27
- -1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
28
- if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
29
- if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
30
- b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
31
- !F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
32
- l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
33
- z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
34
- s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
35
- s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
36
- [];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
37
- false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
38
- k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
39
- scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
40
- false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
41
- 1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
42
- "none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
43
- c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
44
- else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
45
- a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
46
- c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
47
- a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
48
- colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
49
- 1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
50
- l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
51
- "__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
52
- if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
53
- a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
54
- attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
55
- b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
56
- c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
57
- arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
58
- d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
59
- c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
60
- w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
61
- 8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
62
- "click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
63
- d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
64
- fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
65
- d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
66
- Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
67
- c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
68
- var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
69
- "form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
70
- xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
71
- B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
72
- "file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
73
- 0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
74
- a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
75
- 1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
76
- "object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
77
- c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
78
- (function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
79
- [y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
80
- break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
81
- q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
82
- l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
83
- return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
84
- B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
85
- POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
86
- i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
87
- i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
88
- "")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
89
- m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
90
- true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
91
- g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
92
- 0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
93
- "first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
94
- i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
95
- if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
96
- g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
97
- for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
98
- i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
99
- n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
100
- function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
101
- p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
102
- t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
103
- function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
104
- c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
105
- not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
106
- h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
107
- c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
108
- 2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
109
- b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
110
- e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
111
- "<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
112
- c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
113
- wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
114
- prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
115
- this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
116
- return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
117
- else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
118
- c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
119
- b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
120
- this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
121
- prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
122
- b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
123
- 1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
124
- d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
125
- jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
126
- zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
127
- h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
128
- if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
129
- d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
130
- e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
131
- ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
132
- "object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
133
- !this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
134
- getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
135
- script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
136
- !T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
137
- false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
138
- A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
139
- b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
140
- c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
141
- c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
142
- encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
143
- [b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
144
- e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
145
- if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
146
- 3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
147
- d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
148
- d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
149
- "inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
150
- 1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
151
- d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
152
- Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
153
- var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
154
- this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
155
- this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
156
- c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
157
- b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
158
- h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
159
- for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
160
- parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
161
- height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
162
- f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
163
- "marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
164
- e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
165
- c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
166
- c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
167
- b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/jquery.reveal.js DELETED
@@ -1,160 +0,0 @@
1
- /*
2
- * jQuery Reveal Plugin 1.0
3
- * www.ZURB.com
4
- * Copyright 2010, ZURB
5
- * Free to use under the MIT license.
6
- * http://www.opensource.org/licenses/mit-license.php
7
- */
8
-
9
-
10
- (function($) {
11
-
12
- /*---------------------------
13
- Defaults for Reveal
14
- ----------------------------*/
15
-
16
- /*---------------------------
17
- Listener for data-reveal-id attributes
18
- ----------------------------*/
19
-
20
- $('a[data-reveal-id]').live('click', function(e) {
21
- e.preventDefault();
22
- var modalLocation = $(this).attr('data-reveal-id');
23
- $('#'+modalLocation).reveal($(this).data());
24
- });
25
-
26
- /*---------------------------
27
- Extend and Execute
28
- ----------------------------*/
29
-
30
- $.fn.reveal = function(options) {
31
-
32
-
33
- var defaults = {
34
- animation: 'fadeAndPop', //fade, fadeAndPop, none
35
- animationspeed: 300, //how fast animtions are
36
- closeonbackgroundclick: true, //if you click background will modal close?
37
- dismissmodalclass: 'close-reveal-modal' //the class of a button or element that will close an open modal
38
- };
39
-
40
- //Extend dem' options
41
- var options = $.extend({}, defaults, options);
42
-
43
- return this.each(function() {
44
-
45
- /*---------------------------
46
- Global Variables
47
- ----------------------------*/
48
- var modal = $(this),
49
- topMeasure = parseInt(modal.css('top')),
50
- topOffset = modal.height() + topMeasure,
51
- locked = false,
52
- modalBG = $('.reveal-modal-bg');
53
-
54
- /*---------------------------
55
- Create Modal BG
56
- ----------------------------*/
57
- if(modalBG.length == 0) {
58
- modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal);
59
- }
60
-
61
- /*---------------------------
62
- Open & Close Animations
63
- ----------------------------*/
64
- //Entrance Animations
65
- modal.bind('reveal:open', function () {
66
- modalBG.unbind('click.modalEvent');
67
- $('.' + options.dismissmodalclass).unbind('click.modalEvent');
68
- if(!locked) {
69
- lockModal();
70
- if(options.animation == "fadeAndPop") {
71
- modal.css({'top': $(document).scrollTop()-topOffset, 'opacity' : 0, 'visibility' : 'visible'});
72
- modalBG.fadeIn(options.animationspeed/2);
73
- modal.delay(options.animationspeed/2).animate({
74
- "top": $(document).scrollTop()+topMeasure + 'px',
75
- "opacity" : 1
76
- }, options.animationspeed,unlockModal());
77
- }
78
- if(options.animation == "fade") {
79
- modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(document).scrollTop()+topMeasure});
80
- modalBG.fadeIn(options.animationspeed/2);
81
- modal.delay(options.animationspeed/2).animate({
82
- "opacity" : 1
83
- }, options.animationspeed,unlockModal());
84
- }
85
- if(options.animation == "none") {
86
- modal.css({'visibility' : 'visible', 'top':$(document).scrollTop()+topMeasure});
87
- modalBG.css({"display":"block"});
88
- unlockModal()
89
- }
90
- }
91
- modal.unbind('reveal:open');
92
- });
93
-
94
- //Closing Animation
95
- modal.bind('reveal:close', function () {
96
- if(!locked) {
97
- lockModal();
98
- if(options.animation == "fadeAndPop") {
99
- modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
100
- modal.animate({
101
- "top": $(document).scrollTop()-topOffset + 'px',
102
- "opacity" : 0
103
- }, options.animationspeed/2, function() {
104
- modal.css({'top':topMeasure, 'opacity' : 1, 'visibility' : 'hidden'});
105
- unlockModal();
106
- });
107
- }
108
- if(options.animation == "fade") {
109
- modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
110
- modal.animate({
111
- "opacity" : 0
112
- }, options.animationspeed, function() {
113
- modal.css({'opacity' : 1, 'visibility' : 'hidden', 'top' : topMeasure});
114
- unlockModal();
115
- });
116
- }
117
- if(options.animation == "none") {
118
- modal.css({'visibility' : 'hidden', 'top' : topMeasure});
119
- modalBG.css({'display' : 'none'});
120
- }
121
- }
122
- modal.unbind('reveal:close');
123
- });
124
-
125
- /*---------------------------
126
- Open and add Closing Listeners
127
- ----------------------------*/
128
- //Open Modal Immediately
129
- modal.trigger('reveal:open')
130
-
131
- //Close Modal Listeners
132
- var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent', function () {
133
- modal.trigger('reveal:close')
134
- });
135
-
136
- if(options.closeonbackgroundclick) {
137
- modalBG.css({"cursor":"pointer"})
138
- modalBG.bind('click.modalEvent', function () {
139
- modal.trigger('reveal:close')
140
- });
141
- }
142
- $('body').keyup(function(e) {
143
- if(e.which===27){ modal.trigger('reveal:close'); } // 27 is the keycode for the Escape key
144
- });
145
-
146
-
147
- /*---------------------------
148
- Animations Locks
149
- ----------------------------*/
150
- function unlockModal() {
151
- locked = false;
152
- }
153
- function lockModal() {
154
- locked = true;
155
- }
156
-
157
- });//each call
158
- }//orbit plugin call
159
- })(jQuery);
160
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/main.js CHANGED
@@ -1,190 +1,190 @@
1
  (function($) {
2
- window.Shareaholic = window.Shareaholic || {};
3
- window.shareaholic_debug = true;
4
 
5
- Shareaholic.bind_button_clicks = function(click_object, off) {
6
- if (off) {
7
- $(click_object.selector).off('click.app_settings');
8
- }
9
-
10
- $(click_object.selector).off('click.app_settings').on('click.app_settings', function(e) {
11
- button = this;
12
- e.preventDefault();
13
- url = click_object.url(this);
14
- $frame = $('<iframe>', { src: url }).appendTo('#iframe_container');
15
- if (click_object.callback) {
16
- click_object.callback(this);
17
  }
18
- $('#editing_modal').reveal({
19
- topPosition: 50,
20
- close: function() {
21
- if (click_object.close) {
22
- click_object.close(button);
23
- }
24
- $frame.remove();
 
25
  }
 
 
 
 
 
 
 
 
 
26
  });
27
- });
28
- }
29
-
30
- Shareaholic.click_objects = {
31
- 'app_settings': {
32
- selector: '#app_settings button',
33
- url: function(button) {
34
- id = $(button).data('location_id');
35
- app = $(button).data('app')
36
- url = first_part_of_url + $(button).data('href') + '?embedded=true&'
37
- + 'verification_key=' + verification_key;
38
- url = url.replace(/{{id}}/, id);
39
- return url;
40
- },
41
- callback: function(button) {
42
- id = $(button).data('location_id');
43
- app = $(button).data('app');
44
- text = 'You can also use this shortcode to place this {{app}} App anywhere.';
45
- html = "<div id='shortcode_container'> \
46
- <span id='shortcode_description'></span> \
47
- <textarea id='shortcode' name='widget_div' onclick='select();' readonly='readonly'></textarea> \
48
- </div>"
49
- $(html).appendTo('.reveal-modal');
50
- $('#shortcode_description').text(text.replace(/{{app}}/, Shareaholic.titlecase(app)));
51
- $('#shortcode').text('[shareaholic app="' + app + '" id="' + id + '"]');
52
- },
53
- close: function(button) {
54
- $('#shortcode_container').remove();
55
- }
56
- },
57
 
58
- 'general_settings': {
59
- selector: '#general_settings',
60
- url: function(button) {
61
- return first_part_of_url + 'edit?embedded=true&'
62
- + 'verification_key=' + verification_key;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  },
64
- callback: function(button) {
65
- $('#iframe_container').css('height', '100%');
66
- $('#iframe_container iframe').css('height', '100%');
 
 
 
 
 
 
 
 
67
  }
68
  }
69
- }
70
-
71
- Shareaholic.Utils.PostMessage.receive('settings_saved', {
72
- success: function(data) {
73
- $('input[type="submit"]').click();
74
- },
75
- failure: function(data) {
76
- console.log(data);
77
- }
78
- });
79
-
80
- Shareaholic.titlecase = function(string) {
81
- return string.charAt(0).toUpperCase() + string.replace(/_[a-z]/g, function(match) {
82
- return match.toUpperCase().replace(/_/, ' ');
83
- }).slice(1);
84
- }
85
-
86
- Shareaholic.disable_buttons = function() {
87
- $('#app_settings button').each(function() {
88
- if (!$(this).data('location_id')) {
89
- $(this).attr('disabled', 'disabled');
90
- } else {
91
- $(this).removeAttr('disabled');
92
  }
93
  });
94
- }
95
-
96
- Shareaholic.create_new_location = function(_this) {
97
- button = $(_this).siblings('button')
98
- app = button.data('app')
99
- location_id = button.data('location_id')
100
- if (!!location_id) {
101
- return;
102
- }
103
 
104
- data = {}
105
- data['configuration_' + app + '_location'] = {
106
- name: /.*\[(.*)\]/.exec($(_this).attr('name'))[1]
 
107
  }
108
 
109
- $.ajax({
110
- url: first_part_of_url + app + '/locations.json',
111
- type: 'POST',
112
- data: data,
113
- success: function(data, status, jqxhr) {
114
- data['action'] = 'shareaholic_add_location';
115
- button.data('location_id', data['location']['id']);
116
- Shareaholic.disable_buttons();
117
- Shareaholic.submit_to_admin(data, function(stuff) {
118
- console.log(stuff);
119
- });
120
- },
121
- failure: function(things) {
122
- console.log(things);
123
- },
124
- xhrFields: {
125
- withCredentials: true
126
- }
127
- });
128
- }
129
-
130
- Shareaholic.submit_to_admin = function(data, callback) {
131
- $.ajax({
132
- url: ajaxurl,
133
- type: 'POST',
134
- data: data,
135
- success: function(response) {
136
- try {
137
- response = JSON.parse(response);
138
- } catch (e) {
139
- response = {};
140
  }
141
- callback(response);
142
- },
143
- failure: function(response) {
144
- try {
145
- response = JSON.parse(response);
146
- } catch (e) {
147
- response = {};
148
- }
149
- callback(response);
150
  }
151
- })
152
- }
153
 
154
- $(document).ready(function() {
 
 
 
155
 
156
- Shareaholic.disable_buttons();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
- Shareaholic.bind_button_clicks(Shareaholic.click_objects['app_settings']);
159
- Shareaholic.bind_button_clicks(Shareaholic.click_objects['general_settings']);
160
- if (Shareaholic.click_objects['unverified_general_settings']) {
161
- Shareaholic.bind_button_clicks(Shareaholic.click_objects['unverified_general_settings'], true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  }
163
 
164
- $('#terms_of_service_modal').reveal({
165
- closeonbackgroundclick: false,
166
- closeonescape: false,
167
- topPosition: 100
168
- });
169
 
170
- $('#failed_to_create_api_key').reveal({
171
- closeonbackgroundclick: false,
172
- closeonescape: false
173
- });
 
 
 
174
 
175
- $('#get_started').on('click', function(e) {
176
- e.preventDefault();
177
- data = {action: 'shareaholic_accept_terms_of_service'};
178
- // $('#terms_of_service_modal').trigger('reveal:close');
179
- Shareaholic.submit_to_admin(data, function(){
180
- location.reload();
181
  });
182
- })
183
 
184
- $('form input[type=checkbox]').on('click', function() {
185
- if($(this).is(':checked') && !$(this).data('location_id')) {
186
- Shareaholic.create_new_location(this);
187
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  });
189
- });
190
  })(sQuery);
1
  (function($) {
2
+ window.Shareaholic = window.Shareaholic || {};
3
+ window.shareaholic_debug = true;
4
 
5
+ Shareaholic.bind_button_clicks = function(click_object, off) {
6
+ if (off) {
7
+ $(click_object.selector).off('click.app_settings');
 
 
 
 
 
 
 
 
 
8
  }
9
+
10
+ $(click_object.selector).off('click.app_settings').on('click.app_settings', function(e) {
11
+ button = this;
12
+ e.preventDefault();
13
+ url = click_object.url(this);
14
+ $frame = $('<iframe>', { src: url }).appendTo('#iframe_container');
15
+ if (click_object.callback) {
16
+ click_object.callback(this);
17
  }
18
+ $('#editing_modal').reveal({
19
+ topPosition: 50,
20
+ close: function() {
21
+ if (click_object.close) {
22
+ click_object.close(button);
23
+ }
24
+ $frame.remove();
25
+ }
26
+ });
27
  });
28
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
+ Shareaholic.click_objects = {
31
+ 'app_settings': {
32
+ selector: '#app_settings button',
33
+ url: function(button) {
34
+ id = $(button).data('location_id');
35
+ app = $(button).data('app')
36
+ url = first_part_of_url + $(button).data('href') + '?embedded=true&'
37
+ + 'verification_key=' + verification_key;
38
+ url = url.replace(/{{id}}/, id);
39
+ return url;
40
+ },
41
+ callback: function(button) {
42
+ id = $(button).data('location_id');
43
+ app = $(button).data('app');
44
+ text = 'You can also use this shortcode to place this {{app}} App anywhere.';
45
+ html = "<div id='shortcode_container'> \
46
+ <span id='shortcode_description'></span> \
47
+ <textarea id='shortcode' name='widget_div' onclick='select();' readonly='readonly'></textarea> \
48
+ </div>"
49
+ $(html).appendTo('.reveal-modal');
50
+ $('#shortcode_description').text(text.replace(/{{app}}/, Shareaholic.titlecase(app)));
51
+ $('#shortcode').text('[shareaholic app="' + app + '" id="' + id + '"]');
52
+ },
53
+ close: function(button) {
54
+ $('#shortcode_container').remove();
55
+ }
56
  },
57
+
58
+ 'general_settings': {
59
+ selector: '#general_settings',
60
+ url: function(button) {
61
+ return first_part_of_url + 'edit?embedded=true&'
62
+ + 'verification_key=' + verification_key;
63
+ },
64
+ callback: function(button) {
65
+ $('#iframe_container').css('height', '100%');
66
+ $('#iframe_container iframe').css('height', '100%');
67
+ }
68
  }
69
  }
70
+
71
+ Shareaholic.Utils.PostMessage.receive('settings_saved', {
72
+ success: function(data) {
73
+ $('input[type="submit"]').click();
74
+ },
75
+ failure: function(data) {
76
+ console.log(data);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
78
  });
 
 
 
 
 
 
 
 
 
79
 
80
+ Shareaholic.titlecase = function(string) {
81
+ return string.charAt(0).toUpperCase() + string.replace(/_[a-z]/g, function(match) {
82
+ return match.toUpperCase().replace(/_/, ' ');
83
+ }).slice(1);
84
  }
85
 
86
+ Shareaholic.disable_buttons = function() {
87
+ $('#app_settings button').each(function() {
88
+ if (!$(this).data('location_id')) {
89
+ $(this).attr('disabled', 'disabled');
90
+ } else {
91
+ $(this).removeAttr('disabled');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  }
93
+ });
94
+ }
95
+
96
+ Shareaholic.create_new_location = function(_this) {
97
+ button = $(_this).siblings('button')
98
+ app = button.data('app')
99
+ location_id = button.data('location_id')
100
+ if (!!location_id) {
101
+ return;
102
  }
 
 
103
 
104
+ data = {}
105
+ data['configuration_' + app + '_location'] = {
106
+ name: /.*\[(.*)\]/.exec($(_this).attr('name'))[1]
107
+ }
108
 
109
+ $.ajax({
110
+ url: first_part_of_url + app + '/locations.json',
111
+ type: 'POST',
112
+ data: data,
113
+ success: function(data, status, jqxhr) {
114
+ data['action'] = 'shareaholic_add_location';
115
+ button.data('location_id', data['location']['id']);
116
+ Shareaholic.disable_buttons();
117
+ Shareaholic.submit_to_admin(data, function(stuff) {
118
+ console.log(stuff);
119
+ });
120
+ },
121
+ failure: function(things) {
122
+ console.log(things);
123
+ },
124
+ xhrFields: {
125
+ withCredentials: true
126
+ }
127
+ });
128
+ }
129
 
130
+ Shareaholic.submit_to_admin = function(data, callback) {
131
+ $.ajax({
132
+ url: ajaxurl,
133
+ type: 'POST',
134
+ data: data,
135
+ success: function(response) {
136
+ try {
137
+ response = JSON.parse(response);
138
+ } catch (e) {
139
+ response = {};
140
+ }
141
+ callback(response);
142
+ },
143
+ failure: function(response) {
144
+ try {
145
+ response = JSON.parse(response);
146
+ } catch (e) {
147
+ response = {};
148
+ }
149
+ callback(response);
150
+ }
151
+ })
152
  }
153
 
154
+ $(document).ready(function() {
 
 
 
 
155
 
156
+ Shareaholic.disable_buttons();
157
+
158
+ Shareaholic.bind_button_clicks(Shareaholic.click_objects['app_settings']);
159
+ Shareaholic.bind_button_clicks(Shareaholic.click_objects['general_settings']);
160
+ if (Shareaholic.click_objects['unverified_general_settings']) {
161
+ Shareaholic.bind_button_clicks(Shareaholic.click_objects['unverified_general_settings'], true);
162
+ }
163
 
164
+ $('#terms_of_service_modal').reveal({
165
+ closeonbackgroundclick: false,
166
+ closeonescape: false,
167
+ topPosition: 100
 
 
168
  });
 
169
 
170
+ $('#failed_to_create_api_key').reveal({
171
+ closeonbackgroundclick: false,
172
+ closeonescape: false
173
+ });
174
+
175
+ $('#get_started').on('click', function(e) {
176
+ e.preventDefault();
177
+ data = {action: 'shareaholic_accept_terms_of_service'};
178
+ // $('#terms_of_service_modal').trigger('reveal:close');
179
+ Shareaholic.submit_to_admin(data, function(){
180
+ location.reload();
181
+ });
182
+ })
183
+
184
+ $('form input[type=checkbox]').on('click', function() {
185
+ if($(this).is(':checked') && !$(this).data('location_id')) {
186
+ Shareaholic.create_new_location(this);
187
+ }
188
+ });
189
  });
 
190
  })(sQuery);
assets/js/main.min.js CHANGED
@@ -1,8 +1,7 @@
1
- window.Shareaholic=window.Shareaholic||{};window.shareaholic_debug=!0;Shareaholic.bind_button_clicks=function(a,b){b&&$(a.selector).off("click.app_settings");$(a.selector).off("click.app_settings").on("click.app_settings",function(b){b.preventDefault();url=a.url(this);$frame=$("<iframe>",{src:url}).appendTo("#iframe_container");a.callback&&a.callback(this);$("#editing_modal").reveal({topPosition:50,close:function(){a.close&&a.close(button);$frame.remove()}})})};
2
- Shareaholic.click_objects={app_settings:{selector:"#app_settings button",url:function(a){id=$(a).data("location_id");app=$(a).data("app");url=first_part_of_url+$(a).data("href")+"?embedded=true&verification_key="+verification_key;return url=url.replace(/{{id}}/,id)},callback:function(a){id=$(a).data("location_id");app=$(a).data("app");text="You can also this shortcode to place this {{app}} App anywhere.";html="<div id='shortcode_container'> <span id='shortcode_description'></span> <textarea id='shortcode' name='widget_div' onclick='select();' readonly='readonly'></textarea> </div>";
3
- $(html).appendTo(".reveal-modal");$("#shortcode_description").text(text.replace(/{{app}}/,Shareaholic.titlecase(app)));$("#shortcode").text('[shareaholic app="'+app+'" id="'+id+'"]')},close:function(a){$("#shortcode_container").remove()}},general_settings:{selector:"#general_settings",url:function(a){return first_part_of_url+"edit?embedded=true&verification_key="+verification_key},callback:function(a){$("#iframe_container").css("height","100%");$("#iframe_container iframe").css("height","100%")}}};
4
- Shareaholic.Utils.PostMessage.receive("settings_saved",{success:function(a){setTimeout(function(){$('input[type="submit"]').click()},100)},failure:function(a){console.log(a)}});Shareaholic.titlecase=function(a){return a.charAt(0).toUpperCase()+a.replace(/_[a-z]/g,function(a){return a.toUpperCase().replace(/_/," ")}).slice(1)};Shareaholic.disable_buttons=function(){$("#app_settings button").each(function(){$(this).data("location_id")?$(this).removeAttr("disabled"):$(this).attr("disabled","disabled")})};
5
- Shareaholic.create_new_location=function(a){button=$(a).siblings("button");app=button.data("app");location_id=button.data("location_id");location_id||(data={},data["configuration_"+app+"_location"]={name:/.*\[(.*)\]/.exec($(a).attr("name"))[1]},$.ajax({url:first_part_of_url+app+"/locations.json",type:"POST",data:data,success:function(a,d,c){a.action="shareaholic_add_location";button.data("location_id",a.location.id);Shareaholic.disable_buttons();Shareaholic.submit_to_admin(a,function(a){console.log(a)})},
6
- failure:function(a){console.log(a)},xhrFields:{withCredentials:!0}}))};Shareaholic.submit_to_admin=function(a,b){$.ajax({url:ajaxurl,type:"POST",data:a,success:function(a){try{a=JSON.parse(a)}catch(c){a={}}b(a)},failure:function(a){try{a=JSON.parse(a)}catch(c){a={}}b(a)}})};
7
- $(document).ready(function(){Shareaholic.disable_buttons();for(button in Shareaholic.click_objects)Shareaholic.bind_button_clicks(Shareaholic.click_objects[button]);$("#terms_of_service_modal").reveal({closeonbackgroundclick:!1,closeonescape:!1,topPosition:100});$("#failed_to_create_api_key").reveal({closeonbackgroundclick:!1,closeonescape:!1});$("#get_started").on("click",function(a){a.preventDefault();data={action:"shareaholic_accept_terms_of_service"};Shareaholic.submit_to_admin(data,function(){location.reload()})});
8
- $("form input[type=checkbox]").on("click",function(){$(this).is(":checked")&&!$(this).data("location_id")&&Shareaholic.create_new_location(this)})});
1
+ (function(a){window.Shareaholic=window.Shareaholic||{};window.shareaholic_debug=!0;Shareaholic.bind_button_clicks=function(b,c){c&&a(b.selector).off("click.app_settings");a(b.selector).off("click.app_settings").on("click.app_settings",function(c){button=this;c.preventDefault();url=b.url(this);$frame=a("<iframe>",{src:url}).appendTo("#iframe_container");b.callback&&b.callback(this);a("#editing_modal").reveal({topPosition:50,close:function(){b.close&&b.close(button);$frame.remove()}})})};Shareaholic.click_objects=
2
+ {app_settings:{selector:"#app_settings button",url:function(b){id=a(b).data("location_id");app=a(b).data("app");url=first_part_of_url+a(b).data("href")+"?embedded=true&verification_key="+verification_key;return url=url.replace(/{{id}}/,id)},callback:function(b){id=a(b).data("location_id");app=a(b).data("app");text="You can also use this shortcode to place this {{app}} App anywhere.";html="<div id='shortcode_container'> <span id='shortcode_description'></span> <textarea id='shortcode' name='widget_div' onclick='select();' readonly='readonly'></textarea> </div>";
3
+ a(html).appendTo(".reveal-modal");a("#shortcode_description").text(text.replace(/{{app}}/,Shareaholic.titlecase(app)));a("#shortcode").text('[shareaholic app="'+app+'" id="'+id+'"]')},close:function(b){a("#shortcode_container").remove()}},general_settings:{selector:"#general_settings",url:function(a){return first_part_of_url+"edit?embedded=true&verification_key="+verification_key},callback:function(b){a("#iframe_container").css("height","100%");a("#iframe_container iframe").css("height","100%")}}};
4
+ Shareaholic.Utils.PostMessage.receive("settings_saved",{success:function(b){a('input[type="submit"]').click()},failure:function(a){console.log(a)}});Shareaholic.titlecase=function(a){return a.charAt(0).toUpperCase()+a.replace(/_[a-z]/g,function(a){return a.toUpperCase().replace(/_/," ")}).slice(1)};Shareaholic.disable_buttons=function(){a("#app_settings button").each(function(){a(this).data("location_id")?a(this).removeAttr("disabled"):a(this).attr("disabled","disabled")})};Shareaholic.create_new_location=
5
+ function(b){button=a(b).siblings("button");app=button.data("app");location_id=button.data("location_id");location_id||(data={},data["configuration_"+app+"_location"]={name:/.*\[(.*)\]/.exec(a(b).attr("name"))[1]},a.ajax({url:first_part_of_url+app+"/locations.json",type:"POST",data:data,success:function(a,b,d){a.action="shareaholic_add_location";button.data("location_id",a.location.id);Shareaholic.disable_buttons();Shareaholic.submit_to_admin(a,function(a){console.log(a)})},failure:function(a){console.log(a)},
6
+ xhrFields:{withCredentials:!0}}))};Shareaholic.submit_to_admin=function(b,c){a.ajax({url:ajaxurl,type:"POST",data:b,success:function(a){try{a=JSON.parse(a)}catch(b){a={}}c(a)},failure:function(a){try{a=JSON.parse(a)}catch(b){a={}}c(a)}})};a(document).ready(function(){Shareaholic.disable_buttons();Shareaholic.bind_button_clicks(Shareaholic.click_objects.app_settings);Shareaholic.bind_button_clicks(Shareaholic.click_objects.general_settings);Shareaholic.click_objects.unverified_general_settings&&Shareaholic.bind_button_clicks(Shareaholic.click_objects.unverified_general_settings,
7
+ !0);a("#terms_of_service_modal").reveal({closeonbackgroundclick:!1,closeonescape:!1,topPosition:100});a("#failed_to_create_api_key").reveal({closeonbackgroundclick:!1,closeonescape:!1});a("#get_started").on("click",function(a){a.preventDefault();data={action:"shareaholic_accept_terms_of_service"};Shareaholic.submit_to_admin(data,function(){location.reload()})});a("form input[type=checkbox]").on("click",function(){a(this).is(":checked")&&!a(this).data("location_id")&&Shareaholic.create_new_location(this)})})})(sQuery);
 
assets/screenshot-1.png DELETED
Binary file
assets/screenshot-2.jpg DELETED
Binary file
assets/screenshot-3.jpg DELETED
Binary file
assets/screenshot-4.jpg DELETED
Binary file
assets/screenshot-5.jpg DELETED
Binary file
assets/screenshot-6.jpg DELETED
Binary file
assets/screenshot-7.jpg DELETED
Binary file
assets/screenshot-8.jpg DELETED
Binary file
curl.php CHANGED
@@ -52,7 +52,7 @@ class ShareaholicCurl {
52
  * @param string $data_type either an empty string or 'json'
53
  * @param string $method the HTTP verb to be used
54
  *
55
- * @return array the returned data json decoded
56
  */
57
  private static function send_request_with_wp($url, $data, $data_type, $method) {
58
  ShareaholicUtilities::log($url);
@@ -199,4 +199,4 @@ class ShareaholicCurl {
199
  }
200
  }
201
 
202
- ?>
52
  * @param string $data_type either an empty string or 'json'
53
  * @param string $method the HTTP verb to be used
54
  *
55
+ * @return mixed the returned data json decoded or false
56
  */
57
  private static function send_request_with_wp($url, $data, $data_type, $method) {
58
  ShareaholicUtilities::log($url);
199
  }
200
  }
201
 
202
+ ?>
global_functions.php CHANGED
@@ -12,11 +12,14 @@
12
  *
13
  * @deprecated beginning with the release of 7.0.0.0
14
  */
15
- function selfserv_shareaholic() {
16
- $trace = debug_backtrace();
17
- $deprecation = new ShareaholicDeprecation('selfserv_shareaholic');
18
- $deprecation->push($trace[0]['file'], $trace[0]['line']);
19
- echo ShareaholicPublic::canvas(NULL, 'share_buttons');
 
 
 
20
  }
21
 
22
  /**
@@ -26,26 +29,29 @@ function selfserv_shareaholic() {
26
  *
27
  * @param string $position either 'Top' or 'Bottom'
28
  */
29
- function get_shr_like_buttonset($position) {
30
- $trace = debug_backtrace();
31
- $deprecation = new ShareaholicDeprecation('get_shr_like_buttonset');
32
- $deprecation->push($trace[0]['file'], $trace[0]['line']);
33
 
34
- $settings = ShareaholicUtilities::get_settings();
35
- $page_type = ShareaholicUtilities::page_type();
 
 
 
36
 
37
- switch ($position) {
38
- case 'Top':
39
- $id = isset($settings['location_name_ids']["{$page_type}_above_content"])
40
- ? $settings['location_name_ids']["{$page_type}_above_content"] : NULL;
41
- break;
42
- case 'Bottom':
43
- $id = isset($settings['location_name_ids']["{$page_type}_below_content"])
44
- ? $settings['location_name_ids']["{$page_type}_below_content"] : NULL;
45
- break;
46
- }
47
 
48
- echo ShareaholicPublic::canvas($id, 'share_buttons');
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
  ?>
12
  *
13
  * @deprecated beginning with the release of 7.0.0.0
14
  */
15
+
16
+ if (!function_exists('selfserv_shareaholic')) {
17
+ function selfserv_shareaholic() {
18
+ $trace = debug_backtrace();
19
+ $deprecation = new ShareaholicDeprecation('selfserv_shareaholic');
20
+ $deprecation->push($trace[0]['file'], $trace[0]['line']);
21
+ echo ShareaholicPublic::canvas(NULL, 'share_buttons');
22
+ }
23
  }
24
 
25
  /**
29
  *
30
  * @param string $position either 'Top' or 'Bottom'
31
  */
 
 
 
 
32
 
33
+ if (!function_exists('get_shr_like_buttonset')) {
34
+ function get_shr_like_buttonset($position) {
35
+ $trace = debug_backtrace();
36
+ $deprecation = new ShareaholicDeprecation('get_shr_like_buttonset');
37
+ $deprecation->push($trace[0]['file'], $trace[0]['line']);
38
 
39
+ $settings = ShareaholicUtilities::get_settings();
40
+ $page_type = ShareaholicUtilities::page_type();
 
 
 
 
 
 
 
 
41
 
42
+ switch ($position) {
43
+ case 'Top':
44
+ $id = isset($settings['location_name_ids']["{$page_type}_above_content"])
45
+ ? $settings['location_name_ids']["{$page_type}_above_content"] : NULL;
46
+ break;
47
+ case 'Bottom':
48
+ $id = isset($settings['location_name_ids']["{$page_type}_below_content"])
49
+ ? $settings['location_name_ids']["{$page_type}_below_content"] : NULL;
50
+ break;
51
+ }
52
+
53
+ echo ShareaholicPublic::canvas($id, 'share_buttons');
54
+ }
55
+ }
56
 
57
  ?>
public.php CHANGED
@@ -65,9 +65,10 @@ class ShareaholicPublic {
65
  * Draws the shareaholic meta tags.
66
  */
67
  private static function shareaholic_tags() {
68
- echo "\n<!-- Shareaholic Content Tags (v" . ShareaholicUtilities::get_version() . ") -->\n";
69
  self::draw_site_name_meta_tag();
70
  self::draw_language_meta_tag();
 
71
  self::draw_image_meta_tag();
72
  echo "\n<!-- Shareaholic Content Tags End -->\n";
73
  }
@@ -81,7 +82,14 @@ class ShareaholicPublic {
81
  echo "<meta name='shareaholic:language' content='" . $blog_language . "' />\n";
82
  }
83
  }
84
-
 
 
 
 
 
 
 
85
  /**
86
  * Draws Shareaholic site name meta tag.
87
  */
65
  * Draws the shareaholic meta tags.
66
  */
67
  private static function shareaholic_tags() {
68
+ echo "\n<!-- Shareaholic Content Tags -->\n";
69
  self::draw_site_name_meta_tag();
70
  self::draw_language_meta_tag();
71
+ self::draw_plugin_version_meta_tag();
72
  self::draw_image_meta_tag();
73
  echo "\n<!-- Shareaholic Content Tags End -->\n";
74
  }
82
  echo "<meta name='shareaholic:language' content='" . $blog_language . "' />\n";
83
  }
84
  }
85
+
86
+ /**
87
+ * Draws Shareaholic version meta tag.
88
+ */
89
+ private static function draw_plugin_version_meta_tag() {
90
+ echo "<meta name='shareaholic:version' content='" . ShareaholicUtilities::get_version() . "' />\n";
91
+ }
92
+
93
  /**
94
  * Draws Shareaholic site name meta tag.
95
  */
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: shareaholic
3
  Tags: sexybookmarks, shareaholic, shareholic, facebook, twitter, linkedin, URL Shortener, bitly, tinyurl, Goo.gl, Google+1, Google Analytics, Google Plus, Google, Instapaper, Wish List, Digg, Gmail, Google Bookmarks, Translate, Tumblr, AIM, Yahoo Messenger, Delicious, StumbleUpon, mister wong, evernote, add this, addtoany, share this, sharethis, share and follow, share and enjoy, sharing is sexy, sharing is caring, yahoo, reddit, hackernews, tweet button, twitter button, fark, buffer, myspace, orkut, netlog, hubspot, weheartit, printfriendly, yammer, pinterest, google translate, bookmarks, social, email button, social share, socialize, sociable, sharebar, bookmark button, share button, social bookmarking, bookmarks menu, bookmarking, share, seo, analytics, stats, sharing, facebook like, facebook recommend, WPMU, mutisite, shortcode, yaarp, yarpp, nrelate, outbrain, linkwithin, related content, related posts, related, popular posts, popular, thumbnails, recommendations
4
  Requires at least: 2.7
5
  Tested up to: 3.5.2
6
- Stable tag: 7.0.2.0
7
 
8
  Adds an attractive social bookmarking menu and related content widget to your posts, pages, index, or any combination of the three.
9
 
@@ -141,12 +141,20 @@ Please see here: [Usage & Installation Instructions](https://shareaholic.com/too
141
 
142
  == Changelog ==
143
 
 
 
 
 
 
 
 
 
 
144
  = 7.0.2.0 =
145
  * This is a big update based on a lot of user feedback!
146
  * For Facebook, sharers are now taken directly to Facebook
147
  * Fixed how Twitter and Facebook sharing work on mobile devices
148
  * Now access Share Button and Related Content settings without a (free) account, although it is highly encouraged
149
- * Bugfix: Unresponsive "Edit Button" and "General Website Settings" button
150
 
151
  = 7.0.1.0 =
152
  * Several bug fixes, in addition to -
@@ -884,8 +892,11 @@ Please see here: [Usage & Installation Instructions](https://shareaholic.com/too
884
 
885
  == Upgrade Notice ==
886
 
 
 
 
887
  = 7.0.2.0 =
888
- As always, we're listening and reacting to all your feedback. This release represents a slew of updates based on a lot of user feedback. For Facebook sharing, sharers are now taken directly to Facebook, now access Share Button and Related Content settings without an (free) account, and much much more.
889
 
890
  = 7.0.1.0 =
891
  * Huge update! Completely re-written from the ground up to be faster and with a new simple interface! Includes brand new Share button themes (including vertical share buttons!) and Related posts themes. Related Posts now come mobile optimized and responsive out of the box - Shareaholic automagically determines how many Related Posts to show given how much screen width it is given. You can now even customize your "You may also like" text and exclude URLs.
3
  Tags: sexybookmarks, shareaholic, shareholic, facebook, twitter, linkedin, URL Shortener, bitly, tinyurl, Goo.gl, Google+1, Google Analytics, Google Plus, Google, Instapaper, Wish List, Digg, Gmail, Google Bookmarks, Translate, Tumblr, AIM, Yahoo Messenger, Delicious, StumbleUpon, mister wong, evernote, add this, addtoany, share this, sharethis, share and follow, share and enjoy, sharing is sexy, sharing is caring, yahoo, reddit, hackernews, tweet button, twitter button, fark, buffer, myspace, orkut, netlog, hubspot, weheartit, printfriendly, yammer, pinterest, google translate, bookmarks, social, email button, social share, socialize, sociable, sharebar, bookmark button, share button, social bookmarking, bookmarks menu, bookmarking, share, seo, analytics, stats, sharing, facebook like, facebook recommend, WPMU, mutisite, shortcode, yaarp, yarpp, nrelate, outbrain, linkwithin, related content, related posts, related, popular posts, popular, thumbnails, recommendations
4
  Requires at least: 2.7
5
  Tested up to: 3.5.2
6
+ Stable tag: 7.0.3.0
7
 
8
  Adds an attractive social bookmarking menu and related content widget to your posts, pages, index, or any combination of the three.
9
 
141
 
142
  == Changelog ==
143
 
144
+ = 7.0.3.0 =
145
+ * New feature: You can now center, left AND right align your share buttons!
146
+ * New feature: Added support for *custom headers* for share buttons! ([How-To Instructions](http://support.shareaholic.com/entries/24846703-How-to-use-a-custom-Header-image))
147
+ * New feature: You can now on / off toggle the "More Options" share button
148
+ * Various bug fixes and performance improvements
149
+ * Cleaned up assets directory, as a result the plugin zip file is now a lot smaller
150
+ * Added a check to ensure multiple versions of Shareaholic are not running at the same time on the same install
151
+ * Bugfix: A host of fixes for the unresponsive "Edit Button" and "General Website Settings" button bug (If you're still facing this issue, [please contact us](http://support.shareaholic.com/anonymous_requests/new))
152
+
153
  = 7.0.2.0 =
154
  * This is a big update based on a lot of user feedback!
155
  * For Facebook, sharers are now taken directly to Facebook
156
  * Fixed how Twitter and Facebook sharing work on mobile devices
157
  * Now access Share Button and Related Content settings without a (free) account, although it is highly encouraged
 
158
 
159
  = 7.0.1.0 =
160
  * Several bug fixes, in addition to -
892
 
893
  == Upgrade Notice ==
894
 
895
+ = 7.0.3.0 =
896
+ Lots of new features! You can now center, left and right align your share buttons, use custom headers, toggle the "more options" button, various bug fixes, performance improvements and more.
897
+
898
  = 7.0.2.0 =
899
+ As always, we're listening and working in all your feedback. This release represents a slew of updates based on a lot of user feedback. For Facebook sharing, sharers are now taken directly to Facebook, now access Share Button and Related Content settings without an (free) account, and much much more.
900
 
901
  = 7.0.1.0 =
902
  * Huge update! Completely re-written from the ground up to be faster and with a new simple interface! Includes brand new Share button themes (including vertical share buttons!) and Related posts themes. Related Posts now come mobile optimized and responsive out of the box - Shareaholic automagically determines how many Related Posts to show given how much screen width it is given. You can now even customize your "You may also like" text and exclude URLs.
shareaholic.php CHANGED
@@ -3,14 +3,14 @@
3
  * The main and first file!
4
  *
5
  * @package shareaholic
6
- * @version 7.0.2.0
7
  */
8
 
9
  /*
10
  Plugin Name: Shareaholic | share buttons, analytics, related content
11
  Plugin URI: https://shareaholic.com/publishers/
12
  Description: Whether you want to get people sharing, grow your fans, make money, or know who's reading your content, Shareaholic will help you get it done. See <a href="admin.php?page=shareaholic-settings">configuration panel</a> for more settings.
13
- Version: 7.0.2.0
14
  Author: Shareaholic
15
  Author URI: https://shareaholic.com
16
  Credits & Thanks: https://shareaholic.com/tools/wordpress/credits
@@ -43,7 +43,7 @@ require_once(SHAREAHOLIC_DIR . '/deprecation.php');
43
  */
44
  class Shareaholic {
45
  const URL = 'https://shareaholic.com';
46
- const VERSION = '7.0.2.0';
47
  /**
48
  * Starts off as false so that ::get_instance() returns
49
  * a new instance.
@@ -60,11 +60,14 @@ class Shareaholic {
60
  add_action('wp_head', array('ShareaholicPublic', 'wp_head'));
61
  add_shortcode('shareaholic', array('ShareaholicPublic', 'shortcode'));
62
 
 
 
63
  add_action('wp_ajax_shareaholic_add_location', array('ShareaholicAdmin', 'add_location'));
64
  add_action('add_meta_boxes', array('ShareaholicAdmin', 'add_meta_boxes'));
65
  add_action('save_post', array('ShareaholicAdmin', 'save_post'));
66
- add_action('admin_head', array('ShareaholicAdmin', 'admin_head'));
67
  add_action('admin_menu', array('ShareaholicAdmin', 'admin_menu'));
 
68
  if (!ShareaholicUtilities::has_accepted_terms_of_service()) {
69
  add_action('admin_notices', array('ShareaholicAdmin', 'show_terms_of_service'));
70
  }
@@ -76,7 +79,7 @@ class Shareaholic {
76
  register_deactivation_hook( __FILE__, array($this, 'deactivate' ));
77
  register_uninstall_hook(__FILE__, array('Shareaholic', 'uninstall' ));
78
 
79
- add_filter( 'plugin_action_links_'.plugin_basename(__FILE__), 'ShareaholicUtilities::admin_plugin_action_links', -10);
80
  }
81
 
82
  /**
3
  * The main and first file!
4
  *
5
  * @package shareaholic
6
+ * @version 7.0.3.0
7
  */
8
 
9
  /*
10
  Plugin Name: Shareaholic | share buttons, analytics, related content
11
  Plugin URI: https://shareaholic.com/publishers/
12
  Description: Whether you want to get people sharing, grow your fans, make money, or know who's reading your content, Shareaholic will help you get it done. See <a href="admin.php?page=shareaholic-settings">configuration panel</a> for more settings.
13
+ Version: 7.0.3.0
14
  Author: Shareaholic
15
  Author URI: https://shareaholic.com
16
  Credits & Thanks: https://shareaholic.com/tools/wordpress/credits
43
  */
44
  class Shareaholic {
45
  const URL = 'https://shareaholic.com';
46
+ const VERSION = '7.0.3.0';
47
  /**
48
  * Starts off as false so that ::get_instance() returns
49
  * a new instance.
60
  add_action('wp_head', array('ShareaholicPublic', 'wp_head'));
61
  add_shortcode('shareaholic', array('ShareaholicPublic', 'shortcode'));
62
 
63
+ add_action('admin_init', 'ShareaholicUtilities::check_for_other_plugin');
64
+
65
  add_action('wp_ajax_shareaholic_add_location', array('ShareaholicAdmin', 'add_location'));
66
  add_action('add_meta_boxes', array('ShareaholicAdmin', 'add_meta_boxes'));
67
  add_action('save_post', array('ShareaholicAdmin', 'save_post'));
68
+ add_action('admin_enqueue_scripts', array('ShareaholicAdmin', 'enqueue_scripts'));
69
  add_action('admin_menu', array('ShareaholicAdmin', 'admin_menu'));
70
+
71
  if (!ShareaholicUtilities::has_accepted_terms_of_service()) {
72
  add_action('admin_notices', array('ShareaholicAdmin', 'show_terms_of_service'));
73
  }
79
  register_deactivation_hook( __FILE__, array($this, 'deactivate' ));
80
  register_uninstall_hook(__FILE__, array('Shareaholic', 'uninstall' ));
81
 
82
+ add_filter('plugin_action_links_'.plugin_basename(__FILE__), 'ShareaholicUtilities::admin_plugin_action_links', -10);
83
  }
84
 
85
  /**
six_to_seven.php CHANGED
@@ -26,20 +26,21 @@ class ShareaholicSixToSeven {
26
  $top_bar_configuration = get_option('ShareaholicTopBar');
27
 
28
  $new_share_buttons_configuration = self::transform_sexybookmarks_configuration($sexybookmarks_configuration);
29
- $new_classicbookmarks_locations = self::transform_classicbookmarks_locations($classicbookmarks_configuration);
30
  $new_top_bar_configuration = self::transform_top_bar_configuration($top_bar_configuration);
31
 
32
 
 
33
  // if sexybookmarks are off or not on the bottom
34
  if ($sexybookmarks_configuration['sexybookmark'] != '1' ||
35
- !(bool)preg_grep('/below/', array_keys($new_share_buttons_configuration))) {
36
  // then merge in the classic bookmark locations
37
  $new_share_buttons_configuration = array_merge(
38
  $new_share_buttons_configuration,
39
  $new_classicbookmarks_locations
40
  );
41
  } elseif ($sexybookmarks_configuration['sexybookmark'] != '1' ||
42
- !(bool)preg_grep('/above/', array_keys($new_share_buttons_configuration))) {
43
  $new_share_buttons_configuration = array_merge(
44
  $new_share_buttons_configuration,
45
  $new_top_bar_configuration
@@ -47,7 +48,9 @@ class ShareaholicSixToSeven {
47
  }
48
 
49
  if ($recommendations_configuration['recommendations'] == '1') {
50
- $new_recommendations_configuration = self::transform_recommendations_configuration($recommendations_configuration);
 
 
51
  } elseif (ShareaholicUtilities::version_less_than_or_equal_to($version, '6.1.3.6')) {
52
  $new_recommendations_configuration = array(
53
  'locations_attributes' => array(
@@ -77,7 +80,7 @@ class ShareaholicSixToSeven {
77
  if ($response && preg_match('/20*/', $response['response']['code'])) {
78
  ShareaholicUtilities::log_event('6To7ConversionSuccess', array(
79
  'the_posted_json' => $new_configuration,
80
- 'the_created_api_key' => $result['api_key'],
81
  'SexyBookmarks' => $sexybookmarks_configuration,
82
  'ShareaholicClassicBookmarks' => $classicbookmarks_configuration,
83
  'ShareaholicRecommendations' => $recommendations_configuration
@@ -103,6 +106,10 @@ class ShareaholicSixToSeven {
103
  }
104
  }
105
 
 
 
 
 
106
  /**
107
  * Munge the stored configuration for sexybookmarks
108
  * into the format we expect them on our side.
@@ -120,7 +127,7 @@ class ShareaholicSixToSeven {
120
  'counter' => 'badge-counter'
121
  );
122
 
123
- if (!isset($result['above']) && $share_buttons_configuration['likeButtonSetTop'] == '1') {
124
  $result['above'] = array(
125
  'services' => self::like_button_set_services($share_buttons_configuration),
126
  'size' => 'rectangle',
@@ -128,7 +135,7 @@ class ShareaholicSixToSeven {
128
  );
129
  }
130
 
131
- if (!isset($result['below']) && $share_buttons_configuration['likeButtonSetBottom'] == '1') {
132
  $result['below'] = array(
133
  'services' => self::like_button_set_services($share_buttons_configuration),
134
  // theme candybar
@@ -283,9 +290,10 @@ class ShareaholicSixToSeven {
283
  * Returns a configuration if the user was using classicbookmarks.
284
  *
285
  * @param array $classicbookmarks_configuration
 
286
  * @return array
287
  */
288
- private static function transform_classicbookmarks_locations($classicbookmarks_configuration) {
289
  $result = array(
290
  'services' => array('facebook', 'twitter', 'email_this', 'pinterest', 'tumblr', 'google_plus', 'linkedin'),
291
  );
@@ -306,7 +314,10 @@ class ShareaholicSixToSeven {
306
  ));
307
  }
308
 
309
- return self::set_page_types(array('below' => $result), $classicbookmarks_configuration['pageorpost']);
 
 
 
310
  }
311
 
312
  /**
@@ -317,12 +328,16 @@ class ShareaholicSixToSeven {
317
  * @return array
318
  */
319
  private static function transform_recommendations_configuration($recommendations_configuration) {
320
- return array(
321
- 'headline_text' => 'You may also like:',
322
- // if they requested text, honor that,
323
- // otherwise give them the default style
324
- 'theme' => $recommendations_configuration['style'] == 'text' ? 'text-only' : 'default'
 
 
325
  );
 
 
326
  }
327
 
328
  /**
@@ -333,7 +348,6 @@ class ShareaholicSixToSeven {
333
  * @return array
334
  */
335
  private static function services($services) {
336
- // anonymous function for `array_map`
337
  return array_map(array('self', 'services_iterator'), $services);
338
  }
339
 
@@ -368,10 +382,11 @@ class ShareaholicSixToSeven {
368
  */
369
  private static function like_button_set_services($share_buttons_configuration) {
370
  if ($share_buttons_configuration['position'] == 'above') {
371
- $position = 'Top';
372
- } else {
373
  $position = 'Bottom';
 
 
374
  }
 
375
  $result = array();
376
  if ($share_buttons_configuration['fbLikeButton' . $position] == '1' ||
377
  $share_buttons_configuration['fbSendButton' . $position] == '1') {
@@ -402,4 +417,4 @@ class ShareaholicSixToSeven {
402
  }
403
  }
404
 
405
- ?>
26
  $top_bar_configuration = get_option('ShareaholicTopBar');
27
 
28
  $new_share_buttons_configuration = self::transform_sexybookmarks_configuration($sexybookmarks_configuration);
29
+ $new_classicbookmarks_locations = self::transform_classicbookmarks_locations($classicbookmarks_configuration, $sexybookmarks_configuration);
30
  $new_top_bar_configuration = self::transform_top_bar_configuration($top_bar_configuration);
31
 
32
 
33
+ $location_names = array_map(array('self', 'grab_location_iterator'), $new_share_buttons_configuration['locations_attributes']);
34
  // if sexybookmarks are off or not on the bottom
35
  if ($sexybookmarks_configuration['sexybookmark'] != '1' ||
36
+ !(bool)preg_grep('/below/', $location_names)) {
37
  // then merge in the classic bookmark locations
38
  $new_share_buttons_configuration = array_merge(
39
  $new_share_buttons_configuration,
40
  $new_classicbookmarks_locations
41
  );
42
  } elseif ($sexybookmarks_configuration['sexybookmark'] != '1' ||
43
+ !(bool)preg_grep('/above/', $location_names)) {
44
  $new_share_buttons_configuration = array_merge(
45
  $new_share_buttons_configuration,
46
  $new_top_bar_configuration
48
  }
49
 
50
  if ($recommendations_configuration['recommendations'] == '1') {
51
+ $new_recommendations_configuration = array(
52
+ 'locations_attributes' => self::transform_recommendations_configuration($recommendations_configuration)
53
+ );
54
  } elseif (ShareaholicUtilities::version_less_than_or_equal_to($version, '6.1.3.6')) {
55
  $new_recommendations_configuration = array(
56
  'locations_attributes' => array(
80
  if ($response && preg_match('/20*/', $response['response']['code'])) {
81
  ShareaholicUtilities::log_event('6To7ConversionSuccess', array(
82
  'the_posted_json' => $new_configuration,
83
+ 'the_created_api_key' => $response['body']['api_key'],
84
  'SexyBookmarks' => $sexybookmarks_configuration,
85
  'ShareaholicClassicBookmarks' => $classicbookmarks_configuration,
86
  'ShareaholicRecommendations' => $recommendations_configuration
106
  }
107
  }
108
 
109
+ private static function grab_location_iterator($location) {
110
+ return $location['name'];
111
+ }
112
+
113
  /**
114
  * Munge the stored configuration for sexybookmarks
115
  * into the format we expect them on our side.
127
  'counter' => 'badge-counter'
128
  );
129
 
130
+ if (!isset($result['above']) && $share_buttons_configuration['likeButtonSetTop']) {
131
  $result['above'] = array(
132
  'services' => self::like_button_set_services($share_buttons_configuration),
133
  'size' => 'rectangle',
135
  );
136
  }
137
 
138
+ if (!isset($result['below']) && $share_buttons_configuration['likeButtonSetBottom']) {
139
  $result['below'] = array(
140
  'services' => self::like_button_set_services($share_buttons_configuration),
141
  // theme candybar
290
  * Returns a configuration if the user was using classicbookmarks.
291
  *
292
  * @param array $classicbookmarks_configuration
293
+ * @param array $share_buttons_configuration
294
  * @return array
295
  */
296
+ private static function transform_classicbookmarks_locations($classicbookmarks_configuration, $share_buttons_configuration) {
297
  $result = array(
298
  'services' => array('facebook', 'twitter', 'email_this', 'pinterest', 'tumblr', 'google_plus', 'linkedin'),
299
  );
314
  ));
315
  }
316
 
317
+ return array(
318
+ 'message_format' => urldecode($share_buttons_configuration['tweetconfig']),
319
+ 'locations_attributes' => self::set_page_types(array('below' => $result), $classicbookmarks_configuration['pageorpost'])
320
+ );
321
  }
322
 
323
  /**
328
  * @return array
329
  */
330
  private static function transform_recommendations_configuration($recommendations_configuration) {
331
+ $settings = array(
332
+ 'below' => array(
333
+ 'headline_text' => 'You may also like:',
334
+ // if they requested text, honor that,
335
+ // otherwise give them the default style
336
+ 'theme' => $recommendations_configuration['style'] == 'text' ? 'text-only' : 'default'
337
+ )
338
  );
339
+
340
+ return self::set_page_types($settings, $recommendations_configuration['pageorpost']);
341
  }
342
 
343
  /**
348
  * @return array
349
  */
350
  private static function services($services) {
 
351
  return array_map(array('self', 'services_iterator'), $services);
352
  }
353
 
382
  */
383
  private static function like_button_set_services($share_buttons_configuration) {
384
  if ($share_buttons_configuration['position'] == 'above') {
 
 
385
  $position = 'Bottom';
386
+ } else {
387
+ $position = 'Top';
388
  }
389
+
390
  $result = array();
391
  if ($share_buttons_configuration['fbLikeButton' . $position] == '1' ||
392
  $share_buttons_configuration['fbSendButton' . $position] == '1') {
417
  }
418
  }
419
 
420
+ ?>
templates/settings.php CHANGED
@@ -17,7 +17,7 @@ window.verification_key = '<?php echo $settings['verification_key'] ?>'
17
 
18
  <div id='app_settings'>
19
 
20
- <fieldset class="app" style="line-height:18px;"><?php echo sprintf(__('First time here? Read %sUnderstanding the new Shareaholic for WordPress interface and configuration settings%s', 'shareaholic'), '<a href="https://blog.shareaholic.com/2013/07/understanding-the-new-shareaholic-for-wordpress-interface-and-configuration-settings/" target="_blank">','</a>'); ?>
21
  </fieldset>
22
 
23
  <fieldset class="app"><legend><h2><img src="<?php echo SHAREAHOLIC_ASSET_DIR; ?>/img/sharebuttons@2x.png" height=32 width=32 /> <?php echo sprintf(__('Share Buttons', 'shareaholic')); ?></h2></legend>
17
 
18
  <div id='app_settings'>
19
 
20
+ <fieldset class="app" style="line-height:18px;"><?php echo sprintf(__('First time here? Read %sUnderstanding the new Shareaholic for WordPress interface and configuration settings.%s', 'shareaholic'), '<a href="https://blog.shareaholic.com/2013/07/understanding-the-new-shareaholic-for-wordpress-interface-and-configuration-settings/" target="_blank">','</a>'); ?> <?php echo sprintf(__('If you are upgrading from an earlier version of Shareaholic for WordPress and need help, have a question or have a bug to report, please %slet us know%s.', 'shareaholic'), '<a href="#" onclick="SnapEngage.startLink();">','</a>'); ?>
21
  </fieldset>
22
 
23
  <fieldset class="app"><legend><h2><img src="<?php echo SHAREAHOLIC_ASSET_DIR; ?>/img/sharebuttons@2x.png" height=32 width=32 /> <?php echo sprintf(__('Share Buttons', 'shareaholic')); ?></h2></legend>
utilities.php CHANGED
@@ -385,6 +385,7 @@ class ShareaholicUtilities {
385
  self::update_location_name_ids($result);
386
  } else {
387
  ShareaholicUtilities::load_template('failed_to_create_api_key_modal');
 
388
  }
389
  }
390
 
@@ -413,53 +414,126 @@ class ShareaholicUtilities {
413
  }
414
  }
415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  /**
417
  * Returns the api key or creates a new one.
418
  */
419
  public static function get_or_create_api_key() {
420
- $settings = self::get_settings();
421
- if (isset($settings['api_key']) && !empty($settings['api_key'])) {
422
- return $settings['api_key'];
423
- }
424
- delete_option('shareaholic_settings');
425
-
426
- $verification_key = md5(mt_rand());
427
- $response = ShareaholicCurl::post(Shareaholic::URL . '/publisher_tools/anonymous', array(
428
- 'configuration_publisher' => array(
429
- 'verification_key' => $verification_key,
430
- 'site_name' => get_bloginfo('name'),
431
- 'domain' => self::site_url(),
432
- 'platform' => 'wordpress',
433
- 'shortener' => 'shrlc',
434
- 'recommendations_attributes' => array(
435
- 'locations_attributes' => array(
436
- array('name' => 'post_below_content'),
437
- array('name' => 'page_below_content'),
438
- array('name' => 'index_below_content'),
439
- array('name' => 'category_below_content')
440
- )
441
- ),
442
- 'share_buttons_attributes' => array(
443
- 'locations_attributes' => array(
444
- array('name' => 'post_below_content', 'counter' => 'badge-counter'),
445
- array('name' => 'page_below_content', 'counter' => 'badge-counter'),
446
- array('name' => 'index_below_content', 'counter' => 'badge-counter'),
447
- array('name' => 'category_below_content', 'counter' => 'badge-counter')
 
 
 
448
  )
449
  )
450
- )
451
- ));
452
-
453
- if ($response && preg_match('/20*/', $response['response']['code'])) {
454
- self::update_options(array(
455
- 'api_key' => $response['body']['api_key'],
456
- 'verification_key' => $verification_key,
457
- 'location_name_ids' => $response['body']['location_name_ids']
458
  ));
459
 
460
- ShareaholicUtilities::turn_on_locations($response['body']['location_name_ids']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
  } else {
462
- add_action('admin_notices', array('ShareaholicAdmin', 'failed_to_create_api_key'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  }
464
  }
465
 
@@ -554,6 +628,7 @@ class ShareaholicUtilities {
554
  'users_total' => $wpdb->get_var("SELECT count(ID) FROM $wpdb->users"),
555
  ),
556
  'diagnostics' => array (
 
557
  'wp_version' => get_bloginfo('version'),
558
  'theme' => get_option('template'),
559
  'active_plugins' => get_option('active_plugins', array()),
@@ -597,4 +672,4 @@ class ShareaholicUtilities {
597
  }
598
 
599
  }
600
- ?>
385
  self::update_location_name_ids($result);
386
  } else {
387
  ShareaholicUtilities::load_template('failed_to_create_api_key_modal');
388
+ ShareaholicUtilities::log_bad_response('FailedToCreateApiKey', $response);
389
  }
390
  }
391
 
414
  }
415
  }
416
 
417
+ /**
418
+ * Sets a lock (mutex)
419
+ *
420
+ * @param string $name
421
+ */
422
+ public static function set_lock($name) {
423
+ update_option('shareaholic_' . $name, true);
424
+ }
425
+
426
+ /**
427
+ * Checks if an action is locked.
428
+ *
429
+ * @param string $name
430
+ * @return bool
431
+ */
432
+ public static function is_locked($name) {
433
+ return get_option('shareaholic_' . $name, false);
434
+ }
435
+
436
+ /**
437
+ * Unlocks a mutex
438
+ *
439
+ * @param string $name
440
+ */
441
+ public static function unlock($name) {
442
+ delete_option('shareaholic_' . $name);
443
+ }
444
+
445
+ /**
446
+ * Checks whether a plugin is active
447
+ *
448
+ * @param string $name
449
+ */
450
+ public static function check_for_other_plugin() {
451
+ if (is_plugin_active('sexybookmarks/sexy-bookmarks.php')) {
452
+ deactivate_plugins('sexybookmarks/sexy-bookmarks.php');
453
+ }
454
+ }
455
+
456
  /**
457
  * Returns the api key or creates a new one.
458
  */
459
  public static function get_or_create_api_key() {
460
+ if (!self::is_locked('get_or_create_api_key')) {
461
+ self::set_lock('get_or_create_api_key');
462
+
463
+ $settings = self::get_settings();
464
+ if (isset($settings['api_key']) && !empty($settings['api_key'])) {
465
+ self::unlock('get_or_create_api_key');
466
+ return $settings['api_key'];
467
+ }
468
+ delete_option('shareaholic_settings');
469
+
470
+ $verification_key = md5(mt_rand());
471
+ $response = ShareaholicCurl::post(Shareaholic::URL . '/publisher_tools/anonymous', array(
472
+ 'configuration_publisher' => array(
473
+ 'verification_key' => $verification_key,
474
+ 'site_name' => get_bloginfo('name'),
475
+ 'domain' => self::site_url(),
476
+ 'platform' => 'wordpress',
477
+ 'shortener' => 'shrlc',
478
+ 'recommendations_attributes' => array(
479
+ 'locations_attributes' => array(
480
+ array('name' => 'post_below_content'),
481
+ array('name' => 'page_below_content'),
482
+ )
483
+ ),
484
+ 'share_buttons_attributes' => array(
485
+ 'locations_attributes' => array(
486
+ array('name' => 'post_below_content', 'counter' => 'badge-counter'),
487
+ array('name' => 'page_below_content', 'counter' => 'badge-counter'),
488
+ array('name' => 'index_below_content', 'counter' => 'badge-counter'),
489
+ array('name' => 'category_below_content', 'counter' => 'badge-counter')
490
+ )
491
  )
492
  )
 
 
 
 
 
 
 
 
493
  ));
494
 
495
+ if ($response && preg_match('/20*/', $response['response']['code'])) {
496
+ self::update_options(array(
497
+ 'api_key' => $response['body']['api_key'],
498
+ 'verification_key' => $verification_key,
499
+ 'location_name_ids' => $response['body']['location_name_ids']
500
+ ));
501
+
502
+ if (isset($response['body']['location_name_ids']) && is_array($response['body']['location_name_ids'])) {
503
+ ShareaholicUtilities::turn_on_locations($response['body']['location_name_ids']);
504
+ } else {
505
+ ShareaholicUtilities::log_bad_response('FailedToCreateApiKey', $response);
506
+ }
507
+ } else {
508
+ add_action('admin_notices', array('ShareaholicAdmin', 'failed_to_create_api_key'));
509
+ ShareaholicUtilities::log_bad_response('FailedToCreateApiKey', $response);
510
+ }
511
+
512
+ self::unlock('get_or_create_api_key');
513
  } else {
514
+ usleep(100000);
515
+ self::get_or_create_api_key();
516
+ }
517
+ }
518
+
519
+ /**
520
+ * Log reasons for a failure of a response.
521
+ *
522
+ * Checks if the code is not a 20*, the response body
523
+ * is not an array, and whether the response object
524
+ * was false. Sends the appropriate logging message.
525
+ *
526
+ * @param string $name the name of the event to log
527
+ * @param mixed $response the response object
528
+ */
529
+ public static function log_bad_response($name, $response) {
530
+ if ($response && is_array($response) && !preg_match('/20*/',$response['response']['code'])) {
531
+ ShareaholicUtilities::log_event($name, array('reason' => 'the response was a ' . $response['response']['code']));
532
+ } elseif ($response && !is_array($response)) {
533
+ $thing = preg_replace('/\n/', '', var_export($response, true));
534
+ ShareaholicUtilities::log_event($name, array('reason' => 'the publisher configuration was not an array, it was this ' . $thing));
535
+ } elseif (!$response) {
536
+ ShareaholicUtilities::log_event($name, array('reason' => 'the response was false, meaning that some sort of error occured'));
537
  }
538
  }
539
 
628
  'users_total' => $wpdb->get_var("SELECT count(ID) FROM $wpdb->users"),
629
  ),
630
  'diagnostics' => array (
631
+ 'php_version' => phpversion(),
632
  'wp_version' => get_bloginfo('version'),
633
  'theme' => get_option('template'),
634
  'active_plugins' => get_option('active_plugins', array()),
672
  }
673
 
674
  }
675
+ ?>