function ValidateDate(strDate, strLocalCcy)
{
	re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
			
	if(re.test(strDate) == false)
	{
		return false;
	}
	else
	{
		var valDateEntered = strDate;	
		var dateArray = valDateEntered.split('/');
		var dtDateEnteredMonth;// = dateArray[0];
		var dtDateEnteredYear;// = dateArray[2];
		var dtDataEnteredDay;// = 	dateArray[1];
		
		switch (strLocalCcy)
		{
		    case "GBP":
				dtDateEnteredMonth = dateArray[1];
				dtDateEnteredYear = dateArray[2];
				dtDataEnteredDay = 	dateArray[0];
				
				break;
			default:
				dtDateEnteredMonth = dateArray[0];
				dtDateEnteredYear = dateArray[2];
				dtDataEnteredDay = 	dateArray[1];
				
				break;
		}
		
		valDateEntered = dtDateEnteredMonth + "/" + dtDataEnteredDay + "/" + dtDateEnteredYear;
		if (isNaN(dtDateEnteredYear) || dtDateEnteredYear.length != 4 || dtDateEnteredYear == 0 || dtDateEnteredYear < 1753 || dtDateEnteredYear > 2500)
		{
			return false;
		}
		else 
		{
			var dtDateEntered = new Date(valDateEntered);
			var strGMTdtDateEntered = dtDateEntered.toGMTString();
			var arrayGetMonth = strGMTdtDateEntered.split(' ');					
			var dtGMTMonth;
																	
			switch (arrayGetMonth[2]){
			case "Jan":
				dtGMTMonth = 1;
				break;
			case "Feb":
				dtGMTMonth = 2;
				break;
			case "Mar":
				dtGMTMonth = 3;
				break;
			case "Apr":
				dtGMTMonth = 4;
				break;
			case "May":
				dtGMTMonth = 5;
				break;
			case "Jun":
				dtGMTMonth = 6;
				break;
			case "Jul":
				dtGMTMonth = 7;
				break;
			case "Aug":
				dtGMTMonth = 8;
				break;
			case "Sep":
				dtGMTMonth = 9;
				break;
			case "Oct":
				dtGMTMonth = 10;
				break;
			case "Nov":
				dtGMTMonth = 11;
				break;
			case "Dec":
				dtGMTMonth = 12;
				break;				
			}
																		
			if (dtGMTMonth != dtDateEnteredMonth ) 
			{
				return false;
			} 
			else
			{
				return true;
			}
		}		 
	}
}

//Returns true if year is a number between 1753 and 2500.
function ValidateDateYearOnly(year)
{

    //check if number
	var regex = /[^0-9]/;
	
	if (isNaN(year) || regex.test(year))
	    return false;

    //check if range is correct
    if (year > 1753 && year < 2500)
        return true;
    else
        return false;
}

//Returns true if the date is in mm/yyyy or m/yyyy format.
function ValidateDateMonthYearOnly(date)
{
    var dateArray = date.split('/');
    
    if (dateArray.length > 2)
        return false;
       
    var month = dateArray[0];
    var year = dateArray[1];
    
    var day = "01";
    
    return ValidateDate(month + "/" + day + "/" + year);

}

function ConvertToFullDate(date) 
{
    var dateArray = date.split('/');
    var dateString;

    if (dateArray.length == 3) 
    {
        dateString = date;
    }
    else if (dateArray.length == 2) 
    {
        dateString = dateArray[0] + "/01/" + dateArray[1];
    } 
    else if (dateArray.length == 1) 
    {
        dateString = "01/01/" + dateArray[0];
    }
   
    return new Date(dateString);
}
