var whitespace = " \t\n\r";
//Deshabilita la tecla enter y enfoca el siguiente campo
function handleEnter(field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;
		i = (i + 1) % field.form.elements.length;
		try {
			field.form.elements[i].focus(); 			
		} catch(err) {}
		return false;
	} 
	else
		return true;
}      

function trim(s) {
  return s.replace(/^(\s|\&nbsp;)*|(\s|\&nbsp;)*$/g,"");;
}


/***********
function navigateAgents (form, servlet, menu) {
	form.method = "post";
	form.MENU.value = menu;
	form.action = "/" + '<%=TatvProperties.APPLICATION_NAME %>' + "TATVProxy?SERVLET=" + servlet;

	if (menu == '<%= Flow.PRO_AUTO_VERSION_INFO %>') {
		form.action += "&STEP=" + '<%=Dictionary.STEP_CARS_CHOICE %>';
	} else if (menu == '<%= Flow.PRO_MOTO_VEHICLE_DATA %>') {
		form.action += "&STEP=" + '<%=Dictionary.STEP_MOTO_CHOICE %>';
	} else if (menu == '<%= Flow.PRO_HOME_SITUATION_HOME %>') {
		form.action += "&STEP=" + '<%=Dictionary.STEP_HOME_CHOICE %>';
	} else {
		if (form.<%= Dictionary.STEP %>.value != null && form.<%= Dictionary.STEP %>.value != '') {
			form.action += "&STEP=" + form.<%= Dictionary.STEP %>.value;
		}
	}
	
	alert(form.action);
	form.submit();
}
**************/

//Tratamiento de campos fecha

function fechaTecla(obj, e){

var validos = "0123456789hmHM+-";

	if (window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	} 
	if (e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	

	keychar = String.fromCharCode(key);

	if (validos.indexOf(keychar)==-1 ){
		return false;
	}
	else {
		if (keychar.toUpperCase()=="M"){
			getFechaActual(obj,-2);
			obj.focus();
			return false;
		}
		if (keychar.toUpperCase()=="H"){
			getFechaActual(obj,0);
			obj.focus();
			return false;
		}
		if (keychar=="-"){
			getFechaActual(obj,-1);
			obj.focus();
			return false;
		}
		if (keychar=="+"){
			getFechaActual(obj,1);
			obj.focus();
			return false;
		}

	}
}

function quitaBarras(obj){
var validos = "0123456789";
var valor = obj.value;
var nObj = "";


	for (var i=0;i<=valor.length;i++){

		if (validos.indexOf(valor.substr(i,1)) != -1){
			nObj = nObj + valor.substr(i,1);
		}
		
	}
	obj.value = nObj;
}


function fechaFocus(oTxt){
//oTxt.value = oTxt.value.substr(0,2) + "/" + oTxt.value.substr(2,2) + "/" + oTxt.value.substr(4,4);
		quitaBarras(oTxt);
		oTxt.focus();
}


function fechaBlur(obj, langId){
	
	if (langId != null && langId != "null"){
		lang = langId;
	}
	else
	{
	// pongo "es" como valor por defecto....
	lang = "es";
	}
		
	if (trimDate(obj.value)!="") {
		//quitabarras();
		if (!valFecha(obj)){ 
//			quitabarras(obj);
			return false
		}
		else
		{
			AsignaValores(obj,lang);		
			return true;
		}
	}else {
		obj.value="  /  /    ";
		AsignaValores(obj,lang);
		return true;
	}

}

function AsignaValores(obj,lang){
	var valor = obj.value;
	
	var fechaDia = valor.substr(0,2);
	var fechaMes = valor.substr(3,2);
	var fechaAnyo = valor.substr(6);
	var arrayNom = obj.name.split("_Z_");
	
	if (trimDate(fechaDia) == "") fechaDia = '';
	if (trimDate(fechaMes) == "") fechaMes = '';
	if (trimDate(fechaAnyo) == "") fechaAnyo = '';
	
	var array = document.getElementsByName(arrayNom[0]);
	for (var i = 0; i < array.length ; i++){
			array[i].value = fechaDia;
		
	}
	
	array = document.getElementsByName(arrayNom[1]);
		for (var i = 0; i < array.length ; i++){
			array[i].value = fechaMes;
	}
	
	array = document.getElementsByName(arrayNom[2]);
		for (var i = 0; i < array.length ; i++){
			array[i].value = fechaAnyo;
	}
}

function AsignaValoresDesdeArgentinaConAmor(obj){
//el nombre de obj es el nombre de 
// los 3 campos en los que hay que asignar
// el valor

	var valor = obj.value;
	
	alert(valor);
	
	var fechaDia = valor.substr(0,2);
	var fechaMes = valor.substr(3,2);
	var fechaAnyo = valor.substr(6);

//obtenci?n de nombres de inputs hidden

	var arrayNom = obj.name.split("_Z_");
	
	if (trimDate(fechaDia) == "") fechaDia = "''";
	if (trimDate(fechaMes) == "") fechaMes = "''";
	if (trimDate(fechaAnyo) == "") fechaAnyo = "''";
	
	var dia = "document.forms[0]."+ arrayNom[0]+".value =" + fechaDia;
	var mes = "document.forms[0]."+ arrayNom[1]+".value =" + fechaMes;
	var any = "document.forms[0]."+ arrayNom[2]+".value =" + fechaAnyo;


	eval(dia);
	eval(mes);
	eval(any);
	
}

function formateo(obj){
	
	var valor = obj.value;
	var trozo = valor.substr(0,valor.length-4);

}

function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
	case 1: nRes = 31; break;
	case 2: nRes = 29; break;
	case 3: nRes = 31; break;
	case 4: nRes = 30; break;
	case 5: nRes = 31; break;
	case 6: nRes = 30; break;
	case 7: nRes = 31; break;
	case 8: nRes = 31; break;
	case 9: nRes = 30; break;
	case 10: nRes = 31; break;
	case 11: nRes = 30; break;
	case 12: nRes = 31; break;
}
return nRes;
}

function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && nAno.length == 4 && eval(nAno>1900) && eval(nAno<2999);
if (bOk){
	for (var i = 0; i < nAno.length; i++){
		bOk = bOk && esDigito(nAno.charAt(i));
	}
}
return bOk;
}

function valFecha(oTxt){
var bOk = true;

//Formateo la fecha
oTxt.value = oTxt.value.substr(0,2) + "/" + oTxt.value.substr(2,2) + "/" + oTxt.value.substr(4,4);

if (oTxt.value != ""){
	bOk = bOk && (valAno(oTxt));
	bOk = bOk && (valMes(oTxt));
	bOk = bOk && (valDia(oTxt));
	bOk = bOk && (valSep(oTxt));
		if (!bOk){
			alert(langMsg("FECHA_INVALIDA"));
			//oTxt.value = "";
			oTxt.focus();
			return false;
		}

	}
return true;	
}


function getFechaActual(obj, diaAdic){

var miFecha = new Date();
var fechaHoy = new Date();

if (eval(diaAdic!=0) && trimDate(obj.value)!="" ){	

	//alert("valor campo: " + obj.value.substr(4)+"-"+obj.value.substr(2,2)+"-"+obj.value.substr(0,2));
	miFecha = new Date(obj.value.substr(4),eval(obj.value.substr(2,2)-1),eval(obj.value.substr(0,2)));
	//alert("Previo: " + miFecha);
	if (diaAdic == -2) {  //Fecha de Ma?ana
		diaAdic = 1;
		miFecha.setDate(fechaHoy.getDate()+1);
	}
	else if (diaAdic == 0){
		miFecha.setDate(new Date().getDate());
	}
	else {
		miFecha.setDate(miFecha.getDate() + diaAdic);
	}	
	
	//alert("Nueva Fecha: " +miFecha);		
	
	if (!isNaN(miFecha)) {
		var valor = miFecha.getDate()+""+eval(miFecha.getMonth()+1)+""+miFecha.getFullYear();
		obj.value = valor+"";
	}
}
else 
{
	if (diaAdic == -2) {  //Fecha de Ma?ana
		diaAdic = 1;
		miFecha.setDate(fechaHoy.getDate()+1);
	}

}


var anno=miFecha.getYear();

if (anno < 1000)
	anno += 1900;
	
//var dia = miFecha.getDay();
var mes = miFecha.getMonth()+1;
//alert(mes);

if (mes<10)
	mes="0"+mes;
	
var diam = miFecha.getDate();

if (diam<10)
diam="0"+diam;

obj.value = ""+diam + mes+ anno

}


function trimDate(str) {
   return str.replace(/^\s*|\s*$/g,"");
}


function langMsg(mensaje, lang){
	if (mensaje == "FECHA_INVALIDA"){
		if (lang.toUpperCase() == "NL") 
			return "Onaanvaardbare datum.\n\nDe datum moet in het formaat ingelicht worden DD/MM/AAAA";
		if (lang.toUpperCase() == "FR") 
			return "Date inadmissible.\n\nLa date doit être informée dans le format JJ/MM/AAAA";
		if (lang.toUpperCase() == "EN") 
			return "Invalid date.\n\nThe date must be informed in format DD/MM/JJJJ";
	}
}


function validaFechaNotAfter(diaForm, mesForm, annoForm, diaLimite, mesLimite, annoLimite) {
	if ( (annoForm * 1) < (annoLimite * 1) ) return true;
	if ( (annoForm * 1) > (annoLimite * 1) ) return false;
	if ( (mesForm  * 1) < (mesLimite  * 1) ) return true;
	if ( (mesForm  * 1) > (mesLimite  * 1) ) return false;
	if ( (diaForm  * 1) > (diaLimite  * 1) ) return false;
	return true
}


function validaFechaNotBefore(diaForm, mesForm, annoForm, diaLimite, mesLimite, annoLimite) {
	if ( (annoForm * 1) < (annoLimite * 1) ) return false;
	if ( (annoForm * 1) > (annoLimite * 1) ) return true;
	if ( (mesForm  * 1) < (mesLimite  * 1) ) return false;
	if ( (mesForm  * 1) > (mesLimite  * 1) ) return true;
	if ( (diaForm  * 1) < (diaLimite  * 1) ) return false;
	return true
}


function addMonths(date, month) {
	newDate = new Date(date);
	newDate.setMonth(date.getMonth() + month) ;
	if (newDate.getDate() < date.getDate()) {
		newDate.setDate(0);
	}
	return newDate;
}

function validarInputMatricula7LetrasNumeros(obj, event){
	var tecla = getKey(event);
	
	if(tecla!=8){ //DEL key
		if(obj.value.length==7){
			discardKey(event);//Max leng, Discard the key
		}else{
			 if(!(65<=tecla && tecla<=90) &&   //Lower 
		   		!(97<=tecla && tecla<=122) &&  //Upper
		   		!(48<=tecla && tecla<=57)){    //Numeric
					discardKey(event);
			}
		}
	}

	function getKey(event){
		var tecla;
		if (window.event) {
			tecla = window.event.keyCode;
		}
		else if (event.which) {
			tecla = event.which;
		}
		return tecla;
	}

	function discardKey(event){
		if (window.event) {
			window.event.keyCode = 0;
		}
		else if (event.which) {
			event.preventDefault();
		}
	}
}

function validarMatricula7LetrasNumeros(campo) {
	var regEx = new RegExp("^[a-z0-9A-Z]+");   
    if (regEx.test(campo.value)){   
   		return true;
   }else{
   		return false;
    }    
}  


function NoNumeros(obj, e, cantDecimales, permiteNegativos) {

// Para indicar un valor con infinitos decimales, cantDecimales debe ser -1
// Para indicar un valor porcentual, cantDecimales debe ser 99

	var key;
	var isCtrl = false;
	var keychar;
	var reg;
	var Decimales = false;

	if ( cantDecimales != 0 ) Decimales = true;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	if (key == 46) {
		key = 44;
		//return false;
	}
	 
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// checkea si la tecla es Supr o Backspace
	if (key == 8 || isCtrl)	return true;
	if (key == 13) return handleEnter(obj, e);

	reg = /\d/;
	var isFirstN = permiteNegativos ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = Decimales ? keychar == ',' && obj.value.indexOf(',') == -1 : false;


	return isFirstN || isFirstD || reg.test(keychar);
}


function validaNumero(obj, cantDecimales, permiteNegativos) {
//Reconoce el caracter '.' como ',', separeador de decimales
	if (obj.value.charAt(obj.value.length - 1) == '.') {
		obj.value = obj.value.substr(0, obj.value.length - 1);
		obj.value += ",";  
	}
// Para indicar un valor con infinitos decimales, cantDecimales debe ser -1
// Para indicar un valor porcentual, cantDecimales debe ser 999
	
	var temp = obj.value;
	var POR = false;   

	if ( cantDecimales == 999 ) {
		POR = true;
		cantDecimales = 2;
	}

	if ( cantDecimales != 0 && temp.substr(0,1) == ",") obj.value = "0" + obj.value;
	
	var reg0Str = '[0-9]*';
	if (cantDecimales > 0) {
		reg0Str += '\\,?[0-9]{0,' + cantDecimales + '}';
	} else if (cantDecimales < 0) {
		reg0Str += '\\,?[0-9]*';
	}
	reg0Str = permiteNegativos ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);

	if (POR && temp.replace(",",".") > 100) {
		obj.value = temp.substr(0,temp.length-1);
		return false;
	}


	if (reg0.test(temp)) return true;

	var reg1Str = '[^0-9' + (cantDecimales != 0 ? ',' : '') + (permiteNegativos ? '-' : '') + ']'; 
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (permiteNegativos) {
		var tieneNegativo = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (tieneNegativo) temp = '-' + temp;
	}
	
	if (cantDecimales != 0) {
		var reg3 = /\,/g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = cantDecimales > 0 ? reg3Right.substring(0, cantDecimales) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + ',' + reg3Right;
		}
	}


	obj.value = temp;
}



function getMarcasAsArray(appName, url, field, value, languageId) {
alert(url);
	var req = initRequest(); 
    req.open("GET", "/" + appName + url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200))
    	return parseMessagesArray(field, req.responseXML, value, 'marca', languageId);
    return null;
}

function parseMessagesArray(myField, responseXML, selectedId, nodeName, languageId) {
	var root = responseXML.getElementsByTagName("root")[0];
    var cont 		= 0;
    var marcaId 	= '0';
    var marcaTxt 	= '0';
    var marca 		= null;
    var array = new Array();
    for (var loop = 0; loop < root.childNodes.length; loop++) {
        marca = root.childNodes[loop];
        if (marca.nodeName == nodeName) {
            for (var loop1 = 0; loop1 < marca.childNodes.length; loop1++) {
                if (marca.childNodes[loop1].nodeType == 1) {
                    if (marca.childNodes[loop1].nodeName == "id") {
                        try {
                        	marcaId = marca.childNodes[loop1].childNodes[0].nodeValue;
                        }
                        catch(error){
                        	marcaId = marca.childNodes[loop1].nodeValue;
                        }
                    }
                    if (marca.childNodes[loop1].nodeName == "descripcion") {
                        try {
                        	marcaTxt = marca.childNodes[loop1].childNodes[0].nodeValue;
                        }
                        catch(error){
                        	marcaTxt = marca.childNodes[loop1].nodeValue;
                        }
                    }
                    if (marcaId != '0' && marcaTxt != '0') {
                    	array[cont++] = marcaTxt;
                        marcaId = '0';
                        marcaTxt = '0';
                    }
                }
            }
        }
    }
    return array;
}

function getMarcas(url, field, value, languageId) {
alert(url);
	field.options.length = 0;
    var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200))
    	parseMessages(field, req.responseXML, value, 'marca', languageId);
}


function getModelos(url, field, value, marca, languageId) {
alert(url);
	field.options.length = 0;
    url = url + marca;
    var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200))
    	parseMessages(field, req.responseXML, value, 'modelo', languageId);
}


function getFuel(url, field, value, marca, modelo, languageId) {
alert(url);
	field.options.length = 0;
    url = url + marca + "&MODEL=" + modelo;
    var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200))
    	parseMessages(field, req.responseXML, value, 'fuel', languageId);
}


function existeCiudadesbyCodigoPostal(url, fieldToUpdate) {
	var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200)) 
    	fieldToUpdate.value = req.responseText;
}


function parseMessages(myField, responseXML, selectedId, nodeName, languageId) {
    
    var notOptions = "";
    var multiOptions = "";
    
    if (languageId == 'en')
    	multiOptions = "Select...";
    else if (languageId == 'fr')
    	multiOptions = "Choisir...";
    else if (languageId == 'nl')
    	multiOptions = "Selecteer...";
    
    if (languageId == 'en')
    	notOptions = "There are no results";
    else if (languageId == 'fr')
    	notOptions = "Il n'y a pas de résultats";
    else if (languageId == 'nl')
    	notOptions = "Er zijn geen resultaten";
    
    parseMessagesInitValue(myField, responseXML, selectedId, nodeName, languageId, notOptions, multiOptions);
}

function parseMessagesInitValue(myField, responseXML, selectedId, nodeName, languageId, notOptions, multiOptions) {
	var root = responseXML.getElementsByTagName("root")[0];
    myField.options[0] = new Option(multiOptions, "-1");
    var cont = myField.options.length;
    var marcaId 	= '0';
    var marcaTxt 	= '0';
    var marca 		= null;
    for (var loop = 0; loop < root.childNodes.length; loop++) {
        marca = root.childNodes[loop];
        if (marca.nodeName == nodeName) {
            for (var loop1 = 0; loop1 < marca.childNodes.length; loop1++) {
                if (marca.childNodes[loop1].nodeType == 1) {
                    if (marca.childNodes[loop1].nodeName == "id") {
                        try {
                        	marcaId = marca.childNodes[loop1].childNodes[0].nodeValue;
                        }
                        catch(error){
                        	marcaId = marca.childNodes[loop1].nodeValue;
                        }
                    }
                    if (marca.childNodes[loop1].nodeName == "descripcion") {
                        try {
                        	marcaTxt = marca.childNodes[loop1].childNodes[0].nodeValue;
                        }
                        catch(error){
                        	marcaTxt = marca.childNodes[loop1].nodeValue;
                        }
                    }
                    if (marcaId != '0' && marcaTxt != '0') {
                        var myOption = new Option(marcaTxt, marcaId);
                        if (selectedId != "" && marcaId == selectedId)
                            myOption.selected = true;
                        myField.options[cont] = myOption;
                        cont++;
                        marcaId = '0';
                        marcaTxt = '0';
                    }
                }
            }
        }
    }
    if (myField.options.length == 1) 
    	myField.options[0] = new Option(notOptions, "-1");
}


function clearCombo(name, defaultText) {
	var select = eval('document.formSimulador.' + name);
	select.options.length = 0;
	select.options[0] = new Option(defaultText, '-1');
}


function initRequest() {
	if (window.XMLHttpRequest) {
   		return new XMLHttpRequest();
   	} 
   	else if (window.ActiveXObject) {
      	isIE = true;
     	return new ActiveXObject("Microsoft.XMLHTTP");
   }
}


//return the value of the radio button that is checked
//return an empty string if none are checked, or
//there are no radio buttons
function getCheckedValue(radioObj) {
	if (!radioObj)
		return "";
	var radioLength = radioObj.length;
	if (radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for (var i = 0; i < radioLength; i++) {
		if (radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


//set the radio button with the given value as being checked
//do nothing if there are no radio buttons
//if the given value does not exist, all the radio buttons
//are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if (!radioObj)
		return;
	var radioLength = radioObj.length;
	if (radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for (var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if (radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}


//Add event handlers to already existing ones.
//obj:    the object to attach the event to,
//evType: the event type,
//fn:     the function name.
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on" + evType, fn);
		return r;
	} else {
		return false; 
	}
}


function toggleDisabledOnlyInputSelect(el) {
	try {
		if (el.type != 'hidden' && (el.tagName == 'INPUT' || el.tagName == 'SELECT')) {
			el.disabled = true;
		}
	} catch(E){ }
	 
	if (el.childNodes && el.childNodes.length > 0) {
		for (var x = 0; x < el.childNodes.length; x++) {
			toggleDisabledOnlyInputSelect(el.childNodes[x]);
		}
	}
}


function toggleDisabled(el) {
	try {
		if (el.type != 'hidden') {
			el.disabled = true;
		}
	} catch(E){ }
	 
	if (el.childNodes && el.childNodes.length > 0) {
		for (var x = 0; x < el.childNodes.length; x++) {
			toggleDisabled(el.childNodes[x]);
		}
	}
}


function toggleEnabled(el) {
	try {
		el.disabled = false;
	} catch(E){ }
	 
	if (el.childNodes && el.childNodes.length > 0) {
		for (var x = 0; x < el.childNodes.length; x++) {
			toggleEnabled(el.childNodes[x]);
		}
	}
}


function getGarages(appName, url, field, value, languageId) {
alert(url);
	field.options.length = 0;
    var req = initRequest(); 
    req.open("GET", "/" + appName + url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200)) {
    	var notOptions = "";
        var multiOptions = "";
        
        if (languageId == 'en')
        	multiOptions = "All";
        else if (languageId == 'fr')
        	multiOptions = "Tous";
        else if (languageId == 'nl')
        	multiOptions = "Iedereen";
        
        if (languageId == 'en')
        	notOptions = "There are no entries";
        else if (languageId == 'fr')
        	notOptions = "Il n'existe pas de registres";
        else if (languageId == 'nl')
        	notOptions = "Er zijn geen ingangen";
        
    	parseMessagesInitValue(field, req.responseXML, value, 'garage', languageId, notOptions, multiOptions);
    }
}

function getUsers(appName, url, field, value, languageId) {
alert(url);
	field.options.length = 0;
    var req = initRequest(); 
    req.open("GET", "/" + appName + url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200)) {
    	var notOptions = "";
        var multiOptions = "";
        
        if (languageId == 'en')
        	multiOptions = "All";
        else if (languageId == 'fr')
        	multiOptions = "Tous";
        else if (languageId == 'nl')
        	multiOptions = "Iedereen";
        
        if (languageId == 'en')
        	notOptions = "There are no entries";
        else if (languageId == 'fr')
        	notOptions = "Il n'existe pas de registres";
        else if (languageId == 'nl')
        	notOptions = "Er zijn geen ingangen";
        
    	parseMessagesInitValue(field, req.responseXML, value, 'user', languageId, notOptions, multiOptions);
    }
}

function getBrandCode(url) {
alert(url);
	var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200)) 
    	return req.responseText;
}

function getModelCode(url) {
alert(url);
	var req = initRequest(); 
    req.open("GET", url, false);
    req.send(null);
    if((req.readyState == 4) && (req.status == 200)) 
    	return req.responseText;
}

/*function validateDate(dateText) {
	if (isNaN(Date.parse(dateText)))
		return false;
	else
		return true;
}*/

function getVersiones(url, selectedId) {
alert(url);
	var req = initRequest(); 
	req.onreadystatechange = function() {
	        if(req.readyState == 4) {
	        	if (req.status == 200) { 
	        	   return req.responseText;
	        	}else if (req.status == 204) {
	        	}
	        }
	      };
    req.open("GET", url, true);
    req.send(null);
}


	

function setStepBack() {
	document.formSimulador.STEP.value = document.formSimulador.STEP_BACK.value;
}

function setStepContinue() {
	document.formSimulador.STEP.value = document.formSimulador.STEP_CONTINUE.value;
}

function isValidNumeroTelefonoTATV(numero){
	if(numero=='')
		return false;
	var start=numero.substring(0,2);
	if(start=='01'){
		start=numero.charAt(2);
		if(start!=7 && start!=8 && numero.length==9)
			return true;
		else 
			return false;
	}else if((start=='02' || start=='03' || start=='05') && numero.length==9){
		return true;
	}else if(start=='4' && !(numero.substring(2,4)>=51 && numero.substring(2,4)>=59) && numero.length==9){
		return true;
	}else if(start=='06' && numero.charAt(2)!='6' && numero.length==9){
		return true;
	}else if(numero.substring(0,3)=='071' && numero.length==9){
		return true;
	}else if(start=='08'){
		start=numero.charAt(2);
		if(start!=8 && start!=9 && numero.length==9 && numero.substring(2,2)!='00'){
			//alert('08,  longitud 9');
			return true;
		}else{
			return false;
		}
	}else if(start=='09'  && numero.charAt(2)!='5' && numero.length==9 && numero.substring(2,4)!='00' && numero.substring(2,4)!='02' && numero.substring(2,4)!='03' && numero.substring(2,4)!='05' && numero.substring(2,4)!='09'){
			return true;
	}else if(numero.length==10 && start=='04'){
			start=numero.substring(2,4);
			if((start>=70 && start<=79) ||(start>=84 && start<=88) || (start>=94 && start<=99))
				return true;
			else 
				return false;
	}else{
		return false;
	}
}


function executeOnLoad(func) {	
	if (window.addEventListener) {
		window.addEventListener("load", func, false);
	} else if (window.attachEvent) {
		window.attachEvent("onload", func);
	}
}


function createHiddenIfDisabled(field) {
	var input = (typeof field == "string") ? document.getElementById(field) : field;
	if (input && input.disabled && input.name && input.value) {
		var newElem = document.createElement("input");
		newElem.type  = "hidden";
		newElem.name  = input.name;
		newElem.value = input.value;
		input.parentNode.appendChild(newElem);
	}
}


function hideElements(fields, hide) {
	var display = hide? "none": "";
	for (var i = 0; i < fields.length; i++) {
		var elem = document.getElementById(fields[i]);
		if (elem && elem.style) {
			elem.style.display = display;
		}
	}
}


function changeInputValue(field, value) {
	if (field != null) {
		field.value = value;
	}
}

function changeSelectValue(field, value) {
	if (field && field.options && field.options.length > 0) {
         for (var i = 0; i < field.options.length; i++) {
            field.options[i].selected = (field.options[i].value == value);
        }
    }
}

function fillInfoFields(fieldName) {
	document.getElementById(fieldName).value='1';
}

function validateHour(str, msgFormatHour, msgHourInvalid, msgMinutesInvalid) {
	hora=str.value
	if (hora.length!=5) {return msgFormatHour;}
	a = hora.charAt(0)
    b = hora.charAt(1)
    c = hora.charAt(3)
    d = hora.charAt(4)
    if (a>=2 && b>3) {return msgHourInvalid;}
	if (c>5) {return msgMinutesInvalid;}
	if (d>9 || d < 0) {return msgMinutesInvalid;} 
}

