<?
/* 
Version 1.6
	New:
		-Headerform()  
			igual a cabecera?
Version 1.5
	New:
		-function campocheck($nombreobj,$label,$ancho,$valor,$clase,$protegido="",&$oculto="")
		-function campobotongrafico($nombrecontrol,$label,$img,$js)
	Incompatible:
		-function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton,$numform=1,$resultado="",$resultadohtm="",$extracampo="",$tabbed=0)
		·extracampo permite ingresar mas tabs de elementos.		
Version 1.4:
	Changed (back compatible):
		-function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton,$numform=1,$resultado="",$resultadohtm="") 
			campos puede recibir un html o puede recibir un arreglo de html, en ese caso crea columnas con la cantidad de arreglos.
		-function campoformulario
			tipo calen que es calendario, requiere tener cargado:
				<script type="text/javascript" src="ajaxlib/spcal/src/calendar.js"></script>
				<script type="text/javascript" src="ajaxlib/spcal/lang/calendar-es.js"></script>
Version 1.3:
	New:
		-campofile($nombrecontrol,$label,$ancho,$valor,$clase,$protegido="")

Version 1.2
	New:
	Changed (back compatible):
		-function campoformulario ($nombreobj,$label,$ancho,$valor,$clase,$protegido="",$tipo='TEXTO',$numcaracteres=999,$js='')	
		-function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton,$numform=1) 		
	Obsolete:
	Incompatible:
		-function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton,$numform=1) 	
			*Botones se toma de distinta manera en un arreglo de cada 3 elementos.
	Arcaic:

Version 1.0
	Changed:
		-function campoformulario ($nombreobj,$label,$ancho,$valor,$clase,$protegido="")
		-function cabecera($titulo)
		-function campocombo($nombreobj,$label,$ancho,$valor,$arreglo,$clase,$protegido="")
		-function campohidden($nombrecontrol,$valordefecto)
		-function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton)
*/
function cabecera($titulo="",$withbrackets="") {
	$tmp="";	
	if ($withbrackets) {	$tmp.="<header>"; }
	$tmp.= "	<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>\n";
	$tmp.= "	<title>$titulo</title>\n";
	$tmp.= "	<!-- Common JS files -->\n";
	$tmp.= "	<script type='text/javascript' src='ajaxlib/utils/southprojects.js'></script>\n";
	$tmp.= "	<!-- Custom includes -->	\n";
	$tmp.= "	<script type='text/javascript' src='ajaxlib/spform/src/form.js'></script>\n";
	$tmp.= "	<!-- ALL demos need these css -->\n";
	$tmp.= "	<link href='ajaxlib/website/css/zpcal.css' rel='stylesheet' type='text/css'>\n";
	$tmp.= "	<link href='ajaxlib/website/css/template.css' rel='stylesheet' type='text/css'>\n";
	$tmp.= "<!-- tabs -->\n";
	$tmp.= "<script type='text/javascript' src='tabs/tabber.js'></script>\n";
	$tmp.= "<link rel='stylesheet' href='tabs/tab.css' TYPE='text/css' MEDIA='screen'>\n";
	

	$tmp.= "	<!-- Theme css -->\n";
	$tmp.= "	<link href='ajaxlib/spform/themes/winxp2.css' rel='stylesheet' type='text/css'>\n";
	if ($withbrackets) {	$tmp.="</header>"; }
	return $tmp;
}


function javascriptcalendario($nombre_elem) {
		$tmp="";
		$tmp.= "<script type=\"text/javascript\">\n";
		$tmp.= "var cal_$nombre_elem = new southprojects.Calendar.setup({\n";
		$tmp.= "\n";
		$tmp.= "inputField     :    \"$nombre_elem\",     \n";
		$tmp.= "ifFormat       :    \"%d-%m-%Y\",     \n";
		$tmp.= "button         :    \"icon_$nombre_elem\",  \n";
		$tmp.= "firstDay			: 1, \n";
		$tmp.= "showsTime      :     false\n";
		$tmp.= ",dateStatusFunc :    function (date) { \n";
		$tmp.=" document.getElementById('$nombre_elem').focus(); ";
		//$tmp.=" alert('ola'); ";
		$tmp.= "	return (date.getDay() == 6 || date.getDay() == 0) ? true : false; }		\n";
		$tmp.= "});		\n";
		$tmp.= "</script>\n";
		return $tmp;

}

function campoformulario ($nombreobj,$label,$ancho,$valor,$clase,$protegido="",$tipo='TEXTO',$numcaracteres=999,$js='') {
		global $camposhidden;
		$tmp2="";
		$tmp="";
		if ($protegido && $protegido!=0) { 
			$tmp2="disabled='disabled'";
			$camposhidden.=campohidden($nombreobj,$valor);
		}
		if ($label) {
			$tmp= "<label class='spformLabel'>$label</label>\n";			
		} 		
		switch($tipo) {
			case 'TEXTO':
				$tmp.=  "	<input type='text' prefix='aaa' class='$clase' $tmp2 value='$valor' size='$ancho' id='$nombreobj' name='$nombreobj' >\n";
				$tmp.=  "<br />\n";		
				break;
			case 'AREA':				
				$tmp.="<textarea name='$nombreobj' id='$nombreobj' rows='3' cols='$ancho' class='$clase' $tmp2>$valor</textarea>\n";
				$tmp.=  "<br />\n";					
				break;
			case 'PASSW':
				$tmp.=  "	<input type='password' class='$clase' $tmp2 value='$valor' size='$ancho' id='$nombreobj' name='$nombreobj' >\n";
				$tmp.=  "<br />\n";				
				break;
			case 'CALEN':
				
				//requiere tener cargado:
				//<script type="text/javascript" src="ajaxlib/spcal/src/calendar.js"></script>
				//<script type="text/javascript" src="ajaxlib/spcal/lang/calendar-es.js"></script>
				
				// spformMask=\"00-00-00\"  (la mascara por alguna razon no funciona.
				$tmp.=  "	<input type='text' id='$nombreobj' class='$clase ' $tmp2 value='$valor' size='$ancho' name='$nombreobj' id='$nombreobj' >\n";
				if (!$protegido) {
					$tmp.= "<img alt='Calendario' src='ajaxlib/spcal/themes/icons/calendar2.gif' border='0' id='icon_$nombreobj'  onmouseover=\"this.style.cursor='pointer'\" onmouseout=\"this.style.cursor='default'\">\n";
				}
				$tmp.=  "<br />\n";	
				$tmp.=javascriptcalendario($nombreobj);
				break;
			default:
				$tmp="error text_generic";
				break;
		}		
	return $tmp;
}

	
	
function campocombo($nombreobj,$label,$ancho,$valor,$arreglo,$clase,$protegido="",&$oculto="") {
	// el arreglo tiene la forma de:
	// valor,texto
	// donde el arreglo(0) puede ser "" y el arreglo(1) puede ser "seleccione valor" (los valores por defecto.
	$tmp2="";
	$tmp="";
	/* clase
	spformRequired = requerido
	spformNoRequired = no requerido ni tampoco se muestra iconos de control.
	(vacio) = no requerido.
	
	spformAllowed-w =alfanumeric
	spformAllowed-sw=alfanumerico con espacio
	spformAllowed-d=numerico sin signos.
	spformAllowedChars=0-9,.-=numericos con signos
	
	
	
	*/
	switch ($clase) {
		case "alfanumerico":
			$clase="spformAllowed-w";
		
	}
	if ($protegido && $protegido!=0) { 
		$tmp2="disabled='disabled'";
		$oculto.=campohidden($nombreobj,$valor);
	}
	if ($label) {
		$tmp= "<label class='spformLabel'>$label</label>\n";	
	}
	$tmp.="<select name='$nombreobj' id='$nombreobj' class='$clase' $tmp2>";
	for ($i=0;$i<count($arreglo);$i=$i+2) {
		if ($valor==$arreglo[$i]) {
			$tmp.= "<option value='".$arreglo[$i]."' selected>".$arreglo[$i+1]."</option>\n";
		} else {
			$tmp.= "<option value='".$arreglo[$i]."'>".$arreglo[$i+1]."</option>\n";
		}			
	}
	$tmp.="</select>\n";
	if ($ancho>=0) {
		$tmp.=  "<br />\n";
	}
	return $tmp;
}
function campocomboext($nombreobj,$label,$ancho,$valor,$arreglo,$clase,$web,$tipo,$protegido="",&$oculto="") {
	// el arreglo tiene la forma de:
	// valor,texto
	// donde el arreglo(0) puede ser "" y el arreglo(1) puede ser "seleccione valor" (los valores por defecto.
	$tmp2="";
	$tmp="";
	if ($protegido && $protegido!=0) { 
		$tmp2="disabled='disabled'";
		$oculto.=campohidden($nombreobj,$valor);
	}
	if ($label) {
		$tmp= "<label class='spformLabel'>$label</label>\n";	
	}
	$tmp.="<select name='$nombreobj' id='$nombreobj' class='$clase' $tmp2>";
	for ($i=0;$i<count($arreglo);$i=$i+2) {
		if ($valor==$arreglo[$i]) {
			$tmp.= "<option value='".$arreglo[$i]."' selected>".$arreglo[$i+1]."</option>\n";
		} else {
			$tmp.= "<option value='".$arreglo[$i]."'>".$arreglo[$i+1]."</option>\n";
		}			
	}
	$tmp.="</select>\n";
	$js="window.open('$web?tipo=$tipo','mywindow','status=1,width=450,height=350');";
	
	$tmp.="<img src='images/ico/File Documents Add_2.gif' ";
		$tmp.="	onmouseover=\"this.style.cursor='pointer'\" onmouseout=\"this.style.cursor='default'\" ";
		$tmp.=" onclick=\"javascript:$js  \"   >";
	if ($ancho>=0) {
		$tmp.=  "<br />\n";
	}
	return $tmp;
}
	
function campohidden($nombrecontrol,$valordefecto) {
		$tmp="";
		$tmp.="<input type='hidden' id='$nombrecontrol' name='$nombrecontrol' value='$valordefecto' class='spformNoRequired'>";
		return $tmp;
	}	

function campofile($nombrecontrol,$label,$ancho,$valor,$clase,$protegido="") {
		$tmp="";
		if ($protegido) {
			$tmp=campostatic($label,$valor);
		} else {
			$tmp= "<label class='spformLabel'>$label</label>\n";	
			$tmp.="<input type='file'  name='$nombrecontrol'  size='$ancho' class='$clase'>";
		}
		return $tmp;
}	

function campocheck($nombreobj,$label,$ancho,$valor,$clase,$protegido="",&$oculto="") {
	$tmp2="";
	$tmp="";
	if ($protegido && $protegido!=0) { 
		$tmp2="disabled='disabled'";
		$oculto.=campohidden($nombreobj,$valor);
	}	
	if ($label) {
		$tmp= "<label class='spformLabel'>$label</label>\n";	
	}	
	if ($valor) {
		$tmp.="<input type='checkbox' class='$clase' name='$nombreobj' value='1' checked $tmp2>";
	} else {
		$tmp.="<input type='checkbox' class='$clase' name='$nombreobj' value='1' $tmp2>";
	}
	$tmp.=  "<br />\n";	
	return $tmp;
}		


	
	

	function campostatic($label,$valor,$ancho=45) {
		//
		$tmp="";
		$tmp= "<label class='spformLabel'>$label</label>\n";	

		$tmp.=  "	<input type='text' value='$valor' size='$ancho' disabled='disabled' ><br />\n";
		//$tmp= "$valor bbbbb<br>\n";	
		return $tmp;
	}			
	function campolink($label,$valor,$link) {
		//
		$tmp="";
		//$tmp= "<label class='spformLabel'>$label</label>\n";	
		$tmp= "<label class='spformLabel'>$label</label> <span width='74' style='-moz-user-select:";
		$tmp.="none;' class='spformInternalEl zpStatusImg'>";
		$tmp.="<span style='-moz-user-select: none;' class='spformInternalEl'></span>";
		$tmp.="<span style='-moz-user-select: none;' class='spformInternalEl'></span>";
		$tmp.="<span style='-moz-user-select: none;' class='spformInternalEl'></span>";
		$tmp.="<span style='-moz-user-select: none;' class='spformInternalEl'></span>";
		$tmp.="</span>\n";	
		//$tmp.=  "<a href='$link' class='spformRequired'>$valor</a><br />\n";

		
		$tmp.=  "	<a href='$link' >$valor";
		$tmp.="<img src='images/file.gif' width='20' height='20' border='0'></a><br />\n";
		
		return $tmp;
	}		
	function campobotongrafico($nombrecontrol,$label,$img,$js="",$protegido=0) {
	$tmp="";

	$tmp.="<p align=center><img  id='img_$nombrecontrol' src='$img'";
	$tmp.=" onmouseover=\"this.style.cursor='pointer'\" onmouseout=\"this.style.cursor='default'\"   onclick=\"javascript:$js  \" ";
	$tmp.=">";
	if ($label=='') {
		$label="&nbsp;";
	} 			
		$tmp.= "<br><label id='$nombrecontrol' class='etiquetaboton'>$label</label></p>\n";			
	
	return $tmp;
	}

	
	function mostrarformulario($titulo,$leyenda,$descripcion,$campos,$camposhidden,$boton,$numform=1,$resultado="",$resultadohtm="",$extracampo="",$tabbed=0) {
		$columnas=count($campos);
		$pcolumnas=floor(100/$columnas);
		$tmp="";
		$camposhidden.="<input type='hidden' name='boton_tag' id='boton_tag' value='0'>";

		if ($titulo) {
			$tmp.= "<div class='zpCalSubHeader'  style='text-align:center; '>$titulo</div>\n";
		}
		$tmp.= "$descripcion\n";
		$tmp.= "<form  name='userData' id='userform$numform' method='GET' style='text-align:left; margin: 0px; padding: 0px;' enctype='multipart/form-data'>\n<br>";		
	
		$tmp.= "<div id='erroutput$numform' class='erroutput'></div>\n";		
		$tmp.= "<div class='spformContent' width=200  >\n";
		if ($extracampo) {
			// ec.
			
			$tmp.= "<div class='tabber'>\n";
			$tmp.= "     <div class='tabbertab'>\n";
			$tmp.= "	  <h2>$leyenda</h2>\n";
		} else {			
			$tmp.= "	<fieldset  width=300 >\n";
			$tmp.= "		<legend>$leyenda</legend>\n";
		}
		if ($columnas>1) {
			$tmp.="<table width=92% border=0 style='padding: 0px 0px 0px 0px;'><tr>";
			for ($e=0;$e<$columnas;$e++) {
				$tmp.="<td width='".$pcolumnas."%' valign='top'>".$campos[$e]."</td>";
			}
			$tmp.="</tr></table>";
		} else {
			$tmp.=$campos;
		}
							
		if ($extracampo) {
			// los campos extras.
			$tmp.= "</div>";			
			for ($i=0;$i<count($extracampo)/2;$i++) {			
				$columnas=count($extracampo[$i]);
				$pcolumnas=floor(100/$columnas);	
				$tmp.= "     <div class='tabbertab'>\n";
				$tmp.= "	  <h2>".$extracampo["titulo$i"]."</h2>\n";
				if ($columnas>1) {
					$tmp.="<table width=92% border=0 style='padding: 0px 0px 0px 0px;'><tr>";
					for ($e=0;$e<$columnas;$e++) {
						$tmp.="<td width='".$pcolumnas."%' valign='top'>".$extracampo[$i][$e]."</td>";
					}
					$tmp.="</tr></table>";
				} else {
					$tmp.="<p>".$extracampo[$i]."</p>";
				}		
				
				$tmp.= "</div>"; // ultimo tab
				}
		} else {
			$tmp.= "	</fieldset>\n";	
		}
			
		if ($extracampo) {
			// ec. FINALIZAMOS			
			$tmp.= "</div>		\n"; // DIV MAYOR
		}
		
		$tmp.= "<div class='spformButtons'>";
		for ($i=0;$i<count($boton);$i+=3) {
			$js_tmp="document.getElementById('boton_tag').value='".$boton[$i+1]."';";
			$tmp.= "<input value='".$boton[$i]."' name='boton'  type='submit' class='button' onclick=\"$js_tmp".$boton[$i+2]."\" >"; 
		}
		$tmp.= "</div>";		// spformbutton
		$tmp.= "</div>\n"; // spformcontent
		
		    
		$tmp.="<div id='campoocultos$numform' style=' width:0px; height:0px; background-color:#f0FF33;'></div>\n";
		//$tmp.=$camposhidden;  
		
		if ($resultado) {
			$tmp.= "	<fieldset width=300 >\n";
			$tmp.= "		<legend>$resultado</legend>\n";

			$tmp.=$resultadohtm;
			$tmp.= "	</fieldset>\n";		
		} else {
			if ($resultadohtm) {
				$tmp.=$resultadohtm;
			}
		}
		
		$tmp.="<br>";
		
		$tmp.= "</form>\n";
		$tmp.= "<script type=\"text/javascript\">\n";
		$tmp.= "function testerroutput$numform(objErrors){\n";
		$tmp.= "	var message = objErrors.generalError + '**<br />';	\n";
		$tmp.= "	if (objErrors.fieldErrors) {\n";
		$tmp.= "		for (var ii = 0; ii < objErrors.fieldErrors.length; ii++)\n";
		$tmp.= "				message += (ii + 1) + ': Field \"' + objErrors.fieldErrors[ii].field.name + '\" ' + objErrors.fieldErrors[ii].errorMessage + \"<br />\";\n";
		$tmp.= "	}	\n";
		$tmp.= "	var outputDiv = document.getElementById(\"erroutput$numform\");\n";
		$tmp.= "	if(outputDiv != null){\n";
		$tmp.= "		outputDiv.innerHTML = message;\n";
		$tmp.= "		outputDiv.style.display = \"block\";\n";
		$tmp.= "	}\n";
		$tmp.= "}\n";
		$tmp.= "var spform=new southprojects.Form({\n";
		$tmp.= "	form: 'userform$numform',\n";
		$tmp.= "	showErrors: 'tooltip',\n";
		//$tmp.= "	showErrors: 'beforeField',\n";
		
		$tmp.= "	showErrorsOnSubmit: true,\n";
		$tmp.= "	submitErrorFunc: testerroutput$numform,\n";
		$tmp.= "	theme: \"WinXP2\"\n";
		$tmp.= "});\n";
		$tmp.= "document.getElementById('campoocultos$numform').innerHTML=\"$camposhidden\";";
		$tmp.= "</script>\n";

		
		
		

		
		
		
		
		
		
		
		return $tmp;
	}
	function headerform($withbrackets) {
		// esto va en el header de la pagina web.
	
	$tmp="";
	if ($withbrackets) {	$tmp.="<header>"; }
	$tmp.=  "<!-- Common JS files -->\n";
	$tmp.=  "<script type='text/javascript' src='ajaxlib/utils/southprojects.js'></script>\n";
	$tmp.=  "<script type=\"text/javascript\" src=\"ajaxlib/sptabs/src/sptabs.js\"></script>\n";
	$tmp.=  "<!-- Custom includes -->	\n";
	$tmp.=  "<script type='text/javascript' src='ajaxlib/spform/src/form.js'></script>\n";
	$tmp.=  "<script type='text/javascript' src='ajaxlib/sptree/src/tree.js'></script>\n";
	$tmp.=  "<script type=\"text/javascript\" src=\"ajaxlib/spcal/src/calendar.js\"></script>\n";
	$tmp.=  "<script type=\"text/javascript\" src=\"ajaxlib/spcal/lang/calendar-es.js\"></script>\n";
	$tmp.=  "<!-- Theme css -->\n";
	$tmp.=  "<link href=\"ajaxlib/spcal/themes/fancyblue.css\" rel=\"stylesheet\" type=\"text/css\"> <!-- calendario  -->\n";
	$tmp.=  "<link href=\"ajaxlib/spform/themes/winxp2.css\" rel=\"stylesheet\" type=\"text/css\">\n";
	if ($withbrackets) {	$tmp.="</header>"; }
	return $tmp;
	}	
	function mensajeformulario($titulo,$icon,$descripcion,$numform=2) {
		$tmp="";
		

		$tmp.= "<form  name='userData' id='userform$numform' method='GET' style='text-align:left; margin: 0px; padding: 0px;' enctype='multipart/form-data'>\n<br>";		
	
		$tmp.= "<div id='erroutput$numform' class='erroutput'></div>\n";		
		$tmp.= "<div class='spformContent'  width=200>\n";
		$tmp.= "<p align='center' style='line-height:100%; margin-top:0; margin-bottom:0;'>$titulo</p>";
		$tmp.= "<p align='center' style='line-height:100%; margin-top:0; margin-bottom:0;'><img src='$icon'  border='0'></p>";
		$tmp.= "<p align='center' style='line-height:100%; margin-top:0; margin-bottom:0;'>$descripcion</p>";
		$tmp.= "</div>\n"; // spformcontent
		$tmp.="<br>";
		
		$tmp.= "</form>\n";
		$tmp.= "<script type=\"text/javascript\">\n";
		$tmp.= "function testerroutput$numform(objErrors){\n";
		$tmp.= "	var message = objErrors.generalError + '**<br />';	\n";
		$tmp.= "	if (objErrors.fieldErrors) {\n";
		$tmp.= "		for (var ii = 0; ii < objErrors.fieldErrors.length; ii++)\n";
		$tmp.= "				message += (ii + 1) + ': Field \"' + objErrors.fieldErrors[ii].field.name + '\" ' + objErrors.fieldErrors[ii].errorMessage + \"<br />\";\n";
		$tmp.= "	}	\n";
		$tmp.= "	var outputDiv = document.getElementById(\"erroutput$numform\");\n";
		$tmp.= "	if(outputDiv != null){\n";
		$tmp.= "		outputDiv.innerHTML = message;\n";
		$tmp.= "		outputDiv.style.display = \"block\";\n";
		$tmp.= "	}\n";
		$tmp.= "}\n";
		$tmp.= "var spform=new southprojects.Form({\n";
		$tmp.= "	form: 'userform$numform',\n";
		$tmp.= "	showErrors: 'tooltip',\n";
		//$tmp.= "	showErrors: 'beforeField',\n";
		
		$tmp.= "	showErrorsOnSubmit: true,\n";
		$tmp.= "	submitErrorFunc: testerroutput$numform,\n";
		$tmp.= "	theme: \"WinXP2\"\n";
		$tmp.= "});\n";
		$tmp.= "</script>\n";

		
		
		

		
		
		
		
		
		
		
		return $tmp;
	}
?>