// var divName = 'slideshow';
var body = 'body';
// var body = 'wrapper';
var divName = 'slideshowList';
var parentName = 'screen2';
var subElement = "ad_banner";
           
function mouseX(evt) {
	if (!evt) 
		evt = window.event; 
	
	if (evt.pageX) 
		return evt.pageX; 
	
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); 
	
	else return 0;
}

function mouseY(evt) {}


function timedMsg() {
	// var t = setTimeout("alert('2 seconds!')", 2000);
	var t = setTimeout("setBrowserID()", 500);
			
	var f = setTimeout("timedFollow()", 1000);

}
		
timedMsg();

var browserID;

var rate = 300; // 50;

function follow(evt) {
	resetSize();
		
	if (document.getElementById) {
		var parentobj = document.getElementById(parentName).style; 
		var obj = document.getElementById(divName).style; 
		var subobj = document.getElementById(subElement).style; 
		
		var adjust = 40;
		if (browserID == 'Explorer 7 Windows') {
			adjust = 0;
		}
		var parentleft = parseInt(parentobj.left) - adjust;
		var objleft = parseInt(obj.left);
		var subobjleft = parseInt(subobj.left); // - 58;

		var mainWidth = document.body.clientWidth;
		
		// alert('mainWidth: ' + mainWidth);
		
		var parentWidth = parseInt(parentobj.width);
		var objWidth = parseInt(obj.width);
		
		// var widthDif = -80 + (parentWidth - objWidth);
		var widthDif = (parentWidth - objWidth) - adjust;
		var screenmiddle = mainWidth/2;
		var mousexpos = parseInt(mouseX(evt));
		
		// parentobj.left = subobjleft + 'px';
		// resetSize();
		obj.visibility = 'visible';
		
		var velocityX1 = (objWidth - mousexpos)/rate;
		var velocityX2 = mousexpos/rate;
		
		var leftpositionX = objleft + parseInt(velocityX1);
		var rightpositionX = objleft - parseInt(velocityX2); 
		
		
		if (mousexpos < screenmiddle) {
			if (objleft < parentleft) {
			
				// alert('objleft: ' + objleft + ' ... parentleft: ' + parentleft);
				
				obj.left = leftpositionX + 'px';
			}
		} else if (mousexpos > screenmiddle) {
			if (objleft > widthDif) {
				obj.left = rightpositionX + 'px';
			}
		}
		
	}
}




function followmove(evt) {

	// alert('followmove');
	
	resetSize();
	
	if (document.getElementById) {
		var parentobj = document.getElementById(parentName).style; 
		var obj = document.getElementById(divName).style; 
		var subobj = document.getElementById(subElement).style; 
		
		var adjust = 40;
		if (browserID == 'Explorer 7 Windows') {
			adjust = 0;
		}
		var parentleft = parseInt(parentobj.left) - adjust;
		var objleft = parseInt(obj.left);
		var subobjleft = parseInt(subobj.left); // - 58;

		// alert('objleft: ' + objleft + ' ... parentleft: ' + parentleft);
			
		// var mainWidth = document.body.clientWidth;
		var mainWidth = document.body.clientWidth;
		var parentWidth = parseInt(parentobj.width);
		var objWidth = parseInt(obj.width);
		
		// var widthDif = -80 + (parentWidth - objWidth);
		var widthDif = (parentWidth - objWidth) - adjust;
		var screenmiddle = mainWidth/2;
		var mousexpos = parseInt(mouseX(evt));
		
		// parentobj.left = subobjleft + 'px';
		// resetSize();
		obj.visibility = 'visible';
		
		var velocityX1 = (objWidth - mousexpos)/rate*20;
		var velocityX2 = mousexpos/rate*20;
		
		var leftpositionX = objleft + parseInt(velocityX1);
		var rightpositionX = objleft - parseInt(velocityX2); 
		
		
		if (mousexpos < screenmiddle) {
			if (objleft < parentleft) {
				obj.left = leftpositionX + 'px';
			}
		} else if (mousexpos > screenmiddle) {
			if (objleft > widthDif) {
				obj.left = rightpositionX + 'px';
			}
		}
		
	}
}

function resetSize() {
	// alert('resetSize');
	
	var ulArr = new Array();
	var obj = document.getElementById('slideshowList'); // divName);
	
	ulArr = obj.getElementsByTagName('img');
	
	if (ulArr != null) {
	
		var initialObj = ulArr.item(0);
		var initialObjWidth = 200;
	
		if (initialObj != null) {
			initialObjWidth = initialObj.width
		}
	
	}
		
	var w = (initialObjWidth * ulArr.length) + (20 * ulArr.length);
	
	var objStyle = document.getElementById(divName).style;
	
	objStyle.width = w + 'px';
			
	// alert('objStyle.width: ' + objStyle.width);
}

function alertFollow(evt) {
	var mainobj = document.getElementById(body).style; 
	var parentobj = document.getElementById(parentName).style; 
	var obj = document.getElementById(divName).style; 
	var subobj = document.getElementById(subElement).style; 
		
	var mainleft = parseInt(mainobj.left);
	var parentleft = parseInt(parentobj.left);
	var objleft = parseInt(obj.left);
	var subobjleft = parseInt(subobj.left);

	var mainWidth = document.body.clientWidth;
	var parentWidth = parseInt(parentobj.width);
	var objWidth = parseInt(obj.width);
	var subobjWidth = parseInt(subobj.width);
		
	var mainright = mainleft + mainWidth;
	var parentright = parentleft + parentWidth;
	var objright = objleft + objWidth;
	var subobjright = subobjleft + subobjWidth;

	var widthDif = parseInt(objWidth - parentWidth);
	var screenmiddle = mainWidth/2;
	var mousexpos = parseInt(mouseX(evt));		
	
	var velocityX1 = parseInt((mainWidth - mousexpos)*.01) + 2;
	var velocityX2 = parseInt(mousexpos*.01) + 2;
		
	var leftpositionX = objleft + parseInt(velocityX1);
	var rightpositionX = objleft - parseInt(velocityX2);
	
	// alert('mainleft: ' + mainleft + 'px');
	// alert('parentleft: ' + parentleft + 'px');
	// alert('objleft: ' + objleft + 'px');
	// alert('subobjleft: ' + subobjleft + 'px');

	// alert('mainWidth: ' + mainWidth + 'px');
	// alert('parentWidth: ' + parentWidth + 'px');
	//alert('objWidth: ' + objWidth + 'px');
	// alert('subobjWidth: ' + subobjWidth + 'px');

	// alert('mainright: ' + mainright + 'px');
	// alert('parentright: ' + parentright + 'px');
	// alert('objright: ' + objright + 'px');
	// alert('subobjright: ' + subobjright + 'px');

	// alert('widthDif: ' + widthDif);
	// alert('screenmiddle: ' + screenmiddle + 'px');
	// alert('mousexpos: ' + mousexpos + 'px');
	
	alert('velocityX1: ' + velocityX1 + 'px');
	alert('velocityX2: ' + velocityX2 + 'px');
	// alert('leftpositionX: ' + leftpositionX + 'px');
	// alert('rightpositionX: ' + rightpositionX + 'px');


}

// document.onmousemove = follow;




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();

// alert('BrowserDetect: ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' ' + BrowserDetect.OS);
		
		
function setBrowserID() {
	// alert('BrowserDetect: ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' ' + BrowserDetect.OS);
	browserID = BrowserDetect.browser + ' ' + BrowserDetect.version + ' ' + BrowserDetect.OS;
}

function timedFollow() {	
	// alert('tweened timed follow');
	
	if (document.getElementById('slideshowList')) {  // if on events or home page and no flash
	
		var slider = document.getElementById('slideshowList');
		// slider.style.left = 800 + 'px';
	
		// alert('tweened timed follow: ' + slider.style.left);
	
		// var t = new Tween(object,property,easing,start,end,duration,suffixe);
		var t = new Tween(slider.style, 'left', Tween.strongEaseOut, 800, -40, .5, 'px');
		// t.onMotionFinished = function(){alert( 'onMotionFinished' )};
    	t.onMotionFinished = setMouseMove();
    	t.start();
    }
}

function setMouseMove() {	
	// alert('setMouseMove');
	
	// document.onmousemove = follow;
	
	var lefty = document.getElementById('leftButtonDiv');
	lefty.onclick = followmove;
	
	var fireOnThis = document.getElementById('leftButtonDiv');
	if (document.createEvent) {
		var evObj = document.createEvent('MouseEvents');
  		evObj.initEvent('click', true, false );
  		fireOnThis.dispatchEvent(evObj);
	} else if(document.createEventObject) {
		fireOnThis.fireEvent('onclick');
	}
	
	// fire document.onmousemove
	/*
	var fireOnThis = document;
	if (document.createEvent) {
		var evObj = document.createEvent('MouseEvents');
  		evObj.initEvent('mousemove', true, false );
  		fireOnThis.dispatchEvent(evObj);
	} else if(document.createEventObject) {
		fireOnThis.fireEvent('onmousemove');
	}
	*/
}


