//updating 'LOG' (varchar)
    // global $log;
    // $rec['LOG']=$log;
    //UPDATING RECORD
    if ($ok) {
        if ($rec['ID']) {
            SQLUpdate($table_name, $rec);
            // update
        } else {
            $new_rec = 1;
            $rec['ID'] = SQLInsert($table_name, $rec);
            // adding new record
        }
        $out['OK'] = 1;
        if ($rec['LINKED_OBJECT'] && $rec['LINKED_PROPERTY']) {
            addLinkedProperty($rec['LINKED_OBJECT'], $rec['LINKED_PROPERTY'], $this->name);
        }
        if ($old_linked_object && $old_linked_object != $rec['LINKED_OBJECT'] && $old_linked_property && $old_linked_property != $rec['LINKED_PROPERTY']) {
            removeLinkedProperty($old_linked_object, $old_linked_property, $this->name);
        }
        $this->poll_device($rec['ID']);
    } else {
        $out['ERR'] = 1;
    }
}
//options for 'REQUEST_TYPE' (select)
$tmp = explode('|', DEF_REQUEST_TYPE_OPTIONS);
foreach ($tmp as $v) {
    if (preg_match('/(.+)=(.+)/', $v, $matches)) {
        $value = $matches[1];
        $title = $matches[2];
         global ${'linked_property' . $properties[$i]['ID']};
         $old_linked_object = $properties[$i]['LINKED_OBJECT'];
         $old_linked_property = $properties[$i]['LINKED_PROPERTY'];
         $properties[$i]['CHECK_LATEST'] = date('Y-m-d H:i:s');
         $properties[$i]['UPDATED'] = date('Y-m-d H:i:s');
         if (${'linked_object' . $properties[$i]['ID']} && ${'linked_property' . $properties[$i]['ID']}) {
             $properties[$i]['LINKED_OBJECT'] = ${'linked_object' . $properties[$i]['ID']};
             $properties[$i]['LINKED_PROPERTY'] = ${'linked_property' . $properties[$i]['ID']};
             SQLUpdate('owproperties', $properties[$i]);
         } elseif ($properties[$i]['LINKED_OBJECT'] || $properties[$i]['LINKED_PROPERTY']) {
             $properties[$i]['LINKED_OBJECT'] = '';
             $properties[$i]['LINKED_PROPERTY'] = '';
             SQLUpdate('owproperties', $properties[$i]);
         }
         if ($properties[$i]['LINKED_OBJECT'] && $properties[$i]['LINKED_PROPERTY']) {
             addLinkedProperty($properties[$i]['LINKED_OBJECT'], $properties[$i]['LINKED_PROPERTY'], $this->name);
         }
         if ($old_linked_object && $old_linked_object != $properties[$i]['LINKED_OBJECT'] && $old_linked_property && $old_linked_property != $properties[$i]['LINKED_PROPERTY']) {
             removeLinkedProperty($old_linked_object, $old_linked_property, $this->name);
         }
         global ${'starred' . $properties[$i]['ID']};
         if (${'starred' . $properties[$i]['ID']}) {
             $properties[$i]['STARRED'] = 1;
             SQLUpdate('owproperties', $properties[$i]);
         } else {
             $properties[$i]['STARRED'] = 0;
             SQLUpdate('owproperties', $properties[$i]);
         }
     }
 }
 $out['PROPERTIES'] = $properties;
                        $sensors[$i]['REQ'] = 0;
                    }
                    SQLUpdate('msnodeval', $sensors[$i]);
                    $old_linked_object = $sensors[$i]['LINKED_OBJECT'];
                    $old_linked_property = $sensors[$i]['LINKED_PROPERTY'];
                    if (${'linked_object' . $sensors[$i]['ID']} && ${'linked_property' . $sensors[$i]['ID']}) {
                        $sensors[$i]['LINKED_OBJECT'] = ${'linked_object' . $sensors[$i]['ID']};
                        $sensors[$i]['LINKED_PROPERTY'] = ${'linked_property' . $sensors[$i]['ID']};
                        SQLUpdate('msnodeval', $sensors[$i]);
                    } elseif ($sensors[$i]['LINKED_OBJECT'] || $sensors[$i]['LINKED_PROPERTY']) {
                        $sensors[$i]['LINKED_OBJECT'] = '';
                        $sensors[$i]['LINKED_PROPERTY'] = '';
                        SQLUpdate('msnodeval', $sensors[$i]);
                    }
                    if ($sensors[$i]['LINKED_OBJECT'] && $sensors[$i]['LINKED_PROPERTY']) {
                        addLinkedProperty($sensors[$i]['LINKED_OBJECT'], $sensors[$i]['LINKED_PROPERTY'], $this->name);
                    }
                    if ($old_linked_object && $old_linked_object != $sensors[$i]['LINKED_OBJECT'] && $old_linked_property && $old_linked_property != $sensors[$i]['LINKED_PROPERTY']) {
                        removeLinkedProperty($old_linked_object, $old_linked_property, $this->name);
                    }
                }
            }
        }
    }
}
$rec['TITLE'] = "[" . $rec['NID'] . "] " . $rec['TITLE'];
outHash($rec, $out);
if ($this->tab == "") {
    //options for 'LOCATION_ID' (select)
    $tmp = SQLSelect("SELECT ID, TITLE FROM locations ORDER BY TITLE");
    $locations_total = count($tmp);