
function createAjaxRequest() {

	var ajaxRequest;
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("This operation is not supported by your browser.");
				return false;
			}
		}
	}
	return ajaxRequest;
}

function add_favorite_artists( favorite_id ) {
	
	var ajaxRequest = createAjaxRequest();
	
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			document.getElementById('favorite_artists_icon').innerHTML = ajaxRequest.responseText;
			alert('This art gallery was added to your favorites.');
		}
	}
	ajaxRequest.open("GET", "index.php?ajax=1&action=add_favorite_artists&favorite_account_id="+favorite_id, true);
	ajaxRequest.send(null);
	
}

function remove_favorite_artists( favorite_id ) {
	
	var ajaxRequest = createAjaxRequest();
	
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			document.getElementById('favorite_artists_icon').innerHTML = ajaxRequest.responseText;
			alert('This art gallery was removed from your favorites.');
		}
	}
	ajaxRequest.open("GET", "index.php?ajax=1&action=remove_favorite_artists&favorite_account_id="+favorite_id, true);
	ajaxRequest.send(null);
	
}

function cast_vote( artwork_id, gallery_id, vote ) {
	
	var ajaxRequest = createAjaxRequest();
	
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			//alert(ajaxRequest.responseText);
			show_vote(ajaxRequest.responseText);
		}
	}
	ajaxRequest.open("GET", "index.php?ajax=1&action=cast_vote&vote="+vote+"&artwork_id="+artwork_id+"&gallery_id="+gallery_id, true);
	ajaxRequest.send(null);
		
}

function chat_acknowledged() {
	
	var ajaxRequest = createAjaxRequest();
	
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			
		}
	}
	ajaxRequest.open("GET", "index.php?ajax=1&action=chat_acknowledged", true);
	ajaxRequest.send(null);
}

function check_chat_message() {
	
	var ajaxRequest = createAjaxRequest();
	
	ajaxRequest.onreadystatechange = function(){
		
		if(ajaxRequest.readyState == 4){
			
			var notify = false;
			
			var ajaxResult		= unserialize(base64_decode(ajaxRequest.responseText));
			last_check_time		= ajaxResult.last_check_time;
			var messageResults	= ajaxResult.results;
			
			var message_board_div = document.getElementById('message_board');
			//message_board_div.innerHTML = base64_decode(ajaxRequest.responseText);
			
			for (var i in messageResults) {
				draw_chat_message_to_screen(messageResults[i]);
				//message_board_div.innerHTML = message;
				notify = true;
			}
			if( notify ) {
				var soundObj = document.getElementById('notify_ding');
				soundObj.Play();
			}
		}
	}
	ajaxRequest.open("GET", "index.php?ajax=1&action=check_chat_message&last_check_time="+last_check_time, true);
	ajaxRequest.send(null);
	
	//debugDiv = document.getElementById('checktime');
	//debugDiv.innerHTML = last_check_time;
}

function send_chat_message( ) {
	
	var user_message		= document.getElementById('user_message');
	var user_message_value	= trim(user_message.value);
	
	if( user_message_value.length <= 0) {
		user_message.value = '';
		user_message.focus();
	} else {
		
		var parms = "ajax=1&action=send_chat_message&user_message="+ base64_encode(user_message_value);
		
		var ajaxRequest = createAjaxRequest();
		
		ajaxRequest.open("POST", "index.php", true);
		ajaxRequest.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
		ajaxRequest.setRequestHeader("Content-length", 	parms.length);
		ajaxRequest.setRequestHeader("Connection",		"close");
		
		ajaxRequest.onreadystatechange = function(){

			if(ajaxRequest.readyState == 4){
				var ajaxResult = unserialize(base64_decode(ajaxRequest.responseText));
				draw_chat_message_to_screen(ajaxResult);
			}
		}
		
		ajaxRequest.send(parms);
	}
	
}

function draw_chat_message_to_screen(messageObject) {
	
	var user_message					= document.getElementById('user_message');
	
	// GENERATE CONTAINER NODES
	var parent_message_node				= document.createElement('div');
	var message_sub_node_name			= document.createElement('div');
	var message_sub_node_message		= document.createElement('div');
	var divider_message_node			= document.createElement('div');
	
	// SET NODE ATTRIBUTES
	message_sub_node_name.className		= 'message_board_author';
	message_sub_node_message.className	= 'message_board_message';
	divider_message_node.className		= 'message_board_divide';
	
	// CREATE TEXT & CONTENT NODES
	var bold_node						= document.createElement("div");
	var name_text						= document.createTextNode(messageObject.account_user_name);
	var break_node						= document.createElement("br");
	var date_text						= document.createTextNode(messageObject.community_chat_datetime);
	var id_comment						= document.createComment(messageObject.community_chat_id);  
	var message_text					= document.createTextNode(messageObject.community_chat_message);
		
	var link_node						= document.createElement("a");
	link_node.setAttribute('href',		'index.php?L1=gallery&gallery_id='+messageObject.account_id);
	link_node.setAttribute('target',	'_blank');

	var italic_node						= document.createElement("i");
	italic_node.className				= 'message_board_date';
	
	// COMBINE ARTIST NAME/HREF AND DATE
	link_node.appendChild(name_text);
	bold_node.appendChild(link_node);
	italic_node.appendChild(date_text);
	
	message_sub_node_name.appendChild(bold_node);	
	message_sub_node_name.appendChild(break_node);	
	message_sub_node_name.appendChild(italic_node);
	
	// ADD USER MESSAGE TO DOM
	message_sub_node_message.appendChild(message_text);
	
	// ADD NEW NODES TO MESSAGE BOARD
	var message_board_div = document.getElementById('message_board');
	
	parent_message_node.appendChild(message_sub_node_name);
	parent_message_node.appendChild(message_sub_node_message);
	
	divider_message_node.appendChild(id_comment);
	
	message_board_div.appendChild(parent_message_node);
	message_board_div.appendChild(divider_message_node);
	
	// AUTO SCROLL DOWN
	message_board_div.scrollTop = message_board_div.scrollHeight;
	
	// CLEAR USER MESSAGE TEXT AREA
	user_message.value = '';
	user_message.focus();
	
}