	
		/**
		 * mayaFish.modules.rating
		 * @package rating
		 * @author krish
		 * 
		 * Használat:
		 * 		
		 * 	interaktív rating:
		 *		<div id="videoRating"></div>
		 * 		<script type="text/javascript">			
		 * 			mayaFish.modules.rating.displayRating('myRating',3);
		 * 		</script>
		 * 	letiltva:
		 * 		mayaFish.modules.rating.displayRating('myRating',3,TRUE);
		 * 
		 * 	statikus megjelenítés (pl.: listáknál)
		 * 		... <div id="item1rating"></div> ...
		 *		... <div id="item2rating"></div> ...
		 *		<script type="text/javascript">			
		 *			mayaFish.modules.rating.displayStaticRating('item1rating',2);
		 *			mayaFish.modules.rating.displayStaticRating('item2rating',3);
		 * 		</script>
		 */

		if( mayaFish )
		{
			if (!mayaFish.modules.rating)
			{
				mayaFish.modules.rating = 
				{
					//----------------------------------------------
					// Public 
					//----------------------------------------------

					'numberOfStarts': 5,

					/**
					 * Renders rating
					 * @param (string) attachTo - html element id
					 * @param (int) value - initial value 
					 * @param (bool) disabled 
					 */
					'display': function(attachTo,value,disabled,params)
					{
						dojo.require("dojox.form.Rating");
						
						var Me = this;
						if( arguments.length < 3 ){ disabled = false; }
						if( arguments.length < 3 ){ params   = {}; }
						if( typeof(params) != 'object' ){ params   = {}; }
						
						Me._module = params.ra;
						Me._object = params.rb;
						Me._holder = attachTo;
							
						Me._dojoRating = new dojox.form.Rating( {numStars:this.numberOfStarts, value:value} );
						Me._dojoRating.placeAt(document.getElementById(attachTo));
						Me._initialValue = value;
						if( disabled )
						{
							Me._disableRating();
						}
						else
						{
							Me._dojoRating.onChange = function(value)
							{
								if( !Me.onRate(value) )
								{
									Me._dojoRating.setValue(Me._initialValue); 
								}
								Me._disableRating();
								return false;
							}
						}
					},

					/**
					 * Renders static rating
					 * Nem interaktív rating(ek) megjelenítésére használható (pl.: listákban)
					 * @param (string) attachTo - html element id
					 * @param (int) value 
					 */
					'displayStatic': function(attachTo,value)
					{
						dojo.require("dojox.form.Rating");
						var _rating = new dojox.form.Rating( {numStars:this.numberOfStarts,value:value} );
						_rating.placeAt(document.getElementById(attachTo));
						this._disableRating(_rating);
					},
					
					//----------------------------------------------
					// Events
					//----------------------------------------------

					/**
					 * Overridable
					 * true visszatérési érték esetén az új érték jelenik meg, false esetén vissza áll a kezdeti érték
					 * @params (int) value 
					 */
					'onRate': function(value)
					{
						
						var Me = this;
						document.getElementById(Me._holder).innerHTML = mayaFish.translations('common','please_wait');
						document.getElementById(Me._holder).className = "ratingMessage";
						mayaFish.httpRequest(
						{
							 url: '/rating/rate',
							 params: { ra: Me._module, rb: Me._object, rc: value },
							 method: 'post',
							 parse:  'text',
							 onSuccess: function (response) 
							 {
								 document.getElementById(Me._holder).innerHTML = "";
								 document.getElementById(Me._holder).className = "";
								 var _data = response.split('|');
								 if( _data[0] == 0 )
								 {
									Me.displayStatic(Me._holder,_data[1]);
								 }
								 else
								 {
									 Me.displayStatic(Me._holder,Me._initialValue);
								 }
							 }
						});
						return false;
					},

					//----------------------------------------------
					// Private
					//----------------------------------------------
					
					'_dojoRating'   : null,
					'_initialValue' : null,
					'_module'       : null,
					'_object'       : null,
					'_holder'       : null,
					'_disableRating': function(ratingObj)
					{
						if( arguments.length == 0 ){ ratingObj = this._dojoRating; }
						ratingObj.setDisabled(true);
						//hackings built in functions
						ratingObj.onMouseOver = function(){ return false; }
						ratingObj.onStarClick = function(){ return false; }
						ratingObj.onChange    = function(){ return false; }
					}

				}
			}
		}