//CODE DEVELOPED BY OPENDOC 2005 - WWW.OPENDOC.IT EXCEPT WHERE INDICATED//
var dO=new Object();
dO.snapthresh=5;    // THIS VALUE IS THE SNAPTO INCREMENT.
dO.snapto=false;       // SET TO true TO ENABLE SNAPTO, false TO DISABLE IT.
var oldevent;
dO.currID=null;
dO.z=0;
dO.xo=0;
dO.yo=0;
dO.ns4=(document.layers)?true:false;
dO.ns6=(document.getElementById&&!document.all)?true:false;
dO.ie4=(document.all&&!document.getElementById)?true:false;
dO.ie5=(document.all&&document.getElementById)?true:false;
dO.w3c=(document.getElementById)?true:false;

//ADDED FUNCTIONS
var showRect=false;

function invsnap(){
dO.snapto=!dO.snapto;
}

//NEAT FUNCTION BY MIKE HALL (OF BRAINJAR.COM) THAT FINDS NESTED LAYERS FOR NS4.x
function findnestedlayer(name,doc){
	var i,layer;
	for(i=0;i<doc.layers.length;i++){
	layer=doc.layers[i];
	if(layer.name==name)return layer;
	if(layer.document.layers.length>0)
	if((layer=findlayer(name,layer.document))!=null)
	return layer;
	}
	return null;
}

function trckM(e){
	if(dO.currID!=null){
	var x=(dO.ie4||dO.ie5)?event.clientX+document.body.scrollLeft:e.pageX;
	var y=(dO.ie4||dO.ie5)?event.clientY+document.body.scrollTop:e.pageY;
	if(dO.snapto){
	x=Math.ceil(x/dO.snapthresh)*dO.snapthresh;
	y=Math.ceil(y/dO.snapthresh)*dO.snapthresh;
	}
	
	if (dO.currID!=undefined){var nome_oggetto=dO.currID.id;}
	//document.Show.debug1.value=dO.currID.style.top+"  "+(dimXPreview-parseFloat(dO.currID.style.width))+" == "+(x-dO.xo);
	if (nome_oggetto=="preview_rect"){
		if (y-dO.yo<0){y=dO.yo;}
		if (x-dO.xo<0) {x=dO.xo;}
		
		if (x-dO.xo>dimXPreview-parseFloat(dO.currID.style.width)) {x=dO.xo+dimXPreview-parseFloat(dO.currID.style.width);}
		if (y-dO.yo>dimYPreview-parseFloat(dO.currID.style.height)) {y=dO.yo+dimYPreview-parseFloat(dO.currID.style.height);}
	}
	if(dO.ns4)dO.currID.moveTo(x-dO.xo, y-dO.yo);
	else{
	dO.currID.style.top=y-dO.yo+'px';
	dO.currID.style.left=x-dO.xo+'px'; 
	}}
	
	//oldevent(e);
	return false;
}

function drgI(e){
	oldevent=document.onmousemove
	document.onmousemove=trckM;
	if(dO.currID==null){
	var tx=(dO.ns4)? this.left : parseInt(this.style.left);
	var ty=(dO.ns4)? this.top : parseInt(this.style.top);
	dO.currID=this;
	if(dO.ns4)this.zIndex=document.images.length+(dO.z++);
	else this.style.zIndex=document.images.length+(dO.z++);
	dO.xo=((dO.ie4||dO.ie5)?event.clientX+document.body.scrollLeft:e.pageX)-tx;
	dO.yo=((dO.ie4||dO.ie5)?event.clientY+document.body.scrollTop:e.pageY)-ty;
	if(dO.snapto){
	dO.xo=Math.ceil(dO.xo/dO.snapthresh)*dO.snapthresh;
	dO.yo=Math.ceil(dO.yo/dO.snapthresh)*dO.snapthresh;
}

return false;
}}

function destroyDragElement(id){
		this.idRef=(dO.ns4)? findnestedlayer(id,document) : (dO.ie4)? document.all[id] : document.getElementById(id);
	if(dO.ns4)this.idRef.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
	this.idRef.onmousedown=function(){};
	this.idRef.onmouseup=function(){};
}

function dragElement(id){
	this.idRef=(dO.ns4)? findnestedlayer(id,document) : (dO.ie4)? document.all[id] : document.getElementById(id);
	if(dO.ns4)this.idRef.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
	this.idRef.onmousedown=drgI;
	this.idRef.onmouseup=function(){
							var object_name="";
							
							if (dO.currID!=undefined){object_name=dO.currID.id;}
							//alert("refresh "+object_name);
							dO.currID=null;
							if (object_name=="preview_rect"){	
									newPosition();
							}
						
						}

}


function dragElement2(id){
this.idRef=(dO.ns4)? findnestedlayer(id,document) : (dO.ie4)? document.all[id] : document.getElementById(id);
if(dO.ns4)this.idRef.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
this.idRef.onmousedown=drgI;
/*this.idRef.onmouseup=function(){
						var name_oggetto="";
						alert("refresh");
						if (dO.currID!=undefined){object_name=dO.currID.id;}
						dO.currID=null;
						if (object_name=="preview_rect"){	
								//newPosition();
						}
					
					}*/
					
}


if(dO.ns4)document.captureEvents(Event.MOUSEMOVE);
oldevent=document.onmousemove
document.onmousemove=trckM;

/*
window.onresize=function(){
if(dO.ns4)setTimeout('history.go(0)',300);
}*/


function newPosition(){
	var preview_rect=document.getElementById("preview_rect");
	var tx=(dO.ns4)? preview_rect.left : parseInt(preview_rect.style.left);
	var ty=(dO.ns4)? preview_rect.top : parseInt(preview_rect.style.top);
	rect_red_x=parseInt(preview_rect.style.width);
	rect_red_y=parseInt(preview_rect.style.height);
	act_newx=tx+(rect_red_x/2);
	act_newy=ty+(rect_red_y/2);
	
	DestinazioneX=parseInt((act_newx/getObjectWidth("preview_img"))*dimOrigx);
	DestinazioneY=parseInt((act_newy/getObjectHeight("preview_img"))*dimOrigy);
	moveTo(DestinazioneX,DestinazioneY);
	//reloadImageFromPreview();
}