﻿function ShowReports(pageNumber, fromCache){
	CommonShowList("Report", pageNumber, fromCache);
}

function AddReport() {
	CommonAdd("Report");
}

function AddDownloadReport() {
	CommonAdd("DownloadReport");	
}

function ShowReport(lngReportID){
	CommonShow("Report", lngReportID);
}

function ShowReportByIndex(index){
	CommonShowByIndex("Report", index);
}

function DeleteReport(lngReportID){   
    if (confirm("Are you sure you want to delete this report?")){
		CommonDelete("Report", lngReportID);
    }
}

function SaveReport(){
	var objMessage = document.getElementById("message");
	var valid = ValidForm("reportForm");

	if(valid) {
		var dtmDateRange = document.getElementById("dtmDateRange");
		if(dtmDateRange.style.display != "none") {
			var dates = new Array("dtmDateRangeStart","dtmDateRangeEnd")
			for(var i=0; i<dates.length; i++) {
				var o = document.getElementById(dates[i]);
				if(o) {
					if(!IsValidDate(o.value))  {
						o.select();
						valid = false;
					}
				}
			}
		}
	}

	if(valid) {
		valid = false;
		var arr = document.getElementsByName("bytReportTypeID");
		for(i=0; i<arr.length; i++) {
			if(arr[i].checked) {
				valid = true;
				break;
			}
		}
		
		if(!valid) {
			objMessage.innerHTML = "Please select a report type";
		}
	}
	
	if(valid) {
		var objSelect1 = document.getElementById("select0_0");
		var objSelect2 = document.getElementById("select1_0");
		
		if(objSelect1 && objSelect2) {
			if(objSelect1.options[objSelect1.selectedIndex].value == ""
				&& objSelect2.options[objSelect2.selectedIndex].value == "") {
				objMessage.innerHTML = "Please select at least one  field to report";
				valid = false;
			}
		}
	}

	if(valid) {
		var soapData = SoapDataBuilder("SaveReport",parseForm('reportForm'));
		AjaxRequest("Report.asmx",soapData,"Report.xsl");
	}
}






function DownloadNewReport(){
	var objMessage = document.getElementById("message");
	var valid = ValidForm("reportForm");

	if(valid) {
		var dtmDateRange = document.getElementById("dtmDateRange");
		if(dtmDateRange.style.display != "none") {
			var dates = new Array("dtmDateRangeStart","dtmDateRangeEnd")
			for(var i=0; i<dates.length; i++) {
				var o = document.getElementById(dates[i]);
				if(o) {
					if(!IsValidDate(o.value))  {
						o.select();
						valid = false;
					}
				}
			}
		}
	}

	if(valid) {
		valid = false;
		var arr = document.getElementsByName("bytReportTypeID");
		for(i=0; i<arr.length; i++) {
			if(arr[i].checked) {
				valid = true;
				break;
			}
		}
		
		
	}
	
	if (valid) {
	 var age = "";
	 var location = "";
	 var sport = "";
	 var sex = "";
	 var reason = "";
	 var part = "";
	 var nature = "";
	 var mech = "";
	 var treatment = "";
	 var action = "";
	 var region = "";
	 var start = document.getElementById("dtmDateRangeStart").value;
	 var end = document.getElementById("dtmDateRangeEnd").value;
	 
	 if (document.getElementById("bytReportAge").checked) {age = "on";}
	 if (document.getElementById("bytReportLocation").checked) {location = "on";}	
	 if (document.getElementById("bytReportSport").checked) {sport = "on";}
	 if (document.getElementById("bytReportSex").checked) {sex = "on";}
	 if (document.getElementById("bytReportReasonforpresentation").checked) {reason = "on";}
	 if (document.getElementById("bytReportBodyPartinjured").checked) {part = "on";}
	 if (document.getElementById("bytReportNatureofInjury").checked) {nature = "on";}
	 if (document.getElementById("bytReportMechanism").checked) {mech = "on";}	
	 if (document.getElementById("bytReportInitialtreatment").checked) {treatment = "on";}
	 if (document.getElementById("bytReportAction").checked) {action = "on";}
     if (document.getElementById("bytReportBodyRegion").checked) {region = "on";}
	
	
	 
		 window.open("downloadreport.aspx?q=&a=" + age + "&l=" + location + "&sp=" + sport + "&s=" + sex + "&res=" + reason +
				 "&part=" + part + "&nature=" + nature + "&mech=" + mech + "&treat=" + treatment + "&action=" + action + "&region=" + region
				 + "&start=" + start + "&end=" + end);
	}
	
}











function ChangeReportDateType(bytReportDateTypeID) {
	var dtmDateRange = document.getElementById("dtmDateRange");
	if(dtmDateRange) {
		switch(bytReportDateTypeID) {
			case 0:
				dtmDateRange.style.display = "none";
				break;			
			case 1:
				dtmDateRange.style.display = "block";
				break;
		}
	}
}

function ChangeReportFields() {
	var soapData = SoapDataBuilder("ChangeReportFields");
	AjaxRequest("Report.asmx",soapData,"Report.xsl","fieldSelector", null, true);	
}

var reportXmlHTTP = new AkimanXmlAsyncHTTP();

function UpdateReportFields(index, depth) {
	if(index == null || depth == null) {
		return;
	}
	
	var objSelect = document.getElementById("select" + index + "_" + (depth-1));
	if(objSelect == null) {
		return;
	}

	var divId = "fieldSelect" + index + "_" + depth;
	var objFieldSelect = document.getElementById(divId);
	
	if(objFieldSelect == null) {
		return;
	}

	var lngFieldID = objSelect.options[objSelect.selectedIndex].value;
		
	if(lngFieldID == "") {
		objFieldSelect.innerHTML = "";
	}
	else {
		//objFieldSelect.innerHTML = '<span style="color:red">Loading...</span>';
		objFieldSelect.innerHTML = '<span style="color:red"><img src="images/imgsmallLoading.gif" /></span>';
		var params = CustomParamBuilder("lngFieldID", lngFieldID, "index", index, "depth", depth);
		var soapData = SoapDataBuilder("UpdateReportFields", params);
		
		reportXmlHTTP.loadURL("Report.asmx", soapData, PopulateReportFields, "Report.xsl");
		SetEnableReportFields(false);
		//AjaxRequest("Report.asmx",soapData,"Report.xsl",divId, null, true);	
	}
}

function PopulateReportFields() {
	if (reportXmlHTTP.ReadyState() == 4) {
		if (reportXmlHTTP.Status() == 200) {
			try {
				var akimanXmlDocument = new AkimanXmlDocument(reportXmlHTTP.ResponseText());
				var objXML = akimanXmlDocument.objXml;
				
				var index = GetXmlNodeValue(objXML.getElementsByTagName("index"));
				var depth = GetXmlNodeValue(objXML.getElementsByTagName("depth"));
				
				var objFieldSelect = document.getElementById("fieldSelect" + index + "_" + depth);

				objFieldSelect.innerHTML = reportXmlHTTP.TransformResponse();
				//reportXmlHTTP.setBusy(false);
				SetEnableReportFields(true);
			}
			catch(e) {
				alert(e.message)
			}
		}
	}
}

function SetEnableReportFields(blnEnabled) {
	var index = 0;

	while(SetEnableReportField(index, 0, blnEnabled)) {
		index++;
	}
}

function SetEnableReportField(index, depth, blnEnabled) {
	var objSelect = document.getElementById("select" + index + "_" + depth);
	if (objSelect) {
		objSelect.disabled = !blnEnabled;
		SetEnableReportField(index, depth + 1, blnEnabled);
		return true;	// found
	}
	else {
		return false;	// not found
	}
}

function ViewReport(lngReportID) {
	 window.open("report.aspx?q=" + (lngReportID));
}