/* **************************************************************************** */
/*                  (c) LUCEON, Ltd.                                            */
/* **************************************************************************** */

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest(); //Not IE
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP"); //IE
	} else {

		alert("Your browser doesn't support AJAX. Better upgrade to Firefox.");
	}
}			

//Get our browser specific XmlHttpRequest object.
var receiveReq = getXmlHttpRequestObject();

//Values passed between functions and handlers
var elem = '';
var cid  = '';
var act  = '';
var msg  = '';

/* **************************************************************************** */
//Shake tags
function shake_tags(message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('tags').innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=shake', true);
		receiveReq.onreadystatechange = handle_shake_tags; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_shake_tags() {
	if (receiveReq.readyState == 4) {
		document.getElementById('tags').innerHTML = receiveReq.responseText;;
	}
}

/* **************************************************************************** */
//Mark evil video ;)
function mark_inapropriate(videoID,message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('mark-inapropriate').innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=mark&videoID='+videoID, true);
		receiveReq.onreadystatechange = handle_mark_inapropriate; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_mark_inapropriate() {
	if (receiveReq.readyState == 4) {
		document.getElementById('mark-inapropriate').style.display = 'none';
	}
}

/* **************************************************************************** */
//Add video to my favorites
function add_favorite(videoID,message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('add-favorite').innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=favorite&videoID='+videoID, true);
		receiveReq.onreadystatechange = handle_add_favorite; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_add_favorite() {
	if (receiveReq.readyState == 4) {
		document.getElementById('add-favorite').style.display = 'none';
	}
}

/* **************************************************************************** */
//Rate video
function rate_video(videoID, rating, element) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/files/ajax.php?go=rate&videoID='+videoID+'&rating='+rating, true);
		elem = element;
		receiveReq.onreadystatechange = handle_rate_video; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_rate_video() {
	if (receiveReq.readyState == 4) {
		document.getElementById(elem).innerHTML = receiveReq.responseText;
	}
}

/* **************************************************************************** */
//Hide evil comment ;)
function hide_comment(commentID, action) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/files/ajax.php?go=hidecom&commentID='+commentID+'&action='+action, true);
		cid = commentID;
		act = action; 
		receiveReq.onreadystatechange = handle_hide_comment; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_hide_comment() {
	if (receiveReq.readyState == 4) {
		if (act == 'hide') {
			document.getElementById('ct-'+cid).style.display = 'none';
			document.getElementById('ci-'+cid).innerHTML = '<a href="#" onclick="hide_comment('+cid+',\'show\');return false;"><img src="/img/maximize-button-bw.png" alt="[-]" border="0" /></a>';
		} else {
			Effect.toggle('ct-'+cid,'BLIND');
			document.getElementById('ci-'+cid).innerHTML = '<a href="#" onclick="hide_comment('+cid+',\'hide\');return false;"><img src="/img/minimize-button-bw.png" alt="[-]" border="0" /></a>';
		}
		//Clear
		act = '';
		cid = '';
	}
}

/* **************************************************************************** */
//Resend welcome and activation email
function resend_registration_email(email, code, message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/files/ajax.php?go=resend&email='+email+'&code='+code, true);
		msg = message;
		receiveReq.onreadystatechange = handle_resend_registration_email; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_resend_registration_email() {
	//Check to see if the XmlHttpRequests state is finished.
	if (receiveReq.readyState == 4) {
		alert(msg);
	}
}

/* **************************************************************************** */
//Join group
function join_group(groupID) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/files/ajax.php?go=join&groupID='+groupID, true);
		elem = groupID;
		receiveReq.onreadystatechange = handle_join_group; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_join_group() {
	if (receiveReq.readyState == 4) {
		document.getElementById('group-action-'+elem).innerHTML = receiveReq.responseText;
		users = document.getElementById('group-users-'+elem);
		users.innerHTML = parseInt(users.innerHTML) + 1;
	}
}

/* **************************************************************************** */
//Close group
function close_group(groupID, message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('group-'+groupID).innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=close&groupID='+groupID, true);
		elem = groupID;
		receiveReq.onreadystatechange = handle_close_group; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_close_group() {
	if (receiveReq.readyState == 4) {
		document.getElementById('group-'+elem).style.display = 'none';
	}
}

/* **************************************************************************** */
//Leave group
function leave_group(groupID, action) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", '/files/ajax.php?go=leave&groupID='+groupID, true);
		elem = groupID;
		act  = action;
		receiveReq.onreadystatechange = handle_leave_group; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_leave_group() {
	if (receiveReq.readyState == 4) {
		if (act == 1) {
			document.getElementById('group-'+elem).style.display = 'none';
		} else {
			document.getElementById('group-action-'+elem).innerHTML = receiveReq.responseText;
			users = document.getElementById('group-users-'+elem);
			users.innerHTML = parseInt(users.innerHTML) - 1;
			
		}
	}
}

/* **************************************************************************** */
//Delete friend
function add_friend(friendID) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('friend-'+friendID).style.display = 'none';
		receiveReq.open("GET", '/files/ajax.php?go=add&friendID='+friendID, true);
		receiveReq.onreadystatechange = handle_add_friend; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_add_friend() {
	if (receiveReq.readyState == 4) {
	
	}
}


/* **************************************************************************** */
//Delete friend
function remove_friend(friendID, message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('friend-'+friendID).innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=remove&friendID='+friendID, true);
		elem = friendID;
		receiveReq.onreadystatechange = handle_remove_friend; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_remove_friend() {
	if (receiveReq.readyState == 4) {
		document.getElementById('friend-'+elem).style.display = 'none';
	}
}

/* **************************************************************************** */
//Delete favorite video
function remove_favorite(favoriteID, message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('favorite-'+favoriteID).innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=remove2&favoriteID='+favoriteID, true);
		elem = favoriteID;
		receiveReq.onreadystatechange = handle_remove_favorite; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_remove_favorite() {
	if (receiveReq.readyState == 4) {
		document.getElementById('favorite-'+elem).style.display = 'none';
	}
}

/* **************************************************************************** */
//send PM
function send_pm(friendID, sending) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		message = document.getElementById('pm-message').value;
		document.getElementById('pm-inner').innerHTML = sending;
		receiveReq.open("GET", '/files/ajax.php?go=send&friendID='+friendID+'&message='+message, true);
		receiveReq.onreadystatechange = handle_send_pm; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_send_pm() {
	if (receiveReq.readyState == 4) {
		document.getElementById('pm-inner').innerHTML = receiveReq.responseText;
		hide_pm();		
	}
}

/* **************************************************************************** */
//send invitations
function send_invite(groupID) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		users = document.getElementById('invite-users').value;
		receiveReq.open("GET", '/files/ajax.php?go=invite&groupID='+groupID+'&userNames='+users, true);
		receiveReq.onreadystatechange = handle_send_invite; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_send_invite() {
	if (receiveReq.readyState == 4) {
		hide_invite();		
	}
}

/* **************************************************************************** */
//Delete friend
function delete_pm(messageID, message) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('msg-'+messageID).innerHTML = message;
		receiveReq.open("GET", '/files/ajax.php?go=delete&messageID='+messageID, true);
		elem = messageID;
		receiveReq.onreadystatechange = handle_delete_pm; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_delete_pm() {
	if (receiveReq.readyState == 4) {
		document.getElementById('msg-'+elem).style.display = 'none';
	}
}

/* **************************************************************************** */
//Remove avatar
function remove_avatar(percentage) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		document.getElementById('avatar').style.display = 'none';
		receiveReq.open("GET", '/files/ajax.php?go=remove3', true);
		elem = percentage;
		receiveReq.onreadystatechange = handle_remove_avatar; 
		receiveReq.send(null);
	}			
}

//Handle
function handle_remove_avatar() {
	if (receiveReq.readyState == 4) {
		document.getElementById('profile-percentage').innerHTML = (elem - 16) + '%';
	}
}