//show OR hide funtion depends on if element is shown or hidden
function shoh(id) { 
	
	if (document.getElementById) { // DOM3 = IE5, NS6
		if (document.getElementById(id).style.display == "none"){
			document.getElementById(id).style.display = 'block';
		} else {
			document.getElementById(id).style.display = 'none';			
		}	
	} else { 
		if (document.layers) {	
			if (document.id.display == "none"){
				document.id.display = 'block';
			} else {
				document.id.display = 'none';
			}
		} else {
			if (document.all.id.style.visibility == "none"){
				document.all.id.style.display = 'block';
			} else {
				document.all.id.style.display = 'none';
			}
		}
	}
}

function customReportCheckboxes(checkbox){
	var checkedBox = checkbox.name;
	var myString = checkedBox;
	var mySplitResult = myString.split("_");
	var sectionBoxName = "rowSec_"+mySplitResult[1];
	var subSectionBoxName = "rowSubSec_"+ mySplitResult[1];
	var groupCheckboxes=document.getElementsByName(subSectionBoxName);
	var masterCheckbox =document.getElementsByName(sectionBoxName);
			         
	if(checkedBox == sectionBoxName){
		for(i=0;i < groupCheckboxes.length; i++){
			if(checkbox.checked){
				groupCheckboxes[i].checked = true;
			}else if (!groupCheckboxes[i].disabled) { // don't uncheck it if it's not enabled, because that means it's mandatory
				groupCheckboxes[i].checked = false;
			}
		}
	}
			         
	//sub section group checkbox manage
	if(checkedBox == subSectionBoxName){
		var checkedCount = 0;
		for(i=0;i < groupCheckboxes.length; i++){
	    	if(groupCheckboxes[i].checked){
				checkedCount++;
			}
		}
		for(j=0;j < masterCheckbox.length; j++){
			if(checkedCount < 1){
				masterCheckbox[j].checked = false;
			}else{
				masterCheckbox[j].checked = true;
			}
		}
	}		         
}


		



function postFormReportDef(){
	var sections = document.getElementsByClassName('rowSubSec');
	var inputCheckboxes = document.getElementsByClassName('subSectionCheckbox');
	var checkedState = document.getElementsByClassName('inputCheckbox');
	var form = document.getElementById('myForm');
	var index = 0;
	var name_prefix = "subsection_id_"

	if(form.report_name.value == '' || form.report_cd.value == '')
	{
		alert("You must fill in a name and an acronym");
		return;
	}
	
	var anyChecked = false;
	inputCheckboxes.each(function(box) { anyChecked = anyChecked || box.checked; });
	if(!anyChecked)
	{
		alert("You have no sections selected");
		return;
	}
	
	sections.each(function(section) {
		var sectionID = section.id;
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", name_prefix + index);
		currentElement.setAttribute("id", name_prefix + index);
		currentElement.setAttribute("value", sectionID);
		form.appendChild(currentElement);
		index = index + 1;
	});
     
	var index2 = 0;
	inputCheckboxes.each(function(box) {			         
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", "subsection_selected_" + index2);
		currentElement.setAttribute("id", "subsection_selected_" + index2);
		currentElement.setAttribute("value", box.checked );
		form.appendChild(currentElement);
		index2 = index2 + 1;
     });
     
    form.action="/persistCustomReport.do"
    form.submit()
}

//custom packages form
function postFormCustomPackage() {
	var sections = document.getElementsByClassName('rowSubSec');
	var inputCheckboxes = document.getElementsByClassName('subSectionCheckbox');
	var checkedState = document.getElementsByClassName('inputCheckbox');
	var form = document.getElementById('myPackageForm');
	var index = 0;
	var name_prefix = "subsection_id_"


form.action="/saveCustomPackageDefinition.do"
form.submit()

}


function postFormCustomPackageDef(){
	var sections = document.getElementsByClassName('rowSubSec');
	var inputCheckboxes = document.getElementsByClassName('subSectionCheckbox');
	var checkedState = document.getElementsByClassName('inputCheckbox');
	var form = document.getElementById('myPackageForm');
	var index = 0;
	var name_prefix = "subsection_id_"

	if(form.report_name.value == '' || form.report_cd.value == '')
	{
		alert("You must fill in a name and an acronym");
		return false;
	}
	
	var anyChecked = false;
	inputCheckboxes.each(function(box) { anyChecked = anyChecked || box.checked; });
	if(!anyChecked)
	{
		alert("You have no sections selected");
		return false;
	}
	
	sections.each(function(section) {
		var sectionID = section.id;
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", name_prefix + index);
		currentElement.setAttribute("id", name_prefix + index);
		currentElement.setAttribute("value", sectionID);
		form.appendChild(currentElement);
		index = index + 1;
	});
     
	var index2 = 0;
	inputCheckboxes.each(function(box) {			         
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", "subsection_selected_" + index2);
		currentElement.setAttribute("id", "subsection_selected_" + index2);
		currentElement.setAttribute("value", box.checked );
		form.appendChild(currentElement);
		index2 = index2 + 1;
     });
     
    form.action="/saveCustomPackageDefinition.do"
    form.submit()
}

function myCustomPackageForm() {

	var sections = document.getElementsByClassName('rowSubSec');
	var inputCheckboxes = document.getElementsByClassName('subSectionCheckbox');
	var checkedState = document.getElementsByClassName('inputCheckbox');
	var form = document.getElementById('myPackageForm');
	var index = 0;
	var name_prefix = "subsection_id_"
	var favouritePackage = document.getElementsByName("favouritePackage");
	
	
	var index2 = 0;	
	inputCheckboxes.each(function(box) {	
	
	if(box.checked)		  {       
					
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", "contained_products_id");
		currentElement.setAttribute("value", box.value );
		form.appendChild(currentElement);
		
	   currentElement = document.createElement("input");
	   currentElement.setAttribute("type", "hidden");
	   currentElement.setAttribute("name", "position");
	   currentElement.setAttribute("value", index2 );
		form.appendChild(currentElement);
		
		index2 = index2 + 1;
		}
     });
	
	
		
	var packageName = document.getElementsByName('name');
	if (packageName[0].value == null || packageName[0].value == 'Undefined' || packageName[0].value == '') 
	{
		alert('Please specify a package name');	
		return;
	}
	//convert any lower case values to uppper case.
	form.product_code.value = form.product_code.value.toUpperCase();
	var packageAcronym = document.getElementsByName('product_code');
	if (packageAcronym[0].value == null || packageAcronym[0].value == 'Undefined' || packageAcronym[0].value == '' || !packageAcronym[0].value.match(/^[A-Z][A-Z][A-Z]$/))
	{
		alert('Please specify a valid acronym\nThe acronym should be a three letter code in upper case.');	
		return;
	}
	
    var anyChecked = false;
	inputCheckboxes.each(function(box) { anyChecked = anyChecked || box.checked; });
	if(!anyChecked)
	{
		alert("You have no products selected");
		return;
	}


		// Set the favourite flag correctly.
	form.favourite.value = form.favouritePackage.checked;

	
	form.action="/saveCustomPackageDefinition.do"
    form.submit()
//alert("lets get this persist form done");
}



function customPackageRadio()
{
	var sections = document.getElementsByClassName('subSectionCheckbox');
	//alert(sections.length);
	for(i=0;i < sections.length; i++)
	{
		if (sections[i].checked)
		{
			//alert('yes');
			var mySplitResult = sections[i].name.split("_");
			var masterCheckbox =document.getElementById("check_rowSec_id_" + mySplitResult[1]);
			masterCheckbox.checked = true;
			//alert(masterCheckbox.checked);
		}
	}
}

//persist ledger definition
function postFormLedgerReportDefinition(){
	var sections = document.getElementsByClassName('rowSubSec');
	var inputCheckboxes = document.getElementsByClassName('subSectionCheckbox');
	var checkedState = document.getElementsByClassName('sectionCheckbox');
	var form = document.getElementById('myForm');
	var index = 0;
	var name_prefix = "subsection_id_"



	var anyChecked = false;
	checkedState.each(function(box) { anyChecked = anyChecked || box.checked; });
	if(!anyChecked)
	{
		alert("you have no sections selected");
		return false;
	}
	
	// if a section is unselected, but contains a selected, disabled  
	// (ie mandatory) subsection, deselect it so it doesn't get submitted
	checkedState.each(
		function(box) 
		{	 
			if (!box.checked)
			{
				var sectionName = box.name;
				var sectionNameComponents = sectionName.split("_");
				var subSectionBoxName = "rowSubSec_" + sectionNameComponents[1];
				var groupCheckboxes=document.getElementsByName(subSectionBoxName);
				for(i = 0; i < groupCheckboxes.length; i++)
				{
					if (groupCheckboxes[i].checked) groupCheckboxes[i].checked = false;
				}
			}
		}
	);
	
	
	sections.each(function(section) {
		var sectionID = section.id;
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", name_prefix + index);
		currentElement.setAttribute("id", name_prefix + index);
		currentElement.setAttribute("value", sectionID);
		form.appendChild(currentElement);
		index = index + 1;
	});
     
	var index2 = 0;
	inputCheckboxes.each(function(box) {			         
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", "subsection_selected_" + index2);
		currentElement.setAttribute("id", "subsection_selected_" + index2);
		currentElement.setAttribute("value", box.checked );
		form.appendChild(currentElement);
		index2 = index2 + 1;
     });


//dummy name
        reportName = document.createElement("input");
		reportName.setAttribute("type", "hidden");
		reportName.setAttribute("name", "report_name");
		reportName.setAttribute("value", "ledger report" );
		form.appendChild(reportName);
//dummy code
		 reportCode = document.createElement("input");
		reportCode.setAttribute("type", "hidden");
		reportCode.setAttribute("name", "report_cd");
		reportCode.setAttribute("value", "ULGR" );
		form.appendChild(reportCode);
		return true;
}