/*---------------------------------*/
/* BROWSER.JS The ultimate checker */
/*---------------------------------*/

browser = new Browser(false);
browser.ok = browser.able("cookies") && browser.able("1.1");
if (!browser.able("cookies")) {
	window.alert("Uw browser accepteert geen cookies.\n U kunt niet meedoen aan de speurtocht in deze site.\n U kunt wellicht cookies aanzetten \nin de voorkeuren van uw browser.");
}
if (!browser.able("1.1")) {
	window.alert("Uw browser ondersteund geen Javascript 1.1.\n U kunt niet meedoen aan de speurtocht in deze site.\n U kunt wellicht javascript (of 'scripting') aanzetten \nin de voorkeuren van uw browser.");
}



function Browser (ok) {
	this.ok = ok;
	this.able = browser_able;
	this.require = browser_require;
}

function browser_able (subject) {
	// rat race
	if (!subject) { return this.ok }
	if (subject == "1.0") { 		return true } // .-)
	if ( subject == "1.1") { 		return (this.require("netscape",3) || this.require("explorer",4) ) }
	if ( subject == "noscript") { 	return (!this.require("netscape",2) ) }
	if ( subject == "js")	{ 		return (this.require("netscape",3) || this.require("explorer",4)) }
	if ( subject == "cookies")	{ 	if ( self.document.cookie || self.document.cookie == "") 
		{ self.document.cookie="eat_th=_cookie"; if (self.document.cookie){ return true } } 
	}
	if ( subject == "images") { 	if ( self.document.images || self.document.images == "") { return true } }
	if ( subject == "title") {		if ( self.document.title || self.document.title == "") { return true } }
	if ( subject == "href") {		if ( self.document.location.href ) { return true } }
	if ( subject == "URL") {		if ( self.document.URL ) { return true } }
	
	if (self.debug) { debug.write("Your browser does not support '"+subject+"' properly.")  }
	return false;
}//end js_able

function browser_require (appname,version,rel) {
// returns true if the appname is ok and the version relates 
	navversion = navigator.appVersion.substring(0,3);
	navname=navigator.appName.toUpperCase(); 	appname=appname.toUpperCase();
	version = parseFloat(version); navversion = parseFloat(navversion);
	// rat race
	if (navname.indexOf(appname.toUpperCase()) == -1) { return false }
	if (!version) { return true }
	if (!rel) { rel = "" }
	if (!rel || rel == ">=" || rel == "=>" ) 	{ return (navversion  >= version) }
	if ( rel == "<=" || rel == "=<" ) 			{ return (navversion  <= version) }
	if ( rel == "==" || rel == "=" ) 			{ return (navversion  == version) }
	if ( rel == "<" || rel == "<<" ) 			{ return (navversion  < version) }
	if ( rel == ">>" || rel == ">" ) 			{ return (navversion  > version) }
	if (appname == "EXPLORER") { if (js_require("MSIE",version,rel)) { return true } } // hate

	if (self.debug) { debug.write("Your browser is not "+appname+rel+version)  }
	return false;
}


/*-----------------------------*/
/* DEBUG.JS the debugging util */
/*-----------------------------*/

// globals
debug = new Debug("Ecowater","off");
debug.write("Debugging Mode");

//the Object
function Debug(name,type) {
	this.name = name;
	this.type = type;
	this.write = debugWrite;
}

//functions
function debugWrite(msg) {
	if ( this.type && this.type !="off") {
		if (this.type == "window") { 
			if ((!this.handle) || this.handle.closed) { 	
				wdwf = "toolbar=yes,location=yes, directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=240,height=400";
				this.handle = window.open('','debugwdw',wdwf);
				this.handle.document.bgcolor="#FFFFFF";
				this.handle.document.write("<XMP>\n");
			}
			this.handle.document.write(msg+"\n"); 
		}
		if (this.type == "alert") { alert(msg) }
		if (this.type == "status") { 
			top.status = "*"+this.name+": "+msg; 
			return true;
		}
		if (this.type == "mbox") { 
			if (top.tools && top.tools.document && top.tools.document.mbox) {
				top.tools.document.mbox.words.value = "*"+this.name+": "+msg; 
			}
		}
	}
	return true;
}

/*-----------------------------*/
/* various small utilities     */
/*-----------------------------*/

/* integer random */
function intrnd (maxnum){ 
	// returns a random integer ranging from 1 to maxnum, 1 & maxnum included (js0)
	return Math.round(Math.random()*(parseInt(maxnum)-0.5)+0.5);
}

/* open new window */
function opennewwdw(winurl,winname,winopts) {

	if (!winopts) winopts='toolbar=no,menubar=no,status=no,scrollbars=no,location=no,directories=no,resizable=yes,width=300,height=255,top=120,left=120';
	var newwin=null;
	var myBrowser = navigator.appVersion;
	
	newwin=window.open(winurl, winname, winopts);
	if (myBrowser.indexOf("(X11") != -1 ||  myBrowser.indexOf("(Mac") != -1) { //bugz,bugz,bugz :-| !
		newwin=window.open(winurl, winname, winopts); 
	}
	//if (newwin != null) { newwin.focus() }//some platforms ..:-(
	return (newwin); 
	
}//end openNewwin







