function iPopup(id,url,wd,ht)
{
  newDiv=document.getElementById(id) ;
  if(!newDiv)
  {
  newDiv = document.createElement("div");
  newDiv.innerHTML = "";
  newDiv.id=id;
  newDiv.style.position='absolute';

//  newDiv.style.display='none';
  // add the newly created element and it's content into the DOM
  my_div = document.getElementById("pp");
  document.body.insertBefore(newDiv, my_div);
  } 



    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {

	var txt='<div style="position:absolute; width:'+wd+'px; height:'+ht+'px; border:5px solid #333333; background:#555555; padding:0px;">';
	txt+=req.responseText;
	txt+='</div>';

//  var txt='<table width='+(wd+14)+' height='+(ht+34)+' cellpadding=0 cellspacing=0 border=0>';
//  txt+='<tr><td width=7 height=7><img src="/img/c1.gif" width=7 height=7></td><td bgcolor=#b1c2ca width='+wd+'></td><td width=7><img src="/img/c2.gif" width=7 height=7></td></tr>';
//  txt+='<tr><td bgcolor=#b1c2ca></td><td onmousedown="dragStart(event,\''+id+'\');" height=20 width='+wd+' bgcolor=#b1c2ca align=left valign=top><table width='+wd+' cellpadding=0 cellspacing=0><tr><td><b>'+title+'</b></td><td align=right><a href="#" onclick="hidePopup(\''+id+'\');"><img src="/img/icons/close.gif" border=0></a></td></tr></table></td><td bgcolor=#b1c2ca></td></tr>';
//  txt+='<tr><td bgcolor=#b1c2ca></td><td width='+wd+' bgcolor=#ffffff align=left valign=top><div id="'+id+'_content" style="width:'+wd+'px; height:'+ht+'px; position:absolute; overflow:auto;">'+req.responseText+'</div></td><td bgcolor=#b1c2ca></td></tr>';
//  txt+='<tr><td width=7 height=7><img src="/img/c3.gif" width=7 height=7></td><td bgcolor=#b1c2ca></td><td width=7><img src="/img/c4.gif" width=7 height=7></td></tr>';
//  txt+='</table>';
  newDiv.innerHTML=txt;

	lr=layer(id);


	lft=getScrollX()+(getWindowWidth(false)/2)-(wd+14)/2;
	tp=getScrollY()+(getWindowHeight(false)/2)-(ht+34)/2;


	if(lft<0) lft=0;
	if(tp<0) tp=0;
	lr.moveTo(lft,tp);
 

        }
    }
    req.open(null, url, true);
    req.send();
}

function hidePopup(id)
{
   var Node = document.getElementById(id);
   Node.parentNode.removeChild(Node);
}

function sendForm(frm,ly)
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {

		if(!req.responseJS&&!req.responseText) {alert("Ответа не получено :("); frm.subm.disabled=false;}
		else
		{
		if(req.responseJS)
			{
				for(k=0;k<frm.length;k++)
				if(frm[k].type=='text'||frm[k].type=='textarea') frm[k].className='input';

				if(req.responseJS.forms)
				{

					var focusset=false;
					for(k=0;k<frm.length;k++)
					{
						for(i=0;i<req.responseJS.forms.length;i++)
						if(frm[k].name==req.responseJS.forms[i]&&(frm[k].type=='text'||frm[k].type=='textarea')) {frm[k].className='input_error'; if(!focusset) {frm[k].focus(); focusset=true;}}

					}
				}
				alert(req.responseJS.error);
				frm.subm.disabled=false;

			} else if(req.responseText) document.getElementById(ly).innerHTML = req.responseText;
		}
        }
    }

    req.open(null, '/__.php', true);
    req.send({'form':frm});

}

// ..................................................................

dom = (document.getElementById) ? 1 : 0;
ie = (navigator.appName != "Netscape" && document.all) ? 1 : 0;
opera = (navigator.appName == "Opera") ? 1 : 0;

// ..................................................................

// dhtml menu

timer = new Array ();
node = new Array ();
menu = new Array ();
nparent = new Array ();


m_node = new Array ();
m_menu = new Array ();
m_nparent = new Array ();

is_opened = false;


function m_showMenu(id){	
	// create node && menu
	if(!m_node[id]){
		if(isNC4 && m_nparent[id]){
			m_node[id]=layerFrom("m_node"+id,"document.layers.m_menu"+m_nparent[id])
		}else{
			m_node[id]=layer("m_node"+id)
		}				
	}
	if(!m_menu[id]) m_menu[id]=layer("m_menu"+id)

	// safe work
	if(!m_node[id].isExist()) return; // if layer not loaded yet...
	if(!m_menu[id].isExist()) return; // if layer not loaded yet...

	m_cancelCloseMenu(id)
	// relative menu
	if (m_nparent[id])
	{
		m_cancelCloseMenu(m_nparent[id])
		pleft = m_menu[m_nparent[id]].getAbsoluteLeft() + m_node[id].getWidth() + 0;
		ptop = m_menu[m_nparent[id]].getAbsoluteTop() - m_node[id].getHeight();
	}
	else
	{
		pleft = 0;
		ptop = 0;
	}

	document.getElementById('m_node'+id).className='m_menu_over';

	// basic offset
	nleft = m_node[id].getAbsoluteLeft()
	ntop = m_node[id].getAbsoluteTop()
	nwidth = m_node[id].getWidth();
	
	
	//новое от меня
//	pleft = -5;
//	ptop = -22;

	// move menu 
	m_menu[id].moveTo(pleft + nleft + nwidth, ptop + ntop -1) 
	m_menu[id].show()

}

function m_initiateHideMenu(id, closeparent){
	if (!closeparent) closeparent = false // emulate default value

	// safe work


	if(!m_menu[id] || !m_menu[id].isExist()) return; // if layer not loaded yet...

	if (closeparent && m_nparent[id]) m_initiateHideMenu (m_nparent[id], closeparent) // recursive 
	timer[id]=setTimeout("m_hideMenu("+id+")",200) // delay to close a menu
}

function m_cancelCloseMenu(id, cancelparent){
	if (!cancelparent) cancelparent = false // emulate default value

	// safe work
	if(!m_menu[id] || !m_menu[id].isExist()) return; // if layer not loaded yet...

	if (cancelparent && m_nparent[id]) m_cancelCloseMenu(m_nparent[id],cancelparent) // recursive 
	if(timer[id]) clearTimeout(timer[id]) // cancel delayed closing
}

function m_hideMenu(id){
	// safe work

	if(!m_menu[id] || !m_menu[id].isExist()) return; // if layer not loaded yet...
	document.getElementById('m_node'+id).className='m_menu';
	if(m_menu[id]) m_menu[id].hide()
}

function m_hideAllMenu(){
	for (i=0; i<m_menu.length; i++)
		m_hideMenu(i)
}


// ..................................................................

function showMenu(id){	

	// create node && menu
	if(!node[id]){
		if(isNC4 && nparent[id]){
			node[id]=layerFrom("node"+id,"document.layers.menu"+nparent[id])
		}else{
			node[id]=layer("node"+id)
		}				
	}
	if(!menu[id]) menu[id]=layer("menu"+id)

	// safe work
	if(!node[id].isExist()) return; // if layer not loaded yet...
	if(!menu[id].isExist()) return; // if layer not loaded yet...

	cancelCloseMenu(id)

	// relative menu
	if (nparent[id])
	{
		cancelCloseMenu(nparent[id])
		pleft = menu[nparent[id]].getAbsoluteLeft() + node[id].getWidth() + 0;
		ptop = menu[nparent[id]].getAbsoluteTop() - node[id].getHeight();
	}
	else
	{
		pleft = 0;
		ptop = 0;
	}

	// basic offset
	nleft = node[id].getAbsoluteLeft()
	ntop = node[id].getAbsoluteTop()
	nheight = node[id].getHeight()
	
	//новое от меня
	pleft = -5;
//	ptop = -22;
	ptop = 0;

	// move menu 
	menu[id].moveTo(pleft + nleft, ptop + ntop + nheight) 
	menu[id].show()

}

function initiateHideMenu(id, closeparent){
	if (!closeparent) closeparent = false // emulate default value

	// safe work
	if(!menu[id] || !menu[id].isExist()) return; // if layer not loaded yet...

	if (closeparent && nparent[id]) initiateHideMenu (nparent[id], closeparent) // recursive 
	timer[id]=setTimeout("hideMenu("+id+")",200) // delay to close a menu
}

function cancelCloseMenu(id, cancelparent){
	if (!cancelparent) cancelparent = false // emulate default value

	// safe work
	if(!menu[id] || !menu[id].isExist()) return; // if layer not loaded yet...

	if (cancelparent && nparent[id]) cancelCloseMenu(nparent[id],cancelparent) // recursive 
	if(timer[id]) clearTimeout(timer[id]) // cancel delayed closing
}

function hideMenu(id){
	// safe work

	if(!menu[id] || !menu[id].isExist()) return; // if layer not loaded yet...

	if(menu[id]) menu[id].hide()
}

function hideAllMenu(){
	for (i=0; i<menu.length; i++)
		hideMenu(i)
}


// ..................................................................

