﻿/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject = function () { var D = "undefined", r = "object", S = "Shockwave Flash", W = "ShockwaveFlash.ShockwaveFlash", q = "application/x-shockwave-flash", R = "SWFObjectExprInst", x = "onreadystatechange", O = window, j = document, t = navigator, T = false, U = [h], o = [], N = [], I = [], l, Q, E, B, J = false, a = false, n, G, m = true, M = function () { var aa = typeof j.getElementById != D && typeof j.getElementsByTagName != D && typeof j.createElement != D, ah = t.userAgent.toLowerCase(), Y = t.platform.toLowerCase(), ae = Y ? /win/.test(Y) : /win/.test(ah), ac = Y ? /mac/.test(Y) : /mac/.test(ah), af = /webkit/.test(ah) ? parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, X = ! +"\v1", ag = [0, 0, 0], ab = null; if (typeof t.plugins != D && typeof t.plugins[S] == r) { ab = t.plugins[S].description; if (ab && !(typeof t.mimeTypes != D && t.mimeTypes[q] && !t.mimeTypes[q].enabledPlugin)) { T = true; X = false; ab = ab.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); ag[0] = parseInt(ab.replace(/^(.*)\..*$/, "$1"), 10); ag[1] = parseInt(ab.replace(/^.*\.(.*)\s.*$/, "$1"), 10); ag[2] = /[a-zA-Z]/.test(ab) ? parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0 } } else { if (typeof O.ActiveXObject != D) { try { var ad = new ActiveXObject(W); if (ad) { ab = ad.GetVariable("$version"); if (ab) { X = true; ab = ab.split(" ")[1].split(","); ag = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } } catch (Z) { } } } return { w3: aa, pv: ag, wk: af, ie: X, win: ae, mac: ac} } (), k = function () { if (!M.w3) { return } if ((typeof j.readyState != D && j.readyState == "complete") || (typeof j.readyState == D && (j.getElementsByTagName("body")[0] || j.body))) { f() } if (!J) { if (typeof j.addEventListener != D) { j.addEventListener("DOMContentLoaded", f, false) } if (M.ie && M.win) { j.attachEvent(x, function () { if (j.readyState == "complete") { j.detachEvent(x, arguments.callee); f() } }); if (O == top) { (function () { if (J) { return } try { j.documentElement.doScroll("left") } catch (X) { setTimeout(arguments.callee, 0); return } f() })() } } if (M.wk) { (function () { if (J) { return } if (!/loaded|complete/.test(j.readyState)) { setTimeout(arguments.callee, 0); return } f() })() } s(f) } } (); function f() { if (J) { return } try { var Z = j.getElementsByTagName("body")[0].appendChild(C("span")); Z.parentNode.removeChild(Z) } catch (aa) { return } J = true; var X = U.length; for (var Y = 0; Y < X; Y++) { U[Y]() } } function K(X) { if (J) { X() } else { U[U.length] = X } } function s(Y) { if (typeof O.addEventListener != D) { O.addEventListener("load", Y, false) } else { if (typeof j.addEventListener != D) { j.addEventListener("load", Y, false) } else { if (typeof O.attachEvent != D) { i(O, "onload", Y) } else { if (typeof O.onload == "function") { var X = O.onload; O.onload = function () { X(); Y() } } else { O.onload = Y } } } } } function h() { if (T) { V() } else { H() } } function V() { var X = j.getElementsByTagName("body")[0]; var aa = C(r); aa.setAttribute("type", q); var Z = X.appendChild(aa); if (Z) { var Y = 0; (function () { if (typeof Z.GetVariable != D) { var ab = Z.GetVariable("$version"); if (ab) { ab = ab.split(" ")[1].split(","); M.pv = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } else { if (Y < 10) { Y++; setTimeout(arguments.callee, 10); return } } X.removeChild(aa); Z = null; H() })() } else { H() } } function H() { var ag = o.length; if (ag > 0) { for (var af = 0; af < ag; af++) { var Y = o[af].id; var ab = o[af].callbackFn; var aa = { success: false, id: Y }; if (M.pv[0] > 0) { var ae = c(Y); if (ae) { if (F(o[af].swfVersion) && !(M.wk && M.wk < 312)) { w(Y, true); if (ab) { aa.success = true; aa.ref = z(Y); ab(aa) } } else { if (o[af].expressInstall && A()) { var ai = {}; ai.data = o[af].expressInstall; ai.width = ae.getAttribute("width") || "0"; ai.height = ae.getAttribute("height") || "0"; if (ae.getAttribute("class")) { ai.styleclass = ae.getAttribute("class") } if (ae.getAttribute("align")) { ai.align = ae.getAttribute("align") } var ah = {}; var X = ae.getElementsByTagName("param"); var ac = X.length; for (var ad = 0; ad < ac; ad++) { if (X[ad].getAttribute("name").toLowerCase() != "movie") { ah[X[ad].getAttribute("name")] = X[ad].getAttribute("value") } } P(ai, ah, Y, ab) } else { p(ae); if (ab) { ab(aa) } } } } } else { w(Y, true); if (ab) { var Z = z(Y); if (Z && typeof Z.SetVariable != D) { aa.success = true; aa.ref = Z } ab(aa) } } } } } function z(aa) { var X = null; var Y = c(aa); if (Y && Y.nodeName == "OBJECT") { if (typeof Y.SetVariable != D) { X = Y } else { var Z = Y.getElementsByTagName(r)[0]; if (Z) { X = Z } } } return X } function A() { return !a && F("6.0.65") && (M.win || M.mac) && !(M.wk && M.wk < 312) } function P(aa, ab, X, Z) { a = true; E = Z || null; B = { success: false, id: X }; var ae = c(X); if (ae) { if (ae.nodeName == "OBJECT") { l = g(ae); Q = null } else { l = ae; Q = X } aa.id = R; if (typeof aa.width == D || (!/%$/.test(aa.width) && parseInt(aa.width, 10) < 310)) { aa.width = "310" } if (typeof aa.height == D || (!/%$/.test(aa.height) && parseInt(aa.height, 10) < 137)) { aa.height = "137" } j.title = j.title.slice(0, 47) + " - Flash Player Installation"; var ad = M.ie && M.win ? "ActiveX" : "PlugIn", ac = "MMredirectURL=" + O.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + ad + "&MMdoctitle=" + j.title; if (typeof ab.flashvars != D) { ab.flashvars += "&" + ac } else { ab.flashvars = ac } if (M.ie && M.win && ae.readyState != 4) { var Y = C("div"); X += "SWFObjectNew"; Y.setAttribute("id", X); ae.parentNode.insertBefore(Y, ae); ae.style.display = "none"; (function () { if (ae.readyState == 4) { ae.parentNode.removeChild(ae) } else { setTimeout(arguments.callee, 10) } })() } u(aa, ab, X) } } function p(Y) { if (M.ie && M.win && Y.readyState != 4) { var X = C("div"); Y.parentNode.insertBefore(X, Y); X.parentNode.replaceChild(g(Y), X); Y.style.display = "none"; (function () { if (Y.readyState == 4) { Y.parentNode.removeChild(Y) } else { setTimeout(arguments.callee, 10) } })() } else { Y.parentNode.replaceChild(g(Y), Y) } } function g(ab) { var aa = C("div"); if (M.win && M.ie) { aa.innerHTML = ab.innerHTML } else { var Y = ab.getElementsByTagName(r)[0]; if (Y) { var ad = Y.childNodes; if (ad) { var X = ad.length; for (var Z = 0; Z < X; Z++) { if (!(ad[Z].nodeType == 1 && ad[Z].nodeName == "PARAM") && !(ad[Z].nodeType == 8)) { aa.appendChild(ad[Z].cloneNode(true)) } } } } } return aa } function u(ai, ag, Y) { var X, aa = c(Y); if (M.wk && M.wk < 312) { return X } if (aa) { if (typeof ai.id == D) { ai.id = Y } if (M.ie && M.win) { var ah = ""; for (var ae in ai) { if (ai[ae] != Object.prototype[ae]) { if (ae.toLowerCase() == "data") { ag.movie = ai[ae] } else { if (ae.toLowerCase() == "styleclass") { ah += ' class="' + ai[ae] + '"' } else { if (ae.toLowerCase() != "classid") { ah += " " + ae + '="' + ai[ae] + '"' } } } } } var af = ""; for (var ad in ag) { if (ag[ad] != Object.prototype[ad]) { af += '<param name="' + ad + '" value="' + ag[ad] + '" />' } } aa.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + ah + ">" + af + "</object>"; N[N.length] = ai.id; X = c(ai.id) } else { var Z = C(r); Z.setAttribute("type", q); for (var ac in ai) { if (ai[ac] != Object.prototype[ac]) { if (ac.toLowerCase() == "styleclass") { Z.setAttribute("class", ai[ac]) } else { if (ac.toLowerCase() != "classid") { Z.setAttribute(ac, ai[ac]) } } } } for (var ab in ag) { if (ag[ab] != Object.prototype[ab] && ab.toLowerCase() != "movie") { e(Z, ab, ag[ab]) } } aa.parentNode.replaceChild(Z, aa); X = Z } } return X } function e(Z, X, Y) { var aa = C("param"); aa.setAttribute("name", X); aa.setAttribute("value", Y); Z.appendChild(aa) } function y(Y) { var X = c(Y); if (X && X.nodeName == "OBJECT") { if (M.ie && M.win) { X.style.display = "none"; (function () { if (X.readyState == 4) { b(Y) } else { setTimeout(arguments.callee, 10) } })() } else { X.parentNode.removeChild(X) } } } function b(Z) { var Y = c(Z); if (Y) { for (var X in Y) { if (typeof Y[X] == "function") { Y[X] = null } } Y.parentNode.removeChild(Y) } } function c(Z) { var X = null; try { X = j.getElementById(Z) } catch (Y) { } return X } function C(X) { return j.createElement(X) } function i(Z, X, Y) { Z.attachEvent(X, Y); I[I.length] = [Z, X, Y] } function F(Z) { var Y = M.pv, X = Z.split("."); X[0] = parseInt(X[0], 10); X[1] = parseInt(X[1], 10) || 0; X[2] = parseInt(X[2], 10) || 0; return (Y[0] > X[0] || (Y[0] == X[0] && Y[1] > X[1]) || (Y[0] == X[0] && Y[1] == X[1] && Y[2] >= X[2])) ? true : false } function v(ac, Y, ad, ab) { if (M.ie && M.mac) { return } var aa = j.getElementsByTagName("head")[0]; if (!aa) { return } var X = (ad && typeof ad == "string") ? ad : "screen"; if (ab) { n = null; G = null } if (!n || G != X) { var Z = C("style"); Z.setAttribute("type", "text/css"); Z.setAttribute("media", X); n = aa.appendChild(Z); if (M.ie && M.win && typeof j.styleSheets != D && j.styleSheets.length > 0) { n = j.styleSheets[j.styleSheets.length - 1] } G = X } if (M.ie && M.win) { if (n && typeof n.addRule == r) { n.addRule(ac, Y) } } else { if (n && typeof j.createTextNode != D) { n.appendChild(j.createTextNode(ac + " {" + Y + "}")) } } } function w(Z, X) { if (!m) { return } var Y = X ? "visible" : "hidden"; if (J && c(Z)) { c(Z).style.visibility = Y } else { v("#" + Z, "visibility:" + Y) } } function L(Y) { var Z = /[\\\"<>\.;]/; var X = Z.exec(Y) != null; return X && typeof encodeURIComponent != D ? encodeURIComponent(Y) : Y } var d = function () { if (M.ie && M.win) { window.attachEvent("onunload", function () { var ac = I.length; for (var ab = 0; ab < ac; ab++) { I[ab][0].detachEvent(I[ab][1], I[ab][2]) } var Z = N.length; for (var aa = 0; aa < Z; aa++) { y(N[aa]) } for (var Y in M) { M[Y] = null } M = null; for (var X in swfobject) { swfobject[X] = null } swfobject = null }) } } (); return { registerObject: function (ab, X, aa, Z) { if (M.w3 && ab && X) { var Y = {}; Y.id = ab; Y.swfVersion = X; Y.expressInstall = aa; Y.callbackFn = Z; o[o.length] = Y; w(ab, false) } else { if (Z) { Z({ success: false, id: ab }) } } }, getObjectById: function (X) { if (M.w3) { return z(X) } }, embedSWF: function (ab, ah, ae, ag, Y, aa, Z, ad, af, ac) { var X = { success: false, id: ah }; if (M.w3 && !(M.wk && M.wk < 312) && ab && ah && ae && ag && Y) { w(ah, false); K(function () { ae += ""; ag += ""; var aj = {}; if (af && typeof af === r) { for (var al in af) { aj[al] = af[al] } } aj.data = ab; aj.width = ae; aj.height = ag; var am = {}; if (ad && typeof ad === r) { for (var ak in ad) { am[ak] = ad[ak] } } if (Z && typeof Z === r) { for (var ai in Z) { if (typeof am.flashvars != D) { am.flashvars += "&" + ai + "=" + Z[ai] } else { am.flashvars = ai + "=" + Z[ai] } } } if (F(Y)) { var an = u(aj, am, ah); if (aj.id == ah) { w(ah, true) } X.success = true; X.ref = an } else { if (aa && A()) { aj.data = aa; P(aj, am, ah, ac); return } else { w(ah, true) } } if (ac) { ac(X) } }) } else { if (ac) { ac(X) } } }, switchOffAutoHideShow: function () { m = false }, ua: M, getFlashPlayerVersion: function () { return { major: M.pv[0], minor: M.pv[1], release: M.pv[2]} }, hasFlashPlayerVersion: F, createSWF: function (Z, Y, X) { if (M.w3) { return u(Z, Y, X) } else { return undefined } }, showExpressInstall: function (Z, aa, X, Y) { if (M.w3 && A()) { P(Z, aa, X, Y) } }, removeSWF: function (X) { if (M.w3) { y(X) } }, createCSS: function (aa, Z, Y, X) { if (M.w3) { v(aa, Z, Y, X) } }, addDomLoadEvent: K, addLoadEvent: s, getQueryParamValue: function (aa) { var Z = j.location.search || j.location.hash; if (Z) { if (/\?/.test(Z)) { Z = Z.split("?")[1] } if (aa == null) { return L(Z) } var Y = Z.split("&"); for (var X = 0; X < Y.length; X++) { if (Y[X].substring(0, Y[X].indexOf("=")) == aa) { return L(Y[X].substring((Y[X].indexOf("=") + 1))) } } } return "" }, expressInstallCallback: function () { if (a) { var X = c(R); if (X && l) { X.parentNode.replaceChild(l, X); if (Q) { w(Q, true); if (M.ie && M.win) { l.style.display = "block" } } if (E) { E(B) } } a = false } } } } (); if (typeof SkypeDetection == "undefined") { SkypeDetection = function () { var _detectionSwfUrl = "http://api.skype.com/detection/detection_as3.swf"; var _detectionSwfID = "skypedetectionswf"; var _containerID = "skypedetectioncontainer"; var _verbose = false; var _flashCreated = false; var _initalizing = false; var _successCallbacks = []; var _failureCallbacks = []; var _failureTimeout = 5000; var createContainer = function () { var container = document.createElement("div"); container.id = _containerID; container.style.position = "absolute"; container.style.width = "5px"; container.style.height = "5px"; container.style.top = "0px"; container.style.left = "-10px"; var div = document.body && document.body.appendChild(container); if (!div) { log("Seems like container creating failed."); return; } window.setTimeout(createFlash, 10); }; var createFlash = function () { if (typeof YAHOO != "undefined" && YAHOO.widget && YAHOO.widget.SWF) { log("Using YUI SWF module to embed Flash content"); var yuiswf = new YAHOO.widget.SWF(_containerID, _detectionSwfUrl, { version: 9, fixedAttributes: { allowScriptAccess: "always", width: 5, height: 5} }); _flashCreated = true; _detectionSwfID = yuiswf._id; } else { if (window.jQuery && $ && $.flash && typeof $.flash.create == "function") { log("Using jquery-swfobject to embed Flash content"); $("#" + _containerID).flash({ swf: _detectionSwfUrl, id: _detectionSwfID, width: 5, height: 5, hasVersion: 9, params: { allowscriptaccess: "always"} }); _flashCreated = true; } else { if (window.jQuery && $ && $.fn.flash) { log("Using jquery-flash to embed Flash content"); $("#" + _containerID).flash({ id: _detectionSwfID, src: _detectionSwfUrl, width: 5, height: 5, allowscriptaccess: "always", version: "9.0" }); _flashCreated = true; } else { if (typeof swfobject != "undefined" && swfobject.embedSWF) { log("Using SWFObject 2.x to embed Flash content"); swfobject.embedSWF(_detectionSwfUrl, _containerID, 5, 5, "9.0", null, null, { allowScriptAccess: "always" }, { id: _detectionSwfID }, flashStatusCallback); } else { if (typeof deconcept != "undefined" && deconcept.SWFObject) { log("Using SWFObject 1.5 to embed Flash content"); var so = new SWFObject(_detectionSwfUrl, _detectionSwfID, 5, 5, "9.0"); so.addParam("allowScriptAccess", "always"); so.write(_containerID); _flashCreated = true; } else { log("No supported way of embedding Flash was found"); detectionFail(); return; } } } } } window.setTimeout(detectionFail, _failureTimeout); }; var flashStatusCallback = function (e) { if (e.success == false) { log("Flash embedding via SWFObject embedding failed"); detectionFail(); } else { if (e.success == true) { log("SWFObject callback indicated success"); _flashCreated = true; } } }; var detectionFail = function () { if (!SkypeDetection.ready) { log("Detection seems to have failed, calling failure callbacks"); for (var i = 0; i < _failureCallbacks.length; i++) { _failureCallbacks[i](); } } }; var detectionSuccess = function () { log("Detection succeeded, calling success callbacks"); for (var i = 0; i < _successCallbacks.length; i++) { _successCallbacks[i](); } }; var log = function (msg) { if (_verbose && typeof console != "undefined" && console.log) { console.log("[SkypeDetection] " + msg); } }; var registerCallback = function (stack, fn) { for (var i = 0; i < stack.length; i++) { if (stack[i] === fn) { return; } } stack.push(fn); }; var readDetectionData = function () { var swf = document.getElementById(_detectionSwfID); try { var data = swf.getData(); } catch (e) { log("Getting data with swf.getData() failed, likely reason is browser issue with ExternalInterface setup"); detectionFail(); return; } SkypeDetection.installed = swf.isInstalled(); log("Reading detection data, Skype is " + (SkypeDetection.installed ? "installed" : "not installed")); if (SkypeDetection.installed) { SkypeDetection.version = data.version; SkypeDetection.platform = data.platform; SkypeDetection.language = data.language; log("Using Skype version '" + data.version + "' on '" + data.platform + "' platform in language '" + data.language + "'"); if (swf.getSharedObjectData) { try { data = swf.getSharedObjectData(); } catch (e) { log("Could not read swf.getSharedObjectData()"); } if (data.ui_timezone) { SkypeDetection.internal.profileTimezone = data.ui_timezone; } if (data.os_timezone) { SkypeDetection.internal.osTimezone = data.os_timezone; } else { SkypeDetection.internal.osTimezone = parseInt(new Date().getTimezoneOffset() / 60); } if (data.ui_installdate) { if (typeof data.ui_installdate == "string") { data.ui_installdate = parseInt(data.ui_installdate); } if (isNaN(data.ui_installdate) || data.ui_installdate == 0) { SkypeDetection.internal.profileAge = -1; } else { SkypeDetection.internal.profileAge = Math.floor(((new Date()).getTime() / 1000 - data.ui_installdate) / 60 / 60 / 24); } } } if (swf.getSessionData) { try { data = swf.getSessionData(); } catch (e) { log("Could not read swf.getSessionData()"); } if (data.username) { SkypeDetection.internal.username = data.username; var timeNow = (new Date()).getTime() / 1000; if (typeof data.expires != "undefined" && data.expires < timeNow) { SkypeDetection.internal.username = ""; try { swf.clearSessionData(); } catch (e) { } } } } } detectionSuccess(); }; return { setVerbose: function (verbose) { _verbose = verbose; log("Enabled verbose mode"); }, setReady: function () { log("Flash detection code indicated to JS that it is ready"); SkypeDetection.ready = true; window.setTimeout(readDetectionData, 10); }, detect: function (successFn, failureFn) { successFn && registerCallback(_successCallbacks, successFn); failureFn && registerCallback(_failureCallbacks, failureFn); if (SkypeDetection.ready) { log("Detection has already been run before"); window.setTimeout(SkypeDetection.installed ? detectionSuccess : detectionFail, 10); } else { if (!_flashCreated && !_initalizing) { _initalizing = true; log("Creating detection Flash helper"); window.setTimeout(createContainer, 10); } else { log("Unhandled case, marked not ready and flash somehow created?"); } } }, isQualifiedVersion: function (reqver) { if (!SkypeDetection.ready || !SkypeDetection.installed) { return false; } var ver = SkypeDetection.version; log("Comparing detected version " + ver + " to required version " + reqver); ver = ver.split("."); reqver = reqver.split("."); try { if (parseInt(ver[0]) > parseInt(reqver[0]) || (parseInt(ver[0]) == parseInt(reqver[0]) && parseInt(ver[1]) > parseInt(reqver[1])) || (parseInt(ver[0]) == parseInt(reqver[0]) && parseInt(ver[1]) == parseInt(reqver[1]) && parseInt(ver[3]) >= parseInt(reqver[3]))) { return true; } } catch (e) { } return false; }, ready: false, version: null, platform: null, language: null, installed: null, internal: { username: null, profileTimezone: null, osTimezone: null, profileAge: null} }; } (); } /*
 * This is the legacy public Skype detection file converted to use new Flash
 * based detection library. It is mainly used for old Skype web buttons, though
 * some 3rd party sites have made use of it as well. This file tries to expose
 * the same API as previous implementation to not break 3rd party sites.
 *
 * Please use detection.js (SkypeDetection object) based library instead of
 * this in all new site developments.
 */
(function () {
  var _verbose = false; var _hasSkype = false; var _currentURI; var _notice; var _template = '<div style="width: 540px; height: 305px; background: white url(http://download.skype.com/share/skypebuttons/oops/bg.png) top left no-repeat; position: relative; font: 14px Verdana, sans-serif;"><span style="position: absolute; left: 40px; top: 44px; font: 24px/24px Verdana, sans-serif; color: white; font-weight: 500;">Hello!</span><span style="position: absolute; left: 40px; top: 90px; width: 230px; font: 14px/18px Verdana, sans-serif; color: white;">Skype buttons require that you have the latest version of Skype installed. Don&rsquo;t worry, you only need to do this once.</span><span style="position: absolute; left: 290px; top: 90px; width: 220px; font: 14px/18px Verdana, sans-serif; color: white;">Skype is a little piece of software that lets you make free calls over the internet.<br /><a href="http://www.skype.com/go/features" style="color: white">Learn more about Skype</a></span><span style="position: absolute; left: 40px; top: 200px; font: 14px/18px Verdana, sans-serif; color: black; width: 460px;">Skype is free, easy and quick to download and install.<br /> It works with Windows, Mac OS X, Linux and your mobile device.</span><form action="http://www.skype.com/go/download" method="get" target="_blank" style="position: absolute; margin: 0; padding: 0; left: 40px; top: 255px; width: 460px;"><input type="submit" value="Download Skype" style="float: left;" /><input type="button" name="haveskype" value="Already have Skype" style="float: right;" /></form></div></div>'; var log = function (msg) { if (_verbose && console && console.log) { console.log("[skypeCheck.js] " + msg); } }; if (typeof SkypeDetection != "object" || typeof swfobject != "object" || !swfobject.addDomLoadEvent) { log("Needed dependencies (SkypeDetection, SWFObject 2.x) were not found! Not checking for Skype"); return; } var addListener = function (obj, ev, fn) { if (obj && typeof obj.addEventListener != "undefined") { obj.addEventListener(ev, fn, false); } else { if (obj && typeof obj.attachEvent != "undefined") { obj.attachEvent("on" + ev, fn); } else { log("No supported way to add event listener was found"); } } };
  var addLinkChecks = function () { var links = document.getElementsByTagName("A"); var l; for (var i = 0; i < links.length; i++) { l = links[i]; if (l.href && l.href.indexOf("skype:") == 0) { addListener(l, "click", linkClickCheck); continue; } } }; var linkClickCheck = function (e) { if (!e) { var e = window.event; } var target = e.target || e.srcElement || null; if (target) { while (target.tagName != "A" && target.parentElement) { target = target.parentElement; } } if (SkypeDetection.installed || _hasSkype) { log("Skype was detected, passing link through to Skype"); return; } else { log("Skype seems not to be installed"); target && target.href && (_currentURI = target.href); showNotice(); e.preventDefault && e.preventDefault(); e.stopPropagation && e.stopPropagation(); e.returnValue && (e.returnValue = false); return false; } }; 
  var showNotice = function () {
    var clientWidth = 0, clientHeight = 0; if (!_notice) {
      if (document && document.documentElement && document.documentElement.clientWidth) { clientWidth = document.documentElement.clientWidth; clientHeight = document.documentElement.clientHeight; } else { if (document && document.body && document.body.clientWidth) { clientWidth = document.body.clientWidth; clientHeight = document.body.clientHeight; } } 
      log("Creating notice element"); _notice = document.createElement("DIV"); _notice.id = "skypeCheckNotice"; _notice.style.position = "absolute"; _notice.style.zIndex = "10000";
      /*@cc_on
      @if (@_jscript_version == 5.6)
      _notice.style.position = "absolute";
      @end
      @*/
      _notice.style.top = Math.max(0, Math.floor(clientHeight / 2 - 152)) + "px"; _notice.style.left = Math.max(0, Math.floor(clientWidth / 2 - 270)) + "px"; _notice.innerHTML = _template; document.body.appendChild(_notice); 
      var f = _notice.getElementsByTagName("input"); (f.length == 2) && addListener(f[1], "click", hasSkype); f.length && addListener(f[0].parentElement, "submit", onDownloading) && f[0].focus();
    } log("Showing notice element"); _notice.style.visibility = "visible";
  };
  var hasSkype = function () { log("User indicated having Skype, hiding notice, opening Skype URI " + _currentURI); _hasSkype = true; _notice.style.visibility = "hidden"; _currentURI && location.replace(_currentURI); _currentURI = null; };
  var onDownloading = function () { var i = _notice.getElementsByTagName("input"); if (i.length > 1) { i[1].style["float"] = ""; i[1].value = "I have Skype installed now"; i[0].style.display = "none"; } }; 
  var skypeCheck = function () { return SkypeDetection.ready && SkypeDetection.installed; }; swfobject.addDomLoadEvent(addLinkChecks); swfobject.addDomLoadEvent(SkypeDetection.detect); window.skypeCheck = skypeCheck;
})();
