var TECHTRIBE =
{
	isIE6 : function () {
  		var version = 999;
  		if(navigator.appVersion.indexOf("MSIE") != -1){
  			version = parseFloat(navigator.appVersion.split("MSIE")[1]);
  		}
		if (version < 7) {
			return true;
		} else {
			return false;
		}
	},

	Common:
	{
		getElementsByClassName: function(needle, gi) {
		   	var s = document.getElementsByTagName(gi || '*'), i = s.length, r = [], e, c;
		    needle = ' ' + needle + ' ';
		    while (i--) {
		        e = s[i];
				if (e.className) {
		            c = ' ' + e.className + ' ';
		            if (c.indexOf(needle) != -1) {
						r.push(e);
					}
		        }
		    }
		    return r;
		}
	},

	TransparantFix:
	{

		transGIF : "/wp-content/themes/schubergphilis/img/trans.gif",

		init: function() {
			this.fixDocumentPNG();
			this.fixDocumentBgPNG();
		},

		fixDocumentPNG: function() {
			if (TECHTRIBE.isIE6()) {
				var imgs = document.getElementsByTagName("img"),
					img;
		  		for (var i = 0, l = imgs.length; i < l; i++) {
		  			img = imgs[i];
					if (/(^|\s)(ttf|transparent)(\s|$)/.test(img.className)) {
			  			img.style.width = img.getAttribute('width') + "px";
						img.style.height = img.getAttribute('height') + "px";
						img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "', sizingMethod='crop')";
			          	img.src = TECHTRIBE.TransparantFix.transGIF;
					}
		  		}
			}
		},

		fixDocumentBgPNG: function() {
			if (TECHTRIBE.isIE6()) {
				var imgs = TECHTRIBE.Common.getElementsByClassName("bgTransparent");
				for (var i = 0; i < imgs.length; i++)
				{
					var imgUrl = TECHTRIBE.Utils.getStyle(imgs[i], "backgroundImage");
					if(imgUrl){
						var imgUrlStripped = TECHTRIBE.Utils.stripImgUrl(imgUrl);
						imgs[i].style.backgroundImage = "none";
						imgs[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgUrlStripped + "\', sizingMethod='crop')";
					}
				}
			}
		},

		fixSinglePNG: function(el) {
			if (TECHTRIBE.isIE6) {
				el.style.width = el.width + "px";
				el.style.height = el.height + "px";
				el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + el.src + "\', sizingMethod='crop');";
		      	el.src = TECHTRIBE.TransparantFix.transGIF;
			}
		},

		fixSingleBgPNG: function(el) {
			if (TECHTRIBE.isIE6) {
				var imgUrl = TECHTRIBE.Utils.getStyle(el, "backgroundImage");
				if(imgUrl){
					var imgUrlStripped = TECHTRIBE.Utils.stripImgUrl(imgUrl);
					el.style.background = "none";
					el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgUrlStripped + "\', sizingMethod='crop');";
				}
			}
		}
	},

	Utils:
	{
		//Gets Opacity
		getOpacity: function(imageobject) {
			if(imageobject.filters) {
				if(imageobject.filters['alpha']){
					return imageobject.filters['alpha'].opacity;
				}
			} else if(imageobject.style.MozOpacity) {
				return imageobject.style.MozOpacity * 100;
			}
			return null;
		},

		//Sets Opacity
		setOpacity: function(imageobject, value) {
			imageobject.style.opacity = value/10;
			imageobject.style.filter = 'alpha(opacity=' + value*10 + ')';
		},

		getParameter: function(queryString, param) {
			if(queryString.indexOf("&") == -1){
				var paramArr = queryString.split("=");
				if(paramArr[0] == param){
					return paramArr[1];
				} else {
					return "";
				}
			} else {
				var paramsArr = queryString.split("&");
				for(var i=0;i<paramsArr.length;i++)
				{
					var paramArr = paramsArr[i].split("=");
					if(paramArr[0] == param){
						return paramArr[1];
					}
				}
				return "";
			}
		},

		//Creates Div or Img element
		createElement: function(parent, el, elClass, id, innerValue, src, width, height) {
			var appendedEl;
			if (el == "IMG"){
				var element = document.createElement(el);
				if (id){element.id = id;}
				element.src = src;
				if(parent){appendedEl = parent.appendChild(element);}
				if (width){appendedEl.width = width;}
				if (height){appendedEl.height = height;}
				if (elClass){appendedEl.className = elClass;}
				if(appendedEl){
					return appendedEl;
				}
				return element;
			} else {
				var element = document.createElement(el);
				if (id){element.id = id;}
				if(parent){appendedEl = parent.appendChild(element);}
				if (innerValue){appendedEl.innerHTML = innerValue;}
				if (elClass){appendedEl.className = elClass;}
				if(appendedEl){
					return appendedEl;
				}
				return element;
			}
		},

		//Returns a number from a "value"px string
		stripValuePx: function(value) {
			return parseInt(value.substr(0, value.indexOf("px")));
		},

		stripImgUrl: function(value) {
			return value.substring(5, (value.length - 2));
		},

		//get styles from HTML objects
		getStyle: function(x,styleProp){
		    if(!x){
		        return false;
		    }
		    if(x.currentStyle){
		        var y = x.currentStyle[styleProp];
		    } else if(window.getComputedStyle){
		        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
		    }
		    return y;
		},

		//Returns Boolean if obj is Array
		isArray: function(obj){
			try{
				if(obj.constructor.toString().indexOf("Array") == -1){
					return false;
				} else {
					return true;
				}
			} catch(e){
				return false;
			}
		},

		//Convert RGB to HEX values
		rgbConvert: function(str){
		   str = str.replace(/rgb\(|\)/g, "").split(",");
		   str[0] = parseInt(str[0], 10).toString(16).toLowerCase();
		   str[1] = parseInt(str[1], 10).toString(16).toLowerCase();
		   str[2] = parseInt(str[2], 10).toString(16).toLowerCase();
		   str[0] = (str[0].length == 1) ? '0' + str[0] : str[0];
		   str[1] = (str[1].length == 1) ? '0' + str[1] : str[1];
		   str[2] = (str[2].length == 1) ? '0' + str[2] : str[2];
		   return ('#' + str.join(""));
		}
	},

	XML:
	{
		//returns textNode of given elementNode
		getXmlNodeValue: function(xmlNode) {
			if(xmlNode.textContent) {return xmlNode.textContent;}
			else if(xmlNode.text){return xmlNode.text;}
			else if(xmlNode.firstChild.nodeValue){return xmlNode.firstChild.nodeValue;}
			else {return null;}
		},

		//returns all childeren of given parentNode
		childElements: function(parentNode) {
			var l= new Array();
			for (var i= 0; i<parentNode.childNodes.length; i++)
				if (parentNode.childNodes[i].nodeType==1){
				l[l.length]= parentNode.childNodes[i];
			}
			if (l.length){return l;}
			else{return false;}
		},

		//returns correct elements
		returnElements: function(parentNode, tagname) {
			var l= new Array();
			for (var i= 0; i<parentNode.childNodes.length; i++)
				if ((parentNode.childNodes[i].nodeType==1) && (parentNode.childNodes[i].tagName == tagname)){
				l[l.length]= parentNode.childNodes[i];
			}
			if (l.length){return l;}
			else{return false;}
		}
	},

	Delegate:
	{
		create: function(aObject, aFunction){
			if(arguments.length > 2){
				var params = new Array();
				for(var i=2;i<arguments.length;++i)
				{
					params.push(arguments[i]);
				}
				return function() { return aFunction.apply(aObject, params); }
		    } else {
				return function() { return aFunction.apply(aObject, arguments); }
			}

		}
	},

	Geom:
	{
		Point2d: function(x, y)
		{
			this.x = x;
			this.y = y;
		}
	},

	Easing:
	{
		expoEaseIn: function (t, b, c, d) {
			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
		},

		expoEaseBoth: function (t, b, c, d) {
			if (t==0) return b;
			if (t==d) return b+c;
			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
		},

	    expoEaseOut: function (t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	    }
	}
}