//----------------------------------------------------
var cnt = {
	TopLeft:		'<div class="TopLeft" style="background: transparent url(\'/img/boxes/[COLOR]/top.left.gif\') left top no-repeat;"></div>',
	TopRight:		'<div class="TopRight" style="background: transparent url(\'/img/boxes/[COLOR]/top.right.gif\') right top no-repeat;"></div>',
	BottomLeft:		'<div class="BottomLeft" style="background: transparent url(\'/img/boxes/[COLOR]/bottom.left.gif\') left bottom no-repeat;"></div>',
	BottomRight:	'<div class="BottomRight" style="background: transparent url(\'/img/boxes/[COLOR]/bottom.right.gif\') right bottom no-repeat;"></div>',

	RoundedBoxes: function() {
		var Boxes = this.ElementsByClass(document.body, 'Rounded', 'div');
		for (var i = 0; i < Boxes.length; i++) {
			this.MakeRound(Boxes[i]);
		}
	},

	MakeRound: function(Box) {
		var Children = this.ElementsByClass(Box, 'Rounded', 'div');
		for (var s = 0; s < Children.length; s++) {
			if (Children[s].firstChild && Children[s].firstChild.className == 'Round_Outer')
				continue;
			this.MakeRound(Children[s]);
		}

		var Content		= Box.innerHTML;
		var Color		= (Box.lang.indexOf('|') > 0) ? Box.lang.split('|')[0].toLowerCase() : Box.lang.toLowerCase();
		var HeaderColor	= (Box.lang.indexOf('|') > 0) ? Box.lang.split('|')[1].toLowerCase() : false;

		Box.style.backgroundColor = 'transparent';

		Box.innerHTML = 
			'<div class="Round_Outer" style="background-color: #' + ((HeaderColor) ? HeaderColor : Color) + '">' + 
				this.TopLeft.replace('[COLOR]', (HeaderColor) ? HeaderColor : Color) + 
				this.TopRight.replace('[COLOR]', (HeaderColor) ? HeaderColor : Color) + 
			'</div>' +
			'<div class="Round_Content" style="background-color: #' + ((HeaderColor) ? HeaderColor : Color) + '">' + Content + '</div>' +
			'<div class="Round_Outer" style="background-color: #' + ((HeaderColor) ? HeaderColor : Color) + '">' + 
				this.BottomLeft.replace('[COLOR]', (HeaderColor) ? HeaderColor : Color) + 
				this.BottomRight.replace('[COLOR]', (HeaderColor) ? HeaderColor : Color) + 
			'</div>';
	},

	HasClass: function(Element, Class) {
		return ((Element.className != null) && Element.className.match(new RegExp("(^|\\s)" + Class + "(\\s|$)")));
	},

	ElementsByClass: function(Element, Class) {
		if (!Element) return false;

		var TagName = (arguments[2] != null) ? arguments[2] : '*';
		var Elements = new Array();
		var Tags = Element.getElementsByTagName(TagName);

		for (var i = 0; i < Tags.length; i++)
			if (this.HasClass(Tags[i], Class))
				Elements.push(Tags[i]);

		return Elements;
	},

	ReplaceSrc: function(Obj, Find, Replace) {
		Obj.src = Obj.src.replace(Find, Replace);
	},

	ToggleDisplay: function(ID, Display) {
		document.getElementById(ID).style.display = Display;
	},

	MakeRating: function(ItemID, Rating) {
		for (var i = 1; i <= Rating; i++) {
			Img = '<img src="/img/rating.on.gif" lang=".on.gif" title="' + i + '"';
			if (!arguments[2])
				Img += 'onmouseover="javascript: cnt.HoverRating(this, false, \'.hover.gif\');" onmouseout="javascript: cnt.HoverRating(this, \'.hover.gif\', false);" onclick="javascript: cnt.ChangeRating(this, ' + ItemID + ', ' + i + ');" style="cursor: pointer;"';

			document.write(Img += ' />');
		}
		for (var i = Rating + 1; i <= 5; i++) {
			Img = '<img src="/img/rating.off.gif" lang=".off.gif" title="' + i + '"';
			if (!arguments[2])
				Img += 'onmouseover="javascript: cnt.HoverRating(this, false, \'.hover.gif\');" onmouseout="javascript: cnt.HoverRating(this, \'.hover.gif\', false);" onclick="javascript: cnt.ChangeRating(this, ' + ItemID + ', ' + i + ');" style="cursor: pointer;"';

			document.write(Img += ' />');
		}
	},

	HoverRating: function(Img, Find, Replace) {
		var Container = Img.parentNode;
		var Count = 0;
		for (var i = 0; i < Container.childNodes.length; i++) {
			if (Container.childNodes[i].tagName == 'IMG') {
				Count++;
				this.ReplaceSrc(Container.childNodes[i], (Find) ? Find : Container.childNodes[i].lang, (Replace) ? Replace : Container.childNodes[i].lang);
				if (Img.title == Count)
					break;
			}
		}
	},

	ChangeRating: function(Img, Item, Rating) {
		
		// Ajax request to save the rating 
		// saves a cookie on success
		
		new Ajax.Request('/?IDX=rating_save.process&ImageID='+Item+'&Rating='+Rating, {
		  onSuccess: function(transport) {
			  if (transport.responseText.match(/(success)/)){
				  var Today = new Date()
				  var Expiration = new Date(Today + 1000*60*60*24);
				  document.cookie = 'Rated'+Item+'=1; expires='+Expiration.toGMTString();
			  }
		  }
		});

		// Change Defaults.
		var Container = Img.parentNode;
		for (var i = 0; i < Container.childNodes.length; i++) {
			if (Container.childNodes[i].tagName == 'IMG') {
				Container.childNodes[i].onmouseover = Container.childNodes[i].onmouseout = Container.childNodes[i].onclick = null;
				if (Container.childNodes[i].title <= Img.title) {
					this.ReplaceSrc(Container.childNodes[i], '.hover.gif', '.on.gif');
				} else {
					this.ReplaceSrc(Container.childNodes[i], '.hover.gif', '.off.gif');
					this.ReplaceSrc(Container.childNodes[i], '.on.gif', '.off.gif');
				}
				Container.childNodes[i].style.cursor = '';
			}
		}
	}
};
//----------------------------------------------------

