function process_options($window, $id, $ctrl)
{
    global $wb;
    switch ($id) {
        case IDC_WIREFRAME:
        case IDC_GRID:
            wb_set_value(wb_get_control($wb->mainwin, $id), wb_get_value($ctrl));
            break;
        case IDC_BROWSE:
            $current = wb_get_text(wb_get_control($window, IDC_FILEPATH));
            $path = wb_sys_dlg_path($window, 'Select default path for project files:', $current);
            if ($path) {
                wb_set_text(wb_get_control($window, IDC_FILEPATH), $path);
            }
            break;
        case IDOK:
            // 	Set various settings
            foreach ($wb->options_array as $var) {
                $var = strtolower($var);
                $ctrl = wb_get_control($wb->winoptions, constant("IDC_" . strtoupper($var)));
                if (wb_get_class($ctrl) == CheckBox) {
                    $wb->{$var} = wb_get_value($ctrl);
                } else {
                    $wb->{$var} = wb_get_text($ctrl);
                }
            }
            // Fall-through
        // Fall-through
        case IDCANCEL:
            set_default_accel();
            wb_destroy_window($window);
            break;
    }
}
function process_project($window, $id, $ctrl)
{
    global $wb;
    switch ($id) {
        case IDC_ISTABPAGE:
            $val = wb_get_value($ctrl);
            wb_set_enabled(wb_get_control($wb->winproject, IDC_TABNUMBER), $val);
            wb_set_enabled(wb_get_control($wb->winproject, IDC_TABNUMBERSPINNER), $val);
            break;
        case IDC_CTRLVAR:
            $hastext = wb_get_text($ctrl) !== '';
            wb_set_enabled(wb_get_control($wb->winproject, IDC_STARTCTRLVAL), $hastext);
            break;
        case IDC_LOCALIZE:
            wb_set_enabled(wb_get_control($wb->winproject, IDC_LOCPREFIX), wb_get_value($ctrl));
            break;
        case IDOK:
            // 	Set various settings
            foreach ($wb->project_array as $var) {
                $var = strtolower($var);
                $ctrl = wb_get_control($wb->winproject, constant("IDC_" . strtoupper($var)));
                if (wb_get_class($ctrl) != RadioButton && wb_get_class($ctrl) != CheckBox) {
                    $wb->form[$wb->currentform]->{$var} = wb_get_text($ctrl);
                } else {
                    $wb->form[$wb->currentform]->{$var} = wb_get_value($ctrl);
                }
            }
            // Fall-through
        // Fall-through
        case IDCANCEL:
            set_default_accel();
            wb_destroy_window($window);
            break;
    }
}
function wb_create_items($ctrl, $items, $clear = false, $param = null)
{
    switch (wb_get_class($ctrl)) {
        case ListView:
            if ($clear) {
                wb_send_message($ctrl, LVM_DELETEALLITEMS, 0, 0);
            }
            $last = -1;
            // For each row
            for ($i = 0; $i < count($items); $i++) {
                if (!is_scalar($items[$i])) {
                    $last = wbtemp_create_listview_item($ctrl, -1, -1, (string) $items[$i][0]);
                } else {
                    $last = wbtemp_create_listview_item($ctrl, -1, -1, (string) $items[$i]);
                }
                wbtemp_set_listview_item_text($ctrl, -1, 0, (string) $items[$i][0]);
                // For each column except the first
                for ($sub = 0; $sub < count($items[$i]) - 1; $sub++) {
                    if ($param) {
                        $result = call_user_func($param, $items[$i][$sub + 1], $i, $sub);
                        wbtemp_set_listview_item_text($ctrl, $last, $sub + 1, $result);
                    } else {
                        wbtemp_set_listview_item_text($ctrl, $last, $sub + 1, (string) $items[$i][$sub + 1]);
                    }
                }
            }
            return $last;
            break;
        case TreeView:
            if ($clear) {
                $handle = wb_delete_items($ctrl);
            }
            // Empty the treeview
            if (!$items) {
                break;
            }
            $ret = array();
            for ($i = 0; $i < count($items); $i++) {
                $ret[] = wbtemp_create_treeview_item($ctrl, (string) $items[$i][0], isset($items[$i][1]) ? $items[$i][1] : 0, isset($items[$i][2]) ? $items[$i][2] : 0, isset($items[$i][3]) ? $items[$i][3] : -1, isset($items[$i][4]) ? $items[$i][4] : -1, isset($items[$i][5]) ? $items[$i][5] : 0);
            }
            return count($ret) > 1 ? $ret : $ret[0];
            break;
        case StatusBar:
            wbtemp_create_statusbar_items($ctrl, $items, $clear, $param);
            return true;
        default:
            if (is_array($items)) {
                foreach ($items as $item) {
                    wbtemp_create_item($ctrl, $item);
                }
                return true;
            } else {
                return wbtemp_create_item($ctrl, $items);
            }
            break;
    }
}
function process_main($window, $id, $ctrl, $lparam1 = 0, $lparam2 = 0)
{
    global $wb;
    switch ($id) {
        case ID_CREATE:
            $wb->current_ids = null;
            $wb->current_action = "insert";
            switch ($wb->current_module) {
                case "contact":
                    include_once PATH_FORM . "yc_contact_edit.form.inc.php";
                    create_contact_edit_dlg();
                    break;
                case "contact_category":
                case "company":
                case "product":
                case "product_category":
                case "opportunity":
                case "order":
                case "order_category":
                case "agreement":
                case "agreement_category":
                case "complaints":
                case "complaints_category":
                case "refundment":
                case "refundment_category":
                case "review":
                    $module_name = $wb->current_module;
                    $function_name = "create_{$module_name}_edit_dlg";
                    include_once PATH_FORM . "yc_{$module_name}_edit.form.inc.php";
                    $function_name();
                    break;
            }
            wb_set_text($wb->statusbar, "Create module: " . $wb->current_module);
            break;
        case IDC_TOOLBAR_SEARCH:
            switch ($wb->current_module) {
                case "contact":
                    create_contact_search_dlg($window);
                    break;
                case "contact_category":
                    create_category_contact_search_dlg($window);
                    break;
                case "company":
                case "product":
                case "product_category":
                case "opportunity":
                case "order":
                case "order_category":
                case "agreement":
                case "agreement_category":
                case "complaints":
                case "complaints_category":
                case "refundment":
                case "refundment_category":
                case "review":
                    $module_name = $wb->current_module;
                    $function_name = "create_{$module_name}_search_dlg";
                    include_once PATH_FORM . "yc_{$module_name}_search.form.inc.php";
                    $function_name();
                    break;
            }
            wb_set_text($wb->statusbar, "Search module: " . $wb->current_module);
            break;
        case ID_DELETE:
            switch ($wb->current_module) {
                case "contact":
                    del_selected_contact();
                    break;
                case "contact_category":
                case "company":
                case "product":
                case "product_category":
                case "opportunity":
                case "order":
                case "order_category":
                case "agreement":
                case "agreement_category":
                case "complaints":
                case "complaints_category":
                case "refundment":
                case "refundment_category":
                case "review":
                    $module_name = $wb->current_module;
                    $function_name = "del_selected_{$module_name}";
                    $function_name();
                    break;
            }
            wb_set_text($wb->statusbar, "Deleted module: " . $wb->current_module);
            break;
        case IDC_LEFT_TREE:
            $selnode = wb_get_selected($wb->tree_view);
            if ($wb->right_control) {
                wb_set_visible($wb->right_control, false);
            }
            switch (wb_get_value($wb->tree_view)) {
                case 2001:
                case 2002:
                    $wb->current_module = "contact";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    displayContactForm();
                    break;
                case 2003:
                    $wb->current_module = "company";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_company.form.inc.php";
                    displayCompanyMainTabForm();
                    break;
                case 2004:
                    $wb->current_module = "product";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_product.form.inc.php";
                    display_product_main_tab_form();
                    break;
                case 2005:
                case 2006:
                    $wb->current_module = "opportunity";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_opportunity.form.inc.php";
                    display_opportunity_main_tab_form();
                    break;
                case 2007:
                    $wb->current_module = "order";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_order.form.inc.php";
                    display_order_main_tab_form();
                    break;
                case 2008:
                    $wb->current_module = "agreement";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_agreement.form.inc.php";
                    display_agreement_main_tab_form();
                    break;
                case 2009:
                case 2010:
                    $wb->current_module = "complaints";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_complaints.form.inc.php";
                    display_complaints_main_tab_form();
                    break;
                case 2011:
                    $wb->current_module = "refundment";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_refundment.form.inc.php";
                    display_refundment_main_tab_form();
                    break;
                case 2012:
                    $wb->current_module = "review";
                    $wb->keyword = null;
                    $wb->current_page = 1;
                    $wb->del_ids = null;
                    include_once PATH_FORM . "yc_review.form.inc.php";
                    display_review_main_tab_form();
                    break;
            }
            wb_set_text($wb->statusbar, "Selected item: " . wb_get_text($wb->tree_view, $selnode) . " / Value: " . wb_get_value($wb->tree_view) . " / Parent: " . wb_get_parent($wb->tree_view, $selnode) . " / Level: " . wb_get_level($wb->tree_view, $selnode) . " / State: " . (wb_get_state($wb->tree_view, $selnode) ? "expanded" : "collapsed"));
            break;
        case IDCLOSE:
            // IDCLOSE is predefined
            if (wb_message_box($wb->mainwin, $wb->vars["Lang"]["lang_sure_logout"], $wb->vars["Lang"]["system_name"], WBC_QUESTION | WBC_YESNO)) {
                wb_destroy_window($window);
            }
            break;
        case ID_ABOUT:
            include_once PATH_FORM . "yc_about.form.inc.php";
            display_about_dlg();
            break;
        case ID_SETTING:
            include_once PATH_FORM . "yc_setting.form.inc.php";
            display_setting_dlg();
            break;
        default:
            if (process_contact($window, $id, $ctrl, $lparam1, $lparam2)) {
                break;
            }
            if (wb_get_class($ctrl) == TabControl && $lparam1 & WBC_HEADERSEL) {
                switch ($id) {
                    case IDC_CONTACT_FORM:
                        if ($lparam2 == 0) {
                            $wb->current_module = "contact";
                        } else {
                            $wb->current_module = "contact_category";
                        }
                        break;
                    case IDC_PRODUCTS_TAB:
                        if ($lparam2 == 0) {
                            $wb->current_module = "product";
                        } else {
                            $wb->current_module = "product_category";
                        }
                        break;
                    case IDC_ORDER_TAB:
                        if ($lparam2 == 0) {
                            $wb->current_module = "order";
                        } else {
                            $wb->current_module = "order_category";
                        }
                        break;
                    case IDC_AGREEMENT_TAB:
                        if ($lparam2 == 0) {
                            $wb->current_module = "agreement";
                        } else {
                            $wb->current_module = "agreement_category";
                        }
                        break;
                    case IDC_COMPLAINTS_TAB:
                        if ($lparam2 == 0) {
                            $wb->current_module = "complaints";
                        } else {
                            $wb->current_module = "complaints_category";
                        }
                        break;
                    case IDC_REFUNDMENT_TAB:
                        if ($lparam2 == 0) {
                            $wb->current_module = "refundment";
                        } else {
                            $wb->current_module = "refundment_category";
                        }
                        break;
                }
                wb_set_text($wb->statusbar, "Tab #{$lparam2} of tab control #{$id} selected.");
            } else {
                wb_set_text($wb->statusbar, "Control ID: " . $id);
            }
            break;
    }
}