﻿// MiWeb Client Engine

var MiWebClass = Class.create();
MiWebClass.prototype = {
    AppPath: '/',
    LocaleAppPath: '/',
    Version: null,
    ContentGuid: null,
    PageGuid: null,
    TemplateGuid: null,
    Permissions: null,
    PageType: 4,
    mArgs: null,
    mUd: null,


    initialize: function(args)
    {
        this.mArgs = args;
        this.AppPath = args.AppPath;
        this.LocaleAppPath = args.LocaleAppPath;
        this.Version = args.Version;
        this.ContentGuid = args.ContentGuid;
        this.PageGuid = args.PageGuid;
        this.TemplateGuid = args.TemplateGuid;
        this.Permissions = args.Permissions;
        this.PageType = args.PageType; //4 = Page Template; 7 = ElementFile

        document.onkeydown = function(e)
        {
            if (!e)
            {
                e = window.event;
            }
            var intKeyCode = (e.which ? e.which : e.keyCode);

            if (intKeyCode == 8)
            {
                var srcElementTagName = '';
                if ((e.srcElement) && (e.srcElement.tagName))
                {
                    srcElementTagName = e.srcElement.tagName.toLowerCase();
                }
                else if ((e.target) && (e.target.tagName))
                {
                    srcElementTagName = e.target.tagName.toLowerCase();
                }
                if ((srcElementTagName != 'textarea') && (srcElementTagName != 'input') && (MiWeb.mArgs.disabledBackspace == true))
                {
                    window.status = 'The backspace key is disabled for this page.';
                    Event.stop(e);
                    return false;
                }
            }
            return true;
        };

    },

    resolveUrl: function(url)
    {
        if (url.startsWith('~/'))
            url = this.AppPath + url.substr(2, url.length - 2);

        return url;
    },

    resolveLocaleUrl: function(url)
    {
        if (url.startsWith('~/'))
            url = this.LocaleAppPath + url.substr(2, url.length - 2);

        return url;
    },

    getLocaleUrl: function(index)
    {
        return this.resolveLocaleUrl(this.mArgs.Paths[index]);
    },

    systemReplace: function()
    {
        if (MiWeb.mUd == null)
        {
            if (document.body.innerHTML.indexOf('{$AJX.') > 0)
                ajaxSimpleSendRequest(MiWeb.resolveUrl('~/page/system/ajax/common_ajax.aspx'), 'MiWeb.doReplace', 'get_userdetails', '');
        }
        else
        {
            return MiWeb.mUd;
        }
    },

    doReplace: function(objResults)
    {
        var spanIndex;
        var request;
        var replacement;
        var n;
        var spans;

        MiWeb.mUd = objResults;

        spans = $$('span.AJaXr');

        for (spanIndex = 0; spanIndex < spans.length; spanIndex++)
        {
            request = spans[spanIndex].innerHTML.substring(6, spans[spanIndex].innerHTML.length - 2);
            replacement = '';
            n = MiWeb.mUd.getElementsByTagName(request);
            if (n.length > 0)
            {
                replacement = GetXmlNodeText(n[0]);
            }
            spans[spanIndex].innerHTML = replacement;
            spans[spanIndex].style.display = '';
        }
    }

};

var MiWeb = null;


