<?php

N2Loader::import('libraries.form.elements.group');

class N2ElementWidgetPosition extends N2ElementGroup {

    protected function fetchElement() {
        $values = explode('|*|', $this->getValue());
        if (!isset($values[6]) || $values[6] == '') {
            $values[6] = 1;
        }
        $values[6] = intval($values[6]);


        $this->getForm()
             ->set($this->name, implode('|*|', $values));


        new N2ElementSwitcher($this, $this->name . '-mode', n2_('Mode'), 'simple', array(
            'post'     => 'break',
            'rowClass' => 'n2-expert',
            'options'  => array(
                'simple'   => n2_('Simple'),
                'advanced' => n2_('Advanced')
            )
        ));

        $this->addSimple();

        $this->addAdvanced();

        N2JS::addInline('new N2Classes.FormElementWidgetPosition("' . $this->fieldID . '");');

        return parent::fetchElement();
    }

    protected function addSimple() {

        $simple = new N2ElementGroup($this, $this->name . '-simple');

        new N2ElementSliderWidgetArea($simple, $this->name . '-area', false);
        new N2ElementList($simple, $this->name . '-stack', n2_('Stack'), 1, array(
            'options' => array(
                1 => 1,
                2 => 2,
                3 => 3,
                4 => 4,
                5 => 5
            )
        ));
        new N2ElementNumber($simple, $this->name . '-offset', n2_('Offset'), 0, array(
            'style' => 'width:30px;',
            'unit'  => 'px'
        ));
    }

    protected function addAdvanced() {

        $advanced = new N2ElementGroup($this, $this->name . '-advanced', false, array(
            'style' => 'width:350px;'
        ));

        new N2ElementSwitcher($advanced, $this->name . '-horizontal', n2_('Horizontal'), 'left', array(
            'options' => array(
                'left'  => n2_('Left'),
                'right' => n2_('Right')
            )
        ));

        new N2ElementText($advanced, $this->name . '-horizontal-position', n2_('Position'), 0, array(
            'style' => 'width:100px;'
        ));

        new N2ElementSwitcher($advanced, $this->name . '-horizontal-unit', n2_('Unit'), 'px', array(
            'options' => array(
                'px' => 'px',
                '%'  => '%'
            )
        ));

        new N2ElementSwitcher($advanced, $this->name . '-vertical', n2_('Vertical'), 'top', array(
            'options' => array(
                'top'    => n2_('Top'),
                'bottom' => n2_('Bottom')
            )
        ));

        new N2ElementText($advanced, $this->name . '-vertical-position', n2_('Position'), 0, array(
            'style' => 'width:100px;'
        ));

        new N2ElementSwitcher($advanced, $this->name . '-vertical-unit', n2_('Unit'), 'px', array(
            'options' => array(
                'px' => 'px',
                '%'  => '%'
            )
        ));
    }
}
