function mh_stub_click( ) {
	var req = new JsHttpRequest( );
	
	req.onreadystatechange = function ( ) {
		if ( req.readyState == 4 ) {
			var t = req;
			
			if ( t.responseJS.success ) {
				var cookie = document.cookie.match( /\bideas_voted=([^\;]*)(\;|$)/i );
				var ids = new Array( );
				
				if ( cookie != null ) {
					if ( cookie[ 1 ] != null )
					{
						var item = unescape( cookie[ 1 ] ).split( ',' );
						
						for ( var i in item ) {
							i = parseInt( item[ i ] );
							
							if ( !isNaN( i ) ) {
								ids[ i ] = i;
							}
						}
					}
				}
				
				var text = '<table border="0" cellpadding="0" cellspacing="0"><tbody>';
				
				for ( var item in t.responseJS.ideas ) {
					var mh_active = parseInt( t.responseJS.ideas[ item ][ 'id' ] );
					var mh_votes = parseInt( t.responseJS.ideas[ item ][ 'votes' ] ) % 100;
					
					if ( !isNaN( ids[ mh_active ] ) ) {
						mh_active = false;
					} else {
						mh_active = true;
					}
					
					if ( ( ( mh_votes / 10 ) == 1 ) || ( ( mh_votes % 10 ) > 4 ) || ( ( mh_votes % 10 ) == 0 ) ) {
						mh_votes = 'голосов';
					} else if ( ( mh_votes % 10 ) == 1 ) {
						mh_votes = 'голос';
					} else {
						mh_votes = 'голоса';
					}
					
					text += '<tr>' +
						'<td align="center" valign="top" width="55">' +
						'<div class="idea_rating">' + t.responseJS.ideas[ item ][ 'votes' ] + '</div>' +
						mh_votes +
						'</td>';
					
					switch ( t.responseJS.ideas[ item ][ 'status' ] )
					{
						case 'new':
							if ( mh_active ) {
								text += '<td align="center" valign="top" width="97">' +
									'<img id="vote_idea_img_' + t.responseJS.ideas[ item ][ 'id' ] + '" src="' + SITE_URL + 'images/stub/vote_a.png" class="vote_idea_a" /><br />' +
									'<span id="vote_idea_span_' + t.responseJS.ideas[ item ][ 'id' ] + '" class="vote_a">поддержать</span>' +
									'</td>';
							} else {
								text += '<td align="center" valign="top" width="97">' +
									'<img src="' + SITE_URL + 'images/stub/vote_p.png" class="vote_idea_p" /><br />' +
									'<span class="vote_p">поддержать</span>' +
									'</td>';
							}
						break;
						
						case 'inprogress':
							text += '<td width="97" valign="middle" align="center" style="color: #d09332;">делается</td>';
						break;
						
						case 'done':
							text += '<td width="97" valign="middle" align="center" style="color: #6682c3;">сделано</td>';
						break;
						
						default:
							text += '<td width="97" valign="middle" align="center">&nbsp;</td>';
						break;
					}
					
					text += '<td align="left" valign="middle" style="padding-left: 7px;">' + t.responseJS.ideas[ item ][ 'htmltext' ] + '</td>' +
						'</tr>';
				}
				
				text += '</tbody></table>';
				
				var item = $( '#stub_block .ideas' )[ 0 ];
				
				$( 'table', item ).remove( );
				
				$( '#stub_block .ideas' ).append( text );
				
				$( '.all_ideas a' ).text( 'Все предложения (' + t.responseJS.total + ')' );
				
				$( '#stub_block .ideas .vote_idea_a, #stub_block .ideas .vote_a' ).unbind( 'click' ).click( mh_stub_idea_vote );
				
				item = $( '#stub_block div.stub_container' )[ 0 ];
				
				var width = item.clientWidth;
				var height = item.clientHeight;
				
				var vwidth = window.innerWidth || ( document.documentElement && document.documentElement.clientWidth ) || document.body.clientWidth;
				var vheight = window.innerHeight || (document.documentElement && document.documentElement.clientHeight) || document.body.clientHeight;
				var vtop = window.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
				var vleft = 0;
				
				var v_t = vtop + Math.round( ( vheight - height ) / 2 );
				var v_l = vleft + Math.round( ( vwidth - width ) / 2 );
				
				$( '#stub_block' ).css( { 'left': v_l, 'top': v_t } );
			} else {
				alert( 'AJAX error!' );
			}
		}
	}
	
	req.open( null, SITE_URL + 'ideas_block/', true );
	req.send( );
	
	return false;
}

function mh_stub_close( ) {
	$( '#stub_block' ).css( 'top', '-10000px' );
	
	$( '#idea_result *' ).remove( );
	
	return false;
}

function mh_stub_add_idea( ) {
	var text = $( '#idea_text' ).val( );
	
	$( '#idea_result *' ).remove( );
	
	if ( text != '' ) {
		var req = new JsHttpRequest( );
		
		req.onreadystatechange = function ( ) {
			if ( req.readyState == 4 ) {
				var t = req;
				
				if ( t.responseJS.success ) {
					if ( !t.responseJS.exists ) {
						$( '#idea_form' ).submit( );
					} else {
						$( '#idea_result' ).html( '<div class="idea_error"><span>Такая идея уже была предложена ранее.</span></div>' );
					}
				} else {
					$( '#idea_result' ).html( '<div class="idea_error"><span>При обработке данных произошла ошибка. Попробуйте еще раз.</span></div>' );
				}
			}
		}
		
		req.loader = 'FORM';
		req.open( 'POST', SITE_URL + 'check_idea/', true );
		req.send( { 'idea_text': text } );
	} else {
		$( '#idea_result' ).html( '<div class="idea_error"><span>Введите текст идеи.</span></div>' );
	}
	
	return false;
}

function mh_list_add_idea( ) {
/*	var text = $( '#idea_text' ).val( );
	
	$( '#idea_result *' ).remove( );
	
	if ( text != '' ) {
		var req = new JsHttpRequest( );
		
		req.onreadystatechange = function ( ) {
			if ( req.readyState == 4 ) {
				var t = req;
				
				if ( t.responseJS.success ) {
					if ( !t.responseJS.exists ) {
						$( '#idea_form' ).submit( );
					} else {
						$( '#idea_result' ).html( '<div class="idea_error"><span>Такая идея уже была предложена ранее.</span></div>' );
					}
				} else {
					$( '#idea_result' ).html( '<div class="idea_error"><span>При обработке данных произошла ошибка. Попробуйте еще раз.</span></div>' );
				}
			}
		}
		
		req.loader = 'FORM';
		req.open( 'POST', SITE_URL + 'check_idea/', true );
		req.send( { 'idea_text': text } );
	} else {
		$( '#idea_result' ).html( '<div class="idea_error"><span>Введите текст идеи.</span></div>' );
	}*/
	
	return false;
}

function mh_stub_idea_vote( ) {
	var item = $( this );
	var id = item.attr( 'id' ).match( /^vote_idea_(img|span)_([0-9]+)$/i )[ 2 ];
	$( '#idea_result *' ).remove( );
	
	var req = new JsHttpRequest( );
	
	req.onreadystatechange = function ( ) {
		if ( req.readyState == 4 ) {
			var t = req;
			
/*			if ( t.responseJS.success ) {
				mh_stub_click( );
			} else {
				alert( 'При обработке данных произошла ошибка. Попробуйте еще раз.' );
			}*/
			
			switch ( parseInt( t.responseJS.result ) ) {
				case 0:
					$( '#idea_result' ).html( '<div class="idea_success"><span>Спасибо. Ваш голос учтен.</span></div>' );
				break;
				
				case 1:
					$( '#idea_result' ).html( '<div class="idea_error"><span>Вы уже голосовали за эту идею.</span></div>' );
				break;
				
				default:
					$( '#idea_result' ).html( '<div class="idea_error"><span>При обработке данных произошла ошибка. Попробуйте еще раз.</span></div>' );
				break;
			}
			
			mh_stub_click( );
		}
	}
	
	req.open( null, SITE_URL + 'vote_idea/' + id, true );
	req.send( );
	
	return false;
}

function mh_list_idea_vote( ) {
/*	var item = $( this );
	var id = item.attr( 'id' ).match( /^vote_idea_(img|span)_([0-9]+)$/i )[ 2 ];
	$( '#idea_result *' ).remove( );
	
	var req = new JsHttpRequest( );
	
	req.onreadystatechange = function ( ) {
		if ( req.readyState == 4 ) {
			var t = req;
			
			switch ( parseInt( t.responseJS.result ) ) {
				case 0:
					$( '#idea_result' ).append( '<div class="idea_success"><span>Спасибо. Ваш голос учтен.</span></div>' );
				break;
				
				case 1:
					$( '#idea_result' ).append( '<div class="idea_error"><span>Вы уже голосовали за эту идею.</span></div>' );
				break;
				
				default:
					$( '#idea_result' ).append( '<div class="idea_error"><span>При обработке данных произошла ошибка. Попробуйте еще раз.</span></div>' );
				break;
			}
			
			mh_stub_click( );
		}
	}
	
	req.open( null, SITE_URL + 'vote_idea/' + id, true );
	req.send( );*/
	
	document.location.reload( );
	
	return false;
}

/*function mh_stub_idea_vote_form( ) {
	var id = $( this ).attr( 'id' ).match( /^form_vote_idea_([0-9]+)$/i )[ 1 ];
//	var action = $( '#vote_idea_form' ).attr( 'action' ) + id;
//	$( '#vote_idea_form' ).attr( 'action', action ).submit( );
	$( '#idea_id' ).attr( 'value', id );
	$( '#vote_idea_form' ).submit( );
	
	return false;
}*/

$( document ).ready(
	function ( ) {
		$( '#stub' ).click( mh_stub_click );
		$( '#stub_block .close_link' ).click( mh_stub_close );
		
		$( '#add_idea' ).click( mh_stub_add_idea );
		
//		$( '.form_vote_idea' ).click( mh_stub_idea_vote_form );
		
//		$( '#add_list_idea' ).click( mh_list_add_idea );
//		$( '.list_vote_idea_a, .list_vote_a' ).click( mh_list_idea_vote );
		
	}
);
