/*------------------------------------------------------------------- 
Author's Statement:
This script is based on ideas of the author.
You may copy, modify and use it for any purpose. The only condition is that if you publish web pages that use this script you point to its author at a suitable place and don't remove this Statement from it.
It's your responsibility to handle possible bugs even if you didn't modify anything. I cannot promise any support.
Dieter Bungers
GMD (www.gmd.de) and infovation (www.infovation.de)
--------------------------------------------------------------------*/
/* These are the parameters to define the appearance of the ToC. */
var
	showNumbers	= false, 		// display the ordering strings: yes=true | no=false
	textSizes	= new Array(1.0, 1.0, 0.8, 0.7, 0.7);			// font-size factors for: [0] the title "Table of Contents", [1] larger and bold fonts [2] smaller fonts if MS Internet Explorer [3] larger and bold fonts [4] smaller fonts if Netscape Navigator.

var menuWindow;

var nCols = 4;
var scrollY=0, addScroll=true, theHref="";

if (navigator.appName.toLowerCase().indexOf("explorer") > -1) {
	var mdi=textSizes[1], sml=textSizes[2];
}
else {
	var mdi=textSizes[3], sml=textSizes[4];
}

function noframeReDisplay(currentNumber,currentIsExpanded,changeContent)
{
	toc		= window.open("noframes_menu.html", "MENU", "menubar=no,resizable=yes,scrollbars=no,status=yes,height=700,width=300");
	content	= toc.opener;

	RefreshMenu(currentNumber,currentIsExpanded,changeContent,"window.opener.noframeReDisplay",toc);
	if (changeContent && (theHref != "")) content.location.href = theHref;
}

function frameReDisplay(currentNumber,currentIsExpanded,changeContent)
{
	RefreshMenu(currentNumber,currentIsExpanded,changeContent,"parent.frameReDisplay",toc);
	if (changeContent && (theHref != "")) content.location.href = theHref;
}

function RefreshMenu(currentNumber,currentIsExpanded,changeContent,functionName,toc)
{
	toc.document.open();
	toc.document.writeln("</head>");


	toc.document.writeln("<html>");
	toc.document.writeln("<head>");
	toc.document.writeln("<title>Menü</title>");
	toc.document.writeln("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />");
	toc.document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"css/iws_template.css\"/>");

	toc.document.writeln("<body class=\"menubody\">");
	toc.document.writeln("<table class=\"menutable\">");
	toc.document.writeln("<tr>");

	var currentNumArray = currentNumber.split(".");
	var currentLevel = currentNumArray.length-1;

	for (i=0; i<tocTab.length; i++) {
		thisNumber = tocTab[i][0];
		var isCurrentNumber = (thisNumber == currentNumber);
		if (isCurrentNumber) theHref=tocTab[i][2];
		var thisNumArray = thisNumber.split(".");
		var thisLevel = thisNumArray.length-1;
		var toDisplay = true;
		if (thisLevel > 0) {
			for (j=0; j<thisLevel; j++) {
				toDisplay = (j>currentLevel)?false:toDisplay && (thisNumArray[j] == currentNumArray[j]);
			}
		}
		thisIsExpanded = toDisplay && (thisNumArray[thisLevel] == currentNumArray[thisLevel])
		if (currentIsExpanded) {
			toDisplay = toDisplay && (thisLevel<=currentLevel);
			if (isCurrentNumber) thisIsExpanded = false;
		}

		if (toDisplay) {
			if (i==0) {
				toc.document.write("\n<td class=\"menucell\" colspan=" + (nCols+1) + ">");
				toc.document.write("<a class=\"menutitlelink\" href=\"javaScript:" + functionName + "('" + thisNumber + "'," + !(thisIsExpanded) + ",true)\">")
				toc.document.writeln(tocTab[i][1] + "</a></td></tr>");
				for (k=0; k<nCols; k++) {
					toc.document.write("<td class=\"menucell\">&nbsp;</td>");
				}
				toc.document.write("<td class=\"menucell\" width=240>&nbsp;</td></tr>");
				}
			else {
				if (addScroll) scrollY+=((thisLevel<2)?mdi:sml)*25;
				if (isCurrentNumber) addScroll=false;
				var isLeaf = (i==tocTab.length-1) || (thisLevel >= tocTab[i+1][0].split(".").length-1);
				img = (isLeaf)?"leaf":(thisIsExpanded)?"minus":"plus";
				toc.document.writeln("<tr>");
				for (k=1; k<=thisLevel; k++) {
					toc.document.writeln("<td class=\"menucell\">&nbsp;</td>");
				}
				toc.document.write("<td class=\"menucell\">");
				toc.document.write("<a class=\"menulink");
				toc.document.write("\"");
				toc.document.write("href=\"javaScript:" + functionName + "('" + thisNumber + "'," + thisIsExpanded + ",false);\">");
				toc.document.write("<img src=\"images/" + img + ".gif\" width=13 height=12 border=0></a></td> <td colspan=" + (nCols-thisLevel) + ">");
				toc.document.write("<a class=\"menulink");
				if (isCurrentNumber) toc.document.write("selected");
				toc.document.write("\" href=\"javaScript:" + functionName + "('" + thisNumber + "'," + !(thisIsExpanded) + ",true)\">");
				
				toc.document.writeln(((showNumbers)?(thisNumber+"&nbsp;"):"") + tocTab[i][1] + "</a></td></tr>");
			}
		}
	}

	toc.document.writeln("</table>");
	toc.document.writeln("</body>");

	toc.document.writeln("</html>");
	toc.document.close();
	toc.scroll(0,scrollY);
}

/* DEZE JAVASCRIPT IS ONTWIKKELD VOOR ISS WEB, EEN PRODUCT VAN NEDAP/Groenendaal */
var loaded = false;

function submitform()
{
	if (!loaded)
	{
		frm.target		= 'frame_voor_kaart';
		frm.action		= 'http://ws12.gis.nl/nedap_demo/xmlmapsample.asp';
		frm.submit();
	}
	loaded = true;
}

// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 6;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
// -----------------------------------------------------------------------------

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;

// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {

			versionStr = VBGetSwfVer(i);

		} else {

			versionStr = JSGetSwfVer(i);		

		}

		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
}

var DXImageTransformLibrary = new Array
(
	"FILTER=progid:DXImageTransform.Microsoft.Wheel(duration=2, spokes=5)",
	"FILTER=progid:DXImageTransform.Microsoft.Barn(duration=2, orientation=horizontal)",
	"FILTER=progid:DXImageTransform.Microsoft.Blinds(duration=2, bands=5)",
	"FILTER=progid:DXImageTransform.Microsoft.CheckerBoard(duration=2)",
	"FILTER=progid:DXImageTransform.Microsoft.Fade(duration=2)",
	"FILTER=progid:DXImageTransform.Microsoft.GradientWipe(duration=2, wipeStyle=0)",
	"FILTER=progid:DXImageTransform.Microsoft.Iris(duration=2,irisStyle=STAR)",
	"FILTER=progid:DXImageTransform.Microsoft.Iris(duration=2,irisStyle=CIRCLE)",
	"FILTER=progid:DXImageTransform.Microsoft.Pixelate(duration=2, maxSquare=40)",
	"FILTER=progid:DXImageTransform.Microsoft.Wheel(duration=2, spokes=5)",
	"FILTER=progid:DXImageTransform.Microsoft.RandomDissolve(duration=0.5)",
	"FILTER=progid:DXImageTransform.Microsoft.Spiral(duration=2)",
	"FILTER=progid:DXImageTransform.Microsoft.Stretch(duration=2, stretchStyle=push)",
	"FILTER=progid:DXImageTransform.Microsoft.Strips(duration=2, motion=rightdown)"
);


// Assign this to one of the above DXImageTransform effects, or null for random effects.
	/*
		e.g.
		var DXImageTransformFilter = "FILTER=progid:DXImageTransform.Microsoft.Fade(duration=2)";
		or
		var DXImageTransformFilter = DXImageTransformLibrary[4];
		or
		var DXImageTransformFilter = null;
	*/
var DXImageTransformFilter = "FILTER=progid:DXImageTransform.Microsoft.Fade(duration=2)";

/***************************************************************************************************/
function enableFlashComponents()
{
	// Version check based upon the values entered above in "Globals"
	var hasReqestedVersion = false;

	hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	// Check to see if the version meets the requirements for playback
	if (hasReqestedVersion) {
		document.getElementById("0").style.visibility="visible";
		document.getElementById("1").style.visibility="visible";
		document.getElementById("divFLASH").style.visibility="visible";
	}
	else
	{
		enableHTMLOnly();
	}
}

function enableHTMLOnly()
{
	document.getElementById("divHTML").style.visibility="visible";
	document.getElementById("divFLASH").style.visibility="hidden";
}

function tabOnClick(button, ID)
{
	var oElement = null;

	document.getElementById("0").className="tabOff";
	document.getElementById("1").className="tabOff";

	button.className="tabOn";

	if (ID == 0)
	{
		document.getElementById("divHTML").style.visibility="hidden";
		document.getElementById("divFLASH").style.visibility="visible";
	}
	else
	{
		document.getElementById("divHTML").style.visibility="visible";
		document.getElementById("divFLASH").style.visibility="hidden";
	}
}

// Version check based upon the values entered above in "Globals"
var flash_enabled	= false;
var indexPage		= '';

function choosePage()
{
	flash_enabled = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

	// Check to see if the version meets the requirements for playback
	if (flash_enabled) {
		// menu vullen met Flash
		// inhoud Flash enabled
		toc.location = 'flash_menu.html';
	}
	else
	{
		// menu vullen met JS
		// inhoud Flash disabled
		frameReDisplay('0',true,true);
		//choiceframe.location = 'no_flash_index.html';
	}
}

