if(self != top)
{
	top.location.href = self.location.href;
}

function show_comment_add(article_id)
{
	article_id = Number(article_id);
	
	if(!article_id) return;
	
	entity_active_id = article_id;
	
	popup_create();
	popup_title("Enter your comment");
	popup_area("comment-content", "Inappropriate and/or insulting comments won\'t be tolerated", "");
	popup_button("comment-submit", "Submit");
	
	document.getElementById('comment-submit').onclick = function()
	{
		send_comment_add();
	}
}


function show_comment_edit_load(article_id)
{	
	loading_comment = true;
	
	popup_create();
	popup_title("Edit comment");


	var popup = document.getElementById('popup');
	
	if(!popup) return;
	
	popup.className = 'loading';

	
	show_processing("Loading message...");
	
	request_do('/scripts/comment_load.php', 'POST', '&comment_id=' + encodeURIComponent(comment_active_id));
}


function show_comment_edit(message_content)
{
	var popup = document.getElementById('popup');
	
	if(!popup) return;
	
	popup.className = '';
	
	popup.removeChild(popup.childNodes[2]);
	
	popup_area("comment-content", "Comment", message_content);
	popup_button("comment-submit", "Save Changes");
	popup_button("comment-delete", "Delete");
	
	document.getElementById('comment-submit').onclick = function()
	{
		send_comment_edit();
	}
	
	document.getElementById('comment-delete').onclick = function()
	{
		send_comment_delete();
	}
}


function show_comment_delete(comment_id)
{
	popup_create();
	
	popup_title("Are you sure?");
	
	popup_button("comment-delete", "Yes");
	
	comment_active_id = comment_id;
	
	document.getElementById('comment-delete').onclick = function()
	{
		send_comment_delete();
	}
}


function show_comment_report(comment_id)
{
	comment_id = Number(comment_id);
	
	if(!comment_id) return;
	
	comment_active_id = comment_id;
	
	popup_create();
	popup_title("Why are you reporting this comment?");
	popup_area("report-reason", "Reason", "");
	popup_button("report-submit", "Submit");
	
	document.getElementById('report-submit').onclick = function()
	{
		send_comment_report();
	}
}


function send_comment_report()
{
	var report_reason = document.getElementById('report-reason');
	
	if(!report_reason || report_reason.value.length < 5)
	{
		alert("Please enter a valid reason.");
		
		return;
	}
	
	show_processing();
	
	request_do('/scripts/comment_report.php', 'POST', '&comment_id=' + encodeURIComponent(comment_active_id) + '&report_message=' + encodeURIComponent(report_reason.value));
}

function send_comment_add()
{
	var comment_content = document.getElementById('comment-content');
	
	if(!comment_content || comment_content.value.length < 5)
	{
		alert("Please enter your comment.");
		
		return;
	}
	
	show_processing();
	
	add_comment = true;
/*alert(comment_content.value);
alert(escape(comment_content.value));
alert(encodeURI(comment_content.value));
alert(encodeURIComponent(comment_content.value));
return;*/
	request_do('/scripts/comment_add.php', 'POST', '&entity_id=' + encodeURIComponent(entity_active_id) + '&comment_content=' + encodeURIComponent(comment_content.value));
}


function send_comment_edit()
{
	var comment_content = document.getElementById('comment-content');
	
	if(!comment_content || comment_content.value.length < 5)
	{
		alert("Please enter your comment.");
		
		return;
	}
	
	show_processing();
	
	edit_comment = true;
	
	request_do('/scripts/comment_edit.php', 'POST', '&comment_id=' + encodeURIComponent(comment_active_id) + '&comment_content=' + encodeURIComponent(comment_content.value));
}


function send_comment_delete()
{
	show_processing();
	
	edit_comment = true;
	
	request_do('/scripts/comment_delete.php', 'POST', '&comment_id=' + encodeURIComponent(comment_active_id));
}


function display_comments(page)
{
	load_comments = true;
	
	var comment_content	= document.createElement('p');
	var comment_message	= document.createTextNode('Loading comments...');
	
	comment_content.setAttribute('id', 'comment-load');
	comment_content.setAttribute('class', 'loading');
	comment_content.className = 'loading';
	
	comment_content.appendChild(comment_message);
	
	
	var pages = getElementsByClassName(comments, 'pages');


	if(!nav_top)
	{
		comments.insertBefore(comment_content, comments.lastChild);
	}
	else
	{
		try
		{
			comments.insertBefore(comment_content, comments.lastChild.previousSibling);
		}
		catch(error)
		{
			comments.insertBefore(comment_content, comments.lastChild);
		}
	}

	request_do('/scripts/comments.php', 'POST', '&entity_id=' + encodeURIComponent(entity_active_id) + '&page=' + encodeURIComponent(comment_page));
}


function display_no_comments()
{
	var comment_content = document.getElementById('comment-load');
	
	if(comment_content)
	{
		comments.removeChild(comment_content);
	}
	
	var comment_content	= document.createElement('p');
	var comment_message	= document.createTextNode('There are no comments');
	
	comment_content.setAttribute('id', 'comment-list');
	
	comment_content.appendChild(comment_message);

	comments.appendChild(comment_content);
}


function display_pages(bottom_nav)
{
	if(num_comments <= num_limit)
	{
		return;
	}
	
	var pages = document.createElement('div');
	
	pages.setAttribute('class', 'pages');
	pages.className = 'pages';
	
	
	var info = document.createElement('div');
	var into_text = document.createTextNode('Pages:');
	
	info.setAttribute('class', 'info');
	info.className = 'info';
	
	info.appendChild(into_text);
	pages.appendChild(info);
	
	
	num_pages = Math.ceil(num_comments/num_limit);
	
	var page_numbers = new Array();
	
	page_numbers.push(1);
	
	if(num_pages < 10)
	{
		for(var i=2; i<=num_pages; i++)
		{
			page_numbers.push(i);
		}
	}
	else
	{
		page_numbers.push(2,num_pages-1,num_pages);
		
		if(comment_page < 6)
		{
			page_numbers.push(3,4,5,6,7);
		}
		else if(comment_page > num_pages-5)
		{
			page_numbers.push(num_pages-2,num_pages-3,num_pages-4,num_pages-5,num_pages-6);
		}
		else
		{
			page_numbers.push(comment_page-2,comment_page-1,comment_page,comment_page+1,comment_page+2);
		}
	}
	
	page_numbers.sort(sort_numbers);
	
	
	for(var i=0; i<page_numbers.length; i++)
	{
		var page_link = document.createElement('a');
		var page_link_text = document.createTextNode(page_numbers[i]);
		
		page_link.setAttribute('href', 'javascript:void(0);');
		
		page_link.onclick = function()
		{
			if(Number(this.childNodes[0].nodeValue) > 0)
			{
				comment_page = Number(this.childNodes[0].nodeValue);
			}
			
			if(this.parentNode != comments.lastChild)
			{
				nav_top = true;
			}
			else
			{
				nav_top = false;
			}
			
			display_comments(comment_page);
		}
		
		if(page_numbers[i] == comment_page)
		{
			page_link.setAttribute('class', 'active-link');
			page_link.className = 'active-link';
		}
		
		page_link.appendChild(page_link_text);
		
		
		if(i > 0 && page_numbers[i]-page_numbers[i-1] != 1)
		{
			var delimiter = document.createTextNode(' ... ');
			
			pages.appendChild(delimiter);
		}
		
		
		pages.appendChild(page_link);
	}
	
	comments.appendChild(pages);
}


function process_data()
{
	var popup = document.getElementById('popup');
	
	if(popup)
	{
		popup.className = '';
	}
	
	if(load_comments)
	{
		load_comments = false;
		
		
		try
		{
			num_comments = Number(response_data.getElementsByTagName('num_comments')[0].firstChild.nodeValue);
			
			if(!num_comments) num_comments = 0;
		}
		catch(error)
		{
			num_comments = 0;
		}
		
		
		var root = response_data.getElementsByTagName('comments')[0];
		
		var comment_list = document.getElementById('comment-list');
		
		if(comment_list)
		{
			comments.removeChild(comment_list);
		}
		
		
		var comment_list = document.getElementById('comment-load');
		
		if(comment_list)
		{
			comments.removeChild(comment_list);
		}
		
		
		if(root)
		{
			var pages = getElementsByClassName(comments, 'pages');
			
			if(pages)
			{
				for(var i=0; i<pages.length; i++)
				{
					comments.removeChild(pages[i]);
				}
			}
			
			
			display_pages(false);
			
				
			var comments_data = root.childNodes;
			
			var comment_list = document.createElement('ul');
			
			comment_list.setAttribute('id', 'comment-list');
			
			for(var i=0; i<comments_data.length; i++)
			{
				var comment_element	= document.createElement('li');
				
				
				/* AVATAR */
				
				var comment_image = document.createElement('img');
				
				comment_image.setAttribute('alt', comments_data[i].childNodes[2].firstChild.nodeValue);
				comment_image.setAttribute('src', comments_data[i].childNodes[3].firstChild.nodeValue);
				
				comment_element.appendChild(comment_image);
				
				
				/* POST */

				var comment_content	= document.createElement('p');
				
				comment_content.innerHTML = comments_data[i].childNodes[5].firstChild.nodeValue;
				
				comment_element.appendChild(comment_content);
				
				
				/* OPTIONS */
				
				var comment_options	= document.createElement('div');
				
				comment_options.className = 'options';
				comment_options.setAttribute('class', 'options');
				
				comment_element.appendChild(comment_options);
				
				
				/* NUMBER */
				
				var comment_number = document.createElement('div');
				var comment_number_text = document.createTextNode('#' + (num_comments-Number((comment_page-1)*num_limit+i)));
				
				comment_number.className = 'number';
				comment_number.setAttribute('class', 'number');
				
				comment_number.appendChild(comment_number_text);
				comment_options.appendChild(comment_number);
				
				
				/* AUTHOR */
				
				var author_link	= document.createElement('a');
				var author_name	= document.createTextNode(comments_data[i].childNodes[2].firstChild.nodeValue);
				
				author_link.setAttribute('href', 'http://member.mibba.com/' + comments_data[i].childNodes[1].firstChild.nodeValue + '/');
				
				author_link.appendChild(author_name);
				comment_options.appendChild(author_link);
				
				
				/* DELIMITER */
				
				var delimiter = document.createTextNode(', ');
				
				comment_options.appendChild(delimiter);
				
				
				/* TIME */
				
				var time_element	= document.createElement('span');
				var time_content	= document.createTextNode(comments_data[i].childNodes[4].firstChild.nodeValue);
				
				time_element.appendChild(time_content);
				comment_options.appendChild(time_element);
				
				
				/* EDIT */
				
				if(comments_data[i].childNodes[6].firstChild.nodeValue == "1")
				{
					var link_edit		= document.createElement('a');
					var link_edit_txt	= document.createTextNode('Edit');
					
					link_edit.className = 'comment-edit';
					link_edit.setAttribute('class', 'comment-edit');
					link_edit.setAttribute('id', 'edit-comment-' + comments_data[i].childNodes[0].firstChild.nodeValue);
					link_edit.setAttribute('href', 'javascript:void(0);');
					
					link_edit.appendChild(link_edit_txt);
					comment_options.appendChild(link_edit);
					
					link_edit.onclick = function()
					{
						comment_active_id = this.id.substring(13);
						
						show_comment_edit_load(comment_active_id);
						
						comment_active = this.parentNode.parentNode;
						
						//comment_active.style.backgroundColor = "#ffdddd";
					}
				}
				else if(comments_data[i].childNodes[6].firstChild.nodeValue == "2")
				{
					var link_delete		= document.createElement('a');
					var link_delete_txt	= document.createTextNode('Delete');
					
					link_delete.className = 'comment-delete';
					link_delete.setAttribute('class', 'comment-delete');
					link_delete.setAttribute('id', 'delete-comment-' + comments_data[i].childNodes[0].firstChild.nodeValue);
					link_delete.setAttribute('href', 'javascript:void(0);');
					
					link_delete.appendChild(link_delete_txt);
					comment_options.appendChild(link_delete);
					
					link_delete.onclick = function()
					{
						comment_active_id = this.id.substring(15);
						
						show_comment_delete(comment_active_id);
						
						comment_active = this.parentNode.parentNode;
						
						//comment_active.style.backgroundColor = "#ffdddd";
					}	
				}
				
				
				/* REPORT */
				
				var link_report		= document.createElement('a');
				var link_report_txt	= document.createTextNode('Report');
				
				link_report.className = 'report';
				link_report.setAttribute('class', 'report');
				link_report.setAttribute('id', 'report-comment-' + comments_data[i].childNodes[0].firstChild.nodeValue);
				link_report.setAttribute('href', 'javascript:void(0);');
				
				link_report.appendChild(link_report_txt);
				comment_options.appendChild(link_report);
				
				
				link_report.onclick = function()
				{
					show_comment_report(this.id.substring(15));
					
					comment_active = this.parentNode.parentNode;
					
					//comment_active.style.backgroundColor = "#ffdddd";
				}
				
				
				
				comment_list.appendChild(comment_element);
			}
			
			comments.appendChild(comment_list);
			
			display_pages(true);
			
			
			popup_resize_bg();
		}
		else
		{
			display_no_comments();
		}
	}
	else
	{
		if(!response_data || !response_data.getElementsByTagName('message')[0])
		{
			popup_message("1", "There has been an error processing your request. Please try again later.");
			
			return;
		}
		
		var response_error = response_data.getElementsByTagName('error')[0].firstChild.nodeValue;
		var response_message = response_data.getElementsByTagName('message')[0].firstChild.nodeValue;
		
		if(loading_comment)
		{
			if(response_error == "1")
			{
				popup_message(response_error, response_message);
			}
			else
			{
				show_comment_edit(response_message);	
			}
		}
		else if(loading_subscription)
		{
			if(response_error == "1")
			{
				popup_message(response_error, response_message);
			}
			else
			{
				show_subscription(response_data);	
			}
		}
		else if(searching)
		{
			if(response_error == "1")
			{
				popup_message(response_error, response_message);
			}
			else
			{
				article_search_process(response_data);	
			}
		}
		else
		{
			popup_message(response_error, response_message);
			
			if(add_comment)
			{
				display_comments(1);
			}
			else if(edit_comment)
			{
				display_comments(comment_page);
			}
		}
		
		add_comment = false;
		edit_comment = false;
		loading_comment = false;
	}
}