<?php

/**
 * Description of IndexController
 *
 * @author dmastylak
 */
class Page_Controller_IndexController extends Main_Core_Controller_IndexController {

	public function indexAction() {
		$mainpage = $page = R::findOne('page', 'slug = ? and type = ?', [$this->_getParam('slug'), 'file']);

		$this->view->breadcumbs = $this->_getBreadcumbs($page);
		$this->view->page = $mainpage;
		
		if($page->forms_id){
			$form = R::findOne('forms', "WHERE `id` = {$page->forms_id} ORDER BY `id` desc");
			
			$formFormFieldsBeans = R::findAll('formformfields', "WHERE `forms_id` = {$page->forms_id} ORDER BY `order`");
			$fields = array();
			foreach($formFormFieldsBeans as $ben){
				$fields[] = $ben->formfields_id;
			}
			
			$fieldsData = array();
			$fieldsData[] = array( //anty spam bot
				    "id" => '0',
				    "inputname" => 'fake',
				    "label" => 'name',
				    "fieldid" => '',
				    "required" => 1,
				    "class" => '',
				);
			
			
			foreach($fields as $field){
				$fieldBean = R::findOne('viewformfields', "WHERE `id` = {$field}");
				$fieldsData[] = array(
				    "id" => $fieldBean->id,
				    "inputname" => $fieldBean->inputname,
				    "label" => $fieldBean->label,
				    "fieldid" => $fieldBean->fieldid,
				    "required" => $fieldBean->required,
				    "class" => $fieldBean->required,
				);
			}
			$this->view->form = $form;
			$this->view->fields = $fieldsData;
		}
	}

	//TO DO 
	// BREAK LINI JAK ZA DUŻO ZNAKÓW
	private function _getBreadcumbs($page, $maxCharsOnRow = 62){
		$chars = 3 + strlen($page->name);
		$breadcrumbs = array();
		$breadcrumbs[] = array($page->name, 0, 0);
		
		while($page = $this->_getParent($page->parent)){
			$chars += 3 + strlen($page->name);
			if($chars >= $maxCharsOnRow){
				$beak = 1;
				$chars = 3 + strlen($page->name);
			}else{
				$beak = 0;
			}
			
			if($page->type == 'file'){
				$breadcrumbs[] = array($page->name, 1, $beak, '/');
			}else{
				$breadcrumbs[] = array($page->name, 0, $beak);
			}
		}
		$chars += 3 + 3;
		$breadcrumbs[] = array('OIL', 1, 0, '/');
		return array_reverse($breadcrumbs);
	}


	public function getBreadcumb($parent) {
		$p = R::findOne('page', 'tree = ?', [$parent]);

		$pa = [];

		if ($p) {
			$pa[] = $p->name;
			$pa[] = $this->getBreadcumb($p->parent);
		}
		return $pa;
	}
	
	private function _getParent($parent){
		return R::findOne('page', 'tree = ?', [$parent]);
	}

	/**
	 * Pobieranie menu głównego
	 */
	public static function getMainMenu() {
		$menu = R::find('page', 'parent = ? ORDER BY o', ['0']);
		$requestParams = Zend_Controller_Front::getInstance()->getRequest()->getParams();
		
		$m = '';

		foreach ($menu as $main) {
			if ($main->active == 0) {
				continue;
			}
			$m .= '<li>';

			$sub_menu = R::find('page', 'parent = ? AND active = ? ORDER BY o', ['' . $main->tree . '', 1]);
			if (!empty($sub_menu)) {
				$m .= '<span class = "dropdown1">
            ' . $main->name . '
            <img src = "/modules/Core/front/images/menu_arrow.png" class="arrow">
            <img src = "/modules/Core/front/images/menu_arrow-black.png" class="black-arrow">
            </span>';
				$m .= '<ul class="level2 regular">';

				$cL1 = count($sub_menu);
				$L1Class = '';
				foreach ($sub_menu as $sub_2) {
					$cL1 -= 1;
					if($cL1 == 0){
						$L1Class = ' class="last"';
					}
					
					$urlHelper = new Zend_View_Helper_Url();

					if ($sub_2->type == 'file') {
						$url = $urlHelper->url(['main' => $main->slug, 'slug' => $sub_2->slug], 'page-show-l2', true);
					} elseif ($sub_2->type == 'main') {
						$urlHelper = new Zend_View_Helper_Url();
						$data = json_decode($sub_2->action);
						$url = $urlHelper->url([], $data->route, true) . $data->params;
					} else
						$url = '#';

					$last = R::find('page', 'parent = ? AND active = ? ORDER BY o', [$sub_2->tree, 1]);
					if (!empty($last)) {
                        if($sub_2->name == 'Biuro Izby'){
                                $m .= '<li' . $L1Class . '><span class="dropdown2" style="font-weight: bold;">' . $sub_2->name . ' <img src = "/modules/Core/front/images/menu_arrow.png" class="arrow">
            <img src = "/modules/Core/front/images/menu_arrow-black.png" class="black-arrow"></span>';
                        }else{
                                $m .= '<li' . $L1Class . '><span class="dropdown2">' . $sub_2->name . ' <img src = "/modules/Core/front/images/menu_arrow.png" class="arrow">
            <img src = "/modules/Core/front/images/menu_arrow-black.png" class="black-arrow"></span>';
                        }
						$m .= '<ul class="level3">';

						$cL2 = count($last);
						$L2Class = '';
						foreach ($last as $l) {
                            $activeId = '';
							$cL2 -= 1;
							if($cL2 == 0){
								$L2Class = ' class="last"';
							}
							$url = $urlHelper->url(['main' => $main->slug, 'slug' => $l->slug], 'page-show-l2', true);
							$last2 = R::find('page', 'parent = ? ORDER BY o', [$l->tree]);
							if (!empty($last2)) {
								$m .= '<li' . $L2Class .'><a class="dropdown2">' . $l->name . '<img src = "/modules/Core/front/images/menu_arrow.png" class="arrow">
            <img src = "/modules/Core/front/images/menu_arrow-black.png" class="black-arrow"></a>';

								$m .= '<ul class="level3">';
								$cL3 = count($last2);
								$L3Class = '';
                                $activeId = '';
								foreach ($last2 as $v) {
                                        if(isset($requestParams['slug']) && $v->slug == $requestParams['slug']){
                                                $activeId = ' id="active-ele"';
                                        }
                                    $url = $urlHelper->url(['main' => $l->slug, 'slug' => $v->slug], 'page-show-l2', true);
									$cL3 -= 1;
									if($cL3 == 0){
										$L3Class = ' class="last"';
									}
									$m .= '<li' . $L3Class . $activeId .'><a href="' . $url . '">' . $v->name . '</a></li>';
                                    $activeId = '';
								}

								$m .= '</ul>';

								$m .= '</li>';
							} else {
                                    if(isset($requestParams['slug']) && $l->slug == $requestParams['slug']){
                                                $activeId = ' id="active-ele"';
                                        }
								$m .= '<li' . $L2Class . $activeId .'><a href="' . $url . '">' . $l->name . '</a></li>';
                                $activeId = '';
							}
						}

						$m .= '</ul>';

						echo '</li>';
					} else {
                        if(isset($requestParams['slug']) && $sub_2->slug == $requestParams['slug']){
                                                $activeId = ' id="active-ele"';
                                        }    
						$m .= '<li' . $L1Class . @$activeId .'><a href="' . $url . '">' . $sub_2->name . '</a></li>';
                        $activeId = '';
					}
				}

				$m .= '</ul>';
			} else {
				if ($main->action == '') {
					$route = $urlHelper->url(['main' => 'inne', 'slug' => $main->slug], 'page-show-l2', true);
				} else {
					if ($main->type != 'file') {
						$urlHelper = new Zend_View_Helper_Url();
						$data = json_decode($main->action);
						$route = $urlHelper->url([], $data->route, true) . $data->params;
					} else {
						$route = '#';
					}
				}
				$m .= '<a href="' . $route . '">' . $main->name . '</a>';
			}
			$m .= '</li>';
		}
		return $m;
	}

}
