var BC_OVER = "redbrd";
var BC_OUT = "";

function init() {
	var list = document.getElementById('added');
	if (!list) list = document.getElementById('photolist');
	if (!list) return;

	var item = list.firstChild;
	if (item) {
		for (;item;item=item.nextSibling) {
			if (item.nodeName == '#text') continue;
			var ul = item.getElementsByTagName('UL')[0];
			if (!ul) continue;
			var competitor_id = new String(ul.id).substr(11);
			if (testCompetitor(competitor_id)) {
				$(ul).after('<p>Вы уже голосовали</p>');
				$(ul).remove();
				continue;
			}
			addEvent('mouseover', ul,
				function(e) {
					var obj = (e.fromElement)?e.fromElement:e.target;
					if (!obj) return;
					if (obj.nodeName != 'UL') obj = obj.parentNode;
					setBorderClass(obj, BC_OVER);
				}
			);
			addEvent('mouseout', ul,
				function(e) {
					var obj = (e.fromElement)?e.fromElement:e.target;
					if (!obj) return;
					if (obj.nodeName != 'UL') obj = obj.parentNode;
					var parent=obj.firstChild;
					for (;parent;parent=parent.nextSibling) {
						if (parent.nodeName == 'LI') parent.style.backgroundPosition = "50% 0px";
					}
					setBorderClass(obj, BC_OUT);
				}
			);

			var hearts = ul.getElementsByTagName('LI');

			var i;
			for (i=0; i<hearts.length; i++) {
				addEvent('mouseover', hearts[i],
					function (e) {
						var obj = (e.toElement)?e.toElement:e.target;
						var parent = obj.parentNode.firstChild;
						for (;parent;parent=parent.nextSibling) {
							if (parent.nodeName == 'LI') parent.style.backgroundPosition = "50% 0px";
						}
						for (var s=obj; s; s = s.previousSibling) {
							if (s.nodeName == 'LI') s.style.backgroundPosition = "50% -30px";
						}
					}
				);
				addEvent('click', hearts[i],
					function (e) {
						var obj = (e.srcElement)?e.srcElement:e.target;
						var score;
						var competitor;

						if (obj.firstChild) {
							score = obj.firstChild.nodeValue;
						} else {
							score = obj.nodeValue;
						}
						competitor = new String(obj.parentNode.id).substr(11);
						var uri = window.location.protocol+"//"+window.location.host +'/concurs/';
						$.post(
							uri,
							{
								'competitor': competitor,
								'score': score
							},
							null
						);
						$(obj.parentNode).after('<p>Спасибо, ваш голос учтен!</p>');
						$(obj.parentNode).remove();
						return false;
					}
				);
			}

		}
	}
}

function setBorderClass(obj, color) {
	var s = obj;
	for (;s && s.nodeName != 'A'; s=s.previousSibling);
	//??null???
	if (!s) return;
	if (s.firstChild) s = s.firstChild;
	for (;s && s.nodeName != 'IMG'; s=s.nextSibling);
	s.className = color;
}

function addEvent(name, obj, funct) { // utility function to add event handlers
	if (!obj) return;
	if (navigator.appName == "Microsoft Internet Explorer") {
		obj.attachEvent("on"+name, funct);
	} else {  // is mozilla/netscape
		obj.addEventListener(name, funct, false);
	}
}

function testCompetitor(competitor_id) {
	var competitors = getCookie('competitors');
	if (!competitors) return false;
	var competitors_arr = competitors.split(":");
	for (i=0; i<competitors_arr.length; i++) {
		if (competitors_arr[i] == competitor_id) return true;
	}

	return false;
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}

	return null;
}

$(document).ready(init);

/* Увеличитель изображения */
function showPopup(imagePath, im_w, im_h, description) {
	var base = document.location.protocol + '//' + document.location.host + '';
	if (document.getElementById('photo_full')) $('#photo_full').remove();
	if (document.getElementById('modal_bg')) $('#modal_bg').remove();
	$("body").append("<div id='modal_bg'></div><div id='photo_full' onclick='javascript:$(this).remove();$(\"#modal_bg\").remove();return false;'><img src='"+ base + imagePath + "' id='img_photo_full' width='" +im_w + "' height='"+ im_h +"' title='Щелкните на фото чтобы закрыть' /><br /></div>");
	var cw = document.body.clientWidth;
	/* Установка правил CSS */
	var left = document.body.scrollLeft + (document.body.clientWidth-im_w)/2;
	if (left < 0) left = 0;
	$('#modal_bg').css({
		'background': '#333',
		'height': '100%',
		'width': '100%',
		'top': 0,
		'left': 0,
		'position': 'absolute',
		'z-index': 500,
		'filter': 'progid:DXImageTransform.Microsoft.Alpha(opacity=50)',
		'opacity': '0.5'
	});
	$('#photo_full').css({
		'position': 'absolute',
		'z-index': 700,
		'background': '#fff',
		'padding': '5px',
		'left': left + 'px',
		'top': 50 + document.documentElement.scrollTop + "px"
	});
	$('#img_photo_full')
		.before('<p>Щелкните на фото, чтобы закрыть</p>')
		.after('<p style="width:' + im_w + 'px; margin-bottom:0;">' + description + '</p>');
	$('#photo_full p').css({
		'color': '#999',
		'text-transform': 'uppercase'
	});

	return false;
}
