/* AJAX Calls for new-post module */

// Ajax holders //
var xmlHttp;

// Ajax functions //

// observing all starboxes
document.observe('starbox:rated', saveUserRating);

function updateRatingInfo(element, info){
	var indicator = element.down('.indicator');
	var restore = indicator.innerHTML;
	indicator.update('Rated with ' + (info.rated).toFixed(1) + ' stars...');
	window.setTimeout(function() { indicator.update(restore) }, 3000);
	//new Effect.Highlight(indicator);
}

function saveUserRating(event) {
	new Ajax.Request('ajax_star_user.php',
	{
	method:'post',
	parameters: event.memo,
	onSuccess: function(transport){
	  var response = transport.responseText;
		if(response != "FAILED"){ // custom return message				
			//Effect.Appear('post-'+str+'-media');
			//document.getElementById('contact-'+id).innerHTML = response;
		}else{
			//Effect.Appear('post-'+str+'-media');
			alert('Something went wrong...\nAre you trying to rate yourself?');
		}
	},
	onFailure: function(){ alert('Something went wrong...') }
	});
}

function sendPM(user,id){
	if(id == '' || user == '')
		return;
	
	var message = tinyMCE.get('message-'+id).getContent(); //document.getElementById('message-'+id).value;
	if(message == ''){
		alert('Please enter your message');
		return;
	}
	
	document.getElementById('pmSendSpan-'+id).style.display = 'none';
	document.getElementById('pmSendingSpan-'+id).style.display = 'inline';
	
	new Ajax.Request('ajax_send_pm.php',
	  {
		method:'post',
		parameters: "user=" + encodeURIComponent(user) + "&message=" + encodeURIComponent(message),
		onSuccess: function(transport){
		  var response = transport.responseText;
		  	if(response != "FAILED"){ // custom return message				
				//Effect.Appear('post-'+str+'-media');
				document.getElementById('contact-'+id).innerHTML = response;
			}else{
				//Effect.Appear('post-'+str+'-media');
				document.getElementById('contact-'+id).innerHTML = "Oops, we could not send the message for some rason. Please try again...";
			}
		},
		onFailure: function(){ alert('Something went wrong...') }
	  });	
}

function showQuickSearchResult(str, type){
	if (str.length==0)
	 { 
	 //document.getElementById("quickSearchResults-" + cat).innerHTML="";
	 closeQuickSearch('topic');
	 return
	 }
	
	new Ajax.Request('../../inc/quick_search.php',
	  {
		method:'post',
		parameters: "forum=yes&type=" + type + "&q="+ encodeURIComponent(str),
		onSuccess: function(transport){
		  var response = transport.responseText;
		  // update the parent page like so: document.getElementById("txtHint").innerHTML=xmlHttp.responseText
			document.getElementById("quickSearchResults-" + type).style.display = "block";
			document.getElementById("quickSearchResults-" + type).innerHTML=response;
		},
		onFailure: function(){ alert('Something went wrong...') }
	  });	
}

function submitTopic(){
	var title = document.getElementById('newTopicTitle').value;
	var topicBody = tinyMCE.get('newTopicBody').getContent(); //document.getElementById('newTopicBody').value;
	var category = document.getElementById('newTopicCategory').value;
	var forum_id = document.getElementById('newTopicForumId').value;
	var post_involved = document.getElementById('newTopicPostInvolved').value;
	
	if(title == ''){
		alert('Please set the title for your topic...');
		return;
	}
	if(topicBody == ''){
		alert('Topic body really should not be empty...');
		return;
	}
	if((category == '' && forum_id == '') || (category != '' && forum_id != '')){
		alert('Error: Please re-enter the forum and start a new topic again...');
		return;
	}
	
	document.getElementById('workingTopic').style.display = "block";
	document.getElementById('workingArea').innerHTML = "";

	new Ajax.Request('ajax_post_topic.php',
	  {
		method:'post',
		parameters: "category=" + category + "&forum_id=" + forum_id + "&post_involved=" + post_involved + "&title=" + encodeURIComponent(title) + "&body=" + encodeURIComponent(topicBody),
		onSuccess: function(transport){
		  var response = transport.responseText;
		  if(response != "FAILED"){ // custom return message
				document.getElementById('workingTopic').style.display = "none";
				newTopic(); // toggle's the form
				document.getElementById('newTopicTitle').value = '';
				document.getElementById('newTopicBody').value = '';
				document.getElementById('workingArea').innerHTML = "<a href=\"javascript:submitTopic();\">&raquo; Submit &laquo;</a>";
				// update the list below
				document.getElementById('topicsList').innerHTML = response;
				// reappear the buttons
				document.getElementById('newTopicTopButton').style.display = 'inline';
				document.getElementById('newTopicBottomButton').style.display = 'inline';
			}else{
				document.getElementById('workingTopic').style.display = "none";
				alert('There was an error while trying to submit your topic. Please try again...');
				document.getElementById('workingArea').innerHTML = "<a href=\"javascript:submitTopic();\">&raquo; Submit again &laquo;</a>";
			}
		},
		onFailure: function(){ alert('Something went wrong...') }
	  });	
}

function submitPost(){
	var title = document.getElementById('newPostTitle').value;
	var topicBody = tinyMCE.get('newPostBody').getContent(); //document.getElementById('newPostBody').value;
	var topic_id = document.getElementById('parentTopicId').value;
	var post_involved = document.getElementById('newPostPostInvolved').value;
	var next_post_holder = document.getElementById('nextPostHolder').value;
	
	if(topicBody == ''){
		alert('Topic body really should not be empty...');
		return;
	}	
	if(topic_id == ''){
		alert('Error: Topic unknown, please	try agian...');
	}
	
	new Ajax.Request('ajax_post_post.php',
	  {
		method:'post',
		parameters: "topic_id=" + topic_id + "&post_involved=" + post_involved + "&next_post_holder=" + next_post_holder + "&title=" + encodeURIComponent(title) + "&body=" + encodeURIComponent(topicBody),
		onSuccess: function(transport){
		  var response = transport.responseText;
		  if(response != "FAILED"){ // custom return message
				document.getElementById('workingPost').style.display = "none";				
				document.getElementById('newPostTitle').value = '';
				document.getElementById('newPostBody').value = '';				
				document.getElementById('workingArea').innerHTML = "<a href=\"javascript:submitPost();\">&raquo; Submit &laquo;</a>";
				// update the list below
				document.getElementById('nextPostHolder-' + next_post_holder).innerHTML = response;
				document.getElementById('nextPostHolder').value = (parseInt(next_post_holder) + 1).toString();
				newPost();
				decoGreyboxLinks();
				// reappear the buttons
				document.getElementById('newPostTopButton').style.display = 'inline';
				document.getElementById('newPostBottomButton').style.display = 'inline';
			}else{
				document.getElementById('workingPost').style.display = "none";
				alert('There was an error while trying to submit your post. Please try again...');
				document.getElementById('workingArea').innerHTML = "<a href=\"javascript:submitPost();\">&raquo; Submit again &laquo;</a>";
			}
		},
		onFailure: function(){ alert('Something went wrong...') }
	  });	
}


// Main Ajax GetXML function
function GetXmlHttpObject(){
	var xmlHttp=null;
	try{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch(e){
		//Internet Explorer
		 try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		 }
		 catch(e){
		  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		 }
	}
	return xmlHttp;
}// end function