| 
<?phpif(!$_POST || !$_POST['Panes'] || count($_POST['Panes']) < 1) {
 exit('empty request');
 }
 
 $Panes = $_POST['Panes'];
 
 // Validation
 if(!$Panes[1]['height'] || !is_numeric($Panes[1]['height']) || $Panes[1]['height'] < 100){
 exit('0:Window height is not set or less than 100');
 }
 if($Panes[1]['height'] > 600){
 exit('0:Window height exceeds limit of 600');
 }
 
 $width_r = array();
 $total_w = 0;
 foreach($Panes as $k => $v){
 if (!is_numeric($v['width']) || $v['width'] < 76 || $v['width'] > 600) {
 echo '0:Width of pane ', $k, ' is invalid';
 exit;
 }
 
 $total_w = $total_w + $v['width'];
 if($total_w > 1000) {
 exit('0:Overall width of window exceeds 1000');
 }
 
 if (!empty($v['border']) && !is_numeric($v['border'])) {
 echo '0:Border for pane ', $k, ' has not numeric value';
 exit;
 }
 
 if (!empty($v['border2line']) && !is_numeric($v['border2line'])) {
 echo '0:Thin inner padding for pane ', $k, ' has wrong value';
 exit;
 }
 
 if (!empty($v['borderColor']) && !is_numeric($v['borderColor'])) {
 echo '0:Border color setting for pane ', $k, ' has wrong value';
 exit;
 }
 /*if (!is_numeric($v['openable'])) {
 echo '0:Openable parameter for pane ', $k, ' has wrong value';
 exit;
 }*/
 if (!is_numeric($v['doorknob'])) {
 echo '0:Doorknob parameter for pane ', $k, ' has wrong value';
 exit;
 }
 if (!empty($v['doorknob']) && is_numeric($v['doorknob']) && !is_numeric($v['typeDoorknob'])) {
 echo '0:Border type for pane ', $k, ' has wrong value';
 exit;
 }
 if (!is_numeric($v['separator'])) {
 echo '0:Separator parameter for pane ', $k, ' has wrong value';
 exit;
 }
 if (is_numeric($v['separator']) && (!empty($v['separatorWidth']) && !is_numeric($v['separatorWidth']))) {
 echo '0:Separator Width setting for pane ', $k, ' has wrong value';
 exit;
 }
 if (!is_numeric($v['typeostar'])) {
 echo '0:Type of stars parameter for pane ', $k, ' has wrong value';
 exit;
 }
 if (!is_numeric($v['devide'])) {
 echo '0:Deviders parameter for pane ', $k, ' has wrong value';
 exit;
 }
 if (!is_numeric($v['typeDevider'])) {
 echo '0:Type of Devider parameter for pane ', $k, ' has wrong value';
 exit;
 }
 if (!is_numeric($v['distanceDevider'])) {
 echo '0:Distance between Deviders parameter for pane ', $k, ' has wrong value';
 exit;
 } else if ($v['distanceDevider'] == 2) {
 if (!empty($v['setDistanceCol']) && !preg_match('~^[0-9:]+$~', $v['setDistanceCol'])) {
 echo '0:Vertical distance for ', $k, ' pane is invalid';
 exit;
 }
 if (!empty($v['setDistanceRow']) && !preg_match('~^[0-9:]+$~', $v['setDistanceRow'])) {
 echo '0:Horizontal distance for ', $k, ' pane is invalid';
 exit;
 }
 }
 
 $width_r[$k] = $v['width'];
 }
 
 |