function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// 2001 Kleanthis Economou - kleanthis@projectfireworks.com
// 
function Browser(){
	this.ver=navigator.appVersion; 
	this.agent=navigator.userAgent;
	this.dom=document.getElementById? true : false;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)? true : false;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)? true : false;
	this.ie4=(document.all && !this.dom)? true : false;
	this.ie = this.ie4||this.ie5||this.ie6;
	this.mac=this.agent.indexOf("Mac")>-1;
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ? true : false; 
	this.ns4=(document.layers && !this.dom) ? true : false;
    this.ns = this.ns6 || this.ns4;
	this.op=this.agent.indexOf("Opera")>-1 ? true : false;
}
var bwr = new Browser();

function Page() {
	this.width  =  bwr.ns ? window.innerWidth : window.document.body.offsetWidth;
	this.height =  bwr.ns ? window.innerHeight : window.document.body.offsetHeight;
}

function ObjectStyle(obj) {return eval("obj" + (bwr.ns4 ? "" : ".style"));}

function ObjCoordinates (strObj) { //v.1.0
	var o = MM_findObj(strObj); var x=0, y=0, p=new Object(), doc="";
	if (document.layers && o) {
		for (var i=0; i<document.layers.length; i++){
			var doc = "document." + document.layers[i].name;
			if (eval(doc+".document."+strObj)) {x+=(eval(doc+".left"));y+=(eval(doc+".top"));break;}
		}
		p.x=x+o.x; p.y=y+o.y;
	    return p;
	} else if (o) {
		if(document.all) doc = "document.all['"+strObj+"']";
		if(document.getElementById) doc = document.getElementById(strObj) ? "document.getElementById('"+strObj+"')" : "document.getElementsByName('"+strObj+"')[0]";
		var offPar=".offsetParent";
		while(eval(doc+offPar)){x+=eval(doc+offPar+".offsetLeft"); y+=eval(doc+offPar+".offsetTop"); offPar += ".offsetParent";}
		p.x=x+o.offsetLeft; p.y=y+o.offsetTop;
		return p;
	}
}

function ToggleLayerVisibility(objStr, bool) {
	if( (o = MM_findObj(objStr)) != null){
		var oStyle = ObjectStyle(o);
		if(bwr.ns4) oStyle.visibility = bool ? "show" : "hide";
		else oStyle.visibility = bool ? "visible" : "hidden";
	}
}

function MoveObjectBy(objStr, dx, dy) {
    var p = ObjCoordinates(objStr);
	var oL = MM_findObj(objStr);
	var oStyle = ObjectStyle(oL);
	if(bwr.ns4 || bwr.o5) {
		oStyle.left = p.x + dx;
		oStyle.top = p.y + dy;
	}
	else {
		oStyle.left = p.x + dx + "px";
		oStyle.top = p.y + dy + "px";
	}
}

function BindObjects(w, h, iX, iY ) {
	var args = BindObjects.arguments;
	document.BoundLayers = new Array();
	document.pfwidth = w; document.pfiX = iX;
	document.pfheight = h; document.pfiY = iY;
    var p = new Page();
	var panchor = ObjCoordinates(args[4]);
	var x = iX!=null ? iX : parseInt(p.width/2 - w/2);
	var y = iY!=null ? iY : parseInt(p.height/2 - h/2);
	var dx = x - panchor.x;
	var dy = y - panchor.y;
	for (var i=4; i<args.length; i++ ) {
		MoveObjectBy(args[i], dx, dy);
		document.BoundLayers[document.BoundLayers.length] = args[i];
	}
	ToggleLayerVisibility("preload", false);
}

function ResetBindings() {
	if(bwr.ns4) {MM_reloadPage(false); return;}
	else {
        var p = new Page();
		var panchor = ObjCoordinates(document.BoundLayers[0]);
		var x = document.pfiX!=null ? document.pfiX : parseInt(p.width/2 - document.pfwidth/2);
		var y = document.pfiY!=null ? document.pfiY : parseInt(p.height/2 - document.pfheight/2);
		var dx = x - panchor.x;
		var dy = y - panchor.y;
		for (var i=0; i<document.BoundLayers.length; i++ ) {
			MoveObjectBy(document.BoundLayers[i], dx, dy);
		}
	}
}
window.onresize = ResetBindings;

function OperaWindowResize() { // since opera doesn't listen to onresize
	if(!bwr.op) return;
	if(!document.pfOperaW) {
		var p = new Page();
		document.pfOperaW = p.width;
		document.pfOperaH = p.height;
		//callback onmousemove -- unfortunate but possibly our best bet
		document.onmousemove = OperaWindowResize;
	}
	else {
		var p = new Page();
		var dx = document.pfOperaW - p.width;
		var dy = document.pfOperaH - p.height;
		if(dx || dy) { ToggleLayerVisibility("pfloading", true); window.location.reload();}
	}
}
OperaWindowResize();

function init(width, height, x, y) {
	// set any events
	//call BindObjects
    BindObjects(width, height, x, y, "headstripe", "navstripe", "buttonhome", "buttoncontact", "buttonvoices", "buttonlab", "buttonmisc", "pfdisplay", "pfbody", "mnuvoices", "mnulab", "mnumisc", "mnucloser");
	ToggleLayerVisibility("pfloading", false);
}

document.pfMenus = new Array("mnuvoices", "mnulab", "mnumisc");
function hideMenus() {
	var menus = document.pfMenus;
	for(var i=0; i<menus.length; i++) {
		if( MM_findObj(menus[i]) != null) {
            ToggleLayerVisibility(menus[i], false);
		}
	}
	ToggleLayerVisibility("mnucloser", false);
}

function showMenu(mnuToShow) {
	var menus = document.pfMenus;
	for(var i=0; i<menus.length; i++) {
		if( MM_findObj(menus[i]) != null) {
            if(mnuToShow == menus[i]) ToggleLayerVisibility(menus[i], true);
			else ToggleLayerVisibility(menus[i], false);
		}
	}
	ToggleLayerVisibility("mnucloser", true);
}

function newsletterSub() {
	var path = "/newsletter.html";
	MM_openBrWindow(path,"Newsletter","scrollbars=yes,resizable=yes,width=350,height=150");
}

function viewPhoto(id) {
	var path = "/images/photos/" + id + ".jpg";
    MM_openBrWindow(path,"photoView","scrollbars=yes,resizable=yes,width=750,height=705");
}

function viewImage(filename, width, height) {
	var path = "/images/" + filename;
	MM_openBrWindow(path,"ImageView","scrollbars=yes,resizable=yes,width=" + width + ",height=" + height);
}

