//
// File: olc_dates.js
// Version: 1.0
// Author: RO
//
// Description: Converts ordinary date string to a number date string
// To Call: function dateToNumber( STRING in_date )
// i.e. Nov 10 2006 to 11/10/2006
// Note: Does not support Nov 10, 2006
//

	var date_delimeter = "/";
	var in_date_delimeter = " ";
	
//-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --//
	var char_range = new Array;
		char_range[0]	= "1234567890";

	var months = new Array;
		months["january"]= 1;
		months["february"]= 2;
		months["march"]= 3;
		months["april"]= 4;
		months["may"]= 5;
		months["june"]= 6;
		months["july"]= 7;
		months["august"]= 8;												
		months["september"]= 9;
		months["october"]= 10;		
		months["november"]= 11;		
		months["december"]= 12;
		months["jan"]= 1;
		months["feb"]= 2;
		months["mar"]= 3;
		months["apr"]= 4;
		months["may"]= 5;
		months["jun"]= 6;
		months["jul"]= 7;
		months["aug"]= 8;												
		months["sep"]= 9;
		months["oct"]= 10;		
		months["nov"]= 11;		
		months["dec"]= 12;	

	function dateToNumber( in_date )
	{
		var parts;
		var tmp;
		var my_month, my_date, my_year;
		var date_index, year_index, month_index;;

		//Make sure date is in proper format
		in_date	= trim( in_date );		
		parts		= in_date.split( in_date_delimeter );
		
		//Possible data in
		//'Nov 20 2006'
		//'Nov  2 2006'
		if( parts.length != 4 && parts.length != 3)
		{
			return -1;
		}
		
		//'Nov  2 2006'
		if( parts.length == 4 )
		{	
			date_index = 2;
			year_index = 3;
		}
		//'Nov 20 2006'		
		if( parts.length == 3 )
		{	
			date_index = 1;
			year_index = 2;
		}		
		
		month_index = 0;
		
		//Get the numerical digit for the month
		my_month = getMonthsDigit( parts[month_index] );
		
		//Get the numberic date
		tmp = parts[date_index];
		if( ( isValidChars( tmp, 0 ) == false ) && ( tmp.length <= 2 ) )
		{
			return -2;
		}			
		my_date = tmp;
		
		//Get the 4-digit year		
		tmp = parts[year_index];
		
		if( isValidChars( tmp, 0 ) == false )
		{
			return -3;
		}	
			
		if( tmp.length == 4 )
		{
			my_year = tmp.substr(2);
		}
		else
		{
			if( tmp.length == 2 )
			{
				my_year = tmp;
			}
			else
			{
				return -4;
			}
		}
		
		return my_month + date_delimeter + my_date + date_delimeter + my_year;
	}
	
//-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --//
	function fixDate( the_date )
	{

	}

	function getMonthsDigit( in_month )
	{
		var ret = null;
		var lowercase = in_month.toLowerCase();
		
		ret = months[ lowercase ];
			
		if( ( ret == null ) || ( ret == undefined ) )
		{
			return( -1 );
		}
		else
		{			
			return ret;
		}
	}		
		
	function isValidChars( InString, WhichChars )
	{
		var RefString;
		var tempChar;
		var count;
		
		if(InString.length==0)
		{
			return (false);
		}
		RefString = char_range[WhichChars];		
		if(InString.length==0)
			return (false);
		for (count=0; count < InString.length; count++)
		{
			tempChar= InString.substring (count, count+1);
			if (RefString.indexOf (tempChar, 0)==-1)
			{
				return (false);
			}
		}
		return (true);
	}			
		
		
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

		
		
		