<?php
include_once('php/functions.php');
/* http://localhost/thesis/send_message.php?email=giannis89dimitriou@yahoo.gr&group=userG&notify=yes&ring=yes&light=yes&message=asdasdad */
if(
	(	isset($_GET['device']) || isset($_GET['group'])) /* ομάδα ή συσκευή */
	&&	isset($_GET['email']) /* email για να βρω ποιος χρήστης είναι */
	&& 	isset($_GET['ring']) /* ηχητική ειδοποίηση */
	&& 	isset($_GET['light']) /* φωτεινή ειδοποίηση */
	&& 	isset($_GET['notify']) /* ειδοποίηση αναφοράς */
	&& 	isset($_GET['message']) /* μήνυμα */
	)
{
	$insert1 = $insert2 = $insert3 = $insert4 = $insert5 = $insert6 = false;

	/* Τσεκάρω να δω αν όντως υπάρχει ο χρήστης */
	if (check("users", clean($_GET['email']),"email")==1){
		/* Αν υπάρχει παίρνω το id του */
		$id = get('id','users','email',clean($_GET['email']),'one');	
		$insert1 = true;
		/* Αν στέλνει σε ομάδα τσεκάρω να δω αν την έχει φτιάξει αυτός εκτός αν είναι public*/
		if(isset($_GET['group'])){
			$group_id = get('id','groups','g_name',clean($_GET['group']),'one');
			/* Τσεκάρω να δω αν υπάρχει το group */
			if (check("groups", $group_id,"id")==1 && get('status','groups','id',$group_id,'one')=='yes'){
				/* Αν ο χρήστης είναι admin */
				if(get('level','users','id',$id,'one')==0) $insert2 = true;
				else{
					/* Αν η ομάδα είναι public τότε ΟΚ */
					if(get('visibility','groups','id',$group_id,'one')=='public'){
						$insert2 = true;
					}
					else{
					/* Αν όχι τσεκάρω να δω αν την έφτιαξε αυτός */
						if(get('user_id','groups','id',$group_id,'one')==$id){
							$insert2 = true;
						}
					}
				}
			}
		}
		else if(isset($_GET['device'])){
			$device_id = clean($_GET['device']);
			/* Τσεκάρω να δω αν υπάρχει το device */
			if (check("device", $device_id,"id")==1 && get('status','device','id',$device_id,'one')=='yes'){
				/* Αν ο χρήστης είναι admin */
				if(get('level','users','id',$id,'one')==0) $insert2 = true;
				else{
					/* Αν η συσκευή είναι public τότε ΟΚ */
					if(get('visibility','device','id',$device_id,'one')=='public'){
						$insert2 = true;
					}
					else{
					/* Αν όχι τσεκάρω να δω αν την έφτιαξε αυτός */
						if(get('user_id','device','id',$device_id,'one')==$id){
							$insert2 = true;
						}
					}
				}
			}		
		}			
		if(clean($_GET['notify'])=='yes' || clean($_GET['notify'])=='no')  $insert3 = true;
		if(clean($_GET['ring'])=='yes' || clean($_GET['ring'])=='no')  $insert4 = true;
		if(clean($_GET['light'])=='yes' || clean($_GET['light'])=='no')  $insert5 = true;
		
		$user_length = 1 + mb_strlen(get('f_name','users','id',$id,'one'), 'UTF-8') + mb_strlen(get('l_name','users','id',$id,'one'), 'UTF-8');
		$message_id_length = message_id_length();
		$maxlength = strval(371 - $user_length - $message_id_length);
		$maxlength = intval($maxlength)-16;
		$m = nl2br(clean($_GET['message']), TRUE);
		$message = str_replace('<br />', '', $m);	
				
		if 	(
				(!preg_match("/[^A-Za-z0-9\/\'\(\)\=\<\>\+\-\_\,\!\?\;\:\.\!\' ']/", $message)) &&
				(invalid_char($message,'message') == null) &&
				(mb_strlen($message, 'UTF-8') < $maxlength)
			)
			$insert6 = true;
	
	}
	if($insert1 && $insert2 && $insert3 && $insert4 && $insert5 && $insert6){
		if(isset($_GET['device'])){		
			data_on();
			date_default_timezone_set('Europe/Athens');
			$date = date('Y-m-d H:i:s');
			/*-----------------------------------------------------------------------------------------------------------------*/
			$sql = "INSERT INTO message VALUES ( NULL, '$id' , '0' , '".clean($_GET['notify'])."' , '".clean($_GET['ring'])."' , '".clean($_GET['light'])."' , '$date' , 'yes' , NULL , '".$message."')";
			
			if(!mysql_query($sql)){
				echo "Σφάλμα κατά την εισαγωγή3: ".mysql_error();
				data_off();
				die('ERROR');
			}
			$message_id = mysql_insert_id();
			$sql_status = "INSERT INTO status_message VALUES (NULL, 'no', '$device_id', '$message_id', 'no', '$date')";
			if(!mysql_query($sql_status)){
				echo "Σφάλμα κατά την εισαγωγή4 ".mysql_error();
				data_off();
				die('ERROR');
			}
			if($_GET['notify']=='yes')$not = "<span class=\"h8\">Ενεργή</span>";
			else $not = "<span class=\"h9\">Ανενεργή</span>";
			if($_GET['ring']=='yes')$hxos = "<span class=\"h8\">Ενεργή</span>";
			else $hxos = "<span class=\"h9\">Ανενεργή</span>";
			if($_GET['light']=='yes')$fws = "<span class=\"h8\">Ενεργή</span>";
			else $fws = "<span class=\"h9\">Ανενεργή</span>";

			$back  = '<a href="edit_all_messages.php?edit_id='.$message_id.'"  title="Κάντε κλικ για να επεξεργαστείτε το μήνυμα.">';
			$back .= "<span class=\"h8\">Έστειλε</span> νέο μήνυμα: <br /><br />";
			$back .= "<hr /><i>".$message."</i><hr /><br />";
			$back .= "Στη συσκευή: ".$device_id."<br />";
			$back .= "Με ιδιότητες:<br />";
			$back .= "Αναφορά παράδοσης στο χρήστη: ".$not."<br />";
			$back .= "Ηχητική ειδοποίηση συσκευής: ".$hxos."<br />";
			$back .= "Φωτεινή ειδοποίηση συσκευής: ".$fws."<br />";
			$back .= '</a>';
			in_logfile($back,$id);
			data_off();
			die('OK');		
			/*-----------------------------------------------------------------------------------------------------------------*/
			
		}
		else if(isset($_GET['group'])){
			data_on();
			date_default_timezone_set('Europe/Athens');
			$date = date('Y-m-d H:i:s');
			/*-----------------------------------------------------------------------------------------------------------------*/
			
			$sql = "INSERT INTO message VALUES ( NULL, '$id' , '1' , '".clean($_GET['notify'])."' , '".clean($_GET['ring'])."' , '".clean($_GET['light'])."' , '$date' , 'yes' , NULL , '".$message."')";
			
			if(!mysql_query($sql)){
				echo "Σφάλμα κατά την εισαγωγή: ".mysql_error();
				data_off();
				die('ERROR');
			}
			$message_id = mysql_insert_id();
			$all_devices = explode(" , ", get('devices','groups','id',$group_id,'one'));
			foreach($all_devices as $dev){
				if(isset($dev['id']) && $dev<>null){
					$device_id = $dev;
					if(check("status_message",$device_id,$message_id)==0){
						$sql_status = "INSERT INTO status_message VALUES (NULL, 'no', '$device_id', '$message_id', 'no', '$date')";
						if(!mysql_query($sql_status)){
							echo "Σφάλμα κατά την εισαγωγή: ".mysql_error();
							data_off();
							die('ERROR');
						}
					}
				}
			}						
			if($_GET['notify']=='yes')$not = "<span class=\"h8\">Ενεργή</span>";
			else $not = "<span class=\"h9\">Ανενεργή</span>";
			if($_GET['ring']=='yes')$hxos = "<span class=\"h8\">Ενεργή</span>";
			else $hxos = "<span class=\"h9\">Ανενεργή</span>";
			if($_GET['light']=='yes')$fws = "<span class=\"h8\">Ενεργή</span>";
			else $fws = "<span class=\"h9\">Ανενεργή</span>";

			$back  = '<a href="edit_all_messages.php?edit_id='.$message_id.'"  title="Κάντε κλικ για να επεξεργαστείτε το μήνυμα.">';
			$back .= "<span class=\"h8\">Έστειλε</span> νέο μήνυμα: <br /><br />";
			$back .= "<hr /><i>".$message."</i><hr /><br />";
			$back .= "Στην ομάδα: ".$_GET['group'].'<br />';
			$back .= "Με ιδιότητες:<br />";
			$back .= "Αναφορά παράδοσης στο χρήστη: ".$not."<br />";
			$back .= "Ηχητική ειδοποίηση συσκευής: ".$hxos."<br />";
			$back .= "Φωτεινή ειδοποίηση συσκευής: ".$fws."<br />";
			$back .= '</a>';
			in_logfile($back,$id);
			data_off();
			die('OK');			
			/*-----------------------------------------------------------------------------------------------------------------*/
			
			
			
		}
	}
	else die('ERROR');	
}
else echo 'ERROR';
?>