<?php

function redondeado ($numero, $decimales) {
   $factor = pow(10, $decimales);
   return (round($numero*$factor)/$factor); }

function reemplazar_parentesis($cadena) {
	
	return $cadena;
}
function limitaCaracteres($cadena,$limite) {
	
	if (strlen($cadena)>$limite) {
		$cadena = substr($cadena,0,$limite);
		$cadena .= "...";
	}
	else {$cadena = $cadena;}
	
	return $cadena;
}

function filtro_buscador($cadena){
	// cambiar target por clase para enlaces externos
	$cadena = stripslashes($cadena);
	$cadena=strip_tags($cadena);
	$cadena=html_entity_decode($cadena);
	$cadena=strtolower($cadena);
	$cadena = ereg_replace("á|à|â", "a", $cadena);
	$cadena = ereg_replace("é|è|ê", "e", $cadena);
	$cadena = ereg_replace("í|ì|î", "i", $cadena);
	$cadena = ereg_replace("ó|ò|ô", "o", $cadena);
	$cadena = ereg_replace("ú|ù|û|ü", "u", $cadena);
	$cadena = ereg_replace("&rsquo;", "'", $cadena);

	return $cadena;
}

function limpia_cadena_html($cadena) {

$cadena=eregi_replace( '(<font [^<]*>)', '', $cadena );
$cadena=eregi_replace( '(<font>)', '', $cadena );
$cadena=eregi_replace( '</font>', '', $cadena );

$cadena=eregi_replace( '(<span [^<]*>)', '', $cadena );
$cadena=eregi_replace( '(<span>)', '', $cadena );
$cadena=eregi_replace( '</span>', '', $cadena );

$cadena=eregi_replace( '(<p [^<]*>)', '', $cadena );
$cadena=eregi_replace( '(<p>)', '', $cadena );
$cadena=eregi_replace( '</p>', '', $cadena );

$cadena=eregi_replace( '(<div [^<]*>)', '', $cadena );
$cadena=eregi_replace( '(<div>)', '', $cadena );
$cadena=eregi_replace( '</div>', '', $cadena );

return $cadena;
}

function filtro_xhtml($cadena){
	//Paso todas las etiquetas a minusculas
//	$cadena=strtolower( '(< [^<]*>)', '', $cadena );
	// cambiar target por clase para enlaces externos
	$cadena=eregi_replace( 'target="_blank"', 'rel="external"', $cadena );
	// sustituir subrayado
	$cadena=eregi_replace( '<u>', '<span style="text-decoration:underline;">', $cadena );
	$cadena=eregi_replace( '</u>', '</span>', $cadena );

	// parrafos centrados
	$cadena=eregi_replace( 'align="center"', 'class="centrar"', $cadena );
	// parrafos justificados
	$cadena=eregi_replace( 'align="justify"', 'class="justificar"', $cadena );
	// parrafos derecha
	$cadena=eregi_replace( 'align="right"', 'class="derecha"', $cadena );
	// eliminamos el align nada de las tablas y summary
	$cadena=eregi_replace( 'align=""', '', $cadena );
	$cadena=eregi_replace( 'summary=""', '', $cadena );
	$cadena=eregi_replace( 'border="0"', 'style="border: 0;"', $cadena );

	// parrafo izquierda
	$cadena=eregi_replace( '<p align="left">', '<p>', $cadena );
	$cadena=eregi_replace( 'align="middle"', '', $cadena );
	// parrafos centrados
	$cadena=eregi_replace( 'align="left"', 'class="izquierda"', $cadena );
	//eliminar etiquetas font
	$cadena=eregi_replace( '(<font [^<]*>)', '', $cadena );
	$cadena=eregi_replace( '</font>', '', $cadena );

	//eliminar Atributos ancho width
//	$cadena=eregi_replace( '(width[^<]*"[^<]*")', '', $cadena );
//	$cadena=eregi_replace( '(width:[^<]*;)', '', $cadena );

	// colocar contenido en etiquetas alt para las imagenes
	$cadena=eregi_replace( 'alt=""', 'alt="Imagen de Contenido"', $cadena );
	// limpiar basura del word
	$cadena=eregi_replace( '<o:p>', '', $cadena );
	$cadena=eregi_replace( '</o:p>', '', $cadena );

	$cadena=eregi_replace( '(<st1:[^<]*>)', '', $cadena );
	$cadena=eregi_replace( '(</st1:[^<]*>)', '', $cadena );

	$cadena=eregi_replace( '(<span[^<]*>)', '', $cadena );
	$cadena=eregi_replace( '</span>', '', $cadena );



	return $cadena;
}

function filtro_url($cadena) {
$cadena = strtolower($cadena);
$cadena = eregi_replace( '\(', '', $cadena);
$cadena = eregi_replace( '\)', '', $cadena);
$cadena = eregi_replace( '\/', '', $cadena);
$cadena = eregi_replace( 'ñ', 'n', $cadena);
$cadena = eregi_replace( 'Ñ', 'N', $cadena);
$cadena = eregi_replace( ',', '.', $cadena);
$cadena = eregi_replace( '\.', '', $cadena);
$cadena = eregi_replace( 'ã³', 'o', $cadena);
$cadena = eregi_replace( 'cã©', 'e', $cadena);
$cadena = eregi_replace( 'ã©', 'e', $cadena);
$cadena = eregi_replace( '\+', '', $cadena);
$cadena = eregi_replace( '\&', '', $cadena);
$cadena = eregi_replace( ':', '', $cadena);
$cadena = trim($cadena);
$cadena = eregi_replace( ' ', '-', $cadena);
$cadena = strtr($cadena,"áéíóúÁÉÍÓÚ","aeiouAEIOU");

return $cadena;
}


function cambia_fecha($fecha){
	sscanf($fecha, "%4s-%2s-%2s %2s:%2s:%2s", $y, $mo, $d, $h, $mi, $s);
	return $d.'/'.$mo.'/'.$y;
}

function cambia_a_mysql($fecha){
	sscanf($fecha, "%2s/%2s/%4s", $d, $mo, $y);
	return $y.'-'.$mo.'-'.$d;
}

function cambia_fecha_y_hora($fecha){
	sscanf($fecha, "%2s/%2s/%4s %2s:%2s:%2s", $d, $mo, $y, $h, $mi, $s);
	return $y.'-'.$mo.'-'.$d.' '.$h.':'.$mi.':'.$s;
}

function cambia_fecha_cas($time){
	ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
	$ano=$datetime[1]+0;
	$mes=$datetime[2]+0;
	$dia=$datetime[3]+0;
	$hora=$datetime[4]+0;
	$min=$datetime[5]+0;
	$longitud=strlen($min);
	if ($longitud == 1) $min="0".$min;
	$segs=$datetime[6]+0;
	$longitud=strlen($segs);
	if ($longitud == 1) $segs="0".$segs;
	$quedia= strftime ("%w", mktime($hora,$min,$segs,$mes,$dia,$ano));
	switch($quedia) {
		case 0:
		$quedia="Domingo";
		break;
		case 1:
		$quedia="Lunes";
		break;
		case 2:
		$quedia="Martes";
		break;
		case 3:
		$quedia="Miércoles";
		break;
		case 4:
		$quedia="Jueves";
		break;
		case 5:
		$quedia="Viernes";
		break;
		case 6:
		$quedia="Sábado";
		break;
	}
	switch($mes) {
		case 1:
		$mes="Enero";
		break;
		case 2:
		$mes="Febrero";
		break;
		case 3:
		$mes="Marzo";
		break;
		case 4:
		$mes="Abril";
		break;
		case 5:
		$mes="Mayo";
		break;
		case 6:
		$mes="Junio";
		break;
		case 7:
		$mes="Julio";
		break;
		case 8:
		$mes="Agosto";
		break;
		case 9:
		$mes="Septiembre";
		break;
		case 10:
		$mes="Octubre";
		break;
		case 11:
		$mes="Noviembre";
		break;
		case 12:
		$mes="Diciembre";
		break;
	}
	$datetime = "$quedia, $dia de $mes del $ano";
	return($datetime);
}
function cambia_fecha_val($time){
	ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
	$ano=$datetime[1]+0;
	$mes=$datetime[2]+0;
	$dia=$datetime[3]+0;
	$hora=$datetime[4]+0;
	$min=$datetime[5]+0;
	$longitud=strlen($min);
	if ($longitud == 1) $min="0".$min;
	$segs=$datetime[6]+0;
	$longitud=strlen($segs);
	if ($longitud == 1) $segs="0".$segs;
	$quedia= strftime ("%w", mktime($hora,$min,$segs,$mes,$dia,$ano));
	switch($quedia) {
		case 0:
		$quedia="Diumenge";
		break;
		case 1:
		$quedia="Dilluns";
		break;
		case 2:
		$quedia="Dimarts";
		break;
		case 3:
		$quedia="Dimecres";
		break;
		case 4:
		$quedia="Dijous";
		break;
		case 5:
		$quedia="Divendres";
		break;
		case 6:
		$quedia="Dissabte";
		break;
	}
	switch($mes) {
		case 1:
		$mes="Gener";
		break;
		case 2:
		$mes="Febrer";
		break;
		case 3:
		$mes="Març";
		break;
		case 4:
		$mes="Abril";
		break;
		case 5:
		$mes="Maig";
		break;
		case 6:
		$mes="Juny";
		break;
		case 7:
		$mes="Juliol";
		break;
		case 8:
		$mes="Agost";
		break;
		case 9:
		$mes="Setembre";
		break;
		case 10:
		$mes="Octubre";
		break;
		case 11:
		$mes="Novembre";
		break;
		case 12:
		$mes="Desembre";
		break;
	}
	$datetime = "$quedia, $dia de $mes del $ano";
	return($datetime);
}
function calcula_numero_dia_semana($dia,$mes,$ano){
	$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
	if ($numerodiasemana == 0)
	$numerodiasemana = 6;
	else
	$numerodiasemana--;
	return $numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano){
	$ultimo_dia=28;
	while (checkdate($mes,$ultimo_dia + 1,$ano)){
		$ultimo_dia++;
	}
	return $ultimo_dia;
}


function dame_nombre_mes($mes,$idioma){
	
	if ($idioma=="") {$idioma = 1;}
	
	if ($idioma==1) {
	switch ($mes){
		case 1:
		$nombre_mes="Enero";
		break;
		case 2:
		$nombre_mes="Febrero";
		break;
		case 3:
		$nombre_mes="Marzo";
		break;
		case 4:
		$nombre_mes="Abril";
		break;
		case 5:
		$nombre_mes="Mayo";
		break;
		case 6:
		$nombre_mes="Junio";
		break;
		case 7:
		$nombre_mes="Julio";
		break;
		case 8:
		$nombre_mes="Agosto";
		break;
		case 9:
		$nombre_mes="Septiembre";
		break;
		case 10:
		$nombre_mes="Octubre";
		break;
		case 11:
		$nombre_mes="Noviembre";
		break;
		case 12:
		$nombre_mes="Diciembre";
		break;
	}
	
	}
	elseif ($idioma==2) {
			switch ($mes){
		case 1:
		$nombre_mes="January";
		break;
		case 2:
		$nombre_mes="February";
		break;
		case 3:
		$nombre_mes="March";
		break;
		case 4:
		$nombre_mes="April";
		break;
		case 5:
		$nombre_mes="May";
		break;
		case 6:
		$nombre_mes="June";
		break;
		case 7:
		$nombre_mes="July";
		break;
		case 8:
		$nombre_mes="August";
		break;
		case 9:
		$nombre_mes="September";
		break;
		case 10:
		$nombre_mes="October";
		break;
		case 11:
		$nombre_mes="November";
		break;
		case 12:
		$nombre_mes="December";
		break;
	}
	}
	elseif ($idioma==3) {
			switch ($mes){
		case 1:
		$nombre_mes="Janvier";
		break;
		case 2:
		$nombre_mes="Février";
		break;
		case 3:
		$nombre_mes="Mars";
		break;
		case 4:
		$nombre_mes="Avril";
		break;
		case 5:
		$nombre_mes="Mai";
		break;
		case 6:
		$nombre_mes="Juin";
		break;
		case 7:
		$nombre_mes="Juillet";
		break;
		case 8:
		$nombre_mes="Août";
		break;
		case 9:
		$nombre_mes="Septembre";
		break;
		case 10:
		$nombre_mes="Octobre";
		break;
		case 11:
		$nombre_mes="Novembre";
		break;
		case 12:
		$nombre_mes="Décembre";
		break;
	}
	}
	return $nombre_mes;
}


function dame_nombre_mes_cas($mes){
	switch ($mes){
		case 1:
		$nombre_mes="Enero";
		break;
		case 2:
		$nombre_mes="Febrero";
		break;
		case 3:
		$nombre_mes="Marzo";
		break;
		case 4:
		$nombre_mes="Abril";
		break;
		case 5:
		$nombre_mes="Mayo";
		break;
		case 6:
		$nombre_mes="Junio";
		break;
		case 7:
		$nombre_mes="Julio";
		break;
		case 8:
		$nombre_mes="Agosto";
		break;
		case 9:
		$nombre_mes="Septiembre";
		break;
		case 10:
		$nombre_mes="Octubre";
		break;
		case 11:
		$nombre_mes="Noviembre";
		break;
		case 12:
		$nombre_mes="Diciembre";
		break;
	}
	return $nombre_mes;
}

function dame_nombre_mes_en($mes){
	switch ($mes){
		case 1:
		$nombre_mes="January";
		break;
		case 2:
		$nombre_mes="February";
		break;
		case 3:
		$nombre_mes="March";
		break;
		case 4:
		$nombre_mes="April";
		break;
		case 5:
		$nombre_mes="May";
		break;
		case 6:
		$nombre_mes="June";
		break;
		case 7:
		$nombre_mes="July";
		break;
		case 8:
		$nombre_mes="August";
		break;
		case 9:
		$nombre_mes="September";
		break;
		case 10:
		$nombre_mes="October";
		break;
		case 11:
		$nombre_mes="November";
		break;
		case 12:
		$nombre_mes="December";
		break;
	}
	return $nombre_mes;
}

function dame_nombre_mes_val($mes){
	switch($mes) {
		case 1:
		$nombre_mes="Gener";
		break;
		case 2:
		$nombre_mes="Febrer";
		break;
		case 3:
		$nombre_mes="Març";
		break;
		case 4:
		$nombre_mes="Abril";
		break;
		case 5:
		$nombre_mes="Maig";
		break;
		case 6:
		$nombre_mes="Juny";
		break;
		case 7:
		$nombre_mes="Juliol";
		break;
		case 8:
		$nombre_mes="Agost";
		break;
		case 9:
		$nombre_mes="Setembre";
		break;
		case 10:
		$nombre_mes="Octubre";
		break;
		case 11:
		$nombre_mes="Novembre";
		break;
		case 12:
		$nombre_mes="Desembre";
		break;
	}
	return $nombre_mes;
}

 //asignar letra a numero
  function dame_letra($numero) {
global $letra;
  	switch ($numero) {
  		case 1:
  		$letra = "A";
  		break;
  		case 2:
  		$letra = "B";
  		break;
  		case 3:
  		$letra = "C";
  		break;
  		case 4:
  		$letra = "D";
  		break;
  		case 5:
  		$letra = "E";
  		break;
  		case 6:
  		$letra = "F";
  		break;
  		case 7:
  		$letra = "G";
  		break;
  		case 8:
  		$letra = "H";
  		break;
  		case 9:
  		$letra = "I";
  		break;
  		case 10:
  		$letra = "J";
  		break;
  		case 11:
  		$letra = "K";
  		break;
  		case 12:
  		$letra = "L";
  		break;
  		case 13:
  		$letra = "M";
  		break;
  		case 14:
  		$letra = "N";
  		break;
  		case 15:
  		$letra = "O";
  		break;
  		case 16:
  		$letra = "P";
  		break;
  		case 17:
  		$letra = "Q";
  		break;
  		case 18:
  		$letra = "R";
  		break;
  		case 19:
  		$letra = "S";
  		break;
  		case 20:
  		$letra = "T";
  		break;
  		case 21:
  		$letra = "U";
  		break;
  		case 22:
  		$letra = "V";
  		break;
  		case 23:
  		$letra = "W";
  		break;
  		case 24:
  		$letra = "X";
  		break;
  		case 25:
  		$letra = "Y";
  		break;
  		case 26:
  		$letra = "Z";
  		break;


  	}
  	return($letra);

  }

function quitaCeros($cadena) {
  	//comprobamos que al cortar por el . los 2 finales son ceros, si son ceros, los eliminamos
  	$datos = explode(".",$cadena);
  	if ($datos[1]==00) {
  		$cadena = $datos[0];
  	}
  	else {
  		$cadena = $cadena;
  	}
  	return $cadena;
  }
  
  function cambia_precio($precio) {
	//comprobamos si ha pasado el precio con decimales
	if (strpos($precio,",")) {
		//con coma
		$datos = explode(",",$precio);
		//echo "si";
		$precio = $datos[0];
		$coma = ",".$datos[1];
	}
	else {
		//sin coma
		$coma = "";
		$precio = $precio;
	}

	if (strpos($precio,".")) {
		//con punto.
		//echo "con .";
	}
	else {
		//sin punto
		//echo "sin .";
		$num_caracteres = strlen($precio);
		$num_puntos = floor($num_caracteres / 3);
$posicion = 0;
$sum = 7;
		for($i=0;$i<$num_puntos;$i++) {


			$punto = strpos($precio,".");



		if ($punto==null) {
			$precio = substr_replace($precio,".".substr($precio,-3),-3);

		}
		else {

			$posicion = $sum;

			if ($punto>3) {
				$sum = $sum + 3;

				$precio = substr_replace($precio,".".substr($precio,-($posicion)),-($posicion));

++$sum;
			}

		}







		}
	}

	return $precio;
}


//xml presupuestos
function CargarXML_PRECIOS($ruta_fichero)
{
$contenido = "";
if($da = fopen($ruta_fichero,"r"))
{
while ($aux= fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "Error: no se ha podido leer el archivo <strong>$ruta_fichero</strong>";
}


$tagnames = array ("precio","num_presup","num_potencial","condiciones","concepto","fecha_presup","hora_presup","fin_fecha_presup","fin_hora_presup");

if (!$xml = domxml_open_mem($contenido))
{
echo "Ha ocurrido un error al procesar el documento<strong> \"$ruta_fichero\"</strong> a XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();

$tam=sizeof($tagnames);

for($i=0; $i<$tam; $i++)
{
$nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
$j=0;
foreach ($nodo as $etiqueta)
{
$matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
$j++;
}
}

return $matriz;
}
}

   
    
   /* 
      dateAdd(int)
      Función que calcula una fecha futura según la cantidad de días que se le proporcionen como argumento
      Versión original en http://www.php.net
      Adaptación: Aoyama (LSCA. Israel E. García)
      Modificado por mi el 4/1/2008
   */
   function dateAdd($fecha_dada,$n_dias)
   {
   	//fecha dada vendrá en el formato aaaa-mm-dd
      /*
      $mes = date("m");
      $anio = date("Y");
      $dia = date("d");
      */
      $fecha_dada = explode("-",$fecha_dada);
      $mes = $fecha_dada[1];
      $anio = $fecha_dada[0];
      $dia = $fecha_dada[2];
      $ultimo_dia = date( "d", mktime(0, 0, 0, $mes + 1, 0, $anio) ) ;
      $dias_adelanto = $n_dias;
      $siguiente = $dia + $dias_adelanto;
      if ($ultimo_dia < $siguiente)
      {
         $dia_final = $siguiente - $ultimo_dia;
         $mes++;
         if ($mes == '13')
         {
            $anio++;
            $mes = '01';
         }
         $fecha_final = $dia_final.'/'.$mes.'/'.$anio;         
      }
      else
      {
         $fecha_final = $siguiente .'/'.$mes.'/'.$anio;         
      }
      return $fecha_final;
   }
   
   
   
function Lee_Tarifas($ruta_fichero)
{
$contenido = "";
if($da = fopen($ruta_fichero,"r"))
{
while ($aux= fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "Error: no se ha podido leer el archivo <strong>$ruta_fichero</strong>";
}


$tagnames = array ("cod_tarifa","nom_tarifa","con_tarifa");

if (!$xml = domxml_open_mem($contenido))
{
echo "Ha ocurrido un error al procesar el documento<strong> \"$ruta_fichero\"</strong> a XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();

$tam=sizeof($tagnames);

for($i=0; $i<$tam; $i++)
{
$nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
$j=0;
foreach ($nodo as $etiqueta)
{
$matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
$j++;
}
}

return $matriz;
}
}


function Lee_XML($ruta_fichero,$campos)
{
$contenido = "";
if($da = fopen($ruta_fichero,"r"))
{
while ($aux= fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "Error: no se ha podido leer el archivo <strong>$ruta_fichero</strong>";
}


//$tagnames = array ("cod_tarifa","nom_tarifa","con_tarifa");
$tagnames = explode(";",$campos);


if (!$xml = domxml_open_mem($contenido))
{
echo "Ha ocurrido un error al procesar el documento<strong> \"$ruta_fichero\"</strong> a XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();

$tam=sizeof($tagnames);

for($i=0; $i<$tam; $i++)
{
$nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
$j=0;
foreach ($nodo as $etiqueta)
{
$matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
$j++;
}
}

return $matriz;
}
}

function dame_provincia($cpostal) {
	
	//$cp = substr($cpostal,0,2);
	global $cid;
	
	$sql = "SELECT TOP 1 * FROM PROVINCIA WHERE CP='".$cpostal."'";
	$result=odbc_exec($cid,$sql)or die(exit("Error en odbc_exec"));
	while ($row = odbc_fetch_array($result)) {
		$provincia = $row['PROV'];
	}
	
	/*
	$sql = mysql_query("SELECT * FROM provincias_c WHERE siglas='$cp'");
	while ($row = mysql_fetch_array($sql)) {
				$provincia = $row['provincia'];
				
			}
			*/
			
			return $provincia;
	
}

  
   function RestarHoras($horaini,$horafin)
{
	$horai=substr($horaini,0,2);
	$mini=substr($horaini,3,2);
	$segi=substr($horaini,6,2);

	$horaf=substr($horafin,0,2);
	$minf=substr($horafin,3,2);
	$segf=substr($horafin,6,2);

	$ini=((($horai*60)*60)+($mini*60)+$segi);
	$fin=((($horaf*60)*60)+($minf*60)+$segf);

	$dif=$fin-$ini;

	$difh=floor($dif/3600);
	$difm=floor(($dif-($difh*3600))/60);
	$difs=$dif-($difm*60)-($difh*3600);
	//return date("H-i-s",mktime($difh,$difm,$difs));
	return date("H",mktime($difh));
	//return $difh;
}

?>