<?
    
if (!empty($_SERVER['SCRIPT_FILENAME']) && basename($_SERVER['SCRIPT_FILENAME']) == 'rotassist-model-checks.php')
        exit;

    function 
model_check_existence($params$names)
    {
        foreach(
$names as $name)
        {
            if (
strlen($params[$name]) == 0)
                return 
"Nie podano parametru $name";
        }

        return 
'';
    }

    function 
model_check_numeric($params$names)
    {
        foreach(
$names as $name)
        {
            if (!
is_numeric($params[$name]))
                return 
"Wartość parametru $name musi być liczbą";
        }

        return 
'';
    }

    function 
model_check_string($param$strings)
    {
        foreach(
$strings as $string)
        {
            if (
$param == $string)
                return 
'';
        }

        return 
"Wartość parametru $param jest nieprawidłowa";
    }

    function 
model_check_greater_than_zero($params$names)
    {
        foreach(
$names as $name)
        {
            if (
$params[$name] <= 0)
                return 
"Wartość parametru $name musi być większa od zera";
        }

        return 
'';
    }

    function 
model_check_greater_equal_zero($params$names)
    {
        foreach(
$names as $name)
        {
            if (
$params[$name] < 0)
                return 
"Wartość parametru $name musi być większa lub równa zeru";
        }

        return 
'';
    }

    function 
model_check($params)
    {
        
$err model_check_existence($params, array('sx''sy''ax''ay''bx''by''orientation''angle'));
        if (
$err)
            return 
$err;

        
$err model_check_numeric($params, array('sx''sy''ax''ay''bx''by'));
        if (
$err)
            return 
$err;

        if (
$params['refpoint'] && $params['refpoint'] != 'on')
            return 
'Parametr "refpoint" powinien być pusty lub równy "on"';

        if (!
$params['refpoint'])
        {
            
$err model_check_greater_than_zero($params, array('sx''sy'));
            if (
$err)
                return 
$err;

            
$err model_check_greater_equal_zero($params, array('ax''ay''bx''by'));
            if (
$err)
                return 
$err;
        }
        else
        {
            
$err model_check_greater_equal_zero($params, array('sx''sy''ax''ay''bx''by'));
            if (
$err)
                return 
$err;
        }

        
$err model_check_string($params['orientation'], array('auto''h''v'));
        if (
$err)
            return 
$err;

        
$err model_check_string($params['angle'], array('deg''rad'));
        if (
$err)
            return 
$err;

        if (
$params['ax'] == $params['bx'] && $params['ay'] == $params['by'])
            return 
'Podaj DWA punkty';

        return 
'';
    }
?>