function ratingstar_reset(type, content_id, lock)
{
	var score = Math.round($('rating_'+type+'_score'+content_id).innerHTML);
	if ( score < 0 || score > 5 ) score = 0;
	for ( var i = 1; i <= 5; i++ ) {
		if ( i <= score ) {
			if ( $('ratingstar'+content_id+'__'+i).hasClass("over") == false ) {
				$('ratingstar'+content_id+'__'+i).addClass("over");
			}
		}
		else {
			$('ratingstar'+content_id+'__'+i).removeClass("over");
		}
		if ( typeof(lock) != 'undefined' && lock ) {
			$('ratingstar'+content_id+'__'+i).onclick = "return false;";
			$('ratingstar'+content_id+'__'+i).onmouseover = "return false;";
			$('ratingstar'+content_id+'__'+i).disabled = true;
		}
	}
}

function update_tweet()
{
	$('field_tweet_status').style.display='block';
	var message = $('field_tweet_message').value;
	if ( message == '' ) {
		alert('Fill in the message field please.');
		return true;;
	}
	new Ajax(virpath+'index.php?hp=1&m=tweet', {
		method: 'post',
		data: {'message':message,'tw_enable':$('field_tw_enable').value,'tw_username':$('field_tweet_username').value,'tw_password':$('field_tweet_password').value},
		onComplete: function(response) {
			var response = response.split("\n");
			if ( response.length == 2 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					$('field_tweet_message').value = '';
					$('field_tweet_status').style.display='none';
					$('tw_options').style.display='none';
					return true;
				}
			}
		}
	}).request();
}

// rating
function ratingstar_toggle(content_id, score, toggle)
{
	for ( var i = 1; i <= score; i++ )
	{
		var obj = $('ratingstar'+content_id+'__'+i);
		obj.src = ( toggle == 'show' ) ? (obj.src).replace(/rate0/, 'rate1') : (obj.src).replace(/rate1/, 'rate0');
	}
}

function ratingstar_togglen(type, content_id, score)
{
	for ( var i = 1; i <= 5; i++ ) {
		if ( i <= score ) {
			if ( $('ratingstar'+content_id+'__'+i).hasClass("over") == false ) {
				$('ratingstar'+content_id+'__'+i).addClass("over");
			}
		}
		else {
			$('ratingstar'+content_id+'__'+i).removeClass("over");
		}
	}
}

function submit_rating_new(type, member_id, content_id, score, url)
{
	$('rating_'+type+'_progress'+content_id).addClass("display");

	new Ajax(virpath+'index.php?m=rateitem', {
		method: 'post',
		data: {'type':type,'score':score,'member_id':member_id,'content_id':content_id},
		onComplete: function(response) {
			var response = response.split("\n");
			if ( response.length == 2 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					if ( typeof(url) != 'undefined' ) {
						window.location = url;
					}
					else {
						var curr_score = parseFloat($('rating_'+type+'_score'+content_id).innerHTML);
						var curr_votes = parseInt($('rating_'+type+'_votes'+content_id).innerHTML);
						var new_score = curr_score*curr_votes+score;
						var new_votes = curr_votes+1;

						$('rating_'+type+'_score'+content_id).innerHTML = ((new_score/new_votes).toFixed(2));
						$('rating_'+type+'_votes'+content_id).innerHTML = (new_votes);

						ratingstar_reset(type, content_id, 1);

						$('rating_'+type+'_progress'+content_id).removeClass("display");
						return true;
					}
				}
			}
		}
	}).request();
}

function submit_rating(type, member_id, content_id, score)
{
	new Ajax(virpath+'index.php?m=rating', {
		method: 'post',
		data: {'type':type,'score':score,'member_id':member_id,'content_id':content_id},
		onComplete: function(response) {
			var response = response.split("\n");
			if ( response.length == 2 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					$('rating_'+type+'_box'+content_id).innerHTML = '<p class="response">' + response[1] + '</p>';
					return true;
				}
			}
		}
	}).request();
}


// reports
function submit_report(type, member_id, content_id, noreason)
{
	var reason = $('report_'+type+'_reason'+content_id).value;
	if ( !reason ) { alert(noreason); return; }

	new Ajax(virpath+'index.php?m=report', {
		method: 'post',
		data: {'type':type,'reason':reason,'member_id':member_id,'content_id':content_id},
		onComplete: function(response) {
			var response = response.split("\n");
			if ( response.length == 2 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					$('report_'+type+'_box'+content_id).innerHTML = '<p class="response">' + response[1] + '</p>';
					return true;
				}
			}
		}
	}).request();
}


// announcements
function dismiss_announcement(member_id,message_id)
{
	new Ajax(virpath+'index.php?m=announce_dismiss', {
		method: 'post',
		data: {'member_id':member_id,'message_id':message_id}
	}).request();
}


// polls
function submit_poll(poll_id, answer_id)
{
	new Ajax(virpath+'index.php?m=vote', {
		method: 'post',
		data: {'poll_id':poll_id,'answer_id':answer_id},
		onComplete: function(response) {
			var response = response.split("\n");
			if ( response.length == 3 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					$('poll_votes_'+poll_id).innerHTML = response[1];
					var votes = response[2].split(",");
					for ( var i = 0, totalvotes = votes.length; i < totalvotes; i++ ) {
						var counters = votes[i].split("=");
						if ( counters.length == 2 )
						{
							$('poll_'+poll_id+'_answer_votes_'+counters[0]).innerHTML = counters[1];
							$('poll_'+poll_id+'_answer_votes_'+counters[0]+'_wrap').style.display = 'inline';
						}
						$('poll_'+poll_id+'_answer_'+i).disabled = 'disabled';
						//$('poll_'+poll_id+'_answer_'+i+'_wrap').style.display = 'none';
					}
					return true;
				}
			}
			else if ( response.length == 2 )
			{
				if ( response[0] == 'ok' && response[1] )
				{
					$('poll_votes_'+poll_id).innerHTML = response[1];
					for ( var i = 0; $('poll_'+poll_id+'_answer_'+i) != null; i++ ) {
						$('poll_'+poll_id+'_answer_'+i).disabled = 'disabled';
						//$('poll_'+poll_id+'_answer_'+i+'_wrap').style.display = 'none';
					}
					return true;
				}
			}
		}
	}).request();
}


// tabs
var active_tab = 1;
function switch_tabs(prefix,new_tab)
{
	if ( active_tab != new_tab ) {
		document.getElementById(prefix + '' + new_tab).style.display = "block";
		document.getElementById(prefix + '' + active_tab).style.display = "none";
		active_tab = new_tab;
	}
}


// toggles
function row_toggle(name)
{
    var showRow = (browser.IE) ? "block" : "table-row";

    for (var i = 0;  document.getElementById(name+'_'+i) != null;  i++)
    {
        if (document.getElementById(name+'_'+i).style.display == "none")
            document.getElementById(name+'_'+i).style.display = showRow;
        else
            document.getElementById(name+'_'+i).style.display = "none";
    }
}

function showhide_field(name, show)
{
	var el = document.getElementById(name);
    if (el.style.display == "none"  &&  (show == '' || show == undefined)  ||  show == 1)
    {
        el.style.display = "block";
    }
    else
    {
        el.style.display = "none";
    }
}


function switch_fields(field1, field2)
{
	if ( field1 != field2 ) {
		document.getElementById(field1).style.display = "block";
		document.getElementById(field2).style.display = "none";
	}
}


//------------------------------------------------
// Misc
//------------------------------------------------
function confirmLink(question, url)
{
    var is_confirmed = confirm(question);

    if (is_confirmed && url != '')
        window.location = url;

    return is_confirmed;
}

function confirmForm(question, form)
{
    var is_confirmed = confirm(question);

    if (is_confirmed && form != '')
        eval('document.' + form + '.submit()');

    return is_confirmed;
}

function toggleMessages(form, check)
{
    for (var i = 0; i < form.elements.length; i++)
    {
        if (form.elements[i].type == 'checkbox')
        {
            form.elements[i].checked = check;
        }
    }
}

function stylizeBooleanBox(prefix, boxid)
{
	var options = document.getElementById(prefix + boxid);
	for ( var i = 0, length = options.length; i < length; i++ )
	{
		options[i].style.background = ( options[i].value == 1 ) ? '#DEFAE0' : '#FBDDDD';
		if ( options[i].value == 1 && options[i].selected )
			document.getElementById(prefix + boxid).style.background = '#DEFAE0';
		else if ( options[i].value == 0 && options[i].selected )
			document.getElementById(prefix + boxid).style.background = '#FBDDDD';
	}
}


//------------------------------------------------
// Chat
//------------------------------------------------
var httpReceiveChat = null;
var httpSendChat = null;
var chatwincurr = 0;
var autocheck = 0;
var autodelay = 8;
var virpath = '';
chatwins = new Array();

function checkChat(path,check,delay)
{
    virpath = path;
    autocheck = check;
    autodelay = delay;
    httpReceiveChat = getHTTPObject();
    httpSendChat = getHTTPObject();
    receiveChatText();
}

function receiveChatText() {
	if (httpReceiveChat.readyState == 4 || httpReceiveChat.readyState == 0) {
  		httpReceiveChat.open("GET",virpath+'chat.php?p=check', true);
	    httpReceiveChat.onreadystatechange = handlehHttpReceiveChat;
  		httpReceiveChat.send(null);
	}
}

function handlehHttpReceiveChat() {
    if (httpReceiveChat.readyState == 4) {
        memberid = httpReceiveChat.responseText;
        if (memberid != "0") openChatWindow(memberid);
        if (autocheck) setTimeout('receiveChatText();', (autodelay*1000));
    }
}

function openChatWindow(id) {
    if (id > 0 && (typeof(chatwins['chat' + id]) != "object"  ||  chatwins['chat' + id].closed)) {
        chatwins['chat' + id] = window.open(virpath + 'index.php?m=account_chat&id=' + id, 'chat' + id, 'width=470,height=410,resizable=yes,scrollbars=no,toolbar=no,location=no,status=no,menubar=no');
        if ( chatwins['chat' + id] && chatwins['chat' + id].open)
        	chatwins['chat' + id].focus();
		else
			alert('Could not open a chat window. Please disable your popup blocker.');
    }
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

