/*
	[UCenter Home] (C) 2007-2008 Comsenz Inc.
	$Id: script_drag.js 8540 2008-08-21 02:31:07Z zhengqingpeng $
*/

var copyNode = null;
var oldobj;
var offset = 0;
var state = 1;
var nowId = '';
function dragDrop(obj){
	this.count = 0;
	this.srcNum = 0;
	this.position = 0;
	this.offset = offset;
	this.np = 0;
	var me = this;
	this.dragObj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	this.fobj = $('finger');
	this.dragObj.onmouseover = function(event){
		$('task-tab').style.display = 'block';
		doane(event);
	}
	this.dragObj.onmouseout = function(event){
		$('task-tab').style.display = 'none';
		doane(event);
	}
	this.dragObj.onmousedown = function(event){
		var dragObj = me.dragObj;
		e = event || window.event;
		if (e.layerX) {
			dragObj.oOffset = {
				x: e.layerX,
				y: e.layerY
			};
		} else {
			dragObj.oOffset = {
				x: e.offsetX,
				y: e.offsetY
			};
		}
		state = -1;
		if(e.preventDefault)e.preventDefault();
		document.onmousemove = me.drag;
		document.onmouseup = me.drop;
		document.onselectstart = function(){
			return false;
		};
	}
	
	this.drag = function(event){
		var dragObj = me.dragObj;
		e = event || window.event;
		var dx = e.clientX - dragObj.oOffset.x;
		dragObj.style.left = e.clientX - dragObj.oOffset.x + "px";
		dragObj.style.display = 'none';
		$('finger').style.display = 'block';
		//处理移动
		if(dx > me.srcNum && me.count < 0) {
			me.count = 0;
		} else if(dx > me.srcNum) {
			me.count ++;
		} else if(dx < me.srcNum && me.count > 0) {
			me.count = 0;
		} else if(dx < me.srcNum) {
			me.count --;
		}
		me.srcNum = dx;
		if(me.count > 3 || me.count < -3) {
			me.count = 0;
		}
		me.setCursor(e);
	}
	this.setCursor = function(event) {
		e = event || window.event;
		var nowObj = $(nowId);
		var of = fetchOffset(nowObj);
		if(me.count > 0) {
			me.fobj.style.left = of.left+nowObj.offsetWidth + "px";
			me.position = 1;
		} else if(me.count < 0) {
			me.position = 0;
			me.fobj.style.left = of.left + "px";
		}
	}
	this.drop = function(event){
		e = event || window.event;
		state = 0;
		document.onmousemove = document.onmouseup = document.onselectstart = null;
		var nowObj = $(nowId);
		if(nowObj != null && copyNode != null && nowObj.id != copyNode.id) {
			try{
				var mid = copyNode.id
				var pid = '';
				//插入单前位置
				if(me.position) {
					pid = nowObj.id;
					//从原位子移除
					$('task').removeChild(oldobj);
					if(nowObj.nextSibling != null) {
						//取得下一个兄弟节点
						$('task').insertBefore(copyNode, nowObj.nextSibling);
					} else if(nowObj.className != 'history') {
						$('task').appendChild(copyNode);
					}
				} else if(copyNode != null && typeof copyNode == 'object') {
					if(is_ie) {
						pid = nowObj.previousSibling != null ? nowObj.previousSibling.id : '';
					} else {
						pid = nowObj.previousSibling.previousSibling != null ? nowObj.previousSibling.previousSibling.id : '';
					}
					//从原位子移除
					$('task').removeChild(oldobj);
					$('task').insertBefore(copyNode, nowObj);
				}
				if(typeof pid == 'undefined') {
					pid = '';
				}
				ajaxget('do.php?ac=ajax&op=updatetask&mid='+mid+'&pid='+pid);
			}catch(e) {}
		} else {
			me.dragObj.style.display = 'none';
		}
		$('finger').style.display = 'none';
		
	}
	
}
function focusDrag(obj) {
	var taskTab = $('task-tab');
	var of = fetchOffset(obj);
	taskTab.style.display = 'block';
	copyNode = obj.cloneNode(true);
	oldobj = obj;
	taskTab.style.top = of.top + 'px';
	taskTab.style.left = of.left + 'px';
}
function blurDrag() {
	if($('task-tab')) {
		state = 1;
	}
}
function setLiMouseOver(obj) {

	if(obj.className == 'active') {
		obj.className='active hover';
	} else {
		obj.className='hover';
	}

	if(state == 1) {
		focusDrag(obj);
		state = 0;
	}
	nowId = obj.id;
}
function setLiMouseOut(obj) {

	if(obj.className == 'hover') {
		obj.className='';
	} else {
		obj.className='active';
	}
	
	if(state == 0 && $('task-tab')) {
		$('task-tab').style.display = 'none';
		state = 1;
	}
}

//关闭窗口
function window_colse(handle) {
	ajaxget('do.php?ac=ajax&op=windowclose&handle='+handle, 'task');
}

//新建窗口
function window_add(handle) {
	ajaxget('do.php?ac=ajax&op=windowadd&handle='+handle, 'task');
}
