var iceTimer     = null;
var iceMouseX = 0;
var iceMouseY = 0;

var iceAllowed   = 0;

var isOpera      = (navigator.userAgent.indexOf('Opera') != -1);
var isIE         = (!isOpera && navigator.userAgent.indexOf('MSIE') != -1)

var iceDetails   = 1;
var icePreview	 = 2;
var iceAdd       = 4;
var iceEdit      = 8;
var iceCopy			 = 16;
var iceDel       = 32;
var iceWorkflow	 = 64;

var iceImages  = new Array ("iceImageDetails", "iceImagePreview", "iceImageAdd", "iceImageEdit", "iceImageCopy", "iceImageDel", "iceImageWorkflow");
var iceActions = new Array ("details", "preview", "insert", "edit", "copy", "delete", "workflow"); 

var iceURL;
var iceSite;
var icePage;
var icefragPg;
var iceID;
var iceStage;
var icePath;

if (document.layers) 
{
	document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = iceGetMousePosition;
} 
else if (document.all) 
{
	document.onmousemove = iceGetMousePosition;
} 
else if (document.getElementById) 
{
	document.onmousemove = iceGetMousePosition;
}

function iceGetMousePosition(e) 
{
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		iceMouseX = e.pageX;
		iceMouseY = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		iceMouseX = e.clientX;
		iceMouseY = e.clientY;
		if (isIE)
		{
			iceMouseX += document.body.scrollLeft;
			iceMouseY += document.body.scrollTop;
		}
	}
}

function iceGetObject(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
		this.obj = document.all[name];
		this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function iceLoadImages() 
{
  var d = document; 
  
  if (d.images)
  { 
  	if (!d.MM_p) 
  		d.MM_p = new Array();
  		
    var i, j = d.MM_p.length, a = iceLoadImages.arguments; 
  
    for(i = 0; i < a.length; i++)
    	if (a[i].indexOf("#") != 0)
    	{ 
    		d.MM_p[j] = new Image; 
    		d.MM_p[j++].src = a[i];
    	}
    }
}

function iceGetImage(n, d) 
{
	var p, i, x;  

	if (!d) 
		d = document; 
		
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) 
	{
		d = parent.frames[n.substring (p + 1)].document; 
    	n = n.substring (0,p);
    }
    
	if (!(x = d[n]) && d.all) 
		x = d.all[n]; 
	
	for (i = 0; !x && i < d.forms.length; i++) 
		x = d.forms[i][n];
		
	for(i = 0; !x && d.layers && i < d.layers.length; i++) 
		x = iceGetImage (n, d.layers[i].document);
		
	if (!x && document.getElementById) 
		x = document.getElementById (n); 
		
	return x;
}

function iceHideToolbar()
{
  var x = new iceGetObject('iceToolbar');
  x.style.visibility = "hidden";
}

function iceHoldToolbar()
{
  clearTimeout(iceTimer);
}

function iceDropToolbar()
{
  if (iceTimer)
	  clearTimeout(iceTimer);
  iceTimer = setTimeout("iceHideToolbar()", 3000);
}

function iceShowToolbar(allow, url, site, page, fragPg, id, stage, strPath)
{
  iceAllowed = allow;
	iceURL = url;
	iceSite = site;
	icePage = page;
	icefragPg = fragPg;
	iceID = id;
	iceStage = stage;
	icePath = strPath;
	
  if ((iceMouseX == 0) && (iceMouseY == 0))
    return;
  
  for (i = 0; i < iceImages.length; i++)
  {
    img = iceGetImage (iceImages[i]);
    if (iceAllowed & Math.pow(2, i))
    	img.src = strPath + "/ice/images/" + iceImages[i] + ".gif";
  	else
      img.src = strPath + "/ice/images/shim.gif";
  }
    
  var x = new iceGetObject('iceToolbar');
  x.style.top  = iceMouseY - 8;
  x.style.left = iceMouseX + 20;
  x.style.visibility = "visible";
  iceDropToolbar();
}


function xlog2(num)
{
	var result = -1;
	while (num)
	{
		num >>= 1;
		result ++;
	}
	return result;
}

function iceAction(iceDo)
{
	switch (iceActions[xlog2(iceDo)])
	{
		case "details":
			top.ice_nav.location.href=icePath + "/ice/page/main.asp?mode=articles&subMode=articles";
			break;

		case "preview":
			top.ice_nav.location.href=icePath + "/ice/page/main.asp?navPage=editorPreview&mode=editor&subMode=preview&page="+icePage+"&id="+iceID;
			break;
			
		default:
			top.ice_nav.location.href=icePath + "/ice/page/main.asp?navPage=editor&mode=editor&ice_action="+iceActions[xlog2(iceDo)]+"&page="+icePage+"&id="+iceID;
			break;
	}
	// fill in the form fields
	document.iceFlyout.site.value = iceSite;
	document.iceFlyout.page.value = icePage;
	document.iceFlyout.fragPg.value = icefragPg;
	document.iceFlyout.id.value = iceID;
	document.iceFlyout.stage.value = iceStage;
	document.iceFlyout.ice_action.value = iceActions[xlog2(iceDo)];
	// now submit the form
  if (iceAllowed & iceDo)
	{
		document.iceFlyout.action = iceURL;
		document.iceFlyout.submit();
	}
}