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);
	Closeid(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 regnow(redirect)
{
	Openid('overlay');
	Openid('regnow'); 
	document.getElementById('regnow').innerHTML = '<p align="center"><a href="" onclick="Closeid(\'overlay\'); Closeid(\'regnow\'); return false;"><img src="/img/loading.gif" border="0"></p>';
	var params = {r:redirect};

	ajaxLoad('/profile.php?mode=register&agreed=true&ajax', regnow_load, window, params, regnow_error);
}

function regnow_load(ajaxObj, params)
{
	var response = ajaxObj.responseText;
	if (response.length < 1)
	{
		Closeid('overlay');
		Closeid('regnow');
		alert('Ошибка');
		return false;
	}
	document.getElementById('regnow').innerHTML = response;
	document.profile.redirect.value = params.r;
}

function regnow_error(ajaxObj, params)
{
	Closeid('overlay');
	Closeid('regnow');
	alert("There was a problem retrieving the XML data:\n" + ajaxObj.statusText);
}

function newVote(id, choice){
	var rating = document.getElementById('votes'+id);
	var orating = document.getElementById('ovotes'+id);
	var oppositeBtn;

	if (choice == 'plus'){
		linkBtn = document.getElementById('plus'+id);
		oppositeBtn = document.getElementById('minus'+id);
	} else {
		linkBtn = document.getElementById('minus'+id);
		oppositeBtn = document.getElementById('plus'+id);
	}
	if(matchClass(linkBtn, 'voted')) return false;
	addClass(rating, 'loading'); // ставим прелоадер
	addClass(orating, 'loading'); // ставим прелоадер

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

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

function voteOnLoad(ajaxObj, params){
	var id = params.i;
	var choice = params.c;
	var newRating = ajaxObj.responseText;

	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 rating = document.getElementById('votes'+id);
	var orating = document.getElementById('ovotes'+id);
	if (choice == 'plus'){
		linkBtn = document.getElementById('plus'+id);
		oppositeBtn = document.getElementById('minus'+id);
	} else {
		linkBtn = document.getElementById('minus'+id);
		oppositeBtn = document.getElementById('plus'+id);
	}
	addClass(linkBtn, 'voted'); // отмечаем сделанный выбор
	removeClass(oppositeBtn, 'voted'); // снимаем отметку о противоположном голосовании 

	rating.innerHTML = newRating.replace('-','–'); 
	orating.innerHTML = newRating.replace('-','–'); 
	removeClass(rating, 'loading'); // убираем прелоадер
	removeClass(orating, 'loading'); // убираем прелоадер

	var rstyle = newRating.substr(0,1);
	removeClass(rating, 'votes');
	removeClass(orating, 'votes');
	removeClass(rating, 'votes_zero');
	removeClass(orating, 'votes_zero');
	removeClass(rating, 'votes_gold');
	removeClass(orating, 'votes_gold');
	removeClass(rating, 'votes_minus');
	removeClass(orating, 'votes_minus');
	if (rstyle == 'g')
	{
		addClass(rating, 'votes_gold');
		addClass(orating, 'votes_gold');
	}
	if (rstyle == 'o')
	{
		addClass(rating, 'votes_zero');
		addClass(orating, 'votes_zero');
	}
	if (rstyle == 'm')
	{
		addClass(rating, 'votes_minus');
		addClass(orating, 'votes_minus');
	}
	if (rstyle == 's')
	{
		addClass(rating, 'votes');
		addClass(orating, 'votes');
	}
	rating.innerHTML = rating.innerHTML.substr(1); 
	orating.innerHTML = orating.innerHTML.substr(1); 
}

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


