// Ovation Javascript
// Created 06/17/06
// Modified 03/31/08
// www.OvationSolutions.com

videoActive = "n";

//Get Browser info
//thanks to http://www.quirksmode.org/js/detect.html 
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();
//for testing:  alert(BrowserDetect.browser + ' ' + BrowserDetect.version + ' ' + BrowserDetect.OS);
//get screen resolution

//prepare logging info
browser_name = BrowserDetect.browser + BrowserDetect.version;
operating_system = BrowserDetect.OS;
screen_width = screen.width;
screen_height = screen.height;

//FUNCTIONS
//provide browser variables to flash
function getHTMLvars() {
	return {browser_name : browser_name, operating_system : operating_system, screen_width : screen_width, screen_height : screen_height};
}

//gets the x location of an image
function getImageX(imgID) { 
    var obj = (document.images && document.images[imgID]) ? 
        document.images[imgID] : 
        (document.getElementById && document.getElementById(imgID)) ? 
        document.getElementById(imgID) : null 
    if (obj.x) return obj.x 
    if (obj.offsetLeft || obj.offsetParent) { 
        var x = obj.offsetLeft 
        while (obj = obj.offsetParent) x += obj.offsetLeft 
        return x 
    } 
    return 0 
} 

//gets the y location of a image
function getImageY(imgID) { 
    var obj = (document.images && document.images[imgID]) ? 
        document.images[imgID] : 
        (document.getElementById && document.getElementById(imgID)) ? 
        document.getElementById(imgID) : null 
    if (obj.y) return obj.y
    if (obj.offsetTop || obj.offsetParent) { 
        var y = obj.offsetTop 
        while (obj = obj.offsetParent) y += obj.offsetTop 
        return y 
    } 
    return 0 
}

//moves the video layer to where it belongs
function ovMoveLayer(image,file,title,type,widescreen) {
	if(videoActive == "n") {
		videoActive = "y";
		var playerOffset = 0;
		if(document.layers){
			document.videoLayer.left=getImageX(image)-playerOffset;
			document.videoLayer.top=getImageY(image);
			document.videoLayer.visibility='visible';
		}
		if(document.all){
			document.all.videoLayer.style.left=getImageX(image)-playerOffset;
			document.all.videoLayer.style.top=getImageY(image);
			document.all.videoLayer.style.visibility='visible';
		}
		if(document.getElementById){
			document.getElementById("videoLayer").style.left=getImageX(image)-playerOffset;
			document.getElementById("videoLayer").style.top=getImageY(image);
			document.getElementById("videoLayer").style.visibility='visible';
		}
		//set variable flash will read
		HTMLchangeContent = "y";
		HTMLfile = file;
		HTMLtitle = title;
		HTMLtype = type;
		HTMLwidescreen = widescreen;
	}
}

//remove the layer on rolloff
function ovRemoveLayer() {
	if(document.layers){
		document.videoLayer.left=2000;
		document.videoLayer.top=0;
		document.videoLayer.visibility='hidden';
	}
	if(document.all){
		document.all.videoLayer.style.left=2000;
		document.all.videoLayer.style.top=0;
		document.all.videoLayer.style.visibility='hidden';
	}
	if(document.getElementById){
		document.getElementById("videoLayer").style.left=2000;
		document.getElementById("videoLayer").style.top=0;
		document.getElementById("videoLayer").style.visibility='hidden';
	}
	videoActive = "n";
}

//Play the selected video
function ovPlayVideo(file,title,type,widescreen) {
	thisMovie("ovVideoPlayer").ovChangeContentFL(file,title,type,widescreen);
}

//stop the video in flash from html
function ovStopVideo() {
	thisMovie("ovVideoPlayer").ovStopVideoFL();
}

//control sending data to flash
function ovSeek(sec) {
    thisMovie("ovVideoPlayerStream").FLovSeek(sec);
}
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}
function getFlashMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}
function getHTMLchangeContent() {
	//alert('fire HTMLchangeContent = ' + HTMLchangeContent);
	return HTMLchangeContent;
}
function getHTMLvars() {
	//alert('returning vars ' + HTMLchangeContent + ' ' + HTMLfile + ' ' + HTMLtitle + ' ' + HTMLtype);
	return {file : HTMLfile, title : HTMLtitle, type : HTMLtype, widescreen : HTMLwidescreen};
}
function HTMLchangeContentOff() {
	HTMLchangeContent = "n";
}
function getVideoActive() {
	return videoActive;
}