/*
----------------------------------------------------------
Parse Script
----------------------------------------------------------
*/
var undefined; // = void 0;

function _asCurrency() {
	var oCur = new Currency(this.value);
	if (isNaN(oCur)) return undefined;
	else return oCur;
}
_asCurrency.errorMessage = mstrError;

function _asNumerical() {
	var oNum = new Numerical(this.value);
	if (isNaN(oNum)) return undefined;
	else return oNum;
}
_asNumerical.errorMessage = mstrError;

function _asDate() {
	//var oDate = new Date(this.value);
	var oDate = Date.parseUK(this.value);
	if (isNaN(oDate)) return undefined;
	else return oDate;
}
_asDate.errorMessage = mstrError;

function _asTime() {
	var oTime = new Time(this.value);
	if (typeof(oTime.value) == 'undefined') {
		return undefined;
	}
	else {
		return oTime;
	}
}
_asTime.errorMessage = mstrError;

parser = new Object
parser.readValue = function(oField) {
	if (typeof oField.parse == 'function')
		oField.underlyingValue = oField.parse();
	else
		oField.underlyingValue = new String(oField.value);
	if (oField.underlyingValue == undefined && oField.value != '')
		alert('\"' + oField.value + '\"' + oField.parse.errorMessage + '\"' + oField.format + '\".');
	parser.showFormatted(oField);
	oField.value = '';
}
parser.showUnderlying = function(oField) {
	// don't use alert statements in this function
	if (oField.underlyingValue != undefined) {
		oField.underlyingValue.format = oField.underlyingValue._baseFormat;
		oField.value = oField.underlyingValue.toString();
	}
}
parser.showFormatted = function(oField) {
	if (oField.underlyingValue != undefined) {
		if (typeof oField.format == 'string')
			oField.underlyingValue.format = oField.format;
		oField.value = oField.underlyingValue.toString();
	}
}
