function exco(id,obj) {     //This function expands and collapses the given element + changes status of given obj from >> to vv or vice versa.

	if (document.getElementById) { // DOM3 = IE5, NS6
		if (document.getElementById(id).style.display == "none"){
			document.getElementById(id).style.display = 'block';
                        obj.innerHTML = "vv";
		} else {
			document.getElementById(id).style.display = 'none';
                        obj.innerHTML = ">>";
		}
	} 
}

function collapse(id,obj) {     //This function collapses the given element + changes status of given obj to >>.

	if (document.getElementById) { // DOM3 = IE5, NS6
			document.getElementById(id).style.display = 'none';
                        obj.innerHTML = ">>";
	}
}

function expand(id,obj) {     //This function expands the given element + changes status of given obj to vv.

	if (document.getElementById) { // DOM3 = IE5,){ NS6
			document.getElementById(id).style.display = 'block';
                        obj.innerHTML = "vv";
	} 
}


/*******************************/
function getMouseX(event)
{
ev = event || window.event;
return ev.pageX;
}

function getMouseY(event)
{
ev = event || window.event;
return ev.pageY;
}


function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
	do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
            obj = obj.offsetParent
	} while (obj);
	return [curleft,curtop];
        //var out = document.getElementById('out');
        //out.innerHTML = "LEFT: " + curleft + " TOP: " + curtop;
    } else {
        //alert("No offsetParent");
    }
}

function findPosById(objID) {
    var obj = document.getElementById(objID);
    var curleft = curtop = 0;
    if (obj.offsetParent) {
	do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
            obj = obj.offsetParent
	} while (obj);
	return [curleft,curtop];
        //var out = document.getElementById('out');
        //out.innerHTML = "LEFT: " + curleft + " TOP: " + curtop;
    } else {
        //alert("No offsetParent");
    }
}

function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
}

function isCtrl(e) {
 var ctrlPressed=0;
 var altPressed=0;
 var shiftPressed=0;

 if (parseInt(navigator.appVersion)>3) {

  var evt = navigator.appName=="Netscape" ? e:event;

  if (navigator.appName=="Netscape" && parseInt(navigator.appVersion)==4) {
   // NETSCAPE 4 CODE
   var mString =(e.modifiers+32).toString(2).substring(3,6);
   shiftPressed=(mString.charAt(0)=="1");
   ctrlPressed =(mString.charAt(1)=="1");
   altPressed  =(mString.charAt(2)=="1");
   self.status="modifiers="+e.modifiers+" ("+mString+")"
  }
  else {
   // NEWER BROWSERS [CROSS-PLATFORM]
   shiftPressed=evt.shiftKey;
   altPressed  =evt.altKey;
   ctrlPressed =evt.ctrlKey;
   self.status=""
    +  "shiftKey="+shiftPressed
    +", altKey="  +altPressed
    +", ctrlKey=" +ctrlPressed
  }
  if (ctrlPressed) {
   alert ("Mouse clicked with the following keys: Ctrl");
   return true;
  } else {
      return false;
  }
 }
}

function mouseDown(e) {
 var ctrlPressed=0;
 var altPressed=0;
 var shiftPressed=0;

 if (parseInt(navigator.appVersion)>3) {

  var evt = navigator.appName=="Netscape" ? e:event;

  if (navigator.appName=="Netscape" && parseInt(navigator.appVersion)==4) {
   // NETSCAPE 4 CODE
   var mString =(e.modifiers+32).toString(2).substring(3,6);
   shiftPressed=(mString.charAt(0)=="1");
   ctrlPressed =(mString.charAt(1)=="1");
   altPressed  =(mString.charAt(2)=="1");
   self.status="modifiers="+e.modifiers+" ("+mString+")"
  }
  else {
   // NEWER BROWSERS [CROSS-PLATFORM]
   shiftPressed=evt.shiftKey;
   altPressed  =evt.altKey;
   ctrlPressed =evt.ctrlKey;
   self.status=""
    +  "shiftKey="+shiftPressed
    +", altKey="  +altPressed
    +", ctrlKey=" +ctrlPressed
  }
  if (shiftPressed || altPressed || ctrlPressed)
   alert ("Mouse clicked with the following keys:\n"
    + (shiftPressed ? "Shift ":"")
    + (altPressed   ? "Alt "  :"")
    + (ctrlPressed  ? "Ctrl " :"")
   )
 }
 return true;
}

/*
 *
 if (parseInt(navigator.appVersion)>3) {
 document.onmousedown = mouseDown;
 if (navigator.appName=="Netscape")
  document.captureEvents(Event.MOUSEDOWN);
}
*/
