﻿var Control = {
    Counter: 100000,
    GetItem: function(id, type, values, itemId, click, width, height, position, checked, locked, imageFolder, addTemplate) {
        var onClick = "";
        if (click.toString().length > 0) {
            onClick = String.Replace(click, "#Id#", id);
            onClick = String.Replace(onClick, "#ItemId#", itemId);
        }
        var wihe = "";
        if (width.toString().length > 0) {
            wihe = "width:" + width + ";";
        }
        if (height.toString().length > 0) {
            wihe += "height:" + height + ";";
        }
        var tmp = "";
        if (addTemplate == true) {
            if (values.length <= 0) {
                tmp = this.GetAddNewTemplate(type, id + itemId, itemId);
            }
            else {
                tmp = this.GetTemplate(type) + this.GetAddNewTemplate(type, id, itemId);
            }
        }
        else {
            tmp = this.GetTemplate(type);
        }
        return "<div onmouseout=\"BaseListControl.ItemMouseOut('" + id + "','" + type + "','" + itemId + "')" + "\" ondblclick=\"BaseListControl.ItemDoubleClick('" + id + "','" + type + "','" + itemId + "')\" onmouseup=\"BaseListControl.ItemMouseUp('" + id + "','" + type + "','" + itemId + "')\" onmousemove=\"BaseListControl.ItemMouseMove('" + id + "','" + type + "','" + itemId + "')\" onmousedown=\"" + onClick + " BaseListControl.ItemClicked('" + id + "','" + type + "','" + itemId + "')\"  id=\"" + id + itemId + "\" style=\"" + wihe + " float:left;\"><input type=\"hidden\" id=\"ItemInfo" + id + itemId + "\" value=\"" + position + "," + checked + "," + locked + ",false," + id + "\"><div style=\"position:absolute; width:24px; height:24px; background-image:url(" + imageFolder + "Image/tick.png); background-repeat:no-repeat; backgroundposition:center; visibility:hidden; display:none; \" id=\"Check" + id + itemId + "\"></div>" + tmp + "</div>";
    },

    GetControl: function(id) {
        try {
            return document.getElementById(id);
        }
        catch (ex) {
            return null;
        }
    },

    GetColumns: function(type) {
        return ListData.GetRows(document.getElementById(type + "columns").innerHTML);
    },

    SetControlContentInTemplate: function(template, type, id, childValues, imageFolder) {
        if (template.split('#Control:Yorum#').length > 1) {

            this.Counter++;
            var item = this.GetItem(id, this.GetControlType('#Control:Yorum#'), childValues, this.Counter, '', '', '', '0', 'false', 'locked', imageFolder, true);
            template = String.Replace(template, '#Control:Yorum#', ListData.ReplaceValues(ListData.GetRows(childValues), this.GetColumns(this.GetControlType('#Control:Yorum#')), item));
        }

        return template;
    },

    GetControlType: function(key) {
        if (key == '#Control:Yorum#') {
            return "yorum";
        }
    },

    GetDefaultControlContent: function(type) {
        return this.GetTemplate(type);

    },

    GetTemplate: function(type) {
        //        if (type != 'video' || type != 'text' || type != 'image' || type!='article') {
        //            return "";
        //        }
        return document.getElementById(type + "template").innerHTML;
    },

    GetAddNewTemplate: function(type, pa, id) {
        var temp = document.getElementById(type + "addtemplate");
        if (temp != null && temp != undefined) {
            var tmp = String.Replace(temp.innerHTML, '#Parent#', pa);
            return String.Replace(tmp, '#Id#', id);
        }
        return "";
    },

    GetControlInControl: function(parent, childId) {
        var nodes = parent.getElementsByTagName('*');
        for (var i = 0; i < nodes.length; i++) {
            if (nodes[i].id == childId) {
                return nodes[i];
            }
        }
    },

    Show: function(parent, id) {
        if (id.length > 0) {
            var element;
            if (parent.length > 0) {
                element = this.GetControlInControl(document.getElementById(parent), id);
            }
            else {
                element = document.getElementById(id);
            }
            if (element != null && element != undefined) {
                element.style.visibility = 'visible';
                element.style.display = '';
            }
        }
    },

    Hide: function(parent, id) {
        if (id.toString().length > 0) {
            var element;
            if (parent.toString().length > 0) {
                element = this.GetControlInControl(document.getElementById(parent), id);
            }
            else {
                element = document.getElementById(id);
            }
            if (element != null && element != undefined) {
                element.style.visibility = 'hidden';
                element.style.display = 'none';
            }
        }
    },

    TextAreaHeightControl: function(event, control) {
        var cnt = control;
        if (navigator.appVersion.indexOf("MSIE 8.") != -1) {
            cnt.style.height = (cnt.scrollHeight + 20) + 'px';
        }
        else {
            cnt.style.height = '14px';
            cnt.style.height = (cnt.scrollHeight) + 'px';

            if ((event.keyCode == 13 && event.shiftKey == 1) || (event.keyCode == 13)) {
                cnt.style.height = (cnt.scrollHeight + 12) + 'px';
            }

        }
        return false;
    },

    GetComboValue: function(id) {
        try {
            var cmb = document.getElementById(id);
            if (cmb.selectedIndex > 0) {
                return cmb.options[cmb.selectedIndex].value;
            }
        }
        catch (ex) {
            return 0;
        }
        return 0;

    },

    CheckNumber: function(evt) {
        evt = (evt) ? evt : window.event
        var charCode = (evt.which) ? evt.which : evt.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57)) {
            return false;
        }
        status = ""
        return true;
    },
    SetScriptTags: function() {
        for (var i = 0; i < document.getElementsByTagName('SCRIPT').length; i++) {
            document.getElementById('Errors').innerHTML += document.getElementsByTagName('SCRIPT')[i].src;
        }
    }

}
