dragged=null;
clon=null;

var myrules = {
	'.delete' : function(el){
		el.onclick = function(evt){
			return confirm('estas seguro?');
		}
	},
	'.categorias li' : function(el){
		el.onmousedown = function(evt){
 			setChildsEvents('lista_categorias',function(event){return drop(event,this);})
			return start_drag(evt,this);
		}
	},
	'.ejemplos li' : function(el){
		el.onmousedown = function(evt){
 			setChildsEvents('lista_ejemplos',function(event){return move_example(event,this);})
			setChildsEvents('lista_categorias',function(event){return change_cathegory(event,this);})
			return start_drag(evt,this);
		}
	}
};

Behaviour.register(myrules);

function start_drag(evt,este)
{
 if (!evt) var evt = window.event;
 if (!evt.currentTarget)  dragged= este;
 else dragged= evt.currentTarget;
 
 document.onmousemove=function(event){return drag(event);}
 return false;
}

function setChildsEvents(element,event)
{
 var lista=document.getElementById(element);
 for(var i=0;i<lista.childNodes.length;i++)
 	lista.childNodes[i].onmouseup=event
}

function drag(event){
 if (!event) var event = window.event;
 if (!event.currentTarget)  target= this;
 else target= event.currentTarget;

if(clon==null)
{
 			clon=dragged.cloneNode(true);
 			clon.style.position='absolute';
 			clon.style.filter='alpha(opacity=50)';
 			clon.style.opacity=0.5;
			document.getElementsByTagName('BODY')[0].appendChild(clon);
 			document.onmouseup=function(event){return end_drag(event);}
			
}
	
 if (!event) var event = window.event;
var zxcMseX, zxcMseY;
if (document.all){ zxcMseX=event.clientX; zxcMseY=event.clientY; }
else {zxcMseX=event.pageX; zxcMseY=event.pageY; }

clon.style.left=(zxcMseX+10)+'px';
clon.style.top=(zxcMseY+10)+'px';

 return false;
}

function end_drag(event){
 if (!evt) var evt = window.event;
 
 setChildsEvents('lista_categorias','')
 setChildsEvents('lista_ejemplos','')
 
 
         document.onmousemove = null;
        document.onselectstart = null;

 document.getElementsByTagName('BODY')[0].removeChild(clon);
 clon=null;
        
		// prevent text selection in IE
        document.onselectstart = function () { return false; };
        
        // prevent text selection (except IE)
        return false;

}

function drop(event,t)
{
 if (!event) var event = window.event;
 if (event.currentTarget) target= event.currentTarget;
 else target= t;
 
 if(target==dragged) return;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  
if (xmlhttp!=null)
  {
  //xmlhttp.onreadystatechange=function(){
  //if(xmlhttp.readyState==4) alert(xmlhttp.responseText);}
  xmlhttp.open("POST","../ejemplos/c_mover_categoria.php?id="+dragged.id.substr(3)+
  	"&destino="+target.id.substr(3),false)
  xmlhttp.send(null)
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
  
  var pos=target;
  var lista_categorias=document.getElementById('lista_categorias');
  for(var i=0;i<lista_categorias.childNodes.length;i++)
  	if(lista_categorias.childNodes[i]==dragged)
  	{
  		pos=pos.nextSibling;
  		break;
  	}
  	else if(lista_categorias.childNodes[i]==target) break;
  	
  lista_categorias.insertBefore(dragged,pos);
  
}

function move_example(event,t)
{

 if (!event) var event = window.event;
 if (event.currentTarget) target= event.currentTarget;
 else target= t;
 
 if(target==dragged) return;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  
if (xmlhttp!=null)
  {
  xmlhttp.open("POST","../ejemplos/c_mover_ejemplo.php?id="+dragged.id.substr(2)+
  	"&destino="+target.id.substr(2),false)
  xmlhttp.send(null)
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
  
  var pos=target;
  var lista_ejemplos=document.getElementById('lista_ejemplos');
  for(var i=0;i<lista_ejemplos.childNodes.length;i++)
  	if(lista_ejemplos.childNodes[i]==dragged)
  	{
  		pos=pos.nextSibling;
  		break;
  	}
  	else if(lista_ejemplos.childNodes[i]==target) break;
  	
  lista_ejemplos.insertBefore(dragged,pos);
  
}

function change_cathegory(event,t)
{
 if (!event) var event = window.event;
 if (event.currentTarget) target= event.currentTarget;
 else target= t;
 
 if(target.className=="actual") return;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  
if (xmlhttp!=null)
  {
  xmlhttp.open("POST","../ejemplos/c_cambiar_categoria.php?id="+dragged.id.substr(2)+
  	"&destino="+target.id.substr(3),false)
  xmlhttp.send(null)
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
  
  var pos=target;
  var lista_ejemplos=document.getElementById('lista_ejemplos');
  lista_ejemplos.removeChild(dragged,pos);
  
}