// validate_date
// Author:  Mike Prince
// description: Checks the value parameter of the given element to see if it is a valid date.  
//              Partials are modified into full date strings.
// examples:  validate_date('6-2001', 'beginning')  outputs '01/06/2001'
//            validate_date('2001', 'end')  outputs '12/31/2001'
//            validate_date('02/2001', 'end')  outputs '02/28/2001'
//            validate_date('13/1/2001', 'end')  produces an arror message and returns false
// inputs: element - form element who's value we are checking/changing
//         placement - When day and/or month is not specified, this parameter specifies whether 
//                   the modified date string should be set to the beginning (1/1/1999) or end 
//                   (12/31/1999) of the given range.  Valid values: begin(ning), end
// returns: false when an invalid string is contained in element.value, 
//          true otherwise
function validate_date( element, placement )
{
	var days = [0,31,28,31,30,31,30,31,31,30,31,30,31]
	
	function validate_year( year )
	{
		if( (year>=0 && year<=99) || (year>=1900) )
			return true;
		return false;
	}
	
	var begin;
	if( placement.search('begin')==0 )
		begin = true;
	else if( placement.search('end')==0 )
		begin = false;
	else {
		alert("Bad 'placement' parameter in JS funstion call to validate_date(value, placement)\nMust match 'beginning' or 'end'.")
		return false;
	}
	
	//alert(element.value)
	//var date = new Date(element.value);
	//alert(date.toDateString() );
	
	var tok_arr = element.value.split(/[\/-]/);
	for( var i in tok_arr )
		tok_arr[i] = tok_arr[i]-0;
	//alert(tok_arr);
	
	if( tok_arr.length == 1 )
		if( validate_year(tok_arr[0]) ) {
			//alert("one")
			if( begin )	element.value = "01/01/"+tok_arr[0];
			else        element.value = "12/31/"+tok_arr[0];
			return true;
		}
			
	if( tok_arr.length == 2 )
		if( tok_arr[0]>=1 && tok_arr[0]<=12 && validate_year(tok_arr[1]) ) {
			//alert("two");
			if( begin ) element.value = tok_arr[0]+"/01/"+tok_arr[1];
			else        element.value = tok_arr[0]+"/"+days[tok_arr[0]]+"/"+tok_arr[1];
			if( tok_arr[0]<10 )
				element.value = "0"+element.value;
			return true;
		}
	
	if( tok_arr.length == 3 )
		if( tok_arr[0]>=1 && tok_arr[0]<=12 && validate_year(tok_arr[2]) )
			if( tok_arr[1]>=1 && tok_arr[1]<=days[tok_arr[0]] ) {
				//alert("three");
				element.value = tok_arr[0]+"/"
				if( tok_arr[1]<10 ) 
					element.value = element.value + "0";
				element.value = element.value + tok_arr[1]+"/"+tok_arr[2];
				if( tok_arr[0]<10 )
					element.value = "0"+element.value;
				return true;
			}
	alert("Please enter a valid date in "+element.name);	
	return false;								
}


function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
function move(winVal,theURL,winName,features) {
	window.location.href = winVal;
	MM_openBrWindow(theURL,winName,features);
}
function MM_preloadImages() { //v3.0
	if(document.images)
	{ 
		if(!document.MM_preload) 
			document.MM_preload=new Array();
		var i, j=document.MM_preload.length;
		var args=MM_preloadImages.arguments; 
		for(i=0; i<args.length; i++)
			if ( args[i].indexOf("#")!=0 )
			{ 
				document.MM_preload[j]=new Image; 
				document.MM_preload[j].src=args[i];
				j++;
			}
	}
}

//         MM_swapImage( 'center', '', 'Home/rollovers/online_store.gif' );
// groups of 3 arguements:   1     2           3
function MM_swapImage() { //v3.0
	if( document.images )
	{	var i,image;
		var j=0;
		var args=MM_swapImage.arguments;
		document.MM_swapped=new Array; 
		for( i=0; i<args.length; i+=3 )
		{	image=MM_findObj(args[i]);
			if ( image!=null )
			{	if(!image.oldSrc) 
					image.oldSrc=image.src; 
				image.src=args[i+2];
				document.MM_swapped[j]=image; 
				j++;
			}
		}
	}
}

function MM_swapImgRestore() { //v3.0
	if( document.images && document.MM_swapped ) 
	{	var i;
		for( i=0; i<document.MM_swapped.length; i++ ) 
		{	if( document.MM_swapped[i].oldSrc ) 
			{	document.MM_swapped[i].src=document.MM_swapped[i].oldSrc;
				document.MM_swapped[i].oldSrc=null;
			}
		}
	}
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}