var newsTitleClick = function(){
	    var element = $(this).parent().parent().parent(),
	        text    = $('div.text', element);

		if (!text.length) {
			text = getNewsText(element, element.attr('id').substr(5));
		} else {
			toggleNewsText(element, text);
		}
		return false;
};

$(document).ready(function(){
	if ($('div.box.news').length) {
		$('div.box.news table tr td.news a').click(newsTitleClick);

		$('div.box.news ul.year a').click(function(){
			var element = $(this),
				year = element.attr('href').substr(1);

			if (element.parent().is('.active')) {
				return;
			}

			var table = $('div.box.news table#year' + year);
			if (!table.length) {
			    getYearTable(element, year);
			} else {
				toggleYearTable(element, table);
			}
			return false;
		})
	} else if ($('div.box.faq').length) {
	    $('div.box.faq .faqlist .content h2 a').click(function(){
			var id = $(this).attr('href').substr(1);
			$('div.box.faq #faq_' + id + ' div.text').slideToggle('fast');
		});
	}
});

function toggleNewsText(element, text) {
	text.slideToggle('fast', function(){
		if (text.css('display') != 'none') {
			element.addClass('active');
		} else {
			element.removeClass('active');
		}
	});
}

function toggleYearTable(element, table) {
	$('div.box.news table.active').slideUp();
	$.each($('div.box.news ul.year li'), function(id, item) {
	    if ($(item).is('.active')) {
	        $(item).removeClass('active');
		}
	});
    element.parent().addClass('active');
	table.slideDown('fast', function(){
	    table.addClass('active');
	});
	
}

function getNewsText(element, id) {
    var td = $('td.news', element),
        text = $('<div/>', {
			'class' : 'ajaxload'
		});
	text.appendTo(td);
    $.get('news/' + id, '', function(result) {
        text.removeClass('ajaxload')
        .addClass('text')
        .css('display', 'none')
        .html(result);
		toggleNewsText(element, text);
	});
}

function getYearTable(element, year) {
    $('div.box.news table.active').slideUp('fast');
    $.getJSON('news/year/' + year, '', function(result) {
        var table = $('<table />', {
                               'id'    : 'year' + year
                        }).appendTo($('div.box.news'));
        $.each(result, function(id, item){
            var tr = $('<tr/>', {
                                'id' : 'news_' + item.article_id,
                                'style' : 'display: none'
                        });

                        $('<td/>', {
                                'class' : 'date',
                                'html' : '<span>' + item.date + '</span>'
                        }).appendTo(tr);

                        var td = $('<td/>', {
                                'class' : 'news',
                                'html' : '<h2><a href="#">' + item.title + '</a></h2>'
                        });
                        $('a', td).click(newsTitleClick)
                        td.appendTo(tr);
                        tr.delay(id*20).fadeIn('fast');
                        tr.appendTo(table);
                });
        toggleYearTable(element, table);
        });
}
