var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
		
var mouseX = 0;
var mouseY = 0;
	
document.onmousemove = mouseMove;
document.onmouseup   = mouseUp;

var dragObject  = null;
var mouseOffset = null;

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

function getMouseOffset(target, ev){
	ev = ev || window.event;
	
	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;
	
	return {x:left, y:top};
}

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

	if (IE) {
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
	} else {
		mouseX = ev.pageX;
		mouseY = ev.pageY;
	}
		
	if(dragObject){
		dragObject.style.position = 'absolute';
		dragObject.style.top      = mousePos.y - mouseOffset.y;
		dragObject.style.left     = mousePos.x - mouseOffset.x;

		return false;
	}
}
	
function mouseUp(){
	dragObject = null;
}

function makeDraggable(item){
	if(!item) return;
	item.onmousedown = function(ev){
		dragObject  = this;
		mouseOffset = getMouseOffset(this, ev);
		return false;
	}
}

/* Show the current place for the selected site from a dropdown list */
var adSitePlaces = new Array();
adSitePlaces[0] = "<option value=''> - Deactivated - </option>";

function addAdSitePlaces(places) {
	adSitePlaces[(adSitePlaces.length)] = places;
} 

function updateAdSitePlaces(selected) {
	document.getElementById('adplaces').innerHTML =
		"<select name='adplaceid' id='adplaceid'>" +  
		adSitePlaces[document.getElementById('adsites').selectedIndex] +
		"</select>";
		
	if (selected)
		document.getElementById('adplaceid').value = selected;
}

/* Check new ad form, and if there is no page/place selected warn the user that it will go to the deactivated ones */
function checkNewAdForm() {
	if (!document.getElementById('adplaceid').options[document.getElementById('adplaceid').selectedIndex].value) {
		return confirm('Are you sure you want to create your ad without selecting a Site & Page/Place for it?! If so please note your ad will be placed to the deactivated ones but you will be able to activate and define a Site and Page/place for it later.');
	}
	
	return true;
}

/* Customize showForm for ads */
function showAdForm(adid, values) {
	if (values) {
		document.getElementById('adid').value = adid;
		
		document.getElementById('adformtitle').innerHTML = "Modify Ad";
		document.getElementById('adformsubmit').value = 'Modify';
		document.getElementById('adformbannername').innerHTML = 
			'<b>'+values[2]+'</b> (select file below to update banner (optional))<br>';
		
		values[0] = document.getElementById(values[0]).innerHTML;
		values[1] = document.getElementById(values[1]).innerHTML;
	
		days=values[7].split(',');
		values[7] = '';
	
		for(i in days) {
			if (days[i])
				values[7+Number(days[i])] = 'true';
		} 
	
		showHideForm(1, 'adform', values);
		updateAdSitePlaces(values[4]);
		
	} else {
		document.getElementById('adid').value = '';
		
		document.getElementById('adformtitle').innerHTML = "Create a New Ad";
		document.getElementById('adformsubmit').value = 'Create Ad';
		document.getElementById('adformbannername').innerHTML = '';
			
		showHideForm(1, 'adform', new Array('', '', '', '', '', '', '', '','','','','','',''));
		updateAdSitePlaces();
	}
}

/* Show/hide a form and set the inputs to defined values */
function showHideForm(sh, form, values) {
	if (sh == 1) {
		if (mouseY) {
			document.getElementById(form).style.top = mouseY+15;
			document.getElementById('formpointer').style.top = mouseY+5;
		}
		
		if (mouseX) {
			document.getElementById('formpointer').style.left = mouseX-5;
		}
		
		eform = document.getElementById(form); 
		for(i=0; i < eform.elements.length; i++) {
			// types can be: text, checkbox, radio, select-one, select-multiple
			if (values) {
				if (eform.elements[i].type == 'text' || 
					eform.elements[i].type == 'select-one')
				{
					eform.elements[i].value = values[i];
					
				} else if (eform.elements[i].type == 'checkbox' || 
					eform.elements[i].type == 'radio')
				{
					eform.elements[i].checked = values[i];
				}
			}
		}
		
		document.getElementById('formpointer').style.visibility = 'visible';
		document.getElementById(form).style.visibility = 'visible';
		
	} else {
		document.getElementById('formpointer').style.visibility = 'hidden';
		document.getElementById(form).style.visibility = 'hidden';
	}
} 

/* Show/Hide a container */
function showHideContainer(container, header) {
	if (document.getElementById(container).style.height != '1px') {
		document.getElementById(container).style.height = '1px';
		document.getElementById(container).style.overflow = 'hidden';
		document.getElementById(container).style.visibility = 'hidden';
		
		if (header)
			document.getElementById(header).style.backgroundImage = 'url(images/expand.gif)';
			
	} else {
		document.getElementById(container).style.height = 'auto';
		document.getElementById(container).style.overflow = 'auto';
		document.getElementById(container).style.visibility = 'visible';
		if (header)
			document.getElementById(header).style.backgroundImage = 'url(images/colapse.gif)';
	}
}

/* Show/Hide ad details, and move it to the position of the mouse cursor */
function showAdDetails(container) {
	if (document.getElementById(container).style.visibility != 'visible') {
		document.getElementById(container).style.visibility = 'visible';
	}
	
	document.getElementById(container).style.top = mouseY+10;
	document.getElementById(container).style.left = mouseX+10;
}

function hideAdDetails(container) {
	document.getElementById(container).style.visibility = 'hidden';
}

/* Some extra function for ts_picker.js */
function clear_Date(obj)
{
	document.getElementById(obj).value = '';
}
