<?php

	include_once ("xmlrpc.inc");
	include_once ("xmlrpcs.inc");

	// funkcija za dohvacanje informacije u starosti Unixa
	function starost_unixa () {
					
		// pohrana broja sekundi proteklih od 1.1.1970. u ponoc, pa do ovog trenutka
		$starost = time ();
		
		// stvaranje xmlrpcval objekta
		$objekt = xmlrpc_encode($starost);
		
		// vracanje xmlrpcresp objekta
		return new xmlrpcresp($objekt);
		
	}
	
	
	// funkcija za zbrajanje i mnozenje dva broja
	function zbroji_pomnozi ($argumenti) {
	
		// prvo se metodom getParam klase xmlrpcmsg dohvaca nulti parametar
		// pristigle poruke kako bi se stvorio xmlrpcval objekt
		$podaci = xmlrpc_decode($argumenti -> getParam(0));
		
		// rezultate stavljamo u postojece polje
		$podaci["zbroj"] = $podaci["prvi"] + $podaci["drugi"];
		$podaci["umnozak"] = $podaci["prvi"] * $podaci["drugi"];
		
		// vracanje xmlrpcresp objekta koji sadrzava rezultate
		return new xmlrpcresp(xmlrpc_encode($podaci));
		
	}
	
	
	// funkcija za odredjivanje horoskopskog znaka
	function zodijak ($argumenti) {
		
		// prvo se metodom getParam klase xmlrpcmsg dohvaca nulti parametar
		// pristigle poruke kako bi se stvorio xmlrpcval objekt
		$podaci = xmlrpc_decode($argumenti -> getParam(0));
		
		// switch struktura za odredjivanje horoskopskog znaka
		switch ($podaci["mjesec"]) {
			case 3:							// ozujak
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 12; // ribe
				else
					$podaci["znak"] = 1; // ovan
				break;
			case 4:							// travanj
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 1; // ovan
				else
					$podaci["znak"] = 2; // bik
				break;
			case 5:							// svibanj
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 2; // bik
				else
					$podaci["znak"] = 3; // blizanci
				break;
			case 6:							// lipanj
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 3; // blizanci
				else
					$podaci["znak"] = 4; // rak
				break;
			case 7:							// srpanj
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 4; // rak
				else
					$podaci["znak"] = 5; // lav
				break;
			case 8:							// kolovoz
				if ($podaci["dan"] < 22)
					$podaci["znak"] = 5; // lav
				else
					$podaci["znak"] = 6; // djevica
				break;
			case 9:							// rujan
				if ($podaci["dan"] < 23)
					$podaci["znak"] = 6; // djevica
				else
					$podaci["znak"] = 7; // vaga
				break;
			case 10:						// listopad
				if ($podaci["dan"] < 23)
					$podaci["znak"] = 7; // vaga
				else
					$podaci["znak"] = 8; // skorpion
				break;
			case 11:						// studeni
				if ($podaci["dan"] < 23)
					$podaci["znak"] = 8; // skorpion
				else
					$podaci["znak"] = 9; // strijelac
				break;
			case 12:						// prosinac
				if ($podaci["dan"] < 21)
					$podaci["znak"] = 9; // strijelac
				else
					$podaci["znak"] = 10; // jarac
				break;
			case 1:							// sijecanj
				if ($podaci["dan"] < 20)
					$podaci["znak"] = 10; // jarac
				else
					$podaci["znak"] = 11; // vodenjak
				break;
			case 2:							// veljaca
				if ($podaci["dan"] < 20)
					$podaci["znak"] = 11; // vodenjak
				else
					$podaci["znak"] = 12; // ribe
				break;
			}
		
		// pozivamo udaljenu proceduru koja vraca karakteristike
		// horoskopskog znaka koji je odredjen iz datuma rodjenja
		$server = new xmlrpc_client('/~mario/xmlrpc/xmlrpc_primjeri2.php', 'localhost', 80);
		$poruka = new xmlrpcmsg('primjer3.osobine', array(xmlrpc_encode($podaci)));
		$rezultat = $server -> send($poruka);
		
		// podaci iz dobivenog objekta se pridruzuju PHP polju $podaci3
		$podaci3 = xmlrpc_decode($rezultat -> value());		
		
		// vracanje xmlrpcresp objekta koji sadrzava rezultate
		return new xmlrpcresp(xmlrpc_encode($podaci3));
		
	}

		
	// objekt klase xmlrpc_server koji preslikava imena metoda u imena funkcija
	new xmlrpc_server(array('primjer1.starost' =>
                                array('function' => 'starost_unixa'),
                            'primjer2.zbrajanje_mnozenje' =>
                                array('function' => 'zbroji_pomnozi'),
                            'primjer3.horoskopski_znak' =>
                                array('function' => 'zodijak')));
		
?>