<!--//
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 MM_findObj(n, d) { //v3.0
  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); 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];}
}

/*
 * 	PhotoNavigation
 * 	A Javascript Module by Gaya Kessler
 * 	Version 1.1
 * 	Date: 14-01-09
 * 
 */
 
var PhotoNav = {
	
	statusArr: new Array(),
	debugging: false,
	smoothing: false,
	smoothingLevel: 0.1,
	tempX: 0,
	tempY: 0,
	winH: 0,
	winW: 0,
	IE: "",
	photo: "",
	photoWidth: 0,
	containerWidth: 0,
	container: "",
	currentEffect: "",
	
	init: function(id, width, width2, smoothing, smoothingLevel, debugging) {
		
		//catch undefined vars
		if (typeof(smoothing) != 'undefined') {
			PhotoNav.smoothing = smoothing;
		} else {
			PhotoNav.smoothing = false;
		}
		
		if (typeof(smoothingLevel) != 'undefined') {
			PhotoNav.smoothingLevel = smoothingLevel;
		} else {
			PhotoNav.smoothingLevel = 0.1;
		}
		
		if (typeof(debugging) != 'undefined') {
			PhotoNav.debugging = debugging;
		} else {
			PhotoNav.debugging = false;
		}
		
		//make room in status array
		PhotoNav.statusArr[0] = "";
		PhotoNav.statusArr[1] = "";
		
		//let PhotoNav determine mouse position
		PhotoNav.IE = document.all?true:false
		if (!PhotoNav.IE) document.captureEvents(Event.MOUSEMOVE)
		document.onmousemove = PhotoNav.getMouseXY;
		
		//set some object vars
		var obj = document.getElementById(id);
		PhotoNav.containerWidth = width;
		PhotoNav.container = obj;
		var divs = obj.getElementsByTagName("DIV");
		
		for (var i = 0; i < divs.length; i++) {
			if (divs[i].className.match('fixed')) {
				PhotoNav.photo = divs[i];
				PhotoNav.photoWidth = width2;
				PhotoNav.photo.style.width = width2 + "px";
			}
		}
	},
	
	addStatus: function(str) {
		if (PhotoNav.debugging == true) {
			var stats = document.getElementById("status");
			
			PhotoNav.statusArr.unshift(str);
			PhotoNav.statusArr.splice(3, 10);
			
			stats.innerHTML = "";
			
			for (var i = 2; i > 0; i = i - 1) {
				stats.innerHTML = PhotoNav.statusArr[i] + "<br />" + stats.innerHTML;	
			}
			
			if (PhotoNav.statusArr.length > 5) {
				stats.innerHTML = 'oi';
			}
		}
	},
	
	getMouseXY: function (e) {
		//determine mouse position
		if (PhotoNav.IE) { // grab the x-y pos.s if browser is IE
			PhotoNav.tempX = event.clientX + document.body.scrollLeft
			PhotoNav.tempY = event.clientY + document.body.scrollTop
		} else {  // grab the x-y pos.s if browser is NS
			PhotoNav.tempX = e.pageX
			PhotoNav.tempY = e.pageY
		}  
		// catch possible negative values in NS4
		if (PhotoNav.tempX < 0) {
			PhotoNav.tempX = 0;
		}
		
		if (PhotoNav.tempY < 0) {
			PhotoNav.tempY = 0;
		}
		
		if (parseInt(navigator.appVersion)>3) {
			if (navigator.appName=="Netscape") {
				PhotoNav.winW = window.innerWidth;
				PhotoNav.winH = window.innerHeight;
			}
			if (navigator.appName.indexOf("Microsoft")!=-1) {
				PhotoNav.winW = document.body.offsetWidth;
				PhotoNav.winH = document.body.offsetHeight;
			}
		}
		
		var containerY = PhotoNav.findPosY(PhotoNav.container);
		var containerH = PhotoNav.container.offsetHeight;
		
		//first check if cursor is height enough
		if (PhotoNav.tempY > containerY && PhotoNav.tempY < (containerY + containerH)) {			
			//determine % horizontal
			var perc = (100 / (PhotoNav.containerWidth / (PhotoNav.tempX - PhotoNav.findPosX(PhotoNav.container)))) ;
			
			if (perc < 0) {
				perc = 0;
				PhotoNav.addStatus("Not in element.");
			} else if (perc > 100) {
				perc = 100;
				PhotoNav.addStatus("Not in element.");
			} else {
				PhotoNav.addStatus("Mouse X: " + PhotoNav.tempX + " / " + PhotoNav.winW + " = " + perc + "%");
				
				PhotoNav.posPicture(perc);
			}
		} else {
			PhotoNav.addStatus("Not in element.");
		}
		
		return true;
	},
	
	posPicture: function(x) {
		
		var full = PhotoNav.photoWidth;
		full = full - PhotoNav.containerWidth;
		var curX = full * (x / 100);
		
		if (curX < 0) {
			curX = 0;
		}
		
		PhotoNav.addStatus("Mouse X container: " + curX);
		
		if (PhotoNav.smoothing == true) {
			if (typeof PhotoNav.currentEffect.cancel == 'function') {
				PhotoNav.currentEffect.cancel;
			}
			PhotoNav.currentEffect = new Effect.Morph(PhotoNav.photo, {
			  style: 'margin-left:-' + curX + 'px;',
			  duration: PhotoNav.smoothingLevel
			});	
		} else {
			PhotoNav.photo.style.marginLeft = "-" + curX + "px";
		}
		
	},
	
	findPosX: function (obj) {
		var curleft = 0;
		if(obj.offsetParent)
			while(1) {
				curleft += obj.offsetLeft;
				if(!obj.offsetParent)
					break;
				obj = obj.offsetParent;
			}
		else if(obj.x)
			curleft += obj.x;
		return curleft;
	},
	
	findPosY: function(obj) {
		var curtop = 0;
		if(obj.offsetParent)
			while(1) {
				curtop += obj.offsetTop;
				if(!obj.offsetParent)
					break;
				obj = obj.offsetParent;
			}
		else if(obj.y)
			curtop += obj.y;
		return curtop;
	}
	
};

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: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			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.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

//-->
