function mouseMove(ev)
{
	ev = ev || window.event;

	if(ev.pageX || ev.pageY)
	{
		mousePosX = ev.pageX;
		mousePosY = ev.pageY;
	}
	else
	{
		mousePosX = ev.clientX + document.body.scrollLeft - document.body.clientLeft;
		mousePosY = ev.clientY + document.body.scrollTop  - document.body.clientTop;
	}

	if(dragId)
	{
		element = document.getElementById(dragId);
		element.style.top = (mousePosY+dragPosY)+'px';
		element.style.left = (mousePosX+dragPosX)+'px';


		parent = element.parentNode;
		childs = parent.childNodes;

		dragDest = null;

		for(i = 0; i < childs.length; i++)
		{
			childPosY = getElementPosY(childs[i]);
			limit = childPosY + (childs[i].offsetHeight / 2);
			if(mousePosY < limit && childs[i].id != dragId && childs[i].id != 'selection')
			{
				dragDest = childs[i].id;
				break;
			}
		}

		beforeElement = document.getElementById(dragDest);
		selection = document.getElementById('selection');
		if(beforeElement && selection && parent)
		{
			parent.insertBefore(selection,beforeElement);
		}
	}
}

var mousePosX = 0;
var mousePosY = 0;
var dragPosX = 0;
var dragPosY = 0;
var dragId;
var dragDest;
document.onmousemove = mouseMove;

function drag_start(id)
{
	element = document.getElementById(id);

	dragPosX = getElementPosX(element)-mousePosX;
	dragPosY = getElementPosY(element)-mousePosY;
	dragId = id;

	next = 0;
	parent = element.parentNode;
	childs = parent.childNodes;
	for(i = 0; i < childs.length; i++)
	{
		if(childs[i].id == id) next = 1;
		if(next == 1)
		{
			dragDest = childs[i].id;
			break;
		}
	}
}
function drag_stop()
{
	dragId = null;
	dragDest = null;
	dragPosX = 0;
	dragPosY = 0;
}

function getElementPosX(element)
{
	var left = 0;

	while (element.offsetParent)
	{
		left += element.offsetLeft;
		element = element.offsetParent;
	}

	left += element.offsetLeft;

	return left;
}

function getElementPosY(element)
{
	var top = 0;

	while (element.offsetParent)
	{
		top += element.offsetTop;
		element = element.offsetParent;
	}

	top += element.offsetTop;

	return top;
}

var ajaxBooleanQueue_input = new Array();
var ajaxBooleanQueue_url = new Array();
var ajaxBooleanQueue_data = new Array();
var ajaxBooleanQueue_state = false;
var ajaxBooleanQueue_cursor = -1;

function build_debug(text)
{
	document.getElementById('build_debug').style.display = 'block';
	document.getElementById('build_debug').innerHTML += '<br/>'+text;
}

function build_ajax_conexion()
{
	if (window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xhr;
}

function build_change_class(id,class_css)
{
	document.getElementById(id).className = class_css;
}

function build_email(id)
{
	email = document.getElementById(id).value;
	if(email != '')
	{
		if(email.indexOf("@") != "-1"
			&& email.indexOf(".") != "-1")
		{
			document.getElementById(id+'_false').style.display = 'none';
		}
		else
		{
			document.getElementById(id+'_false').style.display = 'inline';
		}
	}
}

function build_show_menu(id)
{
	document.getElementById(id).style.display = 'inline';
}

function build_hide_menu(id)
{
	document.getElementById(id).style.display = 'none';
}

function build_help_box(message)
{
	element = document.getElementById('helpBox');
	if(element)
	{
		element.style.display = 'block';
		element.style.position = 'absolute';
		element.style.left = (mousePosX-100)+'px';
		element.style.top = (mousePosY+10)+'px';
		element.innerHTML = message;
		dragId = 'helpBox';
		dragPosX = -10
		dragPosY = 10;
	}
}

function build_help_box_close()
{
	element = document.getElementById('helpBox');
	if(element)
	{
		element.style.display = 'none';
		dragId = '';
		dragPosX = 0
		dragPosY = 0;
	}
}

function build_show_hide_layer(id)
{
	layer = document.getElementById(id);
	if(layer)
	{
		if(layer.style.display == 'none')
		{
			layer.style.display = 'block';
		}
		else
		{
			layer.style.display = 'none';
		}
	}
}

function antiSpam_form(id,url)
{
	document.forms[id].action = url;
}

function build_colorPicker_choose(name,color)
{
	input = document.getElementById(name);
	sample = document.getElementById(name+'_sample');
	pickerText = document.getElementById(name+'_pickerTest');

	input.value = color;
	sample.style.backgroundColor = color;
	pickerText.style.backgroundColor = color;
	pickerText.innerHTML = "<span style='color:#000000'>"+color+"</span>";
	pickerText.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;";
	pickerText.innerHTML += "<span style='color:#ffffff'>"+color+"</span>";
	build_show_hide_layer(name+'_picker');
}

function build_colorPicker_test(name,color)
{
	pickerText = document.getElementById(name+'_pickerTest');

	if(color == '')
	{
		color = document.getElementById(name).value;
	}

	pickerText.style.backgroundColor = color;
	pickerText.innerHTML = "<span style='color:#000000'>"+color+"</span>";
	pickerText.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;";
	pickerText.innerHTML += "<span style='color:#ffffff'>"+color+"</span>";
}

function build_popup(pageUrl,pageName,height,width)
{
	config = 'height='+height+', width='+width+', toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=no';
	window.open(pageUrl,pageName, config);
}

