/*
 * Validation data types and formats 
 */
// utility & generic
var _VALIDATION_ISLOADED = true;
var _VALIDATION_SPECIALCHARS = "\"\\`\\'\\~\\^\\$\\@\\#\\&\\|\\!\\_\\;\\:\\,\\.\\?\\<\\>\\(\\)\\[\\]\\{\\}\\+\\*\\-\\/\\\\%\\=";
var _VALIDATION_NUMERIC = "0-9";
var _VALIDATION_ALPHA = "^0-9" + _VALIDATION_SPECIALCHARS + "";
var _VALIDATION_ALPHANUMERIC = "^" + _VALIDATION_SPECIALCHARS + "";
var _VALIDATION_BLANKCHARS = "\\s";

// data types
var _VALIDATION_ADDRESS = new RegExp("^([" + _VALIDATION_ALPHANUMERIC + "]|[\\#\\,\\-\\.\\' ])*$");
var _VALIDATION_MONEY = new RegExp("^[" + _VALIDATION_NUMERIC + "\\$\\,\\.]*$");
var _VALIDATION_CITY = new RegExp("^([" + _VALIDATION_ALPHA + "]|[\\- \\.\\'])*$");
var _VALIDATION_ODOMETER = new RegExp("^[" + _VALIDATION_NUMERIC + "\\,]*$");
var _VALIDATION_LATLONG = new RegExp("^[" + _VALIDATION_NUMERIC + "\\.\\-]*$");
var _VALIDATION_CREDITCARDNUMBER = new RegExp("^[" + _VALIDATION_NUMERIC + "\\- ]*$");
var _VALIDATION_ASSETNAME = new RegExp("^((.*(\\/|\\\\))?([^" + _VALIDATION_SPECIALCHARS + " ]|[\\.\\-\\_]){1,80})?$");
var _VALIDATION_LIBRARYNAME = new RegExp("^([^" + _VALIDATION_SPECIALCHARS + "]|[ \\-\\_])*$");

// data formats
var _VALIDATION_DATE_ORDER = ["m","d","y"];
var _VALIDATION_DATE_MAP = {"01":"31", "02":"28", "03":"31", "04":"30", "05":"31", "06":"30", "07":"31", "08":"31", "09":"30", "10":"31", "11":"30", "12":"31"}
var _VALIDATION_DATE_DL = "\/";
var _VALIDATION_DATE_THIRTYONEDAYS = "((0[1-9])|([12][0-9])|(3[01]))";
var _VALIDATION_DATE_THIRTYDAYS = "((0[1-9])|([12][0-9])|(30))";
var _VALIDATION_DATE_TWENTYEIGHTDAYS = "((0[1-9])|(1[0-9])|(2[0-8]))";
var _VALIDATION_DATE_TWENTYNINEDAYS = "((0[1-9])|(1[0-9])|(2[0-9]))";
var _VALIDATION_DATE_THIRTYONEDAYMONTHS = "((0[13578])|(1[02]))";
var _VALIDATION_DATE_THIRTYDAYMONTHS = "((0[469])|(11))";
var _VALIDATION_DATE_FEBRUARY = "(02)";
var _VALIDATION_DATE_ALLYEARS = "(((19)|(20))[0-9]{2})";
var _VALIDATION_DATE_LEAPYEARS = "(((19)|(20))(([02468][048])|([13579][26])))";
var _VALIDATION_DATE_NOTLEAPYEARS = "(((19)|(20))(([02468][^048])|([13579][^26])))";
var _VALIDATION_DATE = new RegExp("^((((" + _VALIDATION_DATE_THIRTYONEDAYMONTHS + _VALIDATION_DATE_DL + _VALIDATION_DATE_THIRTYONEDAYS + ")|(" + _VALIDATION_DATE_THIRTYDAYMONTHS + _VALIDATION_DATE_DL + _VALIDATION_DATE_THIRTYDAYS + "))" + _VALIDATION_DATE_DL + _VALIDATION_DATE_ALLYEARS + ")|(" + _VALIDATION_DATE_FEBRUARY + _VALIDATION_DATE_DL + "((" + _VALIDATION_DATE_TWENTYEIGHTDAYS + _VALIDATION_DATE_DL + _VALIDATION_DATE_NOTLEAPYEARS + ")|(" + _VALIDATION_DATE_TWENTYNINEDAYS + _VALIDATION_DATE_DL + _VALIDATION_DATE_LEAPYEARS + "))))?$");

var _VALIDATION_EMAIL = new RegExp("^(([^ \\/\:\\,\\!\\;\"\\'\\`]+)@([^ \\/\:\\,\\!\\;\"\\'\\`]+)\\.([^ \\/\:\\,\\!\\;\"\\'\\`]+))?$");
var _VALIDATION_URL = new RegExp("^(([" + _VALIDATION_ALPHA + "]+\\:\\/\\/)?[" + _VALIDATION_ALPHANUMERIC + "]+\\..+)?$", "i");
var _VALIDATION_PHONEFAX = new RegExp("^(\\(?[A-Z" + _VALIDATION_NUMERIC + "]{3}\\)?[\\. -]?[A-Z" + _VALIDATION_NUMERIC + "]{3}[\\. -]?[A-Z" + _VALIDATION_NUMERIC + "]{4})?$");
var _VALIDATION_NUMERIC_PHONEFAX = new RegExp("^(\\(?[" + _VALIDATION_NUMERIC + "]{3}\\)?[\\. -]?[" + _VALIDATION_NUMERIC + "]{3}[\\. -]?[" + _VALIDATION_NUMERIC + "]{4})?$");
var _VALIDATION_ZIP = new RegExp("^([" + _VALIDATION_NUMERIC + "]{5}((-| )[" + _VALIDATION_NUMERIC + "]{4})?)?$");
var _VALIDATION_SSN = new RegExp("^([" + _VALIDATION_NUMERIC + "]{3}-[" + _VALIDATION_NUMERIC + "]{2}-[" + _VALIDATION_NUMERIC + "]{4})?$");


/*
 * Error messages
 * IMPORTANT: all special characters MUST be referenced as: unescape("%XX"); where XX is the character's hex reference.
 */
var ERROR_MISSINGFORMSENDDATA = "Env" + unescape("%ED") + "e una entrada correspondiente a la informaci" + unescape("%F3") + "n sobre el env" + unescape("%ED") + "o de datos del formulario.";
var ERROR_BADDATA = "Entrada incorrecta. Revise la informaci" + unescape("%F3") + "n ingresada y vuelva a intentarlo.";
var ERROR_ENTERREQUIREDFIELDS = "Ingrese un valor en todos los campos obligatorios.";
var ERROR_BOTHLABELANDVALUE = "Env" + unescape("%ED") + "e una entrada para la etiqueta y el valor.";
var ERROR_DOWNPAYMENTTOOLARGE = "Entrada incorrecta. Revise la informaci" + unescape("%F3") + "n ingresada y vuelva a intentarlo.";
var ERROR_PRIVACYPOLICYAGREE = "Debe indicar que acepta la Pol" + unescape("%ED") + "tica de privacidad.";
var ERROR_PRIVACYPOLICYSELECT = "Debe seleccionar una opci" + unescape("%F3") + "n de privacidad.";
var ERROR_ENTERREQUIREDDATA = "Ingrese un valor en todos los campos obligatorios.";
var ERROR_ENTERVALIDDATA = "La informaci" + unescape("%F3") + "n ingresada no es v" + unescape("%E1") + "lida para los siguientes campos. Ingrese informaci" + unescape("%F3") + "n v" + unescape("%E1") + "lida y vuelva a presentar su solicitud.";
var ERROR_SELECTMAKEMODEL = "Seleccione una marca y modelo de veh" + unescape("%ED") + "culo.";
var ERROR_YELLOWFIELDS = "Los campos amarillos contienen datos no v" + unescape("%E1") + "lidos."
var NOQUOTES="Antes de continuar, por favor, elimine todas las comillas dobles (\") o reempl" + unescape("%E1") + "celas por comillas simples (')."
var ERROR_SELECTANOTHERFOLDER="Para deshabilitar esta carpeta, seleccione otra carpeta como predeterminada.";

/*
 * Form element values
 * IMPORTANT: all special characters MUST be referenced as: unescape("%XX"); where XX is the character's hex reference.
 */
var FORM_SELECTONE = "Seleccione uno";
var FORM_NOINVENTORY = "No hay inventario disponible";
var FORM_NEW = "Nuevo";
var FORM_USED = "Usado";
var FORM_PREOWNED = "Usado";
var FORM_CERTIFIED = "Certificado";
var FORM_SELECTAMAKE = "Seleccione una marca";
var FORM_SELECTAMODEL = "Seleccione un modelo";
var FORM_SELECTACITY = "Seleccione una ciudad";
var FORM_SELECTADEALER = "Seleccione un concesionario";
var INV_NOINVENTORY = "N/A";
var INV_DEFAULTTEXT = "Cualquier";


/*
 * Inventory Search values
 * IMPORTANT: all special characters MUST be referenced as: unescape("%XX"); where XX is the character's hex reference.
 */
var INV_ALLTEXT = "Cualquiera";
var INV_NOINVENTORYAVAILABLE = "No hay inventario disponible";
var INV_SELECTONE = "Seleccione uno";
var INV_ALLLOCATIONS = "Todas las ubicaciones";
var INV_ALLVEHICLETYPES = "Todos los tipos";
var INV_ALLMAKES = "Todas las marcas";
var INV_ALLMODELS = "Todos los modelos";
var INV_ALLTRIMS = "Todas las opciones de ornamentaci" + unescape("%F3") + "n";
var INV_MAXPRICE_PREFIX = "Hasta ";
var INV_MAXODOMETER_PREFIX = "Hasta ";
var INV_DISTANCELABEL = " millas";

var INV_SEARCHTYPELABEL = new Object();
INV_SEARCHTYPELABEL["new"] = "Nuevo";
INV_SEARCHTYPELABEL["used"] = "Usado";
INV_SEARCHTYPELABEL["preowned"] = "Usado";
INV_SEARCHTYPELABEL["certified"] = "Certificado";
INV_SEARCHTYPELABEL["non-certified"] = "No certificado";

function getFormattedPrice(price){
	var formattedPrice = "$" + getFormattedNumber(price);
	return formattedPrice;
}
function getFormattedNumber(num){
	num = String(num);
	var formattedNum = "";
	for(var i = 1; i <= num.length; i++){
		formattedNum = num.charAt(num.length - i) + formattedNum;
		if(i % 3 == 0 && i != num.length) formattedNum = "," + formattedNum;
	}
	return formattedNum;
}

/*
 * Other random strings 
 */
var STRING_CLICKTOENLARGE = "Haga clic para agrandar";
