/*
  This script file contains the necessary methods for all of the JSP pages for posting
  and navigation

  CopyRight (C) Micro-Phyla Systems 2002, All Rights Reserved
  Developed by John B. Moore

Code conventions
=========================================
function prefixes
   sv -  functions found in this file
var prefixes:
	 g_  - global to this file
         Local vars
	  _s    - string
	  _n    - number
	  _v   - anytype
	  _b   - boolean
	  _ar - array
	  _the - object

	 arg_ - argument param of that function
	 <none> local to that function
function suffixes:
       _s - returns string
       _n - returns number
       _b - returns boolean
       _r - returns array
       _v - returns anytype
       _obj - returns object reference
       <none> - returns nothing (void)

Dependencies;

*/



var g_navForm = document.NavForm;

var g_valueForm ;
var g_clickOnce = false;
var g_bcrumbMsg = "ALERT! Breadcrumb navigation does not save any changed information.\n\n"+
                  "Would you like to continue leaving this page?";
var g_showBcrumbMsg = true;

//alert("loading ServiceTools.js");

function setValueForm(arg_Frm) {
    g_valueForm = arg_Frm;
}

// use to respond to a click on a breadCrumb
function breadcrumbs(arg_URL, arg_sCrumb) {

   if (g_showBcrumbMsg == true) {
      if (!confirm(g_bcrumbMsg)) {
        return;
      }
   }

    // trap double click
    if (checkIsDblClick() == true){
       return;
    }

    document.location = arg_URL+"?"+arg_sCrumb;

}

function checkIsDblClick() {
   // trap double click
   if (g_clickOnce == true){
      alert("Information! \n Only a single click of the mouse is required.");
      g_clickOnce = false;
      return true;
    } else {
      g_clickOnce = true;
      setTimeout("g_clickOnce = false", 10000);
      return false;
    }
}

function resetDblClickCheck() {
    g_clickOnce = false;
}


// returns a string value that is the Path of which this document a part
function getPath_s() {
    return document.NavForm.path.value;
}

function getGenPath_s(arg_target) {
    return arg_target.path.value;
}

// returns a string "number" that is the location in the path of this document
function getPathIndex_s() {
    return document.NavForm.pathindex.value;
}

function getGenPathIndex_s(arg_target) {
    return arg_target.pathindex.value;
}

function getDisplayTitle_s() {
    //alert("getDisplayTitle");
    return document.NavForm.displaytitle.value;
}

function getGenDisplayTitle_s(arg_target) {
    //alert("getDisplayTitle");
    return arg_target.displaytitle.value;
}

function getType_s() {
    //alert("getType");
    return document.NavForm.type.value;
}

function getGenType_s(arg_target) {
    //alert("getType");
    return arg_target.type.value;
}

// Generic "getter" for hidden fields
function getHiddenField_s(arg_Fld) {

   return g_navForm.arg_Fld.value;

}

function getGenHiddenField_s(arg_target) {

   return arg_target.value;

}

// Generic "getter" for a specific edit form.
function getValueField_s(arg_Fld) {

   return g_valueForm.arg_Fld.value;

}

//=========================================
// Add a functions for any hidden field value



//===========================================
// Ad a function for other fields

// general delete confirmation
// arg_sId is one or more comma delimited name pairs, no spaces , i.e.  "someid=id,otherid=id"
function confirmDelete(arg_sMsg, arg_sURL, arg_sId, arg_sAction) {

    var _sQuery = "";
    var _iSPos = 0
    var _iEPos = arg_sId.indexOf(",",0);
    while (_iEPos != -1) {
       _sQuery = _sQuery + "&"+arg_sId.substring(_iSPos,_iEPos);
       _iSPos = _iEPos+1;
       _iEPos = arg_sId.indexOf(",",_iSPos);
    }
    // finish off last section
    if (_iEPos == -1) {
      _iEPos = arg_sId.length;
    }
    _sQuery = _sQuery + "&"+arg_sId.substring(_iSPos,_iEPos);

   if (confirm(arg_sMsg)) {
      var _location = arg_sURL+"?action="+arg_sAction+
                     "&type=delete"+
                     "&path="+getPath_s()+
                     "&pathindex="+getPathIndex_s()+"&"+_sQuery;

       document.location = _location;
   } else {
       return;
  }
}

function expandImageWindow(arg_sImageURL,arg_sTitle, arg_iX, arg_iY) {

  var width = arg_iX+30;
  var length = arg_iY+100;
  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
                '<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" cellspacing="0" cellpadding="10">\n'+
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n'+
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
              	'    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=no,toolbar=no");


}


function expandImageTxtWindow(arg_sImageURL,arg_sTitle, arg_sTxt, arg_iX, arg_iY) {

  var width = arg_iX+30;
  var length = arg_iY+200;
  arg_sTxt = arg_sTxt.replace(/\[br\]/g,"<br />");
  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
                '<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n'+
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n'+
                '  <tr><td><p>'+arg_sTxt
                '    </p></td></tr>\n'+
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
                '    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");


}

function expandLogWindow(arg_sImageURL,arg_sTitle, arg_sTxt,
			 arg_sDocumentAndPath, arg_sDocumentLabel,
                         arg_sWebUrl,  arg_sWebUrlLabel,
			 arg_iX, arg_iY) {

  var width = arg_iX+50;
  var length = arg_iY + 100; // image length plus a minimum window length

  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
                '<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n';
  if (arg_sImageURL != "") {
      _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n';
  }
  if (arg_sTxt != "") {
    if (arg_sTxt.length > width) {
     length = length + ((arg_sTxt.length/width) * 5);
    } else {
     length = length + 50;
    }
    arg_sTxt = arg_sTxt.replace(/\[br\]/g,"<br />");
    _sHTML = _sHTML +
                '  <tr><td><p>'+arg_sTxt
                '    </p></td></tr>\n';
  }
  if (arg_sDocumentAndPath != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Download File:<a href='+arg_sDocumentAndPath+'>'+arg_sDocumentLabel+'</a>\n'+
                '   </td></tr>\n';
  }
  if (arg_sWebUrl != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Web Link:<a href="http://'+arg_sWebUrl+'" target="_blank">'+arg_sWebUrlLabel+'</a>\n'+
                '   </td></tr>\n';
  }

  // for button
  length = length + 25;

  _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
              	'    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    //alert (_sHTML);

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");


}

function expandEntryWindow(arg_sImageURL,arg_sTitle, arg_sTxt,
			 arg_sDocumentAndPath, arg_sDocumentLabel,
                         arg_sWebUrl,  arg_sWebUrlLabel, arg_iQty, arg_dValue,
			 arg_iX, arg_iY) {

  var width = arg_iX+50;
  var length = arg_iY + 100; // image length plus a minimum window length

  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
                '<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n';
  if (arg_sImageURL != "") {
      _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n';
  }
  if (arg_sTxt != "") {
    if (arg_sTxt.length > width) {
     length = length + ((arg_sTxt.length/width) * 5);
    } else {
     length = length + 50;
    }
    arg_sTxt = arg_sTxt.replace(/\[br\]/g,"<br />");
    _sHTML = _sHTML +
                '  <tr><td><p>'+arg_sTxt
                '    </p></td></tr>\n';
  }
  if (arg_sDocumentAndPath != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Download File:<a href='+arg_sDocumentAndPath+'>'+arg_sDocumentLabel+'</a>\n'+
                '   </td></tr>\n';
  }
  if (arg_sWebUrl != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Web Link:<a href="http://'+arg_sWebUrl+'" target="_blank">'+arg_sWebUrlLabel+'</a>\n'+
                '   </td></tr>\n';
  }

  if (arg_iQty != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Quantity: '+arg_iQty+'\n'+
                '   </td></tr>\n';
  }
  if ( (arg_dValue != "") && (arg_dValue !="$0.00") && (arg_dValue !="0.00") ) {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Price: '+arg_dValue+'\n'+
                '   </td></tr>\n';
  }

  // for button
  length = length + 25;

  _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
              	'    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    //alert (_sHTML);

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");


}

function expandEntryListWindow(arg_sImageURL,arg_sTitle, arg_sTxt,
			 arg_sDocumentAndPath, arg_sDocumentLabel,
                         arg_sWebUrl,  arg_sWebUrlLabel, arg_iQty, arg_dValue,
                         arg_sListLabels,  arg_sListValues,
			 arg_iX, arg_iY) {

  var width = arg_iX+50;
  var length = arg_iY + 100; // image length plus a minimum window length

  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
		'<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
                '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n';
  if (arg_sImageURL != "") {
      _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n';
  }

  if (arg_sListLabels != "") {
      // convert string to list of values
      var _arListLabels = arg_sListLabels.split("|");
      var _arListValues = arg_sListValues.split("|");

      // if we have the room make these "two across"

      if ( (width > 650) && (_arListLabels.length > 1) ) {
        _sHTML = _sHTML +
           ' <tr><td><table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n';
        for (var i = 0; i < _arListLabels.length; i++) {
           if ((i == 0) || (i % 2 == 0)) {
              length = length + 30;
              _sHTML = _sHTML +
              '  <tr><td>'+_arListLabels[i]+':  '+_arListValues[i]+'</td>\n';
           } else {
              _sHTML = _sHTML +
              '      <td>'+_arListLabels[i]+':  '+_arListValues[i]+'</td></tr>\n';
           }
        }
        // catch odd count
        if (_arListLabels.length % 2 != 0) {
          _sHTML = _sHTML +
              '      <td>&nbsp;</td></tr>\n';
        }
        _sHTML = _sHTML + '</table></td></tr>\n';
      } else {
        for (var i = 0; i < _arListLabels.length; i++) {
           length = length + 30;
           _sHTML = _sHTML +
           '  <tr><td>'+_arListLabels[i]+':  '+_arListValues[i]+'</td></tr>\n';
        }
      }
  }

  if (arg_sTxt != "") {
    if (arg_sTxt.length > width) {
     length = length + ((arg_sTxt.length/width) * 5);
    } else {
     length = length + 50;
    }
    arg_sTxt = arg_sTxt.replace(/\[br\]/g,"<br />");
    _sHTML = _sHTML +
                '  <tr><td><p>'+arg_sTxt
                '    </p></td></tr>\n';
  }
  if (arg_sDocumentAndPath != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Download File:<a href='+arg_sDocumentAndPath+'>'+arg_sDocumentLabel+'</a>\n'+
                '   </td></tr>\n';
  }
  if (arg_sWebUrl != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Web Link:<a href="http://'+arg_sWebUrl+'" target="_blank">'+arg_sWebUrlLabel+'</a>\n'+
                '   </td></tr>\n';
  }

  if (arg_iQty != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Quantity: '+arg_iQty+'\n'+
                '   </td></tr>\n';
  }
  if ( (arg_dValue != "") && (arg_dValue !="$0.00") && (arg_dValue !="0.00") ) {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Price: '+arg_dValue+'\n'+
                '   </td></tr>\n';
  }


  // for button
  length = length + 25;

  _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
              	'    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    //alert (_sHTML);

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");


}




function expandListWindow(arg_sImageURL,arg_sTitle, arg_sTxt,
			 arg_sDocumentAndPath, arg_sDocumentLabel,
                         arg_sListLabels,  arg_sListValues,
			 arg_iX, arg_iY) {

  // ListLabels and List values is a pipe delimited list of matching labels and values..
  // Minimum width is 450)
  if (arg_iX > 450) {
     var width = arg_iX+50;
  } else {
     var width = 450;
  }
  var length = arg_iY + 100; // image length plus a minimum window length for buttons

  var _sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'+
               '"http://www.w3.org/TR/html4/loose.dtd">\n'+
		'<html><head><title>'+arg_sTitle+'</title>\n'+
                '<style type="text/css">\n'+
                '    body {background: #ffffcc;}\n'+
                '    table#largeview {background: #fff;\n'+
                '    border: 1px solid #666;} </style>\n'+
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n'+
		'</head><body onload="self.focus();">\n'+
		'<form action="" name="ViewForm" id="ViewForm">\n'+
		' <table width="'+arg_iX+'" border="0" valign="middle" align="center" cellspacing="0" cellpadding="10">\n';
  if (arg_sImageURL != "") {
      _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <img src="'+arg_sImageURL+'"\n'+
            	'    width="'+arg_iX +'" height="'+ arg_iY +'"></div>\n'+
    		'    </td></tr>\n';
  }
  if (arg_sTxt != "") {
    if (arg_sTxt.length > width/2) {
     length = length + ((arg_sTxt.length/(width/2)) * 5);
    } else {
     length = length + 50;
    }
    arg_sTxt = arg_sTxt.replace(/\[br\]/g,"<br />");
    _sHTML = _sHTML +
                '  <tr><td><p>'+arg_sTxt
                '    </p></td></tr>\n';
  }
  if (arg_sDocumentAndPath != "") {
      length = length + 30;
      _sHTML = _sHTML +
      	         '  <tr><td>'+
      	         '   Download File:<a href='+arg_sDocumentAndPath+'>'+arg_sDocumentLabel+'</a>\n'+
                '   </td></tr>\n';
  }
  if (arg_sListLabels != "") {
      // convert string to list of values
      var _arListLabels = arg_sListLabels.split("|");
      var _arListValues = arg_sListValues.split("|");

      length = length + 30;
         _sHTML = _sHTML +
      	         '  <tr><td align="center"><strong>List Fields</strong></td></tr>\n';

      for (var i = 0; i < _arListLabels.length; i++) {
         length = length + 30;
         _sHTML = _sHTML +
      	         '  <tr><td>'+_arListLabels[i]+':  '+_arListValues[i]+'</td></tr>\n';

      }
  }

  // for button
  length = length + 25;

  _sHTML = _sHTML +
  		'  <tr><td><div align="center">\n'+
        	'    <input name="Close" type="button" id="Close" value="Close Window"\n'+
        	'    ONCLICK="javascript:window.close();return false;">\n'+
              	'    <input name="Print" type="button" id="Print" value="Print Window"\n'+
        	'    ONCLICK="javascript:window.print();return false;">\n'+
      		'</div></td></tr></table></form></body></html>\n';

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    //alert (_sHTML);

    uWinLocalOpen_obj(_sHTML,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");


}


function emailVerifyDialog(arg_url) {

  var width = 400;
  var length = 350;

    // set popup position from center
    var xPos = ((screen.width/2) - (width/2));
    var yPos = ((screen.height/2) - (length/2));

    uWinOpen_obj(arg_url,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+width+",height="+length+
                           ",menubar=no,resizable=no,scrollbars=no,toolbar=no");

}


function popLinkWindow(arg_url, arg_sName, arg_iWidth, arg_iLength) {

    // set popup position from right bottom
    var xPos = ((screen.width) - (arg_iWidth));
    var yPos = ((screen.height) - (arg_iLength) - 50);

    uWinOpen_obj(arg_url,"imageview","screenX="+xPos+",screenY="+yPos+
                           ",width="+arg_iWidth+",height="+arg_iLength+
                           ",menubar=no,resizable=no,scrollbars=yes,toolbar=no");

}





function selectPicklist(arg_arValOptions,arg_arDisplay,arg_sTarget) {

  var nCount = arg_arValOptions.length;
  //alert("ValOptions: "+nCount);

  var _sHTML = '<HTML><HEAD><TITLE>PickList</TITLE>\n'+
             '<SCRIPT language="javascript">\n'+
             'function postIt(arg_sOKCancel) {\n'+
             '  if (arg_sOKCancel == "OK") { \n'+
             '     var _sSlct = document.PickForm.SPickList.options[document.PickForm.SPickList.selectedIndex].value;\n'+
             '     opener.setValue("'+arg_sTarget+'",_sSlct); }\n'+
             '  window.close();\n'+
             '}\n'+
             '</SCRIPT>\n'+
             '</HEAD><BODY BGCOLOR="#99FF99"><FORM NAME="PickForm">\n'+
             '<TABLE WIDTH="300" BORDER="1" CELLPADDING="0" CELLSPACING="0">\n'+
             '<TR><TD ALIGN="CENTER" COLSPAN="2"><H2>PickList</H2></TD></TR>\n'+
             '<TR><TD ALIGN="CENTER" COLSPAN="2">&nbsp;<SELECT NAME="SPickList" SIZE="10">\n'
             for(var i = 0 ; i<nCount ; i++){
                _sHTML = _sHTML +'<OPTION VALUE="'+arg_arValOptions[i]+'">'+arg_arDisplay[i]+'</OPTION>\n'
             }
             _sHTML = _sHTML +'</SELECT></TD></TR>\n'+
             '<TR><TD COLSPAN="2">Highlight a single item in the above list and then click "OK". </TD></TR>\n'+
             '<TR><TD ALIGN="CENTER"><INPUT TYPE="BUTTON" NAME="OK"VALUE="        OK        "\n'+
             'ONCLICK="javascript:postIt(\'OK\');"></TD>\n'+
             '<TD ALIGN="CENTER"><INPUT TYPE="BUTTON" NAME="CANCEL" VALUE="    CANCEL    "\n'+
             'ONCLICK="javascript:postIt(\'CANCEL\');"></TD></TR>\n'+
             '</TABLE></FORM></BODY></HTML>\n';

      var width = 350;
      var length = 350;
      // set popup position from center
      var xPos = (screen.width/2 - (width/2));
      var yPos = (screen.height/2 - (length/2));

      //alert(_sHTML);

      uWinLocalOpen_obj(_sHTML,"PickList",
                        "screenX="+xPos+
                        ",screenY="+yPos+
                        ",width="+width+
                        ",height="+length+
                        ",menubar=no,resizable=no,scrollbars=no,toolbar=no");

}

// Application specific support for specific forms
function setValue(arg_sTarget, arg_sValue) {

    // edit_Invoice - embedded in a frame set
    if (arg_sTarget == "INV_PLANTID") {
      top.InvoiceFrame.document.AddForm.PLANT_ID.value = arg_sValue;
      // now go and do a lookup for the rest of that record
      var _xmlRequest = '<REQUEST><GETRECORD>'+arg_sValue+
                             '</GETRECORD></REQUEST>'
      // call for details for this PlantID
      jsprocessLink(_jsprocessUrl, _xmlRequest,"plantdetail","get",100);

    // template
    } else if (arg_sTarget == "") {

    }
}

// arg_sFieldsList is a common delimited list of field names that need
// to be posted
// arg_sTarget should include Frame path if required
function setSalesAddFormDetails(arg_arPackage, arg_sFieldsList, arg_sTargetForm){

    var _arField = new Array();
    var _arValues = new Array();

    _arField = arg_arPackage[0];
    _arValues = arg_arPackage[1];

    // now set the fields
    var _nCount = _arField.length;
    //alert("_nCount: "+_nCount);
    for(var i = 0 ; i< _nCount ; i++){
       //alert("FieldList: "+arg_sFieldsList+"\nField: "+_arField[i])
       //alert("IndexOf: "+ arg_sFieldsList.indexOf(_arField[i]));
       if (arg_sFieldsList.indexOf(_arField[i]) != -1) {
         //dynamicall set field.. )
         //alert(arg_sTargetForm+"."+_arField[i]+".value = '"+_arValues[i]+"'");
         eval(arg_sTargetForm+"."+_arField[i]+".value = '"+_arValues[i]+"'");
       }
    }

}

// Refreshes basic calcs on Invoice  "Add Details" form.
function calcSalesAddForm() {
   // QUANTITY_SOLD, BASE_PRICE, EXTENSION
   var _targetForm = top.InvoiceFrame.document.AddForm;

   // validate the fields
   var _sQtySold = _targetForm.QUANTITY_SOLD.value;
   if (_sQtySold == '') {
     _sQtySold = '0';
   }
   var _sBPrice = _targetForm.BASE_PRICE.value;
   if (_sBPrice == '') {
     _sBPrice = '0';
   }
   // Discount code can never be "zero"
   var _sDisCode = _targetForm.DISCOUNT_CODE.value;
   if (_sDisCode == '') {
     _sDisCode = '1';
   }
   // convert to floats for calculations
   var _fQtySold = parseFloat(_sQtySold);
   var _fBPrice = parseFloat(_sBPrice);
   var _fDisCode = parseFloat(_sDisCode);
   // do the calc
   var _fExtension = (_fQtySold * _fBPrice) * _fDisCode;
   // input to field.
   _targetForm.EXTENSION.value = _fExtension;

}

function getCheckedItems(arg_target) {
  var _sCheckList = "";
  for (i = 0; i < arg_target.length;i++) {
    if (arg_target[i].checked == true) {
      if (i == 0) {
        _sCheckList = arg_target[i].value;
      } else {
        _sCheckList = _sCheckList+","+arg_target[i].value;
      }
    }
  }
  return _sCheckList;
}


function getFieldValueList(arg_sKeyPhrase, arg_TargetForm, arg_sBlankVal) {

  var _sFieldlist = "";
  for (i=0; i<arg_TargetForm.elements.length; i++) {
    var _elementName = arg_TargetForm.elements[i].name;
    _elementName = _elementName.toLowerCase()
    if (_elementName.indexOf(arg_sKeyPhrase.toLowerCase()) == 0) {
      _checkValue = arg_TargetForm.elements[i].value;
      if (_checkValue == "") {
        _checkValue = arg_sBlankVal; // indicates no value
      }
      // now add it to the field list
      if (_sFieldlist == "") {
        _sFieldlist = _checkValue;
      } else {
        _sFieldlist = _sFieldlist + ","+_checkValue;
      }
    }

  }
  //alert(_sFieldlist);
  return _sFieldlist;
}

function checkRequireAtLeastOneField(arg_TargetForm) {
  var _isOK = false;
  for (i=0; i<arg_TargetForm.elements.length; i++) {
    var _elementType = arg_TargetForm.elements[i].type;
    _elementType = _elementType.toLowerCase()
    if (_elementType == "text") {
      _checkValue = arg_TargetForm.elements[i].value;
      if (_checkValue != "") {
         _isOK = true;
      }

    }

  }
  return _isOK;
}

