#!/usr/local/bin/php
<?php

// error_reporting(E_ALL); ini_set('display_errors', 1);

require("config.php") ;
require("precios.php") ;
require_once("/web/guide/dnet/php/funciones/funciones_comprobar_datos.inc");

// Switch between: lacaixa, banesto, banesto_servired & barclays
define("BANCO",	'sabadell');

// enable or disable banesto (pasarela antigua)
define("BANESTO",	False);


//////////////////////////////////////////////////////////////////////////////////////////////
//                  FUNCIONES DEL PROGRAMA
//////////////////////////////////////////////////////////////////////////////////////////////

function form_suplementos($servicio, $suf="", $dominio=0) {
	global $full_url ;
	$suple = TRUE;
	if ($servicio == 'alojamiento_registro' || $servicio == 'registro' ) {
		$data['MENSAJE'] = "&iexcl;Felicidades! El dominio $dominio est&aacute; disponible.";
	} else {
		$data['MENSAJE'] = '' ;
	}
	if ( $servicio == 'alojamiento' ) {
		$data['TABLA_DOMINIO'] = file_to_string("./tpl/tabla_dominio.tpl") ;
	} else {
		$data['TABLA_DOMINIO'] = '' ;
	}
	if ( $servicio != 'registro') {
		$select = "<INPUT TYPE='text' NAME='mb_adicionales' SIZE='3' VALUE=0 class='parragraph' id='bold'>";
		$lista[] = array( SUPLEMENTO => 'megabytes',
		        STRING => '<a href="#" onMouseOver="MM_showHideLayers(\'mbs\',\'\',\'show\')" onMouseOut="MM_showHideLayers(\'mbs\',\'\',\'hide\')" class="parragraph" id="bold">Megabytes adicionales</a>',
				SELECT => $select) ;
	}
	if ( $servicio != 'registro' && $servicio != 'espacio' ) {
		$select = "<INPUT TYPE='text' NAME='correo_adicional' SIZE='3' VALUE=0 class='parragraph' id='bold'>";
		$lista[] = array( SUPLEMENTO => 'correo',
				STRING => '<a href="#" onMouseOver="MM_showHideLayers(\'email\',\'\',\'show\')" onMouseOut="MM_showHideLayers(\'email\',\'\',\'hide\')" class="parragraph" id="bold">Cuentas de correo adicionales</a>',
				SELECT => $select) ;
	}
	//if ( $servicio != 'registro') {
	//	$form .= "<TR ALIGN='center'><TD><INPUT TYPE='checkbox' NAME='suplemento[]'
	//		VALUE='ftp_correo' class='parragraph' id='bold'>Cuenta de ftp y correo</TD><TD></TD></TR>\n" ;
	//}
	if ( $servicio != 'registro') {
		$lista[] = array( SUPLEMENTO => 'buscadores', STRING => '<a href="#" onMouseOver="MM_showHideLayers(\'busca\',\'\',\'show\')" onMouseOut="MM_showHideLayers(\'busca\',\'\',\'hide\')" class="parragraph" id="bold">Alta en m&aacute;s de 1600 buscadores</a>',
				SELECT => '&nbsp;' ) ;
	}

    if ( $servicio == 'registro' ) {
		$lista[] = array(STRING => 'No hay suplementos para este servicio');
		$suple = FALSE;
	}

  /*
	// Suplemento conexion
	$select = "<SELECT NAME='tipo_conexion' class='parragraph' id='bold'><OPTION SELECTED class='parragraph' id='bold'>modem</OPTION>"
				. "<OPTION class='parragraph' id='bold'>rdsi</OPTION></SELECT>" ;
	$lista[] = array( SUPLEMENTO => 'conexion', STRING => '<a href="#" onMouseOver="MM_showHideLayers(\'conec\',\'\',\'show\')" onMouseOut="MM_showHideLayers(\'conec\',\'\',\'hide\')" class="parragraph" id="bold">Cuenta de conexion</a>',
				SELECT => $select) ;
  */

	if ($dominio) {
		$hidden_fields = "<INPUT TYPE='hidden' NAME='dominio' VALUE='$dominio'>\n" ;
	}
	$hidden_fields .= "<INPUT TYPE='hidden' NAME='servicio' VALUE='$servicio'>\n" ;
	$data['HIDDEN_FIELDS'] = $hidden_fields ;
	$data['FULL_URL'] = $full_url ;
	$data['ENCABEZADO'] = file_to_string("./tpl/encabezado.tpl");
	$data['PIE'] = file_to_string("./tpl/pie.tpl") ;
 	if ( $suple ) {
		print_template_rows("suplementos.tpl", "suplementos_fila.tpl", $data, $lista) ;
	} else {
		print_template_rows("suplementos.tpl", "no_suplementos.tpl", $data, $lista) ;
	}

}

// Funcion para redondear los floats y dejar solo dos decimales
function my_round($value, $decimales=2) {
	if ($value == 0)
		return 0;
	//$conversion = pow(10, $decimales);
	if ($decimales == 2) {$conversion = 100;} else {$conversion = 1;}

	if ($valor >= 0) {
		$rounded = round ( $value * $conversion ) / $conversion ;
		list($parte_entera, $parte_decimal) = explode("." , $rounded) ;
		if ( !$parte_decimal && $decimales ) {
			$rounded .= '.' ;
			for ($i = 1 ; $i <= $decimales ; $i++) {
				$rounded .= '0' ;
			}
		} elseif ( strlen($parte_decimal) < $decimales ) {
			for ($i = strlen($parte_decimal) ; $i < $decimales ; $i++) {
				$rounded .= '0' ;
			}
		}
	} else {
		$rounded = round ( $value * $conversion ) / $conversion ;
		list($parte_entera, $parte_decimal) = explode("." , $rounded) ;
		if ( !$parte_decimal && $decimales ) {
			$rounded .= '.' ;
			for ($i = 1 ; $i <= $decimales ; $i++) {
				$rounded .= '0' ;
			}
		} elseif ( strlen($parte_decimal) < $decimales ) {
			for ($i = strlen($parte_decimal) ; $i <= $decimales ; $i++) {
				$rounded .= '0' ;
			}
		}
	}
	return $rounded;
}

// Funcion para generar un select con todos los paises de la base de datos
function select_paises($name,$suf,$default='spain') {

  $dbh = mysql_connect(HOST,USER,PASSWORD);
  mysql_select_db(DATABASE);
  $lista_paises="<select name='$name' class='parragraph' id='bold'>\n";

  if ( $suf == 'eu' ) {
    $sql_traer_paises = mysql_query("SELECT id, eu, pais_es FROM intl_paises WHERE eu='1' ORDER BY pais_es");
  } else {
    $sql_traer_paises = mysql_query("SELECT id, eu, pais_es FROM intl_paises ORDER BY pais_es");
  }

  while ( $pais=mysql_fetch_array($sql_traer_paises,MYSQL_ASSOC) ) {
    if ( $pais['eu'] ) {   // Para solucionar problema Netscape-Explorer
      $is_eu = '1' ;
    } else {
      $is_eu = '0' ;
    }
    $lista_paises .= "<option value='" . $pais['id'] . $is_eu . "'" ;
    if ( $default == $pais['id'] )
      $lista_paises .= " SELECTED " ;
    $lista_paises .= " class='parragraph' id='bold'>" . $pais['pais_es'] . "</option>\n";
    if ($pais['id'] == 'spain') {
      $lista_paises .= "
	<option value='spain_canarias0' class='parragraph' id='bold'>Espa&ntilde;a (Canarias)</option>
	<option value='spain_ceuta_melilla0' class='parragraph' id='bold'>Espa&ntilde;a (Ceuta, Melilla)</option>
        ";
    }
  }

  $lista_paises .="</select>";
  mysql_free_result($sql_traer_paises);
  mysql_close($dbh);

  return $lista_paises;
}

// Funcion que devuelve un string en castellano del pais seleccionado segun intl_paises
function pais_es($name) {
	if ($name == 'spain_canarias') {
		$pais_castellano = 'Espa&ntilde;a (Canarias)';
	}
	elseif ($name == 'spain_ceuta_melilla') {
		$pais_castellano = 'Espa&ntilde;a (Ceuta, Melilla)';
	}
	else {
		$dbh = mysql_connect(HOST,USER,PASSWORD);
		mysql_select_db(DATABASE);
		$result = mysql_query("SELECT pais_es FROM intl_paises WHERE id='$name' ");
		$pais = mysql_fetch_array($result,MYSQL_ASSOC) ;
		$pais_castellano = $pais['pais_es'] ;
		mysql_free_result($result);
		mysql_close($dbh);
	}
	return $pais_castellano;
}

// Funcion que devuelve un string con el codigo del pais segun intl_paises
function code_pa($name) {
	if ($name == 'spain_canarias') {
		$cc = 'ES';
	}
	elseif ($name == 'spain_ceuta_melilla') {
		$cc = 'ES';
	}
	else {
		$dbh = mysql_connect(HOST,USER,PASSWORD);
		mysql_select_db(DATABASE);
		$result = mysql_query("SELECT abreviatura FROM intl_paises WHERE id='$name' ");
		$pais = mysql_fetch_array($result,MYSQL_ASSOC) ;
		$cc = $pais['abreviatura'] ;
		mysql_free_result($result);
		mysql_close($dbh);
	}
	return $cc;
}


// Función que devuelve la moneda asociada al país seleccionado según intl_paises
function moneda_pais($country) {
	$dbh = mysql_connect(HOST,USER,PASSWORD);
	mysql_select_db(DATABASE);
	$result = mysql_query("SELECT intl_paises.moneda FROM intl_paises, intl_monedas
				WHERE intl_paises.id='$country'
				AND intl_paises.moneda=intl_monedas.id
				AND intl_monedas.cambio_eur is NOT NULL ");
	if ( mysql_num_rows($result) == 0 ) {
		return 'ESP' ; // Si no hay cambio_eur calcular en pesetas
	}
	$moneda_pais = mysql_fetch_array($result,MYSQL_ASSOC) ;
	$moneda = $moneda_pais['moneda'] ;
	mysql_free_result($result);
	mysql_close($dbh);
	return $moneda ;
}

// Función que devuelve el string asociado a un código de moneda
function string_moneda($moneda) {
	$dbh = mysql_connect(HOST,USER,PASSWORD);
	mysql_select_db(DATABASE);
	$result = mysql_query("SELECT moneda_es FROM intl_monedas WHERE id='$moneda' ") ;
	$moneda = mysql_fetch_array($result,MYSQL_ASSOC) ;
	$string = $moneda['moneda_es'] ;
	mysql_free_result($result);
	mysql_close($dbh);
	$array_string = explode('-', $string) ;
	if ( count($array_string) > 1 ) {
		$last_char = substr($array_string[1], -1) ;
		if ( $last_char == 'a' || $last_char == 'e' || $last_char == 'i'
				|| $last_char == 'o' || $last_char == 'u' ) {
			return $array_string[1] . 's' ;
		} else {
			return $array_string[1] . 'es' ;
		}
	} else {
		return $string ;
	}
}

function convertir($cantidad, $moneda) {
	$dbh = mysql_connect(HOST, USER, PASSWORD);
	mysql_select_db(DATABASE);
	// Obtener el tipo de cambio de la moneda de referencia en los precios (euros)
	//$result = mysql_query("SELECT cambio_eur FROM intl_monedas WHERE id='ESP' ");
	//$moneda_referencia = mysql_fetch_array($result, MYSQL_ASSOC) ;
	//mysql_free_result($result) ;
	# Obtener los diferentes tipos de cambio de las monedas
	$result = mysql_query("SELECT cambio_eur, decimales FROM intl_monedas
					WHERE id='$moneda' " ) ;
	$moneda = mysql_fetch_array($result, MYSQL_ASSOC) ;
	if (!$moneda)
		return 0 ;
	mysql_free_result($result) ;
	mysql_close($dbh) ;
	return my_round( $cantidad * (1 / $moneda['cambio_eur']), $moneda['decimales'] ) ;
}

// Función para generar un template
function print_template($file,$hash) {
	global $templates_dir, $templates_class ;
	include("$templates_class");
	$tpl = new rFastTemplate("$templates_dir") ;
	$tpl->define( array( template => "$file" ) ) ;
	while ( list($key, $value) = each($hash) ) {
		$tpl->assign( $key , $value );
	}
	$tpl->parse(TEMPLATE,"template");
	$tpl->FastPrint("TEMPLATE");
	exit;
}

// Función para generar un template con filas 	if ( count($hash2) != 1 ) {
// El segundo array contiene las filas y tiene 2 dimensiones
function print_template_rows($file1,$file2,$hash1,$hash2) {
	global $templates_dir, $templates_class ;
	include("$templates_class");
	$tpl = new rFastTemplate("$templates_dir");

	$tpl -> define(array(main => "$file1", row => "$file2"));

	while ( list($key,$value) = each($hash1) ) {
		$tpl->assign( $key , $value );
	}

	for ( $i=0 ; $i < count($hash2) ; $i++ ) {
		while ( list($key,$value) = each($hash2[$i]) ) {
			$tpl->assign( $key , $value );
		}
		$tpl->parse(ROWS,".row");
	}

	$tpl->parse(MAIN,"main");
	$tpl->FastPrint("MAIN");
	exit;
}

function error($mensaje) {
	print_template("error.tpl", array('MENSAJE' => $mensaje,
			'ENCABEZADO' => file_to_string("./tpl/encabezado.tpl"),
			'PIE' => file_to_string("./tpl/pie.tpl") ) ) ;
}

// Contenido del fichero a un string
function file_to_string($filename) {
	$fp = fopen( $filename, "r" );
	$contents = fread( $fp, filesize( $filename ) );
	fclose( $fp );
	return $contents ;
}

function check_email_mx($email) {
	if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) ||
    		(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) {
    	$host = explode('@', $email);
    	if(checkdnsrr($host[1].'.', 'MX') ) return true;
    	if(checkdnsrr($host[1].'.', 'A') ) return true;
    	if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
    }
	return false;
}

//////////////////////////////////////////////////////////////////////////////////////////////
//                  PRINCIPIO DEL PROGRAMA
//////////////////////////////////////////////////////////////////////////////////////////////

#  Mostrar primera pagina si no se han enviado datos
if (!$servicio) {
	print_template("principal.tpl", array( FULL_URL => $full_url,
			'ENCABEZADO' => file_to_string("./tpl/encabezado.tpl"),
			'PIE' => file_to_string("./tpl/pie.tpl") ) ) ;
} else {
	if ( $button1 ) {
		if ( $servicio == 'registro'  || $servicio == 'alojamiento_registro' ) {
			$data = array('FULL_URL' => $full_url, 'SERVICIO' => $servicio,
				'ENCABEZADO' => file_to_string("./tpl/encabezado.tpl"),
				'PIE' => file_to_string("./tpl/pie.tpl"),
				'MENSAJE' => '');
			print_template("whois.tpl", $data) ;
		} elseif ( $servicio == 'alojamiento' || $servicio == 'espacio') {
			form_suplementos($servicio);
		} else {
			header("Location: $full_url");
		}
	} elseif ( $consulta || $dominio_query ) {

		if ( $registro == 'registro' ) {
		  if ( ereg("\.eu$" , $dominio_query) ) {
		    $dominio_query = substr($dominio_query, 0, -3);
		  }
		  $sufijo	= 'eu';
		}
		if ( !$dominio_query ) {
			error("Debe especificar un nombre de dominio para consultar.") ;
		}

		require_once("validateQuery.php");

		/*
		if ( strlen($dominio_query) > 63 ) {
			error("Los nombres de dominio no pueden exceder los 63 caracteres.") ;
		}
		if ( strlen($dominio_query) < 3 ) {
			error("Los nombres de dominio deben tener al menos 3 caracteres.") ;
		}
		$dominio_query = strtolower(trim($dominio_query)) ;
		if ( preg_match("/\s/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden contener espacios.") ;
		}
		if ( preg_match("/\./", $dominio_query ) ) {
			error("Los nombres de dominio no pueden contener puntos.") ;
		}
		if ( preg_match("/@/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden el caracter @") ;
		}
		if ( preg_match("/[$]/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden el caracter $") ;
		}
		if ( preg_match("/[+]/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden el caracter +") ;
		}
		if ( preg_match("/&/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden el caracter &") ;
		}
		if ( preg_match("/_/", $dominio_query ) ) {
			error("Los nombres de dominio no pueden contener un guion bajo '_'.
			<br>Solo se puede usar '-'") ;
		}
		*/
		//if ( preg_match("/\*/", $dominio_query ) ) {
		//	error("Los nombres de dominio no pueden contener asteriscos.") ;
		//}
		/*
    if ( preg_match("/[^a-zA-Z0-9\-]/", $dominio_query) ) {
      //if ( $sufijo != 'com' && $sufijo != 'org' && $sufijo != 'net' ) {
      if ( $sufijo != 'com' && $sufijo != 'net' ) {
        error("Los nombres de dominio con extensi&oacute;n .$sufijo s&oacute;lo "
            . "pueden estar compuesto de letras, d&iacute;gitos y gui&oacute;n.");
      }
		}
		*/

		$check_dominio = $dominio_query . '.' . $sufijo ;
		$dominio = $dominio_query . '.' . $sufijo ;

                $res=shell_exec ("whois ".$check_dominio);
        if ( preg_match("/Creation\ Date/",$res) ) {
			$mensaje = "<CENTER>El dominio $dominio est&aacute; registrado, ".
						   "por favor elija otro dominio</CENTER>";
			$data = array('FULL_URL' => $full_url, 'SERVICIO' => $servicio,
				'ENCABEZADO' => file_to_string("./tpl/encabezado.tpl"),
				'PIE' => file_to_string("./tpl/pie.tpl"),
				'MENSAJE' => $mensaje);
			print_template("whois.tpl", $data) ;
		} else {
			form_suplementos($servicio,$sufijo,$dominio);
		}
	} elseif ( $button2 ) {

  	$pos_punto = strpos($dominio, '.') ;
		$sufi = substr($dominio, $pos_punto+1 ) ;

		$labels_formapago = array( 'card' => 'Tarjeta de cr&eacute;dito o transferencia bancaria', 'bank' => 'Domiciliaci&oacute;n bancaria' );
		if ( !$dominio_alojar && $servicio == 'alojamiento') {
			error("Debe especificar el nombre de dominio que quiere alojar.");
		}
		if ( $dominio_alojar ) {
			include("whois_class.php") ;
			$whois = new whois() ;
			$whois->set_domain($dominio_alojar) ;
			if ( !$whois->check_whois() ) {
				error("El dominio <U>$dominio_alojar</U> no est&aacute;
					registrado. S&oacute;lo puede alojar un dominio que ya tenga
					registrado.") ;
			}
		}
		// Si la variable $suplemento no es un array es que no se ha elegido suplemento
		if ( !is_array($suplemento) )
			$suplemento = array() ;
		// Eliminar los suplementos de correo y megabytes cuando son iguales a 0
		if ( !$correo_adicional ) {
			while ( list($key,$value) = each($suplemento) ) {
				if ( $value != 'correo' )
					continue ;
				else {
					unset($suplemento[$key]) ;
					break ;
				}
			}
		}
		reset($suplemento);
		if ( !$mb_adicionales ) {
			while ( list($key,$value) = each($suplemento) ) {
				if ( $value != 'megabytes' )
					continue ;
				else {
					unset($suplemento[$key]) ;
					break ;
				}
			}
		}
		reset($suplemento);
		$data['AVISO'] = '';
		if ( $servicio == 'registro' ) {
			$data['COMPRA'] = "Ha elegido registrar <B>$dominio</B>" ;
		} elseif ( $servicio == 'alojamiento' ) {
			$data['COMPRA'] ="Ha elegido alojar el dominio <B>$dominio_alojar</B>";
			$dominio = $dominio_alojar ;
		} elseif ( $servicio == 'alojamiento_registro' ) {
			$data['COMPRA'] = "Ha elegido registrar y alojar el dominio
					<B>$dominio</B> " ;
		} elseif ( $servicio == 'espacio' ) {
			$data['COMPRA'] = "Ha elegido contratar un espacio econ&oacute;mico." ;
		}
		$first_suplemento = TRUE ;
		while ( list($key,$value) = each($suplemento) ) {
			if ( $first_suplemento ) {
				$data['COMPRA'] .= "<BR><BR>Suplementos: <BR>" ;
				$first_suplemento = FALSE ;
			}
			if ( $value == 'megabytes' ) {
				$data['COMPRA'] .= "Megabytes adicionales : "
							. "$mb_adicionales mb<BR>";
			} elseif ( $value == 'correo' ) {
				$data['COMPRA'] .= "Cuentas de correo adicionales : "
							. "$correo_adicional<BR>" ;
			} elseif ( $value == 'buscadores' ) {
				$data['COMPRA'] .= "Alta en buscadores<BR>" ;
			} elseif ( $value == 'conexion' ) {
				$data['COMPRA'] .= "Conexi&oacute;n a internet por $tipo_conexion<BR>";
			} elseif ( $value == 'documentacion' ) {
				$data['COMPRA'] .= "Verificaci&oacute;n y reenv&iacute;o de su documentaci&oacute;n de validaci&oacute;n<BR>" ;
			}
		}
		reset($suplemento) ;
		$first_formapago = TRUE ;
		while ( list($key,$value) = each($labels_formapago) ) {
			if ( $key == 'bank' && $servicio == 'registro' ) {
				continue ;
			}
			if ( $first_formapago ) {
				$data['RADIOS_FORMA_PAGO'] = "<INPUT TYPE='radio' "
					. "NAME='formapago' VALUE='$key' CHECKED>$value<BR>\n" ;
				$first_formapago = FALSE ;
			} else {
				$data['RADIOS_FORMA_PAGO'] .= "<INPUT TYPE='radio' "
					. "NAME='formapago' VALUE='$key'>$value<BR>\n" ;
			}
		}
		include('periodos_pago.php');
		$data['HIDDEN_FIELDS'] = $hidden_fields ;
		$data['FULL_URL'] = $full_url_secure ;
		$data['DOMINIO'] = $dominio ;
		$data['SERVICIO'] = $servicio ;
		$pos_punto = strpos($dominio, '.') ;
		$sufi = substr($dominio, $pos_punto+1 ) ;
		$data['SELECT_PAISES'] = select_paises('residencia',$sufi);
		$data['ENCABEZADO'] = file_to_string("./tpl/encabezado.tpl");
		$data['PIE'] = file_to_string("./tpl/pie.tpl");
		print_template_rows("forma_pago.tpl", "periodos_pago.tpl", $data, $lista) ;
	} elseif ( $procesar ) {
		$nombre_dominio = $dominio ;
		unset($dominio) ;  // Para solucionar conflicto de nombres con JavaScript
		$moneda = moneda_pais( substr($residencia,0,-1) ) ;
		$country = pais_es( substr($residencia,0,-1) ) ;
		$code = code_pa(substr($residencia,0,-1));
		$pos_punto = strpos($nombre_dominio, '.') ;
		$domain = substr($nombre_dominio, 0, $pos_punto) ;
		$sufijo = substr($nombre_dominio, $pos_punto+1 ) ;
		if ( ( $formapago == 'bank' && $servicio == 'registro' )
			|| ($sufijo && !$sufijos[$sufijo]['recibo'] && $formapago == 'bank') ) {
			error("Error, el registro de dominios .$sufijo s&oacute;lo puede pagarse
				por medio de la tarjeta de cr&eacute;dito o transferencia bancaria.") ;
		}
		if ( $residencia != 'spain1' && $formapago == 'bank') {
			error("Sólo pueden pagar por medio de domiciliación bancaria los
					clientes residentes en Espa&ntilde;a.") ;
		}
		// Si la variable $suplemento no es un array es que no se ha elegido suplemento
		if ( ! is_array($suplemento) ) {
			$suplemento = array() ;
		}

		while ( list($key,$value) = each($suplemento) ) {
			if ($value == 'conexion') {
				$conexion_seleccionada = 1 ;
			}
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='suplemento[]' "
						. "VALUE='$value'>\n" ;
		}
		if ( $periodo_megabytes )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo_megabytes' "
						. "VALUE='$periodo_megabytes'>\n " ;
		if ( $periodo_correo )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo_correo' "
						. "VALUE='$periodo_correo'>\n " ;
		if ( $periodo_conexion )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo_conexion' "
						. "VALUE='$periodo_conexion'>\n " ;
		if ( $periodo_registro )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo_registro' "
						. "VALUE='$periodo_registro'>\n " ;
		if ( $periodo_ftp_correo )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo_ftp_correo' "
						. "VALUE='$periodo_ftp_correo'>\n " ;
		if ( $mb_adicionales )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='mb_adicionales' "
						. "VALUE='$mb_adicionales'>\n " ;
		if ( $correo_adicional )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='correo_adicional' "
						. "VALUE='$correo_adicional'>\n " ;
		if ( $tipo_conexion )
			$hidden_fields .= "<INPUT TYPE='hidden' NAME='tipo_conexion' "
						. "VALUE='$tipo_conexion'>\n " ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='periodo' VALUE='$periodo'>\n " ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='moneda' VALUE='$moneda'>\n " ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='residencia' VALUE='$residencia'>";
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='country' VALUE='$country'>\n " ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='code' VALUE='$code'>\n " ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='formapago' VALUE='$formapago'>\n";
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='servicio' VALUE='$servicio'>\n" ;
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='ip_client' VALUE='{$_SERVER['REMOTE_ADDR']}'>";
		$hidden_fields .= "<INPUT TYPE='hidden' NAME='nombre_dominio' VALUE='$nombre_dominio'>";
		include($templates_class);
		$tpl = new rFastTemplate ($templates_dir);
		$tpl->define (array('main' => 'datos_cliente.tpl',
					'encabezado' =>'encabezado.tpl',
					'pie' => 'pie.tpl',
                	  		'precios' => 'fila_precios.tpl',
                	  		'dominio' => 'datos_dominio.tpl',
                	  		'alojamiento' => 'datos_alojamiento.tpl',
                	  		'espacio' => 'datos_espacio.tpl',
                	  		'dominio_es' => 'datos_dominio_es.tpl',
							'dominio_cat' => 'datos_dominio_cat.tpl',
                	  		'conexion' => 'datos_conexion.tpl',
                	  		'banco' => 'datos_banco.tpl',
                	  		'tarjeta' => 'datos_tarjeta.tpl'
							)) ;
		$tpl->parse ('ENCABEZADO', 'encabezado');
		$tpl->parse ('PIE', 'pie');
		if ($servicio == 'alojamiento_registro' || $servicio == 'registro') {
			$tpl->assign( 'NOMBRE_DOMINIO', $nombre_dominio ) ;
			$tpl->assign( 'TITULAR', '' ) ;
			$tpl->parse ('DATOS_DOMINIO', 'dominio');
			$tpl->assign( 'DATOS_ALOJAMIENTO', '' ) ;
			$tpl->assign( 'DATOS_ESPACIO', '' ) ;
		} elseif ($servicio == 'alojamiento' ) {
			$tpl->assign( 'NOMBRE_DOMINIO', $nombre_dominio ) ;
			$tpl->assign( 'TITULAR', '' ) ;
			$tpl->parse ('DATOS_ALOJAMIENTO', 'alojamiento');
			$tpl->assign( 'DATOS_DOMINIO', '' ) ;
			$tpl->assign( 'DATOS_ESPACIO', '' ) ;
		} elseif ($servicio == 'espacio' ) {
			$tpl->assign( 'DIRECTORIO', '' ) ;
			$tpl->parse ('DATOS_ESPACIO', 'espacio');
			$tpl->assign( 'DATOS_DOMINIO', '' ) ;
			$tpl->assign( 'DATOS_ALOJAMIENTO', '' ) ;
		}

		if (
			ereg("\.es$" , $nombre_dominio)
			AND ! ereg("\.com\.es$" , $nombre_dominio)
			AND ! ereg("\.nom\.es$" , $nombre_dominio)
			AND ! ereg("\.org\.es$" , $nombre_dominio)
			) {
			$tpl->assign( 'ADMIN_CONTACT', '' );
			$tpl->assign( 'ADMIN_CONTACT_DNI', '' );
			$tpl->parse ('DATOS_DOMINIO_ES', 'dominio_es');
		} else {
			$tpl->assign( 'DATOS_DOMINIO_ES', '' );
		}

		if ( ereg("\.cat$" , $nombre_dominio) ) {
			$tpl->assign( 'USE', '' );
			$tpl->assign( 'URL', '' );
			$tpl->parse ('DATOS_DOMINIO_CAT', 'dominio_cat');
		} else {
			$tpl->assign( 'DATOS_DOMINIO_CAT', '' ) ;
		}

		if ( $conexion_seleccionada ) {
			$tpl->assign( 'USUARIO', '' ) ;
			$tpl->parse ('DATOS_CONEXION', 'conexion');
		} else {
			$tpl->assign( 'DATOS_CONEXION', '' ) ;
		}
		if ( $formapago == 'bank' ) {
			$tpl->assign( 'CUENTA', '' );
			$tpl->assign( 'IBAN', '' );
			$tpl->assign( 'BIC', '' );
			$tpl->parse ('DATOS_BANCO', 'banco');
			$tpl->assign( 'DATOS_TARJETA', '' ) ;
		}
		elseif ( $formapago == 'card' ) {
			$tpl->assign('DATOS_TARJETA', ''); // Ian
			$tpl->assign( 'DATOS_BANCO', '' ) ;
		}


		$tpl->assign('MONEDA', string_moneda($moneda) );
		$tpl->assign('COUNTRY', $country);
		$tpl->assign('FULL_URL', $full_url_secure);
		$tpl->assign('HIDDEN_FIELDS', $hidden_fields);
		$tpl->assign('IP_CLIENT', $_SERVER['REMOTE_ADDR']);
		include("filas_precios.php");
		$tpl->assign('TOTAL', convertir($total, $moneda) );
		$tpl->assign('TOTAL_EU', convertir($total, 'EUR') );
		$tpl->parse('MAIN', 'main');
		$tpl->FastPrint ();
	} elseif ( $button3 ) {
		/*if ( $formapago == 'card' ) {
			require("/web/guide/dnet/php/funciones/funciones_creditcard.inc");
			// Validar numero de tarjeta
			if ( !validateCC($card) ) {
				$card_error = TRUE ;
			} else {
				$card_error = FALSE ;
			}
		}
		*/



		// Si la variable $suplemento no es un array es que no se ha elegido suplemento
		if ( !is_array($suplemento) ) {
			$suplemento = array() ;
		}
		$pos_punto = strpos($nombre_dominio, '.') ;
		$domain = substr($nombre_dominio, 0, $pos_punto) ;
		$sufijo = substr($nombre_dominio, $pos_punto+1 ) ;
		include("mensaje_precios.php");

    include("ip_to_country.php");

    if ( $country_code == "ES" && BANESTO || BANCO == "banesto" && BANESTO ) {
    		define("TARJETA",	'gracias_tarjeta_banesto.tpl');
    		define("ORDER",		'clas-d'.time()); 	// Referencia para Banesto y domiciliación
    } else {
    		define("TARJETA",	'gracias_tarjeta_servired.tpl');
    		define("ORDER",		time()); 	// Referencia para el Banco
    }

		$referencia = ORDER;

		$message = "Pedido realizado desde {$_SERVER['REMOTE_ADDR']}  ({$_SERVER['REMOTE_HOST']}) ($country_name)"
				. "\n\nReferencia: $referencia\n\n"
				. "Servicio : $servicio.\nForma de pago : $formapago\n"
				. "$mensaje_precios" ;

		if ( $nombre_dominio ) {
			$message .= "\nDOMINIO: $nombre_dominio\n" ;
			$message .= "Titular: $titular_dominio\n\n" ;
		}

		if ( $directorio ) {
			$message .= "Directorio requerido: $directorio\n\n" ;
		}

		if ( $usuario ) {
			$message .= "USUARIO PARA LA CONEXION: $usuario\n\n" ;
		}

		$message .= "CLIENTE\nNombre: $forname    Apellidos: $surname\n"
				. "Empresa: $empresa  CIF/NIF:  $nif\n"
				. "Direccion: $address\n"
				. "Localidad: $town Provincia: $provincia\n"
				. "Pais: $country C&oacute;digo Postal: $postcode\n"
				. "Tel: $tel Fax: $fax   Email: $email\n"
				. "Ha conocido Classicweb a trav&eacute;s de: $comments\n"
				. "Comentarios: $comments2\n\n" ;

		if ( ereg("\.es$" , $nombre_dominio) ) {

			$message .= "Datos para dominios .es\n"
					. "Persona de Contacto Administrativo: $admin_contact\n"
					. "DNI del Contacto Administrativo: $admin_contact_dni\n";
		}

		if ( ereg("\.cat$" , $nombre_dominio) ) {
			$message .= "Datos para dominios .cat\n"
					. "Uso que le va a dar: $use\n"
					. "Pagina en catalan: $url\n\n";
		}

		if ( ereg("\.eu$" , $nombre_dominio) ) {

			$tel_num = $tel;
			$fax_num = $fax;

			if ( ! ereg("^\+([0-9]{2})\.([0-9]{9})", $tel) ) {
		  		$tel_num = "+34.123456789";
		  		$message .= "AVISO: Formato de TELEFONO incorrecto\n"
					. "Cambiar manualmente en la base de datos\n\n";
			}

			if ( ! ereg("^\+([0-9]{2})\.([0-9]{9})", $fax) ) {
				$fax_num = "";
				$message .= "AVISO: Formato de FAX incorrecto\n"
					. "Cambiar manualmente en la base de datos\n\n";
			}

			$dbh = mysql_connect(HOST,USER_EU,PASSWORD_EU);
			mysql_select_db(DATABASE_EU);

			mysql_query ("INSERT INTO `contacts` (`name`,`org`,`street1`,
				`pc`,`city`,`sp`,`cc`,`voice`,`fax`,`email`,`lang`)
			 	VALUES ('$forname','$titular_dominio','$address','$postcode',
			 	'$town','$provincia','$code','$tel_num','$fax_num',
				'$email','$lang')");

			$id_contacts = mysql_insert_id();

			mysql_query ("INSERT INTO `domains` (`domain`,`contact_registrant`)
							      VALUES ('$nombre_dominio','$id_contacts')");

			mysql_close($dbh);

		}

		$add_subject = "";

		// Envio de la cuenta
		if ( $formapago == 'bank' ) {

	    require_once("includes/IBAN/php-iban.php");

      $message .= "BANCO\n";
			$message .= "Titular de la Cuenta: $cuenta\n";
			$message .= "BIC: $bic\n";
			$message .= "IBAN: $iban\n";

      if ( verify_iban($iban) ) {
				$message .= "IBAN: OK\n";
			} else {
				$message .= "IBAN: *********** NO VALIDO ***********\n";
			}

			$add_subject = "[recibo]";

		} /*elseif ( $formapago == 'card' ) {
			// cifrar con PGP
			//$key_nombre = 'reservas@interhotel.com';
			$key_nombre = 'pedidos@dominios.net' ;
			$credit_card_number_pgp = pgp_cifrar($card,$key_nombre);
			$message .=
"Datos de la Tarjeta de Cr�dito
Titular de la Tarjeta: $titular
Fecha de Caducidad de la Tarjeta: $caducidad_mes/$caducidad_anio\n" ;
			if ( $card_error ) {
				$message .= "********N�MERO DE TARJETA INCORRECTO.**********\n";
			} else {
				$message .= "N�mero de tarjeta correcto.\n" ;
			}
			$message_file = $message . "N�mero de la  Tarjeta:\n"
						. substr($card, 0, -4) . "XXXX\n" ;
        		$message .= "N�mero de la  Tarjeta:\n$credit_card_number_pgp\n\n";
		}
		*/

		// Escribir fichero con el pedido
		$fp = fopen($log_file, "a") ;
		fwrite($fp, "$message\n------------------------------------------\n") ;
		fclose($fp) ;

		if ( check_email_mx($email) ) {
			$from = $email;
		} else {
			$from = "pedidos@dominios.net";
		}

		$headers = "From: $from" . "\r\n" .
                   "Reply-To: $from";

		if ( !mail("soporte@dominios.net", "-M- Pedido $nombre_dominio $directorio $add_subject",
				$message,$headers) ) {
			error("Error, no se han podido enviar sus datos."
				. "<BR>Vuelva a intentarlo m&aacute;s tarde o env&iacute;e un e-mail a "
				. "soporte@dominios.net .") ;
		}

		// Imprimir template factura si el email se envio correctamente
		include($templates_class);
		$tpl = new rFastTemplate ($templates_dir);
		$tpl->define (array('main' => 'factura.tpl',
										'encabezado' =>'encabezado.tpl',
										'pie' => 'pie.tpl',
										'precios' => 'fila_precios.tpl',
										'dominio' => 'datos_dominio_factura.tpl',
										'alojamiento' => 'datos_alojamiento_factura.tpl',
										'espacio' => 'datos_espacio_factura.tpl',
										'dominio_es' => 'datos_dominio_es_factura.tpl',
										'dominio_cat' => 'datos_dominio_cat_factura.tpl',
										'conexion' => 'datos_conexion_factura.tpl',
										'banco' => 'datos_banco_factura.tpl',
										'gracias_banco' => 'gracias_banco.tpl',
                	  'gracias_tarjeta' => TARJETA
					)) ;
		$tpl->parse('ENCABEZADO', 'encabezado');
		$tpl->parse('PIE', 'pie');
		if ($servicio == 'alojamiento_registro' || $servicio == 'registro') {
			$tpl->assign( 'NOMBRE_SERVICIO', $nombre_dominio ) ;
			$tpl->assign( 'NOMBRE_DOMINIO', $nombre_dominio ) ;
			$tpl->assign( 'TITULAR', $titular_dominio ) ;
			$tpl->parse ('DATOS_DOMINIO', 'dominio');
			$tpl->assign( 'DATOS_ALOJAMIENTO', '' ) ;
			$tpl->assign( 'DATOS_ESPACIO', '' ) ;
		} elseif ($servicio == 'alojamiento' ) {
			$tpl->assign( 'NOMBRE_SERVICIO', $nombre_dominio ) ;
			$tpl->assign( 'NOMBRE_DOMINIO', $nombre_dominio ) ;
			$tpl->assign( 'TITULAR', $titular_dominio ) ;
			$tpl->parse ('DATOS_ALOJAMIENTO', 'alojamiento');
			$tpl->assign( 'DATOS_DOMINIO', '' ) ;
			$tpl->assign( 'DATOS_ESPACIO', '' ) ;
		} elseif ($servicio == 'espacio' ) {
			$tpl->assign( 'NOMBRE_SERVICIO', $directorio ) ;
			$tpl->assign( 'DIRECTORIO', $directorio ) ;
			$tpl->parse ('DATOS_ESPACIO', 'espacio');
			$tpl->assign( 'DATOS_DOMINIO', '' ) ;
			$tpl->assign( 'DATOS_ALOJAMIENTO', '' ) ;
		}

		if ( ereg("\.es$" , $nombre_dominio) ) {
			$tpl->assign( 'ADMIN_CONTACT', $admin_contact );
			$tpl->assign( 'ADMIN_CONTACT_DNI', $admin_contact_dni );
			$tpl->parse ('DATOS_DOMINIO_ES', 'dominio_es');
		} else {
			$tpl->assign( 'DATOS_DOMINIO_ES', '' ) ;
		}

		if ( ereg("\.cat$" , $nombre_dominio) ) {
			$tpl->assign( 'USE', $use );
			$tpl->assign( 'URL', $url );
			$tpl->parse ('DATOS_DOMINIO_CAT', 'dominio_cat');
		} else {
			$tpl->assign( 'DATOS_DOMINIO_CAT', '' ) ;
		}

		if ( $usuario ) {
			$tpl->assign( 'USUARIO', $usuario ) ;
			$tpl->parse ('DATOS_CONEXION', 'conexion');
		} else {
			$tpl->assign( 'DATOS_CONEXION', '' ) ;
		}

		$tpl->assign( 'FORNAME', $forname ) ;
		$tpl->assign( 'SURNAME', $surname ) ;
		$tpl->assign( 'EMPRESA', $empresa ) ;
		$tpl->assign( 'NIF', $nif ) ;
		$tpl->assign( 'ADDRESS', $address ) ;
		$tpl->assign( 'TOWN', $town ) ;
		$tpl->assign( 'PROVINCIA', $provincia ) ;
		$tpl->assign( 'COUNTRY', $country ) ;
		$tpl->assign( 'POSTCODE', $postcode ) ;
		$tpl->assign( 'TEL', $tel ) ;
		$tpl->assign( 'FAX', $fax ) ;
		$tpl->assign( 'EMAIL', $email ) ;
		$tpl->assign( 'COMMENTS', $comments ) ;
		$tpl->assign( 'COMMENTS2', $comments2 ) ;
		$tpl->assign('MONEDA', string_moneda($moneda) );
		include("filas_precios.php");
		$tpl->assign('TOTAL', convertir($total, $moneda) );
		$tpl->assign('TOTAL_EU', convertir($total, 'EUR') );

		if ( $formapago == 'bank' ) {
			$tpl->assign( 'CUENTA', $cuenta );
			$tpl->assign( 'IBAN', $iban );
			$tpl->assign( 'BIC', $bic);
			$tpl->parse ('DATOS_BANCO', 'banco');
			$tpl->parse ('GRACIAS_BANCO', 'gracias_banco');
			$tpl->assign( 'DATOS_TARJETA', '' );
			$tpl->assign( 'GRACIAS_TARJETA', '' );
		}
		elseif ( $formapago == 'card' ) {
			$tpl->assign ('PEDIDO_ID', $referencia);
			$tpl->assign ('DATOS_BANCO', '');
			$tpl->assign ('GRACIAS_BANCO', '');
			$tpl->assign ('BANCO', BANCO);
			$tpl->parse( 'GRACIAS_TARJETA', 'gracias_tarjeta');
			$tpl->assign( 'MENSAJE_BANCO', '' ) ;
		}
		$tpl->parse ( 'MAIN', 'main');
		$tpl->FastPrint ();
	}
}
?>
