var point = '';
var locker = false;
var reInt = /\d+/;
var curDate = new Date();
var curYear = curDate.getFullYear();

function toggle_chapters (point) {
	var point;
	$.cookie('chapter', point);
	$('div[@class=main]').hide();
	$('a[@id^=menu_]').removeClass();
	$('a[@id=menu_' + point + ']').addClass('active');
	$('#' + point).show();
	if (point == 'guest') $.getJSON ('scripts/guest.php', make_guest);
}

function make_guest (obj) {
	var obj, person, time, text;
	var html = '';
	for (row in obj) {
		person = (obj[row]['person']) ? obj[row]['person'] : '';
		time = (obj[row]['time']) ? obj[row]['time'] : '';
		text = (obj[row]['text']) ? obj[row]['text'] : '';
		html += '<div class="row"><span class="title">' + person + '</span>';
		html += '<span class="date">' + time + '</span>';
		html += '<p>' + text + '</p></div>';
	}
	html += '<br />';
	if ($('#guest div').find('[@class=row]')) {
		$('#guest div [@class=row]').remove();
		$('#guest div br').remove();
	}
	$('#guest div').append(html);
}

function insert_new (str) {
	var str, html = '';
	eval('var obj = ' + str);
	html += '<div class="row"><span class="title">' + obj[0]['person'] + '</span>';
	html += '<span class="date">' + obj[0]['time'] + '</span>';
	html += '<p>' + obj[0]['text'] + '</p></div>';
	$('#guest form').after(html);
}

function switch_song (str) {
	var str;
	$('[@id^=song_]').hide();
	$('[@id=song_' + str + ']').show();
}

function show_note (obj, kit, pretext) {
	var obj, pretext;
	var kit = parseInt(kit);
	var Notes = new Array ( '',
	                        'Нажмите для получения большей информации',
	                        'Нажмите для просмотра следующей',
	                        'Добавить запись в &laquo;Гостевую&raquo;');
	var text = (pretext ? pretext + '. ' : '') + Notes[kit];
	if (!locker) {
		$('#floating').show();
		$('#floating').html(text);
		$(obj).mousemove(function (e) {
			if ( e.pageY && e.pageX ) {
				$('#floating').css('top', e.pageY + 20);
				$('#floating').css('left', e.pageX + 15);
			} else {
				$('#floating').css('top', e.clientY + 20);
				$('#floating').css('left', e.clientX + 15);
			}
		});
	}
}

function hide_note () {
	$('#floating').hide();
}

function show_player (num, filename, filesize) {
	var num, filename, filesize;
	var rand = parseInt(Math.random() * 100000);
	var flash = '<div id="player"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ';
	flash += 'width="482" height="75"><param name="movie" value="images/audioPlayer.swf?rand=' + rand + '" />';
	flash += '<param name="FlashVars" value="postname=' + filename + '&postsize=' + filesize + '" /><param name="quality" value="high" />';
	flash += '<embed src="images/audioPlayer.swf?rand=' + rand + '" FlashVars="postname=' + filename + '&postsize=' + filesize + '" quality="high" width="482" height="75" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	flash += '</embed></object></div>';
	hide_player();
	$('#tosong_' + num).parent().after(flash);
	$('#floating').hide();
	locker = true;
}

function hide_player () {
	$('[@id=player]').hide();
	locker = false;
}

function transform_num (str, method, start, end) {
	var str, method, start, end, num;
	var prefix = str.split(reInt)[0];
	var suffix = str.split(reInt)[1];
	var current = parseInt(str.match(reInt)[0]);
	num = (method) ? current + 1 : current - 1;
	if (num < start) num = end;
	else if (num > end) num = start;
	if (num < 10) num = '0' + num;
	return (prefix + num + suffix);
}

function change_thumbs (obj, method, start, end, curNum) {
	var obj, method, start, end, curNum, link;
	$(obj).each( function() {
		link = $(this).children('img').attr('src');
		$(this).children('img').removeAttr('width');
		$(this).children('img').removeAttr('height');
		$(this).children('img').attr('src', transform_num(link, method, start, end));
		if ($(this).children('img').attr('src').search(curNum) == -1) $(this).css('border-color', '#222222');
		else $(this).css('border-color', '#666666');
	});
}

function change_big (bigObj, num) {
	var bigObj, curNum, link, current;
	$(bigObj).hide();
	$(bigObj).removeAttr('width');
	$(bigObj).removeAttr('height');
	var start = parseInt($(bigObj).attr('first'));
	var end = parseInt($(bigObj).attr('last'));
	link = $(bigObj).attr('src');
	current = (num) ? link.replace(reInt, num) : transform_num(link, 1, start, end);
	var curNum = current.match(reInt)[0];
	$(bigObj).attr('src', current);
	var obj = $(bigObj).parents('.photo_holder').find('td[@width=120]');
	change_thumbs(obj, 1, start, end, curNum);
}

$(document).ready( function () {
	// load chapter
	var chapter = ($.cookie('chapter')) ? $.cookie('chapter') : 'music';
	toggle_chapters(chapter);
	// actions of navigation buttons
	$('.navi').children('img').hover( function() {
		($(this).attr('src') == 'images/prevBtn.gif') ? $(this).attr('src', 'images/prevBtnUp.gif') : $(this).attr('src', 'images/nextBtnUp.gif');
	}, function() {
		($(this).attr('src') == 'images/prevBtnUp.gif') ? $(this).attr('src', 'images/prevBtn.gif') : $(this).attr('src', 'images/nextBtn.gif');
	});
	$('.navi').children('img').click( function() {
		var method = ($(this).attr('src').indexOf('next') != -1) ? 1 : 0;
		var rangeObj = $(this).parents('.photo_holder').find('img[@first]');
		var start = parseInt(rangeObj.attr('first'));
		var end = parseInt(rangeObj.attr('last'));
		var curNum = rangeObj.attr('src').match(reInt)[0];
		var obj = $(this).parent().siblings('td[@width=120]');
		change_thumbs(obj, method, start, end, curNum);
	});
	// actions of big image
	$('img[@first]').click( function() {
		change_big($(this));
	});
	$('img[@first]').load( function() {
		$(this).fadeIn(500);
	});
	$('img[@first]').hover( function() {
		var qty = parseInt($(this).attr('last')) - parseInt($(this).attr('first')) + 1;
		var its = qty - (parseInt($(this).attr('last')) - parseInt($(this).attr('src').match(reInt)[0]));
		var addit = 'Фотография ' + its + ' из ' + qty;
		show_note($(this), 2, addit);
	}, function() {
		hide_note();
	});
	// actions of thumbnails
	$('td[@width=120]').click( function() {
		var curNum = $(this).children('img').attr('src').match(reInt)[0];
		var bigObj = $(this).parents('.photo_holder').find('img[@first]');
		change_big(bigObj, curNum);
	});
	// actions of add the message
	$('#add_msg').hover( function() {
		show_note($(this), 3);
	}, function() {
		hide_note();
	});
	// other...
	$('#add_msg').click( function() {
		($('#guest_form').css('display') == 'none') ? $('#guest_form').show() : $('#guest_form').hide();
	});
	$('#guest_form [@class=close]').click( function() { $('#guest_form').hide() } );
	$('#guest_btn').click( function() {
		var fld1 = $('#guest_form [@name=name]').val();
		var fld2 = $('#guest_form [@name=text]').val();
		/*if (!form_validator('#guest_form [@name=name]', 32) || !form_validator('#guest_form [@name=text]', 3000))
		    return false;*/
		$.post ('scripts/guest.php', {name: fld1, text: fld2}, insert_new);
		$('#guest_form [@name=name]').val('');
		$('#guest_form [@name=text]').val('');
		$('#guest_form').hide();
	} );
	// needed form validator
});

function form_validator (obj, max) {
	var obj, max, msg = false, text = '';
	var regexp = /<[a-zA-Z]+>/gim;
	text = $(obj).val();
	if (text.length < 1) msg = 'Поля не должны быть пустыми!';
	else if (text.length > max) msg = 'Привышена максимальная длина текста (' + max + ' символов)!';
	else if (text.test(regexp)) msg = 'Не используйте теги HTML!';
	if (msg) {
		alert(msg);
		return false;
	}
}
