Beispiel #1
0
 function generatePeersFile($resellerid)
 {
     global $db, $config;
     if ($config['system']['sipfile'] == '') {
         return;
     }
     $accountcode = '';
     $clid_context = '';
     $query = "SELECT * FROM resellergroup WHERE id = {$resellerid}";
     $reseller = $db->getRow($query);
     $accountcode = $reseller['accountcode'];
     $clid_context = $reseller['clid_context'];
     $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
     if ($asterccConfig['system']['billingfield'] != 'accountcode') {
         $accountcode = $reseller['accountcode'];
     }
     $query = "SELECT * FROM accountgroup WHERE resellerid = {$resellerid}";
     $group_list = $db->query($query);
     $content = '';
     while ($group_list->fetchInto($group)) {
         if ($group['accountcode'] != '' && $asterccConfig['system']['billingfield'] != 'accountcode') {
             $accountcode = $group['accountcode'];
         }
         $query = "SELECT * FROM clid WHERE groupid = " . $group['id'] . " ORDER BY clid ASC";
         $clid_list = $db->query($query);
         while ($clid_list->fetchInto($row)) {
             if ($asterccConfig['system']['billingfield'] == 'accountcode') {
                 $accountcode = $row['clid'];
             }
             $content .= "[" . $row['clid'] . "]\n";
             foreach ($config['sipbuddy'] as $key => $value) {
                 if ($clid_context != '' && strtolower(trim($key)) == 'context') {
                     $content .= "{$key} = {$clid_context}\n";
                     continue;
                 }
                 if ($key != '' && $value != '') {
                     $content .= "{$key} = {$value}\n";
                 }
             }
             if ($accountcode != "" && $accountcode != "''") {
                 $content .= "accountcode = " . $accountcode . "\n";
             }
             $content .= "secret = " . $row['pin'] . "\n";
             $content .= "callerid = \"" . $row['clid'] . "\" <" . $row['clid'] . ">\n";
             $content .= "accountcode = " . $row['accountcode'] . "\n\n";
         }
     }
     $filename = $config['system']['sipfile'] . "_{$resellerid}.conf";
     $fp = fopen($filename, "w");
     if (!$fp) {
         print "file: {$filename} open failed, please check the file permission";
         exit;
     }
     fwrite($fp, $content);
 }
Beispiel #2
0
/**
*  function to verify user data
*	
*  	@param $aFormValues	(array)			login form data
															$aFormValues['username']
															$aFormValues['password']
															$aFormValues['locate']
*	@return $objResponse
*  @session
															$_SESSION['curuser']['username']
															$_SESSION['curuser']['extension']
															$_SESSION['curuser']['extensions']
															$_SESSION['curuser']['country']
															$_SESSION['curuser']['language']
															$_SESSION['curuser']['channel']
															$_SESSION['curuser']['accountcode']
*/
function processAccountData($aFormValues)
{
    global $db, $config;
    list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
    //get locate parameter
    $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'login');
    $objResponse = new xajaxResponse();
    $bError = false;
    $loginError = false;
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        if ($_SERVER["HTTP_CLIENT_IP"]) {
            $proxy = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $proxy = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    }
    $log = array();
    $log['action'] = 'login';
    $log['ip'] = $ip;
    $log['username'] = $aFormValues['username'];
    $log['usertype'] = 'clid';
    $query = "SELECT * FROM account_log WHERE ip='" . $ip . "' AND action='login' ORDER BY id DESC LIMIT 1";
    $res = $db->query($query);
    if ($res->fetchInto($this_ip_log)) {
        $failedtimes = $this_ip_log['failedtimes'];
    }
    if ($failedtimes >= $config['system']['max_incorrect_login'] && $config['system']['max_incorrect_login'] > 0) {
        $objResponse->addAlert($locate->Translate("login failed,your ip is locked for login"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    if (!$bError) {
        $query = "SELECT * from clid where clid ='" . $aFormValues['username'] . "'";
        $res = $db->query($query);
        if ($res->fetchInto($clid)) {
            $log['account_id'] = $clid['id'];
            if ($clid['pin'] == $aFormValues['password']) {
                $log['status'] = 'success';
                $log['failedtimes'] = 0;
                if ($aFormValues['rememberme'] == "forever") {
                    // set cookies for three years
                    setcookie("username", $aFormValues['username'], time() + 94608000);
                    setcookie("password", $aFormValues['password'], time() + 94608000);
                    setcookie("language", $aFormValues['locate'], time() + 94608000);
                } else {
                    // destroy cookies
                    setcookie("username", "", time() - 3600);
                    setcookie("password", "", time() - 3600);
                    setcookie("language", "", time() - 3600);
                    $username = '';
                    $password = '';
                    $language = 'en_US';
                    $checked = false;
                }
                $_SESSION['curuser']['username'] = trim($aFormValues['username']);
                $_SESSION['curuser']['usertype'] = "clid";
                $_SESSION['curuser']['clidid'] = $clid['id'];
                $_SESSION['curuser']['groupid'] = $clid['groupid'];
                list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
                $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
                if ($configstatus == -2) {
                    $html = "(fail to read " . $config['system']['astercc_path'] . "/astercc.conf)";
                    return $html;
                } else {
                    $billingfield = trim($asterccConfig['system']['billingfield']);
                    if ($billingfield == 'accountcode') {
                        $_SESSION['curuser']['billingfield'] = $billingfield;
                    }
                }
                //$objResponse->addAlert($locate->Translate("login_success"));
                $objResponse->addScript('window.location.href="cdr.php";');
            } else {
                $log['failedtimes'] = $failedtimes + 1;
                $log['status'] = 'failed';
                $log['failedcause'] = 'incorrect password';
                $loginError = true;
            }
        } else {
            $log['failedtimes'] = $failedtimes + 1;
            $log['account_id'] = 0;
            $log['status'] = 'failed';
            $log['failedcause'] = 'notexistent clid';
            $loginError = true;
        }
        astercrm::insertAccountLog($log);
        if (!$loginError) {
            return $objResponse;
        } else {
            $objResponse->addAlert($locate->Translate("login_failed"));
            $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
            $objResponse->addAssign("loginButton", "disabled", false);
            return $objResponse;
        }
    } else {
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
    }
    return $objResponse;
}
Beispiel #3
0
/**
*  function to verify user data
*	
*  	@param $aFormValues	(array)			login form data
															$aFormValues['username']
															$aFormValues['password']
															$aFormValues['locate']
*	@return $objResponse
*  @session
															$_SESSION['curuser']['username']
															$_SESSION['curuser']['extension']
															$_SESSION['curuser']['extensions']
															$_SESSION['curuser']['country']
															$_SESSION['curuser']['language']
															$_SESSION['curuser']['channel']
															$_SESSION['curuser']['accountcode']
*/
function processAccountData($aFormValues)
{
    global $db, $config;
    list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
    //get locate parameter
    $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'login');
    $objResponse = new xajaxResponse();
    /* check whether the pear had been installed */
    $pear_exists_result = class_exists('PEAR');
    if (empty($pear_exists_result)) {
        $objResponse->addAlert($locate->Translate("Please install php pear"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        if ($_SERVER["HTTP_CLIENT_IP"]) {
            $proxy = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $proxy = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    }
    $query = "SELECT * FROM account_log WHERE ip='" . $ip . "' AND action='login' ORDER BY id DESC LIMIT 1";
    $res = $db->query($query);
    if ($res->fetchInto($this_ip_log)) {
        $failedtimes = $this_ip_log['failedtimes'];
    }
    $log = array();
    $log['action'] = 'login';
    $log['ip'] = $ip;
    $log['username'] = $aFormValues['username'];
    if ($failedtimes >= $config['system']['max_incorrect_login'] && $config['system']['max_incorrect_login'] > 0) {
        $objResponse->addAlert($locate->Translate("login failed,your ip is locked for login"));
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
        return $objResponse;
    }
    $bError = false;
    $loginError = false;
    if (!$bError) {
        $query = "SELECT account.*, accountgroup.accountcode,accountgroup.allowcallback as allowcallbackgroup,resellergroup.allowcallback as allowcallbackreseller,accountgroup.limittype FROM account LEFT JOIN accountgroup ON accountgroup.id = account.groupid LEFT JOIN resellergroup ON resellergroup.id = account.resellerid WHERE username='******'username'] . "'";
        $res = $db->query($query);
        if ($res->fetchInto($list)) {
            $log['account_id'] = $list['id'];
            $log['usertype'] = $list['usertype'];
            if ($list['password'] == $aFormValues['password']) {
                $log['status'] = 'success';
                $log['failedtimes'] = 0;
                if ($aFormValues['rememberme'] == "forever") {
                    // set cookies for three years
                    setcookie("username", $aFormValues['username'], time() + 94608000);
                    setcookie("password", $aFormValues['password'], time() + 94608000);
                    setcookie("language", $aFormValues['locate'], time() + 94608000);
                    setcookie("pagestyle", $aFormValues['pagestyle'], time() + 94608000);
                } else {
                    // destroy cookies
                    setcookie("username", "", time() - 3600);
                    setcookie("password", "", time() - 3600);
                    setcookie("language", "", time() - 3600);
                    setcookie("pagestyle", $aFormValues['pagestyle'], time() + 94608000);
                    $username = '';
                    $password = '';
                    $language = 'en_US';
                    $checked = false;
                }
                $_SESSION = array();
                $_SESSION['curuser']['username'] = trim($aFormValues['username']);
                $_SESSION['curuser']['usertype'] = $list['usertype'];
                $_SESSION['curuser']['ipaddress'] = $_SERVER["REMOTE_ADDR"];
                $_SESSION['curuser']['userid'] = $list['id'];
                $_SESSION['curuser']['groupid'] = $list['groupid'];
                $_SESSION['curuser']['resellerid'] = $list['resellerid'];
                $_SESSION['curuser']['limittype'] = $list['limittype'];
                $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
                if ($configstatus == -2) {
                    $html = "(fail to read " . $config['system']['astercc_path'] . "/astercc.conf)";
                    return $html;
                } else {
                    $billingfield = trim($asterccConfig['system']['billingfield']);
                    if ($billingfield == 'accountcode') {
                        $_SESSION['curuser']['billingfield'] = $billingfield;
                    }
                }
                $res = astercrm::getCalleridListByID($list['groupid']);
                while ($res->fetchInto($row)) {
                    $_SESSION['curuser']['extensions'][] = $row['clid'];
                }
                if (!is_array($_SESSION['curuser']['extensions'])) {
                    $_SESSION['curuser']['extensions'] = array();
                }
                if ($list['usertype'] == 'reseller') {
                    $_SESSION['curuser']['allowcallback'] = $list['allowcallbackreseller'];
                } else {
                    $_SESSION['curuser']['allowcallback'] = $list['allowcallbackgroup'];
                }
                $_SESSION['curuser']['accountcode'] = $list['accountcode'];
                //				if ($list['extensions'] != ''){
                //					$_SESSION['curuser']['extensions'] = split(',',$list['extensions']);
                //				}
                //				else{
                //				}
                list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $aFormValues['locate']);
                /*
                	if you dont want check manager status and show device status when user login 
                	please uncomment these three line
                */
                //				$objResponse->addAlert($locate->Translate("login_success"));
                if ($_SESSION['curuser']['usertype'] == 'groupadmin' || $_SESSION['curuser']['usertype'] == 'operator') {
                    if ($aFormValues['pagestyle'] == 'classic') {
                        $objResponse->addScript('window.location.href="systemstatus.php";');
                    } else {
                        $objResponse->addScript('window.location.href="systemstatus_simple.php";');
                    }
                } else {
                    $objResponse->addScript('window.location.href="account.php";');
                }
                astercrm::insertAccountLog($log);
                return $objResponse;
                //check AMI connection
                $myAsterisk = new Asterisk();
                $myAsterisk->config['asmanager'] = $config['asterisk'];
                $res = $myAsterisk->connect();
                $html .= $locate->Translate("server_connection_test");
                if ($res) {
                    $html .= '<font color=green>' . $locate->Translate("pass") . '</font><br>';
                    $html .= '<b>' . $_SESSION['curuser']['extension'] . ' ' . $locate->Translate("device_status") . '</b><br>';
                    $html .= asterisk::getPeerIP($_SESSION['curuser']['extension']) . '<br>';
                    $html .= asterisk::getPeerStatus($_SESSION['curuser']['extension']) . '<br>';
                } else {
                    $html .= '<font color=red>' . $locate->Translate("no_pass") . '</font>';
                }
                if ($aFormValues['pagestyle'] == 'classic') {
                    $html .= '<input type="button" value="' . $locate->Translate("continue") . '" id="btnContinue" name="btnContinue" onclick="window.location.href=\'systemstatus.php\';">';
                } else {
                    $html .= '<input type="button" value="' . $locate->Translate("continue") . '" id="btnContinue" name="btnContinue" onclick="window.location.href=\'systemstatus_simple.php\';">';
                }
                $objResponse->addAssign("formDiv", "innerHTML", $html);
                $objResponse->addClear("titleDiv", "innerHTML");
                $objResponse->addScript("xajax.\$('btnContinue').focus();");
            } else {
                //$log['account_id'] = 0;
                $log['failedtimes'] = $failedtimes + 1;
                $log['status'] = 'failed';
                $log['failedcause'] = 'incorrect password';
                $loginError = true;
            }
        } else {
            $log['failedtimes'] = $failedtimes + 1;
            $log['account_id'] = 0;
            $log['usertype'] = 'manager_login';
            $log['status'] = 'failed';
            $log['failedcause'] = 'notexistent user';
            $loginError = true;
        }
        astercrm::insertAccountLog($log);
        if (!$loginError) {
            return $objResponse;
        } else {
            $objResponse->addAlert($locate->Translate("login failed"));
            $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
            $objResponse->addAssign("loginButton", "disabled", false);
            return $objResponse;
        }
    } else {
        $objResponse->addAssign("loginButton", "value", $locate->Translate("submit"));
        $objResponse->addAssign("loginButton", "disabled", false);
    }
    return $objResponse;
}
Beispiel #4
0
    /**
     *  Imprime la forma para editar un nuevo registro sobre el DIV identificado por "formDiv".
     *
     *	@param $id		(int)		Identificador del registro a ser editado.
     *	@return $html	(string) Devuelve una cadena de caracteres que contiene la forma con los datos 
     *									a extraidos de la base de datos para ser editados 
     */
    function formEdit($id)
    {
        global $locate, $config;
        $clid =& Customer::getRecordByID($id, 'clid');
        if ($clid['isshow'] == 'yes') {
            $selecty = "selected";
            $selectn = "";
        } else {
            if ($clid['isshow'] == 'no') {
                $selecty = "";
                $selectn = "selected";
            }
        }
        $reselleroptions = '';
        $reseller = astercrm::getAll('resellergroup');
        if ($_SESSION['curuser']['usertype'] == 'admin') {
            $reselleroptions .= '<select id="resellerid" name="resellerid" onchange="setGroup();">';
            $reselleroptions .= '<option value="0"></option>';
            while ($reseller->fetchInto($row)) {
                if ($config['synchronize']['display_synchron_server']) {
                    $row['resellername'] = astercrm::getSynchronDisplay($row['id'], $row['resellername']);
                }
                if ($row['id'] == $clid['resellerid']) {
                    $reselleroptions .= "<OPTION value='" . $row['id'] . "' selected>" . $row['resellername'] . "</OPTION>";
                } else {
                    $reselleroptions .= "<OPTION value='" . $row['id'] . "' >" . $row['resellername'] . "</OPTION>";
                }
            }
            $reselleroptions .= '</select>';
        } else {
            while ($reseller->fetchInto($row)) {
                if ($row['id'] == $clid['resellerid']) {
                    if ($config['synchronize']['display_synchron_server']) {
                        $row['resellername'] = astercrm::getSynchronDisplay($row['id'], $row['resellername']);
                    }
                    $reselleroptions .= $row['resellername'] . '<input type="hidden" value="' . $row['id'] . '" name="resellerid" id="resellerid">';
                    break;
                }
            }
        }
        $group = astercrm::getAll('accountgroup', 'resellerid', $clid['resellerid']);
        if ($_SESSION['curuser']['usertype'] == 'admin' || $_SESSION['curuser']['usertype'] == 'reseller') {
            $groupoptions .= '<select id="groupid" name="groupid">';
            $groupoptions .= "<OPTION value='0'></OPTION>";
            while ($group->fetchInto($row)) {
                if ($config['synchronize']['display_synchron_server']) {
                    $row['groupname'] = astercrm::getSynchronDisplay($row['id'], $row['groupname']);
                }
                if ($row['id'] == $clid['groupid']) {
                    $groupoptions .= "<OPTION value='" . $row['id'] . "' selected>" . $row['groupname'] . "</OPTION>";
                } else {
                    $groupoptions .= "<OPTION value='" . $row['id'] . "' >" . $row['groupname'] . "</OPTION>";
                }
            }
            $groupoptions .= '</select>';
        } else {
            while ($group->fetchInto($row)) {
                if ($row['id'] == $clid['groupid']) {
                    if ($config['synchronize']['display_synchron_server']) {
                        $row['groupname'] = astercrm::getSynchronDisplay($row['id'], $row['groupname']);
                    }
                    $groupoptions .= $row['groupname'] . '<input type="hidden" value="' . $row['id'] . '" name="groupid" id="groupid">';
                    break;
                }
            }
        }
        if ($clid['status'] == 1) {
            $statusoptions = '
							<option value="1" selected>' . $locate->Translate("Avaiable") . '</option>
							<option value="-1">' . $locate->Translate("Lock") . '</option>
						';
        } else {
            $statusoptions = '
							<option value="1">' . $locate->Translate("Avaiable") . '</option>
							<option value="-1" selected>' . $locate->Translate("Lock") . '</option>
						';
        }
        $configstatus = common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig);
        if ($configstatus == -2) {
            $html = "(fail to read " . $config['system']['astercc_path'] . "/astercc.conf)";
            return $html;
        } else {
            $billingfield = trim($asterccConfig['system']['billingfield']);
        }
        if ($_SESSION['curuser']['usertype'] == 'clid') {
            $readonly = "readonly";
        }
        $html = '
			<!-- No edit the next line -->
			<form method="post" name="f" id="f">
			
			<table border="1" width="100%" class="adminlist">
				<tr>
					<td nowrap align="left">';
        if ($billingfield == 'accountcode') {
            $html .= $locate->Translate("Accountcode");
        } else {
            $html .= $locate->Translate("Caller ID");
        }
        $html .= '*</td>
					<td align="left"><input type="hidden" id="id" name="id" value="' . $clid['id'] . '"><input type="text" id="clid" name="clid" size="25" maxlength="30" value="' . $clid['clid'] . '" ' . $readonly . ' onblur="document.getElementById(\'accountcode\').value = this.value;"></td>
				</tr>';
        if ($billingfield == 'callerid') {
            $html .= '
				<tr>
					<td nowrap align="left">' . $locate->Translate("Account Code") . '*</td>
					<td align="left"><input type="text" id="accountcode" name="accountcode" size="25" maxlength="40" value="' . $clid['accountcode'] . '"></td>
				</tr>';
        } else {
            $html .= '
				<tr style="display:none;">
					<td nowrap align="left">' . $locate->Translate("Account Code") . '*</td>
					<td align="left"><input type="text" id="accountcode" name="accountcode" size="25" maxlength="40" value="' . $clid['accountcode'] . '" readonly></td>
				</tr>';
        }
        $html .= '<tr>
					<td nowrap align="left">' . $locate->Translate("Pin") . '*</td>
					<td align="left"><input type="text" id="pin" name="pin" size="25" maxlength="30" value="' . $clid['pin'] . '" readonly><input type="hidden" id="pin" name="pin" value="' . $clid['pin'] . '"></td>
				</tr>
				<tr>
					<td nowrap align="left">' . $locate->Translate("Display") . '</td>
					<td align="left"><input type="text" id="display" name="display" size="25" maxlength="20" value="' . $clid['display'] . '" ' . $readonly . '></td>
				</tr>';
        if ($config['system']['setclid'] == 1) {
            $html .= '<tr>
						<td nowrap align="left">' . $locate->Translate("Credit Limit") . '*</td>
						<td align="left"><input type="text" id="creditlimit" name="creditlimit" size="25" maxlength="30" value="' . $clid['creditlimit'] . '" ' . $readonly . '></td>
					</tr>

					<tr>
						<td nowrap align="left">' . $locate->Translate("Cur Credit") . '</td>
						<td align="left">
						<input type="text" id="curcreditshow" name="curcreditshow" size="25" maxlength="100" value="' . $clid['curcredit'] . '" readonly>
						<input type="hidden" id="curcredit" name="curcredit" value="' . $clid['curcredit'] . ' ">
					</td>
					</tr>';
            if ($_SESSION['curuser']['usertype'] != 'clid') {
                $html .= '<tr>
							<td nowrap align="left">' . $locate->Translate("Operate") . '</td>
							<td align="left">
								<select id="creditmodtype" name="creditmodtype" onchange="showComment(this)">
									<option value="">' . $locate->Translate("No change") . '</option>
									<option value="add">' . $locate->Translate("Refund") . '</option>
									<option value="reduce">' . $locate->Translate("Charge") . '</option>
								</select>
								<input type="text" id="creditmod" name="creditmod" size="15" maxlength="100" value="" disabled><p>' . $locate->Translate("Comment") . ' :&nbsp;<input type="text" id="comment" name="comment" size="18" maxlength="20" value="" disabled></p>
							</td>
						</tr>
						<tr>';
            }
            $html .= '<td nowrap align="left">' . $locate->Translate("Limit Type") . '</td>
					<td align="left">
					<select id="limittype" name="limittype" ' . $readonly . '>';
            if ($clid['limittype'] == "postpaid") {
                $html .= '
							<option value="">' . $locate->Translate("No limit") . '</option>
							<option value="prepaid">' . $locate->Translate("Prepaid") . '</option>
							<option value="postpaid" selected>' . $locate->Translate("Postpaid") . '</option>';
            } elseif ($clid['limittype'] == "prepaid") {
                $html .= '
							<option value="">' . $locate->Translate("No limit") . '</option>
							<option value="prepaid" selected>' . $locate->Translate("Prepaid") . '</option>
							<option value="postpaid">' . $locate->Translate("Postpaid") . '</option>';
            } else {
                $html .= '
							<option value="" selected>' . $locate->Translate("No limit") . '</option>
							<option value="prepaid">' . $locate->Translate("Prepaid") . '</option>
							<option value="postpaid">' . $locate->Translate("Postpaid") . '</option>';
            }
        }
        $html .= '<tr>
					<td nowrap align="left">' . $locate->Translate("Reseller") . '</td>
					<td align="left">' . $reselleroptions . '</td>
				</tr>
				<tr>
					<td nowrap align="left">' . $locate->Translate("Group") . '</td>
					<td align="left">
					' . $groupoptions . '
					</td>
				</tr>
				<tr>
					<td nowrap align="left">' . $locate->Translate("Status") . '</td>
					<td align="left">
						<select id="status" name="status"  ' . $readonly . '>' . $statusoptions . '</select>
					</td>
				</tr>
				<tr>
					<td nowrap align="left">' . $locate->Translate("Is Show") . '</td>
					<td align="left">
						<select id="isshow" name="isshow"  ' . $readonly . '><option value="yes" ' . $selecty . '>' . $locate->Translate("yes") . '</option><option value="no" ' . $selectn . '>' . $locate->Translate("no") . '</option></select>
					</td>
				</tr>';
        if ($_SESSION['curuser']['usertype'] != 'clid') {
            $html .= '<tr>
					<td colspan="2" align="center"><button id="submitButton" onClick=\'xajax_update(xajax.getFormValues("f"));return false;\'>' . $locate->Translate("Continue") . '</button></td>
				</tr>';
        }
        $html .= '</table>
			';
        $html .= '
				</form>
				*' . $locate->Translate("Obligatory Fields") . '
				';
        return $html;
    }