/*
* zClip :: jQuery ZeroClipboard v1.1.1
* http://steamdev.com/zclip
*
* Copyright 2011, SteamDev
* Released under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*
* Date: Wed Jun 01, 2011
*/
(function (a) {
a.fn.zclip = function (c) {
if (typeof c == "object" && !c.length) {
var b = a.extend({path:"ZeroClipboard.swf", copy:null, beforeCopy:null, afterCopy:null, clickAfter:true, setHandCursor:true, setCSSEffects:true}, c);
return this.each(function () {
var e = a(this);
if (e.is(":visible") && (typeof b.copy == "string" || a.isFunction(b.copy))) {
ZeroClipboard.setMoviePath(b.path);
var d = new ZeroClipboard.Client();
if (a.isFunction(b.copy)) {
e.bind("zClip_copy", b.copy);
}
if (a.isFunction(b.beforeCopy)) {
e.bind("zClip_beforeCopy", b.beforeCopy);
}
if (a.isFunction(b.afterCopy)) {
e.bind("zClip_afterCopy", b.afterCopy);
}
d.setHandCursor(b.setHandCursor);
d.setCSSEffects(b.setCSSEffects);
d.addEventListener("mouseOver", function (f) {
e.trigger("mouseenter");
});
d.addEventListener("mouseOut", function (f) {
e.trigger("mouseleave");
});
d.addEventListener("mouseDown", function (f) {
e.trigger("mousedown");
if (!a.isFunction(b.copy)) {
d.setText(b.copy);
} else {
d.setText(e.triggerHandler("zClip_copy"));
}
if (a.isFunction(b.beforeCopy)) {
e.trigger("zClip_beforeCopy");
}
});
d.addEventListener("complete", function (f, g) {
if (a.isFunction(b.afterCopy)) {
e.trigger("zClip_afterCopy");
} else {
if (g.length > 500) {
g = g.substr(0, 500) + "...\n\n(" + (g.length - 500) + " characters not shown)";
}
e.removeClass("hover");
alert("Copied text to clipboard:\n\n " + g);
}
if (b.clickAfter) {
e.trigger("click");
}
});
d.glue(e[0], e.parent()[0]);
a(window).bind("load resize", function () {
d.reposition();
});
}
});
} else {
if (typeof c == "string") {
return this.each(function () {
var f = a(this);
c = c.toLowerCase();
var e = f.data("zclipId");
var d = a("#" + e + ".zclip");
if (c == "remove") {
d.remove();
f.removeClass("active hover");
} else {
if (c == "hide") {
d.hide();
f.removeClass("active hover");
} else {
if (c == "show") {
d.show();
}
}
}
});
}
}
};
})(jQuery);
var ZeroClipboard = {version:"1.0.7", clients:{}, moviePath:"ZeroClipboard.swf", nextId:1, $:function (a) {
if (typeof (a) == "string") {
a = document.getElementById(a);
}
if (!a.addClass) {
a.hide = function () {
this.style.display = "none";
};
a.show = function () {
this.style.display = "";
};
a.addClass = function (b) {
this.removeClass(b);
this.className += " " + b;
};
a.removeClass = function (d) {
var e = this.className.split(/\s+/);
var b = -1;
for (var c = 0; c < e.length; c++) {
if (e[c] == d) {
b = c;
c = e.length;
}
}
if (b > -1) {
e.splice(b, 1);
this.className = e.join(" ");
}
return this;
};
a.hasClass = function (b) {
return !!this.className.match(new RegExp("\\s*" + b + "\\s*"));
};
}
return a;
}, setMoviePath:function (a) {
this.moviePath = a;
}, dispatch:function (d, b, c) {
var a = this.clients[d];
if (a) {
a.receiveEvent(b, c);
}
}, register:function (b, a) {
this.clients[b] = a;
}, getDOMObjectPosition:function (c, a) {
var b = {left:0, top:0, width:c.width ? c.width : c.offsetWidth, height:c.height ? c.height : c.offsetHeight};
if (c && (c != a)) {
b.left += c.offsetLeft;
b.top += c.offsetTop;
}
return b;
}, Client:function (a) {
this.handlers = {};
this.id = ZeroClipboard.nextId++;
this.movieId = "ZeroClipboardMovie_" + this.id;
ZeroClipboard.register(this.id, this);
if (a) {
this.glue(a);
}
}};
ZeroClipboard.Client.prototype = {id:0, ready:false, movie:null, clipText:"", handCursorEnabled:true, cssEffects:true, handlers:null, glue:function (d, b, e) {
this.domElement = ZeroClipboard.$(d);
var f = 99;
if (this.domElement.style.zIndex) {
f = parseInt(this.domElement.style.zIndex, 10) + 1;
}
if (typeof (b) == "string") {
b = ZeroClipboard.$(b);
} else {
if (typeof (b) == "undefined") {
b = document.getElementsByTagName("body")[0];
}
}
var c = ZeroClipboard.getDOMObjectPosition(this.domElement, b);
this.div = document.createElement("div");
this.div.className = "zclip";
this.div.id = "zclip-" + this.movieId;
$(this.domElement).data("zclipId", "zclip-" + this.movieId);
var a = this.div.style;
a.position = "absolute";
a.left = "" + c.left + "px";
a.top = "" + c.top + "px";
a.width = "" + c.width + "px";
a.height = "" + c.height + "px";
a.zIndex = f;
if (typeof (e) == "object") {
for (addedStyle in e) {
a[addedStyle] = e[addedStyle];
}
}
b.appendChild(this.div);
this.div.innerHTML = this.getHTML(c.width, c.height);
}, getHTML:function (d, a) {
var c = "";
var b = "id=" + this.id + "&width=" + d + "&height=" + a;
if (navigator.userAgent.match(/MSIE/)) {
var e = location.href.match(/^https/i) ? "https://" : "http://";
c += "";
} else {
c += "";
}
return c;
}, hide:function () {
if (this.div) {
this.div.style.left = "-2000px";
}
}, show:function () {
this.reposition();
}, destroy:function () {
if (this.domElement && this.div) {
this.hide();
this.div.innerHTML = "";
var a = document.getElementsByTagName("body")[0];
try {
a.removeChild(this.div);
}
catch (b) {
}
this.domElement = null;
this.div = null;
}
}, reposition:function (c) {
if (c) {
this.domElement = ZeroClipboard.$(c);
if (!this.domElement) {
this.hide();
}
}
if (this.domElement && this.div) {
var b = ZeroClipboard.getDOMObjectPosition(this.domElement);
var a = this.div.style;
a.left = "" + b.left + "px";
a.top = "" + b.top + "px";
}
}, setText:function (a) {
this.clipText = a;
if (this.ready) {
this.movie.setText(a);
}
}, addEventListener:function (a, b) {
a = a.toString().toLowerCase().replace(/^on/, "");
if (!this.handlers[a]) {
this.handlers[a] = [];
}
this.handlers[a].push(b);
}, setHandCursor:function (a) {
this.handCursorEnabled = a;
if (this.ready) {
this.movie.setHandCursor(a);
}
}, setCSSEffects:function (a) {
this.cssEffects = !!a;
}, receiveEvent:function (d, f) {
d = d.toString().toLowerCase().replace(/^on/, "");
switch (d) {
case "load":
this.movie = document.getElementById(this.movieId);
if (!this.movie) {
var c = this;
setTimeout(function () {
c.receiveEvent("load", null);
}, 1);
return;
}
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
var c = this;
setTimeout(function () {
c.receiveEvent("load", null);
}, 100);
this.ready = true;
return;
}
this.ready = true;
try {
this.movie.setText(this.clipText);
}
catch (h) {
}
try {
this.movie.setHandCursor(this.handCursorEnabled);
}
catch (h) {
}
break;
case "mouseover":
if (this.domElement && this.cssEffects) {
this.domElement.addClass("hover");
if (this.recoverActive) {
this.domElement.addClass("active");
}
}
break;
case "mouseout":
if (this.domElement && this.cssEffects) {
this.recoverActive = false;
if (this.domElement.hasClass("active")) {
this.domElement.removeClass("active");
this.recoverActive = true;
}
this.domElement.removeClass("hover");
}
break;
case "mousedown":
if (this.domElement && this.cssEffects) {
this.domElement.addClass("active");
}
break;
case "mouseup":
if (this.domElement && this.cssEffects) {
this.domElement.removeClass("active");
this.recoverActive = false;
}
break;
}
if (this.handlers[d]) {
for (var b = 0, a = this.handlers[d].length; b < a; b++) {
var g = this.handlers[d][b];
if (typeof (g) == "function") {
g(this, f);
} else {
if ((typeof (g) == "object") && (g.length == 2)) {
g[0][g[1]](this, f);
} else {
if (typeof (g) == "string") {
window[g](this, f);
}
}
}
}
}
}};