//THE NUMBER OF ARTICLES TO DISPLAY
var bot_blog_end = bot_blog_limit = 5;
//THE NUMBER OF PAGES TO SHOW IN THE CONTROLS - WHEN YOU NAVIGATE HIGHER THEN THIS THE PAGE START WILL INCREASE
var page_limit = 5;
//
var bot_blog_start = 0;
var blog_total_articles = 0;
var comment_id = 0;
var bot_comment_author = "";
var article_id = 0;
/*
 * loadCookies
 */
function loadCookies(){
	if($.cookie("bot_blog_start")===undefined || $.cookie("bot_blog_start")===null){
	}else {
		bot_blog_start = $.cookie("bot_blog_start");
		bot_blog_end = $.cookie("bot_blog_end");
	}
	if($.cookie("bot_comment_author")===undefined || $.cookie("bot_comment_author")===null){
	}else{
		bot_comment_author = $.cookie("bot_comment_author");
		$("#name_field").val(bot_comment_author);
	}
}
/*
 * setCookies
 */
function setCookies(){
	$.cookie("bot_blog_start", bot_blog_start);
	$.cookie("bot_blog_end", bot_blog_end);
	if($("#name_field").val()!=""){
		$.cookie("bot_comment_author", $("#name_field").val());
	}
}
/*
 * hideLoading
 */
function hideLoading(){
	$('#bot_loading').css("visibility", "hidden");
}
/*
 * showLoading
 */
function showLoading(){
	if($('#bot_loading').length>0){
		$('#bot_loading').css("visibility", "visible");
	}else{
		//CREATE THE LOADING GRAPHIC
			var loading_div = $("<div>").html("");
			loading_div.attr("id","bot_loading");
			loading_div.attr("class","bot_loading");
			loading_div.css("visibility", "visible");
		//
			loading_div.appendTo("#bot_blog");
	}
}
/*
 * hideCommentLoading
 */
function hideCommentLoading(){
	$('#comment_loading').css("visibility", "hidden");
}
/*
 * showCommentLoading
 */
function showCommentLoading(){
	if($('#comment_loading').length>0){
		$('#comment_loading').css("visibility", "visible");
	}else{
		//CREATE THE LOADING GRAPHIC
			var loading_div = $("<div>").html("");
			loading_div.attr("id","comment_loading");
			loading_div.attr("class","bot_loading");
			loading_div.css("visibility", "visible");
		//
			loading_div.appendTo("#blog_comments");
	}
}
/*
 * buildQuery
 * CYCLES THROUGH ALL CLASSES .bls AND BUILDS A QUERY STRING TO PASS TO OUR PHP SCRIPT
 */
function buildQuery(){
	var q_string = "?";
	q_string+= "start="+bot_blog_start+"&";
	q_string+= "limit="+bot_blog_end;
	return q_string;
}
/*
 * loadComments
 */
function loadComments(){
	//
		showCommentLoading();
	//
		$.getJSON(
			"/_face/class/load_comments.php?id="+article_id, 
			function(data){
				//
					if($('#comment_results').length==0){
						//CREATE THE LOADING GRAPHIC
							var comment_div = $("<div>").html("");
							comment_div.attr("id","comment_results");
							comment_div.attr("class","comment_results");
						//
							comment_div.appendTo("#blog_comments");
					}
					$("#comment_results").empty();
				//
					var comment_html = "";
					for(var i=0;i<data.items.length;i++){
						if(data.items[i].id>0){
							comment_html+= "<div class='comment' id='comment_"+ data.items[i].id +"'><p>"+ data.items[i].body +"<p class='author'>"+ data.items[i].user_name +"</p> <p class='date'>"+ data.items[i].date +"</p></div>";
						}else{
							comment_html+= "<div class='comment' id='comment_"+ data.items[i].id +"'><p>"+ data.items[i].body +"</p></div>";
						}
					}
					var comment_div = $("#comment_results").html(comment_html);
				//
					$("#comment_results .comment:odd").addClass("odd");
					$("#comment_results .comment:even").addClass("even");
				//
					if(comment_id>0){
						var tmp_name = "#comment_"+comment_id;
						$.scrollTo(tmp_name, 800);

					}
					comment_id = 0;
				//
					hideCommentLoading();
			}
		);
}
/*
 * loadArticles
 */
function loadArticles(){
	//UPDATE OUR COOKIES
		setCookies();
	//
		showLoading();
	//
		//var article_id = $("#article > div").attr("id");
	//
		$.getJSON(
			"/_face/class/load_news.php"+buildQuery(), 
			function(data){
				//
					if($('#bot_results').length==0){
						//CREATE THE LOADING GRAPHIC
							var results_div = $("<div>").html("");
							results_div.attr("id","bot_results");
							results_div.attr("class","bot_results");
						//
							results_div.appendTo("#bot_blog");
					}
					$("#bot_results").empty();
				//
					blog_total_articles = data.total_count;
				//
					highlightPage();
				//
					var result_html = "<ul>";
					for(var i=0;i<data.items.length;i++){
						if(article_id==data.items[i].id){
							result_html+= "<li><a class='selected' href='" +data.items[i].url+ "'>" + data.items[i].title + "<span class='date'>" +data.items[i].date +"</span></a></li>";
						}else{
							result_html+= "<li><a href='" +data.items[i].url+ "'>" + data.items[i].title + "<span class='date'>" +data.items[i].date +"</span></a></li>";
						}
					}
					result_html+= "</ul>";
				//
					var result_div = $("#bot_results").html(result_html);
				//CREATE OUR CONTROLS
					if(blog_total_articles>bot_blog_limit){
						if($('#bot_controls').length==0){
							//OUR CONTROL CONTAINER
								var controls_div = $("<div>").html("");
								controls_div.attr("id","bot_controls");
								controls_div.attr("class","bot_controls");
								controls_div.appendTo("#bot_blog");
						}
						$('#bot_controls').empty();
						loadControls();
					}
				//
					hideLoading();
			}
		);
}

/*
 * highlightPage
 */
function highlightPage(){
	//console.log(bot_blog_limit);
	//console.log(blog_total_articles);
	//console.log(Math.ceil(bot_blog_start/(bot_blog_limit)));
	var page = Math.ceil(bot_blog_start/bot_blog_limit) + 1;
	var page_name = '#page_'+page;
	//$(page_name).addClass("selecetd");
	$(page_name).toggleClass("selecetd");

}

/*
 * loadControls
 */
function loadControls(){
	//		
		var num_pages = Math.ceil(blog_total_articles/bot_blog_limit);
		var current_page = Math.ceil(bot_blog_start/bot_blog_limit) + 1;
	//OUR NEXT BUTTON
		var next_div = $("<div>").html("");
		next_div.attr("id","bot_next");
		next_div.attr("class","bot_next");
		if(current_page<num_pages){
			next_div.bind("click", function(event){
				//
					var next_start = Number(bot_blog_start) + Number(bot_blog_end);
					if(next_start<blog_total_articles){
						//
							bot_blog_start = next_start;
						//
							//bot_blog_end = Number(bot_blog_end) + Number(bot_blog_end);
							bot_blog_end = Number(bot_blog_limit);
						//UPDATE OUR COOKIES
							setCookies();
						//CHECK TO SEE IF WE SHOULD LOAD ON STARTUP
							loadArticles();
					}
			});
		}else{
			next_div.attr("class", "bot_next_disabled");
		}
		
		next_div.appendTo("#bot_controls");
	
	//OUR PREVIOUS BUTTON
		var prev_div = $("<div>").html("");
		prev_div.attr("id","bot_prev");
		prev_div.attr("class","bot_prev");
		if(current_page>1){
			prev_div.bind("click", function(event){
				//
					var prev_start = Number(bot_blog_start) - Number(bot_blog_limit);
					if(prev_start>=0){
						//
							bot_blog_start = prev_start;
						//
							//bot_blog_end = Number(bot_blog_end) - Number(bot_blog_limit);
							bot_blog_end = Number(bot_blog_limit);
						//UPDATE OUR COOKIES
							setCookies();
						//CHECK TO SEE IF WE SHOULD LOAD ON STARTUP
							loadArticles();
					}
			});
		}else{
			prev_div.attr("class", "bot_prev_disabled");
		}
		prev_div.appendTo("#bot_controls");
	
	//OUR PAGES
		var pages_div = $("<div>").html("");
		pages_div.attr("id","bot_pages");
		pages_div.attr("class","bot_pages");
		pages_div.appendTo("#bot_controls");
		//
			if(current_page>page_limit){
				var page_start = (current_page-page_limit)+1;
			}else{
				var page_start = 1;
			}
		//
			for(var i=page_start;i<=num_pages;i++){
				if(i<page_limit+page_start){
					var new_start = bot_blog_limit*(i-1);
					var page_div = $("<a>").html(i);
					//page_div.attr("href", "#");
					page_div.attr("id", "page_"+i);
					if(current_page==i){
						page_div.addClass("selected");
					}
					page_div.bind("click", function(event){
						//console.log($(this).attr("id"));
							bot_blog_start = bot_blog_limit*(Number($(this).html())-1);
						//
							//bot_blog_end = Number(bot_blog_start) + Number(bot_blog_limit);
							bot_blog_end = Number(bot_blog_limit);
						//UPDATE OUR COOKIES
							setCookies();
						//CHECK TO SEE IF WE SHOULD LOAD ON STARTUP
							loadArticles();
					});
					page_div.appendTo("#bot_pages");
				}
			}
}

$(document).ready(function() {
	//REMOVE ANY JAVASCRIPT WARNINGS
		$(".warning").remove();
	//
		var tmp = $("#article > div").attr("id").split("-");
		article_id = tmp[1];
	//LOAD UP OUR COOKIES IT THERE ARE ANY
		loadCookies();
	//CHECK TO SEE IF WE SHOULD LOAD ON STARTUP
		loadArticles();
	//LOAD OUR COMMENTS
		loadComments();
	//
		if($('#comment_form').length>0){
			//SET THE SECURITY TOKEN
				$.get("/_face/class/secure_form/token.php",function(txt){
					$('#comment_form').append('<input type="hidden" id="token_field" name="ts" value="'+txt+'" />');
				});
			//SET UP THE FORM VALIDATION
				$("#comment_form").validate({
					submitHandler: function(form) {
						//
							//var article_id = $("#article > div").attr("id");
							var name = $("#name_field").val();
							var message = $("#comment_field").val();
							var token = $("#token_field").val();
						//
							$.post(
								"/_face/class/secure_form/save_comment.php", 
								{
									news_id: article_id,
									name: name,
									message: message,
									ts: token
								},
								function(data){
									//
										setCookies();
									//
										if(data.success==1){
											//REMOVE ANY JAVASCRIPT ERRORS
												$(".form_error").remove();
											//CLEAR OUR FIELDS
												//$("#name_field").val("");
												$("#comment_field").val("");
												$.get("/_face/class/secure_form/token.php",function(txt){
													$("#token_field").val(txt);
												});
											//RELOAD THE COMMENTS
												comment_id = data.comment_id;
												loadComments();
										}else{
											//REMOVE ANY JAVASCRIPT ERRORS
												$(".form_error").remove();
											//DISPLAY THE ERROR MESSAGE
												var error_div = $("<div>").html(data.message);
												error_div.addClass("form_error");
												error_div.prependTo("#blog_comment_form");
										}
								},
								"json"
							);
					},
					rules: {
						Name: "required",
						Comment: "required"
					},
					messages: {
						Name: "Please enter your name",
						Comment: "Please enter a comment"
					}
				});
		}
});
