﻿// JScript File
    var modalPopIn;
    var interval;
    var baseOffTop;
    var baseOffLeft;

function jsProjectStepHover(obj)
	{
		resetProjectStepText();
		resetProjectStepBtns();
		/*var src = getSrcElement(this)
		var tgt = getTargetBySender(src);*/
		tgt = getTargetBySender(obj);
		obj.className = obj.className + ' active';
		tgt.className = tgt.className + ' hover';
	}
	
	function jsProjectStepHover_event()
	{
		resetProjectStepText();
		resetProjectStepBtns();
		var src = getSrcElement(this)
		var tgt = getTargetBySender(src);
		src.className = src.className + ' active';
		tgt.className = tgt.className + ' hover';
	}
	
	function jsProjectStepHoverOut()
	{
		var src = getSrcElement(this)
		var tgt = getTargetBySender(src);
		if (tgt.className.indexOf('hover') >= 0){tgt.className = 'projectText';src.className = 'projectStepNum'}
	}
	
	function jsProjectStepClick()
	{
		var src = getSrcElement(this)
		var tgt = getTargetBySender(src);
		src.className = src.className + ' active';
		tgt.className = 'projectText active';
	}

	function getTargetBySender(obj)
	{
		return document.getElementById(obj.id + '_Text');
	}
	
	function getSrcElement(obj)
	{
		if (typeof this.event != 'undefined'){return obj.event.srcElement;}
		else {return obj;}
	}
	
	function resetProjectStepText()
	{
		var parent = document.getElementById('ProjectSteps_Text');
		var children = parent.getElementsByTagName('div');
		for(var i=0;i<children.length;i++)
		{if (startsWith(children[i].id,'ProjectStep_')){children[i].className = 'projectText';}}
	}
	
	function resetProjectStepBtns()
	{
		var parent = document.getElementById('ProjectSteps');
		var children = parent.getElementsByTagName('a');
		for(var i=0;i<children.length;i++)
		{
			if (startsWith(children[i].id,'ProjectStep_'))
			{
				children[i].className = 'projectStepNum';
			}
		}
	}
	
	function startsWith(string,match)
	{
		return ((string.substring(0, match.length) == match) ? true : false);
	}
	
	function AttachEvent(obj,evt,fnc,useCapture)
	{
		if (!useCapture) {useCapture=false;}
		if (obj.addEventListener)
		{
			obj.addEventListener(evt,fnc,useCapture);
			return true;
		}
		else if (obj.attachEvent) 
		{
			return obj.attachEvent("on"+evt,fnc);
		}
		else
		{
			MyAttachEvent(obj,evt,fnc);
			obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
		}
	}

	function MyAttachEvent(obj,evt,fnc)
	{
		if (!obj.myEvents) obj.myEvents={};
		if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
		var evts = obj.myEvents[evt];
		evts[evts.length]=fnc;
	}
	
    function jsClosePopIn(ref)
	{
		var popin = document.getElementById(ref);
		popin.style.display = 'none';
        clearInterval(interval);
	}
	
	function jsOpenPopIn(ref)
	{
		var popin = document.getElementById(ref);
		popin.style.display = 'block';
		if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == 6)
		{
            popin.style.position = 'absolute';
            baseOffLeft = getOffSetLeft(popin);
            baseOffTop = getOffSetTop(popin);
		    modalPopIn = popin;
            var ab = document.getElementById('AlphaBlock');
            jsResizeRelocatePopIn(modalPopIn,ab) 
            interval = window.setInterval(jsMovePopIn, 50);
        }
	}
	
	function getOffSetLeft(obj)
	{
	    var offSet;
	    offSet = 0;
	   if(obj.offsetParent != null) {offSet = obj.offsetParent.offsetLeft + getOffSetLeft(obj.offsetParent);}
	   return offSet; 
	}
	
    function getOffSetTop(obj)
	{
	    var offSet;
	    offSet = 0;
	   if(obj.offsetParent != null) {offSet = obj.offsetParent.offsetTop + getOffSetTop(obj.offsetParent);}
	   return offSet; 
	}
	
	function jsMovePopIn()
	{
        var ab = document.getElementById('AlphaBlock');
       jsResizeRelocatePopIn(modalPopIn,ab);
	}
	
	function jsResizeRelocatePopIn(modal,block)
	{
        var offsetTop = 0; // set offset (likely equal to your css top)
        var offsetLeft = 0; // set offset (likely equal to your css left) 	
        block.style.height = document.documentElement.clientHeight + 'px'; 
        modal.style.width = document.documentElement.clientWidth + 'px';
        modal.style.top = (document.documentElement.scrollTop + offsetTop - baseOffTop) + 'px';
        modal.style.left = (document.documentElement.scrollLeft + offsetLeft - baseOffLeft) + 'px'; 
	}
	
	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"
		},
		{
			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();
