/*
*   imageutil.js - javascript accessor functions for image rollovers, etc.
*  
*   Compiled By:  Steve Grevemeyer [steve@salvagenow.com]
*
*   Notes:
*       Standard Internet-derived functions.
*/

/*
    Ver  Date         Who   Description
    1.1  24 MAR 2005  SEG   Added opject position functions
    1.0  12 MAR 2003  SEG   Created Initial Version
*/

function MM_findObj(n, d) 
{ //v3.0
  var p,i,x;  
  if(!d) d=document; 
  if( (p=n.indexOf("?")) > 0 && parent.frames.length) 
  {
    d=parent.frames[n.substring(p+1)].document; 
    n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n]; 
  
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); 
  
  return x;
}

/* Functions that swaps images. */
function MM_swapImage() 
{ //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; 
  
  document.MM_sr=new Array; 
  
  for(i=0; i<(a.length-2); i+=3)
  {
   if ((x=MM_findObj(a[i]))!=null)
   {
      document.MM_sr[j++]=x; 
      if(!x.oSrc) x.oSrc=x.src; 
      x.src=a[i+2];
   }
  }
}

function MM_swapImgRestore() 
{ //v3.0
  var i,x,a=document.MM_sr;
  for(i=0; a&&i < a.length && (x=a[i]) && x.oSrc; i++) x.src=x.oSrc;
}

/* Functions that handle preload. */
function MM_preloadImages() 
{ //v3.0
 var d=document; 
 
 if(d.images)
 { 
  if(!d.MM_p) d.MM_p=new Array();
 
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
   
   for(i=0; i < a.length; i++)
   {
     if (a[i].indexOf("#")!=0)
     { 
        d.MM_p[j]=new Image; 
        d.MM_p[j++].src=a[i];
     }
   }
 }
}

function checkBadChars(o)
{
  var str='';
  if( o.value.indexOf('.') > 0 )
  {
    str = "This field must not contain a DECIMAL point.";
  }

  if( o.value.indexOf(',') > 0 )
  {
    str = "This field must not contain a COMMA character.";
  } 
  
  if( o.value.indexOf('$') > 0 )
  {
    str = "This field must not contain a DOLLAR SIGN character.";
  } 

  if (str.length > 0) 
  {
      alert(str);
  }
}

function image_roll(img_swap, img_name) 
{ 
  img_name.src = img_swap 
} 

// Original JavaScript code by Duncan Crombie: dcrombie@chirp.com.au
// Please acknowledge use of this code by including this header.

// CONSTANTS
var separator = ","; // use comma as 000's separator
var decpoint = "."; // use period as decimal point
var percent = "%";
var currency = "$"; // use dollar sign for currency

function formatNumber(number, format, print) { // use: formatNumber(number, "format")
if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

if (number - 0 != number) return null; // if number is NaN return null
var useSeparator = format.indexOf(separator) != -1; // use separators in number
var usePercent = format.indexOf(percent) != -1; // convert output to percentage
var useCurrency = format.indexOf(currency) != -1; // use currency format
var isNegative = (number < 0);
number = Math.abs (number);
if (usePercent) number *= 100;
format = strip(format, separator + percent + currency); // remove key characters
number = "" + number; // convert number input to string

// split input value into LHS and RHS using decpoint as divider
var dec = number.indexOf(decpoint) != -1;
var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

// split format string into LHS and RHS using decpoint as divider
dec = format.indexOf(decpoint) != -1;
var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

// adjust decimal places by cropping or adding zeros to LHS of number
if (srightEnd.length < nrightEnd.length) {
var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
nrightEnd = nrightEnd.substring(0, srightEnd.length);
if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); // round up

// patch provided by Patti Marcoux 1999/08/06
while (srightEnd.length > nrightEnd.length) {
nrightEnd = "0" + nrightEnd;
}

if (srightEnd.length < nrightEnd.length) {
nrightEnd = nrightEnd.substring(1);
nleftEnd = (nleftEnd - 0) + 1;
}
} else {
for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
if (srightEnd.charAt(i) == "0") nrightEnd += "0"; // append zero to RHS of number
else break;
}
}

// adjust leading zeros
sleftEnd = strip(sleftEnd, "#"); // remove hashes from LHS of format
while (sleftEnd.length > nleftEnd.length) {
nleftEnd = "0" + nleftEnd; // prepend zero to LHS of number
}

if (useSeparator) nleftEnd = separate(nleftEnd, separator); // add separator
var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : ""); // combine parts
output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
if (isNegative) {
// patch suggested by Tom Denn 25/4/2001
output = (useCurrency) ? "(" + output + ")" : "-" + output;
}
return output;
}

function strip(input, chars) { // strip all characters in 'chars' from input
var output = ""; // initialise output string
for (var i=0; i < input.length; i++)
if (chars.indexOf(input.charAt(i)) == -1)
output += input.charAt(i);
return output;
}

function separate(input, separator) { // format input using 'separator' to mark 000's
input = "" + input;
var output = ""; // initialise output string
for (var i=0; i < input.length; i++) {
if (i != 0 && (input.length - i) % 3 == 0) output += separator;
output += input.charAt(i);
}
return output;
}



function testIt(){
var f1 = parseFloat(abx.value);
var f2 = parseFloat(abz.value);
var re = f1*f2;
var n = formatNumber(re, "##0.#")

alert("result: " + n);
}


    function getObj(name)
    {
      if (document.getElementById)
      {
  	     this.obj = document.getElementById(name);
	       this.style = document.getElementById(name).style;
      }
      else if (document.all)
      {
	       this.obj = document.all[name];
	       this.style = document.all[name].style;
      }
      else if (document.layers)
      {
   	      this.obj = document.layers[name];
   	      this.style = document.layers[name];
      }
    }
   
   function findPosX(obj)
   {
     var curleft = 0;
	   if (obj.offsetParent)
	   {
		    while (obj.offsetParent)
		    {
			   curleft += obj.offsetLeft
			   obj = obj.offsetParent;
		    }
	   }
	   else if (obj.x) 
     {
		  curleft += obj.x;
     }
  	return curleft;
    }

    function findPosY(obj)
    {
	   var curtop = 0;
	   if (obj.offsetParent)
	   {
		    while (obj.offsetParent)
		    {
			   curtop += obj.offsetTop
			   obj = obj.offsetParent;
		    }
	   }
	   else if (obj.y)
    {
		  curtop += obj.y;
    }
	 return curtop;
  }

  /*
        var y = findPosY(oP1);
  
      if (window.innerHeight)
	    {
		    pos = window.pageYOffset;
	    }
	    else if (document.documentElement && document.documentElement.scrollTop)
	    {
		    pos = document.documentElement.scrollTop;
	    }
	    else if (document.body)
	    {
		    pos = document.body.scrollTop;
	    }
*/