function padLChar(s, n, c) {
   var r = "";
   for (i = s.length; i < n; i++) r += c
   return r + s;
}

function padRChar(s, n, c) {
   var r = "";
   for (i = s.length; i < n; i++) r += c
   return s + r;
}

function lTrim(strValue) {
   return strValue.replace(/^ {1,}/, "");
}

function rTrim(strValue) {
   return strValue.replace(/ {1,}$/, "");
}

function trim(strValue) {
   return rTrim(lTrim(strValue));
}

function rmRtnChar(strValue) {
   return strValue.replace(/\x0d/g, "");
}

function rpRtnChar(strValue, strChar) {
   var strTemp = strValue.replace(/\x0d/g, "");
   return strTemp.replace(/\x0a/g, strChar);
}

// rounds number to X decimal places, defaults to 2
function round(number, x) {
   x = (!x ? 2 : x);
   return Math.round(number * Math.pow(10, X)) / Math.pow(10, X);
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function isDate(day, month, year) {
// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.

   var today = new Date();
   year = ((!year) ? y2k(today.getYear()) : year);
   month = ((!month) ? today.getMonth() : month - 1);
   if (!day) return false

   var test = new Date(year, month, day);
   if ((y2k(test.getYear()) == year) &&
       (month == test.getMonth()) &&
       (day == test.getDate()))
      return true;
   else
      return false;
}

function isAlphabet (InString)  {
   if(InString.length==0)
      return (false);

   var RefString="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

   for (Count=0; Count < InString.length; Count++)  {

      TempChar = InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)
         return (false);
   }
   return (true);
}

function isAlphanumeric (InString) {
   if(InString.length==0)
      return (false);

   var RefString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz";
   for (Count=0; Count < InString.length; Count++)  {

      TempChar= InString.substring (Count, Count+1);

      if (RefString.indexOf (TempChar, 0)==-1)
         return (false);
   }

   return (true);
}

function isNumber (InString) {
   if(InString.length==0)
      return (false);

   var RefString = "1234567890.";
   for (Count=0; Count < InString.length; Count++)  {

      TempChar= InString.substring (Count, Count+1);

      if (RefString.indexOf (TempChar, 0)==-1)
         return (false);
   }

   return (true);
}

function isNumeric (InString) {
   if(InString.length==0)
      return (false);

   var RefString = "1234567890";
   for (Count=0; Count < InString.length; Count++)  {

      TempChar= InString.substring (Count, Count+1);

      if (RefString.indexOf (TempChar, 0)==-1)
         return (false);
   }

   return (true);
}

function isCurrency (InString) {
   if(InString.length==0)
      return (false);

   var RefString = "1234567890.";

   var isDotAppeared = 0;
   for (Count=0; Count < InString.length; Count++)  {

      TempChar= InString.substring (Count, Count+1);

      if (RefString.indexOf (TempChar, 0)==-1)
         return (false);
   }

   var dotPos;

   dotPos = InString.indexOf(".");

   if (dotPos>0){
      if (InString.indexOf(".", dotPos+1)>0){
         return (false);
      }
   }

   return (true);
}

function isValidEmail(strEmail) {
   var at  = false;
   var dot = false;
   var i   = 0;

   // if the email address has a "@" character
   if (strEmail.indexOf("@") != -1)
      at = true;

   // if the email address has a "." character
   else if (strEmail.indexOf(".") != -1)
      dot = true;

   // parse remainder of the string
   for(i = 0; i < strEmail.length; i++)
   {
      ch = strEmail.substring(i, i + 1)
      if((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z")
         || (ch == "@") || (ch == ".") || (ch == "_")
         || (ch == "-") || (ch >= "0" && ch <= "9"))
      {
         if(ch == "@")
            at = true;
         if(ch == ".")
            dot = true;
      }
   }

   if ((at == true) && (dot == true))
      return true;
   else
      return false;
}

function JustSoPicWindow(imageName,imageWidth,imageHeight,alt,bgcolor,hugger,hugMargin) {
// by E Michael Brandt of ValleyWebDesigns.com - Please leave these comments intact.
// version 3.0.4  

	if (bgcolor=="") {
		bgcolor="#FFFFFF";
	}
	var adj=10
	var w = screen.width;
	var h = screen.height;
	var byFactor=1;

	if(w<740){
	  var lift=0.90;
	}
	if(w>=740 & w<835){
	  var lift=0.91;
	}
	if(w>=835){
	  var lift=0.93;
	}
	if (imageWidth>w){	
	  byFactor = w / imageWidth;			
	  imageWidth = w;
	  imageHeight = imageHeight * byFactor;
	}
	if (imageHeight>h-adj){
	  byFactor = h / imageHeight;
	  imageWidth = (imageWidth * byFactor);
	  imageHeight = h; 
	}
	   
	var scrWidth = w-adj;
	var scrHeight = (h*lift)-adj;

	if (imageHeight>scrHeight){
  	  imageHeight=imageHeight*lift;
	  imageWidth=imageWidth*lift;
	}

	var posLeft=0;
	var posTop=0;

	if (hugger == "hug image"){
	  if (hugMargin == ""){
	    hugMargin = 0;
	  }
	  var scrHeightTemp = imageHeight - 0 + 2*hugMargin;
	  if (scrHeightTemp < scrHeight) {
		scrHeight = scrHeightTemp;
	  } 
	  var scrWidthTemp = imageWidth - 0 + 2*hugMargin;
	  if (scrWidthTemp < scrWidth) {
		scrWidth = scrWidthTemp;
	  }
	  
	  if (scrHeight<100){scrHeight=100;}
	  if (scrWidth<100){scrWidth=100;}

	  posTop =  ((h-(scrHeight/lift)-adj)/2);
	  posLeft = ((w-(scrWidth)-adj)/2);
 	}

	if (imageHeight > (h*lift)-adj || imageWidth > w-adj){
		imageHeight=imageHeight-adj;
		imageWidth=imageWidth-adj;
	}
	posTop = parseInt(posTop);
	posLeft = parseInt(posLeft);		
	scrWidth = parseInt(scrWidth); 
	scrHeight = parseInt(scrHeight);
	
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1){
	  var args= new Array();
	  args[0]='parent';
	  args[1]=imageName;
	  var i ; document.MM_returnValue = false;
	  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
	newWindow = window.open("vwd_justso.htm","newWindow","width="+scrWidth+",height="+scrHeight+",left="+posLeft+",top="+posTop);
	newWindow.document.open();
	newWindow.document.write('<html><title>'+alt+'</title><body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor='+bgcolor+' onBlur="self.close()" onClick="self.close()">');  
	newWindow.document.write('<table width='+imageWidth+' border="0" cellspacing="0" cellpadding="0" align="center" height='+scrHeight+' ><tr><td>');
	newWindow.document.write('<img src="'+imageName+'" width='+imageWidth+' height='+imageHeight+' alt="Click screen to close" >'); 
	newWindow.document.write('</td></tr></table></body></html>');
	newWindow.document.close();
	newWindow.focus();
	}
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

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 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;
}

function MM_findObj(n, d) { //v4.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);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function calculateFileSize()
{

	var isDOM = (document.getElementById ? true : false);

	if(isDOM==true)
	{
		var size = (document.fileSize)*1;
		var y = document.images;
		var imglength = 0;
		for (i=0;i<y.length;i++)
		{
			imglength += (y[i].fileSize)*1;
		}
		var total = size + imglength;
		var writestring =  size;
		//writestring += '\nFile size images: ' + imglength;
		//writestring += '\nTotal file size: ' + total;
		//if (total > 40000) writestring += "\nFile too large!";
		writestring +='bytes';
		document.writeln(writestring);
	}
}
