/* Modified by MM (Graphinet) at 10/27/09 */
var timer;
var timer2;
var timer3;

var run_expand_code = 0;

var level1 = new Array("", "", "");
var level2 = new Array("", "", "");
var level3 = new Array("", "", "");

function expand(dropfrom, dropdown, level, e){
   var browser = window.navigator.appName;
 
  if(level == 3){
  clearTimeout(timer3);
  if(level3[1] == ''){
   level3[0] = dropfrom;
   level3[1] = dropdown;
   level3[2] = level;
   run_expand_code = 1;
  }
  else if(level3[1] != dropdown){
   realcollapse(level3[0], level3[1], level3[2]);
   level3[0] = dropfrom;
   level3[1] = dropdown;
   level3[2] = level;
   run_expand_code = 1;
  }
 }
 
 else if(level == 2){
 clearTimeout(timer2);
  if(level2[1] == ''){
   level2[0] = dropfrom;
   level2[1] = dropdown;
   level2[2] = level;
   run_expand_code = 1;
  }
  else if(level2[1] != dropdown){
   realcollapse(level2[0], level2[1], level2[2]);
   if(level3[1]!="") realcollapse(level3[0], level3[1], level3[2]);
   level2[0] = dropfrom;
   level2[1] = dropdown;
   level2[2] = level;
   run_expand_code = 1;
  }
 }
 
 else if(level == 1){
  clearTimeout(timer);
  if(level1[1] == ''){
   level1[0] = dropfrom;
   level1[1] = dropdown;
   level1[2] = level;
   run_expand_code = 1;
  }
  else if(level1[1] != dropdown){
   realcollapse(level1[0], level1[1], level1[2]);
   if(level2[1]!="") realcollapse(level2[0], level2[1], level2[2]);
   if(level3[1]!="") realcollapse(level3[0], level3[1], level3[2]);
   level1[0] = dropfrom;
   level1[1] = dropdown;
   level1[2] = level;
   run_expand_code = 1;
  }
 }    
 
 if(run_expand_code == 1){
 
   var drop = document.getElementById(dropdown);
   var from = document.getElementById(dropfrom);
   var width = from.offsetWidth;
   var height = from.offsetHeight;
   var left = findPosX(from) + document.body.offsetLeft;
   var top =  findPosY(from) + height -1;
   
   drop.style.position = "absolute";
   drop.style.visibility = "visible";
   drop.style.display = "block";
   drop.style.backgroundColor = "rgb(239, 237, 238)";
   
   if (browser != "Microsoft Internet Explorer") {
    left = left - 1;
   }
   
   if(from.className == "navbar" || from.className == "navbar_link"){
    if(from.className == "navbar") from.className = "navbarover";
    if(from.className == "navbar_link") from.className = "navbarover_link";
   
   drop.style.top = top + 'px';
   drop.style.left = left + 'px';
    
   }
   
   if(from.className == "item" || from.className == "item_link"){
    if(from.className == "item") from.className = "itemover";
    if(from.className == "item_link") from.className = "itemover_link";
   
    //drop.style.top = from.offsetTop + 'px';
    
    //alert(drop.offsetHeight + " + " + from.offsetTop);
    
    if((drop.offsetHeight + top) > windowheight()){
      drop.style.top = (from.offsetTop - (drop.offsetHeight + top - windowheight())) + 'px';
      drop.style.bottom = '';
      //drop.style.bottom = '0px';
      //drop.style.top = '';
    }
    else{
     drop.style.top = from.offsetTop + 'px';
     drop.style.bottom = '';
    }
    
    
    
    drop.style.left = (drop.parentNode.clientWidth - 3) + 'px';
   }
    
    
   if(browser == "Microsoft Internet Explorer" && window.location.pathname == '/courses/catalogue.php'){
    var frame = document.getElementById('special_frame' + level);
        
    if(level == 1){
     frame.className = 'frame_visible';
     frame.style.top = drop.style.top;
     frame.style.left =  drop.style.left;
     frame.style.width = '125px';
     frame.style.height = drop.offsetHeight + 'px';
    }
        
    if(level >= 2){
     var fromframe = document.getElementById('special_frame' + (level-1));
     frame.className = 'frame_visible';
     if(drop.style.top){
      frame.style.top = 1 + fromframe.offsetTop + from.offsetTop + 'px';
     }
     else{
      frame.style.top = 1 + drop.offsetTop + fromframe.offsetTop + 'px';
     }
     frame.style.left =  fromframe.offsetLeft + (drop.parentNode.clientWidth - 3) + 1 + 'px';
     frame.style.width = '125px';
     frame.style.height = drop.offsetHeight + 'px';     
    }
   }
   run_expand_code = 0;
 }
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
			
		}
	}
	else if (obj.x)
		curleft += obj.x;

        //alert(xpos);
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


function collapse(s, m, level, e){
   
   
   if(level == 1){
    timer = setTimeout("realcollapse('" + s + "','" + m + "','" + level + "')", 1000);
   }
   else if(level == 2){
    timer2 = setTimeout("realcollapse('" + s + "','" + m + "','" + level + "')",1000);
   }
   else if(level == 3){
    timer3 = setTimeout("realcollapse('" + s + "','" + m + "','" + level + "')",1000);
   }
   


}

function realcollapse(s, m, level){

   if(level == 1){
    level1[0] = "";
    level1[1] = "";
    level1[2] = "";
   }
   if(level == 2){
    level2[0] = "";
    level2[1] = "";
    level2[2] = "";
   }
   if(level == 3){
    level3[0] = "";
    level3[1] = "";
    level3[2] = "";
   }
   
   var browser = window.navigator.appName;
   
   var d = document.getElementById(m);
   var td = document.getElementById(s);
   
if(browser == "Microsoft Internet Explorer" && (window.location.pathname == '/courses/catalogue.php' || window.location.pathname == '/courses/catalogue_test.php')){  
       var frame = document.getElementById('special_frame' + level);
       frame.className = 'frame_hidden'; 
   }
   
   if(td.className == "navbarover"){
    td.className = "navbar";
   }
   if(td.className == "navbarover_link"){
    td.className = "navbar_link";

   }
   if(td.className == "itemover"){
    td.className = "item";
   }
   if(td.className == "itemover_link"){
    td.className = "item_link";
   }

   d.style.position = "absolute";
   d.style.visibility = "hidden";
   d.style.display = "none";
}

function on(id){

   td = document.getElementById(id);
   if(td.className == "navbar") td.className = "navbarover";
   if(td.className == "navbar_link") td.className = "navbarover_link";
   if(td.className == "item") td.className = "itemover";
   if(td.className == "item_link") td.className = "itemover_link";
}

function off(id){
   td = document.getElementById(id);
   if(td.className == "navbarover") td.className = "navbar";
   if(td.className == "navbarover_link") td.className = "navbar_link";
   if(td.className == "itemover") td.className = "item";
   if(td.className == "itemover_link") td.className = "item_link";
}


function go_to(url){
 window.location.href = url;
}

// below function carries: copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
function pageHeight() {return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;}

function windowheight() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  //window.alert( 'Width = ' + myWidth );
  return myHeight;
}
