d = document;
ie = (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) ? true : false;



/* COMMON FUNCTIONS 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */

/* ---------------------------------------------------------
   Name:   Event Listener
   Args:   obj (object) - object to attach event to (e.g. document),
           evType (string) - event type (e.g. "load"),
		   fn (function) - function, which will handle the event
   Author: Scott Andrew
   URL:    http://scottandrew.com
   Notes:  edited by Mark Wubben, <useCapture> is now set to false
 ---------------------------------------------------------*/

addEvent = function (/* object */ obj, /* string */ evType, /* function */ fn) {
	if(obj.addEventListener){
		obj.addEventListener(evType, fn, true); 
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	} else {
		return false;
	}
}

/* IMAGES
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */

Images = {
	
	/* ---------------------------------------------------------
	   Name:   Proper IE PNG handler
	   Args:   -
	   Author: Few talented webdesigners ;)
	   URL:    http://dsandler.org, http://www.youngpup.net/?request=/snippets/sleight.xml, http://www.allinthehead.com/retro/69
	   Notes:  -
	 ---------------------------------------------------------*/
	
	enableAlphaImages: function () {
		if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
			var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
			var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5 && Number(rslt[1]) < 7);
			if (itsAllGood) {
				for (var i=0; i<document.all.length; i++){
					var obj = document.all[i];
					var bg = obj.currentStyle.backgroundImage;
					var img = document.images[i];
					if (bg && bg.match(/\.png/i) != null) {
						var img = bg.substring(5,bg.length-2);
						var offset = obj.style["background-position"];
						obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='crop')";
						obj.style.backgroundImage = "url('blank.gif')";
						obj.style["background-position"] = offset; // reapply
					} else if (img && img.src.match(/\.png$/i) != null) {
						var src = img.src;
						img.style.width = img.width + "px";
						img.style.height = img.height + "px";
						img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop')"
						img.src = "blank.gif";
					}
				}
			}
		}
	}
}

	
/* TABLES
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */

Tables = {
	
	/* ---------------------------------------------------------
	   Name:   Alternate rows classes for IE + hover class
	   Args:   parentObj (object) - parent object for the tables to attach alt rows to,
	           altClass (string) - alternative row class name,
			   hoverClass (string) - hover row class name
	   Author: Kamil Pełka
	   URL:    http://kamilpelka.com/
	   Notes:  -
	 ---------------------------------------------------------*/
	
	zebra: function ( /* object */ parentObj , /* string */ altClass , /* string */ hoverClass ) {
		data_tables = parentObj.getElementsByTagName("table");
		// Loopin through all tables
		for (var i=0;i<data_tables.length;i++) {
			
			table_rows = data_tables[i].getElementsByTagName("tr");
			
			//Loopin through all rows in a table
			for (var j=0;j<table_rows.length;j++) {
				tds = table_rows[j].getElementsByTagName("td");
				if (tds.length > 0) {
					if ((altClass != "") && (j % 2 != 0)) {
						if (table_rows[j].className != '') {
							table_rows[j].className = table_rows[j].className + " alt";
						} else {
							table_rows[j].className = "alt";
						};
					}
					if (hoverClass != "") {
						table_rows[j].onmouseover = function() {
							eval("this.oldClassName = this.className;");
							eval("this.className = '"+hoverClass+"';");
						}
						table_rows[j].onmouseout = function() {
							eval("this.className = this.oldClassName;");
						}
					}
				}
			}
		}
	}
}
