window.onload = init;
var ajax;
var ajaxCount;
var pages = 0;
var index = 0;
var limit = 5;       //Set paging limiter

function init() {
   document.getElementById("prev").style.display = "inline";
   document.getElementById("next").style.display = "inline";
   loader();
   getPageCount();
}

//getPageCount()
function getPageCount() {
   //Button controls
   url = "include/newsServ.php?cmd=count";
   ajaxCount = getXMLObject();
   ajaxCount.open("GET", url, true);
   ajaxCount.onreadystatechange = feedback_count;
   ajaxCount.send(null);
}

//getNews(starting id, limit id)
function getNews(index, limit) {

   //Button control
   if (index == 0) { document.getElementById("prev").disabled = true; }
   else { document.getElementById("prev").disabled = false; }
   
   if (index+1+limit > pages*limit) { document.getElementById("next").disabled = true; }
   else { document.getElementById("next").disabled = false; }
   
   //Page counter
   document.getElementById("page").innerHTML = "Page "+((index/limit)+1)+" of "+(pages);

   url = "include/newsServ.php?cmd=get&article="+index+"&limit="+limit;
   ajax = getXMLObject();
   ajax.open("GET", url, true);
   ajax.onreadystatechange = feedback;
   ajax.send(null);
}

function nextPage() {
   if (index+limit <= pages*limit) {
      loader();
      index+=limit;
      getNews(index, limit);
   }
}

function prevPage() {
   loader();
   index-=limit;
   if (index < 0) index = 0;
   getNews(index, limit);
}

function viewArticle(id) {
    loader();
    document.getElementById("page").innerHTML = "<a href='#' onclick='reset()'>Click to view Article List</a>";
    document.getElementById("next").style.display = "none";
    document.getElementById("prev").style.display = "none";
    url = "include/newsServ.php?cmd=read&article="+id;
    ajax = getXMLObject();
    ajax.open("GET", url, true);
    ajax.onreadystatechange = feedback;
    ajax.send(null);
}

function reset() {
   loader();
   document.getElementById("next").style.display = "inline";
   document.getElementById("prev").style.display = "inline";
   getNews(index, limit);
}









/**********************************AJAX HELPER FUNCTIONS**********************************/
//Show loader
function loader() {
  document.getElementById("news_content").innerHTML =
     "<div class='article' style='height: 700px;'><img src='img/ajax-loader.gif' style='position: relative; top: 250px; right: 160px;' /></div>";
}

//Basic Command Feedback
function feedback() {
    var status = document.getElementById("news_content");
    //Finished loading
    if (ajax.readyState == 4) {
        //RESPONSE OK (200)
        if (ajax.status == 200) {
             status.innerHTML = ajax.responseText;
        }
        else { }

    }
}

function feedback_count() {
   //Finished loading
    if (ajaxCount.readyState == 4) {
        //RESPONSE OK (200)
        if (ajaxCount.status == 200) {
            pages = Math.ceil(ajaxCount.responseText / limit);
            if (pages < 1) { pages = 1; }
            if (article > 0) {
              viewArticle(article);
            }
            else {
              getNews(index, limit);
            }
        }
        else { }
    }
}

//AJAX Initializer
function getXMLObject()  //XML OBJECT
{
   var xmlHttp=null; // Defines that xmlHttp is a new variable.
    // Try to get the right object for different browser
    try {
    // Firefox, Opera 8.0+, Safari, IE7+
        xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
    } catch (e) {
    // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

    }
    return xmlHttp;
}


function getElementsByClass(searchClass, domNode, tagName) {
	if (domNode == null) domNode = document;
	if (tagName == null) tagName = '*';
	var el = new Array();
	var tags = domNode.getElementsByTagName(tagName);
	var tcl = " "+searchClass+" ";
	for(i=0,j=0; i<tags.length; i++) {
		var test = " " + tags[i].className + " ";
		if (test.indexOf(tcl) != -1)
			el[j++] = tags[i];
	}
	return el;
}