/* * 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); } } } } } }};