/* ************************************************************************************************
									Drag and drop
 **************************************************************************************************/

rialto.ddDemo=function(objPar){
	
	this.filename="dragdrop.js";
	
	if(!objPar){
		var objPar={title : "Drag and drop" ,
					parent : document.body ,
					icone:'images/imgFenSimple/picto-gr_default.gif'
					}
	}
    this.simpleWindow=new rialto.widget.SimpleWindow(objPar);
	var oThis=this;
	
								    	
	var help = new rialto.widget.Image('../rialtoEngine/imagesDemo/idea.png','10','10',this.simpleWindow,"",'../rialtoEngine/imagesDemo/ktip.png');									    	
	var labHelp= new rialto.widget.Label("",15,30,this.simpleWindow,"Choose the options, the blue div behavior is automaticly refresh","libelleTip");
	labHelp.setVisible(false);
	help.onmouseover=function(){labHelp.setVisible(true);}
	help.onmouseout=function(){labHelp.setVisible(false);}

	var frmParam = new rialto.widget.Frame({name:'frmParam',top:'50',left:'5',width:'95%',height:'200',
											title:'Parameters',open:true,dynamic:false,
											position:'absolute',draggable:false,parent:this.simpleWindow});
	var frmMove = new rialto.widget.Frame({name:'frmMove',top:'10',left:'14',width:'159',height:'131',
										   title:'Move',open:true,dynamic:false,
										   position:'absolute',draggable:false,parent:frmParam});
	var radDir =  new rialto.widget.Radio('radDir',15,10,frmMove,'move','direct',true,'libNormal');
	var radGho =  new rialto.widget.Radio('radGho',42,10,frmMove,'move','ghost frame',false,'libNormal');
	var radRect =  new rialto.widget.Radio('radRect',69,10,frmMove,'move','ghost rectangle',false,'libNormal');
	var radIco =  new rialto.widget.Radio('radIco',97,10,frmMove,'move','icon',false,'libNormal');
	var frmLim = new rialto.widget.Frame({name:'frmLim',top:'7',left:'183',width:'335',height:'134',
										  title:'Limits',open:true,dynamic:false,
										  position:'absolute',draggable:false,parent:frmParam});
	var frmLimFr = new rialto.widget.Frame({name:'frmLimFr',top:'17',left:'10',width:'145',height:'101',
											title:'Limits frame',open:true,dynamic:false,
											position:'absolute',draggable:false,parent:frmLim});
	var chWithLim = new rialto.widget.Checkbox('chWithLim',8,5,frmLimFr,'With limits',true,'libNormal');
	var radLimPar =  new rialto.widget.Radio('radLimPar',37,25,frmLimFr,'limitsFr','parents',true,'libNormal');
	var radLimRect =  new rialto.widget.Radio('radLimRect',63,25,frmLimFr,'limitsFr','200*200',false,'libNormal');
	var frmLimMo = new rialto.widget.Frame({name:'frmLimMo',top:'16',left:'173',width:'141',height:'103',
											title:'Limits move',open:true,dynamic:false,
											position:'absolute',draggable:false,parent:frmLim});
	var rad2D =  new rialto.widget.Radio('rad2D',7,9,frmLimMo,'limitsMo','2D',true,'libNormal');
	var radV =  new rialto.widget.Radio('radV',26,9,frmLimMo,'limitsMo','Vertical',false,'libNormal');
	var radH =  new rialto.widget.Radio('radH',44,9,frmLimMo,'limitsMo','Horizontal',false,'libNormal');
	var chMagnet = new rialto.widget.Checkbox('chMagnet',73,7,frmLimMo,'Magnetic grid',false,'libNormal');
	var frmDispl = new rialto.widget.Frame({name:'frmDispl',top:'7',left:'526',width:'300',height:'135',
											title:'Display',open:true,dynamic:false,
											position:'absolute',draggable:false,parent:frmParam});
	var chMovInfo = new rialto.widget.Checkbox('chMovInfo',20,8,frmDispl,'Display moving informations',true,'libNormal');
	var chLimInfo = new rialto.widget.Checkbox('chLimInfo',50,10,frmDispl,'Display limits informations',true,'libNormal');
	var chSel = new rialto.widget.Checkbox('chSel',80,10,frmDispl,'Display selection during drag',true,'libNormal');
	var frmTest = new rialto.widget.Frame({name:'frmTest',top:'260',left:'5',width:'95%',height:'340',
										   title:'Test area: JUST DRAG AND DROP THE BLUE DIV',open:true,dynamic:false,
										   position:'absolute',draggable:false,parent:this.simpleWindow});
	radDir.onclick 		= 
	radGho.onclick 		= 
	radRect.onclick 	=
	radIco.onclick 		= 
	chWithLim.onclick 	= 
	radLimPar.onclick 	= 
	radLimRect.onclick 	= 
	rad2D.onclick 		= 
	radV.onclick 		= 
	radH.onclick 		= 
	chMagnet.onclick	=
	chMovInfo.onclick 	= 
	chLimInfo.onclick 	= 
	chSel.onclick 		= setup;

	
	this.simpleWindow.onClose=function(){
		if(this.dragDiv){
			rialto.widgetBehavior.desaffect(this.dragDiv,'DragAndDrop');
			this.dragDiv.parentNode.removeChild(this.dragDiv);
			this.dragDiv=null;
		}
		this.node.remove();
	}
	
	
	chWithLim.onclick=function(){
		var ch=this.isCheck();
		radLimPar.setEnable(ch);
		radLimRect.setEnable(ch);
		if(!ch){
			chMagnet.setCheck(false);
		}
		chMagnet.setEnable(ch);
		rad2D.setEnable(ch);
		radV.setEnable(ch);
		radH.setEnable(ch);
		
		setup();
	}
	

	
	var oThis=this;
	
	function setup(){
		//check if the drag element exist
		if(oThis.simpleWindow.dragDiv){
			console.log('desaffect oThis.simpleWindow.dragDiv');
			rialto.widgetBehavior.desaffect(oThis.simpleWindow.dragDiv,'DragAndDrop');
			oThis.simpleWindow.dragDiv.parentNode.removeChild(oThis.simpleWindow.dragDiv);
			oThis.simpleWindow.dragDiv=null;
		}
		//Create elment to move
		oThis.simpleWindow.dragDiv=document.createElement('DIV');
		var divStyle=oThis.simpleWindow.dragDiv.style;
		divStyle.position='absolute';
		divStyle.left=50;
		divStyle.top=50;
		divStyle.height=100;
		divStyle.width=100;
		divStyle.backgroundColor="#6699FF";
		divStyle.border = "6px solid gray";
		frmTest.add(oThis.simpleWindow.dragDiv);
		//Get Drag and drop parameters
		var objParam={};
		//ghost
		if(!radDir.isCheck()){
			objParam.ghost={};
			if(radGho.isCheck()){objParam.ghost.aspect='rect'};
			if(radRect.isCheck()){objParam.ghost.aspect='frame'};
			if(radIco.isCheck()){objParam.ghost.aspect='icon'};
		}
		//limits	
		objParam.movingLimits={};
		objParam.bRectLim=chWithLim.isCheck();
		if(objParam.bRectLim){
			if(radLimRect.isCheck()){objParam.movingLimits.rectLim ={top:50,left:50,right:250,bottom:250};}
			//orientation
			if(rad2D.isCheck()){objParam.movingLimits.orientation='2D'};
			if(radH.isCheck()){objParam.movingLimits.orientation='h'};
			if(radV.isCheck()){objParam.movingLimits.orientation='v'};
			//magnetic grid
			if(chMagnet.isCheck()){
				objParam.magneticsGrid ={widthCol : 30, heightRow : 30};
			}
		}
		//Information display
		objParam.isWithLimitsDisplayed=chLimInfo.isCheck();
	 	objParam.isWithMovingInfo =chMovInfo.isCheck();
		objParam.bSelectMark = chSel.isCheck();
		objParam.movingLimits.bCircular=false;


	
		rialto.widgetBehavior.DragAndDrop_attachEventToDocument = true;
		rialto.widgetBehavior.affect(oThis.simpleWindow.dragDiv,'DragAndDrop',objParam);
	}
	setup();
}
