<?php

/**
 *
 * @author Peter Csubak (chuby)
 * @copyright Peter Csubak (chuby)
 */
class PForm extends PComponent{
	
	/** @CProperty */
	protected $name;
	/** @CProperty */
	protected $content;
	
	public static $evtOnSend = 1;
	
	public function __construct($name = "", $id = "", $cssclass = "", $evtslock = ""){
		$this->name = $name;
		$this->id = $id;
		$this->cssclazz = $cssclass;
		$this->eventsLock = $evtslock;
	}
	
	public function render(){
		$res = "<form metod=\"post\"";
		
		if ($this->id != ""){
			$res .= " id=\"".$this->id."\"";
		}
		
		if ($this->cssclazz != ""){
			$res .= " class=\"".$this->cssclazz."\"";
		}
		
		if ($this->name != ""){
			$res .= " name=\"".$this->name."\"";
		}
		
		if (is_array($this->activeEvents)){
			foreach ($this->activeEvents as $evtTypes){
				if ($evtTypes == self::$evtOnSend){   //TYPE			SENDEDFROM			BINDEDTO				LOCK
					$res .= " action=\"javascript:sendAjaxEvent('AjaxOnFormSend', '".$this->id."', '".$this->bindedTo."', '".$this->eventsLock."');\"";
				}
			}
		}
		
		if (is_object($this->content) && ($this->content instanceof PComponent)){
			$res .= ">".$this->content->render()."</form>";
		}elseif(is_array($this->content)){
			$res .= ">";
			foreach ($this->content as $cont){
				if ($cont instanceof PComponent){
					$res .= $cont->render();
				}else{
					$res .= $cont;
				}
			}
			$res .= "</form>";
		}else{
			$res .= ">".$this->content."</form>";
		}
		
		return $res;
	}
	
	//TODO Ide majd kell egy eseménykezelő, ami megkapja a form összes eseményét és a változásokat
	//eltárolja a form komponenseibe, nyilván ehhez le is kell zárni a form esemányeit, és utánna mejd
	//tovább kell küldeni, de már belső sesmény formályában. 
	//Ez azért is jobb meoldűs, mert így a PFarme-ben majd nem kell játszani az alacsonyszintű eseményekkel. 

}
?>