/****************************************
**	website: 	www.freshairapps.com
**	developer:	James Whittaker ( http://jameswhittaker.com)
**	version: 	0.2 
**	date:		4/03/2008
*****************************************/

/** ----------------------------------------
/**  Initial function
/** ----------------------------------------*/
function init() 
{
	setupBehaviourStyles();
	setupToolTips();
	initRatings();
}

/** ----------------------------------------
/**  Behaviour styles setup
/** ----------------------------------------*/
function setupBehaviourStyles()
{
	var allStarRatings = $ES('ul[class^=starratingNonJs]', 'form');
	allStarRatings.each(function(starRating){
		starRating.removeClass('starratingNonJs');
		starRating.addClass('starratingJs');
	});
}

/** ----------------------------------------
/**  Tooltips setup
/** ----------------------------------------*/
function setupToolTips()
{
	var docTips = new Tips($$('.toolTipImg'),
	{
		initialize:function()
		{
			this.fx = new Fx.Style(this.toolTip, 'opacity', {duration:200, wait:false}).set(0);
		},
		onShow:function(toolTip)
		{
			//don't use 1 bug in FF2 causes font weights to alter!
			this.fx.start(0.8);
		},
		onHide:function(toolTip)
		{
			this.fx.start(0);
		}
	});
}

/** ----------------------------------------
/**  Starrating component setup
/** ----------------------------------------*/
function initRatings()
{
	
	var allRatingDivs = $$('div[id^=starrater_]');
	
	allRatingDivs.each(function(ratingDiv){
			//Target the form
			var ratingForm = $E('form[id^=starrating_form_]', ratingDiv.id.toString());
			//Make sure we have a form!
			if(ratingForm !== null)
			{
				//Create new object to hold rating Dom items
				var targetsObj = {outsideDiv:ratingDiv, ratingDivForm:ratingForm};					
				//Collate all of the radio buttons
				var allRadioBtns = $ES('input[type=radio]', ratingForm);

				//Iterate over radio buttons in form
				//passing in target objects
				allRadioBtns.each(function(radioBtn){
					//set the label cursor
					var radioLabel = radioBtn.getNext();
					radioLabel.style.cursor = 'pointer';
					radioLabel.innerHTML = "";
												
					//set click event on radio button							
					radioBtn.addEvent('click', function(e) {
						//display loading icon
						targetsObj.outsideDiv.innerHTML = "<img src='../assets/siteimages/icons/loader.gif' width='16' height='16' alt='loading data...' />";
						targetsObj.ratingDivForm.send({
							update:(targetsObj.outsideDiv.id).toString()
						});
						
						//stop the event bubbling
						new Event(e).stop;
					}, this);

				}, targetsObj)
			}
	});
}
