// JavaScript Document
/*
 *
 *	Drag & Drop posouvani elementu
 *
 *  do html kodu posouvaneho elementu staci vlozit nasledujici vlasnotstmi :
 *
 *	style="position:absolute; left:Xpx; top:Xpx;"
 *	onmousedown="drag(this)"
 *	onmouseup="drop(this)"
 *
 */


/*
	aktualne dragly element
*/
var dragelement = false;

/*
	souradnice pozice mysi
*/
var x = 0;
var y = 0;

/*
	predchozi souradnice mysi, abychom mohli urcit rozdil v posunu
*/
var old_x = 0;
var old_y = 0;

/*
	rozdil v predchozich a aktualnich souradnicich
*/
var dif_x = 0;
var dif_y = 0;

/*
	typ prohlizece, kvuli rozdilnemu pristupu k aktualnim souradnicim, mysi
	http://www.getelementbyid.com
*/
var ie5 = (document.getElementById && document.all); 
var ns6 = (document.getElementById && !document.all);



/*
	prevezmeme aktualni souradnice mysi
*/
function get_coordinates ( e )
{
	if(document.getElementById)
	{
		old_x = x;
		old_y = y;
		
		x = (ie5)?event.x:(ns6)?clientX=e.clientX:false;
 		y = (ie5)?event.y:(ns6)?clientY=e.clientY:false;

		dif_x = x - old_x;
		dif_y = y - old_y;
		
		// pohyb dragleho elemenetu
		if ( dragelement != false ) move ( dragelement );
	}
}
document.onmousemove = get_coordinates;		


/*
	po stisku tlacita, zpruhlednime element
*/
function drag ( element )
{
	element.style.MozOpacity = '0.7';
	element.style.filter = 'alpha(opacity=70, style=0)';

	// nastaveni, kvuli problemu s oznacovanim textu v ie
	// http://www.ditchnet.org/wp/2005/06/15/ajax-freakshow-drag-n-drop-events-2/
	document.body.ondrag = function () { return false; };
	document.body.onselectstart = function () { return false; };

	dragelement = element;
}
	
/*
	po pusteni tlacitka, vratime prohlednost do puvodniho stavu
*/
function drop ( element )
{
	element.style.MozOpacity = '1';
	element.style.filter = 'alpha(opacity=100, style=0)';

	document.body.ondrag = function () { return true; };
	document.body.onselectstart = function () { return true; };

	dragelement = false;
}

/*
	posun dragleho elementu
*/
function move ( element )
{
	xp = element.style.left;
	yp = element.style.top;
		
	xp = xp.substring ( 0 , xp.length - 2 );
	yp = yp.substring ( 0 , yp.length - 2 );

	finx = ( eval ( xp + ' + ' + dif_x ) ) + 'px';
	finy = ( eval ( yp + ' + ' + dif_y) ) + 'px';

	element.style.left = finx;
	element.style.top = finy;

}
