<!--
//**************************************//
// Utility.js   Date: 11/7/2000         //
// Written by Olaf Stelling             //
// Copyright 2000, Blueberry.Net Ltd.   //
//**************************************//

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Global Variables          			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Variable Declaration			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

var ns; // Indicates Netscape Navigator or Communicator is being used
var ie; // Indicated Microsoft Internet Explorer is being used
var verMajor; // Indicated Major version of Browser
var verMinor; // Indicated Minor version of Browser
var Platform; // Indicates the platform the Browser is running on
var ScrollPercent; // Indictes the percentage to scroll

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Constant Declaration			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// Major Version Constants
var MA_1 = 1;
var MA_2 = 2;
var MA_3 = 3;
var MA_4 = 4;
var MA_5 = 5;
var MA_6 = 6;
// Minor Version Constants
var MI_1 = 1;
var MI_2 = 2;
var MI_3 = 3;
var MI_4 = 4;
var MI_5 = 5;
var MI_6 = 6;
var MI_7 = 7;
var MI_8 = 8;
var MI_9 = 9;
var MI_0 = 0;
var MI_OTHER = 99;
// Platform Constants
var PLATFORM_MAC = 0;
var PLATFORM_WIN95 = 1;
var PLATFORM_WIN98 = 2;
var PLATFORM_WINNT = 3;
var PLATFORM_WIN2000 = 4;
var PLATFORM_OTHER =99;

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Browser Detection         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Detects the browsertype and version      //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function BrowserDetect(){
	// Check whether IE or Netscape
	if (navigator.appName == "Microsoft Internet Explorer") {ie = true;} else {ns = true;};
	// Check Platform
	if(navigator.appVersion.indexOf('MAC') != -1){Platform = 0;};
	if(navigator.appVersion.indexOf('95') != -1){Platform = 1;};
	if(navigator.appVersion.indexOf('98') != -1){Platform = 2;};
	if(navigator.appVersion.indexOf('NT') != -1){Platform = 3;};
	if(navigator.appVersion.indexOf('NT 5') != -1){Platform = 4;};
	if(Platform == -1){Platform = 99;};
	// Check Version
	if(ie) {
		if(navigator.appVersion.indexOf('MSIE 5.5') != -1){verMajor = 5;verMinor = 5;};
		if(navigator.appVersion.indexOf('MSIE 5.0') != -1){verMajor = 5;verMinor = 0;};
		if(navigator.appVersion.indexOf('MSIE 5.01') != -1){verMajor = 5;verMinor = 1;};
		if(navigator.appVersion.indexOf('MSIE 4.5') != -1){verMajor = 4;verMinor = 5;};
		if(navigator.appVersion.indexOf('MSIE 4.0') != -1){verMajor = 4;verMinor = 0;};
		if(navigator.appVersion.indexOf('MSIE 4.01') != -1){verMajor = 4;verMinor = 1;};
		if(navigator.appVersion.indexOf('MSIE 3') != -1){verMajor = 3;verMinor = 99;};
	}
	if(ns) {
		if(navigator.appVersion.indexOf('5.') != -1){verMajor = 6;verMinor = 99;};
		if(navigator.appVersion.indexOf('4.') != -1){verMajor = 4;verMinor = 99;};
		if(navigator.appVersion.indexOf('4.7') != -1){verMajor = 4;verMinor = 7;};
		if(navigator.appVersion.indexOf('4.6') != -1){verMajor = 4;verMinor = 6;};
		if(navigator.appVersion.indexOf('4.5') != -1){verMajor = 4;verMinor = 5;};
		if(navigator.appVersion.indexOf('3.') != -1){verMajor = 3;verMinor = 99;};
		if(navigator.appVersion.indexOf('2.') != -1){verMajor = 2;verMinor = 99;};
	}
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Style Sheet Function      			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function StyleSheet(){

if (ie) {
	if(Platform==PLATFORM_MAC) {
		// Check for IE 5 on Mac if not use IE 4.5 Stylesheet
		if(verMajor==5){
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/mac_ie_5.css">');
		} else {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/mac_ie_45.css">');
		}
	} else {
		if((verMajor== 5)&&(verMinor!=5)) {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/windows_ie_5.css">');
		} else {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/windows_ie_55.css">');
		}
		if(verMajor==4) {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/windows_ie_4.css">');
		}
	}
}
if (ns) {
	if(Platform==PLATFORM_MAC) {
		document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/mac_ns.css">');
	} else {
		if(verMajor==6) {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/windows_ns_6.css">');
		}
		if(verMajor==4) {
			document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/windows_ns.css">');
		}
	}
}
if((ie==false)&& (ns==false)){
	document.write('<LINK REL="stylesheet" TYPE="text/css" HREF="css/unknown_browser.css">');
}

}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Module Initialization	 		    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Initialization			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

ns = false;
ie = false;
verMajor = -1;
verMinor = -1;
Platform = -1;
ScrollPercent = 0;
BrowserDetect();


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     MouseOver Functions       			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Changes an Image			    //
// Arguments:				    //
// image - name of the image		    //
// url   - url of image to be replaced      //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function ChangeImage(image,url) {
    eval(image+'.src = '+url);
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Changes a GIF Image to OVER State        //
// Arguments:				    //
// image - image object  		    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function MouseOver(image) {
  if(image && document.images && image.src.indexOf('_over.gif')==-1) {
    image.src = image.src.substring(0,(image.src.indexOf('.gif'))) + '_over.gif';
    }
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Changes a GIF Image to OUT State         //
// Arguments:				    //
// image - image object  		    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function MouseOut(image) {
  if(image && image!=mouseOutDisabledImage && document.images && image.src.indexOf('_over.gif')!=-1) {
    image.src = image.src.substring(0,(image.src.indexOf('_over.gif'))) + '.gif';
    }
}


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Layer Functions          			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Hides a Layer			    //
// Arguments:				    //
// layerref - name of the layer		    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function hideLayer(layref){
 if (ns){ eval('document.layers.["'+layref+'"].visibility = "hide"');};
 if (ie){ eval('document.all.'+layref+'.style.visibility = "hidden"'); };
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Shows a Layer			    //
// Arguments:				    //
// layerref - name of the layer		    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function showLayer(layRef){
 if (ns) {eval('document.layers["'+layRef+'"].visibility = "show"'); };
 if (ie) {eval('document.all.'+layRef+'.style.visibility = "visible"'); };
}


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Get the width of document in a layer	    //
// Arguments:				    //
// layer    - layer object		    //
// Returns:				    //
//          - width of document		    //
//					    //
// Note: Netscape only			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function getWidth(layer) {

   if (layer.document.width)
      return layer.document.width;
    else
      return layer.clip.right - layer.clip.left;
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Get the height of document in a layer    //
// Arguments:				    //
// layer    - layer object		    //
// Returns:				    //
//          - height of document 	    //
//					    //
// Note: Netscape only			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function getHeight(layer) {
   if (layer.document.height)
      return layer.document.height;
    else
      return layer.clip.bottom - layer.clip.top;
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Scroll a layer to specific point         //
// Arguments:				    //
// layer    - layer object		    //
// x        - x coordinate                  //
// y        - y coordinate                  //
// bound    - boundary                      //
// Returns:				    //
//          - nothing		 	    //
//					    //
// Note: Netscape only			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //


function scrollLayerTo(layer, x, y, bound) {

  var dx = layer.clip.left - x;
  var dy = layer.clip.top - y;

  scrollLayerBy(layer, -dx, -dy, bound);
}


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Scroll a layer by specific number of     //
// pixles.				    //
// Arguments:				    //
// layer    - layer object		    //
// dx       - x coordinate change           //
// dy       - y coordinate change           //
// bound    - boundary                      //
// Returns:				    //
//          - nothing		 	    //
//					    //
// Note: Netscape only			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function scrollLayerBy(layer, dx, dy, bound) {

  var cl = layer.clip.left;
  var ct = layer.clip.top;
  var cr = layer.clip.right;
  var cb = layer.clip.bottom;

  if (bound) {
    if (cl + dx < 0)
      dx = -cl;
    else if (cr + dx > getWidth(layer))
      dx = getWidth(layer) - cr;
    if (ct + dy < 0)
      dy = -ct;
    else if (cb + dy > getHeight(layer))
      dy = getHeight(layer) - cb;
  }

  layer.clip.left   = cl + dx;
  layer.clip.top    = ct + dy;
  layer.clip.right  = cr + dx;
  layer.clip.bottom = cb + dy;
  layer.moveBy(-dx, -dy)
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Scroll a layer to specific point based   //
// on a percentage of the document height   //
// Arguments:				    //
// layer    - layer object		    //
// percentage - Percentage of Height        //
// Returns:				    //
//          - nothing		 	    //
//					    //
// Note: Netscape only			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function ScrollNS(layerobj,percentage) {
	inc=(layerobj.document.height*percentage);
	scrollLayerTo(layerobj, 0, inc, true);
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Scroll a layer to specific point based   //
// on a percentage of the document height   //
// Arguments:				    //
// layer    - layer object		    //
// percentage - Percentage of Height        //
// Returns:				    //
//          - nothing		 	    //
//					    //
// Note: IE & Netscape			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function Scroll(layer,percentage){
if(ie){
	y = eval('percentage*'+layer+'.document.body.scrollHeight');
	eval(layer+'.scrollTo(0,y)');
}
if(ns){
	ScrollNS(eval('window.document.layers.'+layer),percentage);
}
}


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Scroll a layer to specific point based   //
// on a x & y coordinate                    //
// Arguments:				    //
// layer    - layer object		    //
// x,y 	    - x,y Coordinate	            //
// Returns:				    //
//          - nothing		 	    //
//					    //
// Note: IE & Netscape			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function ScrollToPoint(layer,x,y){
if(ie){
	window.scrollTo(x,y);
}
if(ns){
	window.scroll(x,y);
}
}



// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Cookie Functions         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Form Functions         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function GetValue(formfield){
	var value;
	return value
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Validation Functions      			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Timer Functions         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Sets a Timer				    //
// Arguments:				    //
// timerID - id of the timer (variable)     //
//           needs to be initialized with   //
//           null                           //
// code    - the code to be executed        //
// interval - interval of code execution    //
//            in milliseconds               //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function StartTimer(timerID,code,interval){
	clearInterval(timerID);
	timerID = setInterval(code,interval);
	return timerID
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Stops a Timer			    //
// Arguments:				    //
// timerID - id  of the timer (variable)    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function StopTimer(timerID){
	clearInterval(timerID);
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Window Functions         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Opens a new browser window		    //
// Arguments:				    //
// url      - url the window will open      //
// name     - name of the window            //
// features - features of the window        //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function OpenWindow(url,name,features) {
	var windowhandle;
	windowhandle = window.open(url,name,features);
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Opens a new browser window		    //
// Arguments:				    //
// url      - url the window will open      //
// name     - name of the window            //
// features - features of the window        //
// Returns:                                 //
//  windowhandle - Handle to the window     //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function OpenWindowRT(url,name,features) {
	var windowhandle;
	windowhandle = window.open(url,name,features);
	return windowhandle;
}

// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// 				     Mail Functions         			    //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //


// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //
// Opens a mail client and starts a message //
// to someone with a given subject          //
// Arguments:				    //
// email      - email address               //
// subject    - subject of email            //
// window     - window in which to open     //
// zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //

function Mail(email,subject,window){
	eval(window+'.location.replace("mailto:'+email+'?subject='+subject+'")');
}

//-->
