function get_cookie(name) {
  var search = name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    if (offset != -1) {
      offset += search.length
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

/*
function popUp(url,x,y) {
var winX = ((screen.availWidth/2)-(x/2));
var winY = ((screen.availHeight/2)-(y/2));
window.open(url,"page","height="+y+",width="+x+",toolbar=0,menubar=0,directories=0,scrollbars=0, resise=0,left="+winX+",top="+winY);
} */

// check for cookies to determine if forms/urls need the session included.
var SESS_check = get_cookie(cookie_name);
if (SESS_check != SESS) {
	// cookies on
	var COOKIE = true;
	var COOKIE_URL = '';
	var COOKIE_FORM= '';
} else {
 	//cookies off
	var COOKIE = false;
	var COOKIE_URL = '&s=' + SESS;
	var COOKIE_FORM = '<input type="hidden" name="s" value="' + SESS + '">';
}

function refresh(delay,url) {
	document.write('<meta http-equiv="refresh" content="' + delay + ';URL=' + url + '">');
}

if (REDIRECT_PAGE != '') refresh(0,REDIRECT_PAGE);

function NewWindow(win,settings,url) {
	var eval1;
	eval1 = win + '=window.open("' + url + '","' + win + '","' + settings + '");';
	eval(eval1);
}

if(sess_expires >= 120) {	
	sess_timeout = (sess_expires * 1000) - 60000;
	var url 		= URL+'?_page=core:sess_timeout&_escape=true';
	var win 		= 'SessTimeoutWin';
	var settings 	= 'toolbar=no,status=yes,width=200,height=200';
	ident=window.setTimeout("NewWindow(win,settings,url)",sess_timeout);	
}

// Change the class for an object
function class_change(obj,style) {
	if(navigator.userAgent.indexOf("Netscape") != -1) {
		var obj1 = document.getElementById(obj);
		obj1.setAttribute('class', style);
		return;
	} else if(navigator.userAgent.indexOf("MSIE") != -1) {
		eval(obj+'.className = "'+style+'";');	
		return;		
	} else if(navigator.userAgent.indexOf("Mozilla") != -1) {
		var obj1 = document.getElementById(obj);
		obj1.setAttribute('class', style);
		return;
	} else {
		eval(obj+'.className = "'+style+'";');	
		return;					
	}		
}

// View a record based on the item selected from the drop-down menu ($list->menu)
function menu_item_view(module,id) {
    var selected_id;
    eval ('selected_id = document.getElementById("'+id+'").value;');
    if(selected_id != '')
    document.location = '?_page='+module+':view&id='+selected_id+',&s='+SESS;
}

// Add a record based on the item selected from the drop-down menu ($list->menu)
function menu_item_add(module,id) {
    var selected_id2;
    eval ('selected_id2 = document.getElementById("'+id+'").value;');
    if(selected_id2 != '')
    document.location = '?_page='+module+':add&id='+selected_id2+',&s='+SESS;
}

// Display a Iframe
function showIFrame(element,width,height,src) {

    document.getElementById(element).style.width   = width+'px';
    document.getElementById(element).style.height  = height+'px';
    if(src != false){
		document.getElementById(element).src  = src;
		}

}

// Hide an IFrame
function hideIFrame(element) {
    document.getElementById(element).style.width  = '0px';
    document.getElementById(element).style.height = '0px';
    document.getElementById(element).style.align  = 'center';
 	return false;
} 


// Get the page width
function getPageWidth(defaultWidth)  { 
	if (self.innerWidth) {
		return self.innerWidth * .96; 
		//return defaultWidth;
	} else if (document.documentElement && document.documentElement.clientWidth) {
		//return document.documentElement.clientWidth; 
		return defaultWidth * .96;
	} else if (document.body) { 
		return document.body.clientWidth *.96;
	} else {
		return defaultWidth;
	}
}

// convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();
	
	

    // *** BROWSER VERSION ***

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
    var is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1); // new 021205- dmr
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128
    var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6); // new021205 -- dmr

    // Note: On IE, start of appVersion return 3 or 4
    // which supposedly is the version of Netscape it is compatible with.
    // So we look for the real version further on in the string
    // And on Mac IE5+, we look for is_minor in the ua; since 
    // it appears to be more accurate than appVersion - 06/17/2004

    var is_mac = (agt.indexOf("mac")!=-1);
    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       if(is_mac) {
           var iePos = agt.indexOf('msie');
           is_minor = parseFloat(agt.substring(iePos+5,agt.indexOf(';',iePos)));
       }
       else is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       is_major = parseInt(is_minor);
    }

    // ditto Konqueror
                                      
    var is_konq = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       is_konq  = true;
       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       is_major = parseInt(is_minor);
    }                                 

    var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

    var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    var is_khtml  = (is_safari || is_konq);

    var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    var is_gver  = 0;
    if (is_gecko) is_gver=navigator.productSub;

    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")||(navigator.vendor=="Debian")));
    var is_fb = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                 (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                 (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                 (is_gecko) && (navigator.vendor=="Firebird"));
    var is_fx = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                 (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                 (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                 (is_gecko));
    if ((is_moz)||(is_fb)||(is_fx)) {  // 032504 - dmr
       var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(is_moz_ver)) {
           is_moz_ver = agt.indexOf('rv:');
           is_moz_ver = agt.substring(is_moz_ver+3);
           is_paren   = is_moz_ver.indexOf(')');
           is_moz_ver = is_moz_ver.substring(0,is_paren);
       }
       is_minor = is_moz_ver;
       is_major = parseInt(is_moz_ver);
    }
   var is_fb_ver = is_moz_ver;
   var is_fx_ver = is_moz_ver;

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!is_khtml) && (!(is_moz)) && (!is_fb) && (!is_fx));

    // Netscape6 is mozilla/5 + Netscape6/6.0!!!
    // Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
    // Changed this to use navigator.vendor/vendorSub - dmr 060502   
    // var nav6Pos = agt.indexOf('netscape6');
    // if (nav6Pos !=-1) {
    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (is_nav)) {
       is_major = parseInt(navigator.vendorSub);
       // here we need is_minor as a valid float for testing. We'll
       // revert to the actual content before printing the result. 
       is_minor = parseFloat(navigator.vendorSub);
    }

    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for
                                                // consistency - dmr, 011001
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp
    var is_nav6up = (is_nav && is_minor >= 6); // new 010118 mhp

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);

    var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
    var is_ie5_5up =(is_ie && is_minor >= 5.5);                // 020128 new - abk
	
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
    var is_aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));
    var is_aol8  = ((agt.indexOf("aol 8")!=-1) || (agt.indexOf("aol8")!=-1));

    var is_webtv = (agt.indexOf("webtv") != -1);
    
    // new 020128 - abk
    
    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

    // end new
	
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var enabletip=false

if (is_ie) {
	var tipobj=document.all["dhtmltooltip"];
} else {
	if (is_fx || is_safari) {
		var tipobj=document.getElementById("dhtmltooltip");
	}
}


function ddrivetip(thetext, thecolor, thewidth){
	
	if (is_ie || is_fx || is_safari) {
	
		if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px";
		if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor;
		tipobj.innerHTML=thetext
		enabletip=true
		
		return false
	}
}

function positiontip(e){

if (enabletip){

	if (is_ie) {
		var curX=event.x + document.body.scrollLeft;
		var curY=event.y + document.body.scrollTop;
	}
	if (is_fx) {
		var curX=e.pageX;
		var curY=e.pageY;
	}
	if (is_safari) {
		var curX=e.pageX;
		var curY=e.pageY;
	}

	if (is_ie) {
		var rightedge=document.body.clientWidth-event.clientX-offsetxpoint;
		var bottomedge=document.body.clientHeight-event.clientY-offsetypoint;
	}
	if (is_fx) {
		var rightedge=window.innerWidth-e.clientX-offsetxpoint-20;
		var bottomedge=window.innerHeight-e.clientY-offsetypoint-20;
	}
	if (is_safari) {
		 var rightedge=document.body.clientWidth-e.clientX-offsetxpoint-20;
		 var bottomedge=document.body.clientHeight-e.clientY-offsetypoint-20;
	}
	
	
	//if the horizontal distance isn't enough to accomodate the width of the context menu
	if (rightedge<tipobj.offsetWidth) {
		if (is_ie) {
			tipobj.style.left=document.body.scrollLeft+event.clientX-tipobj.offsetWidth+"px";
		}
		if (is_fx) {
			tipobj.style.left=window.pageXOffset+e.clientX-tipobj.offsetWidth+"px";
		}
		if (is_safari) {
			tipobj.style.left=window.pageXOffset+e.clientX-tipobj.offsetWidth+"px";
		}
	} else {
		tipobj.style.left=curX+offsetxpoint+"px";
	}

	//same concept with the vertical position
	if (bottomedge<tipobj.offsetHeight) {
		if (is_ie) {
			tipobj.style.top=document.body.scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px";
		}
		if (is_fx) {
			tipobj.style.top=window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px";
		}
		if (is_safari) {
			tipobj.style.top=window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px";
		}
	} else {

		tipobj.style.top=curY+offsetypoint+"px";
	}
	
	
	tipobj.style.visibility="visible";
	}
	
}

function hideddrivetip(){
	if (is_ie || is_fx || is_safari){
		enabletip=false
		tipobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
	}
}

document.onmousemove=positiontip

function writeBlock(blockId, blockContents) {

	currentValue = document.getElementById(blockId).innerHTML;
	
	if (currentValue.length == 0) {
		document.getElementById(blockId).innerHTML=blockContents;
	} else {
		document.getElementById(blockId).innerHTML="";
	}
}

function populateTextField(textFieldPath, value) {

	eval("element = " + textFieldPath);
	element.value = value;

}

function toggleLayer( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}
