<?
////////////////////////////////////////////////////////////////////////////
//
//	Business & Control 2004-2008.
//
//	oszt�ly neve: class_banner.php
//  c�lja: banner kezel� oszt�ly
//	oszt�lyv�ltoz�k:
//
//	sizes 		=> el�re defini�lt banner m�retek
//	ext_type	=> banner t�pusa (SWF, GIF, PNG, JPG)
//	published	=> meylik video f�jl van publik�lva a jobb fels� dobozba (videohirker projektb�l j�tt, m�g sz�ks�g lehet r�)
//	playVideo	=> ha van lej�tsz� a user oldalon, akkor az automatikusan induljon?
//
//
//
//////////////////////////////////////////////////////////////////////////

class banner {

	var $sizes=array(
		top   		=> array(x=>768,y=>90),
		top2   		=> array(x=>470,y=>60),
		right  		=> array(x=>120,y=>240),
		left  		=> array(x=>120,y=>240),
		center 		=> array(x=>468,y=>120),
		bottom 		=> array(x=>728,y=>90)
	);

	var $ext_type=array('swf','png','jpg','gif');
	var $published;
	var $playVideo;


/**
 * Construct function
 *
 * @param string $sizes Project depend banner sizes. Sizes conatins arrays with X Y parameters.
 * @return viod
 */

function banner($sizes=''){  // $sizes ARRAY

	// lehetoseget kell adni, hogy a mereteket a projekt felulb�r�lja
	// a $sizes oszt�lyv�ltoz� csak javaslat legyen
	if(is_array($sizes)) foreach($sizes as $key => $item){
		//if(array_key_exists($key,$this->sizes))
		$this->sizes[$key]=$item;
	}


}

function clearBannersFromTable(){


}

/**
 * get all folders, used array: sizes
 *
 * @return array
 */
function getFolders() {
	foreach($this->sizes as $folder=>$sizes) {
		$files=$this->getBanner($folder,true);
		$data[]=array(folder=>$folder, sizes=>$sizes, files=>$files);
	}
	return $data;
}


/**
 * get banners from one folders
 *
 * @param string $folder name of folder
 * @param object $all[optional]
 * @return array|NULL
 */
function getBanner($folder,$all=false) {
	$path=PATH.BANNERS.$folder;

	if($fh=@opendir($path)) {
		while($file=readdir($fh)){
			if($file[0]!='.'){
				$ext=$this->getFileExtension($file);
				if(in_array($ext,$this->ext_type)) {
					$url=$folder."/".$file;
					if($bd=$this->getBannerData($url)) extract($bd); // -> $id, $link, $pos
					unset($extra);
					if($this->playVideo && $folder=='boxrighttop' && $file=='flvplayer.swf' && $this->getVideoPublished()) $extra="?theFile=".$this->published."&defaultImage=Image/playvideo.jpg&theVolume=100&startPlayingOnload=no&popUpHelp=no&bufferSeconds=2&videoSmoothing=yes&loop=yes";
					$files[$pos]=compact(id,url,ext,extra,link);
					ksort($files);
				}
			}
		}
		closedir($fh);
	}


	if(is_array($files)) {
		if($all) {
			// szomsz�dos elemek be�get�se
			foreach($files as $k=>$f) {
				$next=next($files);
				$files[$k][prev]=$prev_url;
				$files[$k][next]=$next[url];
				$prev_url=$f[url];
			}
			return $files;
		}
		else{
			shuffle($files);
			$flash=$this->sizes[$folder];
			$flash[url]=$files[0][url];
			$flash[extra]=$files[0][extra];
			$flash[ext]=$this->getFileExtension($files[0][url]);
			$flash[code]=md5($files[0][url]);
			return $flash;
		}
	}
}

/**
 * save banner to banner table
 *
 * @param string $banner name of banner
 * @return integer
 */
function addBannerToDb($banner) {

	global $dbi;

	$sql="select banner from banner where banner = '$banner'";
	$res=sql_query($sql,$dbi);
	list($b)=sql_fetch_array($res,$dbi);

	if($b){
		list($f,$n)=split('/',$banner);
		$banner=$f.'/b'.$n; // ha van m�r fent, akkor is felmehet, csak m�s n�ven.
	}

	$sql="select max(pos) from banner";
	$res=sql_query($sql,$dbi);
	list($pos)=sql_fetch_row($res,$dbi);
	$pos++;

	$sql="insert into banner (banner,pos) values ('$banner',$pos)";
	sql_query($sql,$dbi);

	return array(name=>$banner,pos=>$pos);
}

/**
 * upload the banner into $folder directory
 *
 * @param string $folder name of folder
 * @return NULL
 */
function uploadBanner($folder) {
	$f=$folder.'/'.$_FILES[banner][name];
	$d=$this->addBannerToDb($f);
	$banner=$d[name];
	move_uploaded_file($_FILES[banner][tmp_name],PATH.BANNERS.$banner);

}

/**
 * get file extension
 *
 * @param string $file name of file
 * @return string
 */
function getFileExtension($file){
	$ext=strrchr($file,'.');
	return strtolower(str_replace('.','',$ext));
}

/**
 * get banner data
 *
 * @param string $banner name of banner
 * @return integer
 */
function getBannerData($banner) {
	global $dbi;
	$sql="select link,pos from banner where banner='$banner'";
	$res=sql_query($sql,$dbi);
	$a=sql_fetch_assoc($res,$dbi);
	if(!$a) {
		$a[pos]=$this->addBannerToDB($banner);
	}

	return $a;
}


/**
 * save link for banner
 *
 * @param string $banner name of banner
 * @param string $link link
 * @return NULL
 */
function saveLink($banner,$link) {
	global $dbi;
	$sql="update banner set link='$link' where banner='$banner'";
	sql_query($sql,$dbi);
}

/**
 * switch banners order
 *
 * @param string $banner1 name of banner
 * @param string $banner2 name of banner
 * @return NULL
 */
function switchBanners($banner1,$banner2) {
	global $dbi;

	$sql="select pos from banner where banner='$banner1'";
	$res=sql_query($sql,$dbi);
	list($pos1)=sql_fetch_array($res,$dbi);
	$sql="select pos from banner where banner='$banner2'";
	$res=sql_query($sql,$dbi);
	list($pos2)=sql_fetch_array($res,$dbi);

	$sql="update banner set pos=$pos2 where banner='$banner1'";
	sql_query($sql,$dbi);
	$sql="update banner set pos=$pos1 where banner='$banner2'";
	sql_query($sql,$dbi);
}

/**
 * delete one banner
 *
 * @param string $banner name of banner
 * @return NULL
 */
function deleteBanner($banner) {
	unlink(BANNERS.$banner);
	global $dbi;
	$sql="delete from banner where banner='$banner'";
	sql_query($sql,$dbi);
}

/**
 * get flash videos from video folder
 *
 * @return array|NULL
 */
function getFlashVideos(){

	$path=BANNERS."video";

	if(!is_dir($path)) return false;

	$this->getVideoPublished();

	$fh=opendir($path);
	while($file=readdir($fh))
		if($file[0]!='.'){
			if($this->published==$file) $onair=1;
			else $onair=0;

			if($this->getFileExtension($file)=='flv') $files[]=array(name=>$file,onair=>$onair);
		}
	closedir($fh);

	return $files;
}

/**
 * get published video
 *
 * @return NULL
 */
function getVideoPublished(){

	global $dbi;

	// csak a lej�tszand� f�jl van benne

	$sql="select video from videos";
	$res=sql_query($sql,$dbi);
	list($video)=sql_fetch_array($res,$dbi);

	return $this->published=$video;
}

/**
 * publish the video
 *
 * @param string $video name of video
 * @return NULL
 */
function setVideoPublished($video){

	global $dbi;

	$sql="delete from videos";
	sql_query($sql,$dbi);

	$sql="insert into videos (video) value ('$video')";
	sql_query($sql,$dbi);

}

}
?>