/*-------------------------------------*\
|   (FSY23) Tutorials v2.1              |
+---------------------------------------+
|   Javascript Functions File           |
+---------------------------------------+
|   (c) 2008 Michael McCune             |
|   Email: michael.mccune@gmail.com     |
|   http://www.invisionmodding.com/     |
\*-------------------------------------*/

function arrow_click(id, t)
{
	var div = my_getbyid( 'tutside_'+id );
	var img = document.images['sidearrow_'+id];

	if ( div.style.display != 'none' )
	{
		my_hide_div( div );
		img.src = arrow_right;
		img.title = lang_expand;
	}
	else
	{
		my_show_div( div );
		img.src = arrow_down;
		img.title = lang_collapse;
	}

	return false;
}

function add_bookmark(title, url)
{
    if ( document.all )
    {
        window.external.AddFavorite( url, title );
    }
    else if (window.sidebar)
    {
        window.sidebar.addPanel( title, url, "" )
    }
}

function do_cat_jump()
{
	var obj = document.forms['catj'];
	var cjv = obj.elements['cat_jump'].options[obj.elements['cat_jump'].selectedIndex].value;
	var ext = '';

	if ( cjv != '' && cjv > 0 )
	{
		ext = '&cat='+cjv;
	}

	window.location.href = ipb_var_base_url+'autocom=tutorials'+ext;
}

function tutorial_rate()
{
	this.settings = { 'allow_rating'              : 0,
					  'default_rating'            : 3,
					  'img_star_on'               : 'star_filled.gif',
					  'img_star_selected'         : 'star_selected.gif',
					  'img_star_off'              : 'star_empty.gif',
					  'img_main_star_0'           : 'rating_0.gif',
					  'img_main_star_1'           : 'rating_1.gif',
					  'img_main_star_2'           : 'rating_2.gif',
					  'img_main_star_3'           : 'rating_3.gif',
					  'img_main_star_4'           : 'rating_4.gif',
					  'img_main_star_5'           : 'rating_5.gif',
					  'img_base_url'              : '',
				      'tutorial_id'				: 0,
					  'div_rating_wrapper'        : 'tutorial-rating-wrapper',
					  'text_rating_image'         : 'tutorial-rating-img-',
					  'tutorial-rating-img-main'  : 'tutorial-rating-img-main',
					  'tutorial-rating-my-rating' : 'tutorial-rating-my-rating',
					  'tutorial-rating-hits'      : 'tutorial-rating-hits'
	 				};
	
	this.languages = { 'img_alt_rate' : '',
					   'rate_me'      : ''
					 };
	
	this.init_rating_images = function()
	{
		//-----------------------------------------
		// INIT
		//-----------------------------------------

		var html = '';

		//-----------------------------------------
		// Still here? OK...
		//-----------------------------------------

		for ( var i = 1 ; i <= 5 ; i++ )
		{
			var _onmouseover = '';
			var _onmouseout  = '';
			var _onclick     = '';
			var _title       = '';

			if ( this.settings[ 'allow_rating' ] )
			{
				_onmouseover = ' onmouseover="this.style.cursor=\'pointer\'; tutorial_rate.show_rating_images(' + i + ', 0)"';
				_onmouseout  = ' onmouseout="tutorial_rate.show_rating_images(-1, 1)"';
				_onclick     = ' onclick="tutorial_rate.send_rating(' + i + ')"';
				_title       = this.languages['img_alt_rate'];
			}

			html += "<img style='vertical-align:top' src='" + this.settings['img_base_url'] + '/' + this.settings['img_star_off'] + "' " + _onmouseover + _onmouseout + _onclick + "id='" + this.settings['text_rating_image'] + i + "' alt='-' title='" + _title + "' />";
		}

		document.getElementById( this.settings['div_rating_wrapper'] ).innerHTML = this.languages['rate_me'] + ' ' + html;

		//-----------------------------------------
		// Now set the image...
		//-----------------------------------------

		this.show_rating_images( this.settings['default_rating'], 1 );
	};
	
	this.send_rating = function( rating )
	{
		//-----------------------------------------
		// INIT
		//-----------------------------------------
		
		rating = rating ? rating : 0;
		
		//-----------------------------------------
		// Got a rating?
		//-----------------------------------------
		
		if ( rating )
		{
			//----------------------------------
			// INIT
			//----------------------------------

			var url = ipb_var_base_url + 'autocom=tutorials&code=addVote&id='+this.settings['tutorial_id']+'&vote='+rating;
			
			/*--------------------------------------------*/
			// Main function to do on request
			// Must be defined first!!
			/*--------------------------------------------*/

			do_request_function = function()
			{
				//----------------------------------
				// Ignore unless we're ready to go
				//----------------------------------

				if ( ! xmlobj.readystate_ready_and_ok() )
				{
					xmlobj.show_loading( '' );
					return;
				}

				xmlobj.hide_loading();

				//----------------------------------
				// INIT
				//----------------------------------

				var html = xmlobj.xmlhandler.responseText;
				
				if ( html == 'no_permission' )
				{
					alert( js_error_no_permission );
				}
				else if ( html != 'error' )
				{
					var _result    = html.split(',');
					var _new_value = _result[0];
					var _new_hits  = _result[1];
					var _new_stars = _result[2];
					var _type      = _result[3];

					//-----------------------------------------
					// Now set the image...
					//-----------------------------------------
					
					tutorial_rate.settings['default_rating'] = parseInt( _new_stars );
					tutorial_rate.settings['allow_rating']	 = 0;
				
					tutorial_rate.show_rating_images( tutorial_rate.settings['default_rating'], 1 );
					tutorial_rate.init_rating_images();
					menu_action_close();
					
					//-----------------------------------------
					// Update counts
					//-----------------------------------------
				
					document.getElementById('tutorial-rating-hits').innerHTML      = _new_hits;
					document.getElementById('tutorial-rating-my-rating').innerHTML = rating;
					
					show_inline_messages_instant( 'rating_updated' );
				}
			};

			//----------------------------------
			// LOAD XML
			//----------------------------------

			xmlobj = new ajax_request();
			xmlobj.onreadystatechange( do_request_function );

			xmlobj.process( url );

			return false;
		}
	};
	
	this.show_rating_images = function( rating, restore_default )
	{
		//-----------------------------------------
		// INIT
		//-----------------------------------------
		
		rating   = restore_default ? this.settings['default_rating'] : parseInt( rating );
		var star = restore_default ? this.settings['img_star_on'] : this.settings['img_star_selected'];
		
		//-----------------------------------------
		// Set to 0
		//-----------------------------------------
		
		for ( var i = 1 ; i <= 5 ; i++ )
		{
			var _img = document.getElementById( this.settings['text_rating_image'] + i );
			_img.src = this.settings['img_base_url'] + '/' + this.settings['img_star_off'];
		}
		
		//-----------------------------------------
		// Show ones coloured...
		//-----------------------------------------
		
		for ( var i = 1 ; i <= rating ; i++ )
		{
			var _img = document.getElementById( this.settings['text_rating_image'] + i );
			_img.src = this.settings['img_base_url'] + '/' + star;
		}
		
		//-----------------------------------------
		// Set main image
		//-----------------------------------------
		
		document.getElementById( this.settings['tutorial-rating-img-main'] ).src = this.settings['img_base_url'] + '/' + this.settings['img_main_star_' + rating ];
	};
};