function isNumberKey(evt) {
     var charCode = (evt.which) ? evt.which : event.keyCode
     if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46 && charCode != 44)
        return false;

     return true;
}

function _parseString(a,initP,endP, pos, nString) {
	if (a != null) {
		var ret;
		var i;
		var na = a;
		i = (a.toUpperCase()).search(initP);
		if  (i != -1) {
			var b = a.substring(0,(i-1+pos))+nString;
			var e = (a.substring(i+1,a.length).toUpperCase()).search(endP);
			var c;
			if (e != -1) {
				c = a.substring(i+1,a.length).substring(e+pos,a.substring(i+1,a.length).length);
				if ((c.toUpperCase()).search(initP) != -1) {
					c = _parseString(c,initP,endP, pos, nString);
				}
				na = b+c;
			} else {
				na = b;
			}
		}
		return na
	} else {
		return '';
	}
}

function clickOnInputDate(id) {
	dateInputId = id;
	if (dateInputId != null && dateInputId != '') {
		mCal = new Calendar('mCal');
		mCal.extClickOnDay = 'clickDay';
		var ref = document.getElementById(dateInputId);
		mCal.loadDate(ref);
		mCal.show(ref);
	}
}

function clickDay (a) {
	if (dateInputId != null && dateInputId != '') {
		var defFecha = document.getElementById(dateInputId);
		defFecha.value = a.getFullDate('dd/mm/yyyy');
		a.close();
	}
}

function _addValue(size, fId, thisArray) {
	var newVal = "";
	for (i=1; i<=size; i++) {
		if (newVal.length > 0) newVal += " - ";
		newVal += document.getElementById("newVal"+fId+"_"+i).value;
	}
	if (newVal != "") {
		var notExist = true
		for (i=0; i<thisArray.length; i++)
			if (newVal.toLowerCase() == thisArray[i].toLowerCase()) notExist = false;
		if (notExist) {
			thisArray.push(newVal);
			_loadValues(fId, thisArray);
		} else {
			alert('El valor '+newVal+' ya esta definido.');
		}
		for (i=1; i<=size; i++)
			document.getElementById("newVal"+fId+"_"+i).value = "";
	}
}

function _delValue(a, fId, thisArray) {
	if (a != null) {
		for (x = 0; x < thisArray.length; x++)
			if (thisArray[x] != null)
				if (thisArray[x].toLowerCase() == a.toLowerCase())
					thisArray.splice(x,1);

	}
	_loadValues(fId, thisArray);
}

function _loadValues(fId, thisArray) {
	var divValues = document.getElementById('values'+fId);

	var tmpValues = '<table width="100%" border="1">';
	for (x = 0; x < thisArray.length; x++){
	
		tmpValues += '<tr><td width="95%">'+thisArray[x]+'<input type="hidden" value="'+thisArray[x]+'" name="field'+fId+'"></td><td width="5%">';
		tmpValues += '<img src="../images/delete.gif" width="16" height="16" onclick=\'_delValue("'+thisArray[x]+'", \"'+fId+'\", allValues'+fId+');\'>';
		tmpValues += '</td></tr>';
	}
	tmpValues += '</table>';
	divValues.innerHTML = tmpValues;
}

function changePage(a) {
	if (a=='back' || checkRequired(actualPage)) {
		if ((a=='next' && actualPage<totalPages) || (a=='back' && actualPage>1)) {
			if (a=='next') actualPage++;
			else actualPage--;
			
			for (var i=1;i<=totalPages;i++) {
				if (i != actualPage) document.getElementById('page'+i).style.display="none";
				else document.getElementById('page'+i).style.display="";
			}
		}
	}
	checkPage();
}

function checkRequired(a) {
	var pIni = 1;
	var pFin = totalPages;
	var formElements = new Array();
	var errors = "";
	if (a && a > 0) {
		pIni = a;
		pFin = a;
	}
	for (var i=pIni;i<=pFin;i++) {
		var oTBody = document.getElementById('page'+i);
		if (oTBody) {
			var arrayTypes = ['INPUT','TEXTAREA','SELECT'];
			for (var ti=0;ti<arrayTypes.length;ti++) {
				var inputs = oTBody.getElementsByTagName(arrayTypes[ti]);
				for(var no=0;no<inputs.length;no++){
					var attr = inputs[no].getAttribute('required');
					if(!attr)attr = inputs[no].required;
					if(attr) formElements[formElements.length] = inputs[no];
				}
			}
		}
	}
	var lastMulti = "";
	for(var no=0;no<formElements.length;no++){
		var isOk = false;
		if (formElements[no].tagName=="INPUT") {
			var type = formElements[no].getAttribute('type');
			if(!type)type = formElements[no].type;
			if (type=="RADIO"||type=="radio"||type=="CHECKBOX"||type=="checkbox") {
				var name = formElements[no].getAttribute('name');
				if(!name)name = formElements[no].name;
				if (name != lastMulti) {
					lastMulti = name;
					isOk = checkMulti(formElements[no]);
				} else {
					isOk = true;
				}
			}
			else isOk = checkInput(formElements[no]);
		}
		if (formElements[no].tagName=="TEXTAREA") isOk = checkInput(formElements[no]);
		if (formElements[no].tagName=="SELECT") isOk = checkSelect(formElements[no]);

		if (!isOk) {
			var title = formElements[no].getAttribute('title');
			if(!title)title = formElements[no].title;
			errors += ", "+title;
		}
	}
	if (errors.length > 0) {
		alert(errorMsg+" "+errors.substring(2));
		return false;
	}
	return true;
}

function checkInput(obj) {
	if (obj.value==null||obj.value=="") return false;
	return true;
}
function checkSelect(obj) {
	if(obj.selectedIndex == null||obj.selectedIndex == "") return false;
    return true;
}
function checkMulti(obj) {
	var objradio = obj.form.elements[obj.name];
	for(var r=0;r < objradio.length;r++) {
	  if(objradio[r].checked) {
	  	return true;
	  }
	}
	return false;
}

function checkPage() {
	if (totalPages > 1) {
		for (var i=1;i<=totalPages;i++) {
			if (i != actualPage) document.getElementById('page'+i).style.display="none";
			else document.getElementById('page'+i).style.display="";
		}
		var objBack = document.getElementById("pageBack");
		var objNext = document.getElementById("pageNext");
		var objSubmit = document.getElementById("formSubmit");
		objSubmit.disabled = true;
		if (actualPage==1) objBack.disabled = true;
		else objBack.disabled = false;
		if (actualPage==totalPages) {
			objNext.disabled = true;
			objSubmit.disabled = false;
		} else objNext.disabled = false;
		
	}
}

