<?php
include ('./dbbackend.php');

function drawAnagrafica() {
	$out = '
	<table width="72%"  border="0" align="center" cellpadding="1" class="tabellaDest">
          <tr>
            <td colspan="2" align="center" valign="middle">
	      <div align="left"><strong>Dati Destinatario</strong></div>              
	    </td>
          </tr>
          <tr>
            <td width="37%" align="center" valign="middle"><div align="right">Ragione sociale: </div></td>
            <td width="63%" align="center" valign="middle">
	      <div align="left">
	        <input name="anagrafica[ragsoc]" type="text" value="'.$_POST['anagrafica']['ragsoc'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>
          <tr>
            <td align="center" valign="middle"><div align="right">Nome Cognome: </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[nome]" type="text" value="'.$_POST['anagrafica']['nome'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>
	  <tr>
            <td align="center" valign="middle"><div align="right">Indirizzo: </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[indirizzo]" type="text" value="'.$_POST['anagrafica']['indirizzo'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>
          <tr>
            <td align="center" valign="middle"><div align="right">Cittā: </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[citta]" type="text" value="'.$_POST['anagrafica']['citta'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>          
          <tr>
            <td align="center" valign="middle"><div align="right">Cap: </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[cap]" type="text" value="'.$_POST['anagrafica']['cap'].'" size="40" maxlength="5">
              </div>
	    </td>
          </tr>          
          <tr>
            <td align="center" valign="middle"><div align="right">E-mail: </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[email]" type="text" value="'.$_POST['anagrafica']['email'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>
          <tr>
            <td align="center" valign="middle"><div align="right">Recapito Telefonico </div></td>
            <td align="center" valign="middle">
	      <div align="left">
                <input name="anagrafica[tel]" type="text" value="'.$_POST['anagrafica']['tel'].'" size="40" maxlength="50">
              </div>
	    </td>
          </tr>
        </table>
	';
	return $out;
}

function drawBeerDetails($birra) {
	$out = "\n".'<table width="71%"  border="0" align="center" cellpadding="1">';
	foreach ( $birra as $key => $value ) {
	$out .= '
	<!-- '.$value['name'].' -->
	  <tr>
            <td colspan="3"><img src="'.$value['logo'].'" alt="'.$value['name'].'" width="503" height="60"></td>
          </tr>
          <tr>
            <td width="8%">&nbsp;</td>
            <td width="47%">
	      <blockquote class="Stile10 Stile4"> <b>Formato</b> </blockquote>
	    </td>
	    <td width="45%">
	      <blockquote class="Stile10 Stile4"> <b>Quantita\' e Prezzo</b> </blockquote>
	    </td>
          </tr>	';	  	  
		foreach ( $value['formato'] as $key2 => $detail ) {  
			$quantita = isset($_POST['birra'][$key]['formato'][$key2]['qta'])?$_POST['birra'][$key]['formato'][$key2]['qta']:0;
			$quantita = (int)$quantita > 0 ? (int)$quantita : 0;
			$out .= '
          	       <tr> <!-- format: '.$detail['descrizione'].' -->
            		 <td width="8%">&nbsp;</td>
            		 <td width="47%">
	    	           <blockquote class="Stile10 Stile4">Lt. '.$detail['litri'].' '.$detail['descrizione'].'</blockquote>
			 </td>
			 <td width="45%">
			   <blockquote class="Stile10 Stile4">
			    <input name="birra['.$key.'][formato]['.$key2.'][qta]" type="text" value="'.$quantita.'" size="4" maxlength="3"> 
			    ('.$detail['prezzo'].'e cad)
			   </blockquote>
	    		 </td>
 		       </tr>			 
		';
		}
	}
	$out .= '</table>';
	return $out;
}

function drawButtons($nextstep=0) {
	if ($nextstep==2) { 
		$label = "Conferma"; 
		$ripristina = '';
	} else { 
		$label = "Invia"; 
		$ripristina = '<input name="Reload" type="reset" id="Reload" value="Ripristina">';
	}
	$out = '        
        <p align="center">
	    <input name="Step" type="hidden" value="'.$nextstep.'">
            '.$ripristina.'
            <input name="Invia" type="submit" id="Invia" value="'.$label.'">
        </p>
';
	return $out;
}

function checkBeerDetail($dbBeer) {
	$tBeer = $_POST['birra'];
	$tot = 0;
	$out = '';
	foreach ($tBeer as $key => $value ) {
		$tBeer2 = $value['formato'];
		foreach ($tBeer2 as $key2 => $value2) {
			//if (((int)$value2['qta'] != 0) && ($value2['qta'] != '')) {
			if (((int)$value2['qta'] > 0) && ($value2['qta'] != '')) {				
				$subtot = (double)$dbBeer[$key]['formato'][$key2]['prezzo'] * (int)$value2['qta'];
				$subtot = formatDoubleZero($subtot);
				$out .= formatDetailRow((int)$value2['qta'], $dbBeer[$key]['name'],$dbBeer[$key]['formato'][$key2]['descrizione'], $subtot);
				//$out .= "\n * ".(int)$value2['qta'] ." '".$dbBeer[$key]['name'] ."'  con  ".$dbBeer[$key]['formato'][$key2]['descrizione'];
				//$out .= "      (". $subtot ." euro)";
				$tot = $tot + $subtot;
			}
		}
	}
	return array($out,formatDoubleZero($tot));
}

function formatDetailRow($qta, $name, $format, $subtot) {
	//
	//0=========1=========2=========3=========4=========5=========6====\n";
	//*bNNNbbNOMENOMENOME
	$row = "\n * ".$qta." ".$name." con ".$format."      (".$subtot." euro)";	
	return $row;
}

function formatDoubleZero($num) {
	// Workaround per il doppio zero dei valori.. potrebbe creare noie in visualizzazione!
	if (( ceil($num) - $num ) == 0) { 
		$num .= '.00'; 
	} else { 
		$num .= '0';
	}   
	return $num;
}

function checkUserDetail() {
	
	$_POST['anagrafica']['ragsoc'] = clean_key($_POST['anagrafica']['ragsoc']);
	$_POST['anagrafica']['nome']   = clean_key($_POST['anagrafica']['nome']);
	$_POST['anagrafica']['email']  = clean_key($_POST['anagrafica']['email']);
	$_POST['anagrafica']['tel']    = clean_key($_POST['anagrafica']['tel']);
	
	$anagrafica = $_POST['anagrafica'];
	$error=false; 
	//if ( $anagrafica['ragsoc'] == '' )     { $error=true; $errore['ragsoc'] = false; }
	//if ( $anagrafica['nome'] == '' )       { $error=true; $errore['nome']   = false; }
	if ( checkMail($anagrafica['email']) )   { 
		$error=true; 
		$errore['email']  = true; }
	//if ( $anagrafica['tel'] == '' )        { $error=true; $errore['tel']    = false; }
	$errore['errori'] = $error; 
	return $errore;
}

function checkMail($mail) {
	if ( !eregi("^([a-z0-9]+)([._-]([a-z0-9]+))*[@]([a-z0-9]+)([._-]([a-z0-9]+))*[.]([a-z0-9]){2}([a-z0-9])?$", $mail)) {
		return true;
	}
	return false;
}

function isNumber($num) {
	if ($num == "") { return false; }
	if ( preg_match( "/^([0-9]+)$/", $num) ) {
		return true;
	} else {
		return false;
	}
}

function clean_key($key) {
	if ($key == "")
	{
    	   return "";
    	}
	$key = preg_replace( "/\.\./"           , ""  , $key );
	$key = preg_replace( "/\_\_(.+?)\_\_/"  , ""  , $key );
	$key = preg_replace( "/^([\w\.\-\_]+)$/", "$1", $key );
	return $key;
}

function checkValue($value) {
	return true;
}

function debugArray($arr) {
	// Debug!
	foreach ($arr as $key => $value) {
		if (is_array($value)) { 
			debugArray($value); 
		} else {
			echo "<br>".$key."  =>  ".$value;
		}
	}
}

function datiCliente() {
	$out .= "\n".'Ragione Sociale: '. clean_key($_POST['anagrafica']['ragsoc']);
	$out .= "\n".'Referente: '. clean_key($_POST['anagrafica']['nome']);
	$out .= "\n".'Indirizzo: '. clean_key($_POST['anagrafica']['indirizzo']);
	$out .= "\n".'    Cittā: '. clean_key($_POST['anagrafica']['citta']);
	$out .= "\n".'      Cap: '. clean_key($_POST['anagrafica']['cap']);
	$out .= "\n".'Contatto     e-mail:    '. clean_key($_POST['anagrafica']['email']);
	$out .= "\n".'Contatto telefonico:    '. clean_key($_POST['anagrafica']['tel']);
	$out .= "\n=================================================================\n";
	$out .= "\nMerce ordinta:\n";
	return $out;
}

// =========== MAIN ===============
error_reporting(0); //Comment For Debug!
//debugArray($_POST);
$output = '';

switch ( $_POST["Step"] ){
	case 1:
		//Conferma
		$userDet = checkUserDetail();
		$beerDet = checkBeerDetail($birra);
		if ($userDet['errori']) {
			$output .= "<center><font color=red><b>ATTENZIONE: Controllare l'indirizzo e-mail</b></font></center>";
			$output .= drawAnagrafica();
			$output .= drawBeerDetails($birra);
			$output .= drawButtons(1);
			break;
		}
		$output .= '
		<table width="72%"  border="0" align="center" cellpadding="1" class="tabellaDest">
		 <tr>
             	  <td colspan="2" align="center" valign="middle">
	      	   <div align="left"><pre>';
		if ($beerDet[1] > 0) {
			$output .= datiCliente();
			$output .= $beerDet[0];
			$output .= "\n\n             Totale: ".$beerDet[1]." Euro </pre>";
			$output .= drawButtons(2);
			// create mail
			$mail = datiCliente();
	 		$mail .= $beerDet[0];
			$mail .= "\n\n             Totale: ".$beerDet[1]." Euro";
			$output .= '<input name="mailbody" type="hidden" value="'.$mail.'">';
		} else {
			$output .= "Non č stato ordinato nulla";
		}
		$output .= '</div></td></tr></table>';
		break;
	case 2:
		//Invio
		$today = getdate(); 
		$mailObj .= ' '.$today['year'].'-'.$today['month'].'-'.$today['mday'].' '.$today['hours'].':'.$today['minutes'];
		mail($mailTo,$mailObj,$_POST['mailbody']."\n\n\n\n request from: ".$_SERVER['REMOTE_ADDR'], "From: ".$mailTo);
		$output .= "\n\n\nOrdine inviato!";
		break;
	default:
		//prima chiamata
		$output .= drawAnagrafica();
		$output .= drawBeerDetails($birra);
		$output .= drawButtons(1);
		break;
}

// End of script
include ('./layout.php');
?>

