<?php

    //error_reporting(E_ALL);
    define('RESIZE', '0');
    define('CROP', '1');    
    
    function mod_get_age($birthDate) {
         $birthDate = explode("-", $birthDate);
         $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[1], $birthDate[2], $birthDate[0]))) > date("md") ? ((date("Y")-$birthDate[0])-1):(date("Y")-$birthDate[0]));
         return $age;
    }
    
    function mod_wrap($body,$maxlength,$suffix='...'){
        if (strlen($body)<$maxlength) return $body;
        $body = substr($body, 0, $maxlength);
        $rpos = strrpos($body,' ');
        if ($rpos>0) $body = substr($body, 0, $rpos).$suffix;
        return $body;
    }    
    

    function mod_thumbnail($image, $w, $h, $mode) {
        //echo getcwd();
        //$image=urlencode($image);
        
        $tmp=explode('/', $image);
        $utf=$tmp[count($tmp)-1];
        unset($tmp[count($tmp)-1]);
        $nf=implode('/', $tmp);
        $letter='r';
        if($mode==CROP) $letter='c';        
        
            //exit;
        $pi=pathinfo($_SERVER['DOCUMENT_ROOT'].$image);
                
        if(!file_exists(urldecode($pi['dirname']).'/_thumbs_'.$w.$letter.$h.'/'.$utf)) {
        require_once($_SERVER['DOCUMENT_ROOT'].'/_lib/image_transform.php');
          $it=new ImageTransform();
  
          if(!file_exists(urldecode($pi['dirname']).'/_thumbs_'.$w.$letter.$h)) {
              @mkdir(urldecode($pi['dirname']).'/_thumbs_'.$w.$letter.$h, 0777);
          }    
          if($mode==RESIZE) {       
              $it->resize($_SERVER['DOCUMENT_ROOT']. urldecode($image), $w, $h, urldecode($pi['dirname']).'/_thumbs_'.$w.$letter.$h.'/'.$utf);
          } else {
              $it->crop($_SERVER['DOCUMENT_ROOT']. urldecode($image), $w, $h, urldecode($pi['dirname']).'/_thumbs_'.$w.$letter.$h.'/'.$utf);        
          }
        }
        return $nf.'/_thumbs_'.$w.$letter.$h.'/'.$utf;                   
    }
    
    
    
    function mod_pl_number_variant($number, $pozycja, $pozycje, $pozycji, $display_number=true) {
        if($display_number) $ret=$number.' '; else $ret='';
		//echo $number;
        $r1=$number % 100;
        if ($r1 == 1 && $number < 100)
        {
            $p=$pozycja;
        }
        else
        {
        $r2=$r1 % 10;
        if (($r2 > 1 && $r2 < 5) && ($r1 < 12 || $r1 > 14))
        {
            $p=$pozycje;
        }
        else
        {
            $p=$pozycji;
        }
        }
		//if($number==0) $p=$pozycji;
        return $ret.$p;    
    }
    
    function mod_currency_format($number, $currency) {
        return number_format($number, 2, '.', ' ').' '.$currency;
    }
    
    function mod_pl_validation_message($type, $min=null, $max=null) {
        //print_r($type);
        switch($type['error']) {
            case 'required': return 'To pole jest wymagane!'; break;
            case 'wrong': return 'Wprowadzona wartość jest nieprawidłowa!'; break;
            case 'min': return 'Podana wartość jest za krótka (min. '.mod_pl_number_variant($type['min'],'znak','znaki','znaków').')';
            case 'max': return 'Podana wartość jest za długa (maks. '.mod_pl_number_variant($type['max'],'znak','znaki','znaków').')';
        }
    }
    
    function mod_get_variables($mod, $url = FALSE){
        // If $url wasn't passed in, use the current url
        if($url == FALSE){
           // print_R($_SERVER);
           // echo 'taaa';
            $scheme = $_SERVER['SERVER_PORT'] == 80 ? 'http' : 'https';
            $url = $scheme.'://'.$_SERVER['HTTP_HOST'].$_SERVER['ORIGINAL_REQUEST_URI'];
        }   

        // Parse the url into pieces
        $url_array = parse_url($url);
        // The original URL had a query string, modify it.
        if(!empty($url_array['query'])){
            parse_str($url_array['query'], $query_array);
            foreach ($mod as $key => $value) {
                if(!empty($query_array[$key])){
                    $query_array[$key] = $value;
                }
            }
        }
        // The original URL didn't have a query string, add it.
        else{
            $query_array = $mod;
        }
        return $url_array['scheme'].'://'.$url_array['host'].$url_array['path'].'?'.http_build_query($query_array);
    }    
    
    function split_semicolon($inp) {
        $ret=explode(';;',substr($inp,1,-1));
        if(!$ret[0]) $ret=null;        
        return $ret;
    }
    
    
    function mod_pl_date($inp) {
        $months=array('Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');
		$months=array('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru');
        $utc=strtotime($inp);
        return date('j', $utc).' '.$months[(date('n', $utc)-1)].' '.date('Y', $utc);
    }    
	
	function mod_date_ago($inp) {
		$utc=strtotime($inp);
		$diff=time()-$utc;
		if($diff>=0 && $diff<60) {
			return mod_pl_number_variant($diff, 'sekunda temu', 'sekundy temu', 'sekund temu');
		}
		if($diff>=60 && $diff<3600) {
			return mod_pl_number_variant(floor($diff/60), 'minuta temu', 'minuty temu', 'minut temu');
		}
		if($diff>=3600 && $diff<86400) {
			return mod_pl_number_variant(floor($diff/3600), 'godzina temu', 'godziny temu', 'godzin temu');
		}
		if($diff>=86400) {
			return mod_pl_number_variant(floor($diff/86400), 'dzień temu', 'dni temu', 'dni temu');
		}
		
		echo $diff;
	}

?>
