// Variables that will be used
var CMSns4 = (document.layers)? true:false;
var CMSie4 = (document.all)? true:false;
var shownHelp = "";

function confirmDelete() {
/*
	Parameters	

	Description		Displays message confirming deletion and returns the response given by the user

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	userResponse = confirm("Are you sure you want to delete?");
	return userResponse;
}

function DeleteSetIDAndAction(formName, buttonAction, deleteID, deleteIDField) {
/*
	Parameters		formName			Name of the form to submit	
					buttonAction		Action to set
					deleteID				ID to set to be deleted
					deleteIDField		ID field name to actually set

	Description		Sets the passed ID on the form and the Action, and submits

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	var deleteForm = document.all(formName);
	var fieldID= document.all(deleteIDField);

	if (confirmDelete() == false) {
		return false;
	}

	fieldID.value = deleteID;
	deleteForm.item('Action').value = buttonAction;

	deleteForm.submit();
}

function SetAction(buttonControl, buttonAction) {
/*
	Parameters		buttonControl		The button doing the action (normally	this)
					buttonAction		The Action to be setup (normally a string)

	Description		Sets the action for the form

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	buttonControl.form.item('Action').value = buttonAction;
	buttonControl.form.submit();
}

function SetFocus(control) {
	control.focus();
}

function SetFormAction(formElement, formAction) {
/*
	Parameters		buttonControl		The element performing the action (normally this)
					buttonAction		The Action pointing to the form handler (normally a string)

	Description		Sets the action for the form

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	formElement.form.action = formAction;
}


function setRowColor(rowToChange) {
/*
	Parameters		rowToChange		The table row to change the background colour of

	Description		Sets the background colour of the passed row to hightlight it

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	rowToChange.bgColor = "#EFEFEF";    
}

function unsetRowColor(rowToChange) {
/*
	Parameters		rowToChange		The table row to change the background colour of

	Description		Reset the background colour of the passed row

	Date        Who     Change
	--------------------------------------------------------------------
	12-May-04   CSM     Created
	--------------------------------------------------------------------
*/
	rowToChange.bgColor = "";
}


function checkAll(form_, element_)
{
  var args = checkAll.arguments;
  var isChecked = false;
  var elementArray = getElementsInDocById("window",element_,form_);
  if ( elementArray == null )
    return;

  for(var i=0; i<elementArray.length; i++)
  {
    if(!elementArray[i].checked)
      isChecked = true;
  }
  if(args.length>2)
  {
    switch (args[2])
    {
      case "true":
      case "false":
        for(var j=0; j<elementArray.length; j++) elementArray[j].checked = args[2];
        break;
      default:
        var hiddenObjectArray = getElementsInDocById("window",args[2],form_);
        for(var j=0; j<elementArray.length; j++)
        {
          elementArray[j].checked = isChecked;
          if(isChecked)
            putValue(hiddenObjectArray[j], elementArray[j].value);
          else
            putValue(hiddenObjectArray[j], '');
        }
        break;
    }
  }
  else
    for(var j=0; j<elementArray.length; j++)
      elementArray[j].checked = isChecked;
}

function putValue(element_, value_, append_)
{
  //assuming that all elements in array are the same type.  If has
  //length and no type, it is a select or multi select
  var elementType;
  if( element_.length && !element_.type )
  {
    elementType = element_[0].type;
  }
  else
  {
    elementType = element_.type;
  } 
  switch (elementType)
  {       
    case "hidden":
    case "password":
    case "text":
    case "textarea":
    case "file":
      if( append_ == true )
      {
      	element_.value = element_.value + value_;
      }
      else
      {
      	element_.value = value_;
      }
      break;
    case "checkbox":
    case "radio":     
      if( element_.length )
      { 
        for(var k=0; k<element_.length; k++)
       {    
          //if the value is blank, then unselect all. Maybe change this
          //later.  Else select the one that the value matches
          if( value_ != "" )
          {
            if(element_[k].value == value_ && element_[k].defaultChecked == true )
            {
              element_[k].checked = 0;
            }
            else if (element_[k].value == value_ && element_[k].defaultChecked == false ) 
            {
              element_[k].checked = 1;
            }
          }
          else
          {
            element_[k].checked = 0;
          }
        }
      }
      else
      {
        if( value_ != "" )
        {
          if(element_.value == value_)
          {
            if(element_.value == value_ && element_.checked == true )
            {
              element_.checked = false;
            }
            else if (element_.value == value_ && element_.checked == false ) 
            {
              element_.checked = true;
            }
          }
        }
        else
        {
          element_.checked = 0;
        }
      }     
      break;
    case "select-one":
    case "select-multiple":
      if(value_ == "")
      {
        element_.selectedIndex = -1;
      }
      else
      {
        var valueArray = new Array();
        if(isArray(value_))
          valueArray = value_;
        else
          valueArray = value_.split(_arrayDelimiter);  
				   
				     
        for(var j=0; j<valueArray.length; j++)
        {
          var isOptionExist = -1;
          var delimiter = null;
				          
          if ( valueArray[j].indexOf(_nameValueDelimiter) != -1 )
          {
            delimiter = _nameValueDelimiter;
          }
          else if ( valueArray[j].indexOf("=") != -1 )
          {
            delimiter = "=";
          }
				          
          if( delimiter == null )
          {
            var optionName = valueArray[j];
            var optionValue = valueArray[j];
          }
          else
          {
            var option = valueArray[j].split(delimiter);
            var optionName = option[0];
            var optionValue = option[1];
          }          
          for(var k=0; k<element_.length; k++)
          {
            if(element_.options[k].value == optionValue)
            {
              isOptionExist = k;
            }
          }
          if(isOptionExist == -1)
          {
            var optionObject = new Option(optionName,optionValue,false,true);
            element_.options[element_.length] = optionObject;      
          }
          else
          {
            element_.options[isOptionExist].selected = true;  
          }            
        }
      }
      //shrink the size of the browse
      var elemLength = element_.length;
      if( elemLength < 2 )
      {
        elemLength = 2;
      }
      else if( elemLength > 5 )
      {
        elemLength = 5;
      }
      element_.size = elemLength;
      break;
  }
}

function getElementsInDocById(window_, element_, form_)
{
  var winObject = eval(window_);
  var fields = new Array();
				  
  if(winObject == element_)
    return winObject;

  if(winObject.document.forms[form_].name == element_)
    return winObject.document.forms[form_];
  for (var k=0; k<winObject.document.forms[form_].elements.length; k++)
  {
    if(winObject.document.forms[form_].elements[k].name == element_)
      {
     fields[fields.length] = winObject.document.forms[form_].elements[k];
      }
  }
  if(fields.length > 0)
    return fields;
				  
  return null;
}

function retrunNextSibling(node, siblingType) {
	var newNode = node.parentNode.parentNode
	
	while (newNode.nodeName != siblingType) {
		newNode = newNode.nextSibling;
		
		if(newNode == null) {
			return newNode;
		}
		
	}
	
	return newNode;
}

function toggleSection(node) {
	var newNode = retrunNextSibling(node, "DIV"); 

	if (newNode.style.display == 'none') {
		node.src="/azgard-components/images/treeview/minus.gif";
		newNode.style.display = 'block';
	} else {
		node.src="/azgard-components/images/treeview/plus.gif";
		newNode.style.display = 'none';
	}
}				

function popUpImage (oImg) {
	var sProperties = '';
	if (oImg.width != 0 && oImg.height != 0) {
		var iWidth = oImg.width+20;
		var iHeight = oImg.height+20;
		sProperties = 'width='+iWidth+',height='+iHeight+',';	
	}
	window.open (oImg.src, 'newWin', sProperties+'scrollbars=no,status=no,directories=no,toolbar=no,menubar=no,resizeable=no')
}






function viewAmendments(strListType, strURL) {
/*
	Parameters	

	Description		

	Date        Who     Change
	--------------------------------------------------------------------
	06-Oct-04	CSM		Created
	--------------------------------------------------------------------
*/

	var viewAnchor = document.all("Parent_" + strListType + "_" + strURL);
	var viewAmendments = document.all("Child_" + strListType + "_" + strURL);
	var intCurrent = 0;
	
	if(viewAnchor.value == "View") {
 		viewAnchor.innerHTML = "Hide Amendments";
		viewAnchor.value = "Hide"


		if(viewAmendments.style == "[object]") {
			viewAmendments.style.display = "";
		} else {
			while(intCurrent < viewAmendments.length) {
				viewAmendments(intCurrent).style.display = "";
				
				intCurrent = intCurrent + 1;
			}
		}

	} else {
		viewAnchor.innerHTML = "View Amendments";
		viewAnchor.value = "View"

		if(viewAmendments.style == "[object]") {
			viewAmendments.style.display = "none";
		} else {
			while(intCurrent < viewAmendments.length) {
				viewAmendments(intCurrent).style.display = "none";
				
				intCurrent = intCurrent + 1;
			}
		}
	}
	
	return false;	
}


function updateSelected() {
/*
	Parameters	

	Description			Produce a list of selected documents and write values to a field for later removal		

	Date        Who     Change
	--------------------------------------------------------------------
	20-Feb-06	IMH		Created
	--------------------------------------------------------------------
*/

	var oFields=document.all.URL
	var documentlist=''

	if (oFields.length > 0) {

		for (var idx = 0; idx < oFields.length; idx++) {
			if (oFields[idx].checked == true) {
			    documentlist += oFields[idx].value + ','
			   }
		}	
	}

	else {
		documentlist = oFields.value + ','
	}
	
	documentlist =  documentlist.substring(0, documentlist.length - 1) 


	document.forms.RemoveSelected.SelectedURL.value=documentlist
}




function selectAll(blnChecked) {
/*
	Parameters	

	Description			Select/Unselect All related docs	

	Date        Who     Change
	--------------------------------------------------------------------
	20-Feb-06	IMH		Created
	--------------------------------------------------------------------
*/

	var oFields=document.all.URL
	if (oFields.length > 0) {

		for (var idx = 0; idx < oFields.length; idx++) {
			oFields[idx].checked = blnChecked
		}	
	}
	
	else {
		oFields.checked = blnChecked
	}
	
	
	updateSelected()

}


function selectAllForAddition(blnChecked){
/*
	Parameters	

	Description			Select/Unselect All related docs in allocation table	

	Date        Who     Change
	--------------------------------------------------------------------
	20-Feb-06	IMH		Created
	--------------------------------------------------------------------
*/

	var oFields=document.forms.DocumentAllocate

	if (oFields.length > 0) {
		for (var idx = 0; idx < oFields.length; idx++) {
			if (oFields[idx].type=='checkbox') {
				oFields[idx].checked = blnChecked
			}
		}	
	}

}






function readAndUnderstoodAction(strDocument, strDocumentVersion, strDocumentName, strDocumentTitle, strDocumentReference, strDocumentPath, intSubscriptionID, strPage) {
	//var windowSettings = "center:yes;resizable:yes;dialogheight:100;dialogwidth:100;"
	var windowSettings = "center:yes;resizable:yes;status:no;dialogwidth:60;"
	window.showModalDialog(strDocument, "", windowSettings);
	if (confirm('Confirm you have Read & Understood this document?')) {
		window.open('/azgard-components/related-documents/r-and-u/confirm-document-attributes.asp?filename=' + strDocument + '&version=' + strDocumentVersion + '&name=' + strDocumentName + '&title=' + strDocumentTitle + '&reference=' + strDocumentReference + '&path=' + strDocumentPath + '&subscriptionid=' + intSubscriptionID, 'DocumentDetails','width=560,height=300,status=yes,resizable=no,scrollbars=yes,top=200,left=200')
		// submit page and pass document details for database update.
		//var createForm = document.all("CriteriaSearch");
					
		//document.all("DocumentName").value = strDocument;
		//document.all("DocumentVersion").value = strDocumentVersion;

		//createForm.action = "quick-poll-item.asp";
		//createForm.submit();

	}
}


