dragging = false;


var util = 
{
	addEventListener: function(el,event,handler)
	{
		if (el.addEventListener)
		{
			el.addEventListener(event,handler,false);
		}
		else if (el.attachEvent)
		{
			el.attachEvent('on' + event,handler);
		}
		else
			el['on' + event] = handler;
	},
	
	epos: function(el)
	{
		var pos = {x: 0, y: 0};
		while(el)
		{
//			alert(el.nodeName + ' ' + el.offsetTop);
			pos.x += el.offsetLeft;
			pos.y += el.offsetTop;
			
			el = el.offsetParent;
		}
		return pos;
	},
	
	
	yTop: function()
	{
		if (self.pageYOffset) 
		{
			return self.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft )
		{      // Explorer 6 Strict
			return document.documentElement.scrollTop;
		} else if (document.body) 
		{	// all other Explorers
		    return document.body.scrollTop;
		}
	},
	
	
	yLeft: function()
	{
		if (self.pageXOffset) 
		{
			return self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft )
		{      // Explorer 6 Strict
			return document.documentElement.scrollLeft;
		} else if (document.body) 
		{	// all other Explorers
		    return document.body.scrollLeft;
		}
	},
	
	yHeight: function()
	{
		return (window.innerHeight || document.documentElement.clientHeight);
	}
	
}

var editorRunning;

var activeDropdown;

function activateDropdowns()
{
	var i;
	var images = document.getElementsByTagName('IMG');
	for (i = 0;i < images.length;i++)
	{
		if (/cmsdot/.test(images[i].className))
		{
			if (images[i].name)
			{
				images[i].onmouseover=iover;
				images[i].src='/cms/images/edit.gif';
			}
		}
	}
	
	var links = document.getElementsByTagName('A');
	for (i = 0; i < links.length;i++)
	{
		if (links[i].saved_href)
		{
			links[i].href = links[i].saved_href;
			links[i].saved_href = null;
		}
	}
	
	
	var objectc = document.getElementsByTagName('OBJECT');
	for (i = 0; i < objectc.length;i++)
	{
		objectc[i].style.visibility = 'visible';
	}
	
	
}

function deactivateDropdowns()
{
	var i;
	var images = document.getElementsByTagName('IMG');
	for (i = 0;i < images.length;i++)
	{
		if (/cmsdot/.test(images[i].className))
		{
			if (images[i].name)
			{
				images[i].onmouseover=null;
				images[i].src='/cms/images/gedit.gif';
			}
		}
	}
	
	var links = document.getElementsByTagName('A');
	for (i = 0; i < links.length;i++)
	{
		if (links[i].href && !links[i].donthide)
		{
			links[i].saved_href = links[i].href;
			links[i].removeAttribute('href');
		}
	}
	
	var objectc = document.getElementsByTagName('OBJECT');
	for (i = 0; i < objectc.length;i++)
	{
		objectc[i].style.visibility = 'hidden';
	}
	
}


function iover(e)
{
	if (dragging) // drag drop support
		return
	if (editorRunning)
		return;
	e = e || window.event;
	var pimg = e.target || e.srcElement;
	var ipos = util.epos(pimg);
	var iname = pimg.name
	var eform = document.getElementById('f' + iname);
	if (eform)
	{
		eform.style.display = 'block';

		eform.pos = {left: ipos.x - 8, top: ipos.y - 8};
		var yLeft = util.yLeft();
		var yTop = util.yTop();
		if (eform.pos.left < yLeft + 4)
			eform.pos.left = yLeft + 4;
		if (eform.pos.top < yTop + 4)
			eform.pos.top = yTop + 4;
			
		eform.pos.right = eform.pos.left + eform.clientWidth;			
		eform.pos.bottom = eform.pos.top + eform.clientHeight;		
		
		var b = yTop + util.yHeight();
		
		if (eform.pos.bottom > b)
		{
			eform.pos.top -= eform.pos.bottom - b;
			eform.pos.bottom -= eform.pos.bottom - b;
		}
			
		eform.style.left = eform.pos.left + 'px';
		eform.style.top = eform.pos.top + 'px';
		
		pimg.cmsform = eform;
		if (activeDropdown)
			activeDropdown.style.display = 'none';
		activeDropdown = eform;
		document.body.onmousemove = imm;
	}
}

function closeDropdown()
{
	if (activeDropdown)
	{
		activeDropdown.style.display = 'none';
		activeDropdown = null;
		document.body.onmousemove = null;
	}
}

function imm(e)
{
	e = e || window.event;

	if (activeDropdown)
	{
		var X = e.clientX + util.yLeft();
		var Y = e.clientY + util.yTop();
		if (X < activeDropdown.pos.left || Y < activeDropdown.pos.top ||
			X > activeDropdown.pos.right || Y > activeDropdown.pos.bottom)
		{
			closeDropdown();
		}
	}
}


util.addEventListener(window,'load',activateDropdowns);

