/******************************************************
 *
 * This script was written for
 * http://other.lookstrike.com
 *
 * If you plan to use it for your own, you can but you
 * MUST leave this whole comment intact in each file.
 *
 * Copyright		: (C) Jean-Sébastien Goupil - 2006-2008
 * Website		: http://other.lookstrike.com
 *
 ******************************************************/

ToolBox._Specific = {
	GetBrowser: function() {
		var agent = navigator.userAgent.toLowerCase();
		if(agent.indexOf("firefox") != -1 || agent.indexOf("gecko") != -1)
			return this.BROWSER_FIREFOX;
		else if(agent.indexOf("opera") != -1)
			return this.BROWSER_OPERA;
		else if(agent.indexOf("safari") != -1)
			return this.BROWSER_SAFARI;
		else if(agent.indexOf("msie") != -1)
			return this.BROWSER_MSIE;
		else
			return this.BROWSER_UNKNOWN;
	},

	GetBrowserVersion: function() {
		var agent = navigator.userAgent.toLowerCase();
		var nPos = 0;
		if((nPos = agent.indexOf("firefox")) != -1)
			return agent.substring(nPos + 8, agent.length); // Firefox/1.5.0.2
		else if((nPos = agent.indexOf("opera")) != -1)
			return agent.substring(nPos + 6, agent.length); // Opera 8.54
		else if((nPos = agent.indexOf("safari")) != -1)
			return agent.substring(nPos + 7, agent.length); // safari/523.5
		else if((nPos = agent.indexOf("msie")) != -1)
			return agent.substring(nPos + 5, agent.substring(nPos, agent.length).indexOf(";") + nPos); // MSIE 6.0;
		else
			return -1;
	},

	SetTransparency: function( element, pourcentage ) {
		var strBrowser = this.GetBrowser()
		if(strBrowser == this.BROWSER_MSIE)
			element.style.filter = "alpha(opacity="+pourcentage+")";
		else if(strBrowser == this.BROWSER_FIREFOX)
			element.style.MozOpacity = pourcentage / 100;
	},

	GetMouseClick: function( event ) {
		var strBrowser = this.GetBrowser()
		if(strBrowser == this.BROWSER_MSIE) {
			// 1 : left
			// 4 : center
			// 2 : right
			if(event.button == 1) {
				return this.MOUSE_LEFT;
			} else if(event.button == 2) {
				return this.MOUSE_RIGHT;
			} else if(event.button == 4) {
				return this.MOUSE_CENTER;
			}
		}
		return event.button;
	},

	CSSInformation: function(element, cssProperty) {
		if (element.currentStyle) { // IE
			var n = cssProperty.indexOf("-");
			if(n >= 0) // remove - ... like fontFamily not font-family
				cssProperty = cssProperty.substr(0, n) + cssProperty.charAt(n + 1).toUpperCase() + cssProperty.substr(n + 2);
			return element.currentStyle[cssProperty];
		} else if ( window.getComputedStyle ) { // Mozilla
			var elementStyle = window.getComputedStyle(element, "");
			return elementStyle.getPropertyValue(cssProperty);
		}
	},

	GetBackgroundColor: function(element) {
		var color = null;
		if(element.currentStyle) {
			color = element.currentStyle.backgroundColor;
			// Opera encloses the backgroundColor with "
			if(color.charAt(0) == '"') {
				color = color.substr(1, color.length - 2);
			}
		} else if(document.defaultView) {
			try {
				color = document.defaultView.getComputedStyle(element, '').getPropertyValue("background-color");
			} catch(e) { color = "#ffffff"; } // No color found
		}
		// rgba(0, 0, 0, 0) is returned by safari
		if(color == "transparent" || color == "rgba(0, 0, 0, 0)") {
			if(element.parentNode)
				return this.GetBackgroundColor( element.parentNode );
			else
				return "#ffffff";
		}
		else if(color == null)
			return "#ffffff";
		else
			return color;
	},

	BROWSER_UNKNOWN: -1,
	BROWSER_MSIE: 0,
	BROWSER_FIREFOX: 1,
	BROWSER_OPERA: 2,
	BROWSER_SAFARI: 3,

	MOUSE_LEFT: 0,
	MOUSE_CENTER: 1,
	MOUSE_RIGHT: 2
}