// Copyright (C) 2005 Ilya S. Lyubinskiy. All rights reserved.
// Technical support: http://www.php-development.ru/
// ----- Variables -------------------------------------------------------------

var popup_dragging = false;
var popup_target;
var popup_mouseX;
var popup_mouseY;
var popup_mouseposX;
var popup_mouseposY;
var popup_oldfunction;

function popup_display(x) {
  var win = window.open();
  for (var i in x) win.document.write(i+' = '+x[i]+'<br>');
}

// ----- popup_mousedown - нажата любая кнопка мыши -------------------------------------------------------
function popup_mousedown(e) {
  var ie = navigator.appName == "Microsoft Internet Explorer";

  if ( ie && window.event.button != 1) return;
  if (!ie && e.button            != 0) return;

  popup_dragging = true;
  popup_target   = this['target'];
  popup_mouseX   = ie ? window.event.clientX : e.clientX;
  popup_mouseY   = ie ? window.event.clientY : e.clientY;

  if (ie)
       popup_oldfunction      = document.onselectstart;
  else popup_oldfunction      = document.onmousedown;

  if (ie)
       document.onselectstart = new Function("return false;");
  else document.onmousedown   = new Function("return false;");
}

// ----- popup_mousemove - перемещение указателя мыши над объектом -------------------------------------------------------
function popup_mousemove(e) {
  if (!popup_dragging) return;

  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById(popup_target);

  var mouseX = ie ? window.event.clientX : e.clientX;
  var mouseY = ie ? window.event.clientY : e.clientY;

  element.style.left = (element.offsetLeft+mouseX-popup_mouseX)+'px';
  element.style.top  = (element.offsetTop +mouseY-popup_mouseY)+'px';

  popup_mouseX = ie ? window.event.clientX : e.clientX;
  popup_mouseY = ie ? window.event.clientY : e.clientY;
}

// ----- popup_mouseup - когда пользователь отпускает кнопку мыши ---------------------------------------------------------
function popup_mouseup(e) {
  if (!popup_dragging) return;
  popup_dragging = false;

  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById(popup_target);

  if (ie)
       document.onselectstart = popup_oldfunction;
  else document.onmousedown   = popup_oldfunction;
}

// ----- popup_exit ------------------------------------------------------------
function popup_exit(e) {
  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById(popup_target);

  popup_mouseup(e);
  element.style.visibility = 'hidden';
  element.style.display    = 'none';
}


// ----- popup_show ------------------------------------------------------------
function popup_show(id, drag_id, exit_id, position, x, y, position_id) {
  element      = document.getElementById(id);
  drag_element = document.getElementById(drag_id);
  exit_element = document.getElementById(exit_id);

  element.style.position   = "absolute";
  element.style.visibility = "visible";
  element.style.display    = "block";

  if (position == "screen-center") {
    isDOM=document.getElementById?true:false
	isOpera=isOpera5=window.opera && isDOM
	isOpera7=isOpera && document.readyState
	isMSIE=isIE=document.all && document.all.item && !isOpera
	if (isMSIE) {
    	mClientWidth = document.body.clientWidth;
    	mClientHeight = document.body.clientHeight;
    } else {
    	mClientWidth = window.innerWidth;
    	mClientHeight = window.innerHeight;
    }
	if (isMSIE||isOpera7) {
    	mScrollLeft = document.body.scrollLeft;
    	mScrollTop = document.body.scrollTop;
    } else {
    	mScrollLeft = window.pageXOffset;
    	mScrollTop = window.pageYOffset;
    }
    
    element.style.left = (mScrollLeft+(mClientWidth -element.clientWidth )/2+x)+'px';
	element.style.top  = (mScrollTop +(mClientHeight-element.clientHeight)/2+y)+'px';
  }

  if (position == "element-right" || position == "element-bottom") {
    var position_element = document.getElementById(position_id);
    for (var p = position_element; p; p = p.offsetParent)
      if (p.style.position != 'absolute') {
        x += p.offsetLeft;
        y += p.offsetTop ;
      }
    if (position == "element-right" ) x += position_element.clientWidth;
    if (position == "element-bottom") y += position_element.clientHeight;
    element.style.left = x+'px';
    element.style.top  = y+'px';
  }

  drag_element['target']   = id;
  drag_element.onmousedown = popup_mousedown;
  popup_target   = id;
  exit_element.onclick     = popup_exit;
}

// ----- popup_mousepos --------------------------------------------------------
function popup_mousepos(e) {
  var ie = navigator.appName == "Microsoft Internet Explorer";

  popup_mouseposX = ie ? window.event.clientX : e.clientX;
  popup_mouseposY = ie ? window.event.clientY : e.clientY;
}

// ----- Attach Events ---------------------------------------------------------
if (navigator.appName == "Microsoft Internet Explorer") {
	document.attachEvent('onmousedown', popup_mousepos);
	document.attachEvent('onmousemove', popup_mousemove);
	document.attachEvent('onmouseup', popup_mouseup);
} else {
	document.addEventListener('mousedown', popup_mousepos, false);
	document.addEventListener('mousemove', popup_mousemove, false);
	document.addEventListener('mouseup', popup_mouseup, false);
}

// --------- Aladin ------------------------------------------------------------
function ShowWinMove(namewin, nick_, guild_duties_,trader_,dealer_,defender_,treasurer_,mask_edit) {
	formname='form_'+namewin;
	var form	=	document.getElementById(formname);
	if(nick_)	{	form.nick.value=nick_;	}
	switch (namewin)
	{
		case 'exclude':
			if(nick_)	{	form.nick.value=nick_;}
			break;
		case 'edit' :
			span_edit_	=	document.getElementById('span_edit');
			span_edit_.innerHTML=nick_;
			with (form)	{
				guild_duties.disabled	=	mask_edit & 8 ? true : false;
				guild_duties.value=guild_duties_;
				trader.disabled	=	mask_edit & 4 ? true : false;
				trader.value	=	trader_;
				trader.checked	=	(trader_==1 ? true :	false);
				dealer.disabled	=	mask_edit & 2 ? true : false;
				dealer.value	=	dealer_;
				dealer.checked	=	(dealer_==1 ? true :	false);
				defender.value	=	defender_;
				defender.checked	=	(defender_==1 ? true :	false);
				treasurer.value	=	treasurer_;
				treasurer.checked	=	(treasurer_==1 ? true :	false);
			}
			break;
		case 'pal' :
			span_pal_edit_	=	document.getElementById('span_pal_edit');
			dep=document.getElementById('depOptions');
			pos=document.getElementById('posOptions');
			if(pos!=null) dep.options[guild_duties_].selected=true;
			if(pos!=null)	pos.options[trader_].selected=true;
			span_pal_edit_.innerHTML=nick_;
			break;
	}
	popup_show(namewin, namewin+'_drag', namewin+'_ok', 'screen-center', 200, 0);
}

function ShowWinMoveFrends(namewin, nick_, frend_comment_, vhod_) {
	formname='form_'+namewin;
	var form	=	document.getElementById(formname);
	if(nick_)	{	form.nick.value=nick_;	}
	span_edit_	=	document.getElementById('span_edit');
	span_edit_.innerHTML=nick_;
	with (form)	{
		frend_comment.value=frend_comment_;
		vhod.checked	=	(vhod_==1 ? true :	false);
	}
	popup_show(namewin, namewin+'_drag', namewin+'_ok', 'screen-center', 200, 0);
}

function PressMsgExit(result)
{
	l=document.getElementById('exclude');
	if(l!=null){l.style.visibility='hidden';l.style.display='none';	}
	l=document.getElementById('edit');
	if(l!=null){l.style.visibility='hidden';l.style.display='none';	}
	l=document.getElementById('pal');
	if(l!=null){l.style.visibility='hidden';l.style.display='none';	}
}

