var BlinkArray;
var BlinkSec = 0;
var SelectedTr;
var PrevClass;
var DecClass = " dec";
var IncClass = " inc";
var IsBlink = false;
var ie;
var offsetScroll = 20;
var offsetWithoutScroll = 0;
var IsScroll = false;


//if (navigator.appName == "Netscape") ie = false;
//if (navigator.appName.indexOf("Microsoft") != -1) ie = true;
if (IsIE) {
    window.attachEvent("onload", ScrollTable);
    window.attachEvent("onload", SetDivSize);
    window.attachEvent("onload", SetFirstTimeValue); //for new control	
}
else {
    window.attachEvent("onload", SetFirstTimeValue); //for new control	
    //window.addEventListener("load", SetDivSize, false);
    //window.addEventListener("load", ScrollTable, false);
}

function ScrollTable()
{
	if (typeof(hIsFullScreenID) == "undefined") return;
    var full = document.getElementById(hIsFullScreenID);
    if (!full || full.value == "1") return;
    var t = document.getElementById(GridTableClientID);
    if (!t || t.rows.length < 1) return;
    t.rows[0].className += " fixed";
    var pager = document.getElementById(PagerClientID);
    if (!pager) return;
    var d = document.getElementById('DivGrid');
    if (!d) return;
    var dh = parseInt(d.style.height);
    var rect = t.getBoundingClientRect();

    if (rect.bottom - rect.top > dh && pager.className.indexOf(" GridPaging") == -1)
        pager.className += " GridPaging";


}

function ResizeDiv()
 {
    var ResizeFlag = document.getElementById(hIsFullScreenID);
    if (!ResizeFlag) return;
    ResizeFlag.value = 1 - ResizeFlag.value;
    SetDivSize();
}

function SetSmallDiv() {
    var r = document.getElementById(hIsFullScreenID);
    if (!r) return;
    r.setAttribute("value", 0);
    SetDivSize();
}

function SetFullDiv() {
    var r = document.getElementById(hIsFullScreenID);
    if (!r) return;
    r.setAttribute("value", 1);
    SetDivSize();
}

function SetDivSize()
 {
     //temporary
    if (document.getElementById('scrollingDiv')) return SetDivSizeDom();

    var v = document.getElementById("CancelScroll");
    if (v && v.value == "1") {
        v.value = "";
        return;
    }
    var ResizeFlag = document.getElementById(hIsFullScreenID);

    var div = document.getElementById('DivGrid');
    if (!div) return;
    if (ResizeFlag.value == "1")
    {
        div.style.overflow = "";
        UndoScrollTable();
        UnselectTr();
    }
    else
    {
        div.style.overflow = "auto";
        ScrollTable();
        //dp('trMisharPro', '');
    }
    CheckDivHeight(div);
}

function CheckDivHeight(div) {
    if (fn_identifybrowser() != "ie") {
        CheckDivHeightFF(div);
        return;
    }

    var h = 0;
    for (var i = 0; i < div.childNodes.length; i++) {
        if (div.childNodes[i].getBoundingClientRect) {
            var rect = div.childNodes[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
        }
    }
    var dh = div.style.height;

    if (dh == "") dh = 150;

    if (parseInt(dh) >= h || h <= 150) {
        div.style.height = h + 2 + "px";
        div.style.overflow = "hidden";
    }
    else {
        div.style.height = "150px";
    }
}

function UndoScrollTable() {
    if (!IsIE)
       return UndoScrollTableDom();
    var t = document.getElementById(GridTableClientID);
    if (!t || t.rows.length < 1) return;
    var pager = document.getElementById(PagerClientID);
    if (pager) {
        var s = pager.className.split(" GridPaging");
        if (s && s.length > 0)
            pager.className = s[0];
    }
}

function OpenTrade(pid, cmd, NoSetData) {

    if (!NoSetData) setPaperData(pid, cmd);
    var TrId = "tr" + pid;
    if (SelectedTr == TrId) return;
    var tr = document.getElementById(TrId);
    if (!tr) return;
    if (!PrevClass)
        PrevClass = tr.className;
    var temp = tr.className;
    tr.className += " sel";
    if (SelectedTr) {
        tr = document.getElementById(SelectedTr);
        tr.className = PrevClass;
    }
    PrevClass = temp;
    SelectedTr = TrId;
    //ScrollToPaper(TrId);
    document.getElementById(hSelectedTrId).value = pid;
    document.getElementById(hSelectedCmd).value = cmd;
}

function SetTradePrevCmnd(pid, cmd) {
    //fn_jscript("dirtrade.ashx?pid=" + pid + "&cmd=" + cmd + "&trade=1&");
    setPaperData(pid, cmd);
    var TrId = "tr" + pid;
    var tr = document.getElementById(TrId);
    if (!tr) return;
    if (!PrevClass)
        PrevClass = tr.className;
    var temp = tr.className;
    tr.className += " sel";
    if (SelectedTr) {
        tr = document.getElementById(SelectedTr);
        tr.className = PrevClass;
    }
    PrevClass = temp;
    SelectedTr = TrId;
    ScrollToPaper(TrId, 1);
}
var pid
var cmd

function SetTradeCmnd(p, c) {
    if (!c) c = (window.event.offsetX > 15) ? 1 : 2;
    pid = p;
    cmd = c;
    //fn_jscript("dirtrade.ashx?pid=" + p + "&cmd=" + c + "&trade=1&");

    var t = document.getElementById("paperid");
    if (t) t.value = p;
    t = document.getElementById("cmd");
    if (t) t.value = c;

    fn_jscript("dirtradeIfr.ashx?pid=" + p + "&cmd=" + c + "&trade=1&");
}

function ClearPrevTr()
 {
    if (!hSelectedTrId) return;
    var t = document.getElementById(hSelectedTrId);
    if (t) t.value = "";
    if (document.getElementById(hIsFullScreenID))
		document.getElementById(hIsFullScreenID).value = "1";
    document.getElementById('paperid').value = "";
    document.getElementById('cmd').value = "";
}

function UnselectTr() {
    if (!SelectedTr) return;
    var tr = document.getElementById(SelectedTr);
    if (tr) {
        tr.className = PrevClass;
        PrevClass = null;
        SelectedTr = null;
    }
}

function UpdateIndexListGrid(root) {
    if (IsBlink) return;
    if (!IsMega) return;
    IsBlink = true;
    BlinkArray = new Array();
    var i = 0;
    for (i = 0; i < root.childNodes.length; i++) {
        var n = root.childNodes[i];
        var row = document.getElementById("tr" + n.selectSingleNode("PaperId").text);
        
        
        if (!row) continue;
        AddToBlink(row, n);
    }
    BlinkSec = 0;
    BlinkCells();
    SetDetails("SelRate", "shar", root);
    SetDetails("SelChange", "changepercent", root);
}

function SetDetails(element, attribute, node) {
    var at = node.getAttributeNode(attribute);
    var el = document.getElementById(element);
    if (at && el) el.innerHTML = at.value;
}

function AddToBlink(row, n) {
    if (BlinkCols) {
        var i = 0;
        for (i = 0; i < BlinkCols.length; i++)
            AddToBlinkArray(row.cells[BlinkCols[i][0]], n, BlinkCols[i][1]);
    }
    /*
    AddToBlinkArray(row.cells[6],n,"PaperRate");
    AddToBlinkArray(row.cells[5],n,"ChangeRate");
    AddToBlinkArray(row.cells[4],n,"BuyRate");
    AddToBlinkArray(row.cells[3],n,"SellRate");
    AddToBlinkArray(row.cells[2],n,"DailyVolume");
    AddToBlinkArray(row.cells[1],n,"DailyTmura");
    AddToBlinkArray(row.cells[0],n,"DailyNumDeals");
    */
}

function AddToBlinkArray(cel, node, NodeName) {
    var OldVal = cel.innerText;
    var NewVal = node.selectSingleNode(NodeName);
    if (!NewVal) return;
    var NewVal = NewVal.text;
    var nn = NodeName.toUpperCase();
    if (NewVal == "" || nn == "LASTDEALTIME") {
        if (NewVal == "00:00") NewVal = "";
        cel.innerText = NewVal;
        return;
    }
    var FloatOldVal = parseFloat(OldVal.replace(',', ''));
    var FloatNewVal = parseFloat(NewVal.replace(',', ''));
    if (FloatOldVal == FloatNewVal) return;
    var color = (FloatNewVal < FloatOldVal) ? DecClass : IncClass;
    BlinkArray.push(new Array(cel, color, NewVal));
    if (nn == "CHANGERATE") {
        cel.innerText = NewVal;
        if (FloatNewVal == 0)
            cel.className = "neutral";
        else
            cel.className = (FloatNewVal < 0) ? "negative" : "positive";
    }
    else if (nn == "DAILYNUMDEALS") {
        cel.innerText = NewVal;
    }
    else if (NewVal.indexOf(".") == -1 && OldVal.indexOf(".00") == OldVal.length - 3) {
        cel.innerText = NewVal.replace(".00", "") + ".00";
    }
    else if (NewVal.indexOf(".") != -1) {
        cel.innerText = NewVal;
    }
    else {
        cel.innerText = NewVal.replace(".00", "");
    }
}

function BlinkCells() {
    if (BlinkSec == 1) {
        BlinkSec = 0;
        RestoreBlink();
        IsBlink = false;
        return;
    }
    if (BlinkArray) {
        var i = 0, color;
        for (i = 0; i < BlinkArray.length; i++) {
            BlinkArray[i][0].className += BlinkArray[i][1];
        }
    }
    BlinkSec = 1;
    window.setTimeout("BlinkCells()", 700);
}

function RestoreBlink() {
    if (!BlinkArray) return;
    while (BlinkArray.length > 0) {
        var el = BlinkArray.pop()[0];
        if (el.className) {
            var css = el.className;
            el.className = css.replace(IncClass, "");
            el.className = el.className.replace(DecClass, "");
        }
    }
    BlinkArray = null;
}

function ClearBlink() {
    var t = document.getElementById(GridTableClientID);
    var i, j;
    for (i = 0; i < t.rows.length; i++) {
        for (j = 0; j < t.rows[i].cells.length; j++) {
            var cel = t.rows[i].cells[j];
            if (cel.className) {
                cel.className = cel.className.replace(DecClass, "").replace(IncClass, "");
            }
        }
    }
}
var ifm;
function openIframePro(w, h) {
    var IsNew = false;

    if (!ifm) {
        ifm = document.createElement('iframe');
        ifm.setAttribute("id", "IFramePro");
        ifm.setAttribute("margin", "0");
        ifm.setAttribute("frameBorder", "0");
        ifm.setAttribute("scrolling", "no");
        ifm.setAttribute("allowTransparency", "true");
        ifm.src = '../../trade/tradebuysell/TestTrade.aspx?paperid=' + pid + '&cmd=' + cmd + '&'
        //ifm.setAttribute("src","../../trade/tradebuysell/TestTrade.aspx?paperid="+pid+"&cmd="+cmd+"&");
        //frames["IFramePro"].location.href = "../../trade/tradebuysell/TestTrade.aspx?paperid="+pid+"&cmd="+cmd+"&";
        ifm.style.position = "absolute";
        ifm.style.top = 600 + "px";

        ifm.style.left = 0 + "px";
        IsNew = true;
    }
    ifm.setAttribute("height", h);
    ifm.setAttribute("width", w);
    //ifm.setAttribute("src",src);

    if (IsNew) window.document.body.appendChild(ifm);
    document.getElementById('tblNext').disabled = true;
    document.getElementById('tblNext').style.cursor = "";
    return ifm;
}

function CancelFullScreen() {
    //document.getElementById(hIsFullScreenID).value = "0";
    //SetDivSize();

    w = 820;
    h = 295;

    //Alexey changes
    //	var g = openIframePro(w,h);
    //	g.style.left=10
    //	g.style.top = 472
    //g.style.display = "block";

    //dp('trMisharPro', '');
    var TrId = "tr" + pid;
    if (SelectedTr == TrId) return;
    var tr = document.getElementById(TrId);
    if (!tr) {
        var temp = document.getElementById(hSelectedTrId);
        if (!temp) return;
        TrId = "tr" + temp.value;
        tr = document.getElementById(TrId);
        ScrollToPaper(TrId, true);
    }
    if (!tr) return;
    if (!PrevClass)
        PrevClass = tr.className;
    var temp = tr.className;

    tr.className += " sel";
    if (SelectedTr) {
        tr = document.getElementById(SelectedTr);
        tr.className = PrevClass;
    }

    PrevClass = temp;
    SelectedTr = TrId;
    //ScrollToPaper(TrId);
    document.getElementById(hSelectedTrId).value = pid;
    document.getElementById(hSelectedCmd).value = cmd;
    //document.getElementById(hIsFullScreenID).value = "1";
    var t = document.getElementById(hSelectedTrId);
    if (t) ScrollToPaper("tr" + t.value);
}

function ScrollToPaper(pid, IsLoaded)
 {
    //temporary
    if (document.getElementById("scrollingDiv"))
        return ScrollToPaperDom(pid, IsLoaded);

    if (pid.indexOf("undefined") != -1) return;
    var ResizeFlag = document.getElementById(hIsFullScreenID);
    if (ResizeFlag.value == "0" && !IsLoaded) return;
    var d = document.getElementById('DivGrid');
    ResizeFlag.value = "0";
    SetDivSize();
    var i = 0, h = 0;
    var t = document.getElementById(GridTableClientID);
    if (t) {
        for (i = 1; i < t.rows.length; i++) {
            var rect = t.rows[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
            if (t.rows[i].id == pid || t.rows[i].id == "tr" + pid) break;
        }
    }

    if (d && h > 100) d.scrollTop = h - 95;
}
function CheckDivHeightFF(div) {
    var dh = div.style.height;
    var h = 0;
    for (var i = 0; i < div.childNodes.length; i++) {
        if (div.childNodes[i].getBoundingClientRect) {
            var rect = div.childNodes[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
        }
    }
    var newH = 150;
    if (dh == "") dh = newH;
    var divIrame = document.getElementById("IfrDiv");
    //if (typeof (divIrame) == "undefined" || divIrame.offsetHeight == 0) {
    if (!divIrame || divIrame.offsetHeight == 0) {
        div.style.height = h + 2 + "px";
        div.style.overflow = "hidden";
        return;
    }

    //IfrDiv exists and has height>0
    if (dh >= h || h <= newH) {
        div.style.height = h + 2 + "px";
        div.style.overflow = "hidden";
    }
    else
    {
        div.style.height = newH + "px";
        IsScroll = true;
    }
}

//============================================
// Code for crossbrowser Custom DataGrid
//============================================			
function SetTableHeight() {
    if (fn_identifybrowser() == "ie")
        return SetDivHeightIE();

    var div = document.getElementById("scrollingDiv");
    if (!div) return;


    var grid = document.getElementById(GridTableClientID);
    var tbodySection = grid.getElementsByTagName('tbody')[0];
    var theadSection = grid.getElementsByTagName('thead')[0];

    var divIrame = document.getElementById("IfrDiv");
    //if (typeof(divIrame)=="undefined" || divIrame.offsetHeight == 0)
    if (!divIrame || divIrame.offsetHeight == 0) {
        tbodySection.style.height = "";
        return;
    }

    var dh = div.style.height;
    var h = 0;
    for (var i = 0; i < div.childNodes.length; i++) {
        if (div.childNodes[i].getBoundingClientRect) {
            var rect = div.childNodes[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
        }
    }
    var newH = 150;
    if (dh == "") dh = newH;

    //IfrDiv exists and has height>0
    if (dh >= h || h <= newH) {
        tbodySection.style.height = "";
        SetPaddinglastCell(offsetWithoutScroll);
    }
    else {
        tbodySection.style.height = newH - theadSection.offsetHeight + "px";
        SetPaddinglastCell(offsetScroll);
    }
}

function ScrollToPaperDom(pid, IsLoaded)
{
    if (pid.indexOf("undefined") != -1) return;
    var ResizeFlag = document.getElementById(hIsFullScreenID);
    if (ResizeFlag.value == "0" && !IsLoaded) return;

    ResizeFlag.value = "0";
    SetTableHeight();
    var i = 0, h = 0;
    var t = document.getElementById(GridTableClientID);
    if (t) {
        for (i = 1; i < t.rows.length; i++) {
            var rect = t.rows[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
            if (t.rows[i].id == pid || t.rows[i].id == "tr" + pid) break;
        }
    }
    //if(h > 100) d.scrollTop = h - 95;
}
function SetDivSizeDom() 
{
    var v = document.getElementById("CancelScroll");
    if (v && v.value == "1") {
        v.value = "";
        return;
    }
    //var r = document.getElementById(hIsFullScreenID);


    var div = document.getElementById('scrollingDiv');
    if (!div) return;
    if (typeof(hIsFullScreenID) == "undefined") return;
    var ResizeFlag = document.getElementById(hIsFullScreenID);


    if (ResizeFlag.value == "1")
    {
        if (IsIE)
            div.style.overflow = "";
        else
            SetPaddinglastCell(offsetWithoutScroll);

        //UndoScrollTableDom();
        UnselectTr();
    }
    else
    {
        if (IsIE)
            div.style.overflow = "auto";

        ScrollTableDom();
    }
    SetTableHeight();
}
function ScrollTableDom()
 {

    var full = document.getElementById(hIsFullScreenID);
    if (!full || full.value == "1") return;
    var t = document.getElementById(GridTableClientID);
    if (!t || t.rows.length < 1) return;
    t.rows[0].className += " fixed";
    //var pager = document.getElementById(PagerClientID);
    //	if(pager) 
    //		//pager.style.visibility="hidden";
    //		return;

    //	var d = document.getElementById('scrollingDiv');
    //	var dh = parseInt(d.style.height);
    //	var rect = t.getBoundingClientRect();
    //	
    //	if(rect.bottom - rect.top > dh && pager.className.indexOf(" GridPaging") == -1)
    //		pager.className += " GridPaging";
}

//don't use
function UndoScrollTableDom() {
    var t = document.getElementById(GridTableClientID);
    if (!t || t.rows.length < 1) return;
    var pager = document.getElementById(PagerClientID);
    if (pager) {
        var s = pager.className.split(" GridPaging");
        if (s && s.length > 0)
            pager.className = s[0];
    } 
     SetPaddinglastCell(offsetWithoutScroll);
}

function SetDivHeightIE()
{
    var div = document.getElementById("scrollingDiv");
    if (!div) return;

    var h = 0;
    for (var i = 0; i < div.childNodes.length; i++)
    {
        if (div.childNodes[i].getBoundingClientRect)
        {
            var rect = div.childNodes[i].getBoundingClientRect();
            h += (rect.bottom - rect.top);
        }
    }
    var divIrame = document.getElementById("IfrDiv");

    var full = document.getElementById(hIsFullScreenID);

    if (!divIrame || divIrame.offsetHeight == 0)
    {
        return;
    }
    if (divIrame.offsetHeight <= 18)
    {
        var isFirstTime = document.getElementById('hFirstTime').value;
        div.style.height = h + 2 + "px";
        //div.style.height = div.offsetHeight + 2 + "px";
        return;
    }
    var dh = div.style.height;
    var newH = 150;
    if (dh == "") dh = newH;

    //IfrDiv exists and has height>18
    if (dh >= h || h <= newH)
    {
        div.style.height = h + 2 + "px";
        div.style.overflow = "hidden";
    }
    else
    {
        div.style.height = newH + "px";
        div.style.overflow = "scroll"
    }
}

function SetPaddinglastCell(n)
{
    if (!IsFF)
        //return SetPaddinglastCellChrome(n);
        return;		//debug
    var i;
    var grid = document.getElementById(GridTableClientID);
    var tbodySection = grid.getElementsByTagName('tbody')[0];
    var theadSection = grid.getElementsByTagName('thead')[0];
    var trs = tbodySection.getElementsByTagName('tr');
    for (i = 0; i < trs.length; i++)
    {
        var tds = trs[i].getElementsByTagName('td')
        if (tds.length > 1)
        {
            tds[tds.length - 1].style.paddingRight = n;

        }
    }

}
function SetPaddinglastCellChrome(n)
{
    var i;
    var grid = document.getElementById(GridTableClientID);
    var tbodySection = grid.getElementsByTagName('tbody')[0];
    var theadSection = grid.getElementsByTagName('thead')[0];
    var trs = tbodySection.getElementsByTagName('tr');
    var ths = grid.getElementsByTagName('th');

    var thLast = grid.getElementsByTagName('th')[ths.length - 1]
    var tds = trs[0].getElementsByTagName('td');
    var tdLast = tds[tds.length - 1]
    if (n == offsetScroll)
    {
        thLast.style.width = widthPxToInt(thLast.style.width) + offsetScroll * 2 + "px";
        tdLast.style.width = widthPxToInt(tdLast.style.width) + offsetScroll * 2 + "px";
    }
    else
    {
        thLast.style.width = widthPxToInt(thLast.style.width) - offsetScroll * 2 + "px";
        tdLast.style.width = widthPxToInt(tdLast.style.width) - offsetScroll * 2 + "px";
    }


}

function SetFirstTimeValue()
{
    if (!document.getElementById('scrollingDiv')) return;
	var divs = document.getElementsByTagName("div");
    var i
   for (i=0; i<divs.length; i++)
    {
		if (divs[i].id == "scrollingDiv")
		{
			var grid = GetFixedHeaderGridFromDiv(divs[i]);
			if (grid)
			{
				if (grid.getAttribute("IsSetTradeCmnd").toUpperCase()=="FALSE")
				{
					divs[i].className="";
					return;
				}
				if (IsChrome)
					return freezeOneGridViewHeaderForChrome(grid);
				if (IsSafari)
					return freezeOneGridViewHeaderForChrome(grid);
				if (IsFF)
					return freezeOneGridViewHeaderForChrome(grid);
				if (IsOpera)
					//return freezeGridViewHeaderForChrome(grid);
					freezeOneGridViewHeaderForOpera(grid);
				if (IsIE)
					return freezeOneGridViewHeaderForIE(grid);

			}
		}
    }

}

//Save Cells Width


function freezeOneGridViewHeaderForOpera(grid) //todo
{
    //var grid = document.getElementById(GridTableClientID);
    if (!grid) return;
    
    var i
    var theadSection = grid.getElementsByTagName('thead')[0];
    var tbodySection = grid.getElementsByTagName('tbody')[0];
    theadSection.style.display="table";
	tbodySection.style.display="table";
    
    var trsHeader = theadSection.rows;

     //Save original header cells width
    var arrRowsWithHeader = new Array(trsHeader.length);
    for (i = 0; i < trsHeader.length; i++)
    {
        var cells = trsHeader[i].cells;
        var arrCellWithHeader = new Array(cells.length);
        for (j = 0; j < cells.length; j++)
        {
            arrCellWithHeader[j] = getStyle(cells[j], 'width');
        }
        arrRowsWithHeader[i] = arrCellWithHeader;
    }

    //Save original body's td cells width
    var trFirst = tbodySection.rows[0];  //first tr row
    var tdsFirst = trFirst.cells;

    var arrCellWithBody = new Array(tdsFirst.length);
    for (i = 0; i < tdsFirst.length; i++)
    {
        arrCellWithBody[i] = getStyle(tdsFirst[i], 'width');
    }

    //Add style to enable scrolling
    theadSection.style.display = "block";
    tbodySection.style.display = "block";

    //restore width after display block

    //restore Header
    for (i = 0; i < trsHeader.length; i++)
    {
        var cells = trsHeader[i].cells;
        arrCellWithHeader = arrRowsWithHeader[i];
		for (j = 0; j < cells.length; j++)
        {
            cells[j].style.width = arrCellWithHeader[j];
        }
    }
    
    //restore body
    for (var i = 0; i < tdsFirst.length; i++)
    {
        tdsFirst[i].style.width = arrCellWithBody[i];
        //tdsFirst[i].style.width = widthPxToInt(arrCellWithBody[i]) - 1 + "px";
    }

}

//==================
function GetFixedHeaderGridFromDiv(div)
{
    var grids =  div.getElementsByTagName("table");
    if (!grids) return null;
    
    //if (grids[1].getAttribute("IsSetTradeCmnd").toUpperCase()=="TRUE")
        return grids[1];
        
    return null;
}
function freezeGridViewHeaderForChrome()
{
	
	
	var divs = document.getElementsByTagName("div");
    var i
    for (i=0; i<divs.length; i++)
    {
		if (divs[i].id == "scrollingDiv")
		{
			var grid = GetFixedHeaderGridFromDiv(divs[i]);
			if (grid)
				freezeOneGridViewHeaderForChrome(grid);
		}
    }
}

function freezeOneGridViewHeaderForChrome(grid)
{
    if (!grid) return;
    if (grid.getAttribute("IsSetTradeCmnd").toUpperCase() == "FALSE") return;
    var i
    var theadSection = grid.getElementsByTagName('thead')[0];
    var tbodySection = grid.getElementsByTagName('tbody')[0];
    
    
    var trsHeader = theadSection.rows;

     //Save original header cells width
    var arrRowsWithHeader = new Array(trsHeader.length);
    for (i = 0; i < trsHeader.length; i++)
    {
        var cells = trsHeader[i].cells;
        var arrCellWithHeader = new Array(cells.length);
        for (j = 0; j < cells.length; j++)
        {
            arrCellWithHeader[j] = getStyle(cells[j], 'width');
        }
        arrRowsWithHeader[i] = arrCellWithHeader;

    }

    //Save original body's td cells width
    var trFirst = tbodySection.rows[0];  //first tr row
    var tdsFirst = trFirst.cells;

    var arrCellWithBody = new Array(tdsFirst.length);
    for (i = 0; i < tdsFirst.length; i++)
    {
        arrCellWithBody[i] = getStyle(tdsFirst[i], 'width');
        //for last cell add 20 px for scroll
        //if (i == tdsFirst.length-1)
		//	arrCellWithBody[i] = widthPxToInt(arrCellWithBody[i]) + 20 + "px";
    }

    //Add style to enable scrolling
    theadSection.style.display = "block";
    tbodySection.style.display = "block";

    //restore width after display block

    //restore Header
    for (i = 0; i < trsHeader.length; i++)
    {
        var cells = trsHeader[i].cells;
        arrCellWithHeader = arrRowsWithHeader[i];
		for (j = 0; j < cells.length; j++)
        {
            cells[j].style.width = arrCellWithHeader[j];
        }
    }
    
    //restore body
    for (var i = 0; i < tdsFirst.length; i++)
    {
		/*if (trsHeader.length == 1)
			tdsFirst[i].style.width = arrRowsWithHeader[0][i];
		else*/
			tdsFirst[i].style.width = arrCellWithBody[i];
    }
    if (IsScroll) thLast.style.paddingRight = offsetScroll;

}

//==================
function freezeOneGridViewHeaderForIE(grid)
{

    var grid = document.getElementById(GridTableClientID);
    if (grid == 'undefined') return;

    var theadSection = grid.getElementsByTagName('thead')[0];
    var trHead = theadSection.getElementsByTagName('tr')[0];  //first tr row
}

function freezeOneGridViewHeaderForFF(grid)
{
    SetDivSize();
	ScrollTable();
}

function getStyle(oElm, strCssRule)
{
    var strValue = "";
    if (document.defaultView && document.defaultView.getComputedStyle)
    {
        strValue = document.defaultView.getComputedStyle(oElm,
                               "").getPropertyValue(strCssRule);
    }
    else if (oElm.currentStyle)
    {
        strCssRule = strCssRule.replace(/\-(\w)/g, function(strMatch, p1)
        {
            return p1.toUpperCase();
        });
        strValue = oElm.currentStyle[strCssRule];
    }
    return strValue;
}
function widthPxToInt(width) {
    width = width.substr(0, width.length - 2);
    return new Number(width);
}




