
function isValidDate(la_date) {
	if (la_date.length > 0) {
		var strlen = la_date.length;
		if (strlen != 10) {
			return (false);
		}
		if (la_date.substring(4,5) !="-" || la_date.substring(7,8) !="-") {
			return (false)
		}
		day = la_date.substring(8,10);
		month = la_date.substring(5,7);
		year = la_date.substring(0,4);
		
        if (month < 1 || month > 12) {
            return(false);
        }
        if (day < 1 || day > 31) {
            return false;
        }
        if ((month == 4 || month == 6 || month == 9 || month == 11) &&
            (day == 31)) {
            return false;
        }
        if (month == 2) {
            var leap = (year % 4 == 0 &&
                       (year % 300 != 0 || year % 400 == 0));
            if (day>29 || (day == 29 && !leap)) {
                return (false);
            }
        }
	}        
	return (true);
}


function isValidInt(value) {
	if (value.length > 0) {
  		if (!isAllDigits(value)) {
        	return (false);        
        } 
        else {
        	var iValue = parseInt(value);
	        if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
	       		return (false);
	   		}
	   	}
    }
	return(true);
}


function isValidFloat(value) {
	if (value.length > 0) {
    	// remove '.' before checking digits
        var tempArray = value.split('.');
        var joinedString= tempArray.join('');
        if (!isAllDigits(joinedString)) {
   			return (false); 
        } 
        else {
	        var iValue = parseFloat(value);
	        if (isNaN(iValue)) {
	        	return (false);
	        }
        }
    }
    return (true );
}

function isAllDigits(argvalue) {
    argvalue = argvalue.toString();
    var validChars = "0123456789";
    var startFrom = 0;
    if (argvalue.substring(0, 2) == "0x") {
       validChars = "0123456789abcdefABCDEF";
       startFrom = 2;
    } else if (argvalue.charAt(0) == "0") {
       validChars = "01234567";
       startFrom = 1;
    } else if (argvalue.charAt(0) == "-") {
        startFrom = 1;
    }
    
    for (var n = startFrom; n < argvalue.length; n++) {
        if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
    }
    return true;
}


function isValidBBOX(west,east,south,north) {
	if (( !isValidFloat(west)) || 
		( !isValidFloat(east)) || 
		( !isValidFloat(south)) || 
		( !isValidFloat(north))) {
		return (false);		
	}
	w = parseFloat(west);
	e = parseFloat(east);
	s = parseFloat(south);
	n = parseFloat(north);

	if ((w < -180.0) || 
		(e > 180.0) ||
		(s < -90.0) ||
		(n > 90.0)) {
		return (false);	
	}
	if ((w >= e) ||
		(s >= n)) {
		return (false);	
	}
	return (true);
}
	
