// function library (essential)
// (c) Naz Rajan 2006-2010
// naz@nazrajan.com
// Version 2010.0116.Naz
//

// -----------------------------
// USER INTERACTION
function disableRightClick(e) {
	var message = "Right click has been disabled";
	if(!document.rightClickDisabled) {
		if(document.layers) {
			document.captureEvents(Event.MOUSEDOWN);
			document.onmousedown = disableRightClick;
		}
		else document.oncontextmenu = disableRightClick;
		return document.rightClickDisabled = true;
	}
	if(document.layers || (document.getElementById && !document.all)) {
		if (e.which==2||e.which==3) {
			alert(message);
			return false;
		}
	}
	else {
		alert(message);
		return false;
	}
}
disableRightClick();

// -----------------------------
// SITE PRESENTATION

function NR_movetocenter(bglayer,settop) {
	sw=screen.width; sh=screen.height;
	winsize = new Array(); winsize=GetWindowSize(); dw=winsize[0]; dh=winsize[1];
	lw = 950; // parseInt(document.getElementById(bglayer).style.width);
	lh = parseInt(document.getElementById(bglayer).style.height);
	document.getElementById(bglayer).style.left=0;
	document.getElementById(bglayer).style.top=0;
	n=((dw-lw)/2);
	browser = BrowserDetect("browser");
	document.getElementById(bglayer).style.left = (n<0 ? (browser=="Firefox" ? "0px" : 0) : (browser=="Firefox" ? n+"px" : n));
	if (settop!=0) {
		if (dh>lh) {
			n=((dh-lh)/2);
			document.getElementById(bglayer).style.top = (n<0 ? (browser=="Firefox" ? "0px" : 0) : (browser=="Firefox" ? n+"px" : n));
		}
	}
//	alert(n+"|"+dw+"|"+lw);
}

function GetWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  winsize[0] = myWidth;
  winsize[1] = myHeight;
  return winsize;
}

// -----------------------------
// SLIDESHOW

function RunLayerSlideShow(folder,numpic,w,h,delay) {
	for (n=1; n<=numpic; n++) {
		document.write("<div id='lslide"+n+"' style='position:absolute; width:"+w+"px; height:"+h+"px; left:0px; top:0px; z-index:"+(10+n)+"; visibility: hidden;'>");
		document.write("<img id='slide"+n+"' src="+folder+n+".jpg' alt='picture' width='"+w+"' height='"+h+"' style='border:0; visibility: inherit;'>");
		document.write("</div>");
	}
	for(n=1; n<=numpic; n++) {
		strfn = "FadeIn(\"slide"+n+"\",20,5)";
		setTimeout(strfn, n*delay);
		setTimeout("document.getElementById('lslide"+n+"').style.visibility=\'visible\'", n*delay);
	}
}

function NR_RunSlideShow(divid,imageid,imageFiles,displaySecs) { 
	var imagesfolder;
	if (imageFiles.indexOf('/')>0) {
		imagesfolder = "";    // folder is part of filename so leave blank
	}
	else {
		imagesfolder = "images/";
	}
	var imageSeparator = imageFiles.indexOf(";"); 
	var nextImage = imageFiles.substring(0,imageSeparator); 
	
	if (BrowserDetect("browser")=="Firefox") {
		document.getElementById(imageid).style.visibility="hidden";
	}
	changeOpac(imageid, 0);
	blendimage(divid,imageid,imagesfolder+nextImage,100);
	//
	var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)+ ';' + nextImage; 
	setTimeout("NR_RunSlideShow('"+divid+"','"+imageid+"','"+futureImages+"',"+displaySecs+")",displaySecs*1000); 
	
	// Cache the next image to improve performance. 
	imageSeparator = futureImages.indexOf(";"); 
	nextImage = futureImages.substring(0,imageSeparator);
 	if (dSlideCache[nextImage] == null) { 
		dSlideCache[nextImage] = new Image;
		dSlideCache[nextImage].style.visibility = "hidden";
		dSlideCache[nextImage].src = imagesfolder+nextImage;
		//dSlideCache[nextImage].style.visibility="visible";
	} 
//	document.getElementById(imageid).style.visibility="visible";
}

function changeOpac(id, opacity) { 
	var object = document.getElementById(id).style;
	object.opacity = (opacity==0?0:opacity/101); 
	object.MozOpacity = (opacity==0?0:opacity/101); 
	object.KhtmlOpacity = (opacity==0?0:opacity/101); 
	object.filter = "alpha(opacity=" + opacity + ")";
} 

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec/10); 
	var timer = 0; 
	//set the current image as background 
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")"; 
	changeOpac(imageid, 0); //make image transparent 
	document.getElementById(imageid).src = imagefile; //make new image
	//fade in image 
	for(i=0; i<100; i++) { 
		setTimeout("changeOpac('" + imageid + "'," + i + ")",(timer * speed)); 
		timer++; 
	} 
}

function FadeIn(layer,inter,step) {
	var fade=0;
	canvas=document.getElementById(layer).style;
	ms = (canvas.opacity==0?0:1);
	pace = setInterval(FadeIt,inter);
	//
	function FadeIt() {
		if (fade<100) {
			fade+=step;
			if (ms) canvas.filter="alpha(opacity="+fade+")";
			else canvas.opacity=(fade/100);
		}
		else {
			clearInterval(pace);
		}
	}
}

function FadeOut(layer,inter,step) {
	var fade=100;
	canvas=document.getElementById(layer).style;
	ms = (canvas.opacity==1?1:0);
	pace = setInterval(FadeIt,inter);
	//
	function FadeIt(){
		if(fade>0){
			fade-=step;
			if (ms) canvas.filter="alpha(opacity="+fade+")";
			else canvas.opacity=(fade);
		}
		else {
			clearInterval(pace);
		}
	}
}

function GrowImage(onoff,divid,imgid,imgwstart,imgwend,steps,delay){
	if ((onoff==1 && document.getElementById(imgid).width < imgwend) || (onoff==0 && document.getElementById(imgid).width > imgwstart)) {
		document.getElementById(imgid).width = document.getElementById(imgid).width + (onoff==1 ? steps : -steps);
		document.getElementById(divid).style.left = parseInt(document.getElementById(divid).style.left) + (onoff==1 ? -steps : steps) +"px";
		//document.getElementById(divid).style.left = parseInt(document.getElementById(divid).style.width) + (onoff==1 ? steps : -steps) +"px";
		strfn="GrowImage("+onoff+",'"+divid+"','"+imgid+"',"+imgwstart+","+imgwend+","+steps+","+delay+")";
		setTimeout(strfn, delay);
	}
}

function SlideLayer(onoff,divid,divleftstart,divleftend,steps,delay){
	if ((onoff==1 && parseInt(document.getElementById(divid).style.left) > divleftend) || (onoff==0 && parseInt(document.getElementById(divid).style.left) < divleftstart)) {
		document.getElementById(divid).style.left = parseInt(document.getElementById(divid).style.left) + (onoff==1 ? -steps : steps) +"px";
		strfn = "SlideLayer("+onoff+",'"+divid+"',"+divleftstart+","+divleftend+","+steps+","+delay+")";
		setTimeout(strfn, delay);
	}
	vis = (onoff==1 ? "visible" : "hidden");
	delayvis = (onoff==1 ? 600 : 50);
	setTimeout("document.getElementById('"+divid+"').style.visibility = '"+vis+"'", delayvis);
	//FadeIn(divid);
	//if (onoff==1) {FadeIn(divid,15,10);} else {FadeOut(divid);}
}

// -----------------------------
// BROWSER
// Detect Browser type and version
function BrowserDetect(nOption) {		// nOption = browser | version | os
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{	string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{	prop: window.opera,
			identity: "Opera"
		},
		{	string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{	string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{	string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{	string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{	// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{	string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{	string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{	// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{	string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{	string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{	string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

	};
	BrowserDetect.init();
	if (nOption=="browser") {return BrowserDetect.browser;}
	else if (nOption=="version") {return BrowserDetect.version;}
	else if (nOption=="os") {return BrowserDetect.OS;}
	else return "";
}

// -----------------------------

