function parser_json(json){
	//alert("voy a parsear: "+json.template);
	var aux="if(datos_sistema['campo_oculto'].join().indexOf(json['nombre'])>=0){parser_template_oculto()}else{ if(typeof parser_template_"+json.template+" == 'function'){parser_template_"+json.template+"(json);}}";
	//alert(aux);
	var html= eval(aux);
	return html;
}

function recurse_parser (json){
	var resultado_template='';
	for (var id in json.templates) {
			 resultado_template += parser_json(json.templates[id]);
	}
	return resultado_template;
}

//funciones especificas por tipo de template
function parser_template_ingreso(json){

   	var resultado_template= recurse_parser(json);

	return resultado_template;
}

function parser_template_autentica_informa(json){

	var resultado_template= '<div class="autentica_informa">\n ';
   
	resultado_template+= recurse_parser(json);

	resultado_template+= '</div>\n ';

	return resultado_template;
}

function parser_template_informacion(json){

	var resultado_template= '<div class="informacion">\n'+json.descripcion+'</div>\n ';

	return resultado_template;
}

function parser_template_autenticacion(json){

	var resultado_template= '<div class="autenticacion">\n <form id="form" name="form" method="post" action="json/default.php">\n  ';

	resultado_template+= recurse_parser(json);

	resultado_template+= ' \
	     <p> \
            <img src="images/botones/boton_ingresar.jpg" alt="ingresar" class="submit" tabindex="4"/> \
          </p> \
      </form> \
 \
      <p><a href="#recuperar_contrasena" rel="facebox">olvidé mi contraseña \
      </a></p> \
      <p id="informativo"></p>\
\
		</div>\n\
		<div class="clear"></div>\n';

	return resultado_template;
}

function parser_template_recuperar(json){
	var resultado_template='\
			       <div id="recuperar_contrasena" style="display:none">\
				       <h1>Recuperar Contraseña</h1>\
				       <p>Usted olvidó su contraseña ¿Cómo desea recuperarla?</p>\
				       <p>Puede Contestar la Pregunta Secreta:</p>\
				       <p class="autenticacionPregunta">PREGUNTA...</p>\
				       <form id="recuperar" name="recuperar" method="post" action="lib/recuperar.php" onSubmit="return false;">\
					       <input type="text" name="respuesta_pregunta_secreta"/>\
					       <p>O si prefiere e ingresó su correo electrónico al momento de inscribirse, puede solicitar la recuperación por este medio:</p>\
					       <p class="autenticacionCorreo">Enviar al correo:</p>\
					       <p>\
					       <input type="text" name="correo_electronico_usuario"/>\
					       </p>\
					       <p>\
					       <img src="images/recuperar.jpg" class="submit"/>\
					       <img src="images/volver.jpg" alt="volver" class="close" />\
					       </p>\
				       \
				       </form>\
			       \
			       </div>\n';
	return resultado_template;
}

function parser_template_rut(json){
	var nombre= json.nombre;
	var validacion= json.validacion;
	var titulo_pre= json.titulo;
	var titulo_post= '';
	var guion= '';
	if (titulo_pre == '' || titulo_pre == undefined) { titulo_pre = ''; guion = '-'; }
	else { titulo_pre= '<p>'+titulo_pre+'<br/>\n <div>\n  '; titulo_post= '\n </div>\n  </p>\n '; guion = '  -  '; }

	var resultado_template= titulo_pre+'<input id="'+nombre+'" name="'+nombre+'" class="'+validacion+'" size="10" maxlength="10" type="text" tabindex="1"/>'+guion+'<input name="'+nombre+'_dv" class="'+validacion+'_dv" size="1" maxlength="1" type="text" tabindex="2"/>'+titulo_post;

	return resultado_template;
}

function parser_template_password(json){
	var nombre= json.nombre;
	var validacion= json.validacion;
	var titulo_pre= json.titulo;
	var titulo_post= '';
	if (titulo_pre == '' || titulo_pre == undefined) { titulo_pre = ''; }
	else { titulo_pre= '<p>'+titulo_pre+'<br/>\n '; titulo_post= '</p>\n '; }

	var resultado_template= titulo_pre+'<div>\n  <input name="'+nombre+'" class="'+validacion+'" size="14" maxlength="14" type="password" tabindex="4"/>\n </div>\n  '+titulo_post;

	return resultado_template;
}

function parser_template_los_periodos(json){
	var resultado_template= '<div class="los_periodos">\n <h1>Períodos de Postulación</h1>\n ';

	for (var id in periodo){
		//mostramos solamente los períodos visibles
		if(periodo[id]['visible'] == 't'){
			resultado_template+= '<div class="periodo_vigente">\n <p>'+id+'</p>\n  <p class="autenticacionFechas">Desde: '+periodo[id]['fecha_inicio']+' Hasta: '+periodo[id]['fecha_termino']+'</p>\n  <ul>\n   ';
			
			for (var dato in periodo[id]['beneficios']){
				resultado_template+= '<li>'+periodo[id]['beneficios'][dato]+'</li>\n    ';
			}
			resultado_template+= '</ul>\n  </div>\n ';
		}
	}

	resultado_template+= '\n <div class="clear"></div>\n</div>';

	return resultado_template;
}

function parser_template_br (json){
	return '<div class="clear"></div>';
}

function parser_template_formulario (json){
 	//titulo de la pagina ?
 	var titulo = json.titulo;
 	var resultado_template = '<form id="form" name="form" action="result.php" method="post"><input type="hidden" name="id_usuario"/><input type="hidden" name="id_modificador"/><input type="hidden" name="nombre_periodo"/><div class="tabBox" style="clear: both;">\n<div class="tabArea" id="tabList">\n';
	var pestanas = "";
	var divs = '<div id="tabcontentcontainer">\n';
	//Parseamos las lenguetas.
	for (var id in json.pestanas) {
		nid=id*1+1;
		pestanas+='<a class="tab" href="#top" id="pestana_'+nid+'">'+json.pestanas[id].titulo+'</a>\n';
		divs+='<div class="tabMain" id="div_'+nid+'">\n';
		divs+=parser_json(json.pestanas[id]);
		divs+='</div>\n';
	}
	divs+='</div>\n';
	resultado_template +=pestanas+'</div>\n'+divs+'</div></form>\n';

 	return resultado_template;
}

function parser_template_faq (json){
 	var resultado_template = '\
		    <div class="popup_texto">\
		      <h1>Preguntas frecuentes</h1>\
		      ';
	for (var id in json.templates) {
		resultado_template+=parser_json(json.templates[id]);
	}
	resultado_template +='</div>\n';

 	return resultado_template;
}
function parser_template_topico (json){
	var titulo=json.titulo;
 	var resultado_template = '\
	   <div class="accordion">\
	<h3>'+titulo+'</h3>\
	<div class="accordion2">\
	';
	//Parseamos las lenguetas.
	for (var id in json.templates) {
		resultado_template+=parser_json(json.templates[id]);
	}
	resultado_template +='</div></div>\n';

 	return resultado_template;
}
function parser_template_pregunta (json){
	var pregunta=json.pregunta;
	var respuesta=json.respuesta;
 	var resultado_template = '\
				 <h3>'+pregunta+'</h3>\
				    <div class="accordion2"> \
			   	       <p>'+respuesta+'</p>\
				    </div>\
	';

 	return resultado_template;
}

function parser_template_pestana (json){
 var titulo = json.titulo;
 var boton = '';
 boton = (typeof json['boton']=='undefined')?"botonGuardar":json['boton'];

 var descripcion = json.descripcion;
 if (descripcion != '') { descripcion = '<p>'+descripcion+'</p>' ; }
 
 var resultado_template = '<div class="headerSubPestana">\n <div class="registro_guardado"><img src="images/botones/'+boton+'.jpg" alt="Boton '+boton+'" class="submit" /></div><h1>'+titulo+'</h1>\n'+descripcion+'\n' ;
   	resultado_template += recurse_parser(json);
 
 resultado_template += '</div>\n\n' ; 
 return resultado_template ;
}

function parser_template_pestana_btn (json){
 var titulo = json.titulo;
 var boton = '';
 boton = (typeof json['boton']=='undefined')?"botonGuardar":json['boton'];

 var descripcion = json.descripcion;
 if (descripcion != '') { descripcion = '<p>'+descripcion+'</p>' ; }
 
 var resultado_template = '<div class="headerSubPestana">\n '+boton_dinamico(boton,"submit registro_guardado_btn")+'<h1>'+titulo+'</h1>\n'+descripcion+'\n' ;
   	resultado_template += recurse_parser(json);
 
 resultado_template += '</div>\n\n' ; 
 return resultado_template ;
}

function parser_template_footer_btn(json){
	var diasrestantes= datos_sistema['diasrestantes'];
	var textorestante= datos_sistema['textorestante'];
	var nombreperiodo= datos_sistema['nombreperiodo'];
	var guardadoalas= (typeof datos_usuario['fecha_postulacion2']=='undefined')?"":"Guardado a las "+datos_usuario['fecha_postulacion2'];
	var boton = '';
	boton = (typeof json['boton']=='undefined')?"botonGuardar":json['boton'];

	var resultado_template= '<div class="bottomSubPestana"> <div  class="calendario"> <p>'+diasrestantes+'</p> </div> <div class="finalizar"> <p>'+textorestante+'</p> <h3>'+nombreperiodo+'</h3> </div> '+boton_dinamico(boton,"submit registro_guardado_btn")+'<div class="guardado">'+guardadoalas+'</div></div> </div>';

	return resultado_template;
}

function parser_template_pestana_postular (json){
 var titulo = json.titulo;
 var resultado_template = '<div class="headerSubPestana">\n<h1>'+titulo+'</h1>\n<div class="postular">\n\n' ;
   	resultado_template += recurse_parser(json);
 
 resultado_template += '</div></div>\n\n' ; 
 return resultado_template ;
}

function parser_template_bloque(json){
	var titulo= json.titulo;
	if (titulo == '' || titulo == undefined) { titulo = ''; }
	else { titulo= '<span class="bloqueTitulo">'+titulo+':</span>'; }

	var resultado_template= '<div class="bloqueTabla">\n\n'+titulo+'';
	resultado_template += recurse_parser(json);
	resultado_template+= '</div>\n\n';
	return resultado_template;
}

function parser_template_bloque4(json){
	var titulo= json.titulo;
	if (titulo == '' || titulo == undefined) { titulo = ''; }
	else { titulo= '<span class="bloqueTitulo">'+titulo+':</span>'; }

	var resultado_template= '<div class="bloqueTabla4">\n\n'+titulo+'';
	resultado_template += recurse_parser(json);
	resultado_template+= '</div>\n\n';
	return resultado_template;
}
function parser_template_bloque7(json){
	var titulo= json.titulo;
	if (titulo == '' || titulo == undefined) { titulo = ''; }
	else { titulo= '<span class="bloqueTitulo">'+titulo+':</span>'; }

	var resultado_template= '<div class="bloqueTabla7">\n\n'+titulo+'';
	resultado_template += recurse_parser(json);
	resultado_template+= '</div>\n\n';
	return resultado_template;
}

function parser_template_bloque_integrantes(json){
	var titulo= json.titulo;
	if (titulo == '' || titulo == undefined) { titulo = ''; }
	else { titulo= '<span class="bloqueTitulo">'+titulo+':</span>'; }

	var resultado_template= '<div class="bloqueTabla_integrantes">\n\n'+titulo+'';
	resultado_template += recurse_parser(json);
	resultado_template+= '</div>\n\n';
	return resultado_template;
}
function parser_template_form_registro(json){
	var titulo= json.titulo;
	if (titulo == '' || titulo == undefined) { titulo = ''; }
	else { titulo= '<span class="bloque_titulo">'+titulo+':</span>'; }

	var resultado_template= '<div class="form_registro"><form name="form" id="form" onsubmit="return false;"><input type="hidden" name="id_usuario"/>\n\n'+titulo+'';
	resultado_template += recurse_parser(json);
	resultado_template+= '</form></div>\n\n';
	return resultado_template;
}

function parser_template_select(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion= json.validacion;
	//var metadata_footer= (typeof json.metadata == 'string')?json.metadata : "";
	var metadata= put_metadata(json);
	var metadata_input = (typeof json.titulo == 'string')?" {titulo: '"+json.titulo+"'}":"";

	var id= eval("(typeof datos_usuario."+nombre+" == 'string' && datos_usuario."+nombre+"!='' )?datos_usuario."+nombre+":'Seleccione'");
	var value='';
	var texto='';
	if(id!='Seleccione'){
		if(parametro[nombre]){
			texto= parametro[nombre][id];
		}
		value= id;
	}	
	var clase_extra = "inputTabla";
	if(typeof json.clase == "string"){ clase_extra=json.clase; }
	var resultado_template= '\
<div class="inputTabla '+clase_extra+'">\n\
    <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" />  </span>\n\
    <div class="caja_selecciona">\
       <span class="seleccione '+metadata+'">'+id+'</span>\
       <input type="hidden" name="'+nombre+'" value="'+value+'" class="'+validacion+metadata_input+'"/> \
       <div class="bloqueTexto">'+texto+'</div>\
    </div>\
</div>\n\
';

	return resultado_template;
}

function parser_template_select_cod_area(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion= json.validacion;
	//var metadata_footer= (typeof json.metadata == 'string')?json.metadata : "";
	var metadata= put_metadata(json);
	var metadata_input = (typeof json.titulo == 'string')?" {titulo: '"+json.titulo+"'}":"";

	var id= eval("(typeof datos_usuario."+nombre+" == 'string' && datos_usuario."+nombre+"!='' )?datos_usuario."+nombre+":'Seleccione'");
	var value='';
	var texto='';
	if(id!='Seleccione'){
		if(parametro[nombre]){
			texto= parametro[nombre][id];
		}
		value= id;
	}	
	var clase_extra = "inputTabla";
	if(typeof json.clase == "string"){ clase_extra=json.clase; }
	var resultado_template= '\
<div class="inputTabla '+clase_extra+'">\n\
    <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" />  </span>\n\
    <div class="caja_selecciona">\
       <span class="seleccione '+metadata+'">'+id+'</span>\
       <input type="hidden" name="'+nombre+'" value="'+value+'" class="'+validacion+metadata_input+'"/> \
       <div class="bloqueTexto">'+texto+'</div>\
    </div>\
</div>\n\
';

	return resultado_template;
}

function parser_template_select_familiares(json){
	//var nombre= json.nombre;
	var resultado_template= '<div class="inputTabla">\n <div class="caja_selecciona"><span class="seleccione_familiar">1</span><input type="hidden" name="nro_familiares"/></div></div>\n\n';

	return resultado_template;
}

function parser_template_lista(json){
	//var nombre= json.nombre;
	var resultado_template= '<ul>\n ';

	for (var id in json.items) {
		resultado_template+='<li>'+json.items[id].item+'</li>\n';
	}
	
	resultado_template+='</ul>\n ';

	return resultado_template;
}

function parser_template_input(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion= json.validacion;
	//verificamos si existe valor para cargar.
	//var metadata= (typeof json.metadata == 'string')?json.metadata : "";
	var metadata= put_metadata(json);
	var size= (typeof json.size== 'number')?'size="'+json.size+'"':'';
	var maxlength= (typeof json.maxlength == 'number')?'maxlength="'+json.maxlength+'"':'';
	//con espacio para que no se peguen los nombres de las clases
	var clase_extra = (typeof json.clase == "string")?' '+json.clase:'';

	var value= eval("(typeof datos_usuario."+nombre+" != 'undefined')?datos_usuario."+nombre+":''");
	var resultado_template= '\
<div class="inputTabla'+clase_extra+'">\n\
  <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" /></span>\n\
  <div class="caja_selecciona">\
    <span>\
      <input type="text" '+maxlength+'id="'+nombre+'" name="'+nombre+'" class="'+validacion+' '+metadata+'" '+size+' value="'+value+'"/>\
    </span>\
  </div>\n\
</div>\n\n';

	return resultado_template;
}

function parser_template_area_texto(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion= json.validacion;
	var columnas= json.columnas;
	var filas= json.filas;
	var resultado_template= '<tr> <td width="121">'+titulo+'</td> <td width="279">  <textarea rows="'+filas+'" cols="'+columnas+'" name="'+nombre+'" id="'+nombre+'" class="'+validacion+'" /> </td> </tr>\n    ';
	
	return resultado_template;
}

function parser_template_oculto(json){
	var resultado_template= '\
<div class="inputTabla"></div>\n';

	return resultado_template;
}
function parser_template_bool(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion = json.validacion;
	var valor= datos_usuario[json.nombre];
	var metadata_input = (typeof json.titulo == 'string')?" {titulo: '"+json.titulo+"'}":"";
	var checked1='',checked2='';
	if( valor == 'true'){ 
		checked1='checked';
	}else if( valor == 'false' ){
		checked2='checked';
	}
	//var resultado_template= '<div class="inputTabla">\n <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" />  </span>\n <div class="caja_selecciona">\n <div><span class="error_radio">\n<input type="radio" name="'+nombre+'" value="true" '+checked1+' class="'+metadata_input+'"/>si&nbsp;&nbsp;<input type="radio" name="'+nombre+'" value="false" '+checked2+' class="'+metadata_input+'"/>no</span></div></div>\n </div>\n\n';
	var resultado_template= '<div class="inputTabla">\n <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" />  </span>\n <div class="caja_selecciona">\n <div><span>\n<input type="radio" name="'+nombre+'" value="true" '+checked1+' class="'+validacion+' '+metadata_input+'"/>si&nbsp;&nbsp;<input type="radio" name="'+nombre+'" value="false" '+checked2+' class="'+validacion+' '+metadata_input+'"/>no</span></div></div>\n </div>\n\n';

	return resultado_template;
}

function parser_template_plano(json){
	var texto=json.texto;
	var resultado_template= '<p>'+texto+'</p>';

	return resultado_template;
}

function parser_template_postular(json){
	var resultado_template= '<div class="clear">\n <div class="registro_guardado"><img src="images/botones/boton_postular.jpg" alt="Boton Postular" class="send"></div>\n<span>Acepto<input name="declaracion" id="declaracion" type="checkbox" class="checkbox"/></span><span>Contraseña: <input name="clave" class="password" type="password"/></span></div>\n';
	//var resultado_template= '<div class="clear">\n <div class="registro_guardado"><img src="images/botones/boton_postular.jpg" alt="Boton Postular" class="send"></div>\n<span><div>Acepto<input name="declaracion" id="declaracion" type="checkbox" class="checkbox"/></div></span><span><span>Contraseña: <input name="clave" class="password" type="password"/></span></span></div>\n';

	return resultado_template;
}

function parser_template_acreditar(json){
	var resultado_template= '<div class="clear">\n <div class="registro_guardado">'+boton_dinamico("Acreditar","submit registro_guardado_btn")+'</div></div>\n';

	return resultado_template;
}

function parser_template_bloquetabla(json){
	var clase= json.clase;
	var resultado_template='<div class="tabla">';
	resultado_template+= recurse_parser(json);
        resultado_template+= '</div>\n\n';

	return resultado_template;
}

function parser_template_separador_tabla(json){

	var resultado_template='<tr><td class="espaciador">&nbsp;</td></tr>';

	return resultado_template;
}

function parser_template_tabla_familiares(json){
	var id= json.id;
	var resultado_template = '<table id="'+id+'" border="0" cellpadding="0" cellspacing="0">\n <tr>\n <th>Nombres</th>\n <th>Apellido paterno</th>\n <th>Apellido materno</th>\n <th>RUT</th>\n <th>Edad</th>\n <th>Estado <br> Civil</th>\n <th>Parentesco</th>\n <th>Previsión<br> social</th>\n <th>Previsión<br> salud</th>\n <th>Actividad</th>\n <th>Nivel de<br> estudios</th>\n <th>&nbsp;</th> </tr>\n';
	//ahpra agregamos los datos del usuario
	var estadocivil = datos_usuario.estadocivil==undefined?"":datos_usuario.estadocivil;
	var previsionsocial = datos_usuario.previsionsocial==undefined?"":datos_usuario.previsionsocial;
	var previsionsalud = datos_usuario.previsionsalud==undefined?"":datos_usuario.previsionsalud;
	var actividad = datos_usuario.actividad==undefined?"":datos_usuario.actividad;

	resultado_template+= '<tr>\n <td>'+datos_usuario.nombre_usuario+'</td>\n <td>'+datos_usuario.apellido_paterno_usuario+'</td>\n <td>'+datos_usuario.apellido_materno_usuario+'</td>\n <td>'+datos_usuario.rut+'</td>\n <td>'+datos_usuario.edad+'</td>\n <td id="familiar_estadocivil">'+estadocivil+'</td>\n <td>&nbsp;</td>\n <td id="familiar_previsionsocial">'+previsionsocial+'</td>\n <td id="familiar_previsionsalud">'+previsionsalud+'</td>\n <td id="familiar_actividad">'+actividad+'</td>\n <td>&nbsp;</td>\n <td>&nbsp;</td>\n </tr>\n';
	resultado_template+= '</table>\n';

	return resultado_template;
}

function parser_template_tabla_ingresos(json){
	var id= json.id;
	var resultado_template = '<table id="'+id+'" border="0" cellpadding="0" cellspacing="0">\n <tbody>\n <tr>\n <th class="celda_nombre">Nombres</th>\n <th  class="celda_agnos">año</th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Sueldo y pensiones</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Honorarios</span></th>\n \n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Retiros</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Dividendos</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Intereses mobiliarios</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Ganancias de capital</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Pensión alimenticia y otros aportes de parientes</span></th>\n <th class="ancho_td_ingresos"><span class="vinculoIngreso hoverIngreso" >Actividades independientes</span></th>\n \n <td class="el_total">Total</td>\n </tr>\n';

	//ahora agregamos los datos del usuario
	resultado_template+= '<tr>\n <td rowspan="2" class="columna_nombre_ingresos_familiares">'+datos_usuario.nombre+'</td>\n';
 	//se cargan los datos de los ingresos.
	var class_agno="ingreso_anterior";
	var class_ingreso="";
	var year = [2008,2009];
	var total=0;
	var separador="</tr><tr>";
	var my_ingreso=0;
	//for(var i in datos_usuario.ingresos){
	for(var i=0;i<2;i++){
		resultado_template+='<td class="celda_agnos"><span class="'+class_agno+'">'+year[i]+'</span></td>\n';
		//TODO recordar hacer variable los años...
		//for(var j in datos_usuario.ingresos[i]){
		for(var j=0;j<8;j++){
			if(typeof datos_usuario.ingresos[i] != 'undefined'){
				my_ingreso = (typeof datos_usuario.ingresos[i][j] == 'undefined')?0:clean_ingreso(datos_usuario.ingresos[i][j]+'');
			}
			else{
				my_ingreso = 0;
			}
			resultado_template+='<td '+class_ingreso+'><input type="text" name="ingresos['+i+']['+j+']" size="9" maxlength="9" value="'+my_ingreso+'" class="{titulo: \'Ingreso del postulante\'}"/></td>\n';
			//forzamos base 10 por si vienen 0's al principio
			total+= my_ingreso;
		}
		resultado_template+='<td class="el_total"><span id="total_'+year[i]+'_'+i+'">'+total+'</span></td>\n';
		resultado_template+=separador;
		total=0;
		class_agno="ingreso_actual";
		class_ingreso='class="fondo_ingresoActual"';
		separador="</tr>";
	}

	resultado_template+= '\n </tbody>\n</table>\n';

	return resultado_template;
}

function parser_template_tabla_ingresos_totales(json){
	var id= json.id;
	var year = [2008,2009];
	var resultado_template = '<table id="'+id+'" border="0" cellpadding="0" cellspacing="0" class="total_mensual">\n <tr>\n <th>Total mensual grupo familiar</th>\n <td class="el_total">Total</td>\n</tr>\n';

	//se puede poner un for con i
	resultado_template += '<tr name="total_mensual_grupo_familiar_0" class="{titulo: \'Total mensual año pasado grupo familiar\'}"> <td class="ingreso_anterior">2008</td> <td class="el_total total_ingreso_'+year[0]+'_'+0+'"></td> </tr> <tr name="total_mensual_grupo_familiar_1" class="{titulo: \'Total mensual año en curso grupo familiar\'}"> <td class="fondo_ingresoActual"><span class="ingreso_actual">2009</span></td> <td class="el_total total_ingreso_'+year[1]+'_'+1+'"></td> </tr>';

	resultado_template+= '</tbody></table>';

	return resultado_template;
}

function parser_template_datos_faltantes(json){
	var id= json.id;
	var resultado_template = '<table id="'+id+'" name="'+id+'" class="datos_faltantes" border="0" cellpadding="0" cellspacing="0">\n <tr>\n  <th>Nombre del Campo</th>\n  <th>Ubicación</th>\n  <th>Recomendación</th>\n  </tr>\n </table>\n ';

	return resultado_template;
}

function parser_template_inscripcion(json){

	var resultado_template= '<div style="z-index: 970;" class="form_registro"> <form id="form1" name="form1" method="post" action="">\n ';

	resultado_template+= recurse_parser(json);

	resultado_template+= '</form> </div>';

	return resultado_template;
}       

function parser_template_tabla_inscripcion(json){
	var resultado_template= '<table border="0" cellpadding="0" cellspacing="0">\n  <tbody>\n   ';

	resultado_template+= recurse_parser(json);

	resultado_template+= '</tbody>\n </table>';

	return resultado_template;
}       

function parser_template_inscripcion_simple(json){
	var nombre = json.nombre;
	var titulo = json.titulo;
	var size = (typeof json['size']=='undefined')?"":json['size'];
	if( size != "" ){ size = ' size="'+size+'"'; }
	var maxlength = (typeof json['maxlength']=='undefined')?"":json['maxlength'];
	if( maxlength != "" ){ maxlength = ' maxlengthgth="'+maxlength+'"'; }
	var instruccion = (typeof json['instruccion']=='undefined')?"":json['instruccion'];
	if( instruccion != "" ){ instruccion = ' <span class="instruccion">'+instruccion+'</span>'; }

	var validacion = json.validacion;

	var resultado_template= '<tr> <td width="121">'+titulo+'</td> <td width="279"> <input name="'+nombre+'" id="'+nombre+'" class="'+validacion+'" type="text"'+size+maxlength+' />'+instruccion+' </td> </tr>\n    ';

	return resultado_template;
}

function parser_template_tabla_parametros(json){
	var id= json.id;
	var resultado_template = '<table id="'+id+'" name="'+id+'" class="" border="1" cellpadding="1" cellspacing="1">\n <tbody><tr>\n  <th>Nombre del Parámetro</th><th>Código</th><th>Valor</th></tr></tbody>\n </table>\n ';

	return resultado_template;
}

function parser_template_inscripcion_checkbox_list(json){
	var titulo = json.titulo;
	var nombre = json.nombre;
	var param = eval(json.parametro);
	var resultado_template ='';
	var first = true
	var count = 0;
	for (var i in param){
		if(!first){ 
			resultado_template += '<tr>';
			first = false;
		}
		resultado_template += '<td><label><input type="checkbox" name="'+nombre+'[\''+i+'\']" value="'+i+'"/>: '+param[i]+'</label></td></tr>';
		count++;
	}

        resultado_template = '<tr><td rowspan="'+count+'">'+titulo+'</td>'+resultado_template;

	return resultado_template;
}

function parser_template_checkbox(json){
	var titulo = json.titulo;
	var nombre = json.nombre;
	var resultado_template = '<tr><td>'+titulo+'</td><td><label><input type="checkbox" name="'+nombre+'" value="'+nombre+'"/></label></td></tr>';

	return resultado_template;
}

function parser_template_inscripcion_rut(json){
	var nombre= json.nombre;
	var validacion= json.validacion;
	var titulo_pre= json.titulo;
	var titulo_post= '';
	var guion= '';
	if (titulo_pre == '' || titulo_pre == undefined) { titulo_pre = ''; guion = '-'; }
	else { titulo_pre= '<td width="121">'+titulo_pre+'<br/>\n <td width="279">\n  '; titulo_post= '\n </td>\n  </td>\n '; guion = '  -  '; }

	var resultado_template= titulo_pre+'<input id="'+nombre+'" name="'+nombre+'" class="'+validacion+'" size="10" maxlength="10" type="text" tabindex="1"/>'+guion+'<input name="'+nombre+'_dv" class="'+validacion+'_dv" size="1" maxlength="1" type="text" tabindex="2"/>'+titulo_post;

	return resultado_template;
}

function parser_template_inscripcion_password(json){
	var nombre = json.nombre;
	var titulo = json.titulo;
	var validacion = json.validacion;
	//var metadata= (typeof json.metadata == 'string')?json.metadata : "";
	var metadata= put_metadata(json);

	var resultado_template= '<tr> <td>'+titulo+'</td> <td> <input name="'+nombre+'" id="'+nombre+'" type="password" class="'+validacion+' '+metadata+'"/> <span class="instruccion_contrasena">mínimo 8 caracteres alfanuméricos</span> </td> </tr>\n    ';

	return resultado_template;
}

function parser_template_inscripcion_sexo(json){
	var nombre = json.nombre;
	var titulo = json.titulo;
	var validacion = json.validacion;

	//var resultado_template= '<tr> <td>'+titulo+'</td> <td><div><span class="error_radio"><input name="'+nombre+'" id="'+nombre+'_f" value="false" type="radio" class="'+validacion+'" />femenino<input name="'+nombre+'" id="'+nombre+'_m" value="true" type="radio" class="'+validacion+'" />masculino</span></div></td> </tr>';
	var resultado_template= '<tr> <td>'+titulo+'</td> <td><div><span><input name="'+nombre+'" id="'+nombre+'_f" value="false" type="radio" class="'+validacion+'" />femenino<input name="'+nombre+'" id="'+nombre+'_m" value="true" type="radio" class="'+validacion+'" />masculino</span></div></td> </tr>';

       return resultado_template;
}

function parser_template_inscripcion_correo_electronico(json){
	var nombre = json.nombre;
	var titulo = json.titulo;
	var validacion = (typeof json.validacion == 'string')?json.validacion : "";
	//var metadata= (typeof json.metadata == 'string')?json.metadata : "";
	var maxlength= (typeof json.maxlength == 'number')?' maxlength="'+json.maxlength+'"':'';
	var metadata= put_metadata(json);

 	var resultado_template= '<tr> <td>'+titulo+'</td> <td><input name="'+nombre+'" id="'+nombre+'_usuario" size="12"'+maxlength+' type="text" class="usuario_correo '+validacion+' '+metadata+'" /> @ <input name="'+nombre+'_dominio" id="'+nombre+'_dominio" size="12"'+maxlength+' type="text" class="dominio_correo '+validacion+' '+metadata+'" /> </td> </tr>\n    ';

	return resultado_template;
}

//tiene diagramación horizontal...
function parser_template_select_lineal(json){
	var titulo= json.titulo;
	var nombre= json.nombre;
	var validacion= json.validacion;
	//var metadata= (typeof json.metadata == 'string')?json.metadata : "";
	var metadata= put_metadata(json);

	var id= eval("(typeof datos_usuario."+nombre+" == 'string')?datos_usuario."+nombre+":'seleccione'");
	var value='';
	var texto='';
	if(id!='seleccione'){
		texto= parametro[nombre][id];
		value= id;
	}else{
		texto=id;
	}
	var clase_extra = "inputTabla";
	if(typeof json.clase == "string"){ clase_extra=json.clase; }
	//var resultado_template= '<div class="inputTabla '+clase_extra+'">\n <span class="inputTitulo">'+titulo+':<img src="images/fondos/pregunta.gif" alt="Ayuda" class="ayuda" />  </span>\n <div class="caja_selecciona"><span class="seleccione">'+id+'</span><input type="hidden" name="'+nombre+'" value="'+value+'" class="'+validacion+'"/> <div class="bloqueTexto">'+texto+'</div> </div></div>\n\n';

       	var resultado_template= '<tr> <td>'+titulo+'</td> <td><div class="inputTabla"> <div class="caja_selecciona">\
				<span class="seleccione '+metadata+'">'+id+'</span><input type="hidden" name="'+nombre+'" value="'+value+'" class="'+validacion+'"/>\
				</div> </div></td> </tr>\n    ';

	return resultado_template;
}

function parser_template_inscripcion_respuesta_secreta(json){
	var nombre = json.nombre;
	var titulo = json.titulo;
	var instruccion = (typeof json['instruccion']=='undefined')?"":json['instruccion'];
	if( instruccion != "" ){ instruccion = ' <span class="instruccion">'+instruccion+'</span>'; }

	var validacion = json.validacion;

	var resultado_template= '<tr> <td>'+titulo+'</td> <td><input name="'+nombre+'" id="'+nombre+'" class="'+validacion+'" type="text"/>'+instruccion+' </td> </tr>\n    ';

	return resultado_template;
}

function parser_template_footer(json){
	var diasrestantes= datos_sistema['diasrestantes'];
	var textorestante= datos_sistema['textorestante'];
	var nombreperiodo= datos_sistema['nombreperiodo'];
	var guardadoalas= (typeof datos_usuario['fecha_postulacion2']=='undefined')?"":"Guardado a las "+datos_usuario['fecha_postulacion2'];

	var resultado_template= '<div class="bottomSubPestana"> <div  class="calendario"> <p>'+diasrestantes+'</p> </div> <div class="finalizar"> <p>'+textorestante+'</p> <h3>'+nombreperiodo+'</h3> </div> <div class="registro_guardado"><img src="images/botones/botonGuardar.jpg" alt="Boton Guardar" class="submit"><div class="guardado">'+guardadoalas+'</div></div> </div>';

	return resultado_template;
}

function put_metadata(json){

	var metadata = (typeof json.metadata == 'string' )?json.metadata:"";
	var titulo = json.titulo;

	//"metadata": "parametro: 'comuna', cadena: 'region'"
	if( metadata != "" ){
		metadata = metadata+", titulo: '"+titulo+"'";
	}
	else{
		metadata = "titulo: '"+titulo+"'";
	}

	metadata = "{"+metadata+"}";

	return metadata;
}

function parser_template_comprobante(json){
	var resultado_template= '<div class="comprobante">';
	if( datos_envio['id_comprobante'] == '' ) {
		resultado_template+= "<h1>Ud. No tiene comprobante, para obtenerlo debe llenar correctamente los datos del formulario y luego POSTULAR.</h1>";
	}
	else{
		_error("id_comprobante: "+datos_envio['id_comprobante']);
		resultado_template+= recurse_parser(json);
	}

	resultado_template+= '</div>';
	return resultado_template;
}

function parser_template_beneficios(json){
	var nombre= datos_envio['nombre'];
	var hora_fecha= datos_envio['fecha'];
	var numero_comprobante= datos_envio['id_comprobante'];
	//var rut_formateado= format_rut(datos_envio['rut'])+'-'+calcularDV(datos_envio['rut']);
	var rut_formateado= datos_envio['rut'];
	var nombre_periodo= datos_envio['nombre_periodo'];
	var tr_postulando= '<tr><td class="datos_gris">Postulando a</td>';
	var i=0;
	for (var j in datos_envio.beneficios){
		if( i == 2 ){
			tr_postulando+= '</tr><tr><td>&nbsp;</td>';
			i=0;
		}
		tr_postulando+= '<td>- '+datos_envio.beneficios[j]+'</td>';
		i++;
	}
	tr_postulando+= '</tr>';

	var resultado_template= '\
				<table border="0" cellpadding="0" cellspacing="2" class="datos_alumno">\
				 <tbody>\
				  <tr><th colspan="3"><h1>Comprobante de Postulación</h1></th></tr>\
				  <tr><td class="datos_gris">Nombre</td><td>'+nombre+'</td><td class="destacado">Nº de Comprobante: '+numero_comprobante+'</td></tr>\
				  <tr><td class="datos_gris">Fecha</td><td>'+datos_envio['fecha_postulacion']+'</td><td class="destacado">RUT: '+rut_formateado+'</td></tr>\
				  <tr><td class="datos_gris">Periodo</td><td>'+nombre_periodo+'</td><td></td></tr>\
				  '+tr_postulando+'\
				 </tbody>\
				</table>';

	return resultado_template;
}

function parser_template_beneficios_acreditacion(json){
	var nombre= datos_envio['nombre'];
	var hora_fecha= datos_envio['fecha'];
	var numero_comprobante= datos_envio['id_comprobante'];
	//var rut_formateado= format_rut(datos_envio['rut'])+'-'+calcularDV(datos_envio['rut']);
	var rut_formateado= datos_envio['rut'];
	var nombre_periodo= datos_envio['nombre_periodo'];
	var tr_postulando= '<tr><td class="datos_gris">Acreditado para</td>';
	var i=0;
	for (var j in datos_envio.beneficios){
		if( i == 2 ){
			tr_postulando+= '</tr><tr><td>&nbsp;</td>';
			i=0;
		}
		tr_postulando+= '<td>- '+datos_envio.beneficios[j]+'</td>';
		i++;
	}
	tr_postulando+= '</tr>';

	var resultado_template= '\
				<table border="0" cellpadding="0" cellspacing="2" class="datos_alumno">\
				 <tbody>\
				  <tr><th colspan="3"><h1>Comprobante de Acreditación</h1></th></tr>\
				  <tr><td class="datos_gris">Nombre</td><td>'+nombre+'</td><td class="destacado">Nº de Comprobante: '+numero_comprobante+'</td></tr>\
				  <tr><td class="datos_gris">Fecha</td><td>'+datos_envio['fecha_postulacion']+'</td><td class="destacado">RUT: '+rut_formateado+'</td></tr>\
				  <tr><td class="datos_gris">Periodo</td><td>'+nombre_periodo+'</td><td></td></tr>\
				  '+tr_postulando+'\
				 </tbody>\
				</table>';

	return resultado_template;
}

//este es del comprobante
function parser_template_familiares(json){
 	var titulo = json.titulo;
	var resultado_template= '\
				<table cellpadding="0" cellspacing="2" class="datos_grupofamiliar">\
				 <tbody>\
				  <tr><td colspan="11" class="no_borde"><h2>'+titulo+'</h2></td></tr>\
				  <tr>\
				   <th  width="120">Nombres</th>\
				   <th  width="100">Apellido Paterno</th>\
				   <th  width="100">Apellido Materno</th>\
				   <th  width="80">Rut</th>\
				   <th  width="35">Edad</th>\
				   <th  width="65">Estado civil </th>\
				   <th  width="70">Parentesco</th>\
				   <th  width="70">Previsión social</th>\
				   <th  width="70">Previsión salud</th>\
				   <th  width="95">Actividad</th>\
				   <th  width="95">Nivel de Estudios</th>\
				  </tr>';
	//primero el postulante
		resultado_template+= '<tr>';
		resultado_template+= '<td>'+datos_envio['nombre_usuario']+'</td>';
		resultado_template+= '<td>'+datos_envio['apellido_paterno_usuario']+'</td>';
		resultado_template+= '<td class="no_wrap">'+datos_envio['apellido_materno_usuario']+'</td>';
		resultado_template+= '<td class="no_wrap">'+datos_envio['rut']+'</td>';
		resultado_template+= '<td>'+datos_envio['edad']+'</td>';
		resultado_template+= '<td>'+datos_envio['estadocivil']+'</td>';
		resultado_template+= '<td> - </td>';
		resultado_template+= '<td>'+datos_envio['previsionsocial']+'</td>';
		resultado_template+= '<td>'+datos_envio['previsionsalud']+'</td>';
		resultado_template+= '<td>'+datos_envio['actividad']+'</td>';
		resultado_template+= '<td class="borde_derecho"> - </td>';
		resultado_template+= '</tr>';

	//luego los familiares
	for (var i in datos_envio['familiares']){
		resultado_template+= '<tr>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['nombre_familiar']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['apellido_paterno_familiar']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['apellido_materno_familiar']+'</td>';
		resultado_template+= '<td>'+format_rut(datos_envio['familiares'][i]['rut_familiar'])+'-'+datos_envio['familiares'][i]['rut_familiar_dv']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['edad_familiar']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['estadocivil']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['parentesco']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['previsionsocial']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['previsionsalud']+'</td>';
		resultado_template+= '<td>'+datos_envio['familiares'][i]['actividad']+'</td>';
		resultado_template+= '<td class="borde_derecho">'+datos_envio['familiares'][i]['estudios']+'</td>';
		resultado_template+= '</tr>';
	}

	resultado_template+= '</tbody></table>';

	return resultado_template;
}

//este es del comprobante
function parser_template_ingresos(json){
	var year = [2008,2009];
	var total_mensual = [0,0];
 	var titulo = json.titulo;
 	var titulo_total = json.titulo_total;
	var resultado_template= '\
				<table cellpadding="0" cellspacing="2" class="datos_grupofamiliar">\
				 <tbody>\
				  <tr><td colspan="13"class="no_borde"><h2>'+titulo+'</h2></td></tr>\
				  <tr>\
			 	   <th width="120">Nombre</th>\
				   <th width="40">Año</th>\
				   <th width="55">Sueldo y pensiones</th>\
				   <th width="55">Honorarios</th>\
				   <th width="50">Retiro</th>\
				   <th width="55">Dividendos</th>\
				   <th width="55">Intereses mobiliarios</th>\
				   <th width="55">Ganancias de capital</th>\
				   <th width="60">Pensión alimenticia y otros aportes de parientes</th>\
				   <th width="80">Actividades independientes</th>\
				   <th width="100">TOTAL</th>\
				  </tr>';
	//primero el postulante
	for (var i in datos_envio['ingresos']){
		var total= 0;
		resultado_template+= '<tr>';
		if( i == 0 ) {
			resultado_template+= '<td rowspan="2">'+datos_envio['nombre_usuario']+' '+datos_envio['apellido_paterno_usuario']+' '+datos_envio['apellido_materno_usuario']+'</td>';
		}
		resultado_template+= '<td class="bold_agnos">'+year[i]+'</td>';
		for (var j in datos_envio['ingresos'][i]){
			//forzamos base 10 por si vienen 0's al principio
			var ingreso = parseInt(datos_envio['ingresos'][i][j],10);
			resultado_template+= '<td>'+ingreso+'</td>';
			total+= ingreso;
		}
		total_mensual[i]+= total;
		resultado_template+= '<td>'+total+'</td>';
		resultado_template+= '</tr>';
	}

	//luego los familiares
	var primer_td = true;
	for (var i in datos_envio['familiares']){
		var total= 0;
		resultado_template+= '<tr>';
		if( primer_td ){
			resultado_template+= '<td rowspan="2">'+datos_envio['familiares'][i]['nombre_familiar']+' '+datos_envio['familiares'][i]['apellido_paterno_familiar']+' '+datos_envio['familiares'][i]['apellido_materno_familiar']+'</td>';
			primer_td = false;
		}
		for (var j in datos_envio['familiares'][i]['ingresos']){
			total=0;
			resultado_template+= '<td class="bold_agnos">'+year[j]+'</td>';
			for (var k in datos_envio['familiares'][i]['ingresos'][j]){
				//forzamos base 10 por si vienen 0's al principio
				var ingreso = parseInt(datos_envio['familiares'][i]['ingresos'][j][k],10);
				resultado_template+= '<td>'+ingreso+'</td>';
				total+= ingreso;
			}
			total_mensual[j]+= total;
			resultado_template+= '<td>'+total+'</td>';
			resultado_template+= '</tr>';
			total=0;
		}
		primer_td = true;
	}
	resultado_template+= '</tbody></table>\n';

	//Total mensual grupo familiar
	//			 <tr><th  width="40" class="no_borde">Año</th><th width="120">Total</th></tr>\
	resultado_template+= '\
				<table cellpadding="0" cellspacing="2" class="total_grupofamiliar">\
				 <tbody>\
				 <tr><td colspan="2"class="no_borde"><h2>'+titulo_total+'</h2></td></tr>';
	for (var l in year){
		resultado_template+= '<tr><td class="bold_agnos">'+year[l]+'</td><td class="borde_derecho">'+total_mensual[l]+'</td></tr>';
	}
	resultado_template+= '</tbody></table>';

	return resultado_template;

}

//este es del comprobante
function parser_template_comprobante_footer(json){
/*
	var resultado_template= '<div class="clear"><form id="form1" name="form1" method="post" action="">\
				<label><input type="button" class="boton_comprobante" onclick="location.href=\'script/default.php?logout=1\';" name="button" id="button" value="Salir" /></label>\
				<label><input type="button" class="boton_comprobante" onclick="window.print();" name="button" id="button2" value="Imprimir" /></label>\
				</form></div>';
*/
/*
	var resultado_template= '<div class="clear"><form id="form1" name="form1" method="post" action="">\
				<label><input type="img" src="images/botones/btn_salir.jpg" alt="Salir" onclick="location.href=\'script/default.php?logout=1\';" name="button" id="button" value="Salir" /></label>\
				<label><input type="img" src="images/botones/Imprimir.jpg" alt="Imprimir" onclick="window.print();" name="button" id="button2" value="Imprimir" /></label>\
				</form></div>';
*/

	var resultado_template= '<div class="clear"><form id="form1" name="form1" method="post" action="">\
				<label><img src="images/botones/btn_salir.jpg" alt="Salir"  name="button" id="button" class="estilo_boton salir"/></label>\
				<label><img src="images/botones/Imprimir.jpg" alt="Imprimir" onclick="window.print();" name="button" id="button2" class="estilo_boton"/></label>\
				</form></div>';

	return resultado_template;
}
