function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

var hasFlash = 0;
var hasShockwave = 0;
if (navigator.mimeTypes) {
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) >= 7) hasFlash = 1;
	if (navigator.mimeTypes && navigator.mimeTypes["application/x-director"] && navigator.mimeTypes["application/x-director"].enabledPlugin) {
		if (navigator.plugins && navigator.plugins["Shockwave for Director"] && (versionIndex = navigator.plugins["Shockwave for Director"].description.indexOf(".")) != - 1) {
			var versionString = navigator.plugins["Shockwave for Director"].description.substring(versionIndex-2, versionIndex);
			versionIndex = parseInt( versionString );
			if ( versionIndex >= 10 ) hasShockwave = 1;
		}
	}
}
if ((navigator.appVersion.indexOf("MSIE") != -1) && (navigator.appVersion.indexOf("Windows") != -1)) {
	document.writeln('<script language="VBScript">');
	document.writeln('on error resume next');
	document.writeln('hasFlash = (Isobject(Createobject("ShockwaveFlash.ShockwaveFlash.7")))');
	document.writeln('<\/script>');
	document.writeln('<script language="VBScript">');
	document.writeln('on error resume next');
	document.writeln('hasShockwave = (Isobject(Createobject("SWCtl.SWCtl.7")))');
	document.writeln('<\/script>');
}

function showFlash(flashFile, width, height, flashAlt) {
	if (hasFlash) document.writeln('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash/cabs/swflash.cab" width="'+width+'" height="'+height+'"><param name="movie" value="'+flashFile+'"><param name="quality" value="best"><param name="menu" value="false"><embed src="'+flashFile+'" width="'+width+'" height="'+height+'" quality="best" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"><\/embed><\/object>');
	else document.writeln(flashAlt);
}

function showShockwave(shockwaveFile, width, height, shockwaveAlt) {
	if (hasShockwave) document.writeln('<object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://active.macromedia.com/director/cabs/sw.cab" width="'+width+'" height="'+height+'"><param name="src" value="'+shockwaveFile+'"><param name="swRemote" value="swContextMenu=\'FALSE\'"><embed src="'+shockwaveFile+'" width="'+width+'" height="'+height+'" swRemote="swContextMenu=\'FALSE\'" type="application/x-director" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi"><\/embed><\/object>');
	else document.writeln(shockwaveAlt);
}

function initWindow(theWidth, theHeight) {
	if (window.innerHeight) {
		//netscape: scrollbars appear outside this width & height
		if (theWidth != 0) window.resizeBy(theWidth-window.innerWidth, 0);
		if (theHeight != 0) window.resizeBy(0, theHeight-window.innerHeight);
	} else if (document.documentElement && document.documentElement.clientHeight) {
		//ie: scrollbars appear outside this width & height
		if (theWidth != 0) window.resizeBy(theWidth-document.documentElement.clientWidth, 0);
		if (theHeight != 0) window.resizeBy(0, theHeight-document.documentElement.clientHeight);
	} else if (document.body && document.body.clientHeight) {
		//ie: scrollbars appear outside this width & height
		if (theWidth != 0) window.resizeBy(theWidth-document.body.clientWidth, 0);
		if (theHeight != 0) window.resizeBy(0, theHeight-document.body.clientHeight);
	}
	parent.window.focus();
}

// popup
function trackMouse() {
	var d=document,i,j,obj,args=trackMouse.arguments;
	if(!d.trackMouseObj) d.trackMouseObj=new Array();
	for (i=0; i<(args.length-1); i+=2) { 
	    v=args[i+1];
		if (v=='track') { 
		    d.trackMouseObj.length = d.trackMouseObj.length + 1;
		    obj=d.trackMouseObj[d.trackMouseObj.length - 1] = new Array();
		    obj[0] = args[i];obj[1] = args[i+1];
		    obj[2] = args[i+2];
		    if ((obj=getDivFromName(obj[0]))!=null) moveDivTo(obj,-1000,-1000); }
		if (v=='stop') { 
		    for (j=0; j<(d.trackMouseObj.length); j+=1) { 
		        if (d.trackMouseObj[j][0]==args[i]) { 
		            d.trackMouseObj[j] = d.trackMouseObj[d.trackMouseObj.length - 1]; 
		            d.trackMouseObj.length = d.trackMouseObj.length - 1; } } }
	}
	if (document.layers) document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove=trackMouseEvent;
}

function trackMouseEvent(e) {
	var d=document,i,obj;
	if(!d.trackMouseObj) d.trackMouseObj=new Array();
	for (i=0; i<(d.trackMouseObj.length); i++) {
	    obj=getDivFromName(d.trackMouseObj[i][0]);
	    if (obj != null) {
	        // calculate x location for the pop-up
		    eventPageX = parseInt(getLeftFromEvent(e));
		    pageWidth = parseInt(getWindowWidth());
		    //initDivSize(obj); initDivPos(obj);
		    if (eventPageX < pageWidth / 2) moveDivToX = eventPageX+10;
		    else moveDivToX = eventPageX-getDivWidth(obj)-10;
		    // eventPageX is measured with respect to the left border of the browser window but
		    // the move command is applied with respect left edge of the content, so we have to make
		    // an adjustment (bug fix -- S. Karpik, September 29, 2008)
		    moveDivToX = moveDivToX - (pageWidth - 760)/2;
		    // calculate y location for the pop-up
		    eventPageY = parseInt(getTopFromEvent(e));
		    windowHeight = parseInt(getWindowHeight());
		    divHeight = parseInt(getDivHeight(obj));
		    winYOffset = parseInt(getWinYOffset());
		    moveDivToY = eventPageY - (divHeight / 2);
		    if ((moveDivToY + divHeight) > (winYOffset + windowHeight)) moveDivToY = winYOffset + windowHeight - divHeight;
		    if (moveDivToY < winYOffset) moveDivToY = winYOffset;
		    moveDivTo(obj,moveDivToX,moveDivToY);
	    }
    }
}

function scrollHTML() {
	//arg[0] = container name
	//arg[1] = timer delay
	//arg[2] = html
	
	//objX[0] = container name
	//objX[1] = scroll name
	//objX[2] = timer delay
	//objX[3] = timer id
	//objX[4] = html
	//objX[5] = html width
	//objX[6] = width to go before restart

	var d=document,args=scrollHTML.arguments,actWidth;
	if(!d.scrollObj) d.scrollObj=new Array();
	d.scrollObj.length = d.scrollObj.length + 1;
	objX=d.scrollObj[d.scrollObj.length - 1] = new Array();

	objX[0] = args[0];
	objX[1] = args[0]+(new Date().getTime());
	objX[2] = args[1];
	objX[3] = 0;
	objX[4] = args[2];
	objX[5] = 0;
	if ((obj=getDivFromName(args[0]))!=null) {
		theHTML = ""
		theHTML += "<div id='"+args[0]+"setup' style='display: table; overflow: visible; white-space: pre; position: absolute; left: 0px; top: 0px;'><div style='display: table-cell;'>";
		theHTML += args[2];
		theHTML += "</div></div>";
		writeDivHTML(obj,true,true,theHTML);
		obj2 = getDivFromName(args[0]+"setup");
		initDivSize(obj2);
		objX[5] = getDivWidth(obj2);
		initDivSize(obj);
		actWidth = getDivWidth(obj);
		theHTML = ""
		theHTML += "<div style='position: relative; width: 100%; height: 100%;' onMouseOver='_scrollHTMLPause(\""+objX[1]+"\")' onMouseOut='_scrollHTMLStart(\""+objX[1]+"\")'>";
		theHTML += "<div id='"+objX[1]+"' style='position: absolute; white-space: pre;'>";
		jend = Math.ceil(actWidth/objX[5])+1;
		if (jend > 50) jend = 50;
		for (j=0; j<jend; j+=1) {
			theHTML += args[2]+" ";
		}
		theHTML += "</div>";
		theHTML += "</div>";
		writeDivHTML(obj,true,true,theHTML);
	}
	objX[6] = -1*objX[5]+Math.floor(actWidth/3.3);
	_scrollHTMLStart(objX[1]);
}

function _scrollHTMLScroll() {
	var d=document,args=_scrollHTMLScroll.arguments;
	for (j=0; j<(d.scrollObj.length); j+=1) if (d.scrollObj[j][1]==args[0]) {
		if ((obj=getDivFromName(d.scrollObj[j][1]))!=null) {
			if (d.scrollObj[j][6] < (-1*d.scrollObj[j][5])) d.scrollObj[j][6] = 1; else d.scrollObj[j][6]--;
			moveDivToX = d.scrollObj[j][6];
			initDivSize(obj); initDivPos(obj);
			moveDivToY = parseInt(getDivTop(obj));
			moveDivTo(obj,moveDivToX,moveDivToY);
		}
	}
}

function _scrollHTMLPause() {
	var d=document,args=_scrollHTMLPause.arguments;
	if(!d.scrollObj) d.scrollObj=new Array();
	for (j=0; j<(d.scrollObj.length); j+=1) if (d.scrollObj[j][1]==args[0]) clearInterval(d.scrollObj[j][3]);
}

function _scrollHTMLStart() {
	var d=document,args=_scrollHTMLStart.arguments;
	if(!d.scrollObj) d.scrollObj=new Array();
	for (j=0; j<(d.scrollObj.length); j+=1) if (d.scrollObj[j][1]==args[0]) d.scrollObj[j][3]=setInterval("_scrollHTMLScroll('"+d.scrollObj[j][1]+"')", d.scrollObj[j][2]);
}
