<?php

class manage {

public function __construct(){
		global $err;
		
		$act=preg_replace('/[^a-z_]/','',$_GET['act']);
		if($act){
			call_user_func(array(&$this,$act));
		} 
	}

	public function get(){
		global $DB;
		$limit=intval($_POST['limit']);
		$start=intval($_POST['start']);
		
		$dir=preg_replace("/[^(ASC|DESC)]/",'',$_POST['dir']);
		if($dir!='ASC'&&$dir!='DESC') $dir='ASC';
		$sort=$_POST['sort'];
		if(!$sort){
			$sort='id';
		}
		
		$data = $DB->selectPage($totalCount,"
								SELECT * FROM vlans ORDER BY $sort $dir  
								LIMIT ?d,?d",$start,$limit);
							
		$json=array("totalCount"=>$totalCount,"data"=>$data);
		echo json_encode($json);
	}
	
	public function save(){
		global $DB;
		
		$vlan_id=intval($_GET[vlan_id]);

		if($_POST['ident']!="xxx.xxx.xxx.xxx")$obj["ident"]=$_POST['ident'];
		if($_POST['pref']&&$_POST['pref']!="Префикс")$obj["pref"]=$_POST['pref'];
		if(!$obj["ident"]) error("Вы не ввели идентификатор");
		if(!$obj["pref"]) error("Вы не выбрали префикс");		
		$ips=pow(2,(32-$obj["pref"]));
		$s_ident=explode(".",$obj["ident"]);
		$n=intval($s_ident[3]/$ips);
		$id=$ips*$n;
		$obj["start_ip"]=$s_ident[0].".".$s_ident[1].".".$s_ident[2].".".($id+1);
		if($ips>256) 
			{
				$result = $ips % 256; if($result == 0)$k=intval($ips/256)-1; else $k=intval($ips/256);
				$obj["end_ip"]=$s_ident[0].".".$s_ident[1].".".($s_ident[2]+$k).".".($id+$ips-$k*256-2);
			}
		else $obj["end_ip"]=$s_ident[0].".".$s_ident[1].".".$s_ident[2].".".($id+$ips-2);

		if($vlan_id==0){
			if($_POST["name"]!="Название")$obj["name"]=preg_replace("/[^a-zA-Z0-9_]/",'',$_POST['name']);
			if(!$obj["name"] || $_POST["name"]=="Название") error("Введите название в формате [a-zA-Z0-9_]!");

			$DB->query("INSERT INTO vlans set ?a",$obj);
		} else {
			$DB->query("UPDATE vlans set ?a WHERE id=?d",$obj,$vlan_id);
		}
		
		success();
	}
	
}

?>