browser = navigator.appName;
version = navigator.appVersion;

///////////////////////////////////////////////////////////////
// Browser Detection Logic
///////////////////////////////////////////////////////////////

// Ultimate client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001.  Permission granted to reuse and distribute.
// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
//                      also added support for IE5.5 Opera4&5 HotJava3 AOLTV
// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4, 
//                      correct Opera 5 detection
//                      add support for winME and win2k
//                      synch with browser-type-oo.js
// Revised 26 Mar 01 to correct Opera detection
// Revised 02 Oct 01 to add IE6 detection

// Everything you always wanted to know about your JavaScript client
// but were afraid to ask. Creates "is_" variables indicating:
// (1) browser vendor:
//     is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
// (2) browser version number:
//     is_major (integer indicating major version number: 2, 3, 4 ...)
//     is_minor (float   indicating full  version number: 2.02, 3.01, 4.04 ...)
// (3) browser vendor AND major version number
//     is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
//     is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
//     is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
// (4) JavaScript version number:
//     is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
// (5) OS platform and version:
//     is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
//     is_os2
//     is_mac, is_mac68k, is_macppc
//     is_unix
//     is_sun, is_sun4, is_sun5, is_suni86
//     is_irix, is_irix5, is_irix6
//     is_hpux, is_hpux9, is_hpux10
//     is_aix, is_aix1, is_aix2, is_aix3, is_aix4
//     is_linux, is_sco, is_unixware, is_mpras, is_reliant
//     is_dec, is_sinix, is_freebsd, is_bsd
//     is_vms
//
// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
// for detailed lists of userAgent strings.
//
// Note: you don't want your Nav4 or IE4 code to "turn off" or
// stop working when new versions of browsers are released, so
// in conditional code forks, use is_ie5up ("IE 5.0 or greater") 
// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
// to check version in code which you want to work on future
// versions.

// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
// Note: Opera and WebTV spoof Navigator.  We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);


var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);
// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
// or if this is the first browser window opened.  Thus the
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);
var is_aol5  = (agt.indexOf("aol 5") != -1);
var is_aol6  = (agt.indexOf("aol 6") != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

var is_webtv = (agt.indexOf("webtv") != -1); 
var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
var is_AOLTV = is_TVNavigator;
var is_hotjava = (agt.indexOf("hotjava") != -1);
var is_hotjava3 = (is_hotjava && (is_major == 3));
var is_hotjava3up = (is_hotjava && (is_major >= 3));
// *** JAVA VM Check ***
var is_java =  navigator.javaEnabled();
// *** JAVASCRIPT VERSION CHECK ***
var is_js;
if (is_nav2 || is_ie3) is_js = 1.0;
else if (is_nav3) is_js = 1.1;
else if (is_opera5up) is_js = 1.3;
else if (is_opera) is_js = 1.1;
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
else if (is_hotjava3up) is_js = 1.4;
else if (is_nav6 || is_gecko) is_js = 1.5;
// NOTE: In the future, update this code when newer versions of JS
// are released. For now, we try to provide some upward compatibility
// so that future versions of Nav and IE will show they are at
// *least* JS 1.x capable. Always check for JS version compatibility
// with > or >=.
else if (is_nav6up) is_js = 1.5;
// NOTE: ie5up on mac is 1.4
else if (is_ie5up) is_js = 1.3
// HACK: no idea for other browsers; always check for JS version with > or >=
else is_js = 0.0;

// *** PLATFORM ***
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//        Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));
// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) || 
               (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
               (agt.indexOf("windows 16-bit")!=-1) );  

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                    (agt.indexOf("windows 16-bit")!=-1));

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));
var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));

// NOTE: Reliable detection of Win98 may not be possible. It appears that:
//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//       - On Mercury client, the 32-bit version will return "Win98", but
//         the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_winnt4 = ((agt.indexOf("winnt 4.0")!=-1) || (agt.indexOf("windows nt 4.0")!=-1) || (agt.indexOf("Windows NT 4.0")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 || 
               ((is_major >= 4) && (navigator.platform == "Win32")) ||
               (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2   = ((agt.indexOf("os/2")!=-1) || 
                (navigator.appVersion.indexOf("OS/2")!=-1) ||   
                (agt.indexOf("ibm-webexplorer")!=-1));

var is_mac    = (agt.indexOf("mac")!=-1);
// hack ie5 js version for mac
if (is_mac && is_ie5up) is_js = 1.4;
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 
                            (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 
                            (agt.indexOf("powerpc")!=-1)));

var is_sun   = (agt.indexOf("sunos")!=-1);
var is_sun4  = (agt.indexOf("sunos 4")!=-1);
var is_sun5  = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux  = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
var is_aix1  = (agt.indexOf("aix 1") !=-1);    
var is_aix2  = (agt.indexOf("aix 2") !=-1);    
var is_aix3  = (agt.indexOf("aix 3") !=-1);    
var is_aix4  = (agt.indexOf("aix 4") !=-1);    
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
var is_mpras    = (agt.indexOf("ncr")!=-1); 
var is_reliant  = (agt.indexOf("reliantunix")!=-1);
var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 
           (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 
           (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || 
                 is_sco ||is_unixware || is_mpras || is_reliant || 
                 is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));

///////////////////////////////////////////////////////////////
// End Browser Detection Logic
///////////////////////////////////////////////////////////////


// function reDo() and associated code
// function:   will reload the page if the Netscape browser window
//             has been re-sized.  This is to overcome a bug in the
//             browser whereby CSS and DHTML stop working after a re-size.

NS4 = document.layers;
if (NS4) {
   origWidth = innerWidth;
   origHeight = innerHeight;
}

function reDo() {
   if (innerWidth != origWidth || innerHeight != origHeight) 
      location.reload();
}

if (NS4) onresize = reDo;

// function frmSubmitonKey()
// function:    to submit the form on pressing ENTER key
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the hidden field to hold the button value
//				btnVal - button value

function frmSubmitonKey(formName, elementName, btnVal) {
if (document.all){
	if (window.event.keyCode == 13){
		frmSubmit(formName, elementName, btnVal)
		}
	}
}

// function frmSubmit()
// function:    To submit the form on click of image button
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the hidden field to hold the button value
//				btnVal - button value

function frmSubmit(formName, elementName, btnVal) {
	if (document.forms[formName].elements[elementName]){
		document.forms[formName].elements[elementName].value = btnVal;
		document.forms[formName].submit();
	}
}

function leftTrim(String,TrimChar)
{
 String += ""         // Force argument to string.
 TrimChar += ""       // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 if(String.length == 0)
  return(String)
 var Count = 0
 for(Count = 0;Count < String.length;Count++)
 {
  if(!(String.charAt(Count) == TrimChar))
   return(String.substring(Count,String.length))
 }
 return("")
}

function rightTrim(String,TrimChar)
{
 String += ""        // Force argument to string.
 TrimChar += ""      // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 if(String.length == 0)
  return(String)
 var Count = 0
 for(Count = String.length -1;Count >= 0;Count--)
 {
  if(!(String.charAt(Count) == TrimChar))
   return(String.substring(0,Count + 1))
 }
 return("")
}

function trim(String,TrimChar)
{
 String += ""        // Force argument to string.
 TrimChar += ""      // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
  TrimChar = " "
 return(rightTrim(leftTrim(String,TrimChar),TrimChar))
}

// function ()  uniqName
// function:    To determine if all new values are unique
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the edit boxes
//              oldElementName - the name of hidded fiels with existed names
//              error - Error message to display

function isUniqName(formName, elementName, oldElementName, error){
   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            newName = trim(document.forms[formName].elements[elementName][i].value);
            if (document.forms[formName].elements[oldElementName]) {
               if (document.forms[formName].elements[oldElementName].length) {
                  for (j=0; j<document.forms[formName].elements[oldElementName].length; j++) {
                     oldName = trim(document.forms[formName].elements[oldElementName][j].value);
                     if(newName == oldName){
                        Alert("\"" + newName + "\"" + error);
                        return false;
                     }
                  }
               } else {
                  oldName = trim(document.forms[formName].elements[oldElementName].value);
                  if(newName == oldName){
                     Alert("\"" + newName + "\"" + error);
                     return false;
                  }
               }
            } 
         }
      } else {
         newName = trim(document.forms[formName].elements[elementName].value);
         if (document.forms[formName].elements[oldElementName]) {
            if (document.forms[formName].elements[oldElementName].length) {
               for (j=0; j<document.forms[formName].elements[oldElementName].length; j++) {
                  oldName = trim(document.forms[formName].elements[oldElementName][j].value);
                  if(newName == oldName){
                     Alert("\"" + newName + "\"" + error);
                     return false;
                  }
               }
            } else {
               oldName = trim(document.forms[formName].elements[oldElementName].value);
               if(newName == oldName){
                  Alert("\"" + newName + "\"" + error);
                  return false;
               }
            }
         } 
      } 
   }
   return true;
}


// function ()  uniqName
// function:    To determine if all new values are unique
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the edit boxes
//              oldElementName - the name of hidded fiels with existed names
//              error - Error message to display

function isUniqFilledName(formName, elementName, error){
   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            iName = trim(document.forms[formName].elements[elementName][i].value);
               if (iName != "") {
                  for (j=0; j<document.forms[formName].elements[elementName].length; j++) {
                     if (j == i)
                        continue;
                     jName = trim(document.forms[formName].elements[elementName][j].value);
                     if(jName == iName){
                        Alert("\"" + iName + "\"" + error);
                        return false;
                     }
                  }
             }
         }
      } 
   }
   return true;
}

// function atLeastOneFilled()
// function:    To determine if at least one text box of a series is filled
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the checkboxes
//              error - Error message to display

function atLeastOneFilled(formName, elementName, error) {
   foundFilled = false;

   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            newName = trim(document.forms[formName].elements[elementName][i].value);
            document.forms[formName].elements[elementName][i].value = newName;
            if (document.forms[formName].elements[elementName][i].value != '')
               foundFilled = true;
         }
      } else {
         newName = trim(document.forms[formName].elements[elementName].value);
         document.forms[formName].elements[elementName].value = newName;
         if (newName != '')
	        foundFilled = true;
      }
      if (foundFilled == false) {
         Alert(error);
         return false;
      }
   }
   return true;
}

// function atLeastOneChecked()
// function:    To determine if at least one checkbox of a series is checked
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the checkboxes
//              error - Error message to display

function atLeastOneChecked(formName, elementName, error) {
   foundChecked = false;
   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            if (document.forms[formName].elements[elementName][i].checked == true)
               foundChecked = true;
         }
      } else {
         if (document.forms[formName].elements[elementName].checked == true)
	    foundChecked = true;
      }
      if (foundChecked == false) {
         Alert(error);
         return false;
      } else {
        return true;
      }
   }
   Alert('You have no items selected.');
   return false;
}

// function onlyOneChecked()
// function:    To determine if at least one checkbox of a series is checked
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the checkboxes
//              noneError - Error message to display when no checkboxes are checked
//              tooManyError - Error message to display when more than one checkbox is checked

function onlyOneChecked(formName, elementName, noneError, tooManyError) {
   foundFirstOne = false;
   foundOnlyOne = false;
   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            if ((document.forms[formName].elements[elementName][i].checked == true) && (foundFirstOne == false)) {
			   foundFirstOne = true;
               foundOnlyOne = true;
            } else if ((document.forms[formName].elements[elementName][i].checked == true) && (foundFirstOne == true)) {
               foundOnlyOne = false;
			}
         }
      } else {
         if (document.forms[formName].elements[elementName].checked == true) {
            foundFirstOne = true;
	        foundOnlyOne = true;
         }
      }
	  if (foundFirstOne == false) {
         Alert(noneError);
         return false;
      }
      if (foundOnlyOne == false) {
         Alert(tooManyError);
         return false;
      }
   }
   return true;
}

// function howManyChecked()
// function:    To determine the number of checkboxes of a series is checked
// parameters:  formName - the "name" value of the form
//              elementName - the "name" value of the checkboxes

function howManyChecked(formName, elementName) {
   selectedCBCount = 0;
   if (document.forms[formName].elements[elementName]) {
      if (document.forms[formName].elements[elementName].length) {
         for (i=0; i<document.forms[formName].elements[elementName].length; i++) {
            if (document.forms[formName].elements[elementName][i].checked == true)
			   ++selectedCBCount;
         }
      } else {
         if (document.forms[formName].elements[elementName].checked == true)
            ++selectedCBCount;
      }
   }
   return selectedCBCount;
}

// function openHelpWindow()
// function:    To open the help popup window on all the pages
// parameters:  page - the string of the URL that points to the help desk frameset and includes
//              the help page and help navigation query string variables

function openHelpWindow(page) {
   if (navigator.appVersion.indexOf("WebTV") != -1) {
      window.status="WebTV does not support this feature.";   
   } else {
      help=window.open(page,'HelpPopUp','width=500,height=400,location=no,menubar=no,scrollbars=no,resizable=no,status=no');
      if ((browser=="Microsoft Internet Explorer") && (parseInt(version) < 4)) {
         // do nothing
      } else {
         help.opener = self.parent;
      }
   }
   help.focus();
}

// function Success(message)
// function:    To display alert popup box - similar to standard javascript alerts
//              This function displays the SMALL size window.
// parameters:  message - Success message to display.

var btnClass = "<style type=\"text/css\"> .button{ border-style: double; border-color: #333333;border-width: 3px 3px 3px 3px;background-color: #009933;color: #FFFFFF;font-weight: bold;font-size: 8pt;cursor: pointer;background-image: url(images/button_bg.gif);}</style>";

function Success(message){
   var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=190";      
   new_win = window.open("/common/blank.html", "successWin", option);
   successWin(new_win, message, '190');
   new_win.focus();
}

// function Alert(error)
// function:    To display alert popup box - similar to standard javascript alerts
//              This function displays the SMALL size window.
// parameters:  error - Error message to display.

function Alert(error){   
   if ( is_ie5up){
      ieAlert(error, 20, 12);
  } else {
     var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=190";
     new_win = window.open("/common/blank.html", "alertWin", option);
      errorWin(new_win, error, '190');
      new_win.focus();
  }
}

// function Alert1(error)
// function:    To display medium size alert popup box.
// parameters:  error - Error message to display.

function Alert1(error){
  if ( is_ie5up){
      ieAlert(error, 22, 18);
  } else {
      var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=275";      
      new_win = window.open("/common/blank.html", "alertWin", option);
      errorWin(new_win, error, '275');
      new_win.focus();
  }
}

// function Alert2(error)
// function:    To display large size alert popup box.
// parameters:  error - Error message to display.

function Alert2(error){
  if ( is_ie5up){
      ieAlert(error, 22, 20);
  } else {
      var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=350"; 
      new_win = window.open("/common/blank.html", "alertWin", option);
      errorWin(new_win, error, '350');
      new_win.focus();
  }
}

// function successWin(win, message)
// function:    To develop the content of new window
// parameters:  win - reference to the window
//              message - Successful message to display

function successWin(win, message, h){
	var avaHeight = h - 10;
	new_win.document.write('<html><head><title>Success!</title></head>\n');
	new_win.document.write('<body bgcolor="#FFFFFF" onblur="window.focus()" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">\n');
	new_win.document.write('<table width="100%" cellspacing="0" cellpadding="0">\n');
	new_win.document.write('<tr><td height="5" colspan="2" bgcolor="#EEEEEE" width="100%"><img src="/images/blank.gif" height="5" width="1"></td></tr>\n');
    new_win.document.write('<tr><td height='+avaHeight+' width="5%">&nbsp;</td>\n');
	new_win.document.write('<td width="95%" valign="top"><table width="100%" cellspacing="0" cellpadding="0">\n');
	new_win.document.write('<tr><td width="100%" align="center" valign="bottom"><img src="/images/msg_successful.gif"></td></tr>\n');
	new_win.document.write('<tr><td width="100%" height="5"><img src="/images/blank.gif" height="5" width="1"></td></tr>\n');
	new_win.document.write('<tr><td width="100%" align="left" valign="top">\n');
	new_win.document.write('<center><font color="#000000" size="2" face="arial"><b><p>\n');
	new_win.document.write(message);
	new_win.document.write('</b></font></center>\n');
	new_win.document.write('</td></tr>\n');
	new_win.document.write('<tr><td >&nbsp;</td></tr>\n');
	new_win.document.write('<tr><td colspan="2" align="center"><form>\n');
    new_win.document.write('<input type="button" value=" OK " onclick="window.close()">\n');
	new_win.document.write('</form></td></tr>\n');
	new_win.document.write('</table></td></tr></table>\n');
	new_win.document.write('<table width="100%" cellspacing="0" cellpadding="0"><tr><td height="5" bgcolor="#EEEEEE" width="100%"><img src="/images/blank.gif" height="5" width="1"></td></tr></table>\n');
	new_win.document.write('</body></html>\n');
	new_win.document.close();
}

// function errorWin(win, error)
// function:    To develop the content of new window
// parameters:  win - reference to the window
//              error - Error message to display

function errorWin(win, error, h){
	var avaHeight = h - 10;
	new_win.document.write('<html><head><title>Please Note</title></head>\n');
                new_win.document.write(btnClass);
	new_win.document.write('<body bgcolor="#FFFFFF" onblur="window.focus()" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">\n');
	new_win.document.write('<img src="/images/blank.gif" width="1" height="5" /><br /><table width="95%"  align="center" cellspacing="0" cellpadding="0">\n');
                new_win.document.write('<tr><td><font size="4" color="#000000" face="verdana"><b>Alert</b></font></td></tr>');
                new_win.document.write('<tr bgcolor="#CCCCCC"><td height="1"><img src="/images/blank.gif" width="1" height="1"></td></tr>');
	new_win.document.write('<tr><td><img src="/images/blank.gif" width="1" height="5"><br /><font color="#000000" size="2" face="verdana">\n');
    
	new_win.document.write(error);
                new_win.document.write('</font><p align="center"><input type="button" class="button" value=" OK " onclick="window.close()"></p>\n');
	new_win.document.write('</td></tr></table>\n');
	new_win.document.write('</body></html>\n');
	new_win.document.close();
}

// function Prompt()
// function:    To display a prompt popup box.
// parameters:  promptMsg - Prompt message to display.
//              fieldName - The input field name on the popup.
//              fieldValue - The value of the field name on the popup (to pre-populate in some circumstances).
//              parentForm - The form name on the parent page.
//              parentPromptField - The hidden field name or input field name on the parent page that will receive the 
//                                  value of the input field on the popup.  If the parent has the same input field as the
//                                  popup, use that one, otherwise create a hidden field to hold the value.
//              parentButtonField - The hidden field name on the parent page that represents which button was pressed
//                                  to submit the form.
//              btnVal - The value that will be assigned to parentButtonField by the frmSubmit() function in the popup.

function Prompt(promptMsg, fieldName, fieldValue, parentForm, parentPromptField, parentButtonField, btnVal){
   if (navigator.appVersion.indexOf("AOL") != -1){
      promptValue = prompt(promptMsg, fieldValue);
      if((promptValue != "") && (promptValue != null)){
	     document.forms[parentForm].elements[parentPromptField].value = promptValue;  
          frmSubmit(parentForm, parentButtonField, btnVal);
      }
   } else {
      var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=150";      
      prompt_win = window.open("/common/blank.html", "promptWin", option);
      promptWin(prompt_win, promptMsg, fieldName, fieldValue, parentForm, parentPromptField, parentButtonField, btnVal, '150');
      prompt_win.focus();
      if ((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion) < 4)) {
         // do nothing
      } else {
         prompt_win.opener = self.parent;
      }
   }
}

// function promptWin()
// function:    To display a prompt popup box.
// parameters:  promptMsg - Prompt message to display.
//              fieldName - The input field name on the popup.
//              fieldValue - The value of the field name on the popup (to pre-populate in some circumstances).
//              parentForm - The form name on the parent page.
//              parentPromptField - The hidden field name or input field name on the parent page that will receive the 
//                                  value of the input field on the popup.  If the parent has the same input field as the
//                                  popup, use that one, otherwise create a hidden field to hold the value.
//              parentButtonField - The hidden field name on the parent page that represents which button was pressed
//                                  to submit the form.
//              btnVal - The value that will be assigned to parentButtonField by the frmSubmit() function in the popup.
//              h - the height of the popup window.

function promptWin(win, promptMsg, fieldName, fieldValue, parentForm, parentPromptField, parentButtonField, btnVal, h){
	var avaHeight = h - 10;    
	prompt_win.document.write('<html><head><title>Please Note</title></head>\n');
                prompt_win.document.write(btnClass);
	prompt_win.document.write('<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">\n');
	prompt_win.document.write('<img src="/images/blank.gif" width="1" height="5" /><br /><table align="center" width="95%" cellspacing="0" cellpadding="0">\n');
                prompt_win.document.write('<tr><td><font size="4" color="#000000" face="verdana"><b>Confirm</b></font></td></tr>');
                prompt_win.document.write('<tr bgcolor="#CCCCCC"><td height="1"><img src="/images/blank.gif" width="1" height="1"></td></tr>');
	prompt_win.document.write('<tr><td><p><font color="#000000" size="2" face="verdana">\n');
	prompt_win.document.write(promptMsg);
	prompt_win.document.write('</font><p></td></tr>\n');
	if (document.getElementById){
	prompt_win.document.write('<form name="promptForm" onkeydown="if (window.event.keyCode == 13){ parent.opener.document.forms[\'' + parentForm + '\'].elements[\'' + parentPromptField + '\'].value=document.forms[\'promptForm\'].elements[\'' + fieldName + '\'].value;  parent.opener.frmSubmit(\'' + parentForm + '\', \'' + parentButtonField + '\', \'' + btnVal + '\'); window.close(self); }"><tr><td align="center">\n');
    prompt_win.document.write("<input type='text' size='2' style='visibility:hidden'>");
	} else if (document.layers) {
    prompt_win.document.write('<form name="promptForm" onkeydown="parent.opener.document.forms[\'' + parentForm + '\'].elements[\'' + parentPromptField + '\'].value=document.forms[\'promptForm\'].elements[\'' + fieldName + '\'].value;  parent.opener.frmSubmit(\'' + parentForm + '\', \'' + parentButtonField + '\', \'' + btnVal + '\'); window.close(self); }"><tr><td align="center">\n');
	}
    prompt_win.document.write('<input type="text" name="' + fieldName + '" value="' + fieldValue + '" size="30" maxlength="100" /><br /><br />\n');
    prompt_win.document.write('<input type="button" class="button" value=" CANCEL " onclick="window.close()" />\n');
    prompt_win.document.write('<input type="button" class="button" value=" OK " onclick="parent.opener.document.forms[\'' + parentForm + '\'].elements[\'' + parentPromptField + '\'].value=document.forms[\'promptForm\'].elements[\'' + fieldName + '\'].value;  parent.opener.frmSubmit(\'' + parentForm + '\', \'' + parentButtonField + '\', \'' + btnVal + '\'); window.close(self)" />\n');
	prompt_win.document.write('</form></td></tr></table>\n');
	prompt_win.document.write('</body></html>\n');
	prompt_win.document.close();
}

// function Confirm()
// function:    To display a confirm popup box.
// parameters:  confirmMsg - Confirm message to display.
//              confirmAction - The JavaScript expression to execute when the 'OK' button is pressed.
//                              it should be passed as a string with both double and single quotes as
//                              delimiters, and internal single quotes should be double escaped.
//                    example:  "'parent.opener.document.forms[\\'form1\\'].elements[\\'delete\\'].value=\\'Yes\\';parent.opener.document.forms[\\'form1\\'].submit();'"

function Confirm(confirmMsg, confirmAction){
//   if (navigator.appVersion.indexOf("AOL") != -1){
//       if (confirm(confirmMsg)) {
//	      actionString = "";
//          for (i=0; i<confirmAction.length; i++) {
//             if ((confirmAction.charAt(i) == "\\") && (confirmAction.charAt(i-1) == "\\")) {
//                // don't add the 2nd escape
//             } else {
//                actionString += confirmAction.charAt(i);
//             }
//          }
//          eval(actionString);
//       }
//   } else {      
    var option = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=200";      
    con_win = window.open("/common/blank.html", "confirmWin", option);
    con_win.opener = self.parent;
	con_win.document.write('<html><head><title>Please Confirm</title></head>\n');
                con_win.document.write(btnClass);
	con_win.document.write('<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onblur="window.focus()">\n');
	con_win.document.write('<img src="/images/blank.gif" width="1" height="5" /><br /><table width="95%" align="center" cellspacing="0" cellpadding="0">\n');
                con_win.document.write('<tr><td><font size="4" color="#000000" face="verdana"><b>Confirm</b></font></td></tr>');
                con_win.document.write('<tr bgcolor="#CCCCCC"><td height="1"><img src="/images/blank.gif" width="1" height="1"></td></tr><tr><td>');                
	con_win.document.write('<font color="#000000" size="2" face="verdana">\n');
	con_win.document.write(confirmMsg);
	con_win.document.write('</font><p align="center">\n');
                con_win.document.write('<input type="button" class="button" value=" CANCEL " onclick="window.close(self);">\n');
	con_win.document.write('<input type="button" value=" OK " class="button" onclick="eval(' + confirmAction + '); window.close(self);">\n');
	con_win.document.write('</p></td></tr></table>');
	con_win.document.write('</body></html>\n');
	con_win.document.close();
                con_win.focus();
//   }
}

// function checksubmission()
// function:    To prevent multiple form submission by a user clicking the submit
//              button more than once in rapid succession.
// parameters:  none

var firsttime = true;
function checksubmission() {
   if (firsttime == false) {
      return false;
   }
   firsttime = false;
   return true;
}


// URL encode function
function URLEncode(str)
 {
   var SAFECHARS = "0123456789" +     // Numeric
       "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetci
      "abcdefghijklmnopqrstuvwxyz" +
      "-_.!~*'()";     // RFC2396 Mark characters
   var HEX = "0123456789ABCDEF";
   var encoded = "";
 for (var i = 0; i < str.length; i++ ) 
 {
    var ch = str.charAt(i);
       if (ch == " ") {
      encoded += "+";    // x-www-urlencoded, rather than %20
    } else if (SAFECHARS.indexOf(ch) != -1) {
        encoded += ch;
    } else {
       var charCode = ch.charCodeAt(0);
    if (charCode > 255) {
        alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" +
             "(URL encoding only supports 8-bit characters.)\n" +
       "A space (+) will be substituted." );
     encoded += "+";
     } else {
      encoded += "%";
      encoded += HEX.charAt((charCode >> 4) & 0xF);
     encoded += HEX.charAt(charCode & 0xF);
    }
    }
  } // for
     return encoded;
}


function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}


function trimWhiteSpace(s) {
   var retStr = "";
   for (i=0; i<s.length; i++){
      if (s.charAt(i) != " ")
         retStr += s.charAt(i);
   }
   return retStr;
}


function ieAlert(str,w,h){
   showModalDialog("/common/alert.html", str, "dialogWidth:"+w+";dialogHeight:"+h+";status:no");
}


function checkKey(fun){
   if (window.event.keyCode == 13){
      eval(fun);
   }
}

function replaceDoubleQuotes(str){
   return str.replace(/"/g,"&quot;")
}

function replaceNewLine(e){
   var str = e.value;
   e.value = str.replace(/\r/g, "<br />");
}

function isHtmlTagAvailable(str){
   var htmlTags = new Array("<b>", "<p>", "<font>", "<br>");
   var htmlTagAvailable = false;
   for (i=0; i<htmlTags.length; i++){
      if (str.indexOf(htmlTags[i]) != -1){
         htmlTagAvailable = true;
         break;
      }
   }
   if (!htmlTagAvailable && str.indexOf("</") != -1)
      htmlTagAvailable = true;
   return htmlTagAvailable;
}


function isSpecialChar(str) {
   var specialChar = new Array("*", "&", "'");   
   var specialCharAvailable = false;
   for (i=0; i <specialChar.length; i++){
      if (str.indexOf(specialChar [i]) != -1){
         specialCharAvailable = true;
         break;
      }
   }
   if (!specialCharAvailable  && str.indexOf('"') != -1)
      specialCharAvailable  = true;
   return specialCharAvailable ;
}

function chkNAdHttp(val){
   if (val == "")
      return val;
   if (val.substr(0,7) != "http://")
      val = "http://" + val;
   return val;
}

//added for div functionality

function showFields(){
	for(i=0;i<showFields.arguments.length;i++){		
		if(document.getElementById(showFields.arguments[i])){
		document.getElementById(showFields.arguments[i]).style.display = 'block';
		}
	}
}

function hideFields(){
	for(i=0;i<hideFields.arguments.length;i++){		
		if(document.getElementById(hideFields.arguments[i])){
		document.getElementById(hideFields.arguments[i]).style.display = 'none';
		}
	}
}

//added for mutiple div's

function replaceFieldsMultiple(divname, divno, totalDivs, action){
    var divon; 
    var divoff;
    for(i=1;i<=totalDivs;i++){		
        divoff = divname + i + "_off";
        divon = divname + i + "_on";
        if(i == divno && action == "on"){
            divon = divname + divno + "_on";
            divoff = divname + divno + "_off";
            document.getElementById(divoff).style.display = 'none';
            document.getElementById(divon).style.display = 'block';
        } else if(i == divno && action == "off"){
            divon = divname + divno + "_on";
            divoff = divname + divno + "_off";
            document.getElementById(divoff).style.display = 'block';
            document.getElementById(divon).style.display = 'none';
        }
        else {
            if(document.getElementById(divoff)){
                document.getElementById(divoff).style.display = 'block';
            }
            if(document.getElementById(divon)){
                document.getElementById(divon).style.display = 'none';
            }
        }
    }
	
}

function swapImages(elemId, selectName, formName){
    var el = document.getElementById(elemId);
    if(formName == null || formName == '')
        formName ='sfEdit'
    var selectedItem=document.forms[formName].elements[selectName].value;
    var temp = new Array();
    temp = selectName +"Preview";
    el.src = eval(temp)[selectedItem];
}

function checkAll(){
    var formname = checkAll.arguments[0] != null ? checkAll.arguments[0]:"";
    var parentname = checkAll.arguments[1] != null ? checkAll.arguments[1]:"";    
    var elemname = checkAll.arguments[2] != null ? checkAll.arguments[2]:"";    
    var elemIdx = checkAll.arguments[3] != null ? checkAll.arguments[3]:"";    
    var skipIdx = checkAll.arguments[4] != null ? checkAll.arguments[4]:"";    
    for(var g=0; g < elemIdx; g++){
      if(g != skipIdx){
          var elm = document.forms[formname].elements[elemname+g];
        if(elm.type == "checkbox" && document.forms[formname].elements[parentname].checked){
            document.forms[formname].elements[elemname+g].checked = true;
        } else {
            document.forms[formname].elements[elemname+g].checked = false;
        }
      }
    }
}

function getPageView(view){
   document.forms['getView'].elements['view'].value = view;
   document.forms['getView'].submit();
}

function hasOptions(obj) {
   if (obj != null && obj.options != null) {
      return true;
   }
   return false;
}

function swapOptions(obj, i, j) {
   var o = obj.options;
   var i_selected = o[i].selected;
   var j_selected = o[j].selected;
   var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
   var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
   o[i] = temp2;o[j] = temp;o[i].selected = j_selected;o[j].selected = i_selected;
}

function moveOptionUp(formname, elemName) {
   elt = document.forms[formname];
   obj = elt.elements[elemName]

      if (!hasOptions(obj)) {
         return;
      }

      for (i = 0; i < obj.options.length; i++) {
         if (obj.options[i].selected) {
            if (i != 0 && !obj.options[i - 1].selected) {
               swapOptions(obj, i, i - 1);
               obj.options[i - 1].selected = true;
            }

            if (i == 0) {
               Alert(alertTopMost);
               break;
            }
         }
      }
}

function moveOptionDown(formname,elemName) {
   elt = document.forms[formname];
   obj = elt.elements[elemName];

      if (!hasOptions(obj)) {
         return;
      }

      for (i = obj.options.length - 1; i >= 0; i--) {
         if (obj.options[i].selected) {
            if (i != (obj.options.length - 1) && ! obj.options[i + 1].selected) {
               swapOptions(obj, i, i + 1);
               obj.options[i + 1].selected = true;
            }
            if (i == (obj.options.length - 1)) {
               Alert(alertBotMost);
               break;
            }
         }
      }
}

function changeColor(fieldName, c){
    var hexColour = c.toUpperCase();
    if(c.length < 7 || (c.substr(0,1) != "#")){
        alert("Please enter a valid hexa-decimal value");
        document.forms[myform].elements[fieldName].focus();
        return false;

    }
    if(fieldName.indexOf("BG_") > -1){
        document.getElementById(fieldName+'0').style.backgroundColor=hexColour;
        document.getElementById(fieldName+'1').style.backgroundColor=hexColour;
    }
    if(fieldName.indexOf("BD_") > -1){
        document.getElementById(fieldName+'0').style.backgroundColor=hexColour;
    }
}

