text: /*
   * 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 += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'
  					+ e
  					+ 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'
  					+ d
  					+ '" height="'
  					+ a
  					+ '" id="'
  					+ this.movieId
  					+ '" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'
  					+ ZeroClipboard.moviePath
  					+ '" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'
  					+ b
  					+ '"/><param name="wmode" value="transparent"/></object>'
  		} else {
  			c += '<embed id="'
  					+ this.movieId
  					+ '" src="'
  					+ ZeroClipboard.moviePath
  					+ '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'
  					+ d
  					+ '" height="'
  					+ a
  					+ '" name="'
  					+ this.movieId
  					+ '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'
  					+ b + '" wmode="transparent" />'
  		}
  		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)
  						}
  					}
  				}
  			}
  		}
  	}
  };