/* ************************************************************************
   Program : its_scripts.js
   Version : v13.0.2.5
   Changed : 31-MAR-2005 Ollie T119686 Add errReportBack logic
   Changed : 07-JUL-2005 Ollie T121995 Add forceUpper logic    
           : 13-Sep-2005 Els t117575 No change - entry for bookpgm
           : 01-Feb-2006 Asit F128105 in isnumber use parseFloat iso parseInt
           : 15-May-2007 DG F141794 Create a generic global LOV running 
           : mechanism - run_LOV.
           : 23-May-2007 DG T142019 Create a secure generic global LOV running 
           : mechanism - run_lov_secure.
           : 17-Jan-2008 DG F147116 Added X_SEARCH_BY_CODE parameter to 
           : Javascript function run_lov_secure. 
           : 05-Mar-2008 DG T125576 Remove run_lov
   ************************************************************************
*/

<!-- Hide from old browsers

// #######
// Script: Setup Datestamp for printing in Header of all pages
function prt_header_datestamp () {
 days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
 months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
 var today = new Date();
 todayYear = today.getYear();
 todayMonth = months[today.getMonth()];
 todayDay = days[today.getDay()];
 todayDate = today.getDate();
 // Add to end of day number
 if (todayDate == 1 || todayDate == 21 || todayDate == 31) {
 todayDate += "st";
 }
 else {
 if (todayDate == 2 || todayDate == 22) {
 todayDate += "nd";
 }
 else {
 if (todayDate == 3 || todayDate == 23) {
 todayDate += "rd";
 }
 else {
 todayDate += "th";
 }
 }
 }
 // Define print format and write to screen.
 var dsString = todayDay + ", " + todayDate + " " + todayMonth + " " + 
                ((today.getFullYear() < 100) ? "19" : "") + today.getFullYear();
 document.write(dsString);
return(' ');
} // end prt_header_datestamp

// #######
// Script: Mouse over for items
  var x_oldstyle;
  function goOver(ctl)
  {
    if (ctl.className != "rowover") 
       {
       x_oldstyle = ctl.className;
       ctl.className="rowover";
       }
  }
  function goOut(ctl) 
  {
    ctl.className=x_oldstyle;
  }

// #######
// Script: Force text within the field to Uppercase
// Run as: <input .... onChange="forceUpper(this);" ...>
  function forceUpper(ctl)
  {
  ctl.value = ctl.value.toUpperCase();
  }

// #######
// Script: Check if entered value is a number
  function isnumber(ctl)
  {
    if (parseFloat(ctl) != ctl)
    {
      return false;
    }
    else
    {
      return true;
    }
  }

// #######
// Script: 
//-->


<!--

//Disable right mouse click Script
//By Maximus (maximus@nsimail.com) w/ mods by DynamicDrive
//For full source code, visit http://www.dynamicdrive.com

var message="Function Disabled!";

///////////////////////////////////
function clickIE4(){
return true;
if (event.button==2){
alert(message);
return false;
}
}

///////////////////////////////////
// function JSSumdet_Showme toggles the data between Summary and Detail layout
function JSSumdet_Showme(ctl)
{
  if (document.getElementById) // Internet Explorer
  {
    if (document.getElementById("xd"+ctl).style.display=="none")
    {
      document.getElementById("xd"+ctl).style.display="block";
      if (document.getElementById("xs"+ctl))
        document.getElementById("xs"+ctl).style.display="none";
    }
    else
    {
      document.getElementById("xd"+ctl).style.display="none";
      document.getElementById("xs"+ctl).style.display="block";
    }
  }
  else
  {
    document.all.xs1.style.display="block";
    document.all.xd1.style.display="block";
  }
}

///////////////////////////////////
// function JSMark_This gives user option to open or close all records with one click
   var x_sumrecs = 0;
   function JSMark_This(fldInd) {
   var i=1;
   while (i<=c_sumrecs)
     {
     if (fldInd.value=="Open All Records")
        {
        document.getElementById("xd"+i).style.display="block";
        document.getElementById("xs"+i).style.display="none";
        }
     else
        {
        document.getElementById("xd"+i).style.display="none";
        document.getElementById("xs"+i).style.display="block";
        }
   
     i++;
     }
   
   if (fldInd.value=="Open All Records")
      {
      fldInd.value="Close All Records";
      }
   else
      {
      fldInd.value="Open All Records";
      }
   }

///////////////////////////////////
// function JSMark_All Opens all records 
   function JSMark_All() {
   var i=1;
   while (i<=c_sumrecs)
   {
     document.getElementById("xd"+i).style.display="block";
     document.getElementById("xs"+i).style.display="none";
     i++;
   }
   
   }

<!--
////////////////////////////////////////////////////////////////////////////////////////////
//// This function will call any process on the server without actually refreshing the page
//// Please Note that this only works in IE5.5+ and Netscape6+
//// DBProcedure  - Mandatory, This is the Procedure to be called. Must return JavaScript.
////              -            This procedure must ALWAYS contain parameter for x_stmp.
////              -            This timestamp will contain a new value every time the procedure is 
////              -            called and ensures that no caching could be done.
//// DBParameters - Optional , Please start with & as first Parameter will be x_stmp
//// DBTagName    - Optional , Use different values if this function call should not overwrite data
////              -            from another call to the same function. 
////              -            By default this should be left out
////////////////////////////////////////////////////////////////////////////////////////////
function callDynBGproc(DBProcedure,DBParameters,DBTagName) {
	var dynamicScriptAreaTagName="dynScriptArea";
	var d = new Date();   // use the Date field to create a datestamp (to enforce unique URL)

	// Use the given tag name iso the default (if available)
	if (DBTagName && DBTagName != "")
		dynamicScriptAreaTagName=DBTagName;

	// first Ensure that this node does Not Exist. If it does, remove it.
	window.status='Clearing Previous Values';
	xx = document.getElementById(dynamicScriptAreaTagName);
	if (xx != null) {
		xx.parentNode.removeChild(document.getElementById(dynamicScriptAreaTagName));
	}

	// Now create a new SCRIPT Node and point the source to a procedure in the DB
	window.status='Working';
	xscript=document.createElement('script');
	xscript.setAttribute('language','Javascript');
	xscript.setAttribute('type','text/javascript');
	xscript.setAttribute('id',dynamicScriptAreaTagName);
	//alert(DBProcedure+'?x_stmp='+escape(d.getTime())+DBParameters);
	xscript.setAttribute('src',DBProcedure+'?x_stmp='+escape(d.getTime())+DBParameters);
	document.getElementsByTagName('head').item(0).appendChild(xscript);

	window.status='Done';
	return true
}

// -->
// Setup the reportback to *frm of any errors found in the *proc procedures
function errReportBack(err_source,err_string) {
var ErrorScriptAreaTagName="ErrScriptArea";
var err_text="";
if (err_source.length != 0)
   {
   err_text=err_text+err_source;
   }
if (err_string.length != 0)
   {
   err_text=err_text+
            'parent.F3.document.getElementById("ErrorDiv").innerHTML="'+err_string+'<br />&nbsp;"; '+
            'parent.F3.document.getElementById("ErrorDiv").style.display="block"; ';
   }

// Now add logic to ensure error only get reported once and is then removed
err_text=err_text+
         'xx = parent.F1.document.getElementById("'+ErrorScriptAreaTagName+'"); '+
	 'xx.parentNode.removeChild(xx);';


// first Ensure that this node does Not Exist.
xx = parent.F1.document.getElementById(ErrorScriptAreaTagName);
if (xx != null) {
	xx.parentNode.removeChild(parent.F1.document.getElementById(ErrorScriptAreaTagName));
}

// Now create a new ERROR SCRIPT Node and Populate with specified Detail
xscript=parent.F1.document.createElement('script');
xscript.setAttribute('language','Javascript');
xscript.setAttribute('type','text/javascript');
xscript.setAttribute('id',ErrorScriptAreaTagName);
//alert(err_text);
// Use the following line to populate for Internet Explorer
xscript.setAttribute('text','function chk_for_errors() {'+err_text+'}');
parent.F1.document.getElementsByTagName('head').item(0).appendChild(xscript);
// Use the following line to populate the DOM (Throw away errors generated by Internet Explorer)
try{parent.F1.document.getElementById(ErrorScriptAreaTagName).innerHTML='function chk_for_errors() {'+err_text+'}';}catch(e){void(0)}
//alert(parent.F1.document.getElementById(ErrorScriptAreaTagName).innerHTML);
window.status='Done';
}


<!--

/*
//Disable right mouse click Script
//By Maximus (maximus@nsimail.com) w/ mods by DynamicDrive
//For full source code, visit http://www.dynamicdrive.com
*/

var message="Function Disabled!";

///////////////////////////////////
/*
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}

function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}

if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}

document.oncontextmenu=new Function("alert(message);return false")
*/

function run_lov_secure(formName,codeName,descName,code,descr,fromClause,whereClause,lov_title,code_title,descr_title,showCode,theFilter,chkSum,returnRow) {
 var the_pathname = location.pathname;
 var i = the_pathname.indexOf ("/:");
 var j = the_pathname.indexOf ("/", ++i);

 if (i != -1) { // Syntactically incorrect url so it needs to be corrected
  the_pathname = the_pathname.substring (j, the_pathname.length);
 }; // (i != -1)
 if (returnRow == undefined) { returnRow = "-1"; }

 frmLOV = open("web.w01pkg.w01_lov_proc_sec" +
  "?X_FILTER=" + escape(theFilter) +
  "&X_CODE=" + escape(code) +
  "&X_DESCR=" + escape(descr) +
  "&X_FROM="+ escape(fromClause) +
  "&X_WHERE="+ escape(whereClause) +
  "&X_CALLER_URL=" + escape(location.protocol + "//" +
                            location.host + location.pathname +
                            location.search)+
  "&X_LOV_TITLE=" + escape(lov_title) +
  "&X_CODE_TITLE=" + escape(code_title) +
  "&X_DESCR_TITLE=" + escape(descr_title) +
  "&X_SHOW_CODE=" + escape(showCode) +
  "&X_FORM_ITEM_NAME=" + escape(formName) +
  "&X_CODE_ITEM_NAME=" + escape(codeName) +
  "&X_DESC_ITEM_NAME=" + escape(descName) +
  "&X_SEARCH_BY_CODE=" + escape(showCode) +
  "&X_CHK=" + escape(chkSum) +
  "&X_RETURN_ROW="+ escape(returnRow),
  "winLOV", "location=no,scrollbars=yes,resizable=yes,width=450,height=400");
  window.frmLOV.focus();
  
 if (frmLOV.opener == null) { frmLOV.opener = self; }
} // end of function run_lov_secure
