
Urssus.Autorun = function(){
	Urssus.Normalize();
	$('#comment_submitter').click( Urssus.SendComment );
	$('#ajax_login_submit').click( Urssus.Login );
	$('.PostEntry .Pointer .Operator').click( Urssus.Rate );
	$('.PostEntry .Title a').click( function(){ var o = $(this).parent().parent(); if ( o.hasClass('PostHidden') ) { o.removeClass('PostHidden'); return false; } } )
}

Urssus.Log = function ( something ){
	if ( !window || window.console || !window.console.log ) return;
	console.log( something );
}

Urssus.IWindow = function( type, caption, message ){
	$('.InfoWindow b').text(caption);
	$('.InfoWindow i').text(message);
	
	$('.InfoWindow').removeClass('infow_warning').removeClass('infow_success').addClass('infow_'+type).slideDown('fast').delay(2000).fadeOut('slow');
}

Urssus.JSError = function ( msg ){
	Urssus.IWindow('warning', Urssus.Msg.error, msg );
}

Urssus.SelfRedirect = function( suffix ){
	// Да и вообще перегружаем страницу
	var loc = (""+document.location).split('#');
	document.location = loc[0] +"?r="+ Math.random() +suffix;	
}

Urssus.Login = function( e ){
	// Getting login and password
	var login = $('#ajax_login_field').attr('value');
	var password = $('#ajax_password_field').attr('value');
	
	if ( !login || login.length < 2 ){
		Urssus.JSError( Urssus.Msg.no_login );
		return;
	}
	
	if ( !password ){
		Urssus.JSError( Urssus.Msg.no_password );
		return;
	}
	
	// Отправляем данные
	$.post('/a/login/', { "login": login, "password": password }, Urssus.LoginEvent );
	
//	e.StopPropagation();
	return false;
}

Urssus.LoginEvent = function( answer ){
	var data = Urssus.AjaxAnswer( answer );
	if ( data == false ) return;
	
	Urssus.SelfRedirect( "" );
}


Urssus.Normalize = function(){
	$('.PostEntry .Text img').css('display','none');
	// Posts
	$('.PostEntry .Normz').each( function(){
		var o = $(this);
		if ( o.height() < 500 ) return;
		o.css( 'width', o.width()).css('height', "350px").css('overflow','auto'); 
	} );
	
	// Images
	var cw = $('#CenterFrame').width();
	if ( cw < 500 ) {
		cw = 500;
		$('#CenterFrame').css('width','500px');
	}

	var allowed = cw - 100;
	$('.PostEntry .Text img').css('max-width',allowed+"px").css('display','inline').bind('load', Urssus.BigImg );

}

Urssus.BigImg= function(){
	var o = $(this);
	if ( o.width() > 300 ) o.css('display','block').css('margin','5px auto');
}

Urssus.Rate = function(){
	var o = $(this);
	var id = o.parent().attr('uid');
	var operator =  ( o.hasClass('Minus') ? '-' : '+' ) ;
	
	// Отправляем данные
	$.post('/a/ratepost/', { "id": id, "operator": operator }, Urssus.RateEvent );
}

Urssus.AjaxAnswer = function( answer ){
	var data;
	try{
		data = eval("("+answer+")");
	}catch (e) {
		Urssus.JSError( Urssus.Msg.transfer_error );
		return false;
	}
	
	if ( !data.answer || data.answer == 'error' ){
		if ( Urssus.Msg[ data.data ] ) Urssus.JSError( Urssus.Msg[ data.data ] );
		else Urssus.JSError( Urssus.Msg.unexpected );
		return false;
	}	
	
	return data;
}

Urssus.RateEvent = function( input ){
	var data = Urssus.AjaxAnswer( input );
	if ( data == false ) return;
	
	//console.log(data);
	var o = $('.Pointer[uid='+data.data.id+']');
	o.find('.Operator').css('visibility','hidden');
	o.find('.Rank').text( Math.floor( data.data.current * 10 ) );
	
	Urssus.IWindow( 'success', Urssus.Msg.message, Urssus.Msg.rate_success );
}


Urssus.SendComment = function(){
	// Getting text of comment
	var comment_text = $('#comment_text').attr('value');

	if ( !comment_text || comment_text.length < 5 ) {
		Urssus.JSError( Urssus.Msg.short_comment );
		return;
	}

	var o = $('.Pointer');
	var id = o.attr('uid');
	
	if ( !id ) {
		Urssus.JSError( Urssus.Msg.unexpected );
		return;
	}
	
	// Отправляем данные
	$.post('/a/addcomment/',{ "text": comment_text, "entry": id }, Urssus.CommentEvent );
}

Urssus.CommentEvent = function( answer ){
	var data = Urssus.AjaxAnswer( answer );
	if ( data == false ) return;
	
	// Очищаем поле ввода
	$('#comment_text').attr('value','');

	Urssus.SelfRedirect( "#com"+data.data );
}

$( Urssus.Autorun );

