/**
 *  depends on NEOPETS global object
 */
var HTMLUtilities = {
	IMAGE_HOST : NEOPETS.IMAGE_HOST,
	idx : 0,
	_is_object : function(arr) {
		return (typeof(arr) === 'object');
	},
	_unique_int : function() {
		this.idx++;
		return 100 + this.idx;
	},
	imgPath : function (filename) {
		var img_base = this.IMAGE_HOST + '/';
		return img_base + filename;
	},
	mouseOverFragment : function (full_path, id) {
		return new Function("document.getElementById('" + id + "').src = '" + full_path +"';"); 
	},
	mouseOver : function(filename, filename_over, attrs ,href, onclick, a_class) {
		if (attrs === null) {
			attrs = {};
		}
		if (href === null) {
			href = 'javascript://';
		}
		if (onclick === null) {
			onclick = '';			
		}
		if (a_class === null) {
			a_class = '';			
		}
		var uniq_int = this._unique_int();
		var extra_attrs = {
			'name' : "htmlutilities_" + uniq_int,
			'id' : "htmlutilities_" + uniq_int
		};
		if (this._is_object(attrs)) {
			for (var tmp in extra_attrs) {
				attrs[tmp] = extra_attrs[tmp];				
			}
		} else {
			attrs = extra_attrs;
		}
		var out = [];
		out.push("<a href=\"");
		out.push(href);
		out.push("\"");
		if (a_class !== '') {
			out.push(" class=\"");
			out.push(a_class);
			out.push("\"");
		}
		out.push(" onclick=\"");
		out.push(onclick);
		out.push("\"");
		out.push(" onmouseout=\"document.getElementById('");
		out.push(extra_attrs.id);
		out.push("').src='");
		out.push(this.imgPath(filename));
		out.push("'\"");
		out.push(" onmouseover=\"document.getElementById('");
		out.push(extra_attrs.id);
		out.push("').src='");
		out.push(this.imgPath(filename_over));
		out.push("'\">");
		out.push(this.imgTag(filename,attrs));
		out.push("</a>");
		return out.join('');
	},
	tableDisplay : function() {
		return ((isIE) ? 'block' : 'table');
	},
	imgTag : function (filename,attrs) {
		if (this._is_object(attrs)) {
			attr_string = '';
			if (!attrs.alt) {
				attrs.alt = '';
			}
			if (!attrs.title) {
				attrs.title = attrs.alt;
			}
			for (var name in attrs) {
				attr_string += " " + name + "=" + "\"" + attrs[name] + "\"";
			}
		} else {
			attr_string = '';
		}
		return "<img src=\"" +  this.imgPath(filename) + "\"" + attr_string + ">";
	},
	cssBackgroundImage : function(filename) {
		return "background-image: url(" +  this.imgPath(filename) +");";
	},
	cssStyleAttribute : function (filename) {
		return "style=\""+  this.cssBackgroundImage(filename)+"\"";
	}
};
