public function processFormAttributes()
 {
     $formVars = $this->usePostVars ? $_POST : $_GET;
     if (isset($formVars[EMBConst::FIELDNAME_PAGEBEHAVIOR])) {
         $labelsField = $this->getFieldName('labels');
         $labelsHash = $this->getFieldName('labelsHash');
         $oldValueField = $this->getFieldName('old_' . $this->attribute);
         $itemBeforeField = $this->getFieldName('itemBefore');
         $menuItemsField = $this->getFieldName($this->attribute);
         $oldLabelsHash = isset($formVars[$labelsHash]) ? $formVars[$labelsHash] : null;
         $oldValue = isset($formVars[$oldValueField]) ? $formVars[$oldValueField] : null;
         list($oldMenuId, $oldMenuitemId, $oldInsertBefore) = $this->decodeAttributeValue($oldValue);
         list($newMenuId, $newItemId) = explode(EMBDropDownList::KEYS_SEPARATOR, $formVars[$menuItemsField]);
         $newInsertBefore = !empty($formVars[$itemBeforeField]) ? true : false;
         $newValue = $newMenuId . EMBDropDownList::KEYS_SEPARATOR . $newItemId . EMBDropDownList::KEYS_SEPARATOR . $newInsertBefore;
         $newLabels = isset($formVars[$labelsField]) ? $formVars[$labelsField] : null;
         $newLabelsHash = $this->getLabelsHash($newLabels);
         $menuChanged = $newMenuId != $oldMenuId;
         $labelsChanged = $newLabelsHash != $oldLabelsHash;
         $valueChanged = $newValue != $oldValue;
         if ($valueChanged) {
             $this->getOwner()->setAttribute($this->attribute, $newValue);
             if ($menuChanged) {
                 $this->initMenuData($oldValue);
                 //load with old values
                 if (!empty($this->_menu) && !empty($this->_menuitemId)) {
                     $nestedConfig = $this->_menu->nestedconfig;
                     $this->_menu->nestedconfig = EMBNestedConfigUtil::removeId($nestedConfig, $this->_menuitemId);
                     $this->_menu->save();
                 }
             }
             $this->initMenuData();
             //load with new values
             if (!empty($this->_menu)) {
                 $nestedConfig = $this->_menu->nestedconfig;
                 if ($oldValue == null) {
                     $newItem = $this->createMenuItem(array('labels' => $newLabels, 'url' => $this->getOwner()->getActionView()));
                     $newItem->save();
                 } else {
                     $newItem = $this->_menuItem;
                     if (!empty($newItem)) {
                         if ($labelsChanged && !empty($newItem)) {
                             $newItem->labels = $newLabels;
                             $newItem->url = $this->getOwner()->getActionView();
                             $newItem->save();
                         } elseif (Yii::app()->createUrl($this->getOwner()->getActionView()) != $newItem->url) {
                             $newItem->url = $this->getOwner()->getActionView();
                             $newItem->save();
                         }
                     }
                 }
                 if (!empty($newItem)) {
                     if ($newInsertBefore) {
                         $this->_menu->nestedconfig = EMBNestedConfigUtil::moveBefore($nestedConfig, $newItemId, $newItem->itemid);
                     } else {
                         $this->_menu->nestedconfig = EMBNestedConfigUtil::moveAfter($nestedConfig, $newItemId, $newItem->itemid);
                     }
                     $this->_menu->save();
                 }
             }
         } else {
             if ($labelsChanged) {
                 $this->initMenuData();
                 //load with new values
                 if (!empty($this->_menuItem)) {
                     $this->_menuItem->labels = $newLabels;
                     $this->_menuItem->url = $this->getOwner()->getActionView();
                     $this->_menuItem->save();
                 }
             }
         }
     }
 }