
///////////////////////////////////////////////////
//
function CreateDateFromString(date) 
{
	if(IsDate(date))
		return ParseDate(date);                        
     else
		return null;        
}

///////////////////////////////////////////////////
//
function IsDate(text)
{
	return GetFormatedDate(ParseDate(text)) == FormatFormDate(text);
}

///////////////////////////////////////////////////
//
function ParseDate(val) 
{
	var input = val + ''; 
                          
    if(!IsEmpty(input)) 
    {
		var arr = input.split('.')
		
        if (arr.length == 3) 
        {
			var d = arr[0]
            var m = arr[1]
            var y = arr[2]
                              
            if(IsIntegerInRange(RemoveZero(d), 0, 31) && 
			   IsIntegerInRange(RemoveZero(m), 1, 12) && 
			   IsIntegerInRange(FullYear(y), 1900, 2100))
				return CreateDate(RemoveZero(d), RemoveZero(m), FullYear(y));
         }   
     }
     
     return CreateDate(1,0,1);
}

///////////////////////////////////////////////////
//
function GetFormatedDate(val) 
{
	return val.getDate() + '.' + (val.getMonth() + 1) + '.' + val.getFullYear();
}

///////////////////////////////////////////////////
//
function FormatFormDate(value)
{
	if(!IsEmpty(value))
    {
		var arr = value.split('.');
        
        if (arr.length == 3)
        {
			var d = RemoveZero(arr[0]);
            var m = RemoveZero(arr[1]);
            var y = FullYear(arr[2]);
                              
            return d + '.' + m + '.' + y;
        }
        else
        {  
			return value;
		}
	}
	else
    {
		return value;
    }  
}

///////////////////////////////////////////////////
//
function FullYear(value)
{
	if(!IsEmpty(value))
    {
		switch(value.length)
        {
        case 1:
				var YearTmp = parseInt(GetActualYear() / 10);
                return YearTmp + value;
        case 2: 
                var YearTmp = parseInt(GetActualYear() / 100)
                return YearTmp + value;
        case 3:
                var YearTmp = parseInt(GetActualYear() / 1000)
                return YearTmp + value;
        case 4:
				return value;
        default:
				return 'value'; 
        }
    }
    else
    {
		return value;
    }
}

///////////////////////////////////////////////////
//
function CreateDate(d, m, y) 
{
	return new Date(y, m - 1, d);
}

///////////////////////////////////////////////////
//
function GetActualYear() 
{	
	var actDate = new Date();
    return actDate.getFullYear();
}

///////////////////////////////////////////////////
//
function FormatDate(dateString, formatString) 
{
	return RemoveZero(dateString.substr(6,2)) + '.' + RemoveZero(dateString.substr(4,2)) + '.' + dateString.substr(0,4);                    
}
