﻿/*
 * Software Copyright Notice

Copyright © 2004-2009 MXit Lifestyle Development Company (Pty) Ltd.
All rights are reserved

Copyright exists in this computer program and it is protected by
copyright law and by international treaties. The unauthorised use,
reproduction or distribution of this computer program constitute
acts of copyright infringement and may result in civil and criminal
penalties. Any infringement will be prosecuted to the maximum extent
possible.

MXit Lifestyle Development Company (Pty) Ltd chooses the following
address for delivery of all legal proceedings and notices:
  Riesling House,
  Brandwacht Office Park,
  Trumali Road,
  Stellenbosch,
  7600,
  South Africa.

The following computer programs, or portions thereof, are used in
this computer program under licenses obtained from third parties.
You are obliged to familiarise yourself with the contents of those
licenses.
 */
// [adt] Good luck maintaining this.
//       Handy hint: single-letter variable names don't contribute to readability.
//       Also, function comments would go a long way in making this maintainable.
var gs_SilverlightDisabledBackground = "";
var gs_ContainerHeight;
var gs_customImages;
var gs_ContainerWidth;
var gs_XapPath;
var gs_Background;
var ga_Params;
var go_MXitSilverlightControl;

//CONSTANTS
var MXIT_DISABLEDBACKGROUNDIMAGENAME = "mxit_bg.jpg";
var gs_MXitSilverlightControlHost = "mxit_silverlightControlHost";
var gs_MXitRestPanel = "mxit_RestPanel";
var gs_UniqueId = "evo_web_widget";
var gsCulture = "en";

function Loadsl(){
if (!window.Silverlight)
window.Silverlight = {};
Silverlight._silverlightCount = 0;
Silverlight.__onSilverlightInstalledCalled = false;
Silverlight.fwlinkRoot = "http://go2.microsoft.com/fwlink/?LinkID="; 
Silverlight.__installationEventFired = false;
Silverlight.onGetSilverlight = null;
Silverlight.onSilverlightInstalled = function() { window.location.reload(false) };
Silverlight.isInstalled = function(b) {
            
    if (b == undefined) b = null;
    var a = false, m = null;
    try {
        var i = null, j = false;
        if (window.ActiveXObject) try {
            
            i = new ActiveXObject("AgControl.AgControl");
            if (b === null) a = true; else if (i.IsVersionSupported(b)) a = true; i = null
        }
        catch (l) {
            j = true
        }
        else j = true;
        if (j) {
            var k = navigator.plugins["Silverlight Plug-In"];
            if (k) if (b === null) a = true;
            else {
                var h = k.description;
                if (h === "1.0.30226.2") h = "2.0.30226.2";
                var c = h.split(".");
                while (c.length > 3) c.pop();
                while (c.length < 4) c.push(0);
                var e = b.split(".");
                while (e.length > 4) e.pop();
                var d, g, f = 0;
                do {
                    d = parseInt(e[f]);
                    g = parseInt(c[f]);
                    f++
                }
                while (f < e.length && d === g);
                if (d <= g && !isNaN(d)) a = true
            }
        }
    }
    catch (l) { a = false }
    return a
};

Silverlight.WaitForInstallCompletion = function() {
if (!Silverlight.isBrowserRestartRequired && Silverlight.onSilverlightInstalled) {
    try { navigator.plugins.refresh() }
    catch (a) { }
    if (Silverlight.isInstalled(null) && !Silverlight.__onSilverlightInstalledCalled) {
        Silverlight.onSilverlightInstalled();
        Silverlight.__onSilverlightInstalledCalled = true
    }
    else setTimeout(Silverlight.WaitForInstallCompletion, 3e3)
}
};

Silverlight.__startup = function() {
    navigator.plugins.refresh();
    Silverlight.isBrowserRestartRequired = Silverlight.isInstalled(null);
    if (!Silverlight.isBrowserRestartRequired) {
        Silverlight.WaitForInstallCompletion();
        if (!Silverlight.__installationEventFired) {
            Silverlight.onInstallRequired();
            Silverlight.__installationEventFired = true
        }
    }
    else
        if (window.navigator.mimeTypes) {
            var b = navigator.mimeTypes["application/x-silverlight-2"], c = navigator.mimeTypes["application/x-silverlight-2-b2"], d = navigator.mimeTypes["application/x-silverlight-2-b1"], a = d;
            if (c) a = c; if (!b && (d || c)) {
            if (!Silverlight.__installationEventFired) {
                Silverlight.onUpgradeRequired();
                Silverlight.__installationEventFired = true
            }
        }
        else if (b && a)
            if (b.enabledPlugin && a.enabledPlugin)
                if (b.enabledPlugin.description != a.enabledPlugin.description)
                    if (!Silverlight.__installationEventFired) {
                        Silverlight.onRestartRequired();
                        Silverlight.__installationEventFired = true
                    }
                }
                if (!Silverlight.disableAutoStartup)
                    if (window.removeEventListener) window.removeEventListener("load", Silverlight.__startup, false);
                    else window.detachEvent("onload", Silverlight.__startup)
                };
                if (!Silverlight.disableAutoStartup)
                    if (window.addEventListener) window.addEventListener("load", Silverlight.__startup, false);
                    else window.attachEvent("onload", Silverlight.__startup);
                    Silverlight.createObject = function(m, f, e, k, l, h, j) {
                        var d = {}, a = k, c = l; d.version = a.version; a.source = m;
                        d.alt = a.alt;
                        if (h) a.initParams = h;
                        if (a.isWindowless && !a.windowless) a.windowless = a.isWindowless;
                        if (a.framerate && !a.maxFramerate) a.maxFramerate = a.framerate;
                        if (e && !a.id) a.id = e;
                        delete a.ignoreBrowserVer;
                        delete a.inplaceInstallPrompt;
                        delete a.version;
                        delete a.isWindowless;
                        delete a.framerate;
                        delete a.data;
                        delete a.src;
                        delete a.alt;

                        if (Silverlight.isInstalled(d.version)) {

                            for (var b in c) if (c[b]) {

                                if (b == "onLoad" && typeof c[b] == "function" && c[b].length != 1) {

                                    var i = c[b]; c[b] = function(a) {
                                        return i(document.getElementById(e), j, a)
                                    }
                                }
                                var g = Silverlight.__getHandlerName(c[b]);
                                
                                if (g != null) {
                                    a[b] = g; c[b] = null
                                }
                                else throw "typeof events." + b + " must be 'function' or 'string'";
                            }
                            slPluginHTML = Silverlight.buildHTML(a)
                        }
                        else
                            slPluginHTML = Silverlight.buildPromptHTML(d);
                        if (f) f.innerHTML = slPluginHTML;
                        else return slPluginHTML

                    };


                    Silverlight.buildHTML = function(a) {
                        var b = [];
                        b.push('<object type="application/x-silverlight" data="data:application/x-silverlight,"');
                        if (a.id != null) b.push(' id="' + Silverlight.HtmlAttributeEncode(a.id) + '"');
                        if (a.width != null) b.push(' width="' + a.width + '"');
                        if (a.height != null) b.push(' height="' + a.height + '"');
                        b.push(">");
                        b.push('<param name="uiculture" value="' + gsCulture + '"/>');
                        
                        delete a.id;
                        delete a.width;
                        delete a.height;
                        for (var c in a)
                            if (a[c]) b.push('<param name="' + Silverlight.HtmlAttributeEncode(c) + '" value="' + Silverlight.HtmlAttributeEncode(a[c]) + '" />');
                        st = "<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>";

                        st = st.replace("{1}", c);
                        b.push();
                        b.push("</object>");
                        return b.join("")
                    }; 
         
         Silverlight.createObjectEx = function(b) {
            var a = b, c = Silverlight.createObject(a.source, a.parentElement, a.id, a.properties, a.events, a.initParams, a.context);


            if (a.parentElement == null)
                return c
            };
         
         Silverlight.buildPromptHTML = function(b) {
          var a = "", d = Silverlight.fwlinkRoot, c = b.version;
          if (b.alt) a = b.alt;

          else {
          
              if (!c) c = ""; 
              a = "<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>";
              a = a.replace("{1}", c);
              if (gs_customImages == "") {
                  a = a.replace("{2}", d + "108181");
              } else {
              
                  a = a.replace("{2}", (gs_customImages + "mxit_bg.gif"));
              }

          } 
           return a
      };
      Silverlight.getSilverlight = function(e) {
              if (Silverlight.onGetSilverlight)
                  Silverlight.onGetSilverlight();
              var b = "", a = String(e).split(".");
              if (a.length > 1) {
                  var c = parseInt(a[0]);
                  if (isNaN(c) || c < 2) b = "1.0"; else b = a[0] + "." + a[1]
              }
              var d = "";
              if (b.match(/^\d+\056\d+$/)) d = "&v=" + b; Silverlight.followFWLink("149156" + d)
          };
          Silverlight.followFWLink = function(a) {
          top.location = Silverlight.fwlinkRoot + String(a)
      };
      Silverlight.HtmlAttributeEncode = function(c) {
      var a, b = "";
      if (c == null) return null;
      for (var d = 0; d < c.length; d++) {
          a = c.charCodeAt(d);
          if (a > 96 && a < 123 || a > 64 && a < 91 || a > 43 && a < 58 && a != 47 || a == 95) b = b + String.fromCharCode(a);
          else b = b + "&#" + a + ";"
      }
      return b
  };
  Silverlight.default_error_handler = function(e, b) {
      
      var d, c = b.ErrorType;
      d = b.ErrorCode;
      var a = "\nSilverlight error message     \n";
      a += "ErrorCode: " + d + "\n";
      a += "ErrorType: " + c + "       \n";
      a += "Message: " + b.ErrorMessage + "     \n";
      if (c == "ParserError") {
          a += "XamlFile: " + b.xamlFile + "     \n";
          a += "Line: " + b.lineNumber + "     \n";
          a += "Position: " + b.charPosition + "     \n"
      }
      else if (c == "RuntimeError") {
          if (b.lineNumber != 0) {
              a += "Line: " + b.lineNumber + "     \n";
              a += "Position: " + b.charPosition + "     \n"
          }
          a += "MethodName: " + b.methodName + "     \n"
      }

  };

Silverlight.__cleanup = function() {
for (var a = Silverlight._silverlightCount - 1; a >= 0; a--)
    window["__slEvent" + a] = null;
Silverlight._silverlightCount = 0;
if (window.removeEventListener)
    window.removeEventListener("unload", Silverlight.__cleanup, false);
else window.detachEvent("onunload", Silverlight.__cleanup)
};
Silverlight.__getHandlerName = function(b) {
var a = "";
if (typeof b == "string") a = b;
else
    if (typeof b == "function") {
        if (Silverlight._silverlightCount == 0)
            if (window.addEventListener) window.addEventListener("onunload", Silverlight.__cleanup, false);
            else window.attachEvent("onunload", Silverlight.__cleanup);
            var c = Silverlight._silverlightCount++;
            a = "__slEvent" + c;
            window[a] = b
        }
        else a = null; return a
    };
    Silverlight.onRequiredVersionAvailable = function() { };
    Silverlight.onRestartRequired = function() { };
    Silverlight.onUpgradeRequired = function() { };
    Silverlight.onInstallRequired = function() { };
    Silverlight.IsVersionAvailableOnError = function(d, a) {
    var b = false;
    try {
        if (a.ErrorCode == 8001 && !Silverlight.__installationEventFired) {
            Silverlight.onUpgradeRequired();
            Silverlight.__installationEventFired = true
        }
        else if (a.ErrorCode == 8002 && !Silverlight.__installationEventFired) {
        Silverlight.onRestartRequired();
        Silverlight.__installationEventFired = true
    }
    else if (a.ErrorCode == 5014 || a.ErrorCode == 2106) {
    if (Silverlight.__verifySilverlight2UpgradeSuccess(a.getHost())) b = true
}
else b = true
} catch (c) { } return b
};
Silverlight.IsVersionAvailableOnLoad = function(b) {
var a = false;
try {
    if (Silverlight.__verifySilverlight2UpgradeSuccess(b.getHost())) a = true
}
catch (c) {
}
return a
};
Silverlight.__verifySilverlight2UpgradeSuccess = function(d) {
var c = false, b = "2.0.31005", a = null;
try {
    if (d.IsVersionSupported(b + ".99")) {
        a = Silverlight.onRequiredVersionAvailable; c = true
    }
    else if (d.IsVersionSupported(b + ".0")) a = Silverlight.onRestartRequired;
    else a = Silverlight.onUpgradeRequired;
    if (a && !Silverlight.__installationEventFired) {
        a();
        Silverlight.__installationEventFired = true
    }
} catch (e) {
} return c 
}
//end of function loadsl
}

function StackWriter(sMessage) {
  
   document.getElementById("StackTrace").innerHTML += sMessage;
}
function Drawad(sMessage) {

    var li_TrimmedHeight = RemovePX(gs_ContainerHeight);
    var li_ReducedHeight = (li_TrimmedHeight / 2);
    var ls_ReducedHeight = (li_ReducedHeight + 'px');

    document.getElementById(gs_MXitSilverlightControlHost).style.height = "250px";
    document.getElementById(gs_MXitRestPanel).style.height = ls_ReducedHeight;
    document.getElementById(gs_MXitRestPanel).style.width = gs_ContainerWidth;
    document.getElementById(gs_MXitRestPanel).style.display = "block";

}
function RemovePX(mVal) {
    var objReplaceString = "";
    var objCurrentString = mVal;
    var objOutputString = objCurrentString.replace("px", objReplaceString);
    return objOutputString;
}
function Closead(sMessage) {
    document.getElementById(gs_MXitSilverlightControlHost).style.height = gs_ContainerHeight;
    document.getElementById(gs_MXitRestPanel).style.display = "none";
}

function onSilverlightError(sender, args) {var appSource = ""; if (sender != null && sender != 0) { appSource = sender.getHost().Source; } var errorType = args.ErrorType; var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") { return; } var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n"; errMsg += "Code: " + iErrorCode + "    \n"; errMsg += "Category: " + errorType + "\n"; errMsg += "Message: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") { errMsg += "File: " + args.xamlFile + "     \n"; errMsg += "Line: " + args.lineNumber + "     \n"; errMsg += "Position: " + args.charPosition + "     \n"; } else if (errorType == "RuntimeError") { if (args.lineNumber != 0) { errMsg += "Line: " + args.lineNumber + "     \n"; errMsg += "Position: " + args.charPosition + "     \n"; } errMsg += "MethodName: " + args.methodName + "     \n"; } StackTrace.innerHTML += errMsg; }
//v2.0.30511.0

function evo_load() {

    Silverlight = null;
    
    evo_load_widget(gs_XapPath, gs_MXitSilverlightControlHost, 'evo_web_widget', "100%", "100%", gs_ContainerWidth, gs_ContainerHeight, "Left", gs_Background, ga_Params, "true");    
    NotifyMXit();
}
function NotifyMXit() {
    var location = window.location; //var args = getArgs();
}
function getArgs() { var args = new Object(); var query = window.location.search.substring(1); var pairs = query.split("&"); for (var i = 0; i < pairs.length; i++) { var pos = pairs[i].indexOf('='); if (pos == -1) continue; var argname = pairs[i].substring(0, pos); var value = pairs[i].substring(pos + 1); args[argname] = unescape(value); } return args; }


function evo_load_widget(sXapPath, sHostControl, sId, sWidth, sHeight, sContainerWidth, sContainerHeight, sAlign, sBackground, arrParams, EnableHTMLAccess) {

    Loadsl();    
    document.getElementById(gs_MXitRestPanel).style.display = "none";
    document.getElementById(gs_MXitSilverlightControlHost).innerHTML == "";
    
    gs_XapPath = sXapPath;
    gs_MXitSilverlightControlHost = sHostControl;
    gs_ContainerHeight = sContainerHeight;    
    gs_ContainerWidth = sContainerWidth;
    gs_Background = sBackground;
    gs_UniqueId = sId;
    // ??!?? and somewhere else we assign arrParams to ga_Params
    ga_Params = arrParams;
    
    if (CheckImage(gs_customImages + "/" + MXIT_DISABLEDBACKGROUNDIMAGENAME)) { }
    Silverlight.createObjectEx(
    { 
        source: sXapPath,
        parentElement: document.getElementById(sHostControl),
        id: sId,
        properties: {
        enableHTMLAccess: "true",
        width: sWidth,
        height: sHeight,
        align: sAlign,
        background: sBackground,
        alt: "<a href='javascript:Silverlight.getSilverlight(\"LinkID=149156&v=3.0.40624.0\");' style='text-decoration: none;'><img border='0' src='" + gs_customImages + "/" + MXIT_DISABLEDBACKGROUNDIMAGENAME + "'/><img border='0' style='float:left; position:relative; top:-60%;left:15%;' src='" + Silverlight.fwlinkRoot + '108181' + "'/></a>", 
        version: "3.0.40624.0", 
        autoupgrade: "true" },
        events: { onError: onSilverlightError },
        initParams: arrParams, 
        context: "row0"
    });

    var controlHost =
    document.getElementById(gs_MXitSilverlightControlHost);
    
    if (typeof(controlHost) != 'undefined' && controlHost != null)
    {
        controlHost.style.height = sContainerHeight;
        controlHost.style.width = sContainerWidth;
    }
    
    
}
function CheckImage(URL) {var _sourceTest = new Image();_sourceTest.onLoad = isGood;_sourceTest.onError = isBad;_sourceTest.src = URL;}
function isGood() {gs_SilverlightDisabledBackground = gs_customImages + MXIT_DISABLEDBACKGROUNDIMAGENAME; }
function isBad() {gs_SilverlightDisabledBackground = g_sSiteUrl + "/images/themes/MXit" + MXIT_DISABLEDBACKGROUNDIMAGENAME; }

