﻿// JScript File

function trim(str)
{
	var newString = str + ''
	newString = newString.replace(/\s+/g,"");
	return newString
}

function isNumeric(string)
{
	var strToTest = trim(string)
	var valid = true

	if (strToTest.length==0)
		valid = false
	else
	{
		for (var i=0;i<strToTest.length; i++)
		{
			var x = parseInt(strToTest.charAt(i))
			if (isNaN(x))
			{
				valid = false;
				break;
			}	
		}
	}
	
	return valid	
}

function isDecimal(string)
{
	var strToTest = trim(string)
	var valid = true
	
	if (strToTest.length==0)
		valid = false
	else
	{
		for (var i=0;i<strToTest.length; i++)
		{
			var x = parseInt(strToTest.charAt(i))
			var dot = strToTest.charAt(i)
			if ((isNaN(x)) && (dot!='.'))
			{
				valid = false;
				break;
			}	
		}
		
		var x = parseFloat(strToTest)
		if (isNaN(x))
		{
			valid = false;
		}	
	}
			
	return valid	
}

function isDate(dateStr) 
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{2,4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	var valid = true
	
	
	if (matchArray == null) 
		valid = false
	else
	{
		month = matchArray[1]; // p@rse date into variables
		day = matchArray[3];
		year = matchArray[5];

		if (month < 1 || month > 12) 
			valid = false;

		if (day < 1 || day > 31)	
			valid = false;

		if ((month==4 || month==6 || month==9 || month==11) && day==31) 
			valid = false;

		if (month == 2) 
		{ 
			// check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) 
				valid = false
		}
	}

	return valid
}

function Round(num, places)
{
    var div = Math.pow(10, places)
    
    var result = Math.round(num * div)/div
    
    //fill in empty ending zereos
    if (places > 0)
    {
        result = result + ""
        if (result.indexOf(".") == -1)
            result += "."
            
        var dotIndex = result.indexOf(".")
        
        while (result.length - dotIndex - 1 < places )
        {
            result = result + "" + "0"
        }
    }
    
    return result
}

function ToCurrency(amount)
{
    if (isDecimal(amount))
        return "$" + Round(amount, 2)
    else
        return ""
}

function IsWithinNumericRange(number, min, max)
{
	var valid = isDecimal(number)
	if (number<min || number>max)	
	{
		valid = false
	}
	
	return valid
}

/*********************************************************************************/
/* STUFF                                                                         */
/*********************************************************************************/
var cursorLeft = 0
var cursorTop = 0
var IE = true
var ffEvent

if	(document.all)
	IE = true;
else
	IE = false;


if (!IE)
{
	document.captureEvents(Event.MOUSEMOVE);
	document.captureEvents(Event.MOUSEDOWN);
	document.captureEvents(Event.KEYDOWN);
	document.captureEvents(Event.KEYUP);
}

document.onmousemove = mouse
document.onkeyup = keyup

function mouse(e)
{
   if(IE)
	{ cursorLeft = event.clientX; cursorTop = event.clientY; }
	else
	{ cursorLeft = e.clientX; cursorTop = e.clientY; }
}

function keyup(e)
{
   var key;
	if(IE)
		key = event.keyCode
	else
		key = e.which
}
			
function enterClick(btnID, e)
{	
    var key;
    
    if(!e)
        key = event.keyCode
    else
        key = e.which
	
	
	if (key == 13)
	{ 
		document.getElementById(btnID).click();	
		event.returnValue=false;
		event.cancel = true;
	} 
}

function ToShortDateString(date)
{
	var d = new Date()
	d = date
		
	return d.getMonth() + "/" + d.getDate() + "/" + d.getFullYear()
}

function ToShortDateTimeString(date)
{
	var d = new Date()
	d = date
		
	return d.getMonth() + "/" + d.getDate() + "/" + d.getFullYear() + " " + d.toLocaleTimeString()
}

function ToShortTimeString(date)
{
	var d = new Date()
	d = date
		
	return d.toLocaleTimeString()
}

function FormatDate()
{
	var now = new Date()
		
	var day = GetDay(now)
	var month = GetMonth(now)
	return day + ", " + month + " " + now.getDate() + " " + now.getFullYear()
}

function GetMonth(now)  
{
	switch (now.getMonth() + 1)
	{
		case 1: return "January"; break;
		case 2: return "February"; break;
		case 3: return "March"; break;
		case 4: return "April"; break;
		case 5: return "May"; break;
		case 6: return "June"; break;
		case 7: return "July"; break;
		case 8: return "August"; break;
		case 9: return "September"; break;  
		case 10: return "October"; break;
		case 11: return "November"; break;
		case 12: return "December"; break;
	}	
}

function GetDay(now)
{
	switch (now.getDay() + 1)
	{
		case 1: return "Sunday"; break;
		case 2: return "Monday"; break;
		case 3: return "Tuesday"; break;
		case 4: return "Wednesday"; break;
		case 5: return "Thursday"; break;
		case 6: return "Friday"; break;
		case 7: return "Saturday"; break;;
	}	
}

function CancelEvent(e)
{
    if (IE)
	{
		event.returnValue=false;
		event.cancel = true;
	}
	else
	{
	    return false;
	}
}

function GetDimension(el, dim)
{
   var iLeft = 0
   var iTop = 0
   var iRight = 0
   var iBottom = 0
   var iWidth = 0
   var iHeight = 0
   
   var retVal = 0
   
   var oNode = el
   
   switch(dim)
   {
      case "left" :
         while(oNode.tagName != "BODY") 
         {
           iLeft += oNode.offsetLeft;
           oNode = oNode.offsetParent;        
         } 
    
         retVal = iLeft;
         break;
         
      case "top" :
         while(oNode.tagName != "BODY") 
         {
           iTop += oNode.offsetTop;
           oNode = oNode.offsetParent;        
         } 
    
         retVal = iTop;
         break;
         
      case "width" :
         retVal = oNode.offsetWidth;
         break;
      
       case "height" :
         retVal = oNode.offsetHeight;
         break;
      
   }
   
   return retVal;
}

function OffsetDiv(div, width)
{
    var l = left - 20 - width
    var t = top - 20
    
    div.style.left = l + "px"
    div.style.top = t + "px"
}

function SetDropDownIndex(ddName, value)
{
    var dd = $(ddName)
    
    for (var i=0; i <dd.options.length - 1; i++)
    {
        if(dd.options[i].value == value)
        {
            dd.selectedIndex = i;
            break;
        }
    } 
}

function GetElementPosition(elID)
{
    var offLeft = offTop = 0;
    var obj = document.getElementById(elID)
    
    if (obj.offsetParent) 
    {
        do {
			offLeft += obj.offsetLeft;
			offTop += obj.offsetTop;
			
	    } while (obj = obj.offsetParent);
	 }

      return [offLeft, offTop];

}

