    
  
function openPopup(url) {  
  window.open(url,'', 'width=900, height=550, scrollbars=yes, resizable=yes, location=no');   
  return false;  
}  
  
function ajax_POSTRequest(form, url, element) {    
  
  var parameters = "sys_Source=ajax"  
  
    for (var i=form.elements.length - 1; i>=0; i--){    
      parameters = parameters + "&" + form.elements[i].name + "=" + encodeURI(form.elements[i].value)  
    }    
  
	if(window.XMLHttpRequest)      
	{      
		request = new XMLHttpRequest();    
                if (request.overrideMimeType) {  
                    request.overrideMimeType('text/html');    
                }  
	}      
	else if(window.ActiveXObject)      
	{      
		request = new ActiveXObject("MSXML2.XMLHTTP");      
	}      
  
      request.onreadystatechange = function() {ajax_onResponse(element);};    
      request.open('POST', url, true);  
      request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
      request.setRequestHeader("Content-length", parameters.length);  
      request.setRequestHeader("Connection", "close");  
      request.send(parameters);  
  
  
   }  
  
  
  
  
function ajax_updateElement(url, element)       
{      
      
	if(window.XMLHttpRequest)      
	{      
		request = new XMLHttpRequest();      
	}      
	else if(window.ActiveXObject)      
	{      
		request = new ActiveXObject("MSXML2.XMLHTTP");      
	}      
    
	request.onreadystatechange = function() {ajax_updateElementonResponse(element);};    
	request.open("GET", url, true);      
	request.send(null);      
    
}     
  
function ajax_updateElementonResponse(element){      
    
	if(request.readyState == 4)      
	{      
		if(request.status == 200){     
                  setContent(request.responseText, element);  
		} else if(request.status == 404) {      
			// Add a custom message or redirect the user to another page      
			setContent("File not found", element);  
		} else {      
			setContent("There was a problem retrieving the content.", element);  
		}      
	}      
}     
  
  
function ajax_makeRequest(url, element)       
{      
      
	if(window.XMLHttpRequest)      
	{      
		request = new XMLHttpRequest();      
	}      
	else if(window.ActiveXObject)      
	{      
		request = new ActiveXObject("MSXML2.XMLHTTP");      
	}      
    
	request.onreadystatechange = function() {ajax_onResponse(element);};    
	request.open("GET", url, true);      
	request.send(null);      
    
}      
      
function ajax_onResponse(element){      
  
	if(request.readyState == 0) { setContent("Sending ...", element); }      
	if(request.readyState == 1) { setContent("<img src='/images/loading2.gif' />", element); }      
	if(request.readyState == 2) { setContent("Loaded ...", element); }      
	if(request.readyState == 3) { setContent("Processing ...", element); }      
	if(request.readyState == 4)      
	{      
		if(request.status == 200){     
                  setContent(request.responseText, element);  
		} else if(request.status == 404) {      
			// Add a custom message or redirect the user to another page      
			setContent("File not found", element);  
		} else if(request.status == 403) {      
			// Add a custom message for the error      
			setContent("Access Denied", element);  
		} else {      
			setContent("There was a problem retrieving the content.", element);  
		}      
	}      
}      
    
function setContent(newContent, element) {  
  if(document.getElementById(element)){  
    var lElem = document.getElementById(element)  
    if(lElem){  
  
      if(lElem.overrideHTML!=newContent) {  
          lElem.overrideHTML = newContent  
          lElem.innerHTML = newContent  
      }  
  
      // Execute javascript in the new code    
      execJS(lElem);    
  
    }  
  }  
}  
  
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);    
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);    
var bMoz = (navigator.appName == 'Netscape');    
function execJS(node) {    
  var st = node.getElementsByTagName('SCRIPT');    
  var strExec;    
  for(var i=0;i<st.length; i++) {         
    if (bSaf) {    
      strExec = st[i].innerHTML;    
    }    
    else if (bOpera) {    
      strExec = st[i].text;    
    }    
    else if (bMoz) {    
      strExec = st[i].textContent;    
    }    
    else {    
      strExec = st[i].text;    
    }    
    try {    
      eval(strExec.split("<!--").join("").split("-->").join(""));    
    } catch(e) {    
      alert(e);    
    }    
  }    
}    
    
  
function startDrag(sourceObjectID){      
      
    // post the data for Windows:      
    var dragData = window.event.dataTransfer;      
      
    // set the type of data for the clipboard:      
    dragData.setData('Text', sourceObjectID);      
      
    // allow only dragging that involves moving the object:      
    dragData.effectAllowed = 'all';      
      
    // use the special 'move' cursor when dragging:      
    dragData.dropEffect = 'move';      
      
}      
      
function enterDrag() {      
    // allow target object to read clipboard:      
//    window.event.dataTransfer.getData('Text');      
event.returnValue=false;  
}      
      
function endDrag() {      
    // when done remove clipboard data      
    window.event.dataTransfer.clearData();      
}      
      
function overDrag() {      
//window.event.srcElement.scrollIntoView();  
window.event.srcElement.focus();  
event.returnValue=false;   
    // tell onOverDrag handler not to do anything:      
    //window.event.returnValue = false;      
}      
      
function drop(targetObjectID, ParameterName) {      
    // eliminate default action of ondrop so we can customize:      
    parent.mainFrame.location = '/matrix/bxe-3B5F3014-CF29-4694-815A-FA834B77F506?' + window.event.dataTransfer.getData('Text') + '&' + targetObjectID + '&' + ParameterName;      
    window.event.returnValue = false;      
}      
      
function droptv(targetObjectID) {        
    // eliminate default action of ondrop so we can customize:        
    parent.mainFrame.location = '/matrix/bxe-DE5F1C15-09AC-4F2C-BBEF-985FB6092538?' + window.event.dataTransfer.getData('Text') + '&' + targetObjectID;        
    window.event.returnValue = false;        
}          
      
function fnCancelEffect(){  
//alert(window.event.srcElement.innerHTML);  
event.returnValue=false;  
  
}      
      
    
function clearSelection(targetField) {    
      var range = targetField.createTextRange();    
      range.moveStart('character', targetField.value.length);    
      range.select();    
}    
  
  
function controlCursor_Tab(formControl, e) {    
  if ((e.keyCode==13 && e.shiftKey == false) || (e.keyCode==9 && e.shiftKey == false)) {     
    moveFocus(formControl, 1);    
    return false;    
  }    
    
  if ((e.keyCode==13 && e.shiftKey == true) || (e.keyCode==9 && e.shiftKey == true)) {     
    moveFocus(formControl, -1);    
    return false;    
  }    
}    
    
function controlCursor_Cursor(formControl, e) {    
  if (e.keyCode==40) {     
    moveFocus(formControl, 1);    
    return false;    
  }    
    
  if (e.keyCode==38) {     
    moveFocus(formControl, -1);    
    return false;    
  }    
}    
    
function controlCursor_Date(formControl, e) {    
  // Check for any character that could seperate a date and use it to tab to the next control    
    
  if (e.keyCode==111 || e.keyCode == 189 || e.keyCode == 191 || e.keyCode == 109 || e.keyCode == 32) {     
    moveFocus(formControl, 1);    
    return false;    
  }    
}    
    
function checkInteger(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !isNumeric(e.keyCode)) {    
    return false;    
  }    
}    
    
function checkNumeric(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !(isNumeric(e.keyCode) && e.shiftKey==false) && !(e.keyCode==109) && !(e.keyCode==110) && !(e.keyCode==189 && e.shiftKey==false) && !(e.keyCode==190 && e.shiftKey==false)) {    
    return false;    
  }    
}    
  
function checkAlpha(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !isAlphabetical(e.keyCode)) {    
    return false;    
  }    
}    
  
function checkAlphaNumeric(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !isAlphaNumeric(e.keyCode)) {    
    return false;    
  }    
}    
  
function checkEmail(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !isEmail(e.keyCode, e.shiftKey)) {    
    return false;    
  }    
}    
  
function checkCursor(formControl, e) {    
  if (!isHorzCursor(e.keyCode) && !isVertCursor(e.keyCode)) {    
    return false;    
  }    
}    
    
  
  
function isCursor(key) {    
      
  var flag = false;    
    
  // Cursors    
  // left right    
  if ((key ==37) && (key==39)) { flag=true; }    
    
  // up down    
  if ((key ==38) && (key==40)) { flag=true; }    
    
  return flag;    
}    
    
function isVertCursor(key) {    
    
  var flag;    
    
  // up down    
  if ((key ==38) || (key==40)) { flag=true; }    
    
  return flag;    
}    
    
function isHorzCursor(key) {    
    
  var flag;    
    
  // left right    
  if ((key ==37) || (key==39)) { flag=true; }    
    
  return flag;    
}    
    
function isNumeric(key) {    
  flag = false;    
    
  // Numbers along the top    
  if ((key >= 48) && (key <= 57)) { flag=true; }    
    
  // Numeric keypad    
  if ((key >= 96) && (key <= 105)) { flag=true; }    
    
  // Backspace and something else    
  if ((key == 8) || (key == 46)) { flag=true; }    
    
  // Return    
  return flag;    
}    
  
function isEmail(key, shift) {  
  
  //alert(key);  
  var flag = false;    
  
  // Numbers along the top    
  if ((key >= 48) && (key <= 57) && (shift==false)) { flag=true; }    
    
  // Numeric keypad    
  if ((key >= 96) && (key <= 105)) { flag=true; }    
    
  // Hyphen and underscore    
  if ((key == 189)  || (key == 109)) { flag=true; }   
  
  // Backspace, Home, End, and delete   
  if (( key == 8) || (key == 36) || (key == 35) || (key == 46)) { flag=true; }    
  
  // standard letters    
  if ((key >= 65) && (key <=90)) { flag=true; }    
    
  // Others such as Period Key and ???  
  if (((key == 190) && (shift==false)) || (key == 110)) { flag=true; }    
  
  // @ symbol  
  if ((key == 192) && (shift==true)) { flag=true; }    
    
  // Return    
  return flag;   
  
}    
    
function isAlphabetical(key) {    
    
  var flag = false;    
    
  // standard letters    
  if ((key >= 65) && (key <=90)) { flag=true; }    
    
  // Other characters that are allowed ('_.del')    
  if ((key == 8) || (key == 46) || (key == 192) || (key == 190) || (key == 110)) { flag=true; }    
    
  // Space    
  if (key==32) { flag=true; }    
  
  // Hyphen and underscore   
  if ((key == 109) || (key == 189)) { flag=true; }    
  
  // Return    
  return flag;    
}    
    
function isAlphaNumeric(key) {    
  flag = isNumeric(key) || isAlphabetical(key);    
  return flag;    
}    
    
function guessYear(fldYear) {    
    
  // If the user enters '03' for the year, it will be seen as '0003'    
  // We could easily convert this to '2003' so lets give it a bash    
    
    
  // Declares    
  var now;    
  var date = '';    
  var lsNewYear = '';    
  var currentYear = 0;    
  var lYear = '';    
    
  // Extract the year in numeric form    
  lYear = Number(fldYear);    
    
  // If length of year value is 2 digits or less    
  if(lYear < 100 && lYear > 0) {    
    // Try to guess to relevant leading 2 digits    
    
    // Make a note of the current date and time    
    now = new Date();    
    
    // Get the current year, i.e. 2003 = 03    
    currentYear = Number(String(now.getFullYear()).substr(2,2))    
    
    // Get the right hand two characters from the entered year and prefix it with zeros, i.e. 3 = 03    
    lsNewYear = '00' + fldYear    
    lsNewYear = lsNewYear.substring(lsNewYear.length - 2);    
    
    // Select the prefix 19 or 20 and return it     
    if( lYear > currentYear + 10 )  {    
        return '19' + lsNewYear;    
    } else {    
        return '20' + lsNewYear;    
    }    
  } else {    
    return fldYear;    
  }    
}    
    
    
function updateDateField(psFieldName) {    
    
  // Declares      
  var lsYear, lsMonth, lsDay, lsHour, lsMinute, lsSecond;    
  var lsMasterFieldName;    
    
  // Get the field values    
  lsMasterFieldName = psFieldName;    
  
  // Get the field valuse    
//  lsYear = "0000" + document.frmMain.elements[lsMasterFieldName + '_YYYY'].value;    
  
  lsYear = guessYear("0000" + document.frmMain.elements[lsMasterFieldName + '_YYYY'].value);    
  
  lsMonth = "00" + document.frmMain.elements[lsMasterFieldName + '_MM'].value;    
  lsDay = "00" + document.frmMain.elements[lsMasterFieldName + '_DD'].value;    
  lsHour = "00" + document.frmMain.elements[lsMasterFieldName + '_HH'].value;    
  lsMinute = "00" + document.frmMain.elements[lsMasterFieldName + '_MI'].value;    
  lsSecond = "00" + document.frmMain.elements[lsMasterFieldName + '_SS'].value;    
    
  lsYear = lsYear.substring(lsYear.length - 4);    
  lsMonth = lsMonth.substring(lsMonth.length - 2);    
  lsDay = lsDay.substring(lsDay.length - 2);    
  lsHour = lsHour.substring(lsHour.length - 2);    
  lsMinute = lsMinute.substring(lsMinute.length - 2);    
  lsSecond = lsSecond.substring(lsSecond.length - 2);    
  
  // Set the new date    
  if(parseInt(lsYear)==0 && parseInt(lsMonth)==0 && parseInt(lsDay)==0 && parseInt(lsHour)==0 && parseInt(lsMinute)==0 && parseInt(lsSecond)==0){    
     // If there is no date return it as a blank    
     document.frmMain.elements[lsMasterFieldName].value = '';    
  } else if(parseInt(lsYear)==0 && parseInt(lsMonth)==0 && parseInt(lsDay)==1 && parseInt(lsHour)==0 && parseInt(lsMinute)==0 && parseInt(lsSecond)==0){    
     // If there is no date other than 01 in the day then return it as a blank    
     document.frmMain.elements[lsMasterFieldName].value = '';    
  } else {    
     document.frmMain.elements[lsMasterFieldName].value = lsYear + lsMonth + lsDay + lsHour + lsMinute + lsSecond;    
  }    
}    
    
function updateRadioField(fld) {  
  
  var radioField = eval('document.frmMain.' + fld.name);  
  var textField = eval('document.frmMain.' + fld.name.substr(3));  
  
  for(var i=0;i<radioField.length;i++) {  
    if(radioField[i].checked) {  
      textField.value = radioField[i].value;  
    }  
  }  
}  
  
function updateCheckField(fld) {  
  
  var checkField = eval('document.frmMain.' + fld.name);  
  var textField = eval('document.frmMain.' + fld.name.substr(3));  
  
    if(checkField.checked) {  
      textField.value = 1;  
    } else {  
      textField.value = 0;  
    }  
}  
  
  
function onBeforePrint() {    
    
  // Show the new page    
  for (var i=1; i<lastPage; i++) {    
    if (checkIfPageIsAllowed(i)) {    
      document.getElementById('Page' + i).style.display='block';    
    }    
  }    
    
  // Hide the buttons    
  document.getElementById('button_submit').style.visibility='hidden';    
  document.getElementById('button_next').style.visibility='hidden';    
  document.getElementById('button_back').style.visibility='hidden';    
      
  }    
      
function onAfterPrint() {    
    
  // Hide all the pages except the current one    
  for (var i=1; i<lastPage; i++) {    
    if (i==currentPage) {    
    } else {    
      document.getElementById('Page' + i).style.display='none';    
    }    
  }    
    
  // Show the right buttons    
  hideShowButtons(currentPage);    
}    
  