// Stores the currently disabled groups
var greyed = new Array();

function disableGroups(form,nameList) {
  
  var i,j,group;
  var namesList = nameList;
  // Split apart the list of names passed in
  var names = namesList.split(',');
  // Re-enable all the previously disabled groups
  while (group = greyed.pop()) {
    if (form[group].length) {
      for (i=0;i<form[group].length;i++) {
        form[group][i].disabled = false;
      }
    }
    else {
      form[group].disabled = false;
    }
  }
  //Enable all form elements
  for (var k=0;k<document.forms[0].length;k++) {
  	current = document.forms[0].elements[k];
  	current.disabled = false;
  	frmAddDocument.drpPageList.disabled = false;
  }

  // Disable the group names that were passed in
  for (i=1;i<names.length;i++) {
    if (form[names[i]] && form[names[i]].length) {
      greyed.push(names[i]);
      for (j=1;j<form[names[i]].length;j++) {
        form[names[i]][j].disabled = true;
      }
    }
    else if (form[names[i]]) {
      greyed.push(names[i]);
      form[names[i]].disabled = true;
    }
  }
}

function disableGroups2(form) {
  	
  	
  	form.drpPageName.disabled = false;
	  form.drpDocType.disabled = false;
	  form.drpDocMonth.disabled = false;
	  form.drpDocYear.disabled = false;
	  
	  if (form.drpDocType.value == "1") {
	  	form.drpPageName.disabled = true;
	  	var x = new getObj('strPageName');
	 	x.style.color = '#CCCCCC';
	 	var y = new getObj('strDate');
	 	y.style.color = '#000000';
	 	//document.getElementById("drpPageName").options[0] = new Option(" ");
	  }
	  else
	  {	form.drpDocMonth.disabled = true;
	  	form.drpDocYear.disabled = true;
	  	var x = new getObj('strPageName');
	 	x.style.color = '#000000';
	 	var y = new getObj('strDate');
	 	y.style.color = '#CCCCCC';
	 	//document.getElementById("drpPageName").options[0] = null;
	 	
  }
  
}

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}


function disableGroups3(form) {
  	
  	
  	  form.drpPageList.disabled = true;
	  form.txtTitle.disabled = true;
	  form.txtDesc.disabled = true;
	  form.txtAltText.disabled = true;
	  form.chkHomePage.disabled = true;
	  
	  
	  if (form.drpDocType.value == "1") {
	  	form.drpPageList.disabled = true;
			  form.txtTitle.disabled = true;
			  form.txtTitle.disabled = true;
			  form.txtDesc.disabled = true;
			  form.txtAltText.disabled = true;
	 		 form.chkHomePage.disabled = true;
	 		 
	 		  var x = new getObj('lblHomePage');
	 		 x.style.color = '#CCCCCC';
	  }
	  else
	  {
	  	  form.drpPageList.disabled = false;
		  form.txtTitle.disabled = false;
		  form.txtTitle.disabled = false;
		  form.txtDesc.disabled = false;
		  form.txtAltText.disabled = false;
		  form.chkHomePage.disabled = false;
		  form.lblHomePage
		  
		  var x = new getObj('lblHomePage');
		  x.style.color = '#000000';

	  
  	  }
  
}

function dynamicSelect(id1, id2) {
	// Feature test to see if there is enough W3C DOM support
	if (document.getElementById && document.getElementsByTagName) {
		// Obtain references to both select boxes
		var sel1 = document.getElementById(id1);
		var sel2 = document.getElementById(id2);
		// Clone the dynamic select box
		var clone = sel2.cloneNode(true);
		// Obtain references to all cloned options 
		var clonedOptions = clone.getElementsByTagName("option");
		// Onload init: call a generic function to display the related options in the dynamic select box
		refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		// Onchange of the main select box: call a generic function to display the related options in the dynamic select box
		sel1.onchange = function() {
			refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		};
	}
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
	// Delete all options of the dynamic select box
	while (sel2.options.length) {
		sel2.remove(0);
	}
	// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
	// Iterate through all cloned options
	for (var i = 0; i < clonedOptions.length; i++) {
		// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
		if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
			// Clone the option from the hidden option pool and append it to the dynamic select box
			sel2.appendChild(clonedOptions[i].cloneNode(true));
		}
	}
}

function checkAll() {
//check all select boxes
	
	
}

//DHTML check
var DHTML = (document.getElementById || document.all || document.layers);


/* 
 shows additional set of contols if the selected value matches and predeternimed string
	ctrl_a - control which control display 
	target_value - value which determines visibility
	dom_element - element to hide
*/
function SRTSubType(ctrl_a, target_value, dom_element ) {
	
	var idx = ctrl_a.selectedIndex;
	
	if (ctrl_a.options[idx].text == target_value) {
		//control is equal to target, show additional controls
		invi(1, dom_element);
	} else {
		//control is not equal to target, hide additional controls
		invi(0, dom_element);
	}
}

function invi(flag, dom_element)
{
	//7-18-07
	try {
		if (!DHTML) return;
		var x = new getObj(dom_element);
		x.style.display = (flag) ? '' : 'none'
	} catch(err) {
	}
}


function toggleLayer( whichLayer, lbl_command )
{
  //alert('here 1');
  var elem, vis, lbl;
  if( document.getElementById ) {// this is the way the standards work
    //alert('here 2a');
	elem = document.getElementById( whichLayer );
	 lbl = document.getElementById( lbl_command );
  } else if( document.all ) {// this is the way old msie versions work
  	  //alert('here 2b');
      elem = document.all[whichLayer];
	  lbl = document.all[lbl_command];
  } else if( document.layers ) { // this is the way nn4 works
  	//alert('here 2c');
    elem = document.layers[whichLayer];
	lbl = document.layers[lbl_command];
  }
  vis = elem.style;
  var txt = new getObj(lbl_command);
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) {
	//alert('here 3a');
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
	txt.InnerHTML = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'Show':'Hide';
  } else {
	//alert('here 3b');
	vis.display = (vis.display==''||vis.display=='block')?'none':'block';
	txt.obj.innerHTML = (vis.display==''||vis.display=='block')?'Hide':'Show';
  }
}

function toggleLayerExpand( whichLayer, lbl_command, lbl_docs )
{
  var elem, vis, lbl, doc;
  if( document.getElementById ) {// this is the way the standards work
	elem = document.getElementById( whichLayer );
	 lbl = document.getElementById( lbl_docs );
  } else if( document.all ) {// this is the way old msie versions work
      elem = document.all[whichLayer];
	  lbl = document.all[lbl_command];
  } else if( document.layers ) { // this is the way nn4 works
    elem = document.layers[whichLayer];
	lbl = document.layers[lbl_command];
  }
  vis = elem.style;
  doc = lbl.style;
  var txt = new getObj(lbl_command);
  
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) {
	//alert('here 3a');
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
	doc.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
	txt.InnerHTML = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'Expand':'Contract';
  } else {
	vis.display = (vis.display==''||vis.display=='block')?'none':'block';
	doc.display = (doc.display==''||doc.display=='inline')?'none':'inline';
	txt.obj.innerHTML = (vis.display==''||vis.display=='block')?'Contract':'Expand';
  }
}

function toggleLayerOnly( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) {// this is the way the standards work
    elem = document.getElementById( whichLayer );
  } else if( document.all ) {// this is the way old msie versions work
      elem = document.all[whichLayer];
  } else if( document.layers ) { // this is the way nn4 works
    elem = document.layers[whichLayer];
  }
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) {
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  } else {
	vis.display = (vis.display==''||vis.display=='block')?'none':'block';
  }
}

/*ShowContact
  Purpose: recieves selected items from listbox and shows/hides the corresponding ID's on the page
  Input:   this - reference to the parent object
  		   a,b,c,d - elements to hide
*/	   
function showContact(ctrl) {
	
	//get reference to parent control
	var ctrl_parent = new getObj(ctrl);
	//count for show all list elements
	var ct = 1;
	//total number of items in the form to be hidden/shown
	var total_items = new getObj('hidden_items_ct');
	
	//first or default option is selected, loop through the options and enaable all dates
	if (ctrl_parent.obj.options[0].selected == true) {
			//enable all elements
			//get the values from the rest of the list
			for (ct = 1; ct <= ctrl_parent.obj.length-1; ct++) {
				//loop through the days for this value
				for(k=1; k<=total_items.obj.value; k++) {
					dom_element = ctrl_parent.obj.options[ct].value + "_" + k;
					//enable all days 
					invi(1, dom_element);
				}
			}
	} else {
		//one of the contact types was selected, disable all other contact types
		
		//loop through options in parent control
		for (var i = 0; i < ctrl_parent.obj.length; i++) {
			
			if (ctrl_parent.obj.options[i].selected	== true) {
				//this element should remain visible and if hidden enable
				for(k=1; k<=total_items.obj.value; k++) {
					dom_element = ctrl_parent.obj.options[i].value + "_" + k;
					//enable all days 
					invi(1, dom_element);
				}
			} else {
				//this element was not selected, hide from view
				var sel = ctrl_parent.obj.options[i].value
				//7-18-07
				//research a way to pass the total number of days with events to the dom to be accessible by javascript
				for(j=1; j<=total_items.obj.value; j++) {
					dom_element = sel + "_" + j;
					invi(0, dom_element);
				}
			}
		}
	}
}
	






	

