// =====================================comment-form
function nominateProgram() {
	var sLink = $('#programLink').val();
	$.get( sLink, function(data){
		if (data=='true'){
			$('#nominateProgramForm').text('Программа отложена на проверку модератором премии');
		}else{
			$('#nominateProgramForm').text('Ошибка номинирования');
		}
	});
}

function checkComment( previewUrl, urlGetCaptcha ) {
	$.post( previewUrl, 
			{ comment: $('#editor').val() }, 
			function ( data ) {
				var answer = eval( '(' + data + ')' );
				if ( answer.err ) {
					showFloatWindow('error', answer.mess );
				} else {
					showFloatWindow('success', answer.mess );
					$("#preview").html( answer.comment_text );
				}

				if ( answer.need_captcha ) {
					showFloatWindow('error', answer.mess );
					refreshCaptcha( urlGetCaptcha );
				}
			});
}

function refreshCaptcha( urlGetCaptcha ) {
	$.post( urlGetCaptcha, 
			function( data ){
				var captcha = eval( '(' + data + ')' );
				$("#captcha").html('<p><small>Введите символы с картинки в поле напротив</small></p><img src="'+ captcha.URL + '" alt="" style="float:left;margin-right: 10px;"><input type="text" id="captcha-check" value=""><br><a href="javascript:refreshCaptcha( \''+urlGetCaptcha+'\' );">обновить</a>');
	});
}


function formatDate( sDate ) {
	var aMonths = new Array( '', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря' );
	var aDate = sDate.substr(0,10).split('-',3);
	var sTime = sDate.substr(11,5);
	return sTime +', ' + eval( parseInt(aDate[2]) )+' '+aMonths[ parseInt(aDate[1]) ]+' '+aDate[0]+'г.';
}



function buildCommentBrunch( aComments, bFirst, bCanComment, iDepth ) {

	iDepth++;
	var sRefreshed = '';
	for (iKey in aComments) {
		sRefreshed += '<div id="comment-'+ aComments[iKey].id + '" class="b-nominant-comment' + (iDepth > 1 ? ' m-inner' : '') + '" ' + (iDepth > 1 ? 'style="display: none;"' : '') + '> \
                        <div class="b-nominant-comment__avatar"><img class="b-nominant-comment__avatar_img" width="40" height="40" src="'+( aComments[iKey].avatar ? aComments[iKey].avatar : '/award/img/_avatar.png' )+'" alt="'+aComments[iKey].username+'" title="'+aComments[iKey].username+'" /></div> \
                        <div class="b-nominant-comment__text">\
                            <div class="b-nominant-comment__post-info">\
                                <a href="'+aConfig.urlUserPage+'/'+aComments[iKey].user_id+'">'+aComments[iKey].username+'</a> &ndash; <span class="b-nominant-comment__date">('+formatDate( aComments[iKey].create_date )+')</span> <a href="#comment-'+aComments[iKey].id+'">#</a> <span id="rating-'+aComments[iKey].id+'">Рейтинг <strong>'+aComments[iKey].rating+'</strong></span>\
                                '+( aComments[iKey].can_vote == 'true' && aComments[iKey].deleted == 0 && aConfig.userId != aComments[iKey].user_id ? '<a href="#" onclick="ratingUp('+aComments[iKey].id+'); return false;" class="b-ico b-rating_up"></a><a href="#" onclick="ratingDown('+aComments[iKey].id+'); return false;" class="b-ico b-rating_down"></a>' : '') + '\
                            </div>\
                            <div class="b-nominant-comment__post-content">\
                                '+( aComments[iKey].deleted == 0 ? aComments[iKey].text : '<div class="b-nominant-comments__warning">Комментарий удален</div>' )+'\
                            </div>\
                        </div>\
                        <div class="b-nominant-comment_btns">';
		if ( bFirst && aComments[iKey].childNodes.length !== 0 ) {
			sRefreshed += '<span class="b-comment_btn"><a href="#comment-'+aComments[iKey].id+'" onclick="$(\'#comment-'+aComments[iKey].id+'\').children(\'.b-nominant-comment\').show();$(this).hide();return false;">Развернуть ветку</a></span> ' + ( bCanComment ? '<span class="b-comment_btn"><a href="#add" onclick="answerClick('+aComments[iKey].id+', \'form-'+aComments[iKey].id+'\'); return false;">Ответить</a></span>' : '');
		} else {
			sRefreshed += ( bCanComment ? '<span class="b-comment_btn"><a href="#add" onclick="answerClick('+aComments[iKey].id+', \'form-'+aComments[iKey].id+'\'); return false;">Ответить</a></span>' : '');
		}
        sRefreshed += '</div>';
        sRefreshed += '<div id="form-' + aComments[iKey].id + '"></div>';
        var aChild = aComments[iKey].childNodes;
        sRefreshed += buildCommentBrunch( aChild, false, bCanComment, iDepth );
		sRefreshed += '</div>';
	}
	return sRefreshed;
}



function refreshComments( sDivId, urlCommentTree ) {
	$.post( urlCommentTree,
			function( data ){
				var comments = eval( '(' + data + ')' );
				var sTree = buildCommentBrunch( comments, true, aConfig.bCanComment, 0 );
				if ( sTree != '' ) {
					$( '#'+sDivId ).html( sTree );
				}
			});
}


function answerClick( parent, formId ) {
	$('#parent-id').val( parent );
	$('#preview').parent().html('');
    $('#preview').removeClass('comment-form');
	$('#'+formId).html( drawCommentForm() );
    $('#'+formId).addClass('comment-form');
	return true;
}


function drawCommentForm( ) {
	var sForm = '<div id="preview"></div><div class="comment-form b-textarea"><textarea id="editor"></textarea></div><div style="overflow:hidden;width:100%;" id="captcha"></div>';
	sForm += '<div class="b-rate__item b-rate__item_max"><a class="b-rate__item_in" href="#" onclick="sendButtonClick( \''+aConfig.urlCommentGet+'\', \''+aConfig.urlCommentAdd+'\', \''+aConfig.urlCommentTree+'\', \''+aConfig.entity+'\', '+aConfig.entityId+' ); return false;">Написать</a></div>';
	return sForm;
}



function sendButtonClick(){
	$('#preview').html('<img src="/award/img/ajax-loader.gif" alt="">');
	
	$.post( aConfig.urlCommentAdd, 
			{ 	comment : $('#editor').val(),
				check :  ( $('#captcha-check').length != 0 ? $('#captcha-check').val() : '' ),
				parent : $('#parent-id').val(),
				entity : aConfig.entity,
				entityid : aConfig.entityId },
			function ( data ) {
				var answer = eval( '(' + data + ')' );
				if ( answer.err ) {
					if ( answer.need_captcha ) {
						refreshCaptcha( aConfig.urlCommentGet );
					}
					showFloatWindow('error', answer.mess );
					$('#preview').html('');
				} else {
					$("#preview").html('');
					$("#captcha").html('');
					$("#editor").val('');
					$('#parent-id').val( 0 );
					$('#comment-form').hide();
					showFloatWindow('success', answer.mess );
					refreshComments( aConfig.container, aConfig.urlCommentTree );
				}
			});
}



function showFloatWindow( sClass, sText ) {
	var sTitle = '';
	var sUiClass = '';
	switch ( sClass ) {
		case 'error':
			sTitle = 'Ошибка';
			sUiClass = 'ui-state-error';
			sUiIcon = 'ui-icon-alert';
		break;
		default:
			sTitle = 'Информация';
			sUiIcon = 'ui-icon-info';
		break;
	}
	$('#uiDialog').html( '<span class="ui-icon '+sUiIcon+'" style="float: left; margin-right: 0.3em;"/>' + sText ).dialog({title: sTitle, dialogClass: sUiClass}).dialog('open');
}



function ratingUp( iComment ) {
	return ratingChange( iComment, 1 );
}

function ratingDown( iComment ) {
	return ratingChange( iComment, -1 );
}


function ratingChange( iComment, val ) {
	$.post(
			aConfig.urlCommentChange,
			{ 	change: val,
				id: iComment },
			function ( data ) {
					
				var oErr = eval( '('+data+')' );
				var jq = $('span#rating-'+iComment);
				
				if ( oErr.err ) {
					showFloatWindow('error', oErr.mess );
				} else {
					jq.children('a').remove();
					jq.children('strong').text( oErr.val );
					showFloatWindow('success', oErr.mess );
				}
			}
	);
}

//=========================================vote

function addVote( iVote ) {
	$.post( oVoteConfig.sVoteUrl, 
			{score:iVote,
			check : $('#captcha-check').val() },
			function(data){
				var oErr = eval( '(' + data + ')' );
				switch ( oErr.code ) {
					case 1: /* captcha error */
						refreshCaptcha( oVoteConfig.urlCaptchaGet );
						showFloatWindow('error', oErr.error );
					break;
					case 2: /* success */
						$("#captcha").html('');
						$("#vote-form").html('').hide();
						showFloatWindow('success', oErr.error );
						$("#rating").html( oErr.rating );
					break;
					default: /* default error */
						showFloatWindow('error', oErr.error );
					break;
				}			}
	);
	
}

//=========================================slider

function slHideError(sID) {
	this.document.getElementById('e'+sID).style.display='none';
	this.document.getElementById(sID).focus();
}

//=========================================SMS

function showTimer( sId, iTime ){
	var oExpDate = new Date( iTime );
	var jqObj = $( '#'+sId );
	var oInterv = setInterval(function(){
		var oCurrentDate = new Date();
		if ( oCurrentDate < oExpDate ) {
			var iSec = Math.round( ( oExpDate - oCurrentDate ) / 1000 );
			jqObj.html( Math.floor( iSec / 60 ) + ':' + ( iSec % 60 < 10 ? '0' + iSec % 60 : iSec % 60 )  );
		} else {
			jqObj.parent("*").remove();
			clearInterval( oInterv );
			window.location.reload( false );
		}
	}, 1000 );
	return oInterv;
}

function showAllCommants()
{
    $("div.b-nominant-comment:hidden").toggle();
    $('#show_all').toggle();
}
