var tagstripspeed = 200;
var sripwidth = 0;
var newsbytagdivactive = 0;

function changeNBTBlock(obj) {
	tagdata = $(obj).attr('tagdata').split('_');
	obj = obj.id.split('_');
	$('#newsbytagdiv_' + newsbytagdivactive).hide();
	$('.newsbytaglnk').removeClass('selected_tag').css('background', 'none');
	$('#newsbytagimg_' + newsbytagdivactive).attr('src',
			STATIC_BASE_PATH + 'images/tagtypes/none.png');

	$('#newsbytaglnk_' + obj[1]).addClass('selected_tag').css(
			'background',
			// tagcolours[tagdata[1]]+'
			// url('+STATIC_BASE_PATH+'images/tagtypes/'+tagdata[0]+'.png) 2px
			// 4px no-repeat'
			tagcolours[tagdata[1]] + ' url(' + STATIC_BASE_PATH
					+ 'images/tagtypes/bg.png)');
	$('#newsbytagimg_' + obj[1]).attr(
			'src',
			STATIC_BASE_PATH + 'images/tagtypes/'
					+ (tagdata[0] ? tagdata[0] : 'none') + '.png');

	$('#newsbytagdiv_' + obj[1]).show();
	newsbytagdivactive = obj[1];
}

function moveTagStrip(where) {
	var elt = $('#tagstrip_strip');
	var cntwidth = $('#tagstrip_cnt').width();
	var target = where * (sripwidth/* elt.width() */- cntwidth);
	var pixelstomove = Math.abs(parseInt(elt.css('margin-left')) + target);
	var movetime = pixelstomove / tagstripspeed;

	// alert('->'+pixelstomove+' '+movetime);
	elt.animate( {
		'margin-left' : -target + 'px'
	}, movetime * 1000);
}

function tagWidgetInit() {
	setTimeout('_tagWidgetInit()', 500);
}

function _tagWidgetInit() {
	if (newsbytagdivactive === 0) {
		newsbytagdivactive = 1;
	}
	$('.newsbytaglnk').click(function() {
		changeNBTBlock(this);
		return false;
	});
	changeNBTBlock(document.getElementById('newsbytaglnk_1'));
	var cntw = $('#tagstrip_cnt').width();
	sripwidth = $('#tagstrip_strip').width();

	if (cntw < parseInt(sripwidth)) {
		$('#ts_larr').hover(function() {
			moveTagStrip(false)
		}, function() {
			$('#tagstrip_strip').stop();
		});
		$('#ts_rarr').hover(function() {
			moveTagStrip(true)
		}, function() {
			$('#tagstrip_strip').stop();
		});
		$('#tagarrowz_cnt').show();
	}
}

function gotolink(link, id) {
	$.post('/ajax', {
		func : 'upadtepostclix',
		id : id
	});
	document.location = link;
}

$(document).ready(
		function() {
			$('.sourcespan').each(
					function() {
						var t = $(this);
						t.removeClass('sourcespan');
						var tclass = t.attr('class');
						t.replaceWith($('<a href="' + t.attr('rel') + '" class="'+tclass+'">'
								+ t.html() + '</a>'));
					});
			
			// Main new images sizer
			var mimg = $('#mainnewimage');
			
			mimg.one('load',function(){
				var mncnt = $('#mainnewcontainer');
				
				mimg.css('max-width','50%');
				
				if (mimg.width() >= (mncnt.width()/2))
				{
					mimg.css('width','50%');
				}
			}).each(function(){
				if(this.complete)
				{
					$(this).trigger("load");
				}
			});
			// Main page cloud switchers
			$('#tc_switcher_cnt img.tc_switcher').click(cloudSwitcher);
		});

function userAction(id, action) {
	// Hiding controls
	$('#rating_controls').fadeOut(300);
	$('#marx_controls').animate({opacity:0},300,function(){$('#marx_controls').slideUp(300)});
	
	$.post('/ajax/', {
		func : 'useractions',
		id : id,
		action : action
	}, function(data) {
		if (data.status == 'ok' && (action == 'rating_up' || action == 'rating_down'))
		{
			$('#rating_cnt').html((data.data>0?'+':'')+data.data).attr('class','newrating_'+(data.data>0?'p':(data.data<0?'m':'n')));
		}
	}, 'json');
}

function showCommentsblock()
{
	var e = $('#commentsblock');
	$('#showCommentsblock').hide();
	$('#hideCommentsblock').show();
	e.slideDown(500);
}

function hideCommentsblock()
{
	var e = $('#commentsblock');
	$('#hideCommentsblock').hide();
	$('#showCommentsblock').show();
	e.slideUp(500);
}

function gotoCommentsblock()
{
	$('#commform').stop().slideDown(500);
	location.href=location.href.replace(/#.*$/g,'') + '#addcommform';
}

function toggleCommForm ()
{
	var e = $('#commform');
	e.stop();
	if (e.css('display') == 'block')
	{
		e.slideUp(500);
	}
	else
	{
		e.slideDown(500);
	}
}

function sendCommentForm()
{
	$('#sendcommbtn')
	.attr('onclick','')
	.css('opacity',0.5);
	$('#commloader').show();
	document.getElementById('commentform').submit();
}

function cal_month_b()
{
	var d  = new Date(cal_shy,cal_shm - 1,1,0,0,0,0);

	_cal_processor(d);
}

function cal_month_f()
{
	var d  = new Date(cal_shy,cal_shm + 1,1,0,0,0,0);

	_cal_processor(d);
}

function cal_year_b()
{
	var d  = new Date(cal_shy - 1,cal_shm,1,0,0,0,0);

	_cal_processor(d);
}

function cal_year_f()
{
	var d  = new Date(cal_shy + 1,cal_shm,1,0,0,0,0);
	
	_cal_processor(d);
}

function _cal_processor(d)
{
	// Optionally hiding arrows - forward
	if (d.getFullYear() >= now.getFullYear())
	{
		$('#calimg_y_f').hide();
	}
	else
	{
		$('#calimg_y_f').show();
	}
	if (d.getMonth() >= now.getMonth() && d.getFullYear() >= now.getFullYear())
	{
		$('#calimg_m_f').hide();
	}
	else
	{
		$('#calimg_m_f').show();
	}
	
	// Optionally hiding arrows - back
	if (d.getFullYear() <= (now.getFullYear() - 2))
	{
		$('#calimg_y_b').hide();
	}
	else
	{
		$('#calimg_y_b').show();
	}
	if (d.getMonth() <= 0 && d.getFullYear() <= (now.getFullYear() - 2))
	{
		$('#calimg_m_b').hide();
	}
	else
	{
		$('#calimg_m_b').show();
	}
	
	if (d > new Date() || d.getFullYear() < (now.getFullYear() - 2))
	{
		return;
	}
	
	cal_shm = d.getMonth();
	cal_shy = d.getFullYear();
	
	_cal_redraw_everything(d);
}

function _cal_redraw_everything(d)
{
	var r =
		'<table class="calendar" cellspacing="1px" cellpadding="0px" id="calendar">'+
			'<tr class="indexrow">'+
				'<td>Пн</td>'+
				'<td>Вт</td>'+
				'<td>Ср</td>'+
				'<td>Чт</td>'+
				'<td>Пт</td>'+
				'<td>Сб</td>'+
				'<td>Вс</td>'+
			'</tr>'+
			'<tr>';
	// checkiong first day
	var dow = d.getDay();
	// Transforming to normal view
	dow = dow==0?7:dow;
	dow -= 2;
	// days count
	var dt = 32 - new Date(d.getFullYear(), d.getMonth(), 32).getDate();
	var counter = dt + dow + 7 - ((dt + dow + 1) % 7);

	var i,j,k;

	j = 0-7;
	k = 0-dow;
	
	for (i=0;i<=counter;i++)
	{
		if (j%7 == 0)
		{
			if (k>dt)
			{
				break;
			}
			r += '</tr><tr'+(j%14 == 0?' class="zebra"':'')+'>';
		}

		r += '<td'+(k==cal_acd && d.getMonth() == cal_acm && d.getFullYear() == cal_acy?' class="current"':(now < new Date(cal_shy,cal_shm,k)?' class="grayed"':''))+'>'+(k<=0 || k>dt?'&nbsp;':k)+'</td>';
		
		j++;
		k++;
	}
	
	r +=	'</tr>'+
		'</table>';

	// Drawing everything
	$('#calendar_t_cnt').empty().append($(r));
	// Setting month
	$('#caldata_m').html(monthnames[d.getMonth()]);
	// Setting year
	$('#caldata_y').html(d.getFullYear());
}

function query_goto()
{
	document.location = '/query/'+encodeURIComponent($('#bigquery_q').val())+'/'+encodeURIComponent($('#bigquery_d').val());
}

function setAC(selector, simple)
{
	$(document).ready(function() {
		$(selector).autocomplete(
			"/ajax/",
			{
				delay:500,
				minChars:3,
				extraParams: {
					returnformat:'forac',
					func:'gettagparenthint',
					id:typeof taghinttagid != 'undefined' ? taghinttagid : 0
				},
				matchSubset:0,
				matchContains:0,
				cacheLength:1,
				lineSeparator:"\n",
				cellSeparator:"##|||##",
				preProcess: typeof simple != 'undefined' && simple ? getLastTagOnlyDel : getLastTag,
				postProcess: typeof simple != 'undefined' && simple ? postprocessACOnlyDel : postprocessAC,
				autoFill:true,
				listCaption:'Подсказки:',
				formatItem:function (row, i, num, srchval) {
					var regexp = new RegExp('('+srchval+')', "gi");
					return row[0].replace(regexp,'<b>$1</b>');
				}
			}
		);
	}
	);
}

var ac_bq_from_list = false;

function getLasdDelSymPos (str,onlydelimiter)
{
	var t1 = 0;
	var t2 = 0;
	var t3 = 0;
	var t4 = 0;
	
	if (typeof tagsdelimiter != 'undefined' && str.lastIndexOf(tagsdelimiter) >= 0)
	{
		t1 = str.lastIndexOf(tagsdelimiter)+tagsdelimiter.length;
	}
	
	if (!onlydelimiter && typeof tagsmerge != 'undefined' && str.lastIndexOf(tagsmerge) >= 0)
	{
		t1 = str.lastIndexOf(tagsmerge)+tagsmerge.length;
	}
	
	if (!onlydelimiter && typeof tagsdisclaimer != 'undefined' && str.lastIndexOf(tagsdisclaimer) >= 0)
	{
		t1 = str.lastIndexOf(tagsdisclaimer)+tagsdisclaimer.length;
	}
	
	if (!onlydelimiter && typeof tagsrelevant != 'undefined' && str.lastIndexOf(tagsrelevant) >= 0)
	{
		t1 = str.lastIndexOf(tagsrelevant)+tagsrelevant.length;
	}
	
	return Math.max(t1,t2,t3,t4)
}

function getLastTag(str)
{
	return str.slice(getLasdDelSymPos(str,false)).replace(/^\s+|\s+$/g,"");
}

function getLastTagOnlyDel(str)
{
	return str.slice(getLasdDelSymPos(str,true)).replace(/^\s+|\s+$/g,"");
}

function getStringWOLastTag (str,onlydel)
{
	return str.slice(0,getLasdDelSymPos(str,onlydel));
}

function postprocessACOnlyDel(original,selected)
{
	ac_bq_from_list = true;
	return getStringWOLastTag (original,true)+selected+tagsdelimiter;
}

function postprocessAC(original,selected)
{
	ac_bq_from_list = true;
	return getStringWOLastTag (original,false)+selected;
}

function setBigQueryProcessor(class_adder)
{
	$('#bigquery_q')
		.keypress(function(e) {
			var kk = navigator.appName == 'Netscape' ? e.which : e.keyCode;
			
			if (kk == '13')
			{
				if (
						!$('div.ac_results').length ||
						!ac_bq_from_list
					)
				{
					e.preventDefault();
					query_goto();
				}
				
				ac_bq_from_list = false;
				
				return;
			}
		})
		.keyup(function(e) {
			class_adder = class_adder || '';
			
			if ($('#bigquery_q').val().replace(/^\s+|\s+$/g,'') != oldquery)
			{
				$('#bigquery_btn').fadeIn(300);
				$('#bigquery_q').addClass('bigquery'+class_adder.toString()+'_wbtn');
//					.css('width','612px')
//					.css('padding-right','115px');
			}
			else
			{
				$('#bigquery_btn').fadeOut(300);
				$('#bigquery_q').removeClass('bigquery'+class_adder.toString()+'_wbtn');
//					.css('width','100%')
//					.css('padding-right','2px');
			}
		});
}

function mFlipTabs (c,id)
{
	$('div.'+c).addClass('roundedtab').removeClass('roundedtab_a');
	$('div.d_'+c).hide();
	$('#d_'+id).show();
	$('#'+id).addClass('roundedtab_a');
}

function toggleTagHowto()
{
	var b = $('#tsht_bubble');
	var i = $('#tsht_bubble_arrow');
	if (b.css('display') == 'none')
	{
		b.fadeIn(500);
	}
	else
	{
		b.fadeOut(500);
	}
}

m_ln_refresh = false;
m_ln_imguse  = false;
function initLastnewsUpdater (timeout,useimages)
{
	m_ln_imguse  = useimages;
	timeout = 10000;
	timeout = parseInt(timeout);
	if (isNaN(timeout))
	{
		return;
	}
	m_ln_refresh = setInterval(getLastNews,timeout);
}

function getLastNews() {
	var speed = 300;
	
	$.post(
			'/ajax/',
			{
				func : 'refreshmainlatest'
			},
			function(data) {
				if (data.status == 'ok')
				{
					//var lastnewsids = [];
					var c = data.data.length;
					for (var i = 0; i < c; i++)
					{
						// Looking for existent id
						var ic = lastnewsids.length;
						var f = false;
						for (var j = 0; j < ic; j++)
						{
							if (parseInt(lastnewsids[j]) == parseInt(data.data[i].id))
							{
								f = true;
								break;
							}
						}
						
						if (f)
						{
							continue;
						}
						
//						if (lastnewsids.indexOf(parseInt(data.data[i].id)) != -1)
//						{
//							continue;
//						}
						//alert(STATIC_BASE_PATH+'images/latestnewslistdot_'+data.data[i].grade);
						lastnewsids.push(parseInt(data.data[i].id));
						
						var elt = $('<li style="display:none;opacity:0;" class="m_ln_new"><img src="'+STATIC_BASE_PATH+'images/latestnewslistdot_'+data.data[i].grade+'.png" class="latestnewslistdotimg"/>'+
								'<a href="/news/'+data.data[i].id+'" class="lastnewsmain">'+
								(data.data[i].image && m_ln_imguse?
						'<img src="'+data.data[i].image+'" class="lastnewslistimg"/>'
						:'')+
						data.data[i].title+
					'</a></li>');
						$('#lastnewslist').prepend(elt);
					}
					$('.m_ln_new').each(function(){
						var t = $(this);
						t.slideDown(speed,function(){t.animate({opacity:1},speed)});
					});
				}
			},
			'json'
		);
}

function cloudClick()
{
	var bq = $('#bigquery_q');
	var t = $(this);
	var ta=document.createElement("textarea");
	ta.innerHTML=t.html().replace(/</g,"&lt;").replace(/>/g,"&gt;");
	
	var oldval = bq.val().replace(/^\s+|\s+$/g,'');
	
	var val = (oldval == '' || oldval == bq_def? '' : oldval+tagsrelevant)+ta.value;
	
	bq.val(val).addClass('bigquery_s_wbtn').removeClass('bigquery_ia');
	$('#bigquery_btn').fadeIn(300);
	return false;
}

function cloudSwitcher()
{
	var speed = 500;
	
	var t = $(this);
	var show = (t.attr('id').split('_'))[2];
	
	// removing selected from old one
	if (t.hasClass('tc_switcher_a'))
	{
		return;
	}
	
	$('#tc_switcher_cnt img.tc_switcher_a').each (function(){
		var a = $(this);
		var remcloud = (a.attr('id').split('_'))[2];
		// Correcting src
		var srcimg = a.attr('src').split('/');
		srcimg = (srcimg[srcimg.length-1].split('_'))[0];
		a.attr('src',STATIC_BASE_PATH+'images/cloudswitchers/'+srcimg+'.png').removeClass('tc_switcher_a');

		// moving out cloud
		$('#tagcloud_'+remcloud).slideUp(speed);
	});
	
	var srcimg = t.attr('src').split('/');
	srcimg = (srcimg[srcimg.length-1].split('.'))[0];
	t.attr('src',STATIC_BASE_PATH+'images/cloudswitchers/'+srcimg+'_h.png').addClass('tc_switcher_a');
	
	// Moving in cloud
	$('#tagcloud_'+show).slideDown(speed);
}

function ocloseArbuseWindow()
{
	var e = $('#arbusetable');
	if (e.is(':hidden'))
	{
		e.slideDown('slow');
	}
	else
	{
		e.slideUp('slow');
	}
}

function sendArbuse(id)
{
	var flds = ['fio','mail','company','text'];
	var error = false;
	var data = {};
	for (var i = 0; i < flds.length; i++)
	{
		var fld = flds[i];
		
		$("#row_"+fld).removeClass('error');
		$("#error_"+fld).hide();
		
		if ($.trim($("#"+fld).val()).length < 3)
		{
			error = true;
			$("#row_"+fld).addClass('error');
			$("#error_"+fld).show();
		}
		
		data[fld] = $("#"+fld).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	}
	
	if (!error)
	{
		$.post('/ajax/', {
			func : 'arbuse',
			id : id,
			data : data
		}, function(data) {
			if (data.status=='ok')
			{
				$('#arbusetable').slideUp(300);
				$('#arbuselink').slideUp(300);
				$('#abuseblock'+(data.data.trusted?'_t':'')).show(300);
			}
			else
			{
				for (var i = 0; i < data.data.length; i++)
				{
					var fld = data.data[i];
					$("#row_"+fld).addClass('error');
					$("#error_"+fld).show();
				}
			}
		}, 'json');
	}
}
