function ajaxObject(url) {
	var that = this;
	this.url = url;
	this.method = 'POST';
	this.AJAX = null;
	if (window.XMLHttpRequest) {
		this.AJAX=new XMLHttpRequest();
	} 
	else {
		this.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (this.AJAX==null) {
		alert("Your browser doesn't support AJAX.");
		return false
	}

	this.send = function(passData, callback) {
		that.AJAX.open(that.method, that.url, true);
		that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		that.AJAX.onreadystatechange = function() {
			if (that.AJAX.readyState==4 || that.AJAX.readyState=="complete") {
				callback(that.AJAX.responseText, that.AJAX.status);
				that.AJAX = null;
			}
		}
		that.AJAX.send(passData);
	}
}

function getRecruitmentStatus() {
	var ajax = new ajaxObject('recruitment.php');
	ajax.send(null, displayRecruitmentStatus);
}


function displayRecruitmentStatus(responseText, status) {
	recruitmentStatus = responseText.split('recruitment_status=')[1].split('\n')[0];
	recruitmentLink = responseText.split('recruitment_link=')[1].split('\n')[0];
	recruitmentMessage = responseText.split('recruitment_message=')[1].split('\n')[0];
	for(var i=0; i<30; i++) {
		if(!(recruitmentStatus & Math.pow(2,i)))
			document.getElementById('talent' + i).style.backgroundPosition = -i*21 + 'px -21px';
	}
	document.getElementById('recruitment_message').innerHTML = recruitmentMessage;
	document.getElementById('recruitment_link').href = recruitmentLink;

}

function changeStatus(element) {
	if(!moderator)
		return false;
	var talent = element.id.substr(6);
	recruitmentStatus = recruitmentStatus ^ Math.pow(2,talent);
	setRecruitmentStatus();
	if(!(recruitmentStatus & Math.pow(2,talent)))
		document.getElementById('talent' + talent).style.backgroundPosition = -talent*21 + 'px -21px';
	else
		document.getElementById('talent' + talent).style.backgroundPosition = -talent*21 + 'px -0px';
}

function callback(text, status) {
	//alert('text: ' + text + ' status: ' + status);
}

function setRecruitmentStatus() {
	if(!moderator)
		return false;
	var ajax = new ajaxObject('recruitment.php');
	var passData = 'recruitment_status='+escape(recruitmentStatus)+'&sid='+getUrlVars()['sid'];
	ajax.method = 'POST';
	ajax.send(passData, callback);

}

function editRecruitment() {
	if(!moderator)
		return false;

	var link = document.getElementById('recruitment_link')
	var message = document.getElementById('recruitment_message').innerHTML;
	var linkBox = document.getElementById('recruitment_link_box');
	var messageBox = document.getElementById('recruitment_message');
	var messageText = document.getElementById('recruitment_message_text');
	var messageForm = document.getElementById('recruitment_message_form');
	var linkForm = document.getElementById('recruitment_link_form');
	var linkText = document.getElementById('recruitment_link_text');
	
	messageBox.style.display = "none";
	link.style.display = "none";
	linkForm.style.display = "block";
	messageForm.style.display = "block";
	messageText.value = message;
	linkText.value = link.href.unescapeHtml();
}

function submitRecruitment() {
	if(!moderator)
		return false;
	var linkText = document.getElementById('recruitment_link_text').value;
	var message = document.getElementById('recruitment_message_text').value;
	if(linkText.length > 255 || message.length > 255) {
			document.getElementById('recruitment_error').innerHTML = "Recruitment message and link are limited to 255 characters";
			return false;
	}

	var ajax = new ajaxObject('recruitment.php');
	var passData = 'recruitment_message=' + encodeURIComponent(message) + '&recruitment_link=' + encodeURIComponent(linkText) + '&sid='+getUrlVars()['sid'];
	//alert(passData);
	ajax.method = 'POST';
	ajax.send(passData, displayRecruitmentStatus);

	cancelRecruitment();

}

function cancelRecruitment() {
	document.getElementById('recruitment_link_text').value = ""
	document.getElementById('recruitment_error').innerHTML = "";
	document.getElementById('recruitment_link').style.display = "block"; 
	document.getElementById('recruitment_message').style.display = "block";
	document.getElementById('recruitment_message_form').style.display = "none";;
	document.getElementById('recruitment_link_form').style.display = "none";

}

function editScreenShot() {
	document.getElementById('screenshot_editbox').style.display = "block";
	document.getElementById('screenshot_edit').style.display = "none";
}

function cancelEditScreenShot() {
	document.getElementById('screenshot_editbox').style.display = "none";
	document.getElementById('screenshot_edit').style.display = "block";
}

function submitScreenShot() {
	if(!moderator)
		return false;
	var largeLink = document.getElementById('largelink').value;
	var smallLink = document.getElementById('smalllink').value;
	if(smallLink.length > 255 || largeLink.length > 255) {
			document.getElementById('recruitment_error').innerHTML = "Recruitment message and link are limited to 255 characters";
			return false;
	}

	var ajax = new ajaxObject('recruitment.php');
	var passData = 'largelink=' + encodeURIComponent(largeLink) + '&smalllink=' + encodeURIComponent(smallLink) + '&sid='+getUrlVars()['sid'];
	ajax.method = 'POST';
	ajax.send(passData, location.reload(true));

}


String.prototype.unescapeHtml = function () {
    var temp = document.createElement("div");
    temp.innerHTML = this;
    var result = temp.childNodes[0].nodeValue;
    temp.removeChild(temp.firstChild)
    return result;
} 



function getUrlVars() {
	var map = {};
	var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
		map[key] = value;
	});
	return map;
}
function $(id) {
	return document.getElementById(id);
}

