if(!window.wSettings) window.wSettings = {
 confirm_close:1,
 not_move_top:0
};

if (typeof(Element)=='undefined'){
	IE6 = {}; Element = function(){};
	IE7 = navigator.userAgent.indexOf('MSIE 7')>-1;
} else {IE6 = false; IE7 = false;}

if(!Element.prototype.getElementsByClassName)
Element.prototype.getElementsByClassName = function(cl,tag)
{
	var r = [];
	tag = tag ? tag : 'DIV';
	var els = this.getElementsByTagName(tag);
	var len = els.length;
	for(var i=0;i<len;i++)
	{
		if(els[i].className == cl) r.push(els[i]);
	}
	return r;
}

function inst(id)
{
	return id.split('_')[0];
}

function toggleWindow(e)
{
    if(window.fullscreenWin)
    {
        fullscreenWindow(e,true);
        return;
    }
    var b = $(inst(e.id)+'_window_body');
    if (b.style.display=='none' || !b.offsetHeight)
    {
    	b.style.display = 'block';
        e.alt = window.lang['collapse'];
        e.src = e.src.replace('btn_toggle_ex','btn_toggle');
    }
    else
    {
    	b.style.display = 'none';
        e.alt = window.lang['expand'];
        e.src = e.src.replace('btn_toggle','btn_toggle_ex');
    }
    e.title = e.alt;
    var r = $(inst(e.id)+'_window_resize');
    if (r) r.style.display = b.style.display;
    windowsLineUp(true);
}

function closeWindow(e)
{
    if(wSettings.confirm_close)
    {
        var t = stripTags($(inst(e.id)+'_window_title').innerHTML);
        if (!confirm(window.lang['conf_close']+t+'"?')) return;
    }
    dropWindow(e.id);
}

function dropWindow(ins)
{
    var b = $(inst(ins)+'_window_border');
    b.style.display = 'none';
    if (window.fullscreenWin) fullscreenWindow(b,true);
    $_(b);
    windowsLineUp(true);
}

function fullscreenWindow(e,minimize)
{
    var b = $(inst(e.id)+'_window_border');
    var bd = $(inst(e.id)+'_window_body');
    var r = $(inst(e.id)+'_window_resize');
    var bl = $('bodyline');
    if(!window.fullscreenWin)
    {
  	    $('bar_button_1').style.display = 'none';
  	    $('bar_button_2').style.display = 'none';

        if (bl.getElementsByClassName)
            var els = bl.getElementsByClassName('window_border');
        else var els = ie6getElementsByClassName(bl,'window_border');

        var len = els.length;
        for(var i=0;i<len;i++)
        {
        	if (els[i].id==b.id) continue;
        	els[i].style.display = 'none';
        }

        if (r) r.style.display = 'none';
        if (bd.style.display=='none' || !bd.offsetHeight)
        {
            toggleWindow($(inst(e.id)+'_window_button_toggle'));
        }

        window.fullscreenWin = b;
        if(!window.fullscreenOld) window.fullscreenOld = [b.style.width, b.style.left, b.style.top, bd.style.height || false];
        b.style.zIndex = 100;
        b.style.width = (bl.offsetWidth - 4) +'px';

        var left = 1;//bl.offsetLeft-1;
        var top = bl.offsetTop;
        if (IE6)
        {
        // 	left += IE6.left;
           	top += IE6.top;
        }
        b.style.left = left+'px';
        b.style.top = top+'px';

        windowLineToper();

        window.setTimeout(windowsLineUp, 100);
    }
    else
    {
        if (minimize)
        {
            b.style.zIndex = 98;
            b.style.width = window.fullscreenOld[0];
            b.style.left = window.fullscreenOld[1];
            b.style.top = window.fullscreenOld[2];
            window.fullscreenOld = false;

	        if (bl.getElementsByClassName)
	            var els = bl.getElementsByClassName('window_border');
	        else var els = ie6getElementsByClassName(bl,'window_border');

	        var len = els.length;
	        for(var i=0;i<len;i++)
	        {
	        	if (els[i].id==b.id) continue;
	        	els[i].style.display = 'block';
	        }

	        if (r) r.style.display = 'block';

	        selectNewPosition(b);
	        window.fullscreenWin = false;
	    	windowsLineUp();
	    	windowHilight($(inst(e.id)+'_window_title'));
    	}
    	else if (confirm(lang.conf_to_http))
    	{
                var url = $(inst(e.id)+'_window_loader').value;
                var last = url[url.length-1];
	            if (last!='/') url += '/';
	            window.location.href = url;
    	}
    }
}

function printWindow(el)
{
	var t = stripTags($(inst(el.id)+'_window_title').innerHTML);
    if (!confirm(window.lang['conf_print']+t+'"?')) return;
    window.open('/print'+getWindowLoader(el.id),'_blank');
}

function setWindowBody(id, html)
{
    $(inst(id)+'_window_body').innerHTML = html;
    window.setTimeout(windowsLineUp,100);
}

function getWindowLoader(id)
{
    return $(inst(id)+'_window_loader').value;
}

function setWindowLoader(id, loader)
{
    $(inst(id)+'_window_loader').value = loader;
    windowsLineUp(true);
}


function windowPadBody(ins, p)
{
    var b = $(inst(ins)+'_window_body');
    if(b) b.style.padding = p+'px';
}

window.hilightItems = [];
function windowHilight(el,decor,iter,msec)
{
    if(el.id)
    {
        if (!window.hilightItems[el.id])
            window.hilightItems[el.id] = true;
        else return;
    }
    this.cl = el.className;
    this.iter = iter ? iter : 10;
    this.msec = msec ? msec : 70;
    this.decor = decor ? decor : 'hilight';
    var me = this;
    this.blink = function()
    {
    	el.className = (el.className==me.cl) ? me.cl+' '+me.decor : me.cl;
    	if (me.iter--) window.setTimeout(me.blink, me.msec);
    	else
    	{
    	    el.className=me.cl;
    	    if(el.id) window.hilightItems[el.id] = false;
    	}
    }
    this.blink();
    scTV(el);
};

function windowNew(el, event, after)
{
   if(window.opera && !event.opera && !window.fullscreenWin) return;
   event = event ? event : window.event;

   var xW = event ? event.clientX : 0;

   //// for open in middle column by click on left column
   if(window.bar_width[0] && window.bar_width[0]<350 && xW<350) xW += 350;
   ////////////////////////////////////////////////////////////////////////

   var yW = event ? event.clientY : 0;
   var url = typeof(el.href) == 'undefined' ? el : el.href;

   if(event.shiftKey)
   {
       window.open(url);
       return;
   }

   var already = getNextInst(url);
   if (already!==false)
   {
   	   if (already.single==1)
   	   {
   	   	   if(!wSettings.not_open_same) alert(lang.window+' "'+already.title+'" '+lang.opened_single);
   	   	   new windowHilight($(already.ins+'_window_title'));
   	   	   return false;
   	   }
   	   else
   	   {
   	       if (wSettings.not_open_same)
   	       {
   	   	       new windowHilight($(already.ins+'_window_title'));
   	           return false;
   	       }
   	       if (!confirm(lang.window+' "'+already.title+'" '+lang.opened))
   	       {
   	   	       new windowHilight($(already.ins+'_window_title'));
   	           return false;
   	       }
   	   }
   }

   if(window.ProgressCount>0)
   {
       windowHilight($('index_progress'));
       return;
   }

   startProgress();

   var ins = window.wNextInst;
   var nextFull = false;
   if(window.fullscreenWin)
   {
       fullscreenWindow(window.fullscreenWin,true);
       nextFull = true;
   }

   url = '/index'+url+'?inst='+ins+'&window=new';
   (new CAjax()).req(url,function(q){
   	   stopProgress();
   	   if (!q)
   	   {
   	       alert(lang.forbidden);
   	       return;
       }

       var w = document.createElement('DIV');
       w.className = 'window_border';
       w.id = ins+'_window_border';
       w.innerHTML = q;
       $('bodyline').appendChild(w);

       if (!$(ins+'_window_title')) return;
       if ($(ins+'_title')) $(ins+'_window_title').innerHTML = '<span title="'+
            quot($(ins+'_title').value)+'">'+$(ins+'_title').value+'</span>';

       w.style.left = xW + 'px';
       w.style.top = yW + 'px';
       w.style.width = '20px'
       selectNewPosition(w,xW,yW);
       windowsLineUp(true);
       if (nextFull) fullscreenWindow(w); else scTV(w);
       if (after && typeof(after)=='function') after(ins);
       loadWindow(ins);

   });
   return false;
}

window.ProgressCount = 0;

function startProgress()
{
   window.ProgressCount++;
   if ($('index_progress').style.visibility=='hidden')
   {
       $('index_progress_tm').innerHTML = '0.00';
       $('index_progress').style.visibility = '';
       progressTimer();
   }
}

function progressTimer()
{
	if($('index_progress').style.visibility == 'hidden') return;
    var im = $('index_progress_tm');
    var t = im.innerHTML.replace('.','');
    t++;
    var p = parseInt(t%100);
    if (p<10) p = '0'+p;
    im.innerHTML = parseInt(t/100)+'.'+p;
    window.setTimeout(progressTimer,10);
}

function stopProgress()
{
   window.ProgressCount--;
   if(window.ProgressCount==0)
       $('index_progress').style.visibility = 'hidden';
}

function drag_new(evt, url, after)
{
    if(window.fullscreenWin) return;

    var dob = $('window_new');

    evt = evt || window.event;

    var btn = (typeof(evt.button)!=undefined) ? evt.button : 0;
    if (document.all && !window.opera)
    {
        switch (btn)
        {
            case 1: btn = 0; break;
            case 4: btn = 1; break;
            default: btn = 2;
        }
    }
    if(btn>0) return;

    document.body.onselectstart = function(){return false}

    dob.style.zIndex = '99';
    dob.mousePosX = evt.clientX;
    dob.mousePosY = evt.clientY;
    dob.style.top = getBodyScrollTop() + dob.mousePosY - 10 + 'px';
    dob.style.left = getBodyScrollLeft() + dob.mousePosX - 10 + 'px';
    dob.style.display = 'block';

    if(evt.preventDefault)
       evt.preventDefault();
    else
       evt.returnValue = false;

    document.onmouseup = function()
    {
        document.body.onselectstart = function(){return true}
        var x = parseInt(dob.style.left);
        var y = parseInt(dob.style.top);
        dob.style.display = 'none';
        windowNew(url,{clientX:x,clientY:y,opera:true,shiftKey:evt.shiftKey},after);
        document.onmouseup = function() {};
        document.onmousemove = function() {};
    };

    document.onmousemove = function(evt)
    {
        evt = evt || window.event;
        posLeft = !dob.style.left ? dob.offsetLeft : parseInt( dob.style.left );
        posTop = !dob.style.top ? dob.offsetTop : parseInt( dob.style.top );
        mousePosX = evt.clientX;
        mousePosY = evt.clientY;
        dob.style.left = posLeft + mousePosX - dob.mousePosX + 'px';
        dob.style.top = posTop + mousePosY - dob.mousePosY + 'px';
        dob.mousePosX = mousePosX;
        dob.mousePosY = mousePosY;
    };
}

window.wNextInst = false;
function getNextInst(url)
{
	var bl = $('bodyline');
	if (bl.getElementsByClassName)
        var el = bl.getElementsByClassName('window_border');
    else var el = ie6getElementsByClassName(bl,'window_border');

    var len = el.length, loader = false, sng = 0, ins = 0, x, ld, sins;
	for(var i=0;i<len;i++)
	{
	    x = inst(el[i].id);
        if (window.wNextInst===false && x>ins) ins = x;
       	ld = $(x+'_window_loader').value;
        if (url==ld || url==ld+'/' || url+'/'==ld)
        {
        	sng = $(x+'_window_single').value;
        	sins = x;
            loader = stripTags($(x+'_window_title').innerHTML);
        	if (window.wNextInst!==false) break;
        }
	}
	if (sng<1)
	{
	    if (window.wNextInst===false) window.wNextInst = ins;
        window.wNextInst++;
	}
	for(var i=0;i<len;i++)
	{
	    x = inst(el[i].id);
		if(x==window.wNextInst) window.wNextInst++;
	}
	if (loader===false) return false;
	return {title:loader,single:sng,ins:sins};
}

window.newLoader = false;
function loadWindow(id,loader)
{
    if (loader)
    {
        $(inst(id)+'_window_loader').value = loader;
        window.newLoader = true;
    }
    refreshWindow({id:''+id});
}

function refreshWindow(e)
{
    if (typeof(e.id)=='undefined') e['id'] = e;
    var ins = inst(e.id);
    if (!$(ins+'_window_loader')) return;
    var url = $(ins+'_window_loader').value;
    if (!url.length) return;
    var itTimer = false;
    if(window.reloadTimers && window.reloadTimers[ins])
    {
         itTimer = true;
    	 window.reloadTimers[ins].destruct();
    }
    var s = url.split('?');
    if (s[1])
    	url = s[0]+'?'+s[1]+'&inst'+ins;
    else
    	url = s[0]+'?inst='+ins;

    var b = $(inst(e.id)+'_window_body');
    var t = $(inst(e.id)+'_window_title');

    if(!itTimer) setWindowProgress(inst(e.id));

    (new CAjax()).req(url, function(q){
    	b.innerHTML = q;
    	var ttl = $(ins+'_title');
    	if (ttl) t.innerHTML = '<span title="'+quot(ttl.value)+'">'+ttl.value+'</span>';
        window.setTimeout(windowsLineUp, itTimer ? 5000 : 100);
        var tme = $(ins+'_window_timer');
        if(tme)
        {
            tme = parseInt(tme.value);
            if(tme) windowRTimer(ins,tme);
        }
    });
}

function setWindowProgress(ins)
{
	setWindowBody(ins, lang.load);
	window.hlP = ins;
	window.setTimeout(hlPHl,150);
}

function hlPHl()
{
	scTV($(inst(window.hlP)+'_window_title'));
}

function sizeWindow(e)
{
    if(window.fullscreenWin) return;
    if (typeof(e.id)=='undefined') e['id'] = e;
    var el = $(inst(e.id)+'_window_body');
    if (el.style.overflow!='auto') return;
    el.style.overflow = 'hidden';
    el.style.height = 'auto';
    windowsLineUp(true);
}

function resize_object(evt, obj)
{
    if(window.fullscreenWin) return;

    document.body.onselectstart = function(){return false}
    document.body.style.cursor = 'n-resize';

    evt = evt || window.event;
    var mouseResizeY = evt.clientY;

    var b = $(inst(obj.id)+'_window_border');

    obj = $(inst(obj.id)+'_window_body');
    obj.style.cursor = 'n-resize';

    var objResizeH = parseInt(obj.offsetHeight);
    obj.style.overflow = 'auto';

    b.style.zIndex = '99';
    obj.clicked = true;
    obj.mousePosX = evt.clientX;
    obj.mousePosY = evt.clientY;

    if(evt.preventDefault)
       evt.preventDefault();
    else
       evt.returnValue = false;

    document.onmouseup = function()
    {
        document.body.onselectstart = function(){return true}
        document.body.style.cursor = 'default';
        obj.style.cursor = 'default';
        obj.clicked = false;
        b.style.zIndex = '98';
        windowsLineUp(true);
        var e = $(inst(obj.id)+'_on_resize'); if (e) eval(e.value);
        document.onmouseup = function() {};
        document.onmousemove = function() {};
    };

    document.onmousemove = function(evt)
    {
        evt = evt || window.event;
        if(obj.clicked)
        {
            var hh = objResizeH + evt.clientY - mouseResizeY - 5;
            if (hh<15) hh=15;
            obj.style.height = hh+'px';
            var e = $(inst(obj.id)+'_on_resize'); if (e) eval(e.value);
        }
    };
}

function rowResizeProc()
{
    if(!window.rowResize) return;
    for(var i in window.rowResize) window.rowResize[i]();
}

function row_object(evt, obj)
{
    if(window.fullscreenWin) return;

    document.body.style.cursor = 'e-resize';
    document.body.onselectstart = function(){return false}

    evt = evt || window.event;

    var id = obj.id.split('_')[2] - 1;

    obj.clicked = true;
    obj.mousePosX = evt.clientX;
    obj.mousePosY = evt.clientY;

    if(evt.preventDefault)
       evt.preventDefault();
    else
       evt.returnValue = false;

    document.onmouseup = function()
    {
        document.body.onselectstart = function(){return true}
        document.body.style.cursor = 'default';
        obj.clicked = false;
        windowsLineUp(true);
        document.onmouseup = function() {};
        document.onmousemove = function() {};
    };

    document.onmousemove = function(evt)
    {
        var PAD = 2;
        evt = evt || window.event;
        if(obj.clicked)
        {
            //posLeft = !obj.style.left ? obj.offsetLeft : parseInt( obj.style.left );
            posLeft = obj.offsetLeft+2;
            mousePosX = evt.clientX;
            obj.style.left = posLeft + mousePosX - obj.mousePosX + 'px';
            obj.mousePosX = mousePosX;
            if (id==0)
            {
                window.bar_width[id] = parseInt(obj.style.left) - PAD;
            }
            else
            {
            	if (window.bar_width[0]==false)
            	{
            	    var lef = parseInt($('bar_button_1').style.left);
            	    if (!lef) lef = $('bar_button_1').offsetLeft;
            	    window.bar_width[0] = lef - PAD;
            	}
            	window.bar_width[id] = parseInt(obj.style.left) - PAD - window.bar_width[0];
            }
            if (id==0)
            {
                if (window.bar_width[id]<200) window.bar_width[id] = 200;
                if (window.bar_width[1]!==false)
                {
                    if (window.bar_width[1] + window.bar_width[0] > 1200 - PAD*2) window.bar_width[0] = 1200 - PAD*2 - window.bar_width[1];
                }
                else if (window.bar_width[id]>600) window.bar_width[id] = 600;
            }
            else
            {
                if (window.bar_width[id]<200) window.bar_width[id] = 200;
            	if (window.bar_width[1] + window.bar_width[0] > 1200 - PAD*2) window.bar_width[1] = 1200 - PAD*2 - window.bar_width[0];
            }
            windowsLineUp();
        }
    };
}

function drag_object(evt, obj)
{
    if(window.fullscreenWin) return;
    document.body.onselectstart = function(){return false}

    evt = evt || window.event;
    var h = obj;
    h.style.cursor = 'move';
    obj = $(inst(obj.id)+'_window_border');
    obj.style.zIndex = '99';
    obj.clicked = true;
    obj.mousePosX = evt.clientX;
    obj.mousePosY = evt.clientY;

    if(evt.preventDefault)
       evt.preventDefault();
    else
       evt.returnValue = false;

    document.onmouseup = function()
    {
        document.body.onselectstart = function(){return true}
        h.style.cursor = 'default';
        obj.clicked = false;
        obj.style.zIndex = '98';
        selectNewPosition(obj);
        windowsLineUp(true);
        scTV(obj);
        document.onmouseup = function() {};
        document.onmousemove = function() {};
    };

    document.onmousemove = function(evt)
    {
        evt = evt || window.event;
        if(obj.clicked)
        {
            posLeft = !obj.style.left ? obj.offsetLeft : parseInt( obj.style.left );
            posTop = !obj.style.top ? obj.offsetTop : parseInt( obj.style.top );
            mousePosX = evt.clientX;
            mousePosY = evt.clientY;
            obj.style.left = posLeft + mousePosX - obj.mousePosX + 'px';
            obj.style.top = posTop + mousePosY - obj.mousePosY + 'px';
            obj.mousePosX = mousePosX;
            obj.mousePosY = mousePosY;
        }
    };
}

function selectNewPosition(obj,xo,yo)
{
   	var top = yo ? yo : parseInt(obj.style.top);
   	var left = xo ? xo : parseInt(obj.style.left);
    var ow = xo ? 10 : Math.round(parseInt(obj.style.width)/2);

    var b = $('bodyline');
    var w = createColumnsByWidth(parseInt(b.offsetWidth),8);
   	var columns = w[0];
   	var rlen = columns.length;

   	var col = 0;
   	if (rlen>1 && left+ow>columns[0]) col = 1;
   	if (rlen==3 && left+ow>columns[0]+columns[1]) col = 2;

   	var row = 0;

	if (b.getElementsByClassName)
        var el = b.getElementsByClassName('window_border');
    else var el = ie6getElementsByClassName(b,'window_border');

    var len = el.length;
    var colEls = [];
    for(var i=0;i<len;i++)
    {
        var al = $(inst(el[i].id)+'_window_align');
        if (!al.value) continue;
        var s = al.value.split('_');
        if (parseInt(s[0])!=col) continue;
        var num = parseInt(s[1]);
        if(!colEls[num]) colEls[num] = el[i];
    }

    len = colEls.length;
    var fn = false;
    for(i=0;i<len;i++)
    {
        if (!colEls[i]) continue;
        if (!fn && top<parseInt(colEls[i].style.top))
        {
        	row = i;
        	if (colEls[i].id==obj.id) break;
        	fn = true;
        }
        if (fn) $(inst(colEls[i].id)+'_window_align').value = col+'_'+(i+1);
   	}
   	if (!fn) row = len;
   	$(inst(obj.id)+'_window_align').value = col+'_'+row;
};

function windowFSWidth()
{
    if (window.fullscreenWin)
        window.fullscreenWin.style.width = ($('bodyline').offsetWidth-4)+'px';
}

function windowsLineUp(d)
{
    if (window.fullscreenWin)
    {
        $('bodyline').style.height = parseInt(window.fullscreenWin.offsetHeight)+'px';
        window.setTimeout(windowFSWidth,100)
        window.fullscreenWin.style.width = ($('bodyline').offsetWidth-4)+'px';
        return;
    }

    if(window.newLoader)
    {
    	d = true;
    	window.newLoader = false;
    }

    var PAD = 8;
    var b = $('bodyline');
    var w = createColumnsByWidth(parseInt(b.offsetWidth),PAD);
   	var columns = w[0];
  	var rows = w[1];
    var rows_count = w[2];
    var rlen = rows.length;
    var e = [];
    for (var i=0;i<rlen;i++) e[i] = [];
    var e1 = [];

    if (b.getElementsByClassName)
        var el = b.getElementsByClassName('window_border');
    else var el = ie6getElementsByClassName(b,'window_border');

    var len = el.length;

    for(i=0;i<len;i++)
    {
        var al = $(inst(el[i].id)+'_window_align');
        if (!al) continue;

    	if (!al.value)
    	{
    	    e1.push(el[i]);
    	    continue;
    	}

    	var c = al.value.split('_');
    	var col = parseInt(c[0]);

    	if (!e[col])
    	{
    	    e1.push(el[i]);
    	    continue;
    	}
    	var row = parseInt(c[1]);
    	if (e[col][row])
    	{
    	    e1.push(el[i]);
    	    continue;
        }
        e[col][row] = el[i];
    }


    for(var j=0;j<rlen;j++)
    {
    	var ilen = e[j].length;
    	for(i=0;i<ilen;i++)
    	{
            if (!e[j][i]) continue;
            var top = parseInt(b.offsetTop) + rows[j] + PAD;
            var left;
            switch(j)
            {
        	    default:
        	    {
        		    left = parseInt(b.offsetLeft) + PAD;
        		    break;
        	    }
        	    case 1:
        	    {
        		    left = parseInt(b.offsetLeft) + columns[0] + PAD;
        		    break;
        	    }
        	    case 2:
        	    {
        		    left = parseInt(b.offsetLeft) + columns[0] + columns[1] + PAD;
        		    break;
        	    }
            }

            if (IE6)
            {
            	left += IE6.left-1;
            	top += IE6.top-1;
            }

            e[j][i].style.left = left + 'px';
            e[j][i].style.top = top + 'px';
            e[j][i].style.width = (columns[j]-PAD-PAD/2)+'px';
            rows[j] += parseInt(e[j][i].offsetHeight)+PAD;
            if(d===true) $(inst(e[j][i].id)+'_window_align').value = j+'_'+rows_count[j];
            rows_count[j]++;
    	}
    }


    var len = e1.length;
    for (i=0;i<len;i++)
    {
        j = 0;
        var s = 9999999;
        for(var k=0;k<rlen;k++)
        {
        	if (s>rows[k])
        	{
        	    s = rows[k];
        	    j = k;
        	}
        }

        var top = parseInt(b.offsetTop) + rows[j] + PAD;
        var left;
        switch(j)
        {
        	default:
        	{
        		left = parseInt(b.offsetLeft) + PAD;
        		break;
        	}
        	case 1:
        	{
        		left = parseInt(b.offsetLeft) + columns[0] + PAD;
        		break;
        	}
        	case 2:

        	{
        		left = parseInt(b.offsetLeft) + columns[0] + columns[1] + PAD;
        		break;
        	}
        }

        if (IE6)
        {
         	left += IE6.left-1;
           	top += IE6.top-1;
        }

        e1[i].style.left = left + 'px';
        e1[i].style.top = top + 'px';
        e1[i].style.width = (columns[j]-PAD-PAD/2)+'px';
        rows[j] += parseInt(e1[i].offsetHeight)+PAD;
        if(d===true) $(inst(e1[i].id)+'_window_align').value  = j+'_'+rows_count[j];
        rows_count[j]++;
    }

    len = rows.length;
    var h = 0;
    for(i=0;i<len;i++) if (h<rows[i]) h = rows[i];

    if (h) b.style.height = h - PAD +'px';
    if (d===true)
    {
        windowsLineUp();
        saveConf();
        return;
    }

    rowResizeProc();
}

function createColumnsByWidth(w,PAD)
{
    var max_columns = window.wSettings['max_columns'] ? window.wSettings['max_columns'] : 3;
    if (w<700 || max_columns<2)
    {
    	var columns = [w-PAD];
  	    var rows = [0];
  	    var rows_count = [0];
  	    $('bar_button_1').style.display = 'none';
  	    $('bar_button_2').style.display = 'none';
    }
    else if (w<1200 || max_columns<3)
    {
        if (window.bar_width[0])
        {
    	    var columns = [window.bar_width[0], w - window.bar_width[0] - PAD];
        }
        else
        {
    	    var columns = [parseInt(w/2)-PAD/2,parseInt(w/2)-PAD/2];
  	    }
  	    var rows = [0,0];
  	    var rows_count = [0,0];
  	    $('bar_button_1').style.left = columns[0]+'px';
  	    $('bar_button_1').style.display = 'block';
  	    $('bar_button_2').style.display = 'none';
    }
    else
    {
        if (window.bar_width[0] && window.bar_width[1])
        {
    	    var columns = [window.bar_width[0], window.bar_width[1], w - window.bar_width[0] - window.bar_width[1] - PAD];
        }
        else
        {
        	if (window.bar_width[0])
            {
    	        var ww = w - window.bar_width[0];
    	        var columns = [window.bar_width[0], parseInt(ww/2)-PAD, parseInt(ww/2)];
            }
            else if (window.bar_width[1])
            {
    	        var ww = w - window.bar_width[1];
    	        var columns = [parseInt(ww/2)-PAD/2, window.bar_width[1], parseInt(ww/2)-PAD/2];
            }
        	else var columns = [parseInt(w/3),parseInt(w/3)-PAD,parseInt(w/3)];
        }
  	    var rows = [0,0,0];
  	    var rows_count = [0,0,0];
  	    $('bar_button_1').style.left = columns[0]+'px';
  	    $('bar_button_2').style.left = (columns[1]+columns[0])+'px';
  	    $('bar_button_1').style.display = 'block';
  	    $('bar_button_2').style.display = 'block';
    }
	return [columns,rows,rows_count];
}

function saveConf()
{
    var f = {
    	url    : '/session/save',
        method : 'post',
        h1     : window.bar_width[0],
        h2     : window.bar_width[1]
    };

    var n = 0;
    var b = $('bodyline');
    if (b.getElementsByClassName)
        var el = b.getElementsByClassName('window_border');
    else var el = ie6getElementsByClassName(b,'window_border');

    var len = el.length;
    for (var i=0;i<len;i++)
    {
        var ins = inst(el[i].id);
        var b = $(ins+'_window_body');
        f['align'+n] = $(ins+'_window_align').value;
        f['loader'+n] = $(ins+'_window_loader').value;
        f['collapsed'+n] = (b.style.display == 'none' || b.offsetHeight<10)? 1 : 0;
        f['height'+n] = b.style.overflow == 'auto' ? parseInt(b.style.height) : 0;
        n++;
    }
    f['length'] = n;

    n = 0;
    for(var i in window.wSettings)
    {
        f['ws_'+n] = i+'='+window.wSettings[i];
        n++;
    }
    f['ws_length'] = n;

    window.winConf = f;
	if(!window.winConfTm)
        window.winConfTm = window.setTimeout(submitConf,5000);
    //window.sessionAjax.req(f);
}

window.winConf = false;
window.winConfTm = false;
function submitConf()
{
	if(!window.winConf) return;
    if(window.sessionAjax)
        try { window.sessionAjax.http.abort(); } catch (eabort) {}
    else window.sessionAjax = new CAjax();
    window.sessionAjax.req(window.winConf);
    window.winConfTm = false;
}

function setColumnsCount(i)
{
    if (i<1 || i>3) i = 3;
    if (window.wSettings['max_columns'] && window.wSettings['max_columns']==i) return;
    var old = window.wSettings['max_columns'] ? window.wSettings['max_columns'] : 3;
	window.wSettings['max_columns'] = i;
    saveConf();
    if (i==1 || old>i)
    {
        windowsLineUp(true);
    }
    else
    {
        var b = $('bodyline');
        if (b.getElementsByClassName) var el = b.getElementsByClassName('window_border');
        else var el = ie6getElementsByClassName(b,'window_border');
        var len = el.length;
        var c1=c2=0;
        for(var j=0;j<len;j++)
        {
            var al = $(inst(el[j].id)+'_window_align');
            if (!al) continue;
        	var c = al.value.split('_');
    	    var col = parseInt(c[0]);
    	    if (col==0) c1++; else c2++;
        }
        if (i==2)
        {
        	if (c1==2) $(inst(el[len-1].id)+'_window_align').value = '1_0';
        	else if(c1>3 && c1<7) for(var j=1;j<3;j++) $(inst(el[len-j].id)+'_window_align').value = '1_'+(j-1);
        	else for(var j=1;j<4;j++) $(inst(el[len-j].id)+'_window_align').value = '1_'+(j-1);
        }
        else if (i==3)
        {
        	if (c2==0)
        	{
        		$(inst(el[len-1].id)+'_window_align').value = '1_0';
        	    if(c1>3 && c1<7) for(var j=1;j<3;j++) $(inst(el[len-j-1].id)+'_window_align').value = '2_'+(j-1);
        	    else
        	    {
                    $(inst(el[len-2].id)+'_window_align').value = '1_1';
        	        for(var j=1;j<4;j++) $(inst(el[len-j-2].id)+'_window_align').value = '2_'+(j-1);
        	    }
        	}
        	else
        	{
        	    if(c1>3 && c1<7) for(var j=1;j<3;j++) $(inst(el[len-j].id)+'_window_align').value = '2_'+(j-1);
        	    else for(var j=1;j<4;j++) $(inst(el[len-j].id)+'_window_align').value = '2_'+(j-1);
        	}
        }
        windowsLineUp(true);
    }
}

function ie6getElementsByClassName(el,cl)
{
    if(!IE6.top)
    {
    	var el = $('bodyline').parentElement;
    	IE6.top = el.offsetTop + 19;
    	IE6.left = el.offsetLeft + 11;
    }

    var e = el.getElementsByTagName('DIV');
    var r = [], len = e.length;
    for(var i=0;i<len;i++)
    {
    	if(e[i].className==cl) r.push(e[i]);
    }
    return r;
}

function reloadTimer(ins)
{
	this.ins = ins;
	this.sec = 0;
	this.tm = false;
	var me = this;

	this.start = function(sec)
	{
		this.sec = parseInt(sec);
		this.clear();
		if(sec)	this.timer();
	};

	this.timer = function()
	{
        var el = $(me.ins+'_window_timer');
        if (!el)
        {
            me.destruct();
            return;
        }
        me.sec--;
        if(me.sec<0)
        {
            el = $(me.ins+'_window_tm');
            if(el) el.innerHTML = '';
        	me.clear();
        	loadWindow(me.ins);
        }
        else
        {
            el = $(me.ins+'_window_tm');
            if(el) el.innerHTML = me.sec+1;
            me.tm = window.setTimeout(me.timer, 1000);
        }
	};

	this.clear = function()
	{
	    if(!me.tm) return;
	    window.clearTimeout(me.tm);
	    me.tm = false;
	};

	this.destruct = function()
	{
		me.clear();
		if(!window.reloadTimers[me.ins]) return;
		window.reloadTimers[me.ins] = null;
		delete(window.reloadTimers[me.ins]);
	};
}

function timerSettings(ins)
{
	ins = inst(ins);
	var el = $(ins+'_window_timer');
	if(!el) return;
    var sec = prompt(lang.timer_refresh_settings, el.value);
    if(sec===null) return;
    sec = parseInt(sec);
    if(isNaN(sec)) return;
    if(sec<0) return;

    var nm = 'tm_'+$(ins+'_window_loader').value;
    window.coo.set(nm,sec,'/');
    el.value = sec;

    if(sec==0)
    {
        if(window.reloadTimers[ins])
            window.reloadTimers[ins].destruct();
        $(ins+'_window_tm').innerHTML = '<img src="/img/window/clock.png" height="19" width="19" class="window_button" alt=""/>';
    }
    else windowRTimer(ins,sec);
}

function windowRTimer(ins,sec)
{
    ins = inst(ins);
    if(!window.reloadTimers) window.reloadTimers = {};
    if(!reloadTimers[ins]) reloadTimers[ins] = new reloadTimer(ins);
    if (parseInt(sec)>0) reloadTimers[ins].start(sec);
}

window.displayMode = 0;

function windowLineToper()
{
    $('index_div_top').style.top = '0px';
    if(window.wSettings.not_move_top)
    {
    	$('index_div_top').style.position = 'absolute';
    }
    else
    {
    	$('index_div_top').style.position = 'fixed';
        $('index_div_top').style.left = '0px';
        $('index_div_top').style.right = '0px';
        $('index_div_top').style.bottom = 'auto';
    }
//	if(window.tmLineToper) { window.clearTimeout(window.tmLineToper); window.tmLineToper = false; }
//	if(window.tmShowToper) { window.clearTimeout(window.tmShowToper); window.tmLineToper = false; }
//	$('index_div_top').style.top = '0px';
//	if(!window.wSettings.not_move_top && !window.fullscreenWin) window.tmLineToper = window.setTimeout(windowSetLineToper,500);
}

function windowStartLineToper()
{
    window.tmLineToper = false;
    window.tmShowToper = false;
	if(!IE6 && document.all && !window.opera)
	{
		window.onscroll = windowLineToper;
	}
    $('index_div_top').style.top = getBodyScrollTop()+'px';
    var h = $('index_div_top').offsetHeight;
    $('index_div_toper').style.height = $('index_div_top').offsetHeight+'px';
}

function windowSetLineToper()
{
    window.tmLineToper = false;
  	windowsLineUp();
  	windowShowLineToper();
}

function windowShowLineToper()
{
    var t = parseInt($('index_div_top').style.top);
    var st = getBodyScrollTop();
    if(t >= st)
    {
        $('index_div_top').style.top = getBodyScrollTop()+'px';
    }
    else
    {
        if(t<st-$('index_div_top').offsetHeight) t = st - $('index_div_top').offsetHeight;
        t += 5;
        if(t>st) t = st;
        $('index_div_top').style.top = t+'px';
        window.tmShowToper = window.setTimeout(windowShowLineToper,10);
    }
}
