﻿// Suppress option dialog code

var SUPPRESSION_TYPE_EMPTY = 1;
var SUPPRESSION_TYPE_ZERO = 2;
var SUPPRESSION_TYPE_RANGE = 3;

var M_strSuppressOptions =
"<table class='OptionTable' width='100%' cellPadding='3' cellSpacing='0'>"
+ "<tr><td>"
+ "<table cellPadding='3' cellSpacing='0'>"
+ "<tr>"
+ "<td class=OptionHeader nowrap align=left>" + resSuppress + "</td>"
+ "</tr>"
+ "<tr height='3'></tr>"
+ "</table>"
+ "</td></tr>"
+ "<tr><td>"
+ "<table cellPadding='3' cellSpacing='0'>"
+ "<tr>"
+ "<td><input type=checkbox id='SuppressRows' title='' name='SuppressRows' onkeypress=\"javascript:SubmitSuppression(event);\">"
+ "</td>"
+ "<td class=OptionItem nowrap>"
+ "<label for='SuppressRows'>"
+ resRows
+ "</label></td>"
+ "<th width='10'></th>"
+ "</tr>"
+ "<tr>"
+ "<td><input type=checkbox id='SuppressCols' title='' name='SuppressCols' onkeypress=\"javascript:SubmitSuppression(event);\">"
+ "</td>"
+ "<td class=OptionItem nowrap>"
+ "<label for='SuppressCols'>"
+ resColumns
+ "</label></td>"
+ "<th width='10'></th>"
+ "</tr>"
+ "<tr height='3'></tr>"
+ "</table>"
+ "</td></tr>"
+ "<tr><td>"
+ "<table cellPadding='3' cellSpacing='0'>"
+ "<tr>"
+ "<td class=OptionItem nowrap align=left>" + resWhereAllValuesAre + "</td>"
+ "</tr>"
+ "</table>"
+ "</td></tr>"
+ "<tr><td>"
+ "<table cellPadding='3' cellSpacing='0'>"
+ "<tr>"
+ "<td width=5>&nbsp;</td>"
+ "<td class=OptionItem nowrap>"
+ "<input type=radio title='" + resEmpty + "' name=SuppressionType id=SuppressEmpty"
+ " value='1' onClick =\"javascript:SelectSuppressionType(SUPPRESSION_TYPE_EMPTY);\""
+ " onkeypress=\"javascript:SubmitSuppression(event);\" checked>"
+ "</td>"
+ "<td class=OptionItem nowrap>"
+ "<LABEL FOR=SuppressEmpty ACCESSKEY='e'>" + resEmpty + "</LABEL>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td width=5>&nbsp;</td>"
+ "<td class=OptionItem nowrap>"
+ "<input type=radio title='" + resEmptyOrZero + "' name=SuppressionType id=SuppressEmptyOrZero"
+ " value='2' onClick =\"javascript:SelectSuppressionType(SUPPRESSION_TYPE_ZERO);\""
+ " onkeypress=\"javascript:SubmitSuppression(event);\">"
+ "</td>"
+ "<td class=OptionItem nowrap>"
+ "<LABEL FOR=SuppressEmptyOrZero ACCESSKEY='z'>" + resEmptyOrZero + "</LABEL>"
+ "</td>"
+ "</tr>"
+ "<tr>"
+ "<td width=5>&nbsp;</td>"
+ "<td class=OptionItem nowrap>"
+ "<input type=radio title='" + resEmptyOrRange + "' name=SuppressionType id=SuppressEmptyOrRange"
+ " value='3' onClick =\"javascript:SelectSuppressionType(SUPPRESSION_TYPE_RANGE);\""
+ " onkeypress=\"javascript:SubmitSuppression(event);\">"
+ "</td>"
+ "<td class=OptionItem nowrap>"
+ "<LABEL FOR=SuppressEmptyOrRange ACCESSKEY='r'>" + resEmptyOrRange + "</LABEL>"
+ "</td>"
+ "</tr>"
+ "</table>"
+ "</td></tr>"
+ "<tr><td>"
+ "<table cellPadding='3' cellSpacing='0'>"
+ "<tr>"
+ "<td width=30>&nbsp;</td>"
+ "<td class=OptionItem nowrap>"
+ "<LABEL id=SuppressFromLabel FOR=SuppressFrom ACCESSKEY='f' class=DisabledLabel>" + resFrom + "</LABEL>"
+ "</td>"
+ "<td nowrap align='right'>"
+ "<input type=TEXT value='' title='" + resFrom + "' id='SuppressFrom' size='5' class=Default "
+ " onkeypress=\"javascript:SubmitSuppression(event);\" "
+ " onmousedown='event.cancelBubble = true; return true;'"
+ " onmousemove='event.cancelBubble = true; return true;'"
+ " disabled>"
+ "</td>"
+ "<td width=5>&nbsp;</td>"
+ "<td class=OptionItem nowrap>"
+ "<LABEL id=SuppressToLabel FOR=SuppressTo ACCESSKEY='t' class=DisabledLabel>" + resTo + "</LABEL>"
+ "</td>"
+ "<td nowrap align='right'>"
+ "<input type=TEXT value='' title='" + resTo + "' id='SuppressTo' size='5' class=Default "
+ " onkeypress=\"javascript:SubmitSuppression(event);\" "
+ " onmousedown='event.cancelBubble = true; return true;'"
+ " onmousemove='event.cancelBubble = true; return true;'"
+ " disabled>"
+ "</td>"
+ "</tr>"
+ "</table>"
+ "</td></tr>"
+ "<tr><td><table><tr>"
+ "<td nowrap>"
+ "<input type=button name=SuppressGo value=\"" + resOK + "\" onclick=\"javascript:OnSuppressOptions();\">&nbsp;"
+ "<input type=button name=Cancel value=\"" + resCancel + "\" onclick=\"javascript:OnCancelOptions();\">&nbsp;"
+ "<input name=DialogHelpButton type=button value=\"" + resHelp
+ "\" onclick=\"javascript:DisplayDialogHelp('Suppress.htm', '');\">"
+ "</td>"
+ "</tr></table></td></tr>"
+ "</table>"

//--------------------------------------------------------------
function AdjustSuppressOptions()
{
	var bChecked;
   var clSuppressFrom = document.getElementById("SuppressFrom");
   var clSuppressFromLabel = document.getElementById("SuppressFromLabel");
   var clSuppressRange = document.getElementById("SuppressEmptyOrRange");
   var clSuppressTo = document.getElementById("SuppressTo");
   var clSuppressToLabel = document.getElementById("SuppressToLabel");
   var clSuppressZero = document.getElementById("SuppressEmptyOrZero");
	var nSuppressionType;

	if (typeof(document.aspnetForm.SuppressRowsValue) != "undefined") {
		bChecked = (document.aspnetForm.SuppressRowsValue.value == "True");
		document.aspnetForm.SuppressRows.checked = bChecked;
	}
	if (typeof(document.aspnetForm.SuppressColsValue) != "undefined") {
		bChecked = (document.aspnetForm.SuppressColsValue.value == "True");
		document.aspnetForm.SuppressCols.checked = bChecked;
	}
	if (typeof(document.aspnetForm.SuppressionTypeValue) != "undefined") {
	   nSuppressionType = parseInt(document.aspnetForm.SuppressionTypeValue.value);
	   if (nSuppressionType == SUPPRESSION_TYPE_ZERO) {
	      clSuppressZero.checked = true;
	   }
	   else if (nSuppressionType == SUPPRESSION_TYPE_RANGE) {
	      clSuppressRange.checked = true;
         clSuppressFromLabel.className = "";
         clSuppressToLabel.className = "";
	      clSuppressFrom.disabled = false;
	      clSuppressTo.disabled = false;
	      clSuppressFrom.value = document.aspnetForm.SuppressFromValue.value;
	      clSuppressTo.value = document.aspnetForm.SuppressToValue.value;
	   }
	}
}

//-----------------------------------------------------------------------------
   function OnSuppressOptions()
   {
      var bValid;
      var cChar;
      var clSuppressFrom = document.getElementById("SuppressFrom");
      var clSuppressRange = document.getElementById("SuppressEmptyOrRange");
      var clSuppressTo = document.getElementById("SuppressTo");
      var clSuppressZero = document.getElementById("SuppressEmptyOrZero");
      var nCells = M_unRows * M_unCols;
      var nSuppressionType = SUPPRESSION_TYPE_EMPTY;
      var szFrom = "";
      var szTo = "";

      if (document.aspnetForm.SuppressRows.checked || document.aspnetForm.SuppressCols.checked) {
         if (!M_bSuppressionUnlimited) {
            if (nCells > M_nSuppressionMaxCells) {
               alert(nCells + " " + resSuppressionLimitReached + " " +
                     M_nSuppressionMaxCells + ".\n" + resSuppressionLimitTryAgain);
               return;
            }
         }
         if (clSuppressZero.checked) {
            nSuppressionType = SUPPRESSION_TYPE_ZERO;
         }
         else if (clSuppressRange.checked) {
            nSuppressionType = SUPPRESSION_TYPE_RANGE;
            szFrom = clSuppressFrom.value;
            if (szFrom != '') {
               szFrom = szFrom.toLowerCase();
            }
            szTo = clSuppressTo.value;
            if (szTo != '') {
               szTo = szTo.toLowerCase();
            }
            if (szFrom != 'min') {
               bValid = true;
               cChar = szFrom.charAt(0);
               if (cChar == '0' && szFrom.length > 1) {
                  cChar = szFrom.charAt(1);
                  if (cChar < '0' || cChar > '9') {
                     bValid = GPattern.test(szFrom);
                  }
                  else {
                     bValid = false;
                  }
               }
               else if (!GPattern.test(szFrom)) {
                  bValid = false;
               }
               if (!bValid) {
                  alert(resInvalidRangeFromValue);
                  clSuppressFrom.focus();
                  return;
               }
            }            
            if (szTo != 'max') {
               bValid = true;
               cChar = szTo.charAt(0);
               if (cChar == '0' && szTo.length > 1) {
                  cChar = szTo.charAt(1);
                  if (cChar < '0' || cChar > '9') {
                     bValid = GPattern.test(szTo);
                  }
                  else {
                     bValid = false;
                  }
               }
               else if (!GPattern.test(szTo)) {
                  bValid = false;
               }
               if(!bValid) {
                  alert(resInvalidRangeToValue);
                  clSuppressTo.focus();
                  return;
               }
            }
            if (szFrom != 'min' && szTo != 'max') {
               if(parseFloat(szFrom) > parseFloat(szTo)) {
                  alert(resInvalidRangeBound);
                  clSuppressFrom.focus();
                  return;
               }
            }
            if (szFrom == 'min' && szTo == 'max') {
               alert(resAtLeastOneSuppressionRangeValue);
               clSuppressFrom.focus();
               return;
            }
         }
      }
	   if (document.aspnetForm.SuppressRows.checked) {
		   document.aspnetForm.SuppressRowsValue.value = "True";
	   }
	   else {
		   document.aspnetForm.SuppressRowsValue.value = "False";
	   }
	   if (document.aspnetForm.SuppressCols.checked) {
		   document.aspnetForm.SuppressColsValue.value = "True";
	   }
	   else {
		   document.aspnetForm.SuppressColsValue.value = "False";
	   }
	   if (clSuppressRange.checked) {
	      document.aspnetForm.SuppressionTypeValue.value = SUPPRESSION_TYPE_RANGE.toString();
	      document.aspnetForm.SuppressFromValue.value = clSuppressFrom.value;
	      document.aspnetForm.SuppressToValue.value = clSuppressTo.value;
	   }
	   else {
	      document.aspnetForm.SuppressFromValue.value = "";
	      document.aspnetForm.SuppressToValue.value = "";
	      if (clSuppressZero.checked) {
	         document.aspnetForm.SuppressionTypeValue.value = SUPPRESSION_TYPE_ZERO.toString();
	      }
	      else {
	         document.aspnetForm.SuppressionTypeValue.value = SUPPRESSION_TYPE_EMPTY.toString();
	      }
	   }
	   if ((document.aspnetForm.SuppressRows.checked || document.aspnetForm.SuppressCols.checked) 
	         && document.aspnetForm.RankedColumns.value != "") {
	      document.aspnetForm.RankedColumns.value = "";
	      alert(resSuppressionCancelRanking);
	   }
	   if ((document.aspnetForm.SuppressRows.checked || document.aspnetForm.SuppressCols.checked) 
	         && document.aspnetForm.ReductionColumn.value >= 0) {
	      document.aspnetForm.ReductionColumn.value = -1;
	      alert(resSuppressionCancelReduction);
	   }
	   document.aspnetForm.FirstRow.value = 0;
	   document.aspnetForm.FirstCol.value = 0;
      document.aspnetForm.ChartStartRow.value = 0;
      document.aspnetForm.ChartStartCol.value = 0;
      executeWait(document.aspnetForm);
   }
   
//---------------------------------------------------------------
function SubmitSuppression(e)
{
   var key = GetKeyCode(e);
   if (key == 13) {
      OnSuppressOptions();
      ResetSubmit(e);
   }
}


//--------------------------------------------------------------
function ShowSuppressOptions()
{
	zeroScrollPosition();
	
   DisplayOption(M_strSuppressOptions);
   AdjustSuppressOptions();
   if (typeof(document.aspnetForm.SuppressRows) != "undefined") {
      setTimeout("document.aspnetForm.SuppressRows.focus();", 100);
   }				
	else if (typeof(document.aspnetForm.SuppressCols) != "undefined") {
	   setTimeout("document.aspnetForm.SuppressCols.focus();", 100);
	}
	// Resize scroll bars
   onLayoutResize();
}

//---------------------------------------------------------------
function SelectSuppressionType(i_nSuppressionType)
{
   var clSuppressFrom = document.getElementById("SuppressFrom");
   var clSuppressFromLabel = document.getElementById("SuppressFromLabel");
   var clSuppressTo = document.getElementById("SuppressTo");
   var clSuppressToLabel = document.getElementById("SuppressToLabel");
   
   if (clSuppressFrom == null || clSuppressFromLabel == null || clSuppressTo == null
         || clSuppressToLabel == null) {
      return;
   }
   if (i_nSuppressionType == SUPPRESSION_TYPE_RANGE) {
      clSuppressFrom.disabled = false;
      clSuppressFrom.value = "min";
      clSuppressFromLabel.className = "";
      clSuppressTo.disabled = false;
      clSuppressTo.value = "max";
      clSuppressToLabel.className = "";
   }
   else {
      clSuppressFrom.disabled = true;
      clSuppressFrom.value = "";
      clSuppressFromLabel.className = "DisabledLabel";
      clSuppressTo.disabled = true;
      clSuppressTo.value = "";
      clSuppressToLabel.className = "DisabledLabel";
   }
}

