window.onload = function()
{
	// ---- Overwrite those two functions: Start ---- //
	ToolMan._helpers.moveBefore = moveBefore;
	ToolMan._helpers.moveAfter = moveAfter;
	// ---- Overwrite those two functions: End ---- //

	//junkdrawer.restoreListOrder("ReportItemList");
	dragsort.makeListSortable(document.getElementById("ReportItemList"), verticalOnly, saveOrder);
	
	// ---- Load all open block ---- //
	
}
var dragsort = ToolMan.dragsort();
var junkdrawer = ToolMan.junkdrawer();
var itemEnd = null;
var targetDropItem = null;
var currentCollapseBlock = null;
var CurrentReportItemId = 0;
var OpenedReportItems = new Array();

function moveBefore(item1,item2)
{
	if (item2) {
		itemEnd = item2.getAttribute("order");
	} else
		delete itemEnd
	
	var parent = item1.parentNode;
	parent.removeChild(item1);
	parent.insertBefore(item1, item2);
}

function moveAfter(item1,item2) {
	if (item2) {
		itemEnd = item2.getAttribute("order");
	} else
		delete itemEnd
	
	var parent = item1.parentNode
	parent.removeChild(item1)
	parent.insertBefore(item1, item2 ? item2.nextSibling : null)
}

function verticalOnly(item)
{
	item.toolManDragGroup.verticalOnly();
}

function saveOrder(item) 
{
	var group = item.toolManDragGroup;
	var list = group.element.parentNode;
	var id = list.getAttribute("id");

	if (id == null) return;
	group.register('dragend', function() {
		if (itemEnd && item.getAttribute("order") != itemEnd) {
			var start = item.getAttribute("order");
			myAjax.DisplayWaitMessage = false;
			
			var sendURL = webroot + "report/reorder/"+start+"/"+itemEnd;
			jQuery.ajax({
				url: sendURL,
				success: function() {}
			});
			// ---- Resort Order item ---- //

			start = parseInt(start);
			var end = parseInt(itemEnd);

			if (start > end) {
				// ---- Switch start and end ---- //
				var tmp = start;
				start = end;
				end = tmp;
				divContent = null;
				itemid = item.id;
				itemorder = itemid.split(":");
				divContent = $("ReportContent:"+itemorder[1]);
				collapseBlock = $("CollapseBlock:"+itemorder[1]);
				// ---- update >= start and < end ---- //
				for (k=end-1;k>=start;k--) {
					elem = $("ls_reportitem:"+k);
					if (elem)
					{
						elem.setAttribute("id","ls_reportitem:"+(k+1));
						elem.setAttribute("order",k+1);
						$("ReportContent:"+k).setAttribute("id","ReportContent:"+(k+1));
						$("CollapseBlock:"+k).setAttribute("id","CollapseBlock:"+(k+1));
					}
				}
				// ---- update order of source ---- //
				item.setAttribute("id","ls_reportitem:"+start);
				item.setAttribute("order",start);
				divContent.setAttribute("id","ReportContent:"+start);
				collapseBlock.setAttribute("id","CollapseBlock:"+start);
			}
			else
			{
				// ---- Keep the source, that is item ---- //
				// ---- update >= start and < end ---- //
				itemid = item.id;
				itemorder = itemid.split(":");
				divContent = $("ReportContent:"+itemorder[1]);
				collapseBlock = $("CollapseBlock:"+itemorder[1]);
				
				for (var n=(start+1);n<=end;n++)
				{
					elem = $("ls_reportitem:"+n);
					if (elem)
					{
						elem.setAttribute("id","ls_reportitem:"+(n-1));
						elem.setAttribute("order",n-1);
						$("ReportContent:"+n).setAttribute("id","ReportContent:"+(n-1));
						$("CollapseBlock:"+n).setAttribute("id","CollapseBlock:"+(n-1));
					}
				}
				// ---- update order of source ---- //
				item.setAttribute("id","ls_reportitem:"+end);
				item.setAttribute("order",end);
				divContent.setAttribute("id","ReportContent:"+end);
				collapseBlock.setAttribute("id","CollapseBlock:"+end);
			}
		}
	})
}

function CollapseBlock(elem)
{
	var _parent = elem.parentNode;
	while (_parent != null)
   	{
   		if (_parent.tagName == "DIV")
   			break;
   		else
   			_parent = _parent.parentNode;
   	}
   	blockId = _parent.parentNode.getAttribute("item_id");
   	
   	var sendURL = webroot+"report/closeblock/"+blockId;
   	jQuery.ajax({
		url: sendURL,
		success: function() {
			var contentBlock1 = jQuery_catches('#ReportItemList > li[item_id='+blockId+'] > div');
			// ---- Hide the content block ---- //
			contentBlock1[1].style.display = "none";
			contentBlock1[0].style.display = "block";
		}
	});
}

var frameId;
function ViewReport(report_id,OptionId,chartId)
{
	var che_name = hide_block(report_id,1);
	frameId = OptionId;
	sendURL = webroot+"report/ViewReport/"+report_id+"/"+OptionId+"/"+chartId;
	//alert(sendURL);
	jQuery.ajax({
			url: sendURL,
			success: function(data) {
				// ---- Xu ly gi gi do o day ---- //
				ReportItemResponse(data,report_id);
				// --- Thao che o day ---- //
				var currentLI = jQuery_catches('#ReportItemList > li[item_id='+report_id+']');
				currentLI[0].removeChild(document.getElementById(che_name));
				//document.body.removeChild(hidden_layer[che_name][0]);
				hidden_layer[che_name] = null;
				hidden_layer.cnt--;
				try{ini_cmd_chart();}catch(e){}
			}
		});
	
	/*myAjax.SetWaitMessage("Please wait while loadding report item");
	myAjax.MakeRequestAndHandle(ReportItemResponse,"GET",sendURL,true,"myForm","Text");*/
}

function ReportItemResponse(data,report_id)
{
	var elem = $("ReportItem:"+report_id);
	
	if (report_id == 5) {
		var chart = $("chart");
		while (chart.firstChild)
			chart.removeChild(chart.firstChild);
		
		var dataArr = data.split(/\|/g);
		data0 = dataArr[0];
	    var tmpDiv = document.createElement("DIV");
	    tmpDiv.innerHTML = "<table><tbody>"+data0+"</tbody></table>";
		tmpTbody = tmpDiv.firstChild.firstChild;
		for(var i=0; i<tmpTbody.childNodes.length; i=i+1)  {
			chart.appendChild(tmpTbody.childNodes[i].cloneNode(true));
		}
		
		var displayData = $("displayData");
		while (displayData.firstChild)
			displayData.removeChild(displayData.firstChild);
		data1 = dataArr[1];
	    var tmpDiv = document.createElement("DIV");
	    tmpDiv.innerHTML = "<table><tbody>"+data1+"</tbody></table>";
		tmpTbody = tmpDiv.firstChild.firstChild;
		for(var i=0; i<tmpTbody.childNodes.length; i=i+1) {
			displayData.appendChild(tmpTbody.childNodes[i].cloneNode(true));
		}
	
	}
	else
	{
		if (Container.DOM.IsIE()) {
			if (elem.tagName == "DIV")
				elem.innerHTML = data;
			else if (elem.tagName == "TBODY") {
				// ---- Remove all children of tbody ---- //
				while (elem.firstChild)
					elem.removeChild(elem.firstChild);

				// ---- Append new child ---- //
				var myDiv = document.createElement("div");
				myDiv.innerHTML = "<table><tbody>"+data+"</tbody></table>";
				
				var tempTbody = myDiv.firstChild.firstChild;
				for (var i = 0;i < tempTbody.childNodes.length; i++) {
					node = tempTbody.childNodes.item(i); {
						elem.appendChild(node);
					}
				}
			}
		} else
			elem.innerHTML = data;
	}
}
function UpdateTimeFrame(timeperiod) {
	var sendURL = "?option="+timeperiod;
	window.location = sendURL;
}
function ExpandDomainBlock(elem)
{
	$('DomainChooser_Open').style.display = "block";
	$('CollapseTable:DomainBlock').style.display = "none";
}
function CollapseDomainBlock(elem)
{
	$('DomainChooser_Open').style.display = "none";
	$('CollapseTable:DomainBlock').style.display = "block";
}

