﻿
if (typeof (knotice) === 'undefined') var knotice = {};
knotice = (function() {
    var output = {};

    output.MakeCalleback = function(data) {
        if (_pointer) { _pointer(data); }
    }

    var _pointer;

    output.init = function(settings, profileArgs, callback) {
        if (callback) _pointer = callback;
        if (typeof (profileArgs) === 'undefined') var profileArgs = {};
        var referrer = '';
        try {
            referrer = parent == self ? window.document.referrer : parent.document.referrer;
        }
        catch (ex) {
            referrer = window.document.referrer;
        }
        var args = {};
        args.ts = new Date().getMilliseconds();
        args.r = referrer;
        args.pt = self.document.title;
        if (settings.forceUrl) args.furl = settings.forceUrl;
        if (settings.forceViewID) args.fvid = settings.forceViewID;
        if (settings.forceTargetPageID) args.ftpid = settings.forceTargetPageID;
        var scriptUrl = (document.location.protocol === 'https:' ? 'https://' : 'http://') + settings.apiHost + '/testpages/scriptsource.ashx?' + jsonToParams(args) + '&' + jsonToParams(profileArgs, 'profile.');
        var js = document.createElement('script');
        js.type = "text/javascript";
        js.src = scriptUrl;
        var head = document.getElementsByTagName('head')[0];
        if (head) {
            head.appendChild(js);
        }
        setTimeout(function() {
            dojo.query("[class*='knotice-zone']").forEach(function(node, index, nodeList) {
                if (node.style.visibility === 'hidden') node.style.visibility = 'visible';
            });
        }, settings.timeout == null ? 2000 : settings.timeout);
    };
    function jsonToParams(obj, prefix) {
        var params = '';
        for (var member in obj) {
            if (typeof (obj[member]) != 'function') {
                if (params.length > 0) {
                    params += '&';
                }
                params += (prefix == null ? '' : prefix) + encodeURIComponent(member) + '=' + encodeURIComponent(obj[member]);
            }
        }
        return params;
    }
    return output;
} ());