sfHover = function() {
	var sfEls = document.getElementById("gnList").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

var gnsX,gnsY,gnX,gnY;
gnsX = '5';
gnsY = '120';
if((gncRead('gncx') != null) && (gncRead('gncy') != null)){
	//gnsX = gncRead('gncx');
	//gnsY = gncRead('gncy');
}
document.write("<style>#imaginetool{top:"+gnsY+"px;left:"+gnsX+"px;}</style>");

if (gncRead('gnVisible') != 'false'){
	gncCreate('gnVisible',true,180);
	//document.write('<a href="javascript:void(0);" onclick="gnClose()" style="color:white;">off</a>');
} else {
	//document.write('<a href="javascript:void(0);" onclick="gnOpen()" style="color:white;">on</a>');
	document.write('<style>#imaginetool{display:none;}</style>');
}


function gncCreate(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function gncRead(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function gncErase(name) {
	gncCreate(name,"",-1);
}

function gnBrowser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new gnBrowser();

var dragObj = new Object();
dragObj.zIndex = 0;

function gnDragStart(event, id) {

  var el;
  var x, y;

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;


    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }


  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }


  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 0);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  0);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 10;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 120;
	if((gncRead('gncx') != null) && (gncRead('gncy') != null)){
		//dragObj.elStartLeft = parseInt(gncRead('gncx'));
		//dragObj.elStartTop = parseInt(gncRead('gncy'));
	}

		
  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  if (browser.isIE) {
    document.attachEvent("onmousemove", gnDragGo);
    document.attachEvent("onmouseup",   gnDragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", gnDragGo,   true);
    document.addEventListener("mouseup",   gnDragStop, true);
    event.preventDefault();
  }
}

function gnDragGo(event) {

  var x, y;

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  dragObj.elNode.style.left = gnX = (dragObj.elStartLeft + x - dragObj.cursorStartX);
  dragObj.elNode.style.top  = gnY = (dragObj.elStartTop  + y - dragObj.cursorStartY);
  dragObj.elNode.style.left += "px";
  dragObj.elNode.style.top += "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function gnDragStop(event) {

  if (browser.isIE) {
    document.detachEvent("onmousemove", gnDragGo);
    document.detachEvent("onmouseup",   gnDragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", gnDragGo,   true);
    document.removeEventListener("mouseup",   gnDragStop, true);
  }
	gncCreate('gncx',gnX,90);
	gncCreate('gncy',gnY,90);
	
}




function gncRead(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function gnClose(){
	gncCreate('gnVisible',false,180);

	var gnToolObj = document.getElementById("imaginetool");
	gnToolObj.style.display = 'none';
}
function gnOpen(){
	gncCreate('gnVisible',true,180);

	var gnToolObj = document.getElementById("imaginetool");
	gnToolObj.style.display = 'block';
	//alert(gncRead('gnVisible'));	
}
/*
function gnTogglePane(o,c){
	var gnPBo = document.getElementById("gnPBopen");
	var gnPBc = document.getElementById("gnPBclose");
	var gnPo = document.getElementById("gnPopen");
	var gnPc = document.getElementById("gnPclosed");
	
	gnPBo.style.display = gnPc.style.display = c;
	gnPBc.style.display = gnPo.style.display = o;
	
}
*/