function smarty_function_charge_names_select($params, &$smarty)
{
    /* return string of html select code for charge selects.
    
        parameter name(string,required): html select name
        parameter type(string,optional): if set, only set this type of charge, should be either of "Internet" or "VoIP"
    
        parameter id(string,optional): set optional dom ID
    
    
        parameter default_var(string,optional): see getSelectedAttrFromSmartyParams comments
        parameter default_request(string,optional):
        parameter default_smarty(string,optional):
        parameter default(string,optional)
        parameter target(string,optional):
    
        
    */
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    require_once IBSINC . "charge.php";
    $type = isset($params["type"]) ? $params["type"] : null;
    $charge_names = new ListCharges($type);
    list($success, $charge_names) = $charge_names->send();
    if (!$success) {
        $charge_names = array();
    }
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    $select_arr = array("selected" => $selected, "output" => $charge_names, "values" => $charge_names, "name" => $params["name"]);
    if (isset($params["id"])) {
        $select_arr["id"] = $params["id"];
    }
    return smarty_function_html_options($select_arr, $smarty);
}
function smarty_function_separatorSelect($params, &$smarty)
{
    /* return string of html select code for seperator selects.
    
        parameter name(string,required): html select name
        parameter id(string,optional): set optional dom ID
    
        parameter default_var(string,optional): see getSelectedAttrFromSmartyParams comments
        parameter default_request(string,optional):
        parameter default_smarty(string,optional):
        parameter default(string,optional)
        parameter target(string,optional):
    
        
    */
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    $seps = array(",", ";", "TAB");
    $seps_out = array("Comma", "Semi Colon", "Tab");
    $select_arr = array("selected" => $selected, "output" => $seps_out, "values" => $seps, "name" => $params["name"]);
    if (isset($params["id"])) {
        $select_arr["id"] = $params["id"];
    }
    return smarty_function_html_options($select_arr, $smarty);
}
function smarty_function_group_names_select($params, &$smarty)
{
    /* parameter name(string,required): html select name
    
        parameter default_var(string,optional): see getSelectedAttrFromSmartyParams comments
        parameter default_request(string,optional):
        parameter default_smarty(string,optional):
        parameter default(string,optional)
        parameter target(string,optional):
    
        return string of html select code for group selects.
    */
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    require_once IBSINC . "group_face.php";
    $groups = getGroupNames($smarty);
    return smarty_function_html_options(array("selected" => $selected, "output" => $groups, "values" => $groups, "name" => $params["name"]), $smarty);
}
function createSelect(&$params, &$smarty)
{
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    $new_params = array("default" => "Days");
    if (isset($params["default_request"])) {
        $new_params["default_request"] = $params["default_request"] . "_unit";
    }
    if (isset($params["default_var"])) {
        $new_params["default_var"] = $params["default_var"] . "_unit";
    }
    if (isset($params["target"])) {
        $new_params["target"] = $params["target"];
    }
    $select_default = getSelectedAttrFromSmartyParams($smarty, $new_params);
    $date_units = array("Minutes", "Hours", "Days", "Months", "Years", "Gregorian", "Jalali");
    $date_values = array("minutes", "hours", "days", "months", "years", "gregorian", "jalali");
    $select_arr = array("output" => $date_units, "values" => $date_values, "name" => $params["name"] . "_unit", "selected" => $select_default, "id" => "{$params["name"]}_select", "onClick" => "absDateSelectChanged(this,'{$params["name"]}_calendar')");
    return smarty_function_html_options($select_arr, $smarty);
}
function smarty_function_relative_units($params, &$smarty)
{
    /* parameter name(string,required): html select name
        parameter default(string,optional): String that will be drop down default if set
        parameter id(string,optional): set optional dom ID
        
        parameter default_var(string,optional): see attrDefault comments
        parameter default_request(string,optional):
        parameter target(string,optional):
        
        return string of html select code for relative units.
    */
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    $rel_units = array("Hours", "Days", "Months", "Years");
    $select_arr = array("output" => $rel_units, "values" => $rel_units, "name" => $params["name"]);
    if (isset($params["id"])) {
        $select_arr["id"] = $params["id"];
    }
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    $select_arr["selected"] = $selected;
    return smarty_function_html_options($select_arr, $smarty);
}
function smarty_function_admin_names_select($params, &$smarty)
{
    /* parameter name(string,required): html select name
    
        parameter default_var(string,optional): see getSelectedAttrFromSmartyParams comments
        parameter default_request(string,optional):
        parameter default_smarty(string,optional):
        parameter default(string,optional)
        parameter target(string,optional):
    
    
        parameter add_all(string,optional): if set to TRUE add All option to list of selects
        return string of html select code for admin names select.
    */
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    require_once IBSINC . "admin_face.php";
    $admins = getAdminNames($smarty);
    if (isset($params["add_all"]) and $params["add_all"] == "TRUE") {
        $admins["All"] = "All";
    }
    return smarty_function_html_options(array("selected" => $selected, "output" => $admins, "values" => $admins, "name" => $params["name"]), $smarty);
}
function smarty_function_ippool_names_select($params, &$smarty)
{
    /* return string of html select code for ippool selects.
    
        parameter name(string,required): html select name
        parameter id(string,optional): set optional dom ID
        parameter add_empty(boolean,optional): add an empty entry in select
    
    
        parameter default_var(string,optional): see getSelectedAttrFromSmartyParams comments
        parameter default_request(string,optional):
        parameter default_smarty(string,optional):
        parameter default(string,optional)
        parameter target(string,optional):
    
        
    */
    require_once $smarty->_get_plugin_filepath('function', 'html_options');
    require_once IBSINC . "ippool.php";
    $req = new GetIPpoolNames();
    $resp = $req->sendAndRecv();
    if ($resp->isSuccessful()) {
        $names = $resp->getResult();
    } else {
        $names = array();
    }
    if (isset($params["add_empty"]) and $params["add_empty"] == "TRUE") {
        $names[] = "";
    }
    $selected = getSelectedAttrFromSmartyParams($smarty, $params);
    $select_arr = array("selected" => $selected, "output" => $names, "values" => $names, "name" => $params["name"]);
    if (isset($params["id"])) {
        $select_arr["id"] = $params["id"];
    }
    return smarty_function_html_options($select_arr, $smarty);
}