	var fName;
	
	function gotoTabNum(num) {
		var frm = eval('document.forms.'+fName);
		if(checkFields()) {
			frm.gotoTab.value=num;
			frm.submit();
		}
	}
	function aceptarC(){
		var err = "";
		var frm = eval('document.forms.'+fName);
		var elem = eval("frm."+obligC[obligC.length-1]);		
		if (elem && elem.tagName=='SELECT') {
			if (elem.value==0)
				err += "Debe Marcar Aceptar";
		}
		if (err.length>0)
			alert(err);
		else
			return true;
	}
	function VaceptarC(){
		var frm = eval('document.forms.'+fName);
		var elem = eval("frm."+obligC[obligC.length-1]);		
		if (elem && elem!=null && elem.tagName=='SELECT') {
			elem.value = 1;
			var padre = elem.parentNode;
			var content = padre.innerHTML;
			var content2='<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\"><tr valign=\"top\"><td width=\"20%\">'+content+'</td><td id=\"AcepText\" width=\"80%\"></td></tr></table> ';
			padre.innerHTML = content2;
			return true
		}else
			return false;		
	}
	function save1() {
		var frm = eval('document.forms.'+fName);
		if(aceptarC() && checkFields() && checkOtherTabs()) {
			frm.save.value="1";
			var inf = document.getElementById("grabar");
			if(inf) {
				document.getElementById("grabar").innerHTML='Enviando...';
			}
			frm.submit();
			return true;
		}
	}
	
     function setDate(yyyy,mm,dd,property) {
        var frm = eval('document.forms.'+fName);
        frm.item(property).value = (dd<10?"0"+dd:dd)+"/"+(mm<10?"0"+mm:mm)+"/"+yyyy;
     }
	 
	function checkDate(canBeEmpty, day, month, year) {		
		if (canBeEmpty && (day== "" && month== "" && year== "")) {
			return true;
		}

		if ((!day== "" && !isNaN(day)) && ((month!= "" || month== "0")  && !isNaN(month)) && (year!= "" && !isNaN(year) && (year> 1930 && year< 2029))) {
			var maxDayInMont= getMaxDays(month, year);

			if (day== -1 && month== 12 && year== -1) {
				return true;
			} else if (day== -1 || month== 12 || year== -1) {
				return false;
			}

			if (day< 1 || day> 31 || month< 0 || month> 11 || day> maxDayInMont) {
				return false;
			}
			try {
				//alert(day+":"+month+":"+year);
				//new Date(day+' '+getMonthName(month)+' '+year);				
				return true;
			} catch (error) {
				//alert("3");
				return false;
			}
		}
		return false;
	}

	function getDateObj(dateStr) {
		var errors = "";
		var dateObj= null;
		if (dateStr!= null && dateStr!= "" && dateStr!= "//") {
			var strDateArr= null;
			if (dateStr.indexOf("/")!= -1) {
				strDateArr= dateStr.split("/");
			} else {
				errors += "\n -La Fecha "+dateStr+" no es correcta";
			}
			if (strDateArr!= null && strDateArr.length== 3 && !isNaN(strDateArr[2]) &&  strDateArr[2]> 1930 && strDateArr[2]< 2029) {
				// mes comienza en 0
				// alert("day: "+strDateArr[0]+"  month: "+(strDateArr[1]-1)+" year: "+strDateArr[2]);
				if (checkDate(true, strDateArr[0], strDateArr[1], strDateArr[2])) {
					dateObj= new Date(strDateArr[2], strDateArr[1], strDateArr[0]);
				} else {
					errors += "\n -La Fecha "+dateStr+" no es correcta X";
				}
			} else {
				errors += "\n -La Fecha "+dateStr+" no es correcta (recuerde 4 digitos para el año ej: 2005)";
			}
		}
		return errors;	
	}

	function leapYear(year) {
		if (year % 4 == 0){
			return true
		}
		return false
	}

	/* Maximo valor para día en función del mes y el año (evalua bisiestos) */
	function getMaxDays(month, year) {
		// create array to hold number of days in each month
		// 0= January...
		var ar = new Array(13)
		ar[0] = 31; ar[1] = (leapYear(year)) ? 29 : 28;
		ar[2] = 31; ar[3] = 30; ar[4] = 31; ar[5] = 30;
		ar[6] = 31; ar[7] = 31; ar[8] = 30; ar[9] = 31;
		ar[10] = 30; ar[11] = 31; 
		// no se ha indicado mes.
		ar[12] = -1;	
		return ar[month]
	}



	
	function checkFields() {
		var b = document.createElement("B");
		var err = "";
		var err2 = "";
		var correct = null;
		
		for(var i=0;i<obligC.length;i++) {
			var elems = document.getElementsByName(obligC[i]);					
			if(elems.length>0) {
				var k = elems.length;
				if (k==1)
					k=0;
				else
					k=1;					
				for (var j=k;j<elems.length;j++) {
					correct = true;										
					if((!elems[j].value && !elems[j].value.length) || (elems[j].tagName=='SELECT' && (!elems[j].value || elems[j].value==-1))) {
						b.innerHTML = oblig[i];
						err += b.innerText+'\n';
						correct = false;						
					}					
					var elems2 = document.getElementsByName(obligC[i]+"YEAR");							
					if (elems2.length>0) {
						var anno = elems[j].previousSibling;
						var month = anno.previousSibling.previousSibling;
						var day = month.previousSibling.previousSibling;
						if (day.value==""|| month.value==""|| anno.value=="") {
							b.innerHTML = oblig[i];
							err += b.innerText+'\n';
							correct = false;								
						}	 
					}

					if (!correct) 						
						elems[j].style.border = "1px solid #CC0000";
					else
						elems[j].style.border = "1px solid #7F9DB9";					
				}
			} else {
				//alert('No hay elemento '+obligC[i]);
			}
		}

		for(var i=0;i<ftypeNames.length;i++) {
			var elems= document.getElementsByName(ftypeNames[i]);
			for (var j=0;j<elems.length;j++) {				
				if(ftypeTypes[i]=="NUMBER" && elems[j].value) {
					if(isNaN(Number(elems[j].value))) {
						b.innerHTML = ftypeNames[i].substr(0,ftypeNames[i].indexOf("_"));
						err2 += b.innerText+'\n';
						elems[j].style.border = "1px solid #CC0000";
					}	
				}else if(ftypeTypes[i]=="DATE" && elems[j].value) {
					var anno = elems[j].previousSibling;
					var month = anno.previousSibling.previousSibling;
					var day = month.previousSibling.previousSibling;
					// alert(anno.tagName+"---"+month.tagName+"----"+day.tagName)
					//alert("campo: "+ftypeNames[i]);
					//var dateValores= document.getElementByName(ftypeNames[i]+"DAY").value+"|"+document.getElementByName(ftypeNames[i]+"MONTH").value+"|"+document.getElementByName(ftypeNames[i]+"YEAR").value;
					//window.alert("fecha: "+dateValores);
					var textDate = getDateObj(day.value+"/"+month.value+"/"+anno.value);
					if (textDate.length>0) {
						b.innerHTML = ftypeNames[i].substr(0,ftypeNames[i].indexOf("_"));
						err2 += b.innerText+'\n';
						elems[j].style.border = "1px solid #CC0000";
						err+=textDate;
					}
				}				
				
			}
			
		}

		if (!err && !err2) {
			return true;
		} 
		if (err) {
			alert('Debe rellenar los siguientes campos:\n'+err);
			document.location.href = '#pagetop';
		} else if(err2) {
			alert('Los siguientes campos no son correctos (Recuerde Fechas (Ej: 25/04/2002)):\n'+err2);
			document.location.href = '#pagetop';
		}
		return false;
	}
