
function FormatDate(d) {
	if (d+""=="null" || d+""=="null") {
		rd="";
	} else {
		rd=new Date(d);
		if (isNaN(rd.getMonth())) rd = "";
		else rd = (rd.getMonth()+1) + "/" + rd.getDate() + "/" + rd.getFullYear();
	}
	return rd;
}

	function isValidDate(inDate){
	var strDate = new String(inDate)
	if (strDate.length<=0) return true;
	
	var Today = new Date();
	var test= /([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{2,4})/;
	if (strDate.match(test)) {
		var splits=strDate.split("/");
		if(String(splits[0]).length==1) splits[0]="0"+splits[0];
		if(String(splits[1]).length==1) splits[1]="0"+splits[1];
		if(parseInt(splits[2]) < 1000){
			thisYear	= Today.getFullYear();
			thisCentury = String(thisYear).substr(0,2);
			if(parseInt(thisCentury + "" + splits[2]) < parseInt(thisYear)-10){
				splits[2] = String(thisYear+100).substr(0,2) + splits[2];
			}else{
				splits[2] = String(thisYear).substr(0,2) + splits[2];
			}
		}
		if (!( splits[0]>0 && splits[0]<13 && splits[1]>0 && splits[1]<32 && splits[2]>1899 )) return false;
	}else{
		return false;
	}
	return true;
}


//this function is not taking into account daylight savings time when comparing days
//and is breaking everytime someone uses 4/1 as a date
function DateDiff(start, end, interval, rounding){

    var iOut = 0;
    
    // Create 2 error messages, 1 for each argument. 
    var startMsg = "Check the Start Date and End Date\n"
        startMsg += "must be a valid date format.\n\n"
        startMsg += "Please try again." ;
		
    var intervalMsg = "Sorry the dateAdd function only accepts\n"
        intervalMsg += "d, h, m OR s intervals.\n\n"
        intervalMsg += "Please try again." ;

    var bufferA = Date.parse( start ) ;
    var bufferB = Date.parse( end ) ;
    	
    // check that the start parameter is a valid Date. 
    if ( isNaN (bufferA) || isNaN (bufferB) ) {
        Response.Write( startMsg ) ;
        return null ;
    }
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        Response.Write( intervalMsg ) ;
        return null ;
    }
    
    var number = bufferB-bufferA ;
    
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            iOut = parseInt(number / 86400000) ;
            if(rounding) iOut += parseInt((number % 86400000)/43200001) ;
            break ;
        case 'h': case 'H':
            iOut = parseInt(number / 3600000 ) ;
            if(rounding) iOut += parseInt((number % 3600000)/1800001) ;
            break ;
        case 'm': case 'M':
            iOut = parseInt(number / 60000 ) ;
            if(rounding) iOut += parseInt((number % 60000)/30001) ;
            break ;
        case 's': case 'S':
            iOut = parseInt(number / 1000 ) ;
            if(rounding) iOut += parseInt((number % 1000)/501) ;
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        alert(intervalMsg) ;
        return null ;
    }
    //added 1/05 CS
    var daylightcheck = new String(start+"")
    if(daylightcheck.indexOf("Apr 1 ") > 0 && interval=="d"){
		iOut++
    }
     
    return iOut ;
}


function DateAdd(fromdate,future)
{
  if (String(future)=="undefined")
	var future=0;
	var days=0;
	var d, returndate = "";
	d = new Date();
	var df = new Date(fromdate);
	d.setYear(df.getFullYear());
	d.setMonth(df.getMonth());
	 
	 days=df.getDate();
	days=days+ Number(future);
 
	d.setDate(days);
 
	if (String(d.getMonth()+1).length==1)
		returndate  += "0" + (d.getMonth() + 1) + "/";
	else returndate  += (d.getMonth() + 1) + "/";
	if (String(d.getDate()).length==1)
		returndate  += "0" + d.getDate() + "/";
	else returndate  += d.getDate() + "/";
	returndate  += d.getYear();
	return(returndate);
}



