function Openid(id)
{
	var div = "";

	// Check browser compatibility
	if(document.getElementById)
	{
		div = document.getElementById(id);
	}
	else if(document.all)
	{
		div = document.all[id];
	}
	else if(document.layers)
	{
		div = document.layers[id];
	}
	else
	{
		return 1;
	}

	if (!div)
	{
		return 1;
	}
	else if (div.style)
	{
		div.style.display = "";
	}
	else
	{
		div.visibility = "show";
	}
}

function Closeid(id)
{
	var div = "";

	// Check browser compatibility
	if(document.getElementById)
	{
		div = document.getElementById(id);
	}
	else if(document.all)
	{
		div = document.all[id];
	}
	else if(document.layers)
	{
		div = document.layers[id];
	}
	else
	{
		return 1;
	}

	if (!div)
	{
		return 1;
	}
	else if (div.style)
	{
		div.style.display = "none";
	}
	else
	{
		div.visibility = "hidden";
	}
}

function ShowComment(id)
{
	Closeid('hidden'+id);
	Closeid('show'+id);
	Openid('post'+id);
	Openid('reply'+id);
}

function switchClass( objNode, strCurrClass, strNewClass ) {
	if ( matchClass( objNode, strNewClass ) ) replaceClass( objNode, strCurrClass, strNewClass );
		else replaceClass( objNode, strNewClass, strCurrClass );
}

function removeClass( objNode, strCurrClass ) {
	replaceClass( objNode, '', strCurrClass );
}

function addClass( objNode, strNewClass ) {
	replaceClass( objNode, strNewClass, '' );
}

function replaceClass( objNode, strNewClass, strCurrClass ) {
	var strOldClass = strNewClass;
	if ( strCurrClass && strCurrClass.length ){
		strCurrClass = strCurrClass.replace( /\s+(\S)/g, '|$1' );
		if ( strOldClass.length ) strOldClass += '|';
		strOldClass += strCurrClass;
	}
	objNode.className = objNode.className.replace( new RegExp('(^|\\s+)(' + strOldClass + ')($|\\s+)', 'g'), '$1' );
	objNode.className += ( (objNode.className.length)? ' ' : '' ) + strNewClass;
}

function matchClass( objNode, strCurrClass ) {
	return ( objNode && objNode.className.length && objNode.className.match( new RegExp('(^|\\s+)(' + strCurrClass + ')($|\\s+)') ) );
}

function newVote(type, id, choice){
	if (matchClass(choice, 'voted') || matchClass(choice, 'svoted'))
		return false;

	if (type == 'p' || type == 'c')
	{
		var rtg = '';
		var pls = 'plus';
		var mns = 'minus';
	}
	else if (type = 's')
	{
		var rtg = '_star';
		var pls = 'plus_star';
		var mns = 'minus_star';
	}
	else return false;

	var parent = choice.parentNode;
	if (matchClass(choice, pls))
		var vote = 'plus';
	else if (matchClass(choice, mns))
		var vote = 'minus';
	else return false;

	var plus_btn = (type == 'c') ? document.getElementById('p_'+id).getElementsByTagName('a')[0] : document.getElementById('pb'+rtg);
	var minus_btn = (type == 'c') ? document.getElementById('m_'+id).getElementsByTagName('a')[0] : document.getElementById('mb'+rtg);
	var rating = (type == 'c') ? document.getElementById('r_'+id) : document.getElementById('rating'+rtg);

	addClass(rating, 'loading'); // ставим прелоадер

	var url = "/vote_ajax.php";
	var data = type + "=" + id + "&" + vote + "=" + vote;
	var params = {i:id, v:vote, p:plus_btn, m:minus_btn, r:rating, t:type};

	ajaxLoadPost(url, data, vote_postOnLoad, window, params, vote_postError); // отправляем/получаем данные
	return false;
}

function vote_postOnLoad(ajaxObj, params){
	var id = params.i;
	var vote = params.v;
	var newRating = ajaxObj.responseText;
	var rating = params.r;
	removeClass(rating, 'loading'); // убираем прелоадер

	if(newRating == '')
	{
		return false;
	}
	else if(newRating == 'x1')
	{
		alert('Сообщение не найдено');
		return false;
	}
	else if(newRating == 'x2')
	{
		alert('Ошибка сессии, обновите страницу');
		return false;
	}
	else if(newRating == 'x3')
	{
		alert('Голосовать за свои посты нельзя');
		return false;
	}
	else if(newRating == 'x4')
	{
		alert('Вы не можете голосовать');
		return false;
	}
	else if(newRating == 'x5')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x6')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x7')
	{
		alert('Время голосования истекло');
		return false;
	}
	else if(newRating == 'x8')
	{
		return false;
	}
	else if(newRating == 'x9')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x10')
	{
		alert('Ошибка SQL');
		return false;
	}
	if (newRating.length > 10)
	{
		alert('Ошибка');
		return false;
	}
	var plus_btn = params.p;
	var minus_btn = params.m;
	var type = params.t;
	if (type == 's')
	{
		var star = 's';
	}
	else
	{
		var star = '';
	}

	if (vote == 'plus'){
		addClass(plus_btn, 'voted'); // отмечаем сделанный выбор
		removeClass(minus_btn, star+'voted'); // снимаем отметку о противоположном голосовании
	} else {
		addClass(minus_btn, star+'voted'); // отмечаем сделанный выбор
		removeClass(plus_btn, 'voted'); // снимаем отметку о противоположном голосовании
	}

	rating.innerHTML = newRating.replace('-','–');

	var rstyle = newRating.substr(0,1);
	removeClass(rating, star+'zero');
	removeClass(rating, star+'gold');
	if (type == 'p' || type == 'c') removeClass(rating, 'minus');
	if (type == 'c') removeClass(rating, 'plus');
	if (rstyle == 'g')
	{
		addClass(rating, star+'gold');
	}
	if (rstyle == 's' && type == 'c')
	{
		addClass(rating, 'plus');
	}
	if (rstyle == 'o' || (rstyle == 'm' && type == 's'))
	{
		addClass(rating, star+'zero');
	}
	if (rstyle == 'm' && (type == 'p' || type == 'c'))
	{
		addClass(rating, 'minus');
	}

	rating.innerHTML = (type == 's') ? '' : rating.innerHTML.substr(1);
	plus_btn.blur();
	minus_btn.blur();
}

function vote_postError(ajaxObj, params)
{
	var id = params.i;
	var rating = params.r;
	removeClass(rating, 'loading'); // убираем прелоадер
	alert("There was a problem retrieving the XML data:\n" + ajaxObj.statusText);
}

function vote_contest(choice){
	if (matchClass(choice, 'voted'))
	{
		return false;
	}

	var id = choice.id;

	addClass(choice, 'loading'); // ставим прелоадер

	var url = "/vote_contest.php";
	var data = "p=" + id;
	var params = {i:id, c:choice};

	ajaxLoadPost(url, data, vote_contestOnLoad, window, params, vote_contestError); // отправляем/получаем данные
	return false;
}

function vote_contestOnLoad(ajaxObj, params){
	var id = params.i;
	var choice = params.c;
	var newRating = ajaxObj.responseText;
	removeClass(choice, 'loading'); // убираем прелоадер

	if(newRating == '')
	{
		return false;
	}
	else if(newRating == 'x1')
	{
		alert('Фото не найдено');
		return false;
	}
	else if(newRating == 'x2')
	{
		alert('Ошибка сессии, обновите страницу');
		return false;
	}
	else if(newRating == 'x3')
	{
		alert('Голосовать за свои фото нельзя');
		return false;
	}
	else if(newRating == 'x4')
	{
		alert('Вы не можете голосовать');
		return false;
	}
	else if(newRating == 'x5')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x6')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x7')
	{
		alert('Время голосования истекло');
		return false;
	}
	else if(newRating == 'x8')
	{
		return false;
	}
	else if(newRating == 'x9')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x10')
	{
		alert('Ошибка SQL');
		return false;
	}
	if (newRating.length > 10)
	{
		alert(newRating);
		return false;
	}

	for (i = 0; i < document.getElementsByTagName('strong').length; i++)
	{
		removeClass(document.getElementsByTagName('strong')[i].parentNode, 'voted'); // снимаем отметку о голосоваии со всех кнопок
	}
	addClass(choice, 'voted'); // отмечаем сделанный выбор
	choice.blur();
}

function vote_contestError(ajaxObj, params)
{
	var id = params.i;
	var choice = params.c;
	removeClass(choice, 'loading'); // убираем прелоадер
	alert("There was a problem retrieving the XML data:\n" + ajaxObj.statusText);
}

function vote_editor(choice){
	var id = choice.id.substr(2);

	addClass(choice, 'loading'); // ставим прелоадер

	var url = "/vote_editor.php";
	var data = "p=" + id;
	var params = {i:id, c:choice};

	ajaxLoadPost(url, data, vote_editorOnLoad, window, params, vote_editorError); // отправляем/получаем данные
	return false;
}

function vote_editorOnLoad(ajaxObj, params){
	var id = params.i;
	var choice = params.c;
	var newRating = ajaxObj.responseText;
	removeClass(choice, 'loading'); // убираем прелоадер

	if(newRating == '')
	{
		return false;
	}
	else if(newRating == 'x1')
	{
		alert('Фото не найдено');
		return false;
	}
	else if(newRating == 'x2')
	{
		alert('Ошибка сессии, обновите страницу');
		return false;
	}
	else if(newRating == 'x3')
	{
		alert('Голосовать за свои фото нельзя');
		return false;
	}
	else if(newRating == 'x4')
	{
		alert('Вы не можете голосовать');
		return false;
	}
	else if(newRating == 'x5')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x6')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x7')
	{
		alert('Время голосования истекло');
		return false;
	}
	else if(newRating == 'x8')
	{
		return false;
	}
	else if(newRating == 'x9')
	{
		alert('Ошибка');
		return false;
	}
	else if(newRating == 'x10')
	{
		alert('Ошибка SQL');
		return false;
	}
	if (newRating.length > 10)
	{
		alert(newRating);
		return false;
	}

	if(newRating == 1)
	{
		choice.innerHTML = '<img src="/img/editor_button_pressed.gif" border="0" />';
	}
	else if(newRating == 2)
	{
		choice.innerHTML = '<img src="/img/editor_button.gif" border="0" />';
	}
	choice.blur();
}

function vote_editorError(ajaxObj, params)
{
	var id = params.i;
	var choice = params.c;
	removeClass(choice, 'loading'); // убираем прелоадер
	alert("There was a problem retrieving the XML data:\n" + ajaxObj.statusText);
}


