﻿
/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("TraderMagazine");

TraderMagazine.Components = function() {
    TraderMagazine.Components.initializeBase(this);
    //  global images




}

TraderMagazine.Components.prototype = {
    initialize: function() {
        TraderMagazine.Components.callBaseMethod(this, 'initialize');




    },
    /// <summary>
    /// create loader
    /// </summary>
    createLoaderWhite: function(Holder, Height) {
        Holder.innerHTML = "";
        var HolderHeight = Sys.UI.DomElement.getBounds(Holder).height;
        if (Height > 0) HolderHeight = Height - 50;
        var LoaderDiv = document.createElement("DIV");
        LoaderDiv.className = "loader";
        var Loader = document.createElement("IMG");
        Loader.src = IMG.LoaderWhite.src;
        Loader.style.marginTop = parseInt(HolderHeight / 2 - 15) + "px";
        Loader.style.marginBottom = parseInt(HolderHeight / 2 - 15) + "px";
        LoaderDiv.appendChild(Loader);
        Holder.appendChild(LoaderDiv);
    },
    /// <summary>
    /// create loader
    /// </summary>
    createLoader: function(Holder, Height) {
        Holder.innerHTML = "";
        var HolderHeight = Sys.UI.DomElement.getBounds(Holder).height;
        if (Height > 0) HolderHeight = Height - 50;
        var LoaderDiv = document.createElement("DIV");
        LoaderDiv.className = "loader";
        var Loader = document.createElement("IMG");
        Loader.src = IMG.Loader.src;
        Loader.style.marginTop = parseInt(HolderHeight / 2 - 15) + "px";
        Loader.style.marginBottom = parseInt(HolderHeight / 2 - 15) + "px";
        LoaderDiv.appendChild(Loader);
        Holder.appendChild(LoaderDiv);
    },
    /// <summary>
    /// create select box
    /// </summary>
    createSelect: function(id, obj, selectedValue, className) {
        var Sel = document.createElement("SELECT");
        Sel.id = id;
        Sel.className = className;
        for (var i = 0; i < obj.length; i++) {
            var opto = document.createElement("OPTION");
            opto.innerText = obj[i].label;
            opto.style.textAlign = "left";
            opto.value = obj[i].value;
            opto.id = id + "__i";

            if (opto.value == selectedValue) opto.selected = true;


            Sel.appendChild(opto);
        }
        return Sel;
    },
    /// <summary>
    /// add a attribute to a given element
    /// </summary>
    addAttribute: function(attr, value, id) {
        var _attr = document.createAttribute(attr);
        _attr.nodeValue = value;
        $get(id).setAttributeNode(_attr);
    },
    /// <summary>
    /// create simple error div with given id and css style
    /// </summary>
    createErrorField: function(id) {
        var eDiv = document.createElement("div");
        eDiv.id = id;
        //eDiv.innerHTML = error;
        eDiv.className = "error_field";
        eDiv.style.visibility = 'hidden';
        eDiv.style.height = "0px";
        return eDiv;
    },
    /// <summary>
    /// create simple error div with given id and css style
    /// </summary>
    createErrorField2: function(id) {
        var eDiv = document.createElement("div");
        eDiv.id = id;
        //eDiv.innerHTML = error;
        eDiv.className = "error_field";
        eDiv.style.visibility = 'hidden';
        eDiv.style.height = "0px";
        return eDiv;
    },
    /// <summary>
    /// create table container
    /// </summary>
    createTable: function(id, rows, cols, width, valignValue, cellpadding) {
        var Table = document.createElement("Table");
        Table.id = id;
        Table.style.borderCollapse = "collapse";
        Table.style.margin = "0px";
        Table.style.padding = "0px";
        Table.style.width = width;
        Table.style.height = "10px";
        var attr = document.createAttribute("cellSpacing");
        attr.nodeValue = 0;
        Table.setAttributeNode(attr);
        attr = document.createAttribute("cellPadding");
        attr.nodeValue = 0;
        Table.setAttributeNode(attr);
        var tbody = document.createElement("tbody");
        tbody.id = id + "_TB";
        for (var i = 0; i < rows; i++) {
            var TR = document.createElement("TR");
            TR.id = id + "_" + i;
            for (var j = 0; j < cols; j++) {
                var TD = document.createElement("TD");
                attr = document.createAttribute("align");
                attr.nodeValue = "left";
                TD.setAttributeNode(attr);
                attr = document.createAttribute("valign");
                attr.nodeValue = valignValue;
                TD.setAttributeNode(attr);
                var cp = Number(cellpadding);
                if (cp > 0) TD.style.padding = cellpadding + "px";
                TD.id = id + "_" + i + "_" + j;
                TR.appendChild(TD);
            }
            tbody.appendChild(TR);
        }
        Table.appendChild(tbody);
        return Table;
    },

    /// <summary>
    /// get browsers scroll position
    /// </summary>
    getScrollXY: function() {
        var scrOfX = 0, scrOfY = 0;

        if (typeof (window.pageYOffset) == 'number') {
            //Netscape compliant
            scrOfY = window.pageYOffset;
            scrOfX = window.pageXOffset;
        } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            //DOM compliant
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
        } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
            //IE6 standards compliant mode
            scrOfY = document.documentElement.scrollTop;
            scrOfX = document.documentElement.scrollLeft;
        }
        return [scrOfX, scrOfY];
    },
    /// <summary>
    /// set browsers vertical scroll position
    /// </summary>
    setScrollY: function(yPos) {
        window.scrollTo(0, yPos);
    },
    /// <summary>
    /// return wether the key pressed is return or not
    /// </summary>
    keyIsReturn: function(e) {
        var keyIsReturn = false;
        if (e.charCode == 13) {
            keyIsReturn = true;
        }
        return keyIsReturn;
    },
    /// <summary>
    /// show tooltip
    /// </summary>
    showInfo: function(head, content) {
        DIALOG.createDialogContainer(head, false, 400, 150);
        $get("DialogContent").innerHTML = unescape(content);


    },
    /// <summary>
    /// hide tooltip
    /// </summary>
    hideToolTip: function(content) {

    },
    /// <summary>
    // creates a button with specified properties
    /// </summary>

    createButton: function(ForeColor, BtnLabel, ID) {
        var Button = document.createElement("Table");
        Button.id = ID;
        Button.className = ForeColor + "BtnTable";


        var Tbody = document.createElement("TBody");
        var TR = document.createElement("TR");
        var TD = document.createElement("TD");
        TD.className = "GreyBtnCell";
        TD.id = ID + "_TD";
        cspan = document.createAttribute("valign");
        cspan.nodeValue = "middle";
        TD.setAttributeNode(cspan);
        TD.innerHTML = BtnLabel;
        TR.appendChild(TD);
        Tbody.appendChild(TR);
        Button.appendChild(Tbody);
        return Button;
    },
    dispose: function() {
        //Add custom dispose actions here
        TraderMagazine.Components.callBaseMethod(this, 'dispose');
    }
}
TraderMagazine.Components.registerClass('TraderMagazine.Components', Sys.Component);

if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
