var currentPage 		= 0;
var currentSort 		= "";
var currentRecord		= "";
var currentSortOrder 	= "DESC";
var maxPage;

function $(id) {
	return document.getElementById(id);
}

function parseRecords(xml) {
	with (xml.getElementsByTagName("records").item(0)) {
    	page = getAttribute("page");
		if (page == "") {
			page = 0;
		}
		else {
			page = getAttribute("page")*1;
		}
		
        maxPerPage 	= getAttribute("max_per_page");
        startId 	= maxPerPage*page+1;
        total 		= getAttribute("total")*1;
        maxPage 	= Math.ceil(total/maxPerPage);
        
		$("dataStatus").innerHTML = 
          "&nbsp;&nbsp;Records : " + startId + " - " + (startId+getAttribute("count")*1-1) + " from " + total + " (Page: " +
          (page+1) + " of " + maxPage + ")";
    }

	$("btnFirst").innerHTML = page == 0 ? "<span class=\'pgStart pgEmpty\'>&laquo; start</span>" : "<span class=\'pgStart\'><a class=\'item\' href=\'javascript://\' onclick=javascript:changePage(-currentPage) title=\'Start\'>&laquo; start</a></span>";
    $("btnLast").innerHTML 	= page+1 == maxPage ? "<span class=\'pgEnd pgEmpty\'>end &raquo;</span>" : "<span class=\'pgEnd\'><a class=\'item\' href=\'javascript://\' onclick=javascript:changePage(maxPage-currentPage-1) title=\'End\'>end &raquo;</a></span>";
	$("btnPrev").innerHTML 	= page == 0 ? "<span class=\'pgPrev pgEmpty\'>&lsaquo; prev</span>" : "<span class=\'pgPrev\'><a class=\'item\' href=\'javascript://\' onclick=javascript:changePage(-1) title=\'Prev Page\'>&lsaquo; prev</a></span>";
    $("btnNext").innerHTML 	= page+1 == maxPage ? "<span class=\'pgNext pgEmpty\'>next &rsaquo;</span>" : "<span class=\'pgNext\'><a class=\'item\' href=\'javascript://\' onclick=javascript:changePage(1) title=\'Next Page\'>next &rsaquo;</a></span>";
	
    d = $("display_data");
    for (i = d.rows.length-1; i >= 0; i--)
      d.deleteRow(i);
    record = xml.getElementsByTagName("record");
    result = "";
	
	z = 0;
    for (i = 0; i < record.length; i++) {
		tr = document.createElement("tr");
			td = document.createElement("td");

			first  = '<div class=\'searchResults\'><div class=\'resultIcons\'><div class=\'resultPage\'>' + record[i].childNodes[4].childNodes[0].nodeValue + '</div></div><div class=\'resultTitle\'><a class=\'items\' href=\'javascript://\' onclick=xajax_callDynamicContent(\'news\',\'' + record[i].childNodes[0].childNodes[0].nodeValue + '\')>' + record[i].childNodes[1].childNodes[0].nodeValue + '</a></div><div class=\'searchDate\'>' + record[i].childNodes[5].childNodes[0].nodeValue + ' &rsaquo; berita <a href=\'javascript://\' onclick=changeQuery(\'' + record[i].childNodes[2].childNodes[0].nodeValue + '\')>' + record[i].childNodes[3].childNodes[0].nodeValue + '</a></div></div>';
			
			td.innerHTML = first;
            tr.appendChild(td);

		d.appendChild(tr);
		z ++;
		
    }
    return result;
}

function getRecords() {
	advAJAX.get({
        url : "assets/libs/grid_news.php?cat="+ currentQuery +"&p="+currentPage+"&s="+currentSort+"%20"+currentSortOrder, onInitialization : function() {

            $("dataStatus").innerHTML 	= ' Loading data from JSON-XML ';
            $("btnPrev").innerHTML 		= "<span class=\'pgPrev pgEmpty\'>&lsaquo; prev</span>";
            $("btnNext").innerHTML 		= "<span class=\'pgNext pgEmpty\'>next &rsaquo;</span>";
            $("btnFirst").innerHTML 	= "<span class=\'pgStart pgEmpty\'>&laquo; start</span>";
            $("btnLast").innerHTML 		= "<span class=\'pgEnd pgEmpty\'>end &raquo;</span>";
        },
		uniqueParameter: "custom_unique_param",
        onSuccess : function(obj) { parseRecords(obj.responseXML); }
    });
}

function changeSort(s) {
    if (currentSort == s) { 
		currentSortOrder = currentSortOrder == "ASC" ? "DESC" : "ASC"; 
	}
	else {
		currentSortOrder = "DESC";
		if (currentSort != "")
			$(currentSort + "Sort").style.fontWeight = "normal";
         	$(s + "Sort").style.fontWeight = "bold";
    }
    currentSort = s;
    changePage(0);
}

function changeQuery(s) {
    currentQuery = s;
    changePage(0);
}

function changePage(p) {
    currentPage += p;
    getRecords();
}

function initDynamicTable(query) {
	changeQuery(query)
}
