<?php
// ------------------------------------------------------------------------- //
//                XOOPS - PHP Content Management System                      //
//                       <http://www.xoops.org/>                             //
// ------------------------------------------------------------------------- //
//  This program is free software; you can redistribute it and/or modify     //
//  it under the terms of the GNU General Public License as published by     //
//  the Free Software Foundation; either version 2 of the License, or        //
//  (at your option) any later version.                                      //
//                                                                           //
//  This program is distributed in the hope that it will be useful,          //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
//  GNU General Public License for more details.                             //
//                                                                           //
//  You should have received a copy of the GNU General Public License        //
//  along with this program; if not, write to the Free Software              //
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
// ------------------------------------------------------------------------- //
// Author of File: 							     //
// Kazumi Ono (http://www.mywebaddons.com/ , http://www.myweb.ne.jp/)        //
// ------------------------------------------------------------------------- //
class XoopsFormCheckBox extends XoopsFormElement {

	// private
	var $options = array();

	// private
	// pre-selected values in array
	var $value = array();

	// public
	function XoopsFormCheckBox($caption, $name, $value=null){
		$this->setCaption($caption);
		$this->setName($name);
		if (isset($value)) {
			if ( is_array($value) ) {
				foreach ( $value as $v ) {
					$this->value[] = $v;
				}
			} else {
				$this->value[] = $value;
			}
		}
	}

	// public
	function getValue(){
		return $this->value;
	}

	// public
	function addOption($value, $name=""){
		if ( $name != "" ) {
			$this->options[$value] = $name;
		} else {
			$this->options[$value] = $value;
		}
	}

	// public
	function addOptionArray($arr){
		if ( is_array($arr) ) {
			foreach ( $arr as $k=>$v ) {
				$this->addOption($k, $v);
			}
		}
	}

	// public
	function getOptions(){
		return $this->options;
	}

	// public
	function render(){
		$ret = "";
		if ( count($this->getOptions()) > 1 && substr($this->getName(), -2, 2) != "[]" ) {
			$newname = $this->getName()."[]";
			$this->setName($newname);
		}
		foreach ( $this->getOptions() as $value => $name ) {
			
			$ret .= "<input type='checkbox' name='".$this->getName()."' id='".$this->getName()."' value='".$value."'";
			$count = count($this->getValue());
			if ( $count > 0 && in_array($value, $this->getValue()) ) {
				$ret .= " checked='checked'";
			}
			$ret .= $this->getExtra()." />".$name."\n";
		}
		return $ret;
	}
}
?>