<?php 
 | 
class validate { 
 | 
    static $kod = FALSE; 
 | 
     
 | 
    static function KOD(&$kod, $exists=NULL) { 
 | 
        if(ltrim($kod, '0123456789')!='' OR strlen($kod)>8 OR strlen($kod)<1) { 
 | 
            errorclass::add('Błędny KOD - dozwolone tylko cyfry'); 
 | 
        } 
 | 
         
 | 
        $kod = str_pad($kod, 8, '0', STR_PAD_LEFT); 
 | 
         
 | 
        if(!is_null($exists)) { 
 | 
            if($exists!==ksiazki::exists($kod)) { 
 | 
                errorclass::add('Wybrana książka '.($exists ? 'nie' : 'już').' istnieje!'); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function EAN($kod) { 
 | 
        if( ltrim($kod, '0123456789') != '' OR strlen($kod) != 13 ) { 
 | 
            errorclass::add('Błędny ISN - dozwolone tylko cyfry'); 
 | 
        } 
 | 
         
 | 
        if( substr($kod, -1) != checksum::EAN(substr($kod, 0, -1)) ) { 
 | 
            errorclass::add('Podany kod ISN jest błędny'); 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function ISBN(&$kod) { 
 | 
        $kod = str_replace('-', '', strtoupper($kod)); 
 | 
        if( ltrim($kod, '0123456789X') != '' OR strlen($kod) != 10 ) { 
 | 
            errorclass::add('Błędny ISBN - dozwolone tylko cyfry i znak X'); 
 | 
        } 
 | 
         
 | 
        if( substr($kod, -1) != checksum::ISBN(substr($kod, 0, -1)) ) { 
 | 
            errorclass::add('Podany ISBN jest błędny'); 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function ISSN(&$kod) { 
 | 
        $kod = str_replace('-', '', strtoupper($kod)); 
 | 
        if( ltrim($kod, '0123456789X') != '' OR strlen($kod) != 8 ) { 
 | 
            errorclass::add('Błędny ISSN - dozwolone tylko cyfry'); 
 | 
        } 
 | 
         
 | 
        if( substr($kod, -1) != checksum::ISSN(substr($kod, 0, -1)) ) { 
 | 
            errorclass::add('Podany ISSN jest błędny'); 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function MSC(&$kod, $polka=NULL, $rzad=NULL) { 
 | 
        $kod = strtoupper($kod); 
 | 
         
 | 
        if($polka===NULL) { 
 | 
            $polka = $_GET['polka']; 
 | 
        } 
 | 
        if($rzad===NULL) { 
 | 
            $rzad = $_GET['rzad']; 
 | 
        } 
 | 
         
 | 
        if(!ctype_alnum($kod) OR ctype_digit($kod) OR $kod=='' OR strlen($kod)>5) { 
 | 
            errorclass::add('Podany kod miejsca (regał) jest błędny'); 
 | 
        } 
 | 
        if($polka!='' AND (!ctype_digit($polka) OR $polka>255)) { 
 | 
            errorclass::add('Podany kod miejsca (półka) jest błędny'); 
 | 
        } 
 | 
        if($rzad!='' AND (!ctype_digit($rzad) OR $rzad>255)) { 
 | 
            errorclass::add('Podany kod miejsca (rząd) jest błędny'); 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function type(&$kod) { 
 | 
        $kod = str_replace('-', '', $kod); 
 | 
         
 | 
        switch(strlen($kod)) { 
 | 
            case 13: 
 | 
                self::EAN($kod); 
 | 
                 
 | 
                if(substr($kod, 0, 3)=='978' OR substr($kod, 0, 3)=='979') { 
 | 
                    return 'ISBN'; 
 | 
                } 
 | 
                elseif(substr($kod, 0, 3)=='977') { 
 | 
                    return 'ISSN'; 
 | 
                } 
 | 
            break; 
 | 
            case 9: 
 | 
                if(self::$kod) { 
 | 
                    $kod = substr($kod, 1); 
 | 
                    self::ISSN($kod); 
 | 
                    $kod = convert::ISSN8_to_ISSN13($kod); 
 | 
                    return 'ISSN'; 
 | 
                } 
 | 
            break; 
 | 
            case 8: 
 | 
                if(self::$kod) { 
 | 
                    self::KOD($kod); 
 | 
                    return 'KOD'; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    self::ISSN($kod); 
 | 
                    $kod = convert::ISSN8_to_ISSN13($kod); 
 | 
                    return 'ISSN'; 
 | 
                } 
 | 
            break; 
 | 
            case 10: 
 | 
                self::ISBN($kod); 
 | 
                $kod = convert::ISBN10_to_ISBN13($kod); 
 | 
                return 'ISBN'; 
 | 
            break; 
 | 
            default: 
 | 
                if(self::$kod AND ctype_digit($kod)) { 
 | 
                    self::KOD($kod); 
 | 
                    return 'KOD'; 
 | 
                } 
 | 
            break; 
 | 
        } 
 | 
         
 | 
        if(self::$kod) { 
 | 
            self::MSC($kod); 
 | 
            return 'MSC'; 
 | 
        } 
 | 
         
 | 
        errorclass::add('Nieznany typ kodu'); 
 | 
    } 
 | 
} 
 | 
?> 
 |