﻿//safari complains about this line
//var emptyGUID = "00000000-0000-0000-0000-000000000000";
var emptyGUID = '00000000-0000-0000-0000-000000000000';

DockToObject = function(dockingObject, objectToDockTo, align, vAlign, direction, pad_x, pad_y, ignoreFrameElement) {

    var offsetPointer = objectToDockTo;
    var objectToDockTo_x = parseInt((!pad_x ? 0 : pad_x));
    var objectToDockTo_y = parseInt((!pad_y ? 0 : pad_y));

    while (offsetPointer) {
        objectToDockTo_x += offsetPointer.offsetLeft;
        objectToDockTo_y += offsetPointer.offsetTop;


        if (offsetPointer.offsetParent == null) {
            if (ignoreFrameElement)
                offsetPointer = null;
            else
                offsetPointer = window.frameElement;
        }
        else
            offsetPointer = offsetPointer.offsetParent;
    }
    dockingObject_x = 0;
    dockingObject_y = 0;

    switch (align) {
        case "left":
            dockingObject_x = objectToDockTo_x;
            break
        case "right":
            dockingObject_x = (objectToDockTo_x + objectToDockTo.offsetWidth);
            break
        case "center":
            dockingObject_x = (objectToDockTo_x + parseInt(objectToDockTo.offsetWidth / 2));
            break
    }

    switch (vAlign) {
        case "top":
            dockingObject_y = objectToDockTo_y;
            break;
        case "bottom":
            dockingObject_y = (objectToDockTo_y + objectToDockTo.offsetHeight);
            break;
        case "middle":
            dockingObject_y = (objectToDockTo_y + parseInt(objectToDockTo.offsetHeight / 2));
            break;
    }

    switch (direction) {
        case "n":
            dockingObject_x = dockingObject_x - parseInt(dockingObject.offsetWidth / 2);
            dockingObject_y = dockingObject_y - dockingObject.offsetHeight;
            break;
        case "s":
            dockingObject_x = dockingObject_x - parseInt(dockingObject.offsetWidth / 2);
            break;
        case "e":
            dockingObject_y = dockingObject_y - parseInt(dockingObject.offsetHeight / 2);
            break;
        case "w":
            dockingObject_x = dockingObject_x - dockingObject.offsetWidth;
            dockingObject_y = dockingObject_y - parseInt(dockingObject.offsetHeight / 2);
            break;
        case "ne":
            dockingObject_y = dockingObject_y - dockingObject.offsetHeight;
            break;
        case "nw":
            dockingObject_x = dockingObject_x - dockingObject.offsetWidth;
            dockingObject_y = dockingObject_y - dockingObject.offsetHeight;
            break;
        case "se":
            break;
        case "sw":
            dockingObject_x = dockingObject_x - dockingObject.offsetWidth;
            break;
        case "center":
            dockingObject_x = dockingObject_x - parseInt(dockingObject.offsetWidth / 2);
            dockingObject_y = dockingObject_y - parseInt(dockingObject.offsetHeight / 2);
            break;
    }

    dockingObject.style.left = dockingObject_x + "px";
    dockingObject.style.top = dockingObject_y + "px";

}

destroyObject = function(object) {
    if (object) {
        switch (DetermineBrowser()) {
            case Browsers.IE:
                object.removeNode(true)
                break;
            default:
                object.parentNode.removeChild(object);
                break;
        }
    }
}

destroyElementById = function(id) {
    var doomed = document.getElementById(id);

    if (doomed)
        destroyObject(doomed);

}

addTableRows = function(table, rows) {
    switch (DetermineBrowser()) {
        case Browsers.IE:
            var tbody = document.createElement("<tbody>");
            for (var i = 0; i < rows.length; i++) {
                tbody.appendChild(rows[i]);
            }
            table.appendChild(tbody);
            break;
        default:
            for (var i = 0; i < rows.length; i++) {
                table.appendChild(rows[i]);
            }
            break;
    }
}

var Browsers = { IE: 0, FireFox: 1, Other: 2 }

DetermineBrowser = function() {
    if (/msie/i.test(navigator.userAgent)) return Browsers.IE;
    if (/firefox/i.test(navigator.userAgent)) return Browsers.FireFox;
    return Browsers.Other;
}

getXMLHTTP = function() {
    var xmlHttpRequest = null;
    try {
        xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e1) {
        try {
            xmlHttpRequest = new XMLHttpRequest();
        }
        catch (e2) {
            try {
                xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e3) {
                xmlHttpRequest = null
            }
        }
    }
    return xmlHttpRequest
}

image_onmouseover = function(e) {
    var arrFileName;

    if (e.src) {
        arrFileName = e.src.split(".");
    }
    else if (e.style.backgroundImage) {
        arrFileName = e.style.backgroundImage.split(".");
    }


    var ext = arrFileName[arrFileName.length - 1];

    if (e.src)
        e.src = e.src.replace("." + ext, "-mouseover." + ext);
    else
        e.style.backgroundImage = e.style.backgroundImage.replace("." + ext, "-mouseover." + ext);

    e.style.cursor = "pointer";

    e.onmouseout = function() {
        if (e.src)
            e.src = e.src.replace(/\-mouseover/, "");
        else
            e.style.backgroundImage = e.style.backgroundImage.replace(/\-mouseover/, "");
    }
}

defaultText_onfocus = function(control) {

    if (!control.defaultText) {
        if (control.attributes["defaulttext"]) {
            control.defaultText = control.attributes["defaulttext"].value;
        }
    }

    if (control.value == control.defaultText)
        control.value = "";

    control.onblur = function(e) {
        if (control) {
            if (control.value.length == 0)
                control.value = control.defaultText;
        } else {
            var poppop = "fizzfizz";
        }
    }

    control.onfocus = function(e) {

        if (control) {
            if (control.value == control.defaultText)
                control.value = "";
        } else {
            var poppop = "fizzfizz";
        }
    }
}

function defaultTextPassword_onfocus(e) {
    var base = e.id.replace(/\_Password/, "").replace(/\_Text/, "");

    var password = document.getElementById(base + "_Password");
    var text = document.getElementById(base + "_Text");

    password.style.display = "";
    text.style.display = "none";
    password.focus();
}

function defaultTextPassword_onblur(e) {
    var base = e.id.replace(/\_Password/, "").replace(/\_Text/, "");

    var password = document.getElementById(base + "_Password");
    var text = document.getElementById(base + "_Text");

    if (password.value.length == 0) {
        password.style.display = "none";
        text.style.display = "";        
    }
}

QueryStringValue = function(Url, Query) {
    var QueryRegEx = eval("/" + Query + "/g");

    if (QueryRegEx.test(Url)) {
        var QueryStrings = Url.split("?");
        var IndividualQueries = QueryStrings[1].split("&");

        for (var index = 0; index <= IndividualQueries.length - 1; index++) {
            var QueryPair = IndividualQueries[index].split("=");
            if (QueryPair[0] == Query) return QueryPair[1];
        }

        return "";
    }
    else {
        return "";
    }
}

clientTime = function() {
    var d = new Date();
    var s = d.toString();
    d = null;
    return s;
}

function createAnchor(text, href) {
    var a = document.createElement("a");

    if (text) {
        if (typeof (text) == "object")
            a.appendChild(text);
        else
            a.innerHTML = text;
    }
    a.style.cursor = "pointer";

    if (!href)
        a.href = "javascript: void(0)";

    return a;
}

createTable = function(width, height) {
    var table = document.createElement("table");
    table.border = "0";
    table.cellSpacing = "0";
    table.cellPadding = "0";

    if (width) {
        if (/%/.test(width))
            table.style.width = width;
        else if (width > -1)
            table.style.width = width + "px";
    }

    if (height) {
        if (/%/.test(height))
            table.style.height = height;
        else if (height > -1)
            table.style.height = height + "px";
    }

    table.rowArray = [];
    table.rowArray.pop();

    table.addRow = function(row) {
        if (table.firstChild) {
            if (table.firstChild.tagName.toLowerCase() == "tbody")
                table.firstChild.appendChild(row);
            else
                table.appendChild(row);
        }
        else {
            switch (DetermineBrowser()) {
                case Browsers.IE:
                    var tbody = document.createElement("<tbody>");
                    tbody.appendChild(row);
                    table.appendChild(tbody);

                    break;
                default:
                    table.appendChild(row);
            }
        }

        table.rowArray[table.rowArray.length] = row;
    }


    table.addRows = function(rows) {
        for (var i = 0; i < rows.length; i++) {
            table.addRow(rows[i]);
        }
    }

    table.rowCount = function() {
        if (table.firstChild) {
            var container;

            if (table.firstChild.tagName.toLowerCase() == "tbody")
                container = table.firstChild
            else
                container = table;

            return container.childNodes.count;
        }
        else
            return 0;
    }

    function createRow() {
        var tr = document.createElement("tr");

        tr.cellArray = tr.childNodes;

        tr.createCell = function() {
            var td = document.createElement("td");
            tr.appendChild(td);

            td.parent = tr;

            td.destroy = function() {
                destroyObject(td);
            }
            return td;
        }

        tr.parent = table;

        return tr;
    }

    table.createRow = function(cell) {

        var row = createRow();
        table.addRow(row);

        if (cell) {
            for (var x = 0; x < cell; x++) {
                row.createCell();
            }
        }

        return row;
    }

    table.createRows = function(rows, cell) {
        for (var i = 0; i < rows; i++) {
            table.createRow(cell);
        }
    }


    return table;
}

createOption = function(id, text, value) {
    var opt = document.createElement("option");
    opt.id = id;

    if (text) {
        if (text != "") {
            opt.text = text;
        }
    }

    if (value) {
        if (value != "") {
            opt.value = value;
        }
    }

    return opt;
}


stripHTML = function(text) {
    text = text.replace(/(<([^>]+)>)/ig, "");

    return text;
}

login_onkeypress = function(e, evt, action) {
    if ((evt.keyCode ? evt.keyCode : evt.which) == 13) {
        eval(action);
        return false;
    }
}

action_onkeypress = function(e, action, codes) {
    var characterCode;

    if (e && e.which) {
        characterCode = e.which
    }
    else {
        e = event;
        characterCode = e.keyCode
    }

    if (characterCode == 13) {
        eval(action);
        return false;
    }
    else if (codes != undefined) {
        for (var i = 0; i < codes.length; i++) {
            if (characterCode == codes[i][0]) {
                eval(action)
                return codes[i][1];
            }
        }
    }
    else {
        return true
    }
}

createLayer = function(width, height, background) {
    var table = createTable(width, height);

    var row = document.createElement("tr");
    var cell = document.createElement("td");
    if (background)
        cell.style.background = background;
    row.appendChild(cell);

    addTableRows(table, [row]);

    table.cell = cell;

    table.addLayer = function(layer) {
        cell.appendChild(layer);
    }

    return table;
}




addEventTrigger = function(object, eventName, func, capture, arguments) {
    var ffEventName;
    var ieEventName;

    if (/on/.test(eventName.toLowerCase())) {
        ieEventName = eventName.toLowerCase();
        ffEventName = ieEventName.replace("on", "");
    }
    else {
        ffEventName = eventName.toLowerCase();
        ieEventName = "on" + ffEventName;
    }


    switch (DetermineBrowser()) {
        case Browsers.IE:
            if (arguments)
                object.attachEvent(ieEventName, func(arguments));
            else
                object.attachEvent(ieEventName, func);
            break;
        default: //FireFox and Safari
            if (arguments)
                object.addEventListener(ffEventName, func(arguments), capture);
            else
                object.addEventListener(ffEventName, func, capture);
            break;
    }
}


removeEventTrigger = function(object, eventName, func, capture) {
    var ffEventName;
    var ieEventName;

    if (/on/.test(eventName.toLowerCase())) {
        ieEventName = eventName.toLowerCase();
        ffEventName = ieEventName.replace("on", "");
    }
    else {
        ffEventName = eventName.toLowerCase();
        ieEventName = "on" + ffEventName;
    }


    switch (DetermineBrowser()) {
        case Browsers.IE:
            object.detachEvent(ieEventName, func);
            break;
        default:  //FireFox and Safari
            object.removeEventListener(ffEventName, func, capture);
    }
}

function fireEvent(object, eventName, bubble, cancelable) {
    var ffEventName;
    var ieEventName;

    if (/on/.test(eventName.toLowerCase())) {
        ieEventName = eventName.toLowerCase();
        ffEventName = ieEventName.replace("on", "");
    }
    else {
        ffEventName = eventName.toLowerCase();
        ieEventName = "on" + ffEventName;
    }


    if (document.createEventObject) {
        try {
            var evt = document.createEventObject();
            return object.fireEvent(ieEventName, evt);
        } catch (e) {
            try {
                eval("object." + ffEventName + "();");
            } catch (ie) {
            }
        }
    } else {
        if (!bubble)
            bubble = false;
        if (!cancelable)
            cancelable = false;

        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(ffEventName, bubble, cancelable);
        return !object.dispatchEvent(evt);
    }
}


Linked_mouseover = function(e) {
    if (Linked_mouseover.arguments.length > 1) {
        for (var i = 1; i <= Linked_mouseover.arguments.length - 1; i++) {
            var objID = Linked_mouseover.arguments[i];

            if (document.getElementById(objID)) {
                var obj = document.getElementById(objID);

                if (obj.tagName) {
                    switch (obj.tagName.toLowerCase()) {
                        case "img":
                            if (!/\-mouseover/.test(obj.src) && !/\-active/.test(obj.src))
                                obj.src = obj.src.replace(/\.png/g, "-mouseover.png");
                            break;
                        case "span":
                            if (!/\-mouseover/.test(obj.className) && !/\-active/.test(obj.className))
                                obj.className = obj.className + "-mouseover";
                            break;
                        case "td":
                        case "table":
                            if (!/\-mouseover/.test(obj.style.backgroundImage) && !/\-active/.test(obj.style.backgroundImage))
                                obj.style.backgroundImage = obj.style.backgroundImage.replace(/\.png/g, "-mouseover.png");
                            break;
                    }
                }
            }
        }
    }
}

Linked_mouseout = function(e) {
    if (Linked_mouseout.arguments.length > 1) {
        for (var i = 1; i <= Linked_mouseout.arguments.length - 1; i++) {
            var objID = Linked_mouseout.arguments[i];

            if (document.getElementById(objID)) {
                var obj = document.getElementById(objID);

                if (obj.tagName) {
                    switch (obj.tagName.toLowerCase()) {
                        case "img":
                            if (/\-mouseover/.test(obj.src) && !/\-active/.test(obj.src))
                                obj.src = obj.src.replace(/\-mouseover/g, "");
                            break;
                        case "span":
                            if (/\-mouseover/.test(obj.className) && !/\-active/.test(obj.className))
                                obj.className = obj.className.replace(/\-mouseover/g, "");
                            break;
                        case "td":
                        case "table":
                            if (/\-mouseover/.test(obj.style.backgroundImage) && !/\-active/.test(obj.style.backgroundImage))
                                obj.style.backgroundImage = obj.style.backgroundImage.replace(/\-mouseover/g, "");
                            break;
                    }
                }
            }
        }
    }
}

function getEventTarget(event) {
    if (!event) event = window.event;
    switch (DetermineBrowser()) {
        case Browsers.IE:
            return event.srcElement;
            break;
        default:
            return event.target;
            break;
    }
}

ConvertSeconds = function(totalSeconds) {
    totalSeconds = parseInt(totalSeconds);

    var Hours;
    var Seconds;
    var Minutes;

    Hours = parseInt(totalSeconds / 3600);
    Minutes = parseInt((totalSeconds - (Hours * 3600)) / 60);
    Seconds = totalSeconds - (Minutes * 60) - (Hours * 3600);

    if (Hours > 0) {
        if (Minutes < 10) Minutes = "0" + Minutes;
        if (Seconds < 10) Seconds = "0" + Seconds;

        return (Hours + ":" + Minutes + ":" + Seconds);
    }
    else {
        if (Seconds < 10) Seconds = "0" + Seconds;

        return (Minutes + ":" + Seconds);
    }
}

var RatingStarState_Enum =
{
    Empty: 1,
    Half: 2,
    Full: 3
}

BuildRatingStar = function(RatingStarState) {
    var StarTable = document.createElement("table");
    StarTable.border = "0";
    StarTable.cellSpacing = "0";
    StarTable.cellPadding = "0";
    StarTable.style.width = "10px";
    StarTable.style.height = "9px";
    StarTable.style.display = top.GetDisplayInlineStyle();
    StarTable.style.margin = "0px 1px";
    StarTable.style.backgroundRepeat = "no-repeat";

    switch (RatingStarState) {
        case RatingStarState_Enum.Full:
            top.SI.src("ProfilePage_IconRatingFull.png", StarTable, top.SiteImagesType.BaseSiteTheme);
            break;
        case RatingStarState_Enum.Half:
            top.SI.src("ProfilePage_IconRatingHalf.png", StarTable, top.SiteImagesType.BaseSiteTheme);
            break;
        default:
            top.SI.src("ProfilePage_IconRatingEmpty.png", StarTable, top.SiteImagesType.BaseSiteTheme);
            break;
    }

    var StarTR = document.createElement("tr");

    var HalfTD = document.createElement("td");
    HalfTD.style.width = "50%";
    HalfTD.style.fontSize = "1px";

    HalfTD.innerHTML = "&nbsp;";

    var FullTD = document.createElement("td");
    FullTD.style.width = "50%";
    FullTD.style.fontSize = "1px";

    FullTD.innerHTML = "&nbsp;";

    StarTR.appendChild(HalfTD);
    StarTR.appendChild(FullTD);

    addTableRows(StarTable, [StarTR]);

    StarTable.half = HalfTD;
    StarTable.full = FullTD;

    return StarTable;
}

GetDisplayInlineStyle = function() {
    switch (DetermineBrowser()) {
        case Browsers.Other:
            return "inline-table";
        case Browsers.FireFox:
            return "-moz-inline-box";
        default:
            return "inline";
    }
}


function escapeHTMLCharacters(string) {
    string = string.replace(/\&/g, "&#38;");      //ampersand
    string = string.replace(/\-/g, "&#45;");      //hyphen
    string = string.replace(/\|/g, "&#124;");     //vertical bar
    string = string.replace(/\~/g, "&#126;");     //tilde
    string = string.replace(/\>/g, "&#62;");      //greater-than sign
    string = string.replace(/\</g, "&#60;");      //less-than sign

    return string;
}





function UTCDate() {

    var d = new Date();

    d.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
    d.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());

    return d;
}


function DayOfTheWeek(index) {
    switch (index) {
        case 0:
            return "Sunday";
            break;
        case 1:
            return "Monday";
            break;
        case 2:
            return "Tuesday";
            break;
        case 3:
            return "Wednesday";
            break;
        case 4:
            return "Thursday";
            break;
        case 5:
            return "Friday";
            break;
        case 6:
            return "Saturday";
            break;
    }
}

function GetMonthText(index) {
    switch (index) {
        case 0:
            return "January";
            break;
        case 1:
            return "Febuary";
            break;
        case 2:
            return "March";
            break;
        case 3:
            return "April";
            break;
        case 4:
            return "May";
            break;
        case 5:
            return "June";
            break;
        case 6:
            return "July";
            break;
        case 7:
            return "August";
            break;
        case 8:
            return "September";
            break;
        case 9:
            return "October";
            break;
        case 10:
            return "November";
            break;
        case 11:
            return "December";
            break;
    }
}

function makeUnselectable(element) {
    switch (DetermineBrowser()) {
        case Browsers.FireFox:
            //element.style.setProperty("-moz-user-select", "none");
            break;
        default:
            function selectstart(evt) {
                //return false;
                if (evt.preventDefault)
                    evt.preventDefault();

                evt.returnValue = false;
            }

            addEventTrigger(element, "selectstart", selectstart);
            addEventTrigger(element, "select", selectstart);
    }
}


function onLengthFocusNext(e, length, control) {
    if (!e) e = window.event;

    var target = e.srcElement ? e.srcElement : e.target

    var keyCode = e.keyCode ? e.keyCode : e.which;

    if (keyCode == 8 || keyCode == 46 || keyCode == 63272)
        return true;

    if (target.value.length == length) {
        control.focus();
        control.value = control.value;

        if (e.preventDefault)
            e.preventDefault();

        e.returnValue = false;

        return false;
    }
}

function onZeroLengthBackSpace(e, control) {
    if (!e) e = window.event;

    var target = e.srcElement ? e.srcElement : e.target

    var keyCode = e.keyCode ? e.keyCode : e.which;

    if (keyCode == 8 || keyCode == 46 || keyCode == 63272) {
        if (target.value.length == 0) {
            control.focus();
            control.value = control.value;

            if (e.preventDefault)
                e.preventDefault();

            e.returnValue = false;

            return false;
        }
    }

    return true;
}

function Link_onmouseover(e) {
    if (!/\-mouseover/.test(e.className) && !/\-active/.test(e.className)) {
        e.className += "-mouseover";
    }
}

function Link_onmouseout(e) {
    if (/\-mouseover/.test(e.className) && !/\-active/.test(e.className)) {
        e.className = e.className.replace(/\-mouseover/g, "");
    }
}

function numericPressOnly(event) {
    if (keyPressRegexMatch("[0-9]", event)) {
        return true;
    }
    else {
        if (event.preventDefault)
            event.preventDefault();

        event.returnValue = false;

        return false;
    }
}

function keyPressRegexMatch(pattern, event) {
    var regex = eval("/" + pattern + "/");

    var keyNum;
    var keyChar;

    if (window.event) {
        keyNum = event.keyCode;
    }
    else if (event.which) {
        keyNum = event.which;
    }

    keyChar = String.fromCharCode(keyNum);

    if (!regex.test(keyChar)) {
        if (event.preventDefault)
            event.preventDefault();

        event.returnValue = false;
    }

    return regex.test(keyChar);
}

function isHttps() {
    return (/https/.test(document.location.href));
}

function hideClientIFrameScrollbar() {
    var cs = top.document.getElementById("CIFScrollbarCell");

    if (cs) {
        if (cs.customScrollbar) {
            cs.customScrollbar.Deactivate();
        }
    }
}

function DaysInMonth(month, year) {
    var testDate = new Date(year, month, 32);
    var days = 32 - testDate.getDate();
    testDate = null;

    return days;
}


function textToRegex(text, global) {

    var regex = "";

    for (var i = 0; i < text.length; i++) {
        var c = text.charAt(i);

        if (c == "*") {                     //Multi Wildcard
            regex += "\.+";
        } else if (c == "?") {              //Single Wildcard
            regex += "\.";
        } else if (/[0-9]/.test(c)) {       //Numerical
            regex += c;
        } else if (/[a-zA-Z]/.test(c)) {    //Text
            regex += "[" + c.toLowerCase() + c.toUpperCase() + "]";
        } else {
            regex += "\\" + c;
        }

    }
    var compiled;

    if (global)
        compiled = eval("/" + regex + "/g");
    else
        compiled = eval("/" + regex + "/");

    return compiled;
}

function GetClipboardContents() {
    if (window.clipboardData) {
        return window.clipboardData.getData("Text");
    }
    else {
        try {
            return document.execCommand("paste", false, null);
        } catch (e) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                return document.execCommand("paste", false, null);
            } catch (e) {

            }
        }
    }
}

function CreateElementForExecCommand(textToClipboard) {
    var forExecElement = document.createElement("div");

    forExecElement.style.position = "absolute";
    forExecElement.style.left = "-10000px";
    forExecElement.style.top = "-10000px";

    forExecElement.textContent = textToClipboard;
    document.body.appendChild(forExecElement);

    forExecElement.contentEditable = true;

    return forExecElement;
}

function SelectContent(element) {
    var rangeToSelect = document.createRange();
    rangeToSelect.selectNodeContents(element);

    var selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(rangeToSelect);
}

function InputNumberValidCheck(e, nonNegative) {
    if (isNaN(e.value)) {
        e.value = "0";
    }

    if (nonNegative) {
        if (parseInt(e.value) < 0) {
            e.value = "0";
        }
    }
}


function createScrollableDiv(id, height, isdisplay) {
    if (!isdisplay)
        isdisplay = false;

    var main = createTable();
    //main.className = "DropDownList_MainTable";
    main.style.cursor = "default";
    main.id = id;

    var main_tr = document.createElement("tr");
    var main_td1 = document.createElement("td");
    var main_td2 = document.createElement("td");

    main.addRow(main_tr);
    main_tr.appendChild(main_td1);
    main_tr.appendChild(main_td2);
    main_td2.id = id + "_scrollBarCell";
    main_td2.style.width = "15px";
    main_td2.style.textAlign = "center";
    main_td1.style.verticalAlign = "top";

    var container = document.createElement("div");
    container.id = id + "_container";
    container.style.overflowY = "hidden";

    main.customScrollbar = new CustomScrollbar();
    main.customScrollbar.IsDisplay(isdisplay);

    document.body.appendChild(container);


    main_td2.appendChild(main.customScrollbar.CreateScrollbarDiv(id + "_scrollBar", container.id, parseInt(height) - 12));

    main_td1.appendChild(container);

    main.container = container;

    main.scrollBarCell = main_td2;

    main.setHeight = function(newHeight) {
        container.style.height = parseInt(newHeight) + "px";


        var track = main.customScrollbar.getTrack();


        if (newHeight - 24 > 0)
            track.style.height = (newHeight - 24) + "px";

        main.customScrollbar.SliderCheck();
    }
    main.setHeight(height);


    return main;
}
