// JavaScript Document
// shared scripts for handling SFILEN rollovers

// path to images folder, change to match server
var imagePath = "/images/";	
var rootPath  = "/";
// var imagePath = "/sfilen/www/images/";
// var rootPath = "/sfilen/www/";
// var imagePath = "/sfilen/images/";
// var rootPath = "/sfilen/";
var hideEventTimer = null;
var activeEvent = null;

var EVENT_TIMEOUT = 300;

// -----------------------------------------------------------------------------------
// BrowserCheck Object
// provides most commonly needed browser checking variables
// 19990326
// Copyright (C) 1999 Dan Steinman
// Distributed under the terms of the GNU Library General Public License
// Available at http://www.dansteinman.com/dynapi/
function BrowserCheck() {
    var agt=navigator.userAgent.toLowerCase(); 
	var b = navigator.appName;
	if (b=="Netscape") this.b = "ns"
	else if (b=="Microsoft Internet Explorer") this.b = "ie"
	else this.b = b
	this.v = parseInt(navigator.appVersion)
    this.mac = (agt.indexOf("mac")!=-1);
	this.win = (agt.indexOf("win")!=-1);
    this.ns = (this.b=="ns" && this.v>=4)
	this.ns4 = (this.b=="ns" && this.v==4)
	// the browser released as Netscape 6 actually reports version number 5
	this.ns5 = (this.b=="ns" && this.v==5)
	this.ie = (this.b=="ie" && this.v>=4)
	this.ie4 = (agt.indexOf('msie 4')>0)
	this.ie5 = (agt.indexOf('msie 5')>0)
	this.ie55 = (agt.indexOf('msie 5.5')>0)
	this.ie6 = (agt.indexOf('msie 6')>0)
	this.ie7 = (agt.indexOf('msie 7')>0)
	if (this.ie5) this.v = 5
	this.dom = (this.ie || (this.b=="ns" && this.v>=5));
}

// automatically create the "is" object
var is = new BrowserCheck()
// end BrowserCheck Object;
// -----------------------------------------------------------------------------------


// returns the path to the root folder of the web site
var hasCustomRootPath = 0;
function getRootPath()
{
	// pages can override the computed value by specifying a value for
	// global var customRootPath and setting hasCustomRootPath to 1.
	if (hasCustomRootPath)
		return customRootPath;

    return rootPath;
}

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_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_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 newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = imagePath + arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = imagePath + changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		campaign_over = newImage("campaign-over.gif");
		toolkit_over = newImage("toolkit-over.gif");
		donate_over = newImage("donate-over.gif");
		home_over = newImage("home-over.gif");
		about_over = newImage("about-over.gif");
		immvote_over = newImage("immvote-over.gif");
		campaigns_over = newImage("campaigns-over.gif");
		resources_over = newImage("resources-over.gif");
		news_over = newImage("news-over.gif");
		press_over = newImage("press-over.gif");
		preloadFlag = true;
	}
}


function getItem(id) {
	if( window.mmIsOpera ) return(document.getElementById(id));
	if (document.all) return(document.all[id]);
	if (document.getElementById) return(document.getElementById(id));
	return(false);
}

// function to hide mailto links from spam bots
function writeMailtoText(address, domain, txt)
{
	emailE=(address + '@' + domain);
	document.write('<a href="mailto:' + emailE + '">' + txt + '</a>');
}

// function to hide mailto links from spam bots
/*
 	usage: <script language="javascript" type="text/javascript">writeMailto("user", "sfilen.org");</script>
 */
function writeMailto(address, domain)
{
	emailE=(address + '@' + domain);
	document.write('<a href="mailto:' + emailE + '">' + emailE + '</a>');
}

// just print the current date to the page
function sfilenWriteDate()
{
	var now=new Date();
	var weekday=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	document.write(weekday[now.getDay()] + ", ")
	document.write(monthname[now.getMonth()] + " ")
	document.write(now.getDate() + ", ")
	document.write(now.getFullYear())
}

function sfilenHideEvent()
{
	if( activeEvent != null) {
		hideEventTimer = setTimeout("sfilenFinishHide()", EVENT_TIMEOUT);
	}
}

function sfilenShowEvent(event, id)
{
	sfilenFinishHide();
	sfilenClearTimeout();
	
	var eventDiv = getItem("event" + id);
	var popupDiv = getItem("eventpopup");
	if (eventDiv && popupDiv) {
		popupDiv.innerHTML = eventDiv.innerHTML;
		popupDiv.style.visibility = "inherit";
		if (activeEvent == null) {
			popupDiv.style.left = (is.ie ? event.clientX + (is.ie7 ? document.documentElement.scrollLeft : document.body.scrollLeft) : event.pageX) + "px";
			popupDiv.style.top  = (is.ie ? event.clientY + (is.ie7 ? document.documentElement.scrollTop : document.body.scrollTop) : event.pageY) + "px";
			popupDiv.style.width = "400px";
		}
		activeEvent = eventDiv;
	}
}

function sfilenClearTimeout() {
	if (hideEventTimer) clearTimeout(hideEventTimer);
	hideEventTimer = null;
}

function sfilenFinishHide() {
	if (activeEvent != null) {
		var popupDiv = getItem("eventpopup");
		popupDiv.style.visibility = "hidden";
		activeEvent = null;
	}
}



