Subversion Repositories ALCASAR

Compare Revisions

No changes between revisions

Ignore whitespace Rev 702 → Rev 703

/web/admin/network.php
3,12 → 3,268
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
/*
Cette section met à jour la configuration réseau d'alcasar d'Alcasar
*/
print_r($_REQUEST);
/*
Mise à jour des paramètres WAN
*/
 
 
/*
Mise à jour des paramètres LAN
*/
 
 
 
/*
Mise à jour des paramètres DNS
*/
 
/*
Mise à jour des paramètres DHCP
*/
 
 
/*
Mise à jour des ROUTE
*/
 
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
$l_network_title = "Configuration réseau";
$l_ip = "@IP/CIDR";
$l_mask = "Masque";
$l_gateway = "Passerelle";
$l_dns = "DNS";
$l_yes = "OUI";
$l_no = "NON";
$l_ip_row_title = "Adresse IP";
$l_host_row_title = "Nom d'hôte";
$l_mac_row_title = "Adresse MAC";
$l_description_row_title = "Description";
//tabs-wan
$l_wan = "WAN";
$l_enable = "actif";
$l_disable = "inactif";
$l_internet_title = "Internet";
$l_ip_public = "@IP public";
$l_state = "Etat Internet";
$l_eth0_title = "ETH0 : carte réseau connecté vers Internet";
//tabs-lan
$l_lan = "LAN";
$l_eth1_title = "ETH1 : carte réseau connecté sur le réseau de consultation";
//tabs-dns-local
$l_local_dns = "DNS local";
//tabs-dhcp
$l_dhcp = "DHCP";
$l_dhcp_server = "Serveur DHCP";
$l_dhcp_activation = "Activation";
$l_dhcp_bail = "Bail";
$l_dhcp_description = "Si le DHCP est activ&eacute;e, la plage d'adresse IP est coup&eacute;e en deux.<br />
Les adresses IP de X.X.X.X &agrave; X sont attribu&eacute;es par DHCP, les autres sont r&eacute;serv&eacute;es pour un adressage manuel des stations clientes.<br />";
$l_dhcp_ip_statique = "Adresses IP statiques";
//tabs-route
$l_route = "ROUTE";
$l_destination_row_title = "Destination";
$l_mask_row_title = "Masque de sous-r&eacute;seau";
$l_gateway_row_title = "Passerelle";
//buttons
$l_change = "Modifier";
}
else { // a traduire
$l_network_title = "Network configuration";
$l_ip = "@IP/CIDR";
$l_mask = "Mask";
$l_gateway = "Gateway";
$l_dns = "DNS";
$l_yes = "YES";
$l_no = "NO";
$l_ip_row_title = "IP adress";
$l_host_row_title = "Host name";
$l_mac_row_title = "MAC adresse ";
$l_description_row_title = "Description";
//tabs-wan
$l_wan = "WAN";
$l_enable = "enable";
$l_disable = "disable";
$l_internet_title = "Internet";
$l_ip_public = "Public IP ";
$l_state = "Internet state";
$l_eth0_title = "ETH0 : carte r&eacute;seau connect&eacute; vers Internet";
//tabs-lan
$l_lan = "LAN";
$l_eth1_title = "ETH1 : carte r&eacute;seau connect&eacute; sur le r&eacute;seau de consultation";
//tabs-dns-local
$l_local_dns = "Local DNS";
//tabs-dhcp
$l_dhcp = "DHCP";
$l_dhcp_server = "DHCP server";
$l_dhcp_activation = "Activation";
$l_dhcp_bail = "Bail";
$l_dhcp_description = "Si le DHCP est activ&eacute;e, la plage d'adresse IP est coup&eacute;e en deux.<br />
Les adresses IP de X.X.X.X &agrave; X sont attribu&eacute;es par DHCP, les autres sont r&eacute;serv&eacute;es pour un adressage manuel des stations clientes.<br />";
$l_dhcp_ip_statique = "Adresses IP statiques";
//tabs-route
$l_route = "ROUTE";
$l_destination_row_title = "Destination";
$l_mask_row_title = "Mask";
$l_gateway_row_title = "Gateway";
//buttons
$l_change = "Modifier";
}
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
define ("ALCASAR_CHILLI", "/etc/chilli.conf");
//define ("ALCASAR_CONF_FILE", "/usr/local/etc/alcasar.conf");
define ("ALCASAR_CONF_FILE", "includes/alcasar.conf");
define ("ALCASAR_ETHERS", "/usr/local/etc/alcasar-ethers");
define ("ALCASAR_DNS_NAME", "/usr/local/etc/alcasar-dns-name");
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
//Test de pr&eacute;sence et des droits en lecture des fichiers de configuration.
/*
if (!file_exists(ALCASAR_CHILLI)){
exit("Fichier de configuration ".ALCASAR_CHILLI." non pr&eacute;sent");
}
*/
if (!file_exists(ALCASAR_CONF_FILE)){
exit("Fichier de configuration ".ALCASAR_CONF_FILE." non pr&eacute;sent");
}
/*
if (!file_exists(ALCASAR_ETHERS)){
exit("Fichier de configuration ".ALCASAR_ETHERS." non pr&eacute;sent");
}
if (!file_exists(ALCASAR_DNS_NAME)){
exit("Fichier de configuration ".ALCASAR_DNS_NAME." non pr&eacute;sent");
}
if (!is_readable(ALCASAR_CONF_FILE)){
exit("Vous n'avez pas les droits de lecture sur le fichier ".ALCASAR_CONF_FILE);
}
if (!is_readable(ALCASAR_ETHERS)){
exit("Vous n'avez pas les droits de lecture sur le fichier ".ALCASAR_ETHERS);
}
if (!is_readable(ALCASAR_DNS_NAME)){
exit("Vous n'avez pas les droits de lecture sur le fichier ".ALCASAR_DNS_NAME);
}
*/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
/*
alcasar.conf parser
*/
$lines = file(ALCASAR_CONF_FILE);
$alcasar_conf = array();
foreach($lines as $line)
{
if (preg_match('/^[[:space:]]*#/',$line)) // on ignore les commentaires (ligne d&eacute;butant par #)
continue;
if (strpos($line,"=")!==false){ // on parse toutes les lignes contenant un "="
$tmp = explode("=",$line);
$alcasar_conf[trim($tmp[0])] = trim($tmp[1]);
}
}
/*
chilli parser
*/
/*
$lines = file(ALCASAR_CHILLI);
$chilli = array();
foreach($lines as $line)
{
if (preg_match('/^[[:space:]]*#/',$line)) // on ignore les commentaires (ligne d&eacute;butant par #)
continue;
if (strpos($line,"=")!==false){ // on parse toutes les lignes contenant un "="
$tmp = explode("=",$line);
$chilli[trim($tmp[0])] = trim($tmp[1]);
}
}
*/
/*
dnsname parser
*/
/*
$lines = file(ALCASAR_DNS_NAME);
$dnsadresse = array();
$n = 0;
foreach($lines as $line)
{
if (preg_match('/^[[:space:]]*#/',$line)) // on ignore les commentaires (ligne d&eacute;butant par #)
continue;
if (preg_match("/^(address=\/)/", trim($line))){ // on parse toutes les lignes commencant par "address="
if (strpos($line,"/")!==false){
$tmp = explode("/",$line);
if (count($tmp) == 3) {
$dnsadresse[$n]['DNSNAME'] = $tmp[1];
$dnsadresse[$n]['IPADDR'] = $tmp[2];
$n++;
}
}
}
}
*/
/*
ethers parser
BUG COOVA PRESENT : LE CHAMP DESCRIPTION EST TOUJOURS VIDE
*/
/*
$lines = file(ALCASAR_ETHERS);
$ethers = array();
$n = 0;
foreach($lines as $line)
{
if (preg_match('^[[:space:]]*#',$line)) // on ignore les commentaires (ligne d&eacute;butant par #)
continue;
$tmp = preg_split("/\s/",$line,2);
if (count($tmp) == 2) {
$ethers[$n]['MAC'] = trim($tmp[0]);
if (strpos($line,"#")!==false){ //si pr&eacute;sence de commentaire
$tmp2 = explode("#",$tmp[1],2);
$ethers[$n]['IPADDR']= trim($tmp2[0]);
$ethers[$n]['DESCRIPTION']= trim($tmp2[1]);
} else { //si absence de commentaire
$ethers[$n]['IPADDR']= trim($tmp[1]);
$ethers[$n]['DESCRIPTION']= "";
}
$n++;
}
}
*/
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Network page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
23,10 → 279,261
<script type="text/javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
 
$(function(){
$("a").attr("target", "content");
// Tabs
$('#tabs').tabs();
$( "button, input:submit, input:button, input:reset").button();
});
</script>
</head>
<body>
<h1>NETWORK PAGE</h1>
<div id="tabs">
<ul>
<li><a href="#tabs-wan"><?php echo $l_wan; ?></a></li>
<li><a href="#tabs-lan"><?php echo $l_lan; ?></a></li>
<li><a href="#tabs-dns-local"><?php echo $l_local_dns; ?></a></li>
<li><a href="#tabs-dhcp"><?php echo $l_dhcp; ?></a></li>
<li><a href="#tabs-route"><?php echo $l_route; ?></a></li>
</ul>
<!-- -->
<div id="tabs-wan">
<form method="post" name="form_wan" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header"><th colspan="2"><?php echo $l_internet_title; ?></th></tr>
</head>
<tbody>
<tr><td><?php echo $l_state; ?> :</td>
<td><?php
/*
if (InternetTest()){
echo " <img src='../images/state_ok.gif'> $l_enable";
$IP_PUB = exec ("wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1");}
else {
echo " <img src='../images/state_error.gif'> $l_disable";
$IP_PUB = "-.-.-.-";}
*/
?>
</td></tr>
<tr><td><?php echo $l_ip_public; ?> :</td><td><?php //echo $IP_PUB; ?></td></tr>
<tr><td colspan="2"><br /></td></tr>
<tr class="ui-widget-header"><th colspan="2"><?php echo $l_eth0_title; ?></th></tr>
<tr><td><?php echo $l_ip; ?> :</td>
<td>
<input type="text" name="WAN-ip" id="WAN-ip" value="<?php echo $alcasar_conf["PUBLIC_IP"]; ?>" class="text">
</td>
</tr>
<tr><td><?php echo $l_mask;
$WAN_mask="en cour";
?> :</td><td>
<input type="text" name="WAN-mask" id="WAN-mask" value="<?php echo $WAN_mask; ?>" class="text">
</td></tr>
<tr><td><?php echo $l_gateway; ?> :</td><td>
<input type="text" name="WAN-gateway" id="WAN-gateway" value="<?php echo $alcasar_conf["GW"]; ?>" class="text">
</td></tr>
<tr><td><?php echo $l_dns; ?> 1 :</td><td>
<input type="text" name="WAN-dns1" id="WAN-dns1" value="<?php echo $alcasar_conf["DNS1"]; ?>" class="text">
</td></tr>
<tr><td><?php echo $l_dns; ?> 2 :</td><td>
<input type="text" name="WAN-dns2" id="WAN-dns2" value="<?php echo $alcasar_conf["DNS2"]; ?>" class="text">
</td></tr>
<tr><td colspan ="2"><br /></td></tr>
<tr><td><input type="submit" value="<?php echo $l_change; ?>" class="text"></td><td><br /></td></tr>
</tbody>
</table>
</form>
</div>
<div id="tabs-lan">
<form method="post" name="form_lan" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header"><th colspan="2"><?php echo $l_eth1_title; ?></th></tr>
</thead>
<tbody>
<tr><td><?php echo $l_ip; ?> :</td><td><input type="text" name="eth0-ip" id="eth0-ip" value="<?php echo $alcasar_conf["PRIVATE_IP"]; ?>" class="text"></td></tr>
<tr><td><?php echo $l_mask; ?> :</td><td><input type="text" name="eth0-ip" id="eth0-ip" value="EN COUR" class="text"></td></tr>
<tr><td colspan ="2"><br /></td></tr>
<tr><td><input type="submit" value="Modifier" class="text"></td><td><br /></td></tr>
</tbody>
</table>
</form>
</div>
<div id="tabs-dns-local">
<table border="0" id="dns-local" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header"><th><?php echo $l_ip_row_title; ?></th><th></th><th><?php echo $l_host_row_title; ?></th><th class="col_action" scope="col" colspan="2"></th></tr>
</thead>
<tbody>
<?php
//foreach ($dnsadresse as $dns_entry){
?>
<tr>
<td><?php echo "IP"; ?></td>
<td> </td>
<td><?php echo "DOMAINE"; ?></td>
<td class="col_action" colspan="2"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/delete.png"></td>
</tr>
<?php
//}
?>
<tr>
<td>
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" readonly="readonly" value="168" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" readonly="readonly" value="182" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
<td> </td>
<td>
<input type="text" value="" maxlength="100" size="50" class="text" name="dhcp_static_macaddr_p0" id="dhcp_static_macaddr_p0">
</td>
<td class="col_action"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/add.png"></td>
<td class="col_action"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/chart_organisation.png"></td>
</tr>
</tbody>
</table>
</div>
<div id="tabs-dhcp">
<div id="dhcp">
<div id="div_dhcp_conf">
<h3 class="ui-widget-header"><?php echo $l_dhcp_server; ?></h3>
<form name="form_dhcp" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="dhcp_conf_form">
<table class="ui-widget ui-widget-content">
<tr><td><?php echo $l_dhcp_activation; ?> :</td>
<td>
<select name="" class="text">
<option><?php echo $l_yes; ?></option>
<option<?php echo $l_no; ?>></option>
</select>
</td>
</tr>
<tr>
<td>DHCP start :</td>
<td>
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" readonly="readonly" value="168" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" readonly="readonly" value="182" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
</tr>
<tr><td>DHCP stop :</td><td>
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" readonly="readonly" value="168" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" readonly="readonly" value="182" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
</tr>
<tr><td>MTU :</td><td><input type="text" value="1500" maxlength="8" size="8" class="text" name="" id=""></td></tr>
<tr><td><?php echo $l_dhcp_bail; ?> :</td><td><input type="text" value="600" maxlength="8" size="8" class="text" name="" id=""></td></tr>
<tr><td>Grâce :</td><td><input type="text" value="60" maxlength="8" size="8" class="text" name="" id=""></td></tr>
<tr><td colspan ="2"><br /></td></tr>
<tr><td><input type="submit" value="Modifier" class="text"></td><td></td></tr>
</table>
<br />
<?php echo $l_dhcp_description; ?>
</form>
</div>
<br /><br />
 
<div id="div_dhcp_statique">
<h3><?php echo $l_dhcp_ip_statique; ?></h3>
<table border="0" id="dhcp_static" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header"><th><?php echo $l_ip_row_title; ?></th><th></th><th><?php echo $l_mac_row_title; ?></th><th></th><th><?php echo $l_description_row_title; ?></th><th class="col_action" scope="col" colspan="2"></th></tr>
</thead>
<tbody>
<?php
//foreach ($ethers as $ip_static){
?>
<tr>
<td><?php //echo $ip_static['IP']; ?></td>
<td> </td>
<td><?php //echo $ip_static['MAC']; ?></td>
<td> </td>
<td><?php //echo $ip_static['DESCRIPTION']; ?></td>
<td class="col_action" colspan="2"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/delete.png"></td>
</tr>
<?php
//}
?>
<tr>
<td>
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
<td> </td>
<td>
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p0" id="dhcp_static_macaddr_p0">:
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p1" id="dhcp_static_macaddr_p1">:
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p2" id="dhcp_static_macaddr_p2">:
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p3" id="dhcp_static_macaddr_p3">:
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p4" id="dhcp_static_macaddr_p4">:
<input type="text" value="" maxlength="2" size="2" class="text" name="dhcp_static_macaddr_p5" id="dhcp_static_macaddr_p0">
</td>
<td> </td>
<td><input type="text" value="" maxlength="20" size="20" class="text" name="dhcp_static_description" id="dhcp_static_description"></td>
<td class="col_action"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/add.png"></td>
<td class="col_action"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/chart_organisation.png"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="tabs-route">
Alcasar est la passerelle par défaut des postes du réseau de consulation.<br />
Si un réseau est accessible par une autre passerelle présente sur le réseau de consultation vous pouvez le préciser içi.<br />
<br />
<table border="0" id="route" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header"><th><?php echo $l_destination_row_title; ?></th><th></th><th><?php echo $l_mask_row_title; ?></th><th><?php echo $l_gateway_row_title; ?></th><th class="col_action" scope="col" colspan="2"></th></tr>
</thead>
<tbody>
<?php
$route_list = array();// a faire
//foreach ($route_list as $route){
?>
<tr>
<td><?php //echo $route['DESTINATION']; ?>DESTINATION</td>
<td> </td>
<td><?php //echo $route['NETMASK']; ?>NETMASK</td>
<td><?php //echo $route['GATEWAY']; ?>GATEWAY</td>
<td class="col_action" colspan="2"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/delete.png"></td>
</tr>
<?php
//}
?>
<tr>
<td>
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
<td> </td>
<td>
<input type="text" value="255" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" value="255" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" value="255" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="0" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
<td>
<input type="text" readonly="readonly" value="192" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p0" id="dhcp_static_ipaddr_p0">.
<input type="text" readonly="readonly" value="168" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p1" id="dhcp_static_ipaddr_p1">.
<input type="text" readonly="readonly" value="182" maxlength="3" size="3" class="readonly" name="dhcp_static_ipaddr_p2" id="dhcp_static_ipaddr_p2">.
<input type="text" value="" maxlength="3" size="3" class="text" name="dhcp_static_ipaddr_p3" id="dhcp_static_ipaddr_p3">
</td>
<td class="col_action"><image src="<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/add.png"></td>
<td class="col_action"></td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
/web/admin/welcome.php
10,6 → 10,7
<html>
<head>
<title>Welcome</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
</head>
 
/web/admin/activity.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Activity page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/haut.php
9,6 → 9,7
<html>
<head>
<title>haut</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- fonctions javascript -->
<script language="javascript">
function ouvrir(page)
/web/admin/users.php
18,6 → 18,7
<html>
<head>
<title>Users page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
151,7 → 152,7
<div id="tabs-users">
<ul>
<li><a href="#tabs1">Usagers</a></li>
<li><a href="#tabs2">Vouchers</a></li>
<!--li><a href="#tabs2">Vouchers</a></li-->
<li><a href="#tabs3">Modèles</a></li>
</ul>
<div id="tabs1">
188,7 → 189,7
<br><br><br>
</div>
<div id="tabs2">
<!--div id="tabs2">
<div>
Un "Voucher" est un compte d'accès de type "pré-payé" qui dépend d'une durée d'utilisation ou d'un délai dans le temps.<br>
<font color="red">PROCHAINEMENT DISPONIBLE</font>
227,7 → 228,7
?>
</tbody>
</table>
</div>
</div-->
<div id="tabs3">
<div>
Afin de gagner du temps dans la création des comptes usagers et vouchers, vous avez la possibilité de prédéfinir des modèles de création de compte.<br>
256,6 → 257,21
</tr>
</tfoot>
<tbody>
<tr>
<td width="20px">#</td>
<td>Défaut</td>
<td>Modèle par défaut non modifiable. Aucune caractéristique particulière</td>
</tr>
<tr>
<td width="20px">#</td>
<td>Ticket 1 jour</td>
<td>Modèle d'utilisateur, connexion valide 1 journée</td>
</tr>
<tr>
<td width="20px">#</td>
<td>Ticket 1 semaine</td>
<td>Modèle d'utilisateur, connexion valide 1 semaine</td>
</tr>
<?php
foreach ($models as $model){
echo "<tr><td></td><td>".$model['name']."</td><td>".$model['description']."</td></tr>";
/web/admin/auth_exceptions.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Auth exceptions page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
23,10 → 51,42
<script type="text/javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
 
$(document).ready(function(){
// Tabs
$('#tabs-import').tabs();
// buttons
$( "button, input:submit, input:button, input:reset").button();
});
</script>
</head>
<body>
<h1>AUTH EXCEPTIONS PAGE</h1>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">AUTH EXCEPTIONS PAGE</span>
</div>
<br />
Entrez ici les exceptions à l'authentification.<br />
<br />
<div id="tabs-import">
<ul>
<li><a href="#tabs1">Domaines de confiance</a></li>
<li><a href="#tabs2">IP et réseaux de confiance</a></li>
<li><a href="#tabs3">Equipements de confiance</a></li>
</ul>
<div id="tabs1">
<h2>Liste de noms de domaine de confiance</h2>
Entrez ici les noms de domaine Internet pouvant être joints sans authentification.<br />
<br />
</div>
<div id="tabs2">
<h2>Liste d'adresses IP ou d'adresses de réseau de confiance</h2>
Entrez ici les adresses IP ou adresses de réseau pouvant être joints sans authentification.<br />
<br />
</div>
<div id="tabs3">
<h2>Equipements de confiance</h2>
Antrez ici les adresses MAC des équipements autorisés à joindre Internet sans authentification.<br />
<br />
</div>
</div>
</body>
</html>
/web/admin/docs/alcasar-2.3-technique.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/docs/alcasar-2.3-presentation.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/docs/alcasar-2.3-exploitation.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/docs/alcasar-2.3-installation.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/menu.php
18,11 → 18,14
$Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
require_once(ALCASAR_ADMIN_PATH_LANG.'/fr/menu.lang.php');
$l_sysinfo = "Informations système";
}
else {
require_once(ALCASAR_ADMIN_PATH_LANG.'/en/menu.lang.php');
$l_sysinfo = "System informations";
}
 
$version = "2.3";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
96,17 → 99,17
<div>
<h3><a href="#"><?php echo $l_home; ?></a></h3>
<div>
<a href="welcome.php"><?php echo ucfirst(strtolower($l_home)); ?></a>
<a href="welcome.php"><?php echo $l_sysinfo; ?></a>
</div>
</div>
<div>
<h3><a href="#"><?php echo $l_system; ?></a></h3>
<div>
<a href="configuration.php"><?php echo $l_configuration; ?></a><br>
<a href="services.php"><?php echo $l_services; ?></a><br>
<a href="network.php"><?php echo $l_network; ?></a><br>
<a href="activity.php"><?php echo $l_activity; ?></a><br>
<a href="directories.php"><?php echo $l_directories; ?></a>
<a href="directories.php"><?php echo $l_directories; ?></a><br>
<a href="configuration.php"><?php echo $l_configuration; ?></a>
</div>
</div>
<div>
138,7 → 141,7
<a href="welcome.php"><?php echo $l_stat_user_day; ?></a><br>
<a href="welcome.php"><?php echo $l_stat_con; ?></a><br>
<a href="welcome.php"><?php echo $l_stat_daily; ?></a><br>
<a href="<?php echo ALCASAR_ADMIN_PATH_RS; ?>/awstats/"><?php echo $l_stat_web; ?></a><br>
<a href="<?php echo ALCASAR_ADMIN_PATH_RS; ?>/awstats/readme.html"><?php echo $l_stat_web; ?></a><br>
<a href="<?php echo ALCASAR_ADMIN_PATH_RS; ?>/firewallEyes/index.html"><?php echo $l_firewall; ?></a>
</div>
</div>
146,6 → 149,7
<h3><a href="#"><?php echo $l_backup; ?></a></h3>
<div>
<a href="backups.php"><?php echo $l_backup; ?></a><br>
<a href="backups.php">Fichiers Logs</a><br>
</div>
</div>
</div>
154,9 → 158,9
<div>
<h3><a href="#"><?php echo $l_docs; ?></a></h3>
<div>
<a href="docs/alcasar-2.1-presentation.pdf"><?php echo $l_doc_intro; ?></a><br>
<a href="docs/alcasar-2.1-installation.pdf"><?php echo $l_doc_install; ?></a><br>
<a href="docs/alcasar-2.1-exploitation.pdf"><?php echo $l_doc_exploit; ?></a><br>
<a href="docs/alcasar-<?php echo $version; ?>-presentation.pdf"><?php echo $l_doc_intro; ?></a><br>
<a href="docs/alcasar-<?php echo $version; ?>-installation.pdf"><?php echo $l_doc_install; ?></a><br>
<a href="docs/alcasar-<?php echo $version; ?>-exploitation.pdf"><?php echo $l_doc_exploit; ?></a><br>
</div>
</div>
</div>
/web/admin/filters_networks.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Filters networks page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/bas.php
10,6 → 10,7
<HTML>
<HEAD>
<TITLE>bas</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</HEAD>
<FRAMESET COLS="220,*" border="no">
<FRAME frameborder="no" border="no" scrolling="no" nosave noresize src="menu.php" NAME="menu">
/web/admin/user.php.horaire
0,0 → 1,690
<?php
/*
 
 
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
//include(ALCASAR_ADMIN_PATH_LIB.'/user.class.php');
include(ALCASAR_ADMIN_PATH_LIB.'/radiusMysqlUser.class.php');
 
if (isset($_GET['username'])){
$username = $_GET['username'];
} else {
$username = '';
}
 
$ouser = new radiusMysqlUser();
$ouser->load($username, true);
$user = $ouser->get();
//$attributes = $ouser->getAttribute();
print_r($user);
$ouser->addgroup('test');
print_r($ouser->groups());
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Edit <?php echo $options['username']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!--link rel="stylesheet" href="../css/style.css" type="text/css"-->
<!-- include JQUERY UI CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/ui-lightness/jquery-ui-1.8.10.custom.css">
<!-- include custom page CSS -->
 
<!-- include JQUERY -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.5.min.js"></script>
<!-- include JQUERY UI -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
var horaireFlag = false;
var colFlag = false;
var rowFlag = false;
var no_limite_flag = false;
function seconds2Hms(d) {
d = Number(d);
var h = Math.floor(d / 3600);
var m = Math.floor(d % 3600 / 60);
var s = Math.floor(d % 3600 % 60);
//return ((h > 0 ? h + ":" : "") + (m > 0 ? (h > 0 && m < 10 ? "0" : "") + m + ":" : "0:") + (s < 10 ? "0" : "") + s);
return new array(h,m,s);
}
function hms2Seconds(h, m, s) {
h = Number(d);
m = Number(d);
s = Number(d);
return Math.floor(h * 3600 + m * 60 + s);
}
$(function(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected');
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
//Time-limite
var Time_limite = '';
parseHoraire(Time_limite);
// Tabs
$('#tabs-user').tabs();
// datepicker
$( ".datepicker" ).datepicker(
//$.datepicker.regional[ "fr" ]
{
altFormat: 'yy-mm-dd',
altField: '#actualDate', //pour mise à jour de ma bdd!
dateFormat: 'dd/mm/yy'
});
// button
$( "button, input:submit, input:button, input:reset").button();
$('#horaire-table').mouseleave(function() {
horaireFlag = false;
colFlag = false;
rowFlag = false;
});
// selection à partir du calendrier
$('#horaire-table').find('tbody').mouseleave(function() {
horaireFlag = false;
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mousedown(function() {
horaireFlag = true;
colorize_body($(this));
});
$('#horaire-table').find('tbody > tr > td').mouseup(function() {
horaireFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mouseover(function() {
if (horaireFlag === true){
colorize_body($(this));
}
});
// selection à partir de l'entête de la 1er colone
$('#horaire-table').find('thead > tr > th:eq(0)').mousedown(function() {
if (no_limite_flag){
no_limite();
no_limite_flag = false;
} else {
all_limite();
no_limite_flag = true;
}
});
// selection à partir de l'entête de colone
$('#horaire-table').find('thead > tr > th').mousedown(function() {
colFlag = true;
head_colorize_body($(this))
});
$('#horaire-table').find('thead > tr > th').mouseup(function() {
colFlag = false;
});
$('#horaire-table').find('thead').mouseleave(function() {
colFlag = false;
});
$('#horaire-table').find('thead > tr > th').mouseover(function() {
if (colFlag == true){
head_colorize_body($(this))
}
});
// selection à partir de l'entête de ligne
//.mouseleave event is allready defined
$('#horaire-table').find('tbody > tr > th').mousedown(function() {
rowFlag = true;
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
});
$('#horaire-table').find('tbody > tr > th').mouseup(function() {
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > th').mouseover(function() {
if (rowFlag == true){
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
}
});
function calcule_plage_jour(horaires){
var d, f, i, deb, tmp;
deb = true;
tmp = new Array();
for (i=0 ; i<=47 ; i++) {
if ( jQuery.inArray(i, horaires) !== -1){
if (deb){
d = i;
deb = false;
}
if (i == 47){
f = i;
tmp.push(new Array(d,f));
deb = true;
}
} else {
if (!(deb)){
f = eval(i-1);
tmp.push(new Array(d,f));
deb = true;
}
}
}
return tmp;
}
function parsePlage(plage){
alert(plage[0]);
for (i=0 ; i < plage.length-1 ; i++){
deb = plage[i][0];
fin = plage[i][1];
debh = eval(deb/2);
alert(deb);
if (eval(deb%2) == 0){
debm = "00";
} else {
debm = "30";
}
deb = debh + debm;
finh = parseInt(eval(fin/2));
if (eval(fin%2) == 0){
finm = "00";
} else {
finm = "30";
}
fin = finh + finm;
}
return deb+fin;
}
//Wk2305-0855,Sa,Su2305-1655
$('#button_test').click(function(){
a = new Array();
mo = new Array();
tu = new Array();
we = new Array();
th = new Array();
fr = new Array();
sa = new Array();
so = new Array();
plageMo = new Array();
/*
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, td){
if ($(td).hasClass('horaireIsSelected')) a.push(index);
})
*/
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, tda){
if ($(tda).hasClass('horaireIsSelected')) a.push(index);
});
td_mo = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_mo).each( function(index, td_mo_a){
if ($(td_mo_a).hasClass('horaireIsSelected')) mo.push(index);
});
//alert(mo);
td_tu = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_tu).each( function(index, td_tu_a){
if ($(td_tu_a).hasClass('horaireIsSelected')) tu.push(index);
});
//alert(tu);
td_we = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_we).each( function(index, td_we_a){
if ($(td_we_a).hasClass('horaireIsSelected')) we.push(index);
});
//alert(we);
td_th = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_th).each( function(index, td_th_a){
if ($(td_th_a).hasClass('horaireIsSelected')) th.push(index);
});
//alert(th);
td_fr = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_fr).each( function(index, td_fr_a){
if ($(td_fr_a).hasClass('horaireIsSelected')) fr.push(index);
});
//alert(fr);
td_sa = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_sa).each( function(index, td_sa_a){
if ($(td_sa_a).hasClass('horaireIsSelected')) sa.push(index);
});
//alert(sa);
td_so = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_so).each( function(index, td_so_a){
if ($(td_so_a).hasClass('horaireIsSelected')) so.push(index);
});
//alert(so);
plageMo = calcule_plage_jour(mo);
plageTu = calcule_plage_jour(tu);
plageWe = calcule_plage_jour(we);
plageTh = calcule_plage_jour(th);
plageFr = calcule_plage_jour(fr);
plageSa = calcule_plage_jour(sa);
plageSo = calcule_plage_jour(so);
//alert(plage);
//alert(a);
$('#test').val(parsePlage(plageMo));
//la suite ?
});
});
//fonctions de sélection/déselection
function row_colorize_body(row_ref){
if (row_ref.find('td').hasClass('horaireIsNotSelected') || !(row_ref.find('td').hasClass('horaireIsSelected'))){
row_ref.find('td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
row_ref.find('td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function colorize_body(td_ref){
if (td_ref.hasClass('horaireIsNotSelected') || !(td_ref.hasClass('horaireIsSelected'))){
td_ref.removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
td_ref.removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function head_colorize_body(head_ref){
horaire_head = false;
var index = head_ref.index();
index = (parseInt(index) - 1) *2;
index2 = index + 1;
if (head_ref.hasClass('headSelect')){
head_ref.removeClass('headSelect').addClass('headNoSelect');
horaire_head = false;
} else {
head_ref.removeClass('headNoSelect').addClass('headSelect');
horaire_head = true;
}
var rows = $('#horaire-table').find('tbody > tr').get();
$.each(rows, function() {
if (horaire_head){
$(this).find('td:eq('+index+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
$(this).find('td:eq('+index+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
});
$('#periode_perso').attr("checked","checked");
}
//fonctions de sélection/déselection des profils pre-définis
function no_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function all_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
function wk(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');;
$('#horaire-table').find('tbody > tr:lt(5) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function we(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
$('#horaire-table').find('tbody > tr:gt(4) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
//parse Time-limite et affiche le résultat dans le calendrier
function parseHoraire(Time_limite){
if (Time_limite == ''){
no_limite();
return;
}
}
</script>
<style type="text/css">
.datepicker{
background:url(../images/calendrier.gif) no-repeat 110px 3px;
}
</style>
</head>
<body>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">Gestion des usagers</span>
</div>
<div id="usager">
<div id="">
<br />
<table class="ui-widget ui-widget-content">
<tr><td>Usager :</td><td><input type="text" name="User" id="User" value="<?php echo $username; ?>" readonly></td><td></td><tr>
<tr><td>Mot de passe :</td><td><input type="text" name="User-mdp" id="User-mdp" value="********"></td><td><button>Générer MDP</button></td><tr>
<tr><td>Date d'expiration :</td><td><input type="text" value="<?php echo $user['Expiration']; ?>" name="Expiration0" id="" class="datepicker"></td><td></td></tr>
<tr><td colspan="2"><br /></td><td></td><tr>
<tr><td colspan="2"><input type="button" value="Supprimer" name="" id=""> <input type="button" value="Modifier" name="" id=""></td><td></td><tr>
</table>
<br />
</div>
<div id="tabs-user">
<ul>
<li><a href="#tabs1">Infos personnelles</a></li>
<li><a href="#tabs2">Membre de</a></li>
<li><a href="#tabs3">Plage horaire</a></li>
<li><a href="#tabs4">Caractéristiques</a></li>
<li><a href="#tabs5">Etats</a></li>
<li><a href="#tabs6">Sessions ouvertes</a></li>
<li><a href="#tabs7">Connexion</a></li>
</ul>
<div id="tabs1">
<table class="ui-widget ui-widget-content">
<tr><td>Nom complet (NOM Prénom)</td><td><input type="text" name="" id="" value="<?php echo $user['Name'];?>"></td><tr>
<tr><td>Mail</td><td><input type="text" name="email" id="email" value="<?php echo $user['Mail'];?>"></td><tr>
<tr><td>Service</td><td><input type="text" name="service" id="service" value="<?php echo $user['Department'];?>"></td><tr>
<tr><td>Téléphone personnel</td><td><input type="text" name="phone" id="phone" value="<?php echo $user['HomePhone'];?>"></td><tr>
<tr><td>Téléphone bureau</td><td><input type="text" name="bureau" id="bureau" value="<?php echo $user['WorkPhone'];?>"></td><tr>
<tr><td>Téléphone mobile</td><td><input type="text" name="mobile" id="mobile" value="<?php echo $user['Mobile'];?>"></td><tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
</table>
</div>
<div id="tabs2">
<button>Ajouter à un groupes</button>
<table width="100%">
<?php
$groups = array(); // faire une boucle pour les groupes
foreach ($groups as $group){
echo "<tr><td></td><td>".$group['groupname']."</td><td width='10'><image src='".ALCASAR_ADMIN_PATH_IMG."/delete.png'></td> </tr>";
} ?>
</table>
</div>
<div id="tabs3">
<style>
#testa td, #testa th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
width:50px;
vertical-align: bottom; /* Alignement vertical, le contenu des cellules sera placé en bas */
border: 1px solid black;
font-family: "Comic Sans MS", "Trebuchet MS", Times, "Times New Roman", serif;
text-align: center;
 
}
#testb td {
height: 10px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#testb th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#horaire-table th{
}
#horaire-table td{
}
#horaire-table thead, #horaire-table tfoot {
background-color:#D0E3FA;
/*background-image:url(monimage.jpg);*/
border:1px solid #6495ed;
}
#horaire-table tbody {
background-color:#FFFFFF;
/*border:1px solid #6495ed;*/
}
#horaire-table thead th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table tbody th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table td {
font-family:sans-serif;
font-size:80%;
border:1px dotted #6495ed;
/*border-style: dotted;*/
text-align:left;
width:9px;
}
.horaireIsSelected {
background-color:blue;
}
.horaireIsNotSelected {
background-color:#FFFFFF;
}
</style>
<div id="plage_horaire">
<table border=1 id='horaire-table' cellpadding='0' cellspacing='1'>
<thead>
<tr id="horaireRow">
<th>Horaires</th>
<th colspan="2">0</th><th colspan="2">1</th><th colspan="2">2</th><th colspan="2">3</th><th colspan="2">4</th><th colspan="2">5</th><th colspan="2">6</th><th colspan="2">7</th><th colspan="2">8</th><th colspan="2">9</th><th colspan="2">10</th><th colspan="2">11</th><th colspan="2">12</th>
 
<th colspan="2">13</th><th colspan="2">14</th><th colspan="2">15</th><th colspan="2">16</th><th colspan="2">17</th><th colspan="2">18</th><th colspan="2">19</th><th colspan="2">20</th><th colspan="2">21</th><th colspan="2">22</th><th colspan="2">23</th>
<tr>
</thead>
<tbody>
<tr id='MoRow'>
<th>Lundi</th>
 
<td id='Mo'><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
</tr>
<tr id='TuRow'>
<th>Mardi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
 
<tr id='WeRow'>
<th>Mercredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='ThRow'>
<th>Jeudi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='FrRow'>
<th>Vendredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SaRow'>
<th>Samedi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SoRow'>
<th>Dimanche</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
</tbody>
 
</table>
<br />
Legende :<br />
<style>
.autorise{
border:1px dotted #6495ed;
background-color:blue;
width: 20px;
}
.refuse{
border:1px dotted #6495ed;
background-color:#FFFFFF;
width: 20px;
}
 
</style>
<table>
<tr><td class="autorise"><br /></td><td>Autoris&eacute;</td></tr>
<tr><td class="refuse"><br /></td><td>Refus&eacute;</td></tr>
</table>
<br />
Période :<br />
<input type="radio" name="periode" value="0" onClick="no_limite();"> Aucune limite<br />
<input type="radio" name="periode" value="1" onClick="wk();"> En semaine uniquement<br />
<input type="radio" name="periode" value="2" onClick="we();"> Week end uniquement<br />
<input type="radio" name="periode" value="3" id="periode_perso" checked> Personalisé <br />
<br />
<button>Annuler</button><button id="button_test">Modifier</button>
<input type="text" name="test" id="test" size="255" value="">
 
<br />
</div>
</div>
<div id="tabs4">
<table class="ui-widget ui-widget-content">
<!--thead><tr class="ui-widget-header"><td></td><td></td></tr></thead-->
<tbody>
<tr><td>Nombre de session simultanée</td><td><input type="text" value="<?php echo $user['Simultaneous-Use']; ?>" name="Simultaneous-Use0" id=""></td></tr>
<tr><td>Durée limite d'une session</td><td><input type="hidden" name="Session-Timeout0" id="" value=""><input type="text" value="" name="Session-Timeout0_h" id="" size="4">h<input type="text" value="" name="Session-Timeout0_mm" id="" size="2">mm<input type="text" value="" name="Session-Timeout0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite journalière</td><td><input type="hidden" name="Max-Daily-Session0" id="" value=""><input type="text" value="" name="Max-Daily-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Daily-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Daily-Session0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite mensuelle</td><td><input type="hidden" name="Max-Monthly-Session0" id="" value=""><input type="text" value="" name="Max-Monthly-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Monthly-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Monthly-Session0_s" id="" size="2">s</td></tr>
<tr><td>Période hebdomadaire</td><td><input type="text" value="<?php echo $user['Login-Time']; ?>" name="Login-Time0" id=""></td></tr>
<tr><td>Nombre d'octets max. en émission (en octets)</td><td><input type="text" value="<?php echo $user['ChilliSpot-Max-Input-Octets']; ?>" name="ChilliSpot-Max-Input-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. en réception (en octets)</td><td><input type="text" value="<?php echo $user['ChilliSpot-Max-Output-Octets']; ?>" name="ChilliSpot-Max-Output-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. total transmit (en octets)</td><td><input type="text" value="<?php echo $user['ChilliSpot-Max-Total-Octets']; ?>" name="ChilliSpot-Max-Total-Octets0" id=""></td></tr>
<tr><td>Bande passante montante max. (en kbits/seconde) </td><td><input type="text" value="<?php echo $user['ChilliSpot-Bandwidth-Max-Up']; ?>" name="ChilliSpot-Bandwidth-Max-Up0" id=""></td></tr>
<tr><td>Bande passante descendante max. (en kbits/seconde)</td><td><input type="text" value="<?php echo $user['ChilliSpot-Bandwidth-Max-Down']; ?>" name="ChilliSpot-Bandwidth-Max-Down0" id=""></td></tr>
<tr><td>URL de redirection</td><td><input type="text" value="<?php echo $user['WISPr-Redirection-URL']; ?>" name="" id=""></td></tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
</tbody>
</table>
</div>
<div id="tabs5"></div>
<div id="tabs6">
Nb. sessions ouvertes : X<br />
<br />
<button>Déconnectet toutes les sessions ouvertes</button>
<br /><br />
<table class="ui-widget ui-widget-content">
<thead><tr class="ui-widget-header"><td width="50">#</td><td width="100">MAC</td><td width="100">IP</td><td>Hôte</td><td>Date/heure</td><td>-</td></tr></thead>
<tbody>
<tr><td>1</td><td>exemple</td><td>exemple</td><td>exemple</td><td>exemple</td><td><a href="">déconnecter</a></td></tr>
<tr><td>2</td><td>exemple</td><td>exemple</td><td>exemple</td><td>exemple</td><td><a href="">déconnecter</a></td></tr>
</tbody>
</table>
</div>
<div id="tabs7"></div>
</div>
<div>
 
</body>
</body>
/web/admin/configuration.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Configuration page</title>
<title>Auth exceptions page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
23,10 → 51,49
<script type="text/javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
 
$(document).ready(function(){
// Tabs
$('#tabs-import').tabs();
// buttons
$( "button, input:submit, input:button, input:reset").button();
});
</script>
</head>
<body>
<h1>CONFIGURATION PAGE</h1>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">CONFIGURATION PAGE</span>
</div>
<br />
Page de configuration avancée.<br />
<font color="red">Fonctions prochainement disponibles.</font><br />
<br />
<div id="tabs-import">
<ul>
<li><a href="#tabs1">Système</a></li>
<li><a href="#tabs2">Portail captif</a></li>
<li><a href="#tabs3">Auto-enregistrement</a></li>
<li><a href="#tabs4">Maintenance</a></li>
</ul>
<div id="tabs1">
<h2>Config système</h2>
Cette page permet de configurer divers options du système (mail admin, redirection globale des usagers, etc...)<br />
<br />
</div>
<div id="tabs2">
<h2>Configuration du portail captif</h2>
Cette page permet de configurer la page d'interception du portail captif (texte affiché, information usager, présenc d'une charte, etc...).<br />
<br />
</div>
<div id="tabs3">
<h2>Equipements de confiance</h2>
Antrez ici les adresses MAC des équipements autorisés à joindre Internet sans authentification.<br />
<br />
</div>
<div id="tabs4">
<h2>Maintenace système</h2>
Redémarage/arrêt du sytème, affichage "page de maintenance", etc...<br />
<br />
</div>
</div>
</body>
</html>
/web/admin/login.php
31,6 → 31,7
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
</head>
<style>
/web/admin/groups.php
9,11 → 9,13
 
//a faire
$groups = array();
$models = array();
 
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Groups page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
92,6 → 94,26
$('#groups_table_filter').after('<div style="float:left"><a href="javascript:alert(\'Fonction prochainement dispobible.\');" title="Recherche avancée">Avancée</a></div>');
$('#models_table').dataTable(
{
// fonction suivante permet d'avoir une colone numérotée dynamiquement (non triable)
"fnDrawCallback": function ( oSettings ) {
/* Need to redo the counters if filtered or sorted */
if ( oSettings.bSorted || oSettings.bFiltered )
{
for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
{
$('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
}
}
},
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] }
],
"aaSorting": [[ 1, 'asc' ]]
//fin
,"oLanguage": table_data_lang
});
});
105,6 → 127,7
<div id="tabs-groups">
<ul>
<li><a href="#tabs1">Groupes</a></li>
<li><a href="#tabs2">Modèles</a></li>
</ul>
<div id="tabs1">
<div>
140,6 → 163,42
<br><br><br>
</div>
<div id="tabs2">
<div>
Afin de gagner du temps dans la création des groupes, vous avez la possibilité de prédéfinir des modèles de création de groupe.<br>
<font color="red">PROCHAINEMENT DISPONIBLE</font>
</div>
<br>
<div style="float:right;">
<form name="newModelform">
<input type="button" value="Nouveau modèle">
</form>
</div>
<br>
<table id="models_table" cellspacing="1" class="tablesorter" border="0" width="100%">
<thead>
<tr>
<th width="20px">#</th>
<th>Modèle</th>
<th>Description</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20px">#</th>
<th>Modèle</th>
<th>Description</th>
</tr>
</tfoot>
<tbody>
<?php
foreach ($models as $model){
echo "<tr><td></td><td>".$model['name']."</td><td>".$model['description']."</td></tr>";
}
?>
</tbody>
</table>
</div>
</div>
</body>
</html>
/web/admin/images/chart_organisation.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/images/add.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/images/calendrier.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/web/admin/includes/user_edit.attrs
0,0 → 1,49
#
# Attributes which will be visible in the user/group edit pages
#
# Format: Attribute Comment
#
#
#Auth-Type <a href="help/auth_type_help.html" target=su_help onclick=window.open("help/auth_type_help.html","su_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Auth-Type Help Page"><font color="blue">Auth-Type</font></a>
#Simultaneous-Use <a href="help/simultaneous_use_help.html" target=su_help onclick=window.open("help/simultaneous_use_help.html","su_help","width=560,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Simultaneous Use Help Page"><font color="blue">Simultaneous Use</font></a>
Framed-Protocol <a href="help/framed_protocol_help.html" target=fpr_help onclick=window.open("help/framed_protocol_help.htlml","fpr_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-Protocol Help PPage"><font color="blue">Protocol</font></a>
Framed-IP-Address <a href="help/framed_ip_address_help.html" target=fia_help onclick=window.open("help/framed_ip_address_help.html","fia_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-IP-Address Help Page"><font color="blue">IP Address</font></a>
Framed-IP-Netmask IP Netmask
#Framed-Route Route
#Framed-Routing
#Filter-Id <a href="help/filter_id_help.html" target=fid_help onclick=window.open("help/filter_id_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Filter-ID Help Page"><font color="blue">Filter ID</font></a>
Framed-MTU <a href="help/framed_mtu_help.html" target=fid_help onclick=window.open("help/framed_mtu_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Framed-MTU Help Page"><font color="blue">Framed-MTU</font></a>
Framed-Compression <a href="help/framed_compression_help.html" target=fc_help onclick=window.open("help/framed_compression_help.html","fc_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Framed Compression Help Page"><font color="blue">Compression Used</font></a>
Service-Type <a href="help/service_type_help.html" target=st_help onclick=window.open("help/service_type_help.html","st_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Service-Type Help Page"><font color="blue">Service Type</font></a>
#Login-IP-Host
#Login-Service
#Login-TCP-Port
#Callback-Number <a href="help/callback_number_help.html" target=fid_help onclick=window.open("help/callback_number_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Callback-Number Help Page"><font color="blue">Callback-Number</font></a>
#Callback-Id <a href="help/callback_id_help.html" target=fid_help onclick=window.open("help/callback_id_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Callback-ID Help Page"><font color="blue">Callback-ID</font></a>
#Framed-IPX-Network
#Class <a href="help/class_help.html" target=fid_help onclick=window.open("help/class_help.html","fid_help","width=560,height=230,toolbar=no,scrollbars=no,resizable=yes") title="Class Help Page"><font color="blue">Class</font></a>
Session-Timeout <a href="help/session_timeout_help.html" target=st_help onclick=window.open("help/session_timeout_help.html","st_help","width=600,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Session Timeout Help Page"><font color="blue">Session Timeout</font></a>
Idle-Timeout <a href="help/idle_timeout_help.html" target=it_help onclick=window.open("help/idle_timeout_help.html","it_help","width=600,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Idle Timeout Help Page"><font color="blue">Idle Timeout</font></a>
#Termination-Action
#Login-LAT-Service
#Login-LAT-Node
#Login-LAT-Group
#Framed-AppleTalk-Link
#Framed-AppleTalk-Network
#Framed-AppleTalk-Zone
Port-Limit <a href="help/port_limit_help.html" target=pl_help onclick=window.open("help/port_limit_help.html","pl_help","width=600,height=170,toolbar=no,scrollbars=no,resizable=yes") title="Port Limit Help Page"><font color="blue">Port Limit</font></a>
#Login-LAT-Port
#Dialup-Access <a href="help/dialup_access_help.html" target=da_help onclick=window.open("help/dialup_access_help.html","da_help","width=560,height=200,toolbar=no,scrollbars=no,resizable=yes") title="Dialup Access Help Page"><font color="blue">Dialup Access (use FALSE to lock)</font></a>
Dialup-Lock-Msg <a href="help/lock_message_help.html" target=lm_help onclick=window.open("help/lock_message_help.html","lm_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Lock Message Help Page"><font color="blue">Lock Message</font></a>
#Reply-Message <a href="help/reply_message_help.html" target=lm_help onclick=window.open("help/reply_message_help.html","lm_help","width=600,height=210,toolbar=no,scrollbars=no,resizable=yes") title="Reply-Message Help Page"><font color="blue">Reply-Message</font></a>
#Max-Daily-Session Daily Limit (secs)
#Max-Weekly-Session Weekly Limit (secs)
#Max-Monthly-Session Monthly Limit (secs)
#Login-Time <a href="login_time_create.php3?val=$name1&first=yes" target=lt_create onclick=window.open("login_time_create.php3?val=$name1&first=yes","lt_create","width=600,height=490,toolbar=no,scrollbars=yes,resizable=yes") title="Login-Time Creation Page"><font color="blue">User Login Period </font></a>(<a href="help/login_time_help.html" target=lt_help onclick=window.open("help/login_time_help.html","lt_help","width=600,height=370,toolbar=no,scrollbars=no,resizable=yes") title="Login-Time Help Page"><font color="blue">UUCP </font></a>Format)
#Expiration <a href="help/expiration_help.html" target=lt_help onclick=window.open("help/expiration_help.html","lt_help","width=600,height=180,toolbar=no,scrollbars=no,resizable=yes") title="Expiration Help Page"><font color="blue">User Expiration Date</font></a>
#
# Uncomment this if you are using ldap and you are using user regular profiles.
# Also make sure that Regular-Profile maps to the correct ldap attribute in
# extra.ldap-attrmap
#
#Regular-Profile User Regular Profile DN
/web/admin/includes/sql.attrmap.old
0,0 → 1,52
#
# A mapping between the attributes used by dialup_admin and the attribute
# names that will be stored in the SQL database
#
# Attributes that are not contained in this file are assumed to be reply
# items and map to the same name as the one used by dialup_admin
#
# Format:
# checkItem|replyItem Attribute-In-Dialup-Admin Attribute-In-SQL
#
#
checkItem Auth-Type Auth-Type
checkItem Simultaneous-Use Simultaneous-Use
checkItem Called-Station-Id Called-Station-Id
checkItem Calling-Station-Id Calling-Station-Id
checkItem Dialup-Access none
checkItem Max-Daily-Session Max-Daily-Session
checkItem Max-Weekly-Session Max-Weekly-Session
checkItem Max-Monthly-Session Max-Monthly-Session
checkItem Login-Time Login-Time
checkItem Expiration Expiration
 
replyItem Service-Type Service-Type
replyItem Framed-Protocol Framed-Protocol
replyItem Framed-IP-Address Framed-IP-Address
replyItem Framed-IP-Netmask Framed-IP-Netmask
replyItem Framed-Route Framed-Route
replyItem Framed-Routing Framed-Routing
replyItem Filter-Id Filter-Id
replyItem Framed-MTU Framed-MTU
replyItem Framed-Compression Framed-Compression
replyItem Login-IP-Host Login-IP-Host
replyItem Login-Service Login-Service
replyItem Login-TCP-Port Login-TCP-Port
replyItem Callback-Number Callback-Number
replyItem Callback-Id Callback-Id
replyItem Framed-IPX-Network Framed-IPX-Network
replyItem Class Class
replyItem Session-Timeout Session-Timeout
replyItem Idle-Timeout Idle-Timeout
replyItem Termination-Action Termination-Action
replyItem Login-LAT-Service Login-LAT-Service
replyItem Login-LAT-Node Login-LAT-Node
replyItem Login-LAT-Group Login-LAT-Group
replyItem Framed-AppleTalk-Link Framed-AppleTalk-Link
replyItem Framed-AppleTalk-Network Framed-AppleTalk-Network
replyItem Framed-AppleTalk-Zone Framed-AppleTalk-Zone
replyItem Port-Limit Port-Limit
replyItem Login-LAT-Port Login-LAT-Port
replyitem Reply-Message Reply-Message
replyItem Dialup-Lock-Msg Reply-Message
replyItem User-Password User-Password
/web/admin/includes/accounting.attrs
0,0 → 1,20
# Used by the User Accounting, the User finger and the Failed Logins page
#
# For the user finger page only callerid(9) and
# ip address(4) are applicable
#
# For the Failed Logins page only looged in(2), server(7),
# terminate cause(8) and callerid(9) are applicable
#
# attribute number Description Show in Show in Show in
# User Accounting User Finger Failed Logins
#
1 type no no no
2 logged in yes no yes
3 session time yes no no
4 ip address no yes no
5 upload yes no no
6 download yes no no
7 server yes no yes
8 terminate cause yes no yes
9 callerid yes yes yes
/web/admin/includes/default.vals
0,0 → 1,17
#
# Uncomment and edit these lines if you add corresponding default
# values in the users file
#
#Simultaneous-Use: 1
#Framed-IP-Address: 255.255.255.254
#Framed-IP-Netmask: 255.255.255.255
#Framed-MTU: 1500
#Framed-Protocol: PPP
#Framed-Compression: Van-Jacobson-TCP-IP
#Session-Timeout: 14400
#Idle-Timeout: 600
#Port-Limit: 1
#Max-Weekly-Session: 72000
#Max-Daily-Session: 14400
#Login-Time:
#Auth-Type: LDAP
/web/admin/includes/auth.request
0,0 → 1,5
#
# Extra attributes that the test user/check server pages will send to
# the RADIUS server
#
Service-Type = Framed-User
/web/admin/includes/alcasar.conf
0,0 → 1,21
##########################################
## ##
## ALCASAR Parameters ##
## ##
##########################################
 
INSTALL_DATE=22 juillet 2011 - 21h46
VERSION=2.2
ORGANISM=steweb57
PUBLIC_IP=192.168.1.10/24
GW=192.168.1.1
DNS1=192.168.1.1
DNS2=208.67.222.222
PRIVATE_IP=192.168.182.1/24
DHCP=on
SSH=off
QOS=off
LDAP=off
PROTOCOLS_FILTERING=off
DNS_FILTERING=on
WEB_ANTIVIRUS=on
/web/admin/includes/sql.attrs
0,0 → 1,28
# Used by the Accounting Report Generator page
#
# Mysql attributes Description Show Use function
#
RadAcctId Accounting Id no
AcctSessionId Session Id no
AcctUniqueId Unique Id no
UserName User Name yes
Realm Realm no
NASIPAddress NAS IP Address yes
NASPortId NAS Port yes
NASPortType NAS Port Type no
AcctStartTime Login Time yes
AcctStopTime Logout Time yes
AcctSessionTime Session Time yes time2str
AcctAuthentic AcctAuthentic no
ConnectInfo_start Start Connect Info no
ConnectInfo_stop Stop Connect Info no
AcctInputOctets Upload yes bytes2str
AcctOutputOctets Download yes bytes2str
CalledStationId CalledStationId no
CallingStationId Caller Id no
AcctTerminateCause Terminate Cause no
ServiceType Service Type no
FramedProtocol Protocol no
FramedIPAddress Client IP Address yes
AcctStartDelay Accounting Start Delay no time2str
AcctStopDelay Accounting Stop Delay no time2str
/web/admin/includes/username.mappings
0,0 → 1,21
# Username mappings
# Format:
# Username:realm:query
#
# where realm is:
# accounting: for the map to be used when querying the accounting db
# userdb: for the map to be used when querying the user db
# nasdb: To only map specific NASes to the username (separated by ,)
# nasadmin: To allow the user to use the nas_admin page (yes or no)
#
library-admin:accounting:AND nasipaddress = '123.123.123.123'
library-admin:userdb:AND Admin = 'library-admin'
library-admin:nasdb:nas.lib.company.com
library-admin:nasadmin:no
#
lab-admin:accounting:AND nasipaddress = '123.123.124.123'
lab-admin:userdb:AND Admin = 'lab-admin'
lab-admin:nasdb:nas.lab.company.com
lab-admin:nasadmin:no
#
admin:nasadmin:yes
/web/admin/includes/naslist.conf
0,0 → 1,31
#
# This file contains the NAS list
#
nas1_name: nas1.%{general_domain}
nas1_model: Cisco 2511 access server
nas1_ip: 147.122.122.121
nas1_port_num: 16
nas1_community: public
nas2_name: nas2.%{general_domain}
nas2_model: Cisco 2511 access server
nas2_ip: 147.122.122.123
nas2_port_num: 16
nas2_community: public
#
# finger type can also be set per NAS
# snmp: Use snmp to query the NAS
# database: Only query the sql database
#
# If it is not set, general_finger_type is assumed
nas2_finger_type: database
# nas type can also be set per NAS
nas2_type: cisco
nas3_name: nas3.%{general_domain}
nas3_model: Cisco 5300 access server
nas3_ip: 147.122.122.124
nas3_port_num: 210
nas3_community: public
#
# sessionclear method can also be set per NAS
#
nas3_sessionclear_method: telnet
/web/admin/includes/config.inc.php
1,3 → 1,7
<?php
$config['mysql_host']="127.0.0.1";
$config['mysql_db']="radius";
$config['mysql_user']="root";
$config['mysql_pwd']="";
 
?>
/web/admin/includes/captions.conf
0,0 → 1,0
general_caption_finger_free_lines: free lines
/web/admin/includes/sql.attrmap
0,0 → 1,52
#
# The list of the attribute use in ALCASAR
#
# Format:
# checkItem|replyItem Attribute-In-SQL Operator
#
#
# checkItem Auth-Type
checkItem Simultaneous-Use :=
# checkItem Called-Station-Id
# checkItem Calling-Station-Id
checkItem Max-Daily-Session :=
# checkItem Max-Weekly-Session :=
checkItem Max-Monthly-Session :=
checkItem Login-Time :=
checkItem Expiration :=
checkItem Crypt-Password =
 
# replyItem Service-Type
# replyItem Framed-Protocol
# replyItem Framed-IP-Address
# replyItem Framed-IP-Netmask
# replyItem Framed-Route
# replyItem Framed-Routing
# replyItem Filter-Id
# replyItem Framed-MTU
# replyItem Framed-Compression
# replyItem Login-IP-Host
# replyItem Login-Service
# replyItem Login-TCP-Port
# replyItem Callback-Number
# replyItem Callback-Id
# replyItem Framed-IPX-Network
replyItem Session-Timeout =
# replyItem Idle-Timeout
# replyItem Termination-Action
# replyItem Login-LAT-Service
# replyItem Login-LAT-Node
# replyItem Login-LAT-Group
# replyItem Framed-AppleTalk-Link
# replyItem Framed-AppleTalk-Network
# replyItem Framed-AppleTalk-Zone
# replyItem Port-Limit
# replyItem Login-LAT-Port
# replyitem Reply-Message
# replyItem User-Password
replyItem ChilliSpot-Max-Input-Octets =
replyItem ChilliSpot-Max-Output-Octets =
replyItem ChilliSpot-Max-Total-Octets =
replyItem ChilliSpot-Bandwidth-Max-Up =
replyItem ChilliSpot-Bandwidth-Max-Down =
replyItem WISPr-Redirection-URL =
/web/admin/includes/extra.ldap-attrmap
0,0 → 1,12
#
# An extra file for radius -> ldap attribute mapping
#
checkItem Dialup-Lock-Msg radiuslockmsg
checkItem User-Password userpassword
checkItem Regular-Profile radiusProfileDn
checkItem Check-Item radiusCheckItem generic
checkItem Max-Daily-Session radiusMaxDailySession
checkItem Max-Weekly-Session radiusMaxWeeklySession
checkItem Max-Monthly-Session radiusMaxMonthlySession
 
replyItem Reply-Item radiusReplyItem generic
/web/admin/includes/defines.inc.php
1,26 → 1,30
<?php
/**
* ALCASAR_ADMIN Application define
*/
 
//Global definitions
define( 'DS', DIRECTORY_SEPARATOR );
//define( 'ALCASAR_ADMIN_PATH_ROOT', '/var/www/html/admin' );
define( 'ALCASAR_ADMIN_PATH_ROOT', 'J:\EasyPHP-5.3.2\www\ALCASAR-RSO\admin' );
 
$parts = explode( DS, ALCASAR_ADMIN_PATH_ROOT );
$pos = strrpos($_SERVER["REQUEST_URI"], "/");
$uri = substr($_SERVER["REQUEST_URI"],0,$pos);
 
//Defines for include path
define( 'ALCASAR_ADMIN_PATH_INC', ALCASAR_ADMIN_PATH_ROOT.'/includes' );
define( 'ALCASAR_ADMIN_PATH_LANG', ALCASAR_ADMIN_PATH_ROOT.'/languages' );
define( 'ALCASAR_ADMIN_PATH_LIB', ALCASAR_ADMIN_PATH_ROOT.'/lib' );
define( 'ALCASAR_ADMIN_PATH_RESSOURCES', ALCASAR_ADMIN_PATH_ROOT.'/ressources' );
 
//defines for html absolute path
define( 'ALCASAR_ADMIN_PATH_JS', $uri.'/js' );
define( 'ALCASAR_ADMIN_PATH_CSS', $uri.'/css' );
define( 'ALCASAR_ADMIN_PATH_IMG', $uri.'/images' );
define( 'ALCASAR_ADMIN_PATH_RS', $uri.'/ressources' );
<?php
/**
* ALCASAR_ADMIN Application define
*/
 
//Global definitions
define('ALCASAR_SESSION', 1);
define( 'DS', DIRECTORY_SEPARATOR );
define( 'ALCASAR_ADMIN_PATH_ROOT', '/var/www/html/admin' );
 
$parts = explode( DS, ALCASAR_ADMIN_PATH_ROOT );
$pos = strrpos($_SERVER["REQUEST_URI"], "/");
$uri = substr($_SERVER["REQUEST_URI"],0,$pos);
 
//Defines for include path
define( 'ALCASAR_ADMIN_PATH_INC', ALCASAR_ADMIN_PATH_ROOT.'/includes' );
define( 'ALCASAR_ADMIN_PATH_LANG', ALCASAR_ADMIN_PATH_ROOT.'/languages' );
define( 'ALCASAR_ADMIN_PATH_LIB', ALCASAR_ADMIN_PATH_ROOT.'/lib' );
define( 'ALCASAR_ADMIN_PATH_RESSOURCES', ALCASAR_ADMIN_PATH_ROOT.'/ressources' );
 
//Defines for html absolute path
define( 'ALCASAR_ADMIN_PATH_JS', $uri.'/js' );
define( 'ALCASAR_ADMIN_PATH_CSS', $uri.'/css' );
define( 'ALCASAR_ADMIN_PATH_IMG', $uri.'/images' );
define( 'ALCASAR_ADMIN_PATH_RS', $uri.'/ressources' );
 
//Configuration files
//define( 'ALCASAR_CONF_FILE', '/usr/local/setc/alcasar.conf');
//define( 'ALCASAR_CONF_FILE', ALCASAR_ADMIN_PATH_INC.'alcasar.conf');
?>
/web/admin/includes/admin.conf
0,0 → 1,346
#
# Main Configuration File
#
# it can be default or whatever language. Only greek are supported
# from non latin alphabet languages
# These attribute only apply for ldap not for sql
#
general_prefered_lang: en
general_prefered_lang_name: English
#
# The charset which will be added as a meta tag in all pages
#
general_charset: iso-8859-1
#
# Uncomment this if normal attributes (not the ;lang-xx ones) in ldap
# are utf8 encoded.
#
#general_decode_normal_attributes: yes
#
# The directory where dialupadmin is installed
#
general_base_dir: /usr/local/dialup_admin
#
# The base directory of the freeradius radius installation
#
general_radiusd_base_dir: /usr/local/radiusd
general_domain: company.com
#
# Set it to yes to use sessions and cache the various mappings
# You can also set use_session = 1 in config.php3 to also cache
# the admin.conf
#
# ---- IMPORTANT -- IMPORTANT -- IMPORTANT ----
#Remember to use the 'Clear Cache' page if you use sessions and do any changes
#in any of the configuration files.
#
general_use_session: no
#
# This is used by the failed logins page. It states the default back time
# in minutes.
#
general_most_recent_fl: 30
 
#
# Realm setup
#
# Set general_strip_realms to yes in order to stip realms from usernames.
# By default realms are not striped
#general_strip_realms: yes
#
# The delimiter used in realms. Default is @
#
general_realm_delimiter: @
#
# The format of the realms. Can be either suffix (realm is after the username)
# or prefix (realm is before the username). Default is suffix
#
general_realm_format: suffix
#
 
#
# Determines if the administrator will be able to see and change the user password through
# the user edit page
general_show_user_password: yes
 
general_raddb_dir: %{general_radiusd_base_dir}/etc/raddb
general_ldap_attrmap: %{general_raddb_dir}/ldap.attrmap
# Need to fix admin.conf file parser
#general_clients_conf: %{general_raddb_dir}/clients.conf
general_clients_conf: /usr/local/etc/raddb/clients.conf
general_sql_attrmap: %{general_base_dir}/conf/sql.attrmap
general_accounting_attrs_file: %{general_base_dir}/conf/accounting.attrs
general_extra_ldap_attrmap: %{general_base_dir}/conf/extra.ldap-attrmap
general_username_mappings_file: %{general_base_dir}/conf/username.mappings
#
# it can be either ldap or sql
# This affects the user base not accounting. Accounting is always in sql
#
general_lib_type: sql
#
# Define which attributes will be visible in the user edit page
#
general_user_edit_attrs_file: %{general_base_dir}/conf/user_edit.attrs
#
# Used by the Accounting Report Generator
#
general_sql_attrs_file: %{general_base_dir}/conf/sql.attrs
#
# Set default values for various attributes
#
general_default_file: %{general_base_dir}/conf/default.vals
#general_ld_library_path: /usr/local/snmpd/lib
#
# can be 'snmp' (for snmpfinger) or empty to query the radacct table without first
# querying the nas
# This is used by the online users page
#
general_finger_type: snmp
#
# Defines the nas type. This is only used by snmpfinger
# cisco, usrhiper and lucent are supported for now
#
general_nas_type: cisco
general_snmpfinger_bin: %{general_base_dir}/bin/snmpfinger
#
# Used by the 'Disconnect User' button in the Clear Open Sessions page
# Uses the Cisco AAA Session MIB or a telnet session
#
general_sessionclear_bin: %{general_base_dir}/bin/clearsession
#
# Can be one of telnet or snmp
#
general_sessionclear_method: snmp
general_radclient_bin: %{general_radiusd_base_dir}/bin/radclient
#
# this information is used from the server check page
#
general_test_account_login: test
general_test_account_password: testpass
#
# These are used as default values for the user test page
#
general_radius_server: localhost
general_radius_server_port: 1812
#
# can be either pap or chap
#
general_radius_server_auth_proto: pap
#
# sorry, single valued for now. Should become something like
# password[server-name]: xxxxx
#
general_radius_server_secret: XXXXXX
general_auth_request_file: %{general_base_dir}/conf/auth.request
#
# can be one of crypt,md5,clear
#
general_encryption_method: crypt
#
# can be either asc (older dates first) or desc (recent dates first)
# This is used in the user accounting and badusers pages
#
general_accounting_info_order: desc
#
# Use the totacct table in the user statistics page instead of the radacct
# table. That will make the page run quicker. totacct should have data for
# this to work :-)
#
general_stats_use_totacct: no
#
# If set to yes then we only allow each administrator to examine it's own entries
# in the badusers table
#
general_restrict_badusers_access: no
#
# If set to yes then we restrict access to the nas administration page only to those
# users which are allowed by their username mapping (nasadmin is set to yes)
#
general_restrict_nasadmin_access: no
 
 
INCLUDE: %{general_base_dir}/conf/naslist.conf
 
INCLUDE: %{general_base_dir}/conf/captions.conf
 
#
# The ldap server to connect to.
# Both ldap_server and ldap_write_server can be a space-separated
# list of ldap hostnames. In that case the library will try to connect
# to the servers in the order that they appear. If the first host is down
# ldap_connect will ask for the second ldap host and so on.
#
ldap_server: ldap.%{general_domain}
#
# There are many cases where we have a small write master and
# a lot of fast read only replicas. If that is the case uncomment
# ldap_write_server and point it to the write master. It will be
# used only when writing to the directory, not when reading
#
#ldap_write_server: master.%{general_domain}
ldap_base: dc=company,dc=com
ldap_binddn: cn=Directory Manager
ldap_bindpw: XXXXXXX
ldap_default_new_entry_suffix: ou=dialup,ou=guests,%{ldap_base}
ldap_default_dn: uid=default-dialup,%{ldap_base}
ldap_regular_profile_attr: dialupregularprofile
#
# If set to yes then the HTTP credentials (http authentication)
# will be used to bind to the ldap server instead of ldap_binddn
# and ldap_bindpw. That way multiple admins with different rights
# on the ldap database can connect through one dialup_admin interface.
# The ldap_binddn and ldap_bindpw are still needed to find the DN
# to bind with (http authentication will only provide us with a
# username). As a result the ldap_binddn should be able to do a search
# with a filter of (uid=<username>). Normally, the anonymous (empty DN)
# user can do that.
#ldap_use_http_credentials: yes
#
# If we are using http credentials we can map a specific username to the
# directory manager (which usually does not correspond to a specific username)
#
#ldap_directory_manager: cn=Directory Manager
#ldap_map_to_directory_manager: admin
#
# Uncomment to enable ldap debug
#
ldap_debug: true
#
# Allow for defining the ldap filter used when searching for a user
# Variables supported:
# %u: username
# %U: username provided though http authentication
# %mu: mappings for userdb
# %ma: mappings for accounting
# %mn: mappings for nasdb
# %mN: mappings for nas administration
#
# One use of this would be to restrict access to only the user's belonging to
# a specific administrator like this:
# ldap_filter: (&(uid=%u)(manager=uid=%U,ou=admins,o=company,c=com))
#
#ldap_filter: (uid=%u)
#
# If ldap_userdn is set then we use that for user dns, we don't perform an ldap
# search. This can be somewhat faster. The variables supported for ldap_filter
# are also supported here
#
#ldap_userdn: uid=%u,%{ldap_base}
 
 
#
# can be one of mysql,pg,oracle,sqlrelay where:
# mysq: MySQL database (port 3306)
# pg: PostgreSQL database (port 5432)
# oracle: Oracle database (port 1521)
# sqlrelay: SQL Relay
#
sql_type: mysql
sql_server: localhost
sql_port: 3306
sql_username: dialup_admin
sql_password: XXXXXX
sql_database: radius
sql_accounting_table: radacct
sql_badusers_table: badusers
sql_check_table: radcheck
sql_reply_table: radreply
sql_user_info_table: userinfo
sql_groupcheck_table: radgroupcheck
sql_groupreply_table: radgroupreply
sql_usergroup_table: usergroup
sql_total_accounting_table: totacct
sql_nas_table: nas
#
# If set to true then we show all the available groups with the groups
# that the user is a member of highlighted in the user edit page.
# Otherwise we only show the groups he is a member of.
sql_show_all_groups: true
#
# This variable is used by the scripts in the bin folder
# It should contain the path to the sql binary used to run
# sql commands (mysql, psql, oracle and sqlrelay are only supported for now)
sql_command: /usr/local/bin/mysql
#sql_command: /usr/bin/psql
#sql_command: /usr/bin/sqlplus
#
# This variable is used by the scripts in the bin folder
# It should contain the snmp type and path to the binary
# used to run snmp commands.
# (ucd = UCD-Snmp and net = Net-Snmp are only supported for now)
general_snmp_type: net
general_snmpwalk_command: /usr/local/bin/snmpwalk
general_snmpget_command: /usr/local/bin/snmpget
#
# Uncomment to enable sql debug
#
sql_debug: true
#
# If set to yes then the HTTP credentials (http authentication)
# will be used to connect to the sql server instead of sql_username
# and sql_password. That way multiple admins with different rights
# on the sql database can connect through one dialup_admin interface.
#sql_use_http_credentials: yes
#
# If set the query will be added to all of the queries on the accounting
# table
# Variables supported:
# %u: username
# %U: username provided though http authentication
# %mu: mappings for userdb
# %ma: mappings for accounting
# %mn: mappings for nasdb
# %mN: mappings for nas administration
#sql_accounting_extra_query: %ma
 
 
#
# true or false
#
sql_use_user_info_table: true
sql_use_operators: true
#
# Set this to the value of the default_user_profile in your
# sql.conf if that one is set. If it is not set leave blank
# or commented out
#sql_default_user_profile: DEFAULT
#
#
sql_password_attribute: User-Password
sql_date_format: Y-m-d
sql_full_date_format: Y-m-d H:i:s
#
# Used in the accounting report generator so that we
# don't return too many results
#
sql_row_limit: 40
#
# These options are used by the log_badlogins script and by the
# mysql driver
#
# Set the sql connect timeout (secs)
sql_connect_timeout: 3
# Give a space separated list of extra mysql servers to connect to when
# logging bad logins or adding users in the badusers table
#sql_extra_servers: sql2.company.com sql3.company.com
 
#
# Default values for the various user limits in case the counter module
# is used to impose such limits.
# The value should be the user limit in seconds or none for nothing
# Check out conf/sql.attrmap or extra.ldap-attrmap (depending on if you are
# using sql or ldap) for per user attributes. The mapping should be made to
# the attributes configured in the counter module. The attributes used by
# dialupadmin will always be the ones appearing in the attribute mapping files
# so you should make sure they are mapped to the correct attributes
#
#counter_default_daily: 14400
#counter_default_weekly: 72000
counter_default_daily: none
counter_default_weekly: none
counter_default_monthly: none
#
# Since calculating monthly usage can be quite expensive we make
# it configurable
# This is not needed if the monthly limit is not none
#counter_monthly_calculate_usage: true
/web/admin/includes/config.php3
0,0 → 1,114
<?php
#
# Things should work even if register_globals is set to off
#
$testVer=intval(str_replace(".", "",'4.1.0'));
$curVer=intval(str_replace(".", "",phpversion()));
if( $curVer >= $testVer )
import_request_variables('GPC');
# If using sessions set use_session to 1 to also cache the config file
#
$use_session = 0;
unset($config);
unset($nas_list);
if ($use_session){
// Start session
@session_start();
if (isset($_SESSION['config']))
$config = $_SESSION['config'];
if (isset($_SESSION['nas_list']))
$nas_list = $_SESSION['nas_list'];
}
if (!isset($config)){
$ARR=file("../conf/admin.conf");
$EXTRA_ARR = array();
foreach($ARR as $val) {
$val=chop($val);
if (ereg('^[[:space:]]*#',$val) || ereg('^[[:space:]]*$',$val))
continue;
list($key,$v)=split(":[[:space:]]*",$val,2);
if (preg_match("/%\{(.+)\}/",$v,$matches)){
$val=$config[$matches[1]];
$v=preg_replace("/%\{$matches[1]\}/",$val,$v);
}
if (preg_match("/^nas(\d+)_(\w+)$/",$key,$matches))
$nas_list[$matches[1]][$matches[2]] = $v;
if ($key == 'INCLUDE'){
if (is_readable($v))
array_push($EXTRA_ARR,file($v));
else
echo "<b>Error: File '$v' does not exist or is not readable</b><br>\n";
}
else
$config["$key"]="$v";
}
foreach($EXTRA_ARR as $val1) {
foreach($val1 as $val){
$val=chop($val);
if (ereg('^[[:space:]]*#',$val) || ereg('^[[:space:]]*$',$val))
continue;
list($key,$v)=split(":[[:space:]]*",$val,2);
if (preg_match("/%\{(.+)\}/",$v,$matches)){
$val=$config[$matches[1]];
$v=preg_replace("/%\{$matches[1]\}/",$val,$v);
}
if (preg_match("/^nas(\d+)_(\w+)$/",$key,$matches))
$nas_list[$matches[1]][$matches[2]] = $v;
$config["$key"]="$v";
}
}
if ($use_session){
session_register('config');
session_register('nas_list');
}
 
}
if ($use_session == 0 && $config[general_use_session] == 'yes'){
// Start session
@session_start();
if (isset($nas_list))
session_register('nas_list');
}
//Make sure we are only passed allowed strings in username
if ($login != '')
$login = preg_replace("/[^\w\.\/\@\:\-]/",'',$login);
 
if ($login != '' && $config[general_strip_realms] == 'yes'){
$realm_del = ($config[general_realm_delimiter] != '') ? $config[general_realm_delimiter] : '@';
$realm_for = ($config[general_realm_format] != '') ? $config[general_realm_format] : 'suffix';
$new = explode($realm_del,$login,2);
if (count($new) == 2)
$login = ($realm_for == 'suffix') ? $new[0] : $new[1];
}
unset($mappings);
if (isset($_SESSION['mappings']))
$mappings = $_SESSION['mappings'];
if (!isset($mappings) && $config[general_username_mappings_file] != ''){
$ARR = file($config[general_username_mappings_file]);
foreach($ARR as $val){
$val=chop($val);
if (ereg('^[[:space:]]*#',$val) || ereg('^[[:space:]]*$',$val))
continue;
list($key,$realm,$v)=split(":[[:space:]]*",$val,3);
if ($realm == 'accounting' || $realm == 'userdb' || $realm == 'nasdb' || $realm == 'nasadmin')
$mappings["$key"][$realm] = $v;
if ($realm == 'nasdb'){
$NAS_ARR = array();
$NAS_ARR = split(',',$v);
foreach ($nas_list as $key => $nas){
foreach ($NAS_ARR as $nas_check){
if ($nas_check == $nas[name])
unset($nas_list[$key]);
}
}
}
}
if ($config[general_use_session] == 'yes')
session_register('mappings');
}
 
//Include missing.php3 if needed
if (!function_exists('array_change_key_case'))
include_once('../lib/missing.php3');
@header('Content-type: text/html; charset='.$config[general_charset].';');
?>
/web/admin/lib/radiusMysqlUser.class
0,0 → 1,14
radiusMysqlUser
 
bool load($username, $attribute)
bool add()
bool delete()
bool update()
bool save()
bool set($key, $val)
array get($key)
bool checkPassword($pwd)
bool setPassword($pwd)
bool addgroup($group)
bool deletegroup($group)
array groups()
/web/admin/lib/radiusMysqlUser.class.php.old
0,0 → 1,395
<?php
/*
 
*/
if (!(defined('ALCASAR_SESSION') && (ALCASAR_SESSION === 1))){
exit();
}
require_once('mysql.class.php');// the mysql class in already OK!
require_once(ALCASAR_ADMIN_PATH_INC.'/config.inc.php');
require_once('attrmap.php');
 
class radiusMysqlUser
{
// public properties
// no public properties
// private properties
private $database = null;
private $username = null;
private $userpassword = null; //$userpassword attribute = Crypt-Password
private $userInfos = Array("id"=>"0","Username"=>"","Name"=>"","Mail"=>"","Department"=>"","WorkPhone"=>"","HomePhone"=>"","Mobile"=>"");
private $checkItems = Array();
private $replyItems = Array();
private $op = Array();
private $groups = Array();
//TO DO : init $userInfos, $checkItems and $replyItems fields and operator from config file !!!! URGENT
// protected properties
// no protected properties
// Class constructor
public function __construct($dbOptions = Array())
{
/*
Db init and config init to do!
*/
if (count($dbOptions) == 0){
global $config;
$this->database = new mysql($config['mysql_host'],$config['mysql_user'],$config['mysql_pwd'],$config['mysql_db']);
} else {
// TO DO
//$this->database = new mysql("127.0.0.1","root","","radius");
}
$this->_init();
}
// Class destructor
public function __destruct()
{
//$this->mysql->close(); //is private !
$this->database = null;
}
// public methods
public static function find($options = Array(), $escape=false)
{
$database = new mysql("127.0.0.1","root","","radius");
/*
If the options are not xss clean, escape all options string by calling _escapeDatas() method.
*/
if ($escape == true) {
//$this->_extractArray($options, true); //create variable from $options array and get xss clean for mysql database
$options = $this->_escapeDatas($options); //create variable from $options array and get xss clean for mysql database
}
/*
The differents $options values are :
$distinct -> only distinct response ?
$username -> only for this username
$fields -> fields to return (default : username)
$search -> search value to find
$search_IN -> search in this/those field(s)(text or array)
$limit -> to limit the resultset
$offset -> offset (work with $limit for pagination)
$sortby -> sort by x field (default : no sorting)
$sortdir -> sort direction (ASC/DESC) (default : no sorting)
$radius_attr-> radius attribute to find (text or array) if search_IN = radius
*/
//mysql_real_escape_string
$sql = "SELECT ";
// distinct option
if ((isset($distinct))&&($distinct=="distinct"))
$sql .= "DISTINCT ";
// field option (make sure that the field exist!)
if ((isset($options['fields']))&&($options['fields']!='')){
$sql .= $options['fields'].", username ";
}else{
$sql .= "username ";
}
$sql .= "FROM userinfo ";
// search option
if ((isset($options['username']))&&($options['username']!='')){
}
// where option
if ((isset($options['username']))&&($options['username']!=""))
{
$sql .= "WHERE username='".$options['username']."'";
$this->username = $options['username'];
}
// sort
if ((isset($options['sortby']))&&($options['sortby']!='')){
$sql .= "ORDER BY ".$options['sortby']." ";
if ((isset($options['sortdir']))&&($options['sortdir']!='')){
$sql .= "LIMIT ".$options['sortdir']." ";
}
}
// limit / offset
if ((isset($options['limit']))&&($options['limit']!='')){
if ((isset($options['offset']))&&($options['offset']!='')){
$sql .= "LIMIT $offset $limit ";
} else {
$sql .= "LIMIT $limit ";
}
}
$sql .= ";";
 
// query
$result = $database->query($sql);
// return the result values
return $result;
}
public function load($username, $attribute = false) //ok
{
/*
Load an user from mysql database. If $attribute==true, get all chekitems and replyitems attributes too.
*/
$sql = "SELECT * FROM userinfo WHERE UserName='$username';";
$result = $this->database->query($sql);
if (count($result) != 1) return false;
$this->userInfos = $result[0];
 
$sql = "SELECT * FROM radusergroup WHERE UserName='$username';";
$groups = $this->database->query($sql);
foreach ($groups as $group){
$this->groups[] = $group['groupname'];
}
if ($attribute === true){
// get from radcheck table
$rows=null;
$sql = "SELECT * FROM radcheck WHERE username='$username';";
$rows = $this->database->query($sql);
foreach ($rows as $row){
$this->checkItems[$row['attribute']] = $row['value'];
}
// get from radreply table
$rows=null;
$sql = "SELECT * FROM radreply WHERE username='$username';";
$rows = $this->database->query($sql);
foreach ($rows as $row){
$this->replyItems[$row['attribute']] = $row['value'];
}
}
return true;
}
public function add()
{
/*
Add the current user with all his attribute in the mysql database
(only if the user not already exist)
*/
$sql = "";
//INSERT INTO table (a,b,c) VALUES (1,2,3)
//INSERT userinfo table (insert)
$sql = "INSERT INTO userinfo (UserName, Name, Mail, Department, WorkPhone, HomePhone, Mobile) VALUES ($this->username, $this->userInfos['Name'], $this->userInfos['Mail'], $this->userInfos['Department'],$this->userInfos['WorkPhone'],$this->userInfos['HomePhone'],$this->userInfos['Mobile'])";
$this->database->exec($sql);
//INSERT radcheck table (insert)
foreach($this->checkItems as $key => $value){
if ($value!=""){
$sql = "INSERT INTO radcheck (UserName, attribute, op, value) VALUES ($this->username, $key, $this->op[$key], $value)";
$this->database->exec($sql);
}
}
//INSERT radreply table (insert)
foreach($this->replyItems as $key => $value){
if ($value!=""){
$sql = "INSERT INTO radreply (UserName, attribute, op, value) VALUES ($this->username, $key, $this->op[$key], $value)";
$this->database->exec($sql);
}
}
//INSERT radusergroup table (insert)
foreach($this->groups as $group){
$sql = "INSERT INTO radusergroup (userName, groupname, priority) VALUES ($this->username, $group, 1)";
$this->database->exec($sql);
}
//INSERT radpostauth table (insert)
//$sql = "INSERT INTO radpostauth () VALUES ()";
// NOT YET !
//FUNCTION SET PASSWORD MUST BE CALLED MANUALLY !!!
}
public function delete() //ok
{
if ($this->username === null)
return false;
/*
Delete the current user from the mysql database
note : this function doesn't delete any accounting record of the current user
*/
if ($this->userid == 0) return 0; //0 record deleted
//can be better with transaction
$sql1 = "DELETE FROM radreply WHERE username = $this->username ;";
$sql2 = "DELETE FROM radcheck WHERE username = $this->username ;";
$sql3 = "DELETE FROM radpostauth WHERE username = $this->username ;";
$sql4 = "DELETE FROM radusergroup WHERE username = $this->username ;";
$sql5 = "DELETE FROM userinfo WHERE username = $this->username ;";
$nb1 = $this->database->exec($sql1);
$nb2 = $this->database->exec($sql2);
$nb3 = $this->database->exec($sql3);
$nb4 = $this->database->exec($sql4);
$nb5 = $this->database->exec($sql5);
return ($nb1+$nb2+$nb3+$nb4+$nb5); // n record deleted
}
public function update()
{
if ($this->username === null)
return false;
/*
Update the current user with all his attribute in the mysql database
(only if the user does not already exist)
*/
if ($this->userid == 0) return 0; //0 record deleted
//UPDATE userinfo table (update)
//UPDATE radcheck table (update)
//UPDATE radreply table (update)
//UPDATE radusergroup table (update)
//UPDATE radpostauth table (update)
}
public function save() //ok
{
if ($this->username === null)
return false;
/*
insert or Update the current user with all his attribute in the mysql database
(use add() and update() method)
*/
if ($this->userInfos['id'] != 0){
// User was loaded, so it exist
return $this->update();
}else{
// load function was not called, we must test if the user exist!
$options['username'] = $this->username;
$users = radiusMysqlUser::find($options);
if (count($users)==0){
//username do not exist
} elseif (count($users)==1){
//username already exist
return $this->update();
} else {
// error in database, we fixe it
$this->delete();
return $this->add();
}
}
}
public function get($userInfo = 'null') //ok
{
/*
return userInfos
*/
if (array_key_exists($userInfo, $this->userInfos)){
return $this->userInfos[$userInfo];
} else {
return $this->userInfos;
}
}
public function set($userInfo) //ok
{
/*
Set a value in userInfos
*/
if (array_key_exists($userInfo, $this->userInfos)){
$this->userInfos[$userInfo] = $userInfo;
}
if (strtolower($userInfo) == "username") $this->username = $userInfo;
}
public function getAttribute($attribute = null)
{
/*
Get a checkItem or replyItem from the user or get the value from the mysql database
*/
if ($attribute == null){
return array_merge($this->checkItems, $this->replyItems);
} else {
if (array_key_exists($attribute, $this->userInfos)){
return $this->userInfos[$attribute];
} elseif (array_key_exists($attribute, $this->checkItems)){
return $this->checkItems[$attribute];
} elseif (array_key_exists($attribute, $this->replyItems)){
return $this->replyItems[$attribute];
} else{
return null;
}
}
}
public function setAttribute($attribute)
{
/*
Set a checkItem or replyItem of the user
*/
}
public function checkPassword($pwd)
{
// Check the user password
// Return true or false
}
public function setPassword($pwd = null, $username = null)
{
if ($pwd==null){
$pwd = $this->_encrypt($this->checkitems);
} else {
}
// Set or change the user password
/*
$sql =
"SELECT value FROM $config[sql_check_table] WHERE username = '$login'
AND attribute = '$config[sql_password_attribute]';");
"UPDATE $config[sql_check_table] SET value = '$passwd' $text3 WHERE
attribute = '$config[sql_password_attribute]' AND username = '$login';"
 
"INSERT INTO $config[sql_check_table] (attribute,value,username $text1)
VALUES ('$config[sql_password_attribute]','$passwd','$login' $text2);"
*/
}
// private methods
private function _escapeDatas($options)
{
}
private function _encrypt()
{
$numargs=func_num_args();
$passwd=func_get_arg(0);
# calcul d'un salt pour forcer le chiffrement en MD5 au lieu de blowfish par defaut dans php version mdva > 2007.1
$salt='$1$passwd$';
if ($numargs == 2){
$salt=func_get_arg(1);
return crypt($passwd,$salt);
}
return crypt($passwd,$salt);
}
private function _init()
{
//TO DO : supprimer les variables globales
global $attrmap, $attr_type, $attr_op;
foreach ($attrmap as $attr){
if ($attr_type[$attr]=="checkItem"){
$this->checkItems[$attr] = "";
}elseif ($attr_type[$attr]=="replyItem"){
$this->replyItems[$attr] = "";
}
if ($attr_op[$attr] != ""){
$this->op[$attr] = $attr_op[$attr];
} else {
$this->op[$attr] = "=";
}
}
}
// protected methods
// no protected method
}
?>
/web/admin/lib/radiusMysqlUser.class.php
2,7 → 2,12
/*
 
*/
if (!(defined('ALCASAR_SESSION') && (ALCASAR_SESSION === 1))){
exit();
}
require_once('mysql.class.php');// the mysql class in already OK!
require_once(ALCASAR_ADMIN_PATH_INC.'/config.inc.php');
require_once('attrmap.php');
 
class radiusMysqlUser
{
12,10 → 17,12
// private properties
private $database = null;
private $username = null;
private $userid = 0;
private $userInfos = Array("Username"=>"","Name"=>"","Mail"=>"","Department"=>"","WorkPhone"=>"","HomePhone"=>"","Mobile"=>"");
private $userpassword = null; //$userpassword attribute = Crypt-Password
private $userInfos = Array("id"=>"0","Username"=>"","Name"=>"","Mail"=>"","Department"=>"","WorkPhone"=>"","HomePhone"=>"","Mobile"=>"");
private $checkItems = Array();
private $replyItems = Array();
private $op = Array();
private $groups = Array();
//TO DO : init $userInfos, $checkItems and $replyItems fields and operator from config file !!!! URGENT
24,12 → 31,18
// no protected properties
// Class constructor
public function __construct($dbOptions = Array(), $attributeConfig = Array())
public function __construct($dbOptions = Array())//ok
{
/*
Db init and config init to do!
*/
$this->database = new mysql("127.0.0.1","root","","radius");
if (count($dbOptions) == 0){
global $config;
$this->database = new mysql($config['mysql_host'],$config['mysql_user'],$config['mysql_pwd'],$config['mysql_db']);
} else {
extract($dbOptions);
if (isset($mysql_host)&&isset($mysql_user)&&isset($mysql_pwd)&&isset($mysql_db)){
$this->database = new mysql($mysql_host,$mysql_user,$mysql_pwd,$mysql_db);
}
}
$this->_init();
}
// Class destructor
public function __destruct()
121,27 → 134,37
if (count($result) != 1) return false;
$this->userInfos = $result[0];
 
$sql = "SELECT * FROM radusergroup WHERE UserName='$username';";
$groups = $this->database->query($sql);
foreach ($groups as $group){
$this->groups[] = $group['groupname'];
}
if ($attribute === true){
// get from radcheck table
$result=null;
$rows=null;
$sql = "SELECT * FROM radcheck WHERE username='$username';";
$result = $this->database->query($sql);
if (count($result) != 1) return false;
$this->checkItems = $result[0];
$rows = $this->database->query($sql);
foreach ($rows as $row){
$this->checkItems[$row['attribute']] = $row['value'];
}
// get from radreply table
$result=null;
$rows=null;
$sql = "SELECT * FROM radreply WHERE username='$username';";
$result = $this->database->query($sql);
if (count($result) != 1) return false;
$this->replyItems = $result[0];
$rows = $this->database->query($sql);
foreach ($rows as $row){
$this->replyItems[$row['attribute']] = $row['value'];
}
}
return true;
}
public function add()
public function add()//ok
{
/*
Add the current user with all his attribute in the mysql database
151,19 → 174,40
//INSERT INTO table (a,b,c) VALUES (1,2,3)
//INSERT userinfo table (insert)
$sql = "INSERT INTO userinfo (UserName, Name, Mail, Department, WorkPhone, HomePhone, Mobile) VALUES ()";
$sql = "INSERT INTO userinfo (UserName, Name, Mail, Department, WorkPhone, HomePhone, Mobile) VALUES ($this->username, $this->userInfos['Name'], $this->userInfos['Mail'], $this->userInfos['Department'],$this->userInfos['WorkPhone'],$this->userInfos['HomePhone'],$this->userInfos['Mobile'])";
$this->database->exec($sql);
//INSERT radcheck table (insert)
$sql = "";
foreach($this->checkItems as $key => $value){
if ($value!=""){
$sql = "INSERT INTO radcheck (UserName, attribute, op, value) VALUES ($this->username, $key, $this->op[$key], $value)";
$this->database->exec($sql);
}
}
//INSERT radreply table (insert)
$sql = "";
foreach($this->replyItems as $key => $value){
if ($value!=""){
$sql = "INSERT INTO radreply (UserName, attribute, op, value) VALUES ($this->username, $key, $this->op[$key], $value)";
$this->database->exec($sql);
}
}
//INSERT radusergroup table (insert)
$sql = "";
foreach($this->groups as $group){
$sql = "INSERT INTO radusergroup (userName, groupname, priority) VALUES ($this->username, $group, 1)";
$this->database->exec($sql);
}
//INSERT radpostauth table (insert)
//$sql = "INSERT INTO radpostauth () VALUES ()";
// NOT YET !
//FUNCTION SET PASSWORD MUST BE CALLED MANUALLY !!!
}
public function delete() //ok
{
if ($this->username === null)
return false;
/*
Delete the current user from the mysql database
note : this function doesn't delete any accounting record of the current user
187,6 → 231,9
}
public function update()
{
if ($this->username === null)
return false;
/*
Update the current user with all his attribute in the mysql database
(only if the user does not already exist)
196,85 → 243,225
//UPDATE userinfo table (update)
//UPDATE radcheck table (update)
foreach ($this->checkItems as $checkItem){
if ($checkItem == ""){
$this->_deleteItem($checkItem, "radcheck");
} else {
$this->_insertUpdateItem($checkItem, "radcheck");
}
}
//UPDATE radreply table (update)
foreach ($this->replyItems as $replyItem){
if ($replyItem == ""){
$this->_deleteItem($replyItem, "radreply");
} else {
$this->_insertUpdateItem($replyItem, "radreply");
}
}
//UPDATE radusergroup table (update)
foreach ($this->groups as $group){
if ($group == ""){
$this->_deletegroup($group);
} else {
$this->_insertUpdateGroup($group);
}
}
//UPDATE radpostauth table (update)
//NOT YET
}
public function save() //ok
public function save()
{
if ($this->username === null)
return false;
/*
insert or Update the current user with all his attribute in the mysql database
(use add() and update() method)
*/
if ($this->userid == 0){
return $this->add();
} else {
if ($this->userInfos['id'] != 0){
// User was loaded, so it exist
return $this->update();
}else{
// load function was not called, we must test if the user exist!
$options['username'] = $this->username;
$users = radiusMysqlUser::find($options);
if (count($users)==0){
//username do not exist
} elseif (count($users)==1){
//username already exist
return $this->update();
} else {
// error in database, we fixe it
$this->delete();
return $this->add();
}
}
}
public function get($userInfo = 'null') //ok
public function set($key = null, $val=null)//ok
{
/*
return userInfos
Set a value in userInfos, checkItem or replyItem
*/
if (array_key_exists($userInfo, $this->userInfos)){
return $this->userInfos[$userInfo];
//exit('hs1');
if (($key == null)||($val == null)){
//exit('hs2');
return false;
} else {
return $this->userInfos;
}
if (array_key_exists($key, $this->userInfos)){
$this->userInfos[$key] = $val;
//exit('hs3');
} elseif (array_key_exists($key, $this->checkItems)){
$this->checkItems[$key] = $val;
//exit('hs4');
} elseif (array_key_exists($key, $this->replyItems)){
$this->replyItems[$key] = $val;
//exit('hs5');
} else{
//exit('hs6');
return false;
}
return true;
}
}
public function set($userInfo) //ok
public function get($key = null)//ok
{
/*
Set a value in userInfos
Get a userInfos, checkItem or replyItem from the user or get the value from the mysql database
*/
if (array_key_exists($userInfo, $this->userInfos)){
$this->userInfos[$userInfo] = $userInfo;
if ($key == null){
$tmp = array_merge($this->userInfos,$this->checkItems, $this->replyItems);
return array_change_key_case($tmp);
} else {
if (array_key_exists($key, $this->userInfos)){
return $this->userInfos[$key];
} elseif (array_key_exists($key, $this->checkItems)){
return $this->checkItems[$key];
} elseif (array_key_exists($key, $this->replyItems)){
return $this->replyItems[$key];
} else{
return null;
}
}
if (strtolower($userInfo) == "username") $this->username = $userInfo;
}
public function getAttribute($attribute = null)
public function checkPassword($pwd)
{
/*
Get a checkItem or replyItem from the user or get the value from the mysql database
*/
if (array_key_exists($attribute, $this->userInfos)){
// Check the user password
// Return true or false
}
public function setPassword($pwd = null, $username = null)
{
if ($pwd==null){
$pwd = $this->_encrypt($this->checkitems);
} else {
} elseif (array_key_exists($attribute, $this->checkItems)){
}
} elseif (array_key_exists($attribute, $this->replyItems)){
// Set or change the user password
/*
$sql =
"SELECT value FROM $config[sql_check_table] WHERE username = '$login'
AND attribute = '$config[sql_password_attribute]';");
} else{
"UPDATE $config[sql_check_table] SET value = '$passwd' $text3 WHERE
attribute = '$config[sql_password_attribute]' AND username = '$login';"
 
"INSERT INTO $config[sql_check_table] (attribute,value,username $text1)
VALUES ('$config[sql_password_attribute]','$passwd','$login' $text2);"
*/
}
public function groups()
{
return $this->groups;
}
public function addgroup($groupname)//ok
{
$this->groups[] = $groupname;
}
public function deletegroup($groupname)//ok
{
if (array_key_exists($groupname, $this->groups)){
unset($this->groups[$groupname]);
}
}
public function setAttribute($attribute)
// private methods
private function _insertUpdateItem($itemName, $tableName)
{
/*
Set a checkItem or replyItem of the user
*/
// faire un select
$sqlSelect = "";
$result = $database->query($sqlSelect);
if (count($result) > 0){
// update si réponse select > 0
$sqlUpdate = "";
return $this->database->exec($sqlUpdate);
} else {
// insert si réponse select == 0
$sqlInsert = "";
return $this->database->exec($sqlInsert);
}
}
public function checkPassword($pwd)
private function _deleteItem($itemName, $tableName)
{
// Check the user password
// Return true or false
$sql1 = "DELETE FROM $tableName WHERE username = $this->username AND attribute = $itemName;";
return $this->database->exec($sql1);
}
public function setPassword($pwd)
private function _insertUpdateGroup($groupName)
{
// Set or change the user password
// faire un select
$sqlSelect = "";
$result = $database->query($sqlSelect);
if (count($result) > 0){
// update si réponse select > 0
$sqlUpdate = "";
return $this->database->exec($sqlUpdate);
} else {
// insert si réponse select == 0
$sqlInsert = "";
return $this->database->exec($sqlInsert);
}
}
// private methods
private function _deletegroup($groupName)
{
$sql1 = "DELETE FROM radusergroup WHERE username = $this->username AND groupname = $groupName;";
return $this->database->exec($sql1);
}
private function _escapeDatas($options)
{
}
private function _init($configFile)
private function _encrypt()
{
$numargs=func_num_args();
$passwd=func_get_arg(0);
# calcul d'un salt pour forcer le chiffrement en MD5 au lieu de blowfish par defaut dans php version mdva > 2007.1
$salt='$1$passwd$';
if ($numargs == 2){
$salt=func_get_arg(1);
return crypt($passwd,$salt);
}
return crypt($passwd,$salt);
}
private function _init()
{
//TO DO : supprimer les variables globales
global $attrmap, $attr_type, $attr_op;
foreach ($attrmap as $attr){
if ($attr_type[$attr]=="checkItem"){
$this->checkItems[$attr] = "";
}elseif ($attr_type[$attr]=="replyItem"){
$this->replyItems[$attr] = "";
}
if ($attr_op[$attr] != ""){
$this->op[$attr] = $attr_op[$attr];
} else {
$this->op[$attr] = "=";
}
}
}
// protected methods
// no protected method
}
/web/admin/lib/attrmap.php.old
0,0 → 1,56
<?php
/*
 
*/
if (!(defined('ALCASAR_SESSION') && (ALCASAR_SESSION === 1))){
exit();
}
 
$config['general_use_session'] = "no";
$config['general_sql_attrmap'] = ALCASAR_ADMIN_PATH_INC."/sql.attrmap";
 
#Read sql attribute map
unset($attrmap);
unset($rev_attrmap);
unset($attr_type);
if (isset($_SESSION['attrmap'])){
#If attrmap is set then the rest will also be set
$attrmap = $_SESSION['attrmap'];
$rev_attrmap =$_SESSION['rev_attrmap'];
$attr_type = $_SESSION['attr_type'];
}
else{
$ARR = file("$config[general_sql_attrmap]");
foreach($ARR as $val){
$val=chop($val);
//if (ereg('^[[:space:]]*#',$val) || ereg('^[[:space:]]*$',$val))
if (preg_match('/^[[:space:]]*#/',$val) || preg_match('/^[[:space:]]*$/',$val))
continue;
//list($type,$key,$v)=split('[[:space:]]+',$val);
list($type,$key,$v)=preg_split('/[[:space:]]+/',$val);
$attrmap["$key"]=$v;
$rev_attrmap["$v"] = $key;
$attr_type["$key"]=$type;
}
if (isset($show_attrs)){
foreach($show_attrs as $key => $desc){
if ($attrmap["$key"] == ''){
$attrmap["$key"] = $key;
$attr_type["key"] = 'replyItem';
$rev_attrmap["$key"] = $key;
}
}
}
//if ($config[general_use_session] == 'yes'){
if ($config['general_use_session'] == 'yes'){
session_register('attrmap');
session_register('rev_attrmap');
session_register('attr_type');
}
}
echo "<pre>";
print_r($attrmap);
print_r($attr_type);
print_r($rev_attrmap);
echo "</pre>";
?>
/web/admin/lib/attrmap.php
0,0 → 1,38
<?php
/*
 
*/
if (!(defined('ALCASAR_SESSION') && (ALCASAR_SESSION === 1))){
exit();
}
$config['general_use_session'] = "no";
$config['general_sql_attrmap'] = ALCASAR_ADMIN_PATH_INC."/sql.attrmap";
 
#Read sql attribute map
unset($attrmap);
unset($rev_attrmap);
unset($attr_type);
if (isset($_SESSION['attrmap'])){
#If attrmap is set then the rest will also be set
$attrmap = $_SESSION['attrmap'];
$attr_type = $_SESSION['attr_type'];
$attr_op = $_SESSION['attr_op'];
}
else{
$ARR = file("$config[general_sql_attrmap]");
foreach($ARR as $val){
$val=chop($val);
if (preg_match('/^[[:space:]]*#/',$val) || preg_match('/^[[:space:]]*$/',$val))
continue;
list($type,$key,$op)=preg_split('/[[:space:]]+/',$val);
$attrmap["$key"]=$key;
$attr_type["$key"]=$type;
$attr_op["$key"]=$op;
}
if ($config['general_use_session'] == 'yes'){
session_register('attrmap');
session_register('attr_type');
session_register('attr_op');
}
}
?>
/web/admin/compteur.txt
1,0 → 0,0
78
121
/web/admin/js/jquery-ui-i18n.min.js
0,0 → 1,150
jQuery(function(a){a.datepicker.regional.af={closeText:"Selekteer",prevText:"Vorige",nextText:"Volgende",currentText:"Vandag",monthNames:["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNames:["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"],dayNamesShort:["Son","Maa","Din","Woe","Don","Vry","Sat"],dayNamesMin:["So",
"Ma","Di","Wo","Do","Vr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.af)});
jQuery(function(a){a.datepicker.regional["ar-DZ"]={closeText:"\u0625\u063a\u0644\u0627\u0642",prevText:"&#x3c;\u0627\u0644\u0633\u0627\u0628\u0642",nextText:"\u0627\u0644\u062a\u0627\u0644\u064a&#x3e;",currentText:"\u0627\u0644\u064a\u0648\u0645",monthNames:["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631",
"\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],dayNamesShort:["\u0627\u0644\u0623\u062d\u062f",
"\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],dayNamesMin:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"],weekHeader:"\u0623\u0633\u0628\u0648\u0639",dateFormat:"dd/mm/yy",firstDay:6,isRTL:true,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["ar-DZ"])});
jQuery(function(a){a.datepicker.regional.ar={closeText:"\u0625\u063a\u0644\u0627\u0642",prevText:"&#x3c;\u0627\u0644\u0633\u0627\u0628\u0642",nextText:"\u0627\u0644\u062a\u0627\u0644\u064a&#x3e;",currentText:"\u0627\u0644\u064a\u0648\u0645",monthNames:["\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0634\u0628\u0627\u0637","\u0622\u0630\u0627\u0631","\u0646\u064a\u0633\u0627\u0646","\u0645\u0627\u064a\u0648","\u062d\u0632\u064a\u0631\u0627\u0646","\u062a\u0645\u0648\u0632",
"\u0622\u0628","\u0623\u064a\u0644\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644","\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a","\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621",
"\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],dayNamesShort:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646","\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],dayNamesMin:["\u0627\u0644\u0623\u062d\u062f","\u0627\u0644\u0627\u062b\u0646\u064a\u0646",
"\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621","\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621","\u0627\u0644\u062e\u0645\u064a\u0633","\u0627\u0644\u062c\u0645\u0639\u0629","\u0627\u0644\u0633\u0628\u062a"],weekHeader:"\u0623\u0633\u0628\u0648\u0639",dateFormat:"dd/mm/yy",firstDay:6,isRTL:true,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ar)});
jQuery(function(a){a.datepicker.regional.az={closeText:"Ba\u011fla",prevText:"&#x3c;Geri",nextText:"\u0130r\u0259li&#x3e;",currentText:"Bug\u00fcn",monthNames:["Yanvar","Fevral","Mart","Aprel","May","\u0130yun","\u0130yul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthNamesShort:["Yan","Fev","Mar","Apr","May","\u0130yun","\u0130yul","Avq","Sen","Okt","Noy","Dek"],dayNames:["Bazar","Bazar ert\u0259si","\u00c7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131","\u00c7\u0259r\u015f\u0259nb\u0259",
"C\u00fcm\u0259 ax\u015fam\u0131","C\u00fcm\u0259","\u015e\u0259nb\u0259"],dayNamesShort:["B","Be","\u00c7a","\u00c7","Ca","C","\u015e"],dayNamesMin:["B","B","\u00c7","\u0421","\u00c7","C","\u015e"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.az)});
jQuery(function(a){a.datepicker.regional.bg={closeText:"\u0437\u0430\u0442\u0432\u043e\u0440\u0438",prevText:"&#x3c;\u043d\u0430\u0437\u0430\u0434",nextText:"\u043d\u0430\u043f\u0440\u0435\u0434&#x3e;",nextBigText:"&#x3e;&#x3e;",currentText:"\u0434\u043d\u0435\u0441",monthNames:["\u042f\u043d\u0443\u0430\u0440\u0438","\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0439","\u042e\u043d\u0438","\u042e\u043b\u0438","\u0410\u0432\u0433\u0443\u0441\u0442",
"\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438","\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438","\u041d\u043e\u0435\u043c\u0432\u0440\u0438","\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438"],monthNamesShort:["\u042f\u043d\u0443","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0439","\u042e\u043d\u0438","\u042e\u043b\u0438","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u043a"],dayNames:["\u041d\u0435\u0434\u0435\u043b\u044f",
"\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a","\u0412\u0442\u043e\u0440\u043d\u0438\u043a","\u0421\u0440\u044f\u0434\u0430","\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a","\u041f\u0435\u0442\u044a\u043a","\u0421\u044a\u0431\u043e\u0442\u0430"],dayNamesShort:["\u041d\u0435\u0434","\u041f\u043e\u043d","\u0412\u0442\u043e","\u0421\u0440\u044f","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u044a\u0431"],dayNamesMin:["\u041d\u0435","\u041f\u043e","\u0412\u0442","\u0421\u0440",
"\u0427\u0435","\u041f\u0435","\u0421\u044a"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.bg)});
jQuery(function(a){a.datepicker.regional.bs={closeText:"Zatvori",prevText:"&#x3c;",nextText:"&#x3e;",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljak","Utorak","Srijeda","\u010cetvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","\u010cet","Pet","Sub"],dayNamesMin:["Ne","Po",
"Ut","Sr","\u010ce","Pe","Su"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.bs)});
jQuery(function(a){a.datepicker.regional.ca={closeText:"Tancar",prevText:"&#x3c;Ant",nextText:"Seg&#x3e;",currentText:"Avui",monthNames:["Gener","Febrer","Mar&ccedil;","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthNamesShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],dayNames:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],dayNamesShort:["Dug","Dln","Dmt","Dmc","Djs","Dvn","Dsb"],dayNamesMin:["Dg",
"Dl","Dt","Dc","Dj","Dv","Ds"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ca)});
jQuery(function(a){a.datepicker.regional.cs={closeText:"Zav\u0159\u00edt",prevText:"&#x3c;D\u0159\u00edve",nextText:"Pozd\u011bji&#x3e;",currentText:"Nyn\u00ed",monthNames:["leden","\u00fanor","b\u0159ezen","duben","kv\u011bten","\u010derven","\u010dervenec","srpen","z\u00e1\u0159\u00ed","\u0159\u00edjen","listopad","prosinec"],monthNamesShort:["led","\u00fano","b\u0159e","dub","kv\u011b","\u010der","\u010dvc","srp","z\u00e1\u0159","\u0159\u00edj","lis","pro"],dayNames:["ned\u011ble","pond\u011bl\u00ed",
"\u00fater\u00fd","st\u0159eda","\u010dtvrtek","p\u00e1tek","sobota"],dayNamesShort:["ne","po","\u00fat","st","\u010dt","p\u00e1","so"],dayNamesMin:["ne","po","\u00fat","st","\u010dt","p\u00e1","so"],weekHeader:"T\u00fdd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.cs)});
jQuery(function(a){a.datepicker.regional.da={closeText:"Luk",prevText:"&#x3c;Forrige",nextText:"N\u00e6ste&#x3e;",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["S\u00f8ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L\u00f8rdag"],dayNamesShort:["S\u00f8n","Man","Tir","Ons","Tor","Fre","L\u00f8r"],dayNamesMin:["S\u00f8",
"Ma","Ti","On","To","Fr","L\u00f8"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.da)});
jQuery(function(a){a.datepicker.regional.de={closeText:"schlie\u00dfen",prevText:"&#x3c;zur\u00fcck",nextText:"Vor&#x3e;",currentText:"heute",monthNames:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","M\u00e4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So",
"Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"Wo",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.de)});
jQuery(function(a){a.datepicker.regional.el={closeText:"\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",prevText:"\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2",nextText:"\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf\u03c2",currentText:"\u03a4\u03c1\u03ad\u03c7\u03c9\u03bd \u039c\u03ae\u03bd\u03b1\u03c2",monthNames:["\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2","\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2",
"\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2","\u039c\u03ac\u03b9\u03bf\u03c2","\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2","\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2","\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2","\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2","\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2","\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"],monthNamesShort:["\u0399\u03b1\u03bd",
"\u03a6\u03b5\u03b2","\u039c\u03b1\u03c1","\u0391\u03c0\u03c1","\u039c\u03b1\u03b9","\u0399\u03bf\u03c5\u03bd","\u0399\u03bf\u03c5\u03bb","\u0391\u03c5\u03b3","\u03a3\u03b5\u03c0","\u039f\u03ba\u03c4","\u039d\u03bf\u03b5","\u0394\u03b5\u03ba"],dayNames:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae","\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1","\u03a4\u03c1\u03af\u03c4\u03b7","\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7","\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7","\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae",
"\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"],dayNamesShort:["\u039a\u03c5\u03c1","\u0394\u03b5\u03c5","\u03a4\u03c1\u03b9","\u03a4\u03b5\u03c4","\u03a0\u03b5\u03bc","\u03a0\u03b1\u03c1","\u03a3\u03b1\u03b2"],dayNamesMin:["\u039a\u03c5","\u0394\u03b5","\u03a4\u03c1","\u03a4\u03b5","\u03a0\u03b5","\u03a0\u03b1","\u03a3\u03b1"],weekHeader:"\u0395\u03b2\u03b4",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.el)});
jQuery(function(a){a.datepicker.regional["en-AU"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu",
"We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["en-AU"])});
jQuery(function(a){a.datepicker.regional["en-GB"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu",
"We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["en-GB"])});
jQuery(function(a){a.datepicker.regional["en-NZ"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu",
"We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["en-NZ"])});
jQuery(function(a){a.datepicker.regional.eo={closeText:"Fermi",prevText:"&lt;Anta",nextText:"Sekv&gt;",currentText:"Nuna",monthNames:["Januaro","Februaro","Marto","Aprilo","Majo","Junio","Julio","A\u016dgusto","Septembro","Oktobro","Novembro","Decembro"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","A\u016dg","Sep","Okt","Nov","Dec"],dayNames:["Diman\u0109o","Lundo","Mardo","Merkredo","\u0134a\u016ddo","Vendredo","Sabato"],dayNamesShort:["Dim","Lun","Mar","Mer","\u0134a\u016d","Ven",
"Sab"],dayNamesMin:["Di","Lu","Ma","Me","\u0134a","Ve","Sa"],weekHeader:"Sb",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.eo)});
jQuery(function(a){a.datepicker.regional.es={closeText:"Cerrar",prevText:"&#x3c;Ant",nextText:"Sig&#x3e;",currentText:"Hoy",monthNames:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthNamesShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],dayNames:["Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado"],dayNamesShort:["Dom","Lun","Mar","Mi&eacute;","Juv","Vie","S&aacute;b"],
dayNamesMin:["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.es)});
jQuery(function(a){a.datepicker.regional.et={closeText:"Sulge",prevText:"Eelnev",nextText:"J\u00e4rgnev",currentText:"T\u00e4na",monthNames:["Jaanuar","Veebruar","M\u00e4rts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthNamesShort:["Jaan","Veebr","M\u00e4rts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],dayNames:["P\u00fchap\u00e4ev","Esmasp\u00e4ev","Teisip\u00e4ev","Kolmap\u00e4ev","Neljap\u00e4ev","Reede","Laup\u00e4ev"],dayNamesShort:["P\u00fchap",
"Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],dayNamesMin:["P","E","T","K","N","R","L"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.et)});
jQuery(function(a){a.datepicker.regional.eu={closeText:"Egina",prevText:"&#x3c;Aur",nextText:"Hur&#x3e;",currentText:"Gaur",monthNames:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthNamesShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],dayNames:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],dayNamesShort:["Iga","Ast","Ast","Ast","Ost","Ost","Lar"],dayNamesMin:["Ig",
"As","As","As","Os","Os","La"],weekHeader:"Wk",dateFormat:"yy/mm/dd",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.eu)});
jQuery(function(a){a.datepicker.regional.fa={closeText:"\u0628\u0633\u062a\u0646",prevText:"&#x3c;\u0642\u0628\u0644\u064a",nextText:"\u0628\u0639\u062f\u064a&#x3e;",currentText:"\u0627\u0645\u0631\u0648\u0632",monthNames:["\u0641\u0631\u0648\u0631\u062f\u064a\u0646","\u0627\u0631\u062f\u064a\u0628\u0647\u0634\u062a","\u062e\u0631\u062f\u0627\u062f","\u062a\u064a\u0631","\u0645\u0631\u062f\u0627\u062f","\u0634\u0647\u0631\u064a\u0648\u0631","\u0645\u0647\u0631","\u0622\u0628\u0627\u0646","\u0622\u0630\u0631",
"\u062f\u064a","\u0628\u0647\u0645\u0646","\u0627\u0633\u0641\u0646\u062f"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["\u064a\u06a9\u0634\u0646\u0628\u0647","\u062f\u0648\u0634\u0646\u0628\u0647","\u0633\u0647\u0634\u0646\u0628\u0647","\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647","\u067e\u0646\u062c\u0634\u0646\u0628\u0647","\u062c\u0645\u0639\u0647","\u0634\u0646\u0628\u0647"],dayNamesShort:["\u064a","\u062f","\u0633","\u0686","\u067e","\u062c","\u0634"],
dayNamesMin:["\u064a","\u062f","\u0633","\u0686","\u067e","\u062c","\u0634"],weekHeader:"\u0647\u0641",dateFormat:"yy/mm/dd",firstDay:6,isRTL:true,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.fa)});
jQuery(function(a){a.datepicker.regional.fi={closeText:"Sulje",prevText:"&laquo;Edellinen",nextText:"Seuraava&raquo;",currentText:"T&auml;n&auml;&auml;n",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kes&auml;kuu","Hein&auml;kuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kes&auml;","Hein&auml;","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","Su"],dayNames:["Sunnuntai","Maanantai",
"Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.fi)});
jQuery(function(a){a.datepicker.regional.fo={closeText:"Lat aftur",prevText:"&#x3c;Fyrra",nextText:"N\u00e6sta&#x3e;",currentText:"\u00cd dag",monthNames:["Januar","Februar","Mars","Apr\u00edl","Mei","Juni","Juli","August","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNames:["Sunnudagur","M\u00e1nadagur","T\u00fdsdagur","Mikudagur","H\u00f3sdagur","Fr\u00edggjadagur","Leyardagur"],dayNamesShort:["Sun","M\u00e1n",
"T\u00fds","Mik","H\u00f3s","Fr\u00ed","Ley"],dayNamesMin:["Su","M\u00e1","T\u00fd","Mi","H\u00f3","Fr","Le"],weekHeader:"Vk",dateFormat:"dd-mm-yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.fo)});
jQuery(function(a){a.datepicker.regional["fr-CH"]={closeText:"Fermer",prevText:"&#x3c;Pr\u00e9c",nextText:"Suiv&#x3e;",currentText:"Courant",monthNames:["Janvier","F\u00e9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\u00fbt","Septembre","Octobre","Novembre","D\u00e9cembre"],monthNamesShort:["Jan","F\u00e9v","Mar","Avr","Mai","Jun","Jul","Ao\u00fb","Sep","Oct","Nov","D\u00e9c"],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim","Lun","Mar","Mer","Jeu",
"Ven","Sam"],dayNamesMin:["Di","Lu","Ma","Me","Je","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["fr-CH"])});
jQuery(function(a){a.datepicker.regional.fr={closeText:"Fermer",prevText:"Pr\u00e9c\u00e9dent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["Janvier","F\u00e9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\u00fbt","Septembre","Octobre","Novembre","D\u00e9cembre"],monthNamesShort:["Janv.","F\u00e9vr.","Mars","Avril","Mai","Juin","Juil.","Ao\u00fbt","Sept.","Oct.","Nov.","D\u00e9c."],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim.","Lun.",
"Mar.","Mer.","Jeu.","Ven.","Sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.fr)});
jQuery(function(a){a.datepicker.regional.gl={closeText:"Pechar",prevText:"&#x3c;Ant",nextText:"Seg&#x3e;",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xu\u00f1o","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xu\u00f1","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","M&eacute;rcores","Xoves","Venres","S&aacute;bado"],dayNamesShort:["Dom","Lun","Mar","M&eacute;r","Xov","Ven","S&aacute;b"],
dayNamesMin:["Do","Lu","Ma","M&eacute;","Xo","Ve","S&aacute;"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.gl)});
jQuery(function(a){a.datepicker.regional.he={closeText:"\u05e1\u05d2\u05d5\u05e8",prevText:"&#x3c;\u05d4\u05e7\u05d5\u05d3\u05dd",nextText:"\u05d4\u05d1\u05d0&#x3e;",currentText:"\u05d4\u05d9\u05d5\u05dd",monthNames:["\u05d9\u05e0\u05d5\u05d0\u05e8","\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8","\u05de\u05e8\u05e5","\u05d0\u05e4\u05e8\u05d9\u05dc","\u05de\u05d0\u05d9","\u05d9\u05d5\u05e0\u05d9","\u05d9\u05d5\u05dc\u05d9","\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8","\u05e1\u05e4\u05d8\u05de\u05d1\u05e8","\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8",
"\u05e0\u05d5\u05d1\u05de\u05d1\u05e8","\u05d3\u05e6\u05de\u05d1\u05e8"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["\u05e8\u05d0\u05e9\u05d5\u05df","\u05e9\u05e0\u05d9","\u05e9\u05dc\u05d9\u05e9\u05d9","\u05e8\u05d1\u05d9\u05e2\u05d9","\u05d7\u05de\u05d9\u05e9\u05d9","\u05e9\u05d9\u05e9\u05d9","\u05e9\u05d1\u05ea"],dayNamesShort:["\u05d0'","\u05d1'","\u05d2'","\u05d3'","\u05d4'","\u05d5'","\u05e9\u05d1\u05ea"],dayNamesMin:["\u05d0'","\u05d1'","\u05d2'","\u05d3'",
"\u05d4'","\u05d5'","\u05e9\u05d1\u05ea"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:true,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.he)});
jQuery(function(a){a.datepicker.regional.hr={closeText:"Zatvori",prevText:"&#x3c;",nextText:"&#x3e;",currentText:"Danas",monthNames:["Sije\u010danj","Velja\u010da","O\u017eujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","O\u017eu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","\u010cetvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","\u010cet",
"Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","\u010ce","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.hr)});
jQuery(function(a){a.datepicker.regional.hu={closeText:"bez\u00e1r\u00e1s",prevText:"&laquo;&nbsp;vissza",nextText:"el\u0151re&nbsp;&raquo;",currentText:"ma",monthNames:["Janu\u00e1r","Febru\u00e1r","M\u00e1rcius","\u00c1prilis","M\u00e1jus","J\u00fanius","J\u00falius","Augusztus","Szeptember","Okt\u00f3ber","November","December"],monthNamesShort:["Jan","Feb","M\u00e1r","\u00c1pr","M\u00e1j","J\u00fan","J\u00fal","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vas\u00e1rnap","H\u00e9tf\u00f6","Kedd","Szerda",
"Cs\u00fct\u00f6rt\u00f6k","P\u00e9ntek","Szombat"],dayNamesShort:["Vas","H\u00e9t","Ked","Sze","Cs\u00fc","P\u00e9n","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"H\u00e9",dateFormat:"yy-mm-dd",firstDay:1,isRTL:false,showMonthAfterYear:true,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.hu)});
jQuery(function(a){a.datepicker.regional.hy={closeText:"\u0553\u0561\u056f\u0565\u056c",prevText:"&#x3c;\u0546\u0561\u056d.",nextText:"\u0540\u0561\u057b.&#x3e;",currentText:"\u0531\u0575\u057d\u0585\u0580",monthNames:["\u0540\u0578\u0582\u0576\u057e\u0561\u0580","\u0553\u0565\u057f\u0580\u057e\u0561\u0580","\u0544\u0561\u0580\u057f","\u0531\u057a\u0580\u056b\u056c","\u0544\u0561\u0575\u056b\u057d","\u0540\u0578\u0582\u0576\u056b\u057d","\u0540\u0578\u0582\u056c\u056b\u057d","\u0555\u0563\u0578\u057d\u057f\u0578\u057d",
"\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580","\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580","\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580","\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580"],monthNamesShort:["\u0540\u0578\u0582\u0576\u057e","\u0553\u0565\u057f\u0580","\u0544\u0561\u0580\u057f","\u0531\u057a\u0580","\u0544\u0561\u0575\u056b\u057d","\u0540\u0578\u0582\u0576\u056b\u057d","\u0540\u0578\u0582\u056c","\u0555\u0563\u057d","\u054d\u0565\u057a","\u0540\u0578\u056f",
"\u0546\u0578\u0575","\u0534\u0565\u056f"],dayNames:["\u056f\u056b\u0580\u0561\u056f\u056b","\u0565\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b","\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b","\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b","\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b","\u0578\u0582\u0580\u0562\u0561\u0569","\u0577\u0561\u0562\u0561\u0569"],dayNamesShort:["\u056f\u056b\u0580","\u0565\u0580\u056f","\u0565\u0580\u0584","\u0579\u0580\u0584","\u0570\u0576\u0563",
"\u0578\u0582\u0580\u0562","\u0577\u0562\u0569"],dayNamesMin:["\u056f\u056b\u0580","\u0565\u0580\u056f","\u0565\u0580\u0584","\u0579\u0580\u0584","\u0570\u0576\u0563","\u0578\u0582\u0580\u0562","\u0577\u0562\u0569"],weekHeader:"\u0547\u0532\u054f",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.hy)});
jQuery(function(a){a.datepicker.regional.id={closeText:"Tutup",prevText:"&#x3c;mundur",nextText:"maju&#x3e;",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl",
"Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.id)});
jQuery(function(a){a.datepicker.regional.is={closeText:"Loka",prevText:"&#x3c; Fyrri",nextText:"N&aelig;sti &#x3e;",currentText:"&Iacute; dag",monthNames:["Jan&uacute;ar","Febr&uacute;ar","Mars","Apr&iacute;l","Ma&iacute","J&uacute;n&iacute;","J&uacute;l&iacute;","&Aacute;g&uacute;st","September","Okt&oacute;ber","N&oacute;vember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Ma&iacute;","J&uacute;n","J&uacute;l","&Aacute;g&uacute;","Sep","Okt","N&oacute;v","Des"],dayNames:["Sunnudagur","M&aacute;nudagur",
"&THORN;ri&eth;judagur","Mi&eth;vikudagur","Fimmtudagur","F&ouml;studagur","Laugardagur"],dayNamesShort:["Sun","M&aacute;n","&THORN;ri","Mi&eth;","Fim","F&ouml;s","Lau"],dayNamesMin:["Su","M&aacute;","&THORN;r","Mi","Fi","F&ouml;","La"],weekHeader:"Vika",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.is)});
jQuery(function(a){a.datepicker.regional.it={closeText:"Chiudi",prevText:"&#x3c;Prec",nextText:"Succ&#x3e;",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Luned&#236","Marted&#236","Mercoled&#236","Gioved&#236","Venerd&#236","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven",
"Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.it)});
jQuery(function(a){a.datepicker.regional.ja={closeText:"\u9589\u3058\u308b",prevText:"&#x3c;\u524d",nextText:"\u6b21&#x3e;",currentText:"\u4eca\u65e5",monthNames:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],monthNamesShort:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],dayNames:["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5",
"\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"],dayNamesShort:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],dayNamesMin:["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"],weekHeader:"\u9031",dateFormat:"yy/mm/dd",firstDay:0,isRTL:false,showMonthAfterYear:true,yearSuffix:"\u5e74"};a.datepicker.setDefaults(a.datepicker.regional.ja)});
jQuery(function(a){a.datepicker.regional.ko={closeText:"\ub2eb\uae30",prevText:"\uc774\uc804\ub2ec",nextText:"\ub2e4\uc74c\ub2ec",currentText:"\uc624\ub298",monthNames:["1\uc6d4(JAN)","2\uc6d4(FEB)","3\uc6d4(MAR)","4\uc6d4(APR)","5\uc6d4(MAY)","6\uc6d4(JUN)","7\uc6d4(JUL)","8\uc6d4(AUG)","9\uc6d4(SEP)","10\uc6d4(OCT)","11\uc6d4(NOV)","12\uc6d4(DEC)"],monthNamesShort:["1\uc6d4(JAN)","2\uc6d4(FEB)","3\uc6d4(MAR)","4\uc6d4(APR)","5\uc6d4(MAY)","6\uc6d4(JUN)","7\uc6d4(JUL)","8\uc6d4(AUG)","9\uc6d4(SEP)",
"10\uc6d4(OCT)","11\uc6d4(NOV)","12\uc6d4(DEC)"],dayNames:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],dayNamesShort:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],dayNamesMin:["\uc77c","\uc6d4","\ud654","\uc218","\ubaa9","\uae08","\ud1a0"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:"\ub144"};a.datepicker.setDefaults(a.datepicker.regional.ko)});
jQuery(function(a){a.datepicker.regional.kz={closeText:"\u0416\u0430\u0431\u0443",prevText:"&#x3c;\u0410\u043b\u0434\u044b\u04a3\u0493\u044b",nextText:"\u041a\u0435\u043b\u0435\u0441\u0456&#x3e;",currentText:"\u0411\u04af\u0433\u0456\u043d",monthNames:["\u049a\u0430\u04a3\u0442\u0430\u0440","\u0410\u049b\u043f\u0430\u043d","\u041d\u0430\u0443\u0440\u044b\u0437","\u0421\u04d9\u0443\u0456\u0440","\u041c\u0430\u043c\u044b\u0440","\u041c\u0430\u0443\u0441\u044b\u043c","\u0428\u0456\u043b\u0434\u0435",
"\u0422\u0430\u043c\u044b\u0437","\u049a\u044b\u0440\u043a\u04af\u0439\u0435\u043a","\u049a\u0430\u0437\u0430\u043d","\u049a\u0430\u0440\u0430\u0448\u0430","\u0416\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d"],monthNamesShort:["\u049a\u0430\u04a3","\u0410\u049b\u043f","\u041d\u0430\u0443","\u0421\u04d9\u0443","\u041c\u0430\u043c","\u041c\u0430\u0443","\u0428\u0456\u043b","\u0422\u0430\u043c","\u049a\u044b\u0440","\u049a\u0430\u0437","\u049a\u0430\u0440","\u0416\u0435\u043b"],dayNames:["\u0416\u0435\u043a\u0441\u0435\u043d\u0431\u0456",
"\u0414\u04af\u0439\u0441\u0435\u043d\u0431\u0456","\u0421\u0435\u0439\u0441\u0435\u043d\u0431\u0456","\u0421\u04d9\u0440\u0441\u0435\u043d\u0431\u0456","\u0411\u0435\u0439\u0441\u0435\u043d\u0431\u0456","\u0416\u04b1\u043c\u0430","\u0421\u0435\u043d\u0431\u0456"],dayNamesShort:["\u0436\u043a\u0441","\u0434\u0441\u043d","\u0441\u0441\u043d","\u0441\u0440\u0441","\u0431\u0441\u043d","\u0436\u043c\u0430","\u0441\u043d\u0431"],dayNamesMin:["\u0416\u043a","\u0414\u0441","\u0421\u0441","\u0421\u0440",
"\u0411\u0441","\u0416\u043c","\u0421\u043d"],weekHeader:"\u041d\u0435",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.kz)});
jQuery(function(a){a.datepicker.regional.lt={closeText:"U\u017edaryti",prevText:"&#x3c;Atgal",nextText:"Pirmyn&#x3e;",currentText:"\u0160iandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegu\u017e\u0117","Bir\u017eelis","Liepa","Rugpj\u016btis","Rugs\u0117jis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","tre\u010diadienis","ketvirtadienis","penktadienis","\u0161e\u0161tadienis"],
dayNamesShort:["sek","pir","ant","tre","ket","pen","\u0161e\u0161"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","\u0160e"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.lt)});
jQuery(function(a){a.datepicker.regional.lv={closeText:"Aizv\u0113rt",prevText:"Iepr",nextText:"N\u0101ka",currentText:"\u0160odien",monthNames:["Janv\u0101ris","Febru\u0101ris","Marts","Apr\u012blis","Maijs","J\u016bnijs","J\u016blijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","J\u016bn","J\u016bl","Aug","Sep","Okt","Nov","Dec"],dayNames:["sv\u0113tdiena","pirmdiena","otrdiena","tre\u0161diena","ceturtdiena","piektdiena","sestdiena"],
dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Nav",dateFormat:"dd-mm-yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.lv)});
jQuery(function(a){a.datepicker.regional.ml={closeText:"\u0d36\u0d30\u0d3f",prevText:"\u0d2e\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d\u0d24\u0d46",nextText:"\u0d05\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d24\u0d4d ",currentText:"\u0d07\u0d28\u0d4d\u0d28\u0d4d",monthNames:["\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f","\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f","\u0d2e\u0d3e\u0d30\u0d4d\u0d1a\u0d4d\u0d1a\u0d4d","\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d32\u0d4d","\u0d2e\u0d47\u0d2f\u0d4d","\u0d1c\u0d42\u0d23\u0d4d",
"\u0d1c\u0d42\u0d32\u0d48","\u0d06\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d","\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d30\u0d4d","\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d30\u0d4d","\u0d28\u0d35\u0d02\u0d2c\u0d30\u0d4d","\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d30\u0d4d"],monthNamesShort:["\u0d1c\u0d28\u0d41","\u0d2b\u0d46\u0d2c\u0d4d","\u0d2e\u0d3e\u0d30\u0d4d","\u0d0f\u0d2a\u0d4d\u0d30\u0d3f","\u0d2e\u0d47\u0d2f\u0d4d","\u0d1c\u0d42\u0d23\u0d4d","\u0d1c\u0d42\u0d32\u0d3e","\u0d06\u0d17",
"\u0d38\u0d46\u0d2a\u0d4d","\u0d12\u0d15\u0d4d\u0d1f\u0d4b","\u0d28\u0d35\u0d02","\u0d21\u0d3f\u0d38"],dayNames:["\u0d1e\u0d3e\u0d2f\u0d30\u0d4d","\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d","\u0d1a\u0d4a\u0d35\u0d4d\u0d35","\u0d2c\u0d41\u0d27\u0d28\u0d4d","\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02","\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f","\u0d36\u0d28\u0d3f"],dayNamesShort:["\u0d1e\u0d3e\u0d2f","\u0d24\u0d3f\u0d19\u0d4d\u0d15","\u0d1a\u0d4a\u0d35\u0d4d\u0d35","\u0d2c\u0d41\u0d27","\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02",
"\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f","\u0d36\u0d28\u0d3f"],dayNamesMin:["\u0d1e\u0d3e","\u0d24\u0d3f","\u0d1a\u0d4a","\u0d2c\u0d41","\u0d35\u0d4d\u0d2f\u0d3e","\u0d35\u0d46","\u0d36"],weekHeader:"\u0d06",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ml)});
jQuery(function(a){a.datepicker.regional.ms={closeText:"Tutup",prevText:"&#x3c;Sebelum",nextText:"Selepas&#x3e;",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra",
"Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ms)});
jQuery(function(a){a.datepicker.regional.nl={closeText:"Sluiten",prevText:"\u2190",nextText:"\u2192",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma",
"di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.nl)});
jQuery(function(a){a.datepicker.regional.no={closeText:"Lukk",prevText:"&laquo;Forrige",nextText:"Neste&raquo;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["s\u00f8n","man","tir","ons","tor","fre","l\u00f8r"],dayNames:["s\u00f8ndag","mandag","tirsdag","onsdag","torsdag","fredag","l\u00f8rdag"],dayNamesMin:["s\u00f8",
"ma","ti","on","to","fr","l\u00f8"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.no)});
jQuery(function(a){a.datepicker.regional.pl={closeText:"Zamknij",prevText:"&#x3c;Poprzedni",nextText:"Nast\u0119pny&#x3e;",currentText:"Dzi\u015b",monthNames:["Stycze\u0144","Luty","Marzec","Kwiecie\u0144","Maj","Czerwiec","Lipiec","Sierpie\u0144","Wrzesie\u0144","Pa\u017adziernik","Listopad","Grudzie\u0144"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedzia\u0142ek","Wtorek","\u015aroda","Czwartek","Pi\u0105tek","Sobota"],dayNamesShort:["Nie",
"Pn","Wt","\u015ar","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","\u015ar","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.pl)});
jQuery(function(a){a.datepicker.regional["pt-BR"]={closeText:"Fechar",prevText:"&#x3c;Anterior",nextText:"Pr&oacute;ximo&#x3e;",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom",
"Seg","Ter","Qua","Qui","Sex","S&aacute;b"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["pt-BR"])});
jQuery(function(a){a.datepicker.regional.pt={closeText:"Fechar",prevText:"&#x3c;Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom","Seg","Ter",
"Qua","Qui","Sex","S&aacute;b"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.pt)});
jQuery(function(a){a.datepicker.regional.rm={closeText:"Serrar",prevText:"&#x3c;Suandant",nextText:"Precedent&#x3e;",currentText:"Actual",monthNames:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],monthNamesShort:["Scha","Fev","Mar","Avr","Matg","Zer","Fan","Avu","Sett","Oct","Nov","Dec"],dayNames:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"],dayNamesShort:["Dum","Gli","Mar","Mes","Gie","Ven","Som"],dayNamesMin:["Du",
"Gl","Ma","Me","Gi","Ve","So"],weekHeader:"emna",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.rm)});
jQuery(function(a){a.datepicker.regional.ro={closeText:"\u00cenchide",prevText:"&laquo; Luna precedent\u0103",nextText:"Luna urm\u0103toare &raquo;",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminic\u0103","Luni","Mar\u0163i","Miercuri","Joi","Vineri","S\u00e2mb\u0103t\u0103"],dayNamesShort:["Dum",
"Lun","Mar","Mie","Joi","Vin","S\u00e2m"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","S\u00e2"],weekHeader:"S\u0103pt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ro)});
jQuery(function(a){a.datepicker.regional.ru={closeText:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c",prevText:"&#x3c;\u041f\u0440\u0435\u0434",nextText:"\u0421\u043b\u0435\u0434&#x3e;",currentText:"\u0421\u0435\u0433\u043e\u0434\u043d\u044f",monthNames:["\u042f\u043d\u0432\u0430\u0440\u044c","\u0424\u0435\u0432\u0440\u0430\u043b\u044c","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b\u044c","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433\u0443\u0441\u0442",
"\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","\u041e\u043a\u0442\u044f\u0431\u0440\u044c","\u041d\u043e\u044f\u0431\u0440\u044c","\u0414\u0435\u043a\u0430\u0431\u0440\u044c"],monthNamesShort:["\u042f\u043d\u0432","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0439","\u0418\u044e\u043d","\u0418\u044e\u043b","\u0410\u0432\u0433","\u0421\u0435\u043d","\u041e\u043a\u0442","\u041d\u043e\u044f","\u0414\u0435\u043a"],dayNames:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
"\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0432\u0442\u043e\u0440\u043d\u0438\u043a","\u0441\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440\u0433","\u043f\u044f\u0442\u043d\u0438\u0446\u0430","\u0441\u0443\u0431\u0431\u043e\u0442\u0430"],dayNamesShort:["\u0432\u0441\u043a","\u043f\u043d\u0434","\u0432\u0442\u0440","\u0441\u0440\u0434","\u0447\u0442\u0432","\u043f\u0442\u043d","\u0441\u0431\u0442"],dayNamesMin:["\u0412\u0441","\u041f\u043d","\u0412\u0442",
"\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],weekHeader:"\u041d\u0435\u0434",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ru)});
jQuery(function(a){a.datepicker.regional.sk={closeText:"Zavrie\u0165",prevText:"&#x3c;Predch\u00e1dzaj\u00faci",nextText:"Nasleduj\u00faci&#x3e;",currentText:"Dnes",monthNames:["Janu\u00e1r","Febru\u00e1r","Marec","Apr\u00edl","M\u00e1j","J\u00fan","J\u00fal","August","September","Okt\u00f3ber","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","M\u00e1j","J\u00fan","J\u00fal","Aug","Sep","Okt","Nov","Dec"],dayNames:["Nede\u013ea","Pondelok","Utorok","Streda","\u0160tvrtok","Piatok",
"Sobota"],dayNamesShort:["Ned","Pon","Uto","Str","\u0160tv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","\u0160t","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.sk)});
jQuery(function(a){a.datepicker.regional.sl={closeText:"Zapri",prevText:"&lt;Prej&#x161;nji",nextText:"Naslednji&gt;",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","&#x10C;etrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","&#x10C;et","Pet","Sob"],
dayNamesMin:["Ne","Po","To","Sr","&#x10C;e","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.sl)});
jQuery(function(a){a.datepicker.regional.sq={closeText:"mbylle",prevText:"&#x3c;mbrapa",nextText:"P\u00ebrpara&#x3e;",currentText:"sot",monthNames:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","N\u00ebntor","Dhjetor"],monthNamesShort:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","N\u00ebn","Dhj"],dayNames:["E Diel","E H\u00ebn\u00eb","E Mart\u00eb","E M\u00ebrkur\u00eb","E Enjte","E Premte","E Shtune"],dayNamesShort:["Di","H\u00eb","Ma","M\u00eb",
"En","Pr","Sh"],dayNamesMin:["Di","H\u00eb","Ma","M\u00eb","En","Pr","Sh"],weekHeader:"Ja",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.sq)});
jQuery(function(a){a.datepicker.regional["sr-SR"]={closeText:"Zatvori",prevText:"&#x3c;",nextText:"&#x3e;",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljak","Utorak","Sreda","\u010cetvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sre","\u010cet","Pet","Sub"],dayNamesMin:["Ne","Po",
"Ut","Sr","\u010ce","Pe","Su"],weekHeader:"Sed",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional["sr-SR"])});
jQuery(function(a){a.datepicker.regional.sr={closeText:"\u0417\u0430\u0442\u0432\u043e\u0440\u0438",prevText:"&#x3c;",nextText:"&#x3e;",currentText:"\u0414\u0430\u043d\u0430\u0441",monthNames:["\u0408\u0430\u043d\u0443\u0430\u0440","\u0424\u0435\u0431\u0440\u0443\u0430\u0440","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0438\u043b","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440","\u041e\u043a\u0442\u043e\u0431\u0430\u0440",
"\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440","\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440"],monthNamesShort:["\u0408\u0430\u043d","\u0424\u0435\u0431","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0458","\u0408\u0443\u043d","\u0408\u0443\u043b","\u0410\u0432\u0433","\u0421\u0435\u043f","\u041e\u043a\u0442","\u041d\u043e\u0432","\u0414\u0435\u0446"],dayNames:["\u041d\u0435\u0434\u0435\u0459\u0430","\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a","\u0423\u0442\u043e\u0440\u0430\u043a",
"\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a","\u041f\u0435\u0442\u0430\u043a","\u0421\u0443\u0431\u043e\u0442\u0430"],dayNamesShort:["\u041d\u0435\u0434","\u041f\u043e\u043d","\u0423\u0442\u043e","\u0421\u0440\u0435","\u0427\u0435\u0442","\u041f\u0435\u0442","\u0421\u0443\u0431"],dayNamesMin:["\u041d\u0435","\u041f\u043e","\u0423\u0442","\u0421\u0440","\u0427\u0435","\u041f\u0435","\u0421\u0443"],weekHeader:"\u0421\u0435\u0434",dateFormat:"dd/mm/yy",firstDay:1,
isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.sr)});
jQuery(function(a){a.datepicker.regional.sv={closeText:"St\u00e4ng",prevText:"&laquo;F\u00f6rra",nextText:"N\u00e4sta&raquo;",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["S\u00f6n","M\u00e5n","Tis","Ons","Tor","Fre","L\u00f6r"],dayNames:["S\u00f6ndag","M\u00e5ndag","Tisdag","Onsdag","Torsdag","Fredag",
"L\u00f6rdag"],dayNamesMin:["S\u00f6","M\u00e5","Ti","On","To","Fr","L\u00f6"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.sv)});
jQuery(function(a){a.datepicker.regional.ta={closeText:"\u0bae\u0bc2\u0b9f\u0bc1",prevText:"\u0bae\u0bc1\u0ba9\u0bcd\u0ba9\u0bc8\u0baf\u0ba4\u0bc1",nextText:"\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0ba4\u0bc1",currentText:"\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",monthNames:["\u0ba4\u0bc8","\u0bae\u0bbe\u0b9a\u0bbf","\u0baa\u0b99\u0bcd\u0b95\u0bc1\u0ba9\u0bbf","\u0b9a\u0bbf\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8","\u0bb5\u0bc8\u0b95\u0bbe\u0b9a\u0bbf","\u0b86\u0ba9\u0bbf","\u0b86\u0b9f\u0bbf","\u0b86\u0bb5\u0ba3\u0bbf",
"\u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bbe\u0b9a\u0bbf","\u0b90\u0baa\u0bcd\u0baa\u0b9a\u0bbf","\u0b95\u0bbe\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf\u0b95\u0bc8","\u0bae\u0bbe\u0bb0\u0bcd\u0b95\u0bb4\u0bbf"],monthNamesShort:["\u0ba4\u0bc8","\u0bae\u0bbe\u0b9a\u0bbf","\u0baa\u0b99\u0bcd","\u0b9a\u0bbf\u0ba4\u0bcd","\u0bb5\u0bc8\u0b95\u0bbe","\u0b86\u0ba9\u0bbf","\u0b86\u0b9f\u0bbf","\u0b86\u0bb5","\u0baa\u0bc1\u0bb0","\u0b90\u0baa\u0bcd","\u0b95\u0bbe\u0bb0\u0bcd","\u0bae\u0bbe\u0bb0\u0bcd"],dayNames:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8",
"\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8","\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8"],dayNamesShort:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1",
"\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd","\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd","\u0baa\u0bc1\u0ba4\u0ba9\u0bcd","\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd","\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf","\u0b9a\u0ba9\u0bbf"],dayNamesMin:["\u0b9e\u0bbe","\u0ba4\u0bbf","\u0b9a\u0bc6","\u0baa\u0bc1","\u0bb5\u0bbf","\u0bb5\u0bc6","\u0b9a"],weekHeader:"\u041d\u0435",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.ta)});
jQuery(function(a){a.datepicker.regional.th={closeText:"\u0e1b\u0e34\u0e14",prevText:"&laquo;&nbsp;\u0e22\u0e49\u0e2d\u0e19",nextText:"\u0e16\u0e31\u0e14\u0e44\u0e1b&nbsp;&raquo;",currentText:"\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49",monthNames:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19",
"\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],monthNamesShort:["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],
dayNames:["\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e1e\u0e38\u0e18","\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e40\u0e2a\u0e32\u0e23\u0e4c"],dayNamesShort:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],dayNamesMin:["\u0e2d\u0e32.","\u0e08.","\u0e2d.","\u0e1e.","\u0e1e\u0e24.","\u0e28.","\u0e2a."],weekHeader:"Wk",dateFormat:"dd/mm/yy",
firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.th)});
jQuery(function(a){a.datepicker.regional.tj={closeText:"\u0418\u0434\u043e\u043c\u0430",prevText:"&#x3c;\u049a\u0430\u0444\u043e",nextText:"\u041f\u0435\u0448&#x3e;",currentText:"\u0418\u043c\u0440\u04ef\u0437",monthNames:["\u042f\u043d\u0432\u0430\u0440","\u0424\u0435\u0432\u0440\u0430\u043b","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b","\u041c\u0430\u0439","\u0418\u044e\u043d","\u0418\u044e\u043b","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043d\u0442\u044f\u0431\u0440",
"\u041e\u043a\u0442\u044f\u0431\u0440","\u041d\u043e\u044f\u0431\u0440","\u0414\u0435\u043a\u0430\u0431\u0440"],monthNamesShort:["\u042f\u043d\u0432","\u0424\u0435\u0432","\u041c\u0430\u0440","\u0410\u043f\u0440","\u041c\u0430\u0439","\u0418\u044e\u043d","\u0418\u044e\u043b","\u0410\u0432\u0433","\u0421\u0435\u043d","\u041e\u043a\u0442","\u041d\u043e\u044f","\u0414\u0435\u043a"],dayNames:["\u044f\u043a\u0448\u0430\u043d\u0431\u0435","\u0434\u0443\u0448\u0430\u043d\u0431\u0435","\u0441\u0435\u0448\u0430\u043d\u0431\u0435",
"\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435","\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435","\u04b7\u0443\u043c\u044a\u0430","\u0448\u0430\u043d\u0431\u0435"],dayNamesShort:["\u044f\u043a\u0448","\u0434\u0443\u0448","\u0441\u0435\u0448","\u0447\u043e\u0440","\u043f\u0430\u043d","\u04b7\u0443\u043c","\u0448\u0430\u043d"],dayNamesMin:["\u042f\u043a","\u0414\u0448","\u0421\u0448","\u0427\u0448","\u041f\u0448","\u04b6\u043c","\u0428\u043d"],weekHeader:"\u0425\u0444",dateFormat:"dd.mm.yy",
firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.tj)});
jQuery(function(a){a.datepicker.regional.tr={closeText:"kapat",prevText:"&#x3c;geri",nextText:"ileri&#x3e",currentText:"bug\u00fcn",monthNames:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],monthNamesShort:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa",
"\u00c7a","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","\u00c7a","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.tr)});
jQuery(function(a){a.datepicker.regional.uk={closeText:"\u0417\u0430\u043a\u0440\u0438\u0442\u0438",prevText:"&#x3c;",nextText:"&#x3e;",currentText:"\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456",monthNames:["\u0421\u0456\u0447\u0435\u043d\u044c","\u041b\u044e\u0442\u0438\u0439","\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c","\u041a\u0432\u0456\u0442\u0435\u043d\u044c","\u0422\u0440\u0430\u0432\u0435\u043d\u044c","\u0427\u0435\u0440\u0432\u0435\u043d\u044c","\u041b\u0438\u043f\u0435\u043d\u044c",
"\u0421\u0435\u0440\u043f\u0435\u043d\u044c","\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c","\u0416\u043e\u0432\u0442\u0435\u043d\u044c","\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434","\u0413\u0440\u0443\u0434\u0435\u043d\u044c"],monthNamesShort:["\u0421\u0456\u0447","\u041b\u044e\u0442","\u0411\u0435\u0440","\u041a\u0432\u0456","\u0422\u0440\u0430","\u0427\u0435\u0440","\u041b\u0438\u043f","\u0421\u0435\u0440","\u0412\u0435\u0440","\u0416\u043e\u0432","\u041b\u0438\u0441","\u0413\u0440\u0443"],
dayNames:["\u043d\u0435\u0434\u0456\u043b\u044f","\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a","\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a","\u0441\u0435\u0440\u0435\u0434\u0430","\u0447\u0435\u0442\u0432\u0435\u0440","\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f","\u0441\u0443\u0431\u043e\u0442\u0430"],dayNamesShort:["\u043d\u0435\u0434","\u043f\u043d\u0434","\u0432\u0456\u0432","\u0441\u0440\u0434","\u0447\u0442\u0432","\u043f\u0442\u043d","\u0441\u0431\u0442"],dayNamesMin:["\u041d\u0434",
"\u041f\u043d","\u0412\u0442","\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],weekHeader:"\u041d\u0435",dateFormat:"dd/mm/yy",firstDay:1,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.uk)});
jQuery(function(a){a.datepicker.regional.vi={closeText:"\u0110\u00f3ng",prevText:"&#x3c;Tr\u01b0\u1edbc",nextText:"Ti\u1ebfp&#x3e;",currentText:"H\u00f4m nay",monthNames:["Th\u00e1ng M\u1ed9t","Th\u00e1ng Hai","Th\u00e1ng Ba","Th\u00e1ng T\u01b0","Th\u00e1ng N\u0103m","Th\u00e1ng S\u00e1u","Th\u00e1ng B\u1ea3y","Th\u00e1ng T\u00e1m","Th\u00e1ng Ch\u00edn","Th\u00e1ng M\u01b0\u1eddi","Th\u00e1ng M\u01b0\u1eddi M\u1ed9t","Th\u00e1ng M\u01b0\u1eddi Hai"],monthNamesShort:["Th\u00e1ng 1","Th\u00e1ng 2",
"Th\u00e1ng 3","Th\u00e1ng 4","Th\u00e1ng 5","Th\u00e1ng 6","Th\u00e1ng 7","Th\u00e1ng 8","Th\u00e1ng 9","Th\u00e1ng 10","Th\u00e1ng 11","Th\u00e1ng 12"],dayNames:["Ch\u1ee7 Nh\u1eadt","Th\u1ee9 Hai","Th\u1ee9 Ba","Th\u1ee9 T\u01b0","Th\u1ee9 N\u0103m","Th\u1ee9 S\u00e1u","Th\u1ee9 B\u1ea3y"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.vi)});
jQuery(function(a){a.datepicker.regional["zh-CN"]={closeText:"\u5173\u95ed",prevText:"&#x3c;\u4e0a\u6708",nextText:"\u4e0b\u6708&#x3e;",currentText:"\u4eca\u5929",monthNames:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],monthNamesShort:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],
dayNames:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],dayNamesShort:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],dayNamesMin:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],weekHeader:"\u5468",dateFormat:"yy-mm-dd",firstDay:1,isRTL:false,showMonthAfterYear:true,yearSuffix:"\u5e74"};a.datepicker.setDefaults(a.datepicker.regional["zh-CN"])});
jQuery(function(a){a.datepicker.regional["zh-HK"]={closeText:"\u95dc\u9589",prevText:"&#x3c;\u4e0a\u6708",nextText:"\u4e0b\u6708&#x3e;",currentText:"\u4eca\u5929",monthNames:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],monthNamesShort:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],
dayNames:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],dayNamesShort:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],dayNamesMin:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],weekHeader:"\u5468",dateFormat:"dd-mm-yy",firstDay:0,isRTL:false,showMonthAfterYear:true,yearSuffix:"\u5e74"};a.datepicker.setDefaults(a.datepicker.regional["zh-HK"])});
jQuery(function(a){a.datepicker.regional["zh-TW"]={closeText:"\u95dc\u9589",prevText:"&#x3c;\u4e0a\u6708",nextText:"\u4e0b\u6708&#x3e;",currentText:"\u4eca\u5929",monthNames:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],monthNamesShort:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],
dayNames:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],dayNamesShort:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],dayNamesMin:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],weekHeader:"\u5468",dateFormat:"yy/mm/dd",firstDay:1,isRTL:false,showMonthAfterYear:true,yearSuffix:"\u5e74"};a.datepicker.setDefaults(a.datepicker.regional["zh-TW"])});
/web/admin/js/jquery-1.6.1.min.js
0,0 → 1,18
/*!
* jQuery JavaScript Library v1.6.1
* http://jquery.com/
*
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu May 12 15:04:36 2011 -0400
*/
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
/web/admin/backups.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>backup page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/ressources/awstats/readme.html
0,0 → 1,7
<html>
<head>
</head>
<body>
La configuration AWSTAT sera réalisée ultérieurement...
<body>
</html>
/web/admin/admins.php
14,6 → 14,7
<html>
<head>
<title>Admins page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
126,7 → 127,7
</thead>
<tfoot>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>profils</th>
<th width="20">#</th><th width="200">Usagers</th><th>Profils</th>
</tr>
</tfoot>
<tbody>
/web/admin/directories.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Directories page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/auth_import_users.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>User import page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/user.php
1,7 → 1,41
<?php
/*
 
 
Array
(
[username] => s
[User] => s
[User-mdp] => ********
[User-mdp-clear] =>
[Expiration] => 23 April 2011
[altExpirationDate] =>
[bupdate] => Modifier
[name] =>
[email] =>
[service] =>
[phone] =>
[bureau] =>
[mobile] =>
[Simultaneous-Use] => 1
[Session-Timeout] =>
[Session-Timeout_h] =>
[Session-Timeout_mm] =>
[Session-Timeout_s] =>
[Max-Daily-Session] =>
[Max-Daily-Session_h] =>
[Max-Daily-Session_mm] =>
[Max-Daily-Session_s] =>
[Max-Monthly-Session] =>
[Max-Monthly-Session_h] =>
[Max-Monthly-Session_mm] =>
[Max-Monthly-Session_s] =>
[Login-Time] =>
[ChilliSpot-Max-Input-Octets] =>
[ChilliSpot-Max-Output-Octets] =>
[ChilliSpot-Max-Total-Octets] =>
[ChilliSpot-Bandwidth-Max-Up] =>
[ChilliSpot-Bandwidth-Max-Down] =>
[WISPr-Redirection-URL] =>
)
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
8,16 → 42,50
//include(ALCASAR_ADMIN_PATH_LIB.'/user.class.php');
include(ALCASAR_ADMIN_PATH_LIB.'/radiusMysqlUser.class.php');
 
if (isset($_GET['username'])){
$username = $_GET['username'];
/*
Traitement des mises à jours
*/
if (isset($_POST['bupdate'])&&isset($_POST['username'])){
$username = $_POST['username'];
/*
echo '<pre>';
print_r($_POST);
echo '</pre>';
*/
//$validattribute = array('username','User-mdp','Expiration','name','email','service','phone','bureau','mobile','Simultaneous-Use','Session-Timeout','Max-Daily-Session','Max-Monthly-Session','Login-Time','ChilliSpot-Max-Input-Octets','ChilliSpot-Max-Output-Octets','ChilliSpot-Max-Total-Octets','ChilliSpot-Bandwidth-Max-Up','ChilliSpot-Bandwidth-Max-Down','WISPr-Redirection-URL');
$ouser = new radiusMysqlUser();
echo '<pre>';
foreach ($_POST as $key => $val){
if (in_array($key, $attrmap)){
/*
ATTENTION FAIRE UN TEST DE $VAL!!!
METTRE EN FORME LES DATES
*/
echo $key.' '.$val;
$ouser->set($key,$val);
}
}
echo '</pre>';
$ouser->save();
} else {
$username = '';
if (isset($_GET['username'])){
$username = $_GET['username'];//faire fonction xss_clean
} else {
header('Location: users.php');
}
$ouser = new radiusMysqlUser();
$ouser->load($username, true);
}
 
$ouser = new radiusMysqlUser();
$ouser->load($username, true);
$user = $ouser->get();
$attributes = $ouser->getAttribute();
echo '<pre>';
print_r($user);
echo '</pre>';
/*
Affichage de la page
*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
24,7 → 92,6
<head>
<title>Edit <?php echo $options['username']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!--link rel="stylesheet" href="../css/style.css" type="text/css"-->
33,307 → 100,47
<!-- include custom page CSS -->
 
<!-- include JQUERY -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.5.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.6.1.min.js"></script>
<!-- include JQUERY UI -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-i18n.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
var horaireFlag = false;
var colFlag = false;
var rowFlag = false;
var no_limite_flag = false;
function seconds2Hms(d) {
d = Number(d);
var h = Math.floor(d / 3600);
var m = Math.floor(d % 3600 / 60);
var s = Math.floor(d % 3600 % 60);
//return ((h > 0 ? h + ":" : "") + (m > 0 ? (h > 0 && m < 10 ? "0" : "") + m + ":" : "0:") + (s < 10 ? "0" : "") + s);
return new array(h,m,s);
}
function hms2Seconds(h, m, s) {
h = Number(d);
m = Number(d);
s = Number(d);
return Math.floor(h * 3600 + m * 60 + s);
}
$(function(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected');
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
//Time-limite
var Time_limite = '';
parseHoraire(Time_limite);
$(function(){
// Tabs
$('#tabs-user').tabs();
// datepicker
$( ".datepicker" ).datepicker();
$.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );
//$( ".datepicker" ).datepicker( $.datepicker.regional[ "fr" ] );
$( ".datepicker" ).datepicker(
{
altFormat: 'yy-mm-dd',
altField: '#altExpirationDate', //pour mise à jour de ma bdd!
dateFormat: 'dd MM yy'
});
// button
$( "button, input:submit, input:button, input:reset").button();
$('#horaire-table').mouseleave(function() {
horaireFlag = false;
colFlag = false;
rowFlag = false;
});
// selection à partir du calendrier
$('#horaire-table').find('tbody').mouseleave(function() {
horaireFlag = false;
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mousedown(function() {
horaireFlag = true;
colorize_body($(this));
});
$('#horaire-table').find('tbody > tr > td').mouseup(function() {
horaireFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mouseover(function() {
if (horaireFlag === true){
colorize_body($(this));
}
});
// selection à partir de l'entête de la 1er colone
$('#horaire-table').find('thead > tr > th:eq(0)').mousedown(function() {
if (no_limite_flag){
no_limite();
no_limite_flag = false;
} else {
all_limite();
no_limite_flag = true;
}
});
// selection à partir de l'entête de colone
$('#horaire-table').find('thead > tr > th').mousedown(function() {
colFlag = true;
head_colorize_body($(this))
});
$('#horaire-table').find('thead > tr > th').mouseup(function() {
colFlag = false;
});
$('#horaire-table').find('thead').mouseleave(function() {
colFlag = false;
});
$('#horaire-table').find('thead > tr > th').mouseover(function() {
if (colFlag == true){
head_colorize_body($(this))
}
});
// selection à partir de l'entête de ligne
//.mouseleave event is allready defined
$('#horaire-table').find('tbody > tr > th').mousedown(function() {
rowFlag = true;
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
});
$('#horaire-table').find('tbody > tr > th').mouseup(function() {
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > th').mouseover(function() {
if (rowFlag == true){
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
}
});
function calcule_plage_jour(horaires){
var d, f, i, deb, tmp;
deb = true;
tmp = new Array();
for (i=0 ; i<=47 ; i++) {
if ( jQuery.inArray(i, horaires) !== -1){
if (deb){
d = i;
deb = false;
}
if (i == 47){
f = i;
tmp.push(new Array(d,f));
deb = true;
}
} else {
if (!(deb)){
f = eval(i-1);
tmp.push(new Array(d,f));
deb = true;
}
}
}
return tmp;
}
function parsePlage(plage){
alert(plage[0]);
for (i=0 ; i < plage.length-1 ; i++){
deb = plage[i][0];
fin = plage[i][1];
debh = eval(deb/2);
alert(deb);
if (eval(deb%2) == 0){
debm = "00";
} else {
debm = "30";
}
deb = debh + debm;
finh = parseInt(eval(fin/2));
if (eval(fin%2) == 0){
finm = "00";
} else {
finm = "30";
}
fin = finh + finm;
}
return deb+fin;
}
//Wk2305-0855,Sa,Su2305-1655
$('#button_test').click(function(){
a = new Array();
mo = new Array();
tu = new Array();
we = new Array();
th = new Array();
fr = new Array();
sa = new Array();
so = new Array();
plageMo = new Array();
/*
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, td){
if ($(td).hasClass('horaireIsSelected')) a.push(index);
})
*/
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, tda){
if ($(tda).hasClass('horaireIsSelected')) a.push(index);
});
td_mo = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_mo).each( function(index, td_mo_a){
if ($(td_mo_a).hasClass('horaireIsSelected')) mo.push(index);
});
//alert(mo);
td_tu = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_tu).each( function(index, td_tu_a){
if ($(td_tu_a).hasClass('horaireIsSelected')) tu.push(index);
});
//alert(tu);
td_we = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_we).each( function(index, td_we_a){
if ($(td_we_a).hasClass('horaireIsSelected')) we.push(index);
});
//alert(we);
td_th = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_th).each( function(index, td_th_a){
if ($(td_th_a).hasClass('horaireIsSelected')) th.push(index);
});
//alert(th);
td_fr = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_fr).each( function(index, td_fr_a){
if ($(td_fr_a).hasClass('horaireIsSelected')) fr.push(index);
});
//alert(fr);
td_sa = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_sa).each( function(index, td_sa_a){
if ($(td_sa_a).hasClass('horaireIsSelected')) sa.push(index);
});
//alert(sa);
td_so = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_so).each( function(index, td_so_a){
if ($(td_so_a).hasClass('horaireIsSelected')) so.push(index);
});
//alert(so);
plageMo = calcule_plage_jour(mo);
plageTu = calcule_plage_jour(tu);
plageWe = calcule_plage_jour(we);
plageTh = calcule_plage_jour(th);
plageFr = calcule_plage_jour(fr);
plageSa = calcule_plage_jour(sa);
plageSo = calcule_plage_jour(so);
//alert(plage);
//alert(a);
$('#test').val(parsePlage(plageMo));
//la suite ?
});
});
//fonctions de sélection/déselection
function row_colorize_body(row_ref){
if (row_ref.find('td').hasClass('horaireIsNotSelected') || !(row_ref.find('td').hasClass('horaireIsSelected'))){
row_ref.find('td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
row_ref.find('td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function colorize_body(td_ref){
if (td_ref.hasClass('horaireIsNotSelected') || !(td_ref.hasClass('horaireIsSelected'))){
td_ref.removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
td_ref.removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function head_colorize_body(head_ref){
horaire_head = false;
var index = head_ref.index();
index = (parseInt(index) - 1) *2;
index2 = index + 1;
if (head_ref.hasClass('headSelect')){
head_ref.removeClass('headSelect').addClass('headNoSelect');
horaire_head = false;
} else {
head_ref.removeClass('headNoSelect').addClass('headSelect');
horaire_head = true;
}
var rows = $('#horaire-table').find('tbody > tr').get();
$.each(rows, function() {
if (horaire_head){
$(this).find('td:eq('+index+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
$(this).find('td:eq('+index+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
});
$('#periode_perso').attr("checked","checked");
}
//fonctions de sélection/déselection des profils pre-définis
function no_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function all_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
function wk(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');;
$('#horaire-table').find('tbody > tr:lt(5) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function we(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
$('#horaire-table').find('tbody > tr:gt(4) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
//parse Time-limite et affiche le résultat dans le calendrier
function parseHoraire(Time_limite){
if (Time_limite == ''){
no_limite();
return;
}
}
});
</script>
<style type="text/css">
.datepicker{
background:url(../images/calendrier.gif) no-repeat 110px 3px;
background:url(<?php echo ALCASAR_ADMIN_PATH_IMG; ?>/calendrier.gif) no-repeat 110px 3px;
}
</style>
</head>
342,27 → 149,40
<span class="ui-dialog-title" id="ui-dialog-title-dialog">Gestion des usagers</span>
</div>
<div id="usager">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="username" value="<?php echo $username; ?>">
<div id="">
<br />
<table class="ui-widget ui-widget-content">
<tr><td>Usager :</td><td><input type="text" name="User" id="User" value="<?php echo $username; ?>" readonly></td><td></td><tr>
<tr><td>Mot de passe :</td><td><input type="text" name="User-mdp" id="User-mdp" value="********"></td><td><button>Générer MDP</button></td><tr>
<tr><td>Date d'expiration :</td><td><input type="text" value="" name="" id="" class="datepicker"></td><td></td></tr>
<table class="ui-widget ui-widget-content" width="570">
<tr>
<td>Membre de :</td>
<td width="150">Usager (login):</td>
<td width="100"><input type="text" name="User" id="User" value="<?php echo $username; ?>" readonly size="20"></td>
<td width="150"></td>
<td></td>
<tr>
<tr>
<td>Mot de passe :</td>
<td><input type="text" name="User-mdp" id="User-mdp" value="********" size="20"></td>
<td><button>Générer MDP</button></td>
<td></td>
<tr>
<tr>
<td></td>
<td><input type="text" name="User-mdp-clear" id="User-mdp-clear" value="" readonly size="20"></td>
<td></td>
<td></td>
<tr>
<tr>
<td>Date d'expiration :</td>
<td>
<table width="100%">
<?php
$users = array(); // faire une boucle pour les groupes
foreach ($users as $user){
echo "<tr> <td></td> <td width='10'><image src='".ALCASAR_ADMIN_PATH_IMG."/delete.png'></td> </tr>";
} ?>
</table>
<input type="text" value="<?php echo $user['expiration']; ?>" name="Expiration" id="Expiration" class="datepicker">
<input type="text" value="" name="altExpirationDate" id="altExpirationDate">
</td>
<td><button>Ajouter à un groupes</button></td>
<td></td>
<td></td>
</tr>
<tr><td colspan="2"><br /></td><td></td><tr>
<tr><td colspan="2"><input type="button" value="Supprimer" name="" id=""> <input type="button" value="Modifier" name="" id=""></td><td></td><tr>
<tr><td colspan="2"><input type="button" value="Supprimer" name="bdelete" id="bdelete"> <input type="submit" value="Modifier" name="bupdate" id="bupdate"></td><td></td><td></td><tr>
</table>
<br />
369,285 → 189,64
</div>
<div id="tabs-user">
<ul>
<li><a href="#tabs0">Infos personnelles</a></li>
<li><a href="#tabs01">Plage horaire</a></li>
<li><a href="#tabs1">Caractéristiques</a></li>
<li><a href="#tabs2">Etats</a></li>
<li><a href="#tabs3">Sessions ouvertes</a></li>
<li><a href="#tabs4">Connexion</a></li>
</ul>
<li><a href="#tabs1">Infos personnelles</a></li>
<li><a href="#tabs4">Caractéristiques</a></li>
<li><a href="#tabs2">Membre de</a></li>
<li><a href="#tabs5">Etats</a></li>
<li><a href="#tabs6">Sessions ouvertes</a></li>
<li><a href="#tabs7">Connexion</a></li>
</ul>
<div id="tabs01">
<style>
#testa td, #testa th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
width:50px;
vertical-align: bottom; /* Alignement vertical, le contenu des cellules sera placé en bas */
border: 1px solid black;
font-family: "Comic Sans MS", "Trebuchet MS", Times, "Times New Roman", serif;
text-align: center;
 
}
#testb td {
height: 10px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#testb th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#horaire-table th{
}
#horaire-table td{
}
#horaire-table thead, #horaire-table tfoot {
background-color:#D0E3FA;
/*background-image:url(monimage.jpg);*/
border:1px solid #6495ed;
}
#horaire-table tbody {
background-color:#FFFFFF;
/*border:1px solid #6495ed;*/
}
#horaire-table thead th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table tbody th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table td {
font-family:sans-serif;
font-size:80%;
border:1px dotted #6495ed;
/*border-style: dotted;*/
text-align:left;
width:9px;
}
.horaireIsSelected {
background-color:blue;
}
.horaireIsNotSelected {
background-color:#FFFFFF;
}
</style>
<div id="plage_horaire">
<table border=1 id='horaire-table' cellpadding='0' cellspacing='1'>
<thead>
<tr id="horaireRow">
<th>Horaires</th>
<th colspan="2">0</th><th colspan="2">1</th><th colspan="2">2</th><th colspan="2">3</th><th colspan="2">4</th><th colspan="2">5</th><th colspan="2">6</th><th colspan="2">7</th><th colspan="2">8</th><th colspan="2">9</th><th colspan="2">10</th><th colspan="2">11</th><th colspan="2">12</th>
 
<th colspan="2">13</th><th colspan="2">14</th><th colspan="2">15</th><th colspan="2">16</th><th colspan="2">17</th><th colspan="2">18</th><th colspan="2">19</th><th colspan="2">20</th><th colspan="2">21</th><th colspan="2">22</th><th colspan="2">23</th>
<tr>
</thead>
<tbody>
<tr id='MoRow'>
<th>Lundi</th>
 
<td id='Mo'><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
</tr>
<tr id='TuRow'>
<th>Mardi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
 
<tr id='WeRow'>
<th>Mercredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='ThRow'>
<th>Jeudi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='FrRow'>
<th>Vendredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SaRow'>
<th>Samedi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SoRow'>
<th>Dimanche</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
</tbody>
 
</table>
<br />
Legende :<br />
<style>
.autorise{
border:1px dotted #6495ed;
background-color:blue;
width: 20px;
}
.refuse{
border:1px dotted #6495ed;
background-color:#FFFFFF;
width: 20px;
}
 
</style>
<table>
<tr><td class="autorise"><br /></td><td>Autoris&eacute;</td></tr>
<tr><td class="refuse"><br /></td><td>Refus&eacute;</td></tr>
</table>
<br />
Période :<br />
<input type="radio" name="periode" value="0" onClick="no_limite();"> Aucune limite<br />
<input type="radio" name="periode" value="1" onClick="wk();"> En semaine uniquement<br />
<input type="radio" name="periode" value="2" onClick="we();"> Week end uniquement<br />
<input type="radio" name="periode" value="3" id="periode_perso" checked> Personalisé <br />
<br />
<button>Annuler</button><button id="button_test">Modifier</button>
<input type="text" name="test" id="test" size="255" value="">
 
<br />
<div id="tabs1">
<table class="ui-widget ui-widget-content" width="550">
<tr><td>Nom complet (NOM Prénom)</td><td><input type="text" name="Name" id="" size="50" value="<?php echo $user['name'];?>"></td><tr>
<tr><td>Mail</td><td><input type="text" name="Mail" id="Mail" size="50" value="<?php echo $user['mail'];?>"></td><tr>
<tr><td>Service</td><td><input type="text" name="Department" id="Department" size="50" value="<?php echo $user['department'];?>"></td><tr>
<tr><td>Téléphone personnel</td><td><input type="text" name="HomePhone" id="HomePhone" size="50" value="<?php echo $user['homephone'];?>"></td><tr>
<tr><td>Téléphone bureau</td><td><input type="text" name="WorkPhone" id="WorkPhone" size="50" value="<?php echo $user['workphone'];?>"></td><tr>
<tr><td>Téléphone mobile</td><td><input type="text" name="Mobile" id="Mobile" size="50" value="<?php echo $user['mobile'];?>"></td><tr>
<tr><td><br /></td><td></td></tr>
</table>
</div>
</div>
<div id="tabs0">
<table class="ui-widget ui-widget-content">
<tr><td>Nom complet (NOM Prénom)</td><td><input type="text" name="" id="" value="<?php echo $user['Name'];?>"></td><tr>
<tr><td>Mail</td><td><input type="text" name="email" id="email" value="<?php echo $user['Mail'];?>"></td><tr>
<tr><td>Service</td><td><input type="text" name="service" id="service" value="<?php echo $user['Department'];?>"></td><tr>
<tr><td>Téléphone personnel</td><td><input type="text" name="phone" id="phone" value="<?php echo $user['HomePhone'];?>"></td><tr>
<tr><td>Téléphone bureau</td><td><input type="text" name="bureau" id="bureau" value="<?php echo $user['WorkPhone'];?>"></td><tr>
<tr><td>Téléphone mobile</td><td><input type="text" name="mobile" id="mobile" value="<?php echo $user['Mobile'];?>"></td><tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
<div id="tabs2">
<button>Ajouter à un groupes</button>
<table id="groups_table" cellspacing="1" border="1" width="400">
<thead><tr><th width="20">#</th><th colspan="2">Groupes</th></tr></thead>
<tbody>
<tr><td width="20">#</td><td>testgroup</td><td width='10'><image src='<?php echo ALCASAR_ADMIN_PATH_IMG."/delete.png"; ?>'></td></tr>
<?php
$groups = array(); // faire une boucle pour les groupes
foreach ($groups as $group){
echo "<tr><td></td><td>".$group['groupname']."</td><td width='10'><image src='".ALCASAR_ADMIN_PATH_IMG."/delete.png'></td> </tr>";
} ?>
</tbody>
</table>
</div>
<div id="tabs1">
<table class="ui-widget ui-widget-content">
<div id="tabs4">
<table class="ui-widget ui-widget-content" width="550">
<!--thead><tr class="ui-widget-header"><td></td><td></td></tr></thead-->
<tbody>
<tr><td>Nombre de session simultanée</td><td><input type="text" value="" name="Simultaneous-Use0" id=""></td></tr>
<tr><td>Durée limite d'une session</td><td><input type="hidden" name="Session-Timeout0" id="" value=""><input type="text" value="" name="Session-Timeout0_h" id="" size="4">h<input type="text" value="" name="Session-Timeout0_mm" id="" size="2">mm<input type="text" value="" name="Session-Timeout0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite journalière</td><td><input type="hidden" name="Max-Daily-Session0" id="" value=""><input type="text" value="" name="Max-Daily-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Daily-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Daily-Session0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite mensuelle</td><td><input type="hidden" name="Max-Monthly-Session0" id="" value=""><input type="text" value="" name="Max-Monthly-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Monthly-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Monthly-Session0_s" id="" size="2">s</td></tr>
<tr><td>Période hebdomadaire</td><td><input type="text" value="" name="Login-Time0" id=""></td></tr>
<tr><td>Nombre d'octets max. en émission (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Input-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. en réception (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Output-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. total transmit (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Total-Octets0" id=""></td></tr>
<tr><td>Bande passante montante max. (en kbits/seconde) </td><td><input type="text" value="" name="ChilliSpot-Bandwidth-Max-Up0" id=""></td></tr>
<tr><td>Bande passante descendante max. (en kbits/seconde)</td><td><input type="text" value="" name="ChilliSpot-Bandwidth-Max-Down0" id=""></td></tr>
<tr><td>URL de redirection</td><td><input type="text" value="" name="" id=""></td></tr>
<tr><td>Nombre de session simultanée</td><td><input type="text" value="<?php echo $user['simultaneous-use']; ?>" name="Simultaneous-Use" id=""></td></tr>
<tr><td>Durée limite d'une session</td><td><input type="hidden" name="Session-Timeout" id="" value=""><input type="text" value="" name="Session-Timeout_h" id="" size="4">h<input type="text" value="" name="Session-Timeout_mm" id="" size="2">mm<input type="text" value="" name="Session-Timeout_s" id="Session-Timeout_s" size="2">s</td></tr>
<tr><td>Durée limite journalière</td><td><input type="hidden" name="Max-Daily-Session" id="" value=""><input type="text" value="" name="Max-Daily-Session_h" id="" size="4">h<input type="text" value="" name="Max-Daily-Session_mm" id="" size="2">mm<input type="text" value="" name="Max-Daily-Session_s" id="Max-Daily-Session_s" size="2">s</td></tr>
<tr><td>Durée limite mensuelle</td><td><input type="hidden" name="Max-Monthly-Session" id="" value=""><input type="text" value="" name="Max-Monthly-Session_h" id="" size="4">h<input type="text" value="" name="Max-Monthly-Session_mm" id="" size="2">mm<input type="text" value="" name="Max-Monthly-Session_s" id="Max-Monthly-Session_s" size="2">s</td></tr>
<tr><td>Période hebdomadaire</td><td><input type="text" value="<?php echo $user['login-time']; ?>" name="Login-Time" id="Login-Time"></td></tr>
<tr><td>Nombre d'octets max. en émission (en octets)</td><td><input type="text" value="<?php echo $user['chillispot-max-input-octets']; ?>" name="ChilliSpot-Max-Input-Octets" id="ChilliSpot-Max-Input-Octets"></td></tr>
<tr><td>Nombre d'octets max. en réception (en octets)</td><td><input type="text" value="<?php echo $user['chillispot-max-output-octets']; ?>" name="ChilliSpot-Max-Output-Octets" id="ChilliSpot-Max-Output-Octets"></td></tr>
<tr><td>Nombre d'octets max. total transmit (en octets)</td><td><input type="text" value="<?php echo $user['chillispot-max-total-octets']; ?>" name="ChilliSpot-Max-Total-Octets" id="ChilliSpot-Max-Total-Octets"></td></tr>
<tr><td>Bande passante montante max. (en kbits/seconde) </td><td><input type="text" value="<?php echo $user['chillispot-bandwidth-max-up']; ?>" name="ChilliSpot-Bandwidth-Max-Up" id="ChilliSpot-Bandwidth-Max-Up"></td></tr>
<tr><td>Bande passante descendante max. (en kbits/seconde)</td><td><input type="text" value="<?php echo $user['chillispot-bandwidth-max-down']; ?>" name="ChilliSpot-Bandwidth-Max-Down" id="ChilliSpot-Bandwidth-Max-Down"></td></tr>
<tr><td>URL de redirection</td><td><input type="text" value="<?php echo $user['wispr-redirection-url']; ?>" name="WISPr-Redirection-URL" id="WISPr-Redirection-URL"></td></tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
</tbody>
</table>
</div>
<div id="tabs2"></div>
<div id="tabs3">
<div id="tabs5"></div>
<div id="tabs6">
Nb. sessions ouvertes : X<br />
<br />
<button>Déconnectet toutes les sessions ouvertes</button>
660,8 → 259,9
</tbody>
</table>
</div>
<div id="tabs4"></div>
<div id="tabs7"></div>
</div>
</form>
<div>
 
</body>
/web/admin/filters_domains.php
3,12 → 3,40
 
 
*/
/********************************************************************
* FICHIERS REQUIS *
*********************************************************************/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
/********************************************************************
* APPLIQUATION DES MISES A JOURS *
*********************************************************************/
 
/********************************************************************
* CHOIX DE LA LANGUE *
*********************************************************************/
 
/********************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* TEST DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* PARSING DES FICHIERS DE CONFIGURATION *
*********************************************************************/
 
/********************************************************************
* AFFICHAGE DE LA PAGE *
*********************************************************************/
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Filters domains page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
/web/admin/services.php
1,4 → 1,5
<?php
/* written by steweb57 */
/*
 
 
5,10 → 6,126
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
 
 
# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
$l_services_title = "Configuration des services";
$l_main_services = "Services réseau principaux";
$l_opt_services = "Services réseau optionnels";
 
$l_service_title = "Nom du service";
$l_service_start = "D&eacute;marrer";
$l_service_stop = "Arr&ecirc;ter";
$l_service_restart = "Red&eacute;marrer";
$l_service_status = "Status";
$l_service_action = "Actions";
$l_enable = "actif";
$l_disable = "inactif";
$l_radiusd = "Serveur d'authentification et d'autorisation";
$l_chilli = "Passerelle d'interception";
$l_dansguardian = "Filtre d'URL et de contenu WEB";
$l_mysqld = "Serveur de la base de données usager";
$l_squid = "Serveur de cache WEB";
$l_dnsmasq = "Serveur DNS et filtre de domaine";
$l_httpd = "Serveur WEB (Centre de Gestion d'ALCASAR)";
$l_havp = "Filtre antivirus WEB";
$l_sshd = "Accàs sécurisée à distance";
$l_freshclam = "Mise à jour de l'antivirus toutes les 2 heures";
$l_ntpd = "Service de mise à l'heure réseau";
} else {
$l_services_title = "Configuration des services"; // a modifier
$l_main_services = "Main network services";
$l_opt_services = "Optional network services";
 
$l_service_title = "Service name";
$l_service_start = "Start";
$l_service_stop = "Stop";
$l_service_restart = "Restart";
$l_service_status = "Status";
$l_service_action = "Actions";
$l_enable = "enable";
$l_disable = "disable";
$l_radiusd = "Authentication and authorisation serveur";
$l_chilli = "Interception gateway";
$l_dansguardian = "URL and WEB content filter";
$l_mysqld = "User database server";
$l_squid = "Proxy Cache WEB";
$l_dnsmasq = "DNS and domain name filter";
$l_httpd = "WEB server (ALCASAR Control Center)";
$l_havp = "WEB antivirus filter";
$l_sshd = "Secure remote access";
$l_freshclam = "WEB antivirus update (every 2 hours)";
$l_ntpd = "Network time";
}
 
//fonction pour faire une action (start,stop,restart) sur un service
function serviceExec($service, $action){
if (($action == "start")||($action == "stop")||($action == "restart")){
exec("sudo /sbin/service $service $action",$retval, $retstatus);
if ($service == "sshd"){
if ($action == "start"){ exec("sudo /sbin/chkconfig --add $service");}
if ($action == "stop"){ exec("sudo /sbin/chkconfig --del $service");}
}
return $retstatus;
} else {
return false;
}
}
//fonction définissant le status d'un service
//(en fonction de la présence d'un mot clé dans la valeur de status)
function checkServiceStatus($service, $strMatch){
$response = false;
exec("sudo /sbin/service $service status",$retval);
foreach( $retval as $val ) {
if (strpos($val,$strMatch)){
$response = true;
break;
}
}
return $response;
}
 
//-------------------------------
// Les actions sur un service
//-------------------------------
//sécurité sur les actions à réaliser
$autorizeService = array("radiusd","chilli","dansguardian","mysqld","squid","dnsmasq","httpd","havp","sshd","freshclam","ntpd");
$autorizeAction = array("start","stop","restart");
 
if (isset($_GET['service'])&&(in_array($_GET['service'], $autorizeService))) {
if (isset($_GET['action'])&&(in_array($_GET['action'], $autorizeAction))) {
$execStatus = serviceExec($_GET['service'], $_GET['action']);
// execStatus non exploité
}
}
//-------------------------------
//recherche du status des services
//-------------------------------
$MainServiceStatus = array();
$MainServiceStatus['radiusd'] = checkServiceStatus("radiusd","pid");
$MainServiceStatus['chilli'] = checkServiceStatus("chilli","pid");
$MainServiceStatus['dansguardian'] = checkServiceStatus("dansguardian","pid");
$MainServiceStatus['mysqld'] = checkServiceStatus("mysqld","OK");
$MainServiceStatus['squid'] = checkServiceStatus("squid","pid");
$MainServiceStatus['dnsmasq'] = checkServiceStatus("dnsmasq","pid");
$MainServiceStatus['httpd'] = checkServiceStatus("httpd","pid");
$MainServiceStatus['havp'] = checkServiceStatus("havp","pid");
 
$OptServiceStatus = array();
$OptServiceStatus['sshd'] = checkServiceStatus("sshd","pid");
$OptServiceStatus['freshclam'] = checkServiceStatus("freshclam","pid");
$OptServiceStatus['ntpd'] = checkServiceStatus("ntpd","pid");
 
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Services page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
27,6 → 144,60
</script>
</head>
<body>
<h1>SERVICES PAGE</h1>
<div class="title">
<h3 class="ui-widget-header ui-corner-all"><?php echo $l_services_title; ?></h3>
</div>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><th><?php echo $l_main_services; ?></th></tr>
</table>
<table width="100%" border=0 cellspacing=0 cellpadding=0 class="ui-widget ui-widget-content">
<tr align="center" class="ui-widget-header"><td><?php echo $l_service_status;?></td><td colspan="2"><?php echo $l_service_title;?></td><td colspan="3"><?php echo $l_service_action;?></td></tr>
<tr align="center">
<?php foreach( $MainServiceStatus as $servicename => $statusok ) { ?>
<tr>
<?php if ($statusok) { ?>
<td align="center"><img src="../images/state_ok.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ok; ?>"></td>
<td align="center"><?php $comment="l_$servicename"; echo "<b>$servicename</b></td><td>${$comment}" ;?> </td>
<td width="80" align="center">---</td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=stop&service=$servicename\"> $l_service_stop";?></a></td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=restart&service=$servicename\"> $l_service_restart";?></a></td>
<?php } else { ?>
<td align="center"><img src="../images/state_error.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ko ?>"></td>
<td align="center"><?php $comment="l_$servicename"; echo "<b>$servicename</b></td><td>${$comment}" ;?> </td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=start&service=$servicename\"> $l_service_start";?></a></td>
<td width="80" align="center">---</td>
<td width="80" align="center">---</td>
<?php } ?>
</tr>
<?php } ?>
</td></tr>
</table>
<br />
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr><th><?php echo $l_opt_services; ?></th></tr>
</table>
<table width="100%" border=0 cellspacing=0 cellpadding=0 class="ui-widget ui-widget-content">
<tr align="center" class="ui-widget-header"><td><?php echo $l_service_status;?></td><td colspan="2"><?php echo $l_service_title;?></td><td colspan="3"><?php echo $l_service_action;?></td></tr>
<tr align="center">
<?php foreach( $OptServiceStatus as $servicename => $statusok ) { ?>
<tr>
<?php if ($statusok) { ?>
<td align="center"><img src="../images/state_ok.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ok; ?>"></td>
<td align="center"><?php $comment="l_$servicename"; echo "<b>$servicename</b></td><td>${$comment}" ;?> </td>
<td width="80" align="center">---</td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=stop&service=$servicename\"> $l_service_stop";?></a></td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=restart&service=$servicename\"> $l_service_restart";?></a></td>
<?php } else { ?>
<td align="center"><img src="../images/state_error.gif" width="15" height="15" alt="<?php echo $l_service_status_img_ko ?>"></td>
<td align="center"><?php $comment="l_$servicename"; echo "<b>$servicename</b></td><td>${$comment}" ;?> </td>
<td width="80" align="center"><a href="<?php echo $_server['php_self']."?action=start&service=$servicename\"> $l_service_start";?></a></td>
<td width="80" align="center">---</td>
<td width="80" align="center">---</td>
<?php } ?>
</tr>
<?php } ?>
</td></tr>
</table>
</body>
</html>
/web/admin/old/user.php
0,0 → 1,730
<?php
/*
 
 
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
//include(ALCASAR_ADMIN_PATH_LIB.'/user.class.php');
include(ALCASAR_ADMIN_PATH_LIB.'/radiusMysqlUser.class.php');
 
if (isset($_GET['username'])){
$username = $_GET['username'];
} else {
$username = '';
}
 
$ouser = new radiusMysqlUser();
$ouser->load($username, true);
$user = $ouser->get();
$attributes = $ouser->getAttribute();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Edit <?php echo $options['username']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!--link rel="stylesheet" href="../css/style.css" type="text/css"-->
<!-- include JQUERY UI CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/ui-lightness/jquery-ui-1.8.10.custom.css">
<!-- include custom page CSS -->
 
<!-- include JQUERY -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.5.min.js"></script>
<!-- include JQUERY UI -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
var horaireFlag = false;
var colFlag = false;
var rowFlag = false;
var no_limite_flag = false;
$(function(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected');
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
//Time-limite
var Time_limite = '';
parseHoraire(Time_limite);
// Tabs
$('#tabs-user').tabs();
// datepicker
$( ".datepicker" ).datepicker();
// button
$( "button, input:submit, input:button, input:reset").button();
$('#horaire-table').mouseleave(function() {
horaireFlag = false;
colFlag = false;
rowFlag = false;
});
// selection à partir du calendrier
$('#horaire-table').find('tbody').mouseleave(function() {
horaireFlag = false;
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mousedown(function() {
horaireFlag = true;
colorize_body($(this));
});
$('#horaire-table').find('tbody > tr > td').mouseup(function() {
horaireFlag = false;
});
$('#horaire-table').find('tbody > tr > td').mouseover(function() {
if (horaireFlag === true){
colorize_body($(this));
}
});
// selection à partir de l'entête de la 1er colone
$('#horaire-table').find('thead > tr > th:eq(0)').mousedown(function() {
if (no_limite_flag){
no_limite();
no_limite_flag = false;
} else {
all_limite();
no_limite_flag = true;
}
});
// selection à partir de l'entête de colone
$('#horaire-table').find('thead > tr > th').mousedown(function() {
colFlag = true;
head_colorize_body($(this))
});
$('#horaire-table').find('thead > tr > th').mouseup(function() {
colFlag = false;
});
$('#horaire-table').find('thead').mouseleave(function() {
colFlag = false;
});
$('#horaire-table').find('thead > tr > th').mouseover(function() {
if (colFlag == true){
head_colorize_body($(this))
}
});
// selection à partir de l'entête de ligne
//.mouseleave event is allready defined
$('#horaire-table').find('tbody > tr > th').mousedown(function() {
rowFlag = true;
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
});
$('#horaire-table').find('tbody > tr > th').mouseup(function() {
rowFlag = false;
});
$('#horaire-table').find('tbody > tr > th').mouseover(function() {
if (rowFlag == true){
selectedrow = $(this).parent();
row_colorize_body(selectedrow);
}
});
function calcule_plage_jour(horaires){
var d, f, i, deb, tmp;
deb = true;
tmp = new Array();
for (i=0 ; i<=47 ; i++) {
if ( jQuery.inArray(i, horaires) !== -1){
if (deb){
d = i;
deb = false;
}
if (i == 47){
f = i;
tmp.push(new Array(d,f));
deb = true;
}
} else {
if (!(deb)){
f = eval(i-1);
tmp.push(new Array(d,f));
deb = true;
}
}
}
return tmp;
}
function parsePlage(plage){
alert(plage[0]);
for (i=0 ; i < plage.length-1 ; i++){
deb = plage[i][0];
fin = plage[i][1];
debh = eval(deb/2);
alert(deb);
if (eval(deb%2) == 0){
debm = "00";
} else {
debm = "30";
}
deb = debh + debm;
finh = parseInt(eval(fin/2));
if (eval(fin%2) == 0){
finm = "00";
} else {
finm = "30";
}
fin = finh + finm;
}
return deb+fin;
}
//Wk2305-0855,Sa,Su2305-1655
$('#button_test').click(function(){
a = new Array();
mo = new Array();
tu = new Array();
we = new Array();
th = new Array();
fr = new Array();
sa = new Array();
so = new Array();
plageMo = new Array();
/*
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, td){
if ($(td).hasClass('horaireIsSelected')) a.push(index);
})
*/
tds = $('#horaire-table').find('tbody > tr > td').get();
$(tds).each( function(index, tda){
if ($(tda).hasClass('horaireIsSelected')) a.push(index);
});
td_mo = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_mo).each( function(index, td_mo_a){
if ($(td_mo_a).hasClass('horaireIsSelected')) mo.push(index);
});
//alert(mo);
td_tu = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_tu).each( function(index, td_tu_a){
if ($(td_tu_a).hasClass('horaireIsSelected')) tu.push(index);
});
//alert(tu);
td_we = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_we).each( function(index, td_we_a){
if ($(td_we_a).hasClass('horaireIsSelected')) we.push(index);
});
//alert(we);
td_th = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_th).each( function(index, td_th_a){
if ($(td_th_a).hasClass('horaireIsSelected')) th.push(index);
});
//alert(th);
td_fr = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_fr).each( function(index, td_fr_a){
if ($(td_fr_a).hasClass('horaireIsSelected')) fr.push(index);
});
//alert(fr);
td_sa = $('#horaire-table').find('tbody > tr:eq(1) > td').get();
$(td_sa).each( function(index, td_sa_a){
if ($(td_sa_a).hasClass('horaireIsSelected')) sa.push(index);
});
//alert(sa);
td_so = $('#horaire-table').find('tbody > tr:eq(0) > td').get();
$(td_so).each( function(index, td_so_a){
if ($(td_so_a).hasClass('horaireIsSelected')) so.push(index);
});
//alert(so);
plageMo = calcule_plage_jour(mo);
plageTu = calcule_plage_jour(tu);
plageWe = calcule_plage_jour(we);
plageTh = calcule_plage_jour(th);
plageFr = calcule_plage_jour(fr);
plageSa = calcule_plage_jour(sa);
plageSo = calcule_plage_jour(so);
//alert(plage);
//alert(a);
$('#test').val(parsePlage(plageMo));
//la suite ?
});
});
//fonctions de sélection/déselection
function row_colorize_body(row_ref){
if (row_ref.find('td').hasClass('horaireIsNotSelected') || !(row_ref.find('td').hasClass('horaireIsSelected'))){
row_ref.find('td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
row_ref.find('td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function colorize_body(td_ref){
if (td_ref.hasClass('horaireIsNotSelected') || !(td_ref.hasClass('horaireIsSelected'))){
td_ref.removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
td_ref.removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
$('#periode_perso').attr("checked","checked");
}
function head_colorize_body(head_ref){
horaire_head = false;
var index = head_ref.index();
index = (parseInt(index) - 1) *2;
index2 = index + 1;
if (head_ref.hasClass('headSelect')){
head_ref.removeClass('headSelect').addClass('headNoSelect');
horaire_head = false;
} else {
head_ref.removeClass('headNoSelect').addClass('headSelect');
horaire_head = true;
}
var rows = $('#horaire-table').find('tbody > tr').get();
$.each(rows, function() {
if (horaire_head){
$(this).find('td:eq('+index+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
} else {
$(this).find('td:eq('+index+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
$(this).find('td:eq('+index2+')').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
});
$('#periode_perso').attr("checked","checked");
}
//fonctions de sélection/déselection des profils pre-définis
function no_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function all_limite(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');
}
function wk(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected').addClass('horaireIsNotSelected');;
$('#horaire-table').find('tbody > tr:lt(5) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
function we(){
$('#horaire-table').find('tbody > tr > td').removeClass('horaireIsSelected');
$('#horaire-table').find('tbody > tr:gt(4) > td').removeClass('horaireIsNotSelected').addClass('horaireIsSelected');
}
//parse Time-limite et affiche le résultat dans le calendrier
function parseHoraire(Time_limite){
if (Time_limite == ''){
no_limite();
return;
}
}
</script>
<style type="text/css">
.datepicker{
background:url(../images/calendrier.gif) no-repeat 110px 3px;
}
</style>
</head>
<body>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">Gestion des usagers</span>
</div>
<div id="usager">
<div id="">
<br />
<table class="ui-widget ui-widget-content">
<tr><td>Usager :</td><td><input type="text" name="User" id="User" value="<?php echo $username; ?>" ></td><td></td><tr>
<tr><td>Mot de passe :</td><td><input type="text" name="User-mdp" id="User-mdp" value="********"></td><td><button>Générer MDP</button></td><tr>
<tr><td>Date d'expiration :</td><td><input type="text" value="" name="" id="" class="datepicker"></td><td></td></tr>
<tr>
<td>Membre de :</td>
<td>
<table width="100%">
<?php
$users = array(); // faire une boucle pour les groupes
foreach ($users as $user){
echo "<tr> <td></td> <td width='10'><image src='".ALCASAR_ADMIN_PATH_IMG."/delete.png'></td> </tr>";
} ?>
</table>
</td>
<td><button>Ajouter à un groupes</button></td>
</tr>
<tr><td colspan="2"><br /></td><td></td><tr>
<tr><td colspan="2"><input type="button" value="Supprimer" name="" id=""> <input type="button" value="Modifier" name="" id=""></td><td></td><tr>
</table>
<br />
</div>
<div id="tabs-user">
<ul>
<li><a href="#tabs0">Infos personnelles</a></li>
<li><a href="#tabs01">Plage horaire</a></li>
<li><a href="#tabs1">Caractéristiques</a></li>
<li><a href="#tabs2">Etats</a></li>
<li><a href="#tabs3">Sessions ouvertes</a></li>
<li><a href="#tabs4">Connexion</a></li>
</ul>
<div id="tabs01">
<style>
#testa td, #testa th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
width:50px;
vertical-align: bottom; /* Alignement vertical, le contenu des cellules sera placé en bas */
border: 1px solid black;
font-family: "Comic Sans MS", "Trebuchet MS", Times, "Times New Roman", serif;
text-align: center;
 
}
#testb td {
height: 10px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#testb th {
height: 5px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
}
#horaire-table th{
}
#horaire-table td{
}
#horaire-table thead, #horaire-table tfoot {
background-color:#D0E3FA;
/*background-image:url(monimage.jpg);*/
border:1px solid #6495ed;
}
#horaire-table tbody {
background-color:#FFFFFF;
/*border:1px solid #6495ed;*/
}
#horaire-table thead th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table tbody th {
font-family:monospace;
border:1px solid #6495ed;
padding:3px;
background-color:#EFF6FF;
/*width:25%;*/
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#horaire-table td {
font-family:sans-serif;
font-size:80%;
border:1px dotted #6495ed;
/*border-style: dotted;*/
text-align:left;
width:9px;
}
.horaireIsSelected {
background-color:blue;
}
.horaireIsNotSelected {
background-color:#FFFFFF;
}
</style>
<div id="plage_horaire">
<table border=1 id='horaire-table' cellpadding='0' cellspacing='1'>
<thead>
<tr id="horaireRow">
<th>Horaires</th>
<th colspan="2">0</th><th colspan="2">1</th><th colspan="2">2</th><th colspan="2">3</th><th colspan="2">4</th><th colspan="2">5</th><th colspan="2">6</th><th colspan="2">7</th><th colspan="2">8</th><th colspan="2">9</th><th colspan="2">10</th><th colspan="2">11</th><th colspan="2">12</th>
 
<th colspan="2">13</th><th colspan="2">14</th><th colspan="2">15</th><th colspan="2">16</th><th colspan="2">17</th><th colspan="2">18</th><th colspan="2">19</th><th colspan="2">20</th><th colspan="2">21</th><th colspan="2">22</th><th colspan="2">23</th>
<tr>
</thead>
<tbody>
<tr id='MoRow'>
<th>Lundi</th>
 
<td id='Mo'><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
</tr>
<tr id='TuRow'>
<th>Mardi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
 
<tr id='WeRow'>
<th>Mercredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='ThRow'>
<th>Jeudi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='FrRow'>
<th>Vendredi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SaRow'>
<th>Samedi</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
<tr id='SoRow'>
<th>Dimanche</th>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
 
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
<td id=''><br /></td><td id=''><br /></td><td id=''><br /></td><td id=''><br /></td>
</tr>
</tbody>
 
</table>
<br />
Legende :<br />
<style>
.autorise{
border:1px dotted #6495ed;
background-color:blue;
width: 20px;
}
.refuse{
border:1px dotted #6495ed;
background-color:#FFFFFF;
width: 20px;
}
 
</style>
<table>
<tr><td class="autorise"><br /></td><td>Autoris&eacute;</td></tr>
<tr><td class="refuse"><br /></td><td>Refus&eacute;</td></tr>
</table>
<br />
Période :<br />
<input type="radio" name="periode" value="0" onclick="no_limite();"> Aucune limite<br />
<input type="radio" name="periode" value="1" onclick="wk();"> En semaine uniquement<br />
<input type="radio" name="periode" value="2" onclick="we();"> Week end uniquement<br />
<input type="radio" name="periode" value="3" id="periode_perso" checked> Personalisé <br />
<br />
<button>Annuler</button><button id="button_test">Modifier</button>
<input type="text" name="test" id="test" size="255" value="">
 
<!--input type='text' value='' id='debugtest'--><br />
<!--
<table>
<tr valign="top"><td>
<table id="testb">
<tr><th><br /></th><tr>
<tr><td>00:00</td><tr>
<tr><td>00:30</td><tr>
<tr><td>01:00</td><tr>
<tr><td>01:30</td><tr>
<tr><td>02:00</td><tr>
<tr><td>02:30</td><tr>
<tr><td>03:00</td><tr>
<tr><td>03:30</td><tr>
<tr><td>04:00</td><tr>
<tr><td>04:30</td><tr>
<tr><td>05:00</td><tr>
<tr><td>05:30</td><tr>
<tr><td>06:00</td><tr>
<tr><td>06:30</td><tr>
<tr><td>07:00</td><tr>
<tr><td>07:30</td><tr>
<tr><td>08:00</td><tr>
<tr><td>08:30</td><tr>
<tr><td>09:00</td><tr>
<tr><td>09:30</td><tr>
</table>
</td>
<td>
<table id="testa" border="1" cellpadding='0' cellspacing='1'>
<thead>
<tr><th>Lundi</th><th>Mardi</th><th>Mercredi</th><th>Jeudi</th><th>Vendredi</th><th>Samedi</th><th>Dimanche</th></tr>
</thead>
<tbody>
<tr><td>a&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td><td><br /></td></tr>
</body>
</table>
</td></tr>
</table>
<table id="test">
<thead>
<tr><th></th><th>0</th><th>.</th><th>1</th><th>.</th><th>2</th><th>.</th><th>3</th></tr>
</thead>
<tbody>
<tr><td>Lundi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Mardi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Mercredi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Jeudi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Vendredi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Samedi</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tr><td>Dimanche</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><tr>
<tbody>
</table>
-->
</div>
</div>
<div id="tabs0">
<table class="ui-widget ui-widget-content">
<tr><td>Nom complet (NOM Prénom)</td><td><input type="text" name="" id="" value="<?php echo $user['Name'];?>"></td><tr>
<tr><td>Mail</td><td><input type="text" name="email" id="email" value="<?php echo $user['Mail'];?>"></td><tr>
<tr><td>Service</td><td><input type="text" name="service" id="service" value="<?php echo $user['Department'];?>"></td><tr>
<tr><td>Téléphone personnel</td><td><input type="text" name="phone" id="phone" value="<?php echo $user['HomePhone'];?>"></td><tr>
<tr><td>Téléphone bureau</td><td><input type="text" name="bureau" id="bureau" value="<?php echo $user['WorkPhone'];?>"></td><tr>
<tr><td>Téléphone mobile</td><td><input type="text" name="mobile" id="mobile" value="<?php echo $user['Mobile'];?>"></td><tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
</table>
</div>
<div id="tabs1">
<table class="ui-widget ui-widget-content">
<!--thead><tr class="ui-widget-header"><td></td><td></td></tr></thead-->
<tbody>
<tr><td>Nombre de session simultanée</td><td><input type="text" value="" name="Simultaneous-Use0" id=""></td></tr>
<tr><td>Durée limite d'une session</td><td><input type="hidden" name="Session-Timeout0" id="" value=""><input type="text" value="" name="Session-Timeout0_h" id="" size="4">h<input type="text" value="" name="Session-Timeout0_mm" id="" size="2">mm<input type="text" value="" name="Session-Timeout0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite journalière</td><td><input type="hidden" name="Max-Daily-Session0" id="" value=""><input type="text" value="" name="Max-Daily-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Daily-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Daily-Session0_s" id="" size="2">s</td></tr>
<tr><td>Durée limite mensuelle</td><td><input type="hidden" name="Max-Monthly-Session0" id="" value=""><input type="text" value="" name="Max-Monthly-Session0_h" id="" size="4">h<input type="text" value="" name="Max-Monthly-Session0_mm" id="" size="2">mm<input type="text" value="" name="Max-Monthly-Session0_s" id="" size="2">s</td></tr>
<tr><td>Période hebdomadaire</td><td><input type="text" value="" name="Login-Time0" id=""></td></tr>
<tr><td>Nombre d'octets max. en émission (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Input-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. en réception (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Output-Octets0" id=""></td></tr>
<tr><td>Nombre d'octets max. total transmit (en octets)</td><td><input type="text" value="" name="ChilliSpot-Max-Total-Octets0" id=""></td></tr>
<tr><td>Bande passante montante max. (en kbits/seconde) </td><td><input type="text" value="" name="ChilliSpot-Bandwidth-Max-Up0" id=""></td></tr>
<tr><td>Bande passante descendante max. (en kbits/seconde)</td><td><input type="text" value="" name="ChilliSpot-Bandwidth-Max-Down0" id=""></td></tr>
<tr><td>URL de redirection</td><td><input type="text" value="" name="" id=""></td></tr>
<tr><td><br /></td><td></td></tr>
<tr><td><button>Annuler</button><button>Modifier</button></td><td></td></tr>
</tbody>
</table>
</div>
<div id="tabs2"></div>
<div id="tabs3">
Nb. sessions ouvertes : X<br />
<br />
<button>Déconnectet toutes les sessions ouvertes</button>
<br /><br />
<table class="ui-widget ui-widget-content">
<thead><tr class="ui-widget-header"><td width="50">#</td><td width="100">MAC</td><td width="100">IP</td><td>Hôte</td><td>Date/heure</td><td>-</td></tr></thead>
<tbody>
<tr><td>1</td><td>exemple</td><td>exemple</td><td>exemple</td><td>exemple</td><td><a href="">déconnecter</a></td></tr>
<tr><td>2</td><td>exemple</td><td>exemple</td><td>exemple</td><td>exemple</td><td><a href="">déconnecter</a></td></tr>
</tbody>
</table>
</div>
<div id="tabs4"></div>
</div>
<div>
 
</body>
</body>
/web/admin/old/auth_users.php.old
0,0 → 1,608
<?php
/*
 
 
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Users page</title>
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/ui-lightness/jquery-ui-1.8.10.custom.css">
<!-- include tablesorter CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/tablesorter-blue/style.css">
 
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/datatables/css/demo_table.css">
<!-- include custom page CSS -->
<style type="text/css">
div#users-contain { width: 450px; margin: 20px 0; }
div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
div#users-contain table th { ui-widget-header }
</style>
<!-- include JQUERY -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.5.min.js"></script>
<!-- include JQUERY UI -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.tablesorter.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.tablesorter.pager.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.quicksearch.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.dataTables.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
$(document).ready(function(){
// Tabs
$('#tabs-users').tabs();
// buttons
$( "button, input:submit, input:button, input:reset").button();
// Users table
$("#test")
.tablesorter({widthFixed: true, widgets: ['zebra']})
.tablesorterPager({container: $("#pager")});
$('input#searchtest').quicksearch('table#test tbody tr');
$('#example').dataTable(
/*{
"bPaginate": true, // Active la pagination (10 par défaut)
"bLengthChange":true, // Affiche le choix du nombre de résultat affiché
"bFilter": true, // Affiche le champ de recherche (filtre)
"bSort": true, // Active la possibilité de trie
"bInfo": true, // Affiche le nombre de résultat affiché et total
"bAutoWidth": true // ?
}*/
{
"oLanguage": {
/*
//"sUrl": "media/language/de_DE.txt"
"sProcessing": "Bitte warten...",
"sLengthMenu": "_MENU_ Einträge anzeigen",
"sZeroRecords": "Keine Einträge vorhanden.",
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
"sInfoPostFix": "",
"sSearch": "Suchen",
"sUrl": "",
"oPaginate": {
"sFirst": "Erster",
"sPrevious": "Zurück",
"sNext": "Nächster",
"sLast": "Letzter"
}
*/
"sProcessing": "Patientez...",
"sLengthMenu": "Afficher _MENU_ enregistrements",
"sZeroRecords": "Aucun enregistrement disponible.",
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
"sInfoPostFix": "",
"sSearch": "Recherche : ",
"sUrl": "",
"oPaginate": {
"sFirst": "Première page",
"sPrevious": "Page précédente",
"sNext": "Page suivante",
"sLast": "Dernière page"
}
}
/*
{
"sProcessing": "Bitte warten...",
"sLengthMenu": "_MENU_ Einträge anzeigen",
"sZeroRecords": "Keine Einträge vorhanden.",
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
"sInfoPostFix": "",
"sSearch": "Suchen",
"sUrl": "",
"oPaginate": {
"sFirst": "Erster",
"sPrevious": "Zurück",
"sNext": "Nächster",
"sLast": "Letzter"
}
}
*/
}
);
});
</script>
</head>
<body>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">Gestion des usagers</span>
</div>
<br />
<div id="tabs-users">
<ul>
<li><a href="#tabs1">Usagers</a></li>
<li><a href="#tabs2">Vouchers</a></li>
<li><a href="#tabs3">Profils</a></li>
</ul>
<div id="tabs1">
<div>
Un usager est un utilisateur standard de votre réseau de consultation.<br>
<font color="red">ATTENTION POUR DEMONSTRATION DES OPTIONS A UTILISER (exemple avec bug)</font>
</div>
<table id="example" cellspacing="1" class="tablesorter" border="0" width="100%">
<thead>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
</tbody>
</table>
<br>
<div id="rechercher_usager_box" style="float:left;">
<form name="searchform">
<label for="searchtest">Recherche :</label>
<input type="text" id="searchtest" value="">
<a href="" title="Recherche avancée">Avancée</a>
</form>
</div>
<div style="float:right;">
<form name="searchform">
<input type="button" value="Nouvel usager">
</form>
</div>
<table id="test" cellspacing="1" class="tablesorter" border="0" width="100%">
<thead>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
<tr>
<td>1</td>
<td>User1</td>
<td>Dupond Jean</td>
<td>01/12/2011</td>
</tr>
<tr>
<td>2</td>
<td>User2</td>
<td>Smith John</td>
<td>20/06/2011</td>
</tr>
<tr>
<td>3</td>
<td>User3</td>
<td>monsieur anonyme</td>
<td>30/07/2011</td>
</tr>
</tbody>
</table>
<div id="pager" class="pager">
<form>
<img src="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/first.png" class="first"/>
<img src="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/prev.png" class="prev"/>
<input type="text" class="pagedisplay" size="5"/>
<img src="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/next.png" class="next"/>
<img src="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/last.png" class="last"/>
<select class="pagesize">
<option selected="selected" value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
</select>
</form>
</div>
<br><br><br>
</div>
<div id="tabs2">
<div>
Un "Voucher" est un compte d'accès de type "pré-payé" qui dépend d'une durée d'utilisation ou d'un délai dans le temps.
</div>
</div>
<div id="tabs3">
<div>
Afin de gagner du temps dans la création des comptes usagers et vouchers, vous avez la possibilité de prédéfinir des profils de création de compte.
</div>
</div>
</div>
</body>
</html>
/web/admin/old/example.class.php
0,0 → 1,33
<?php
/*
 
*/
class example
{
// public properties
 
// private properties
 
// protected properties
 
// Class constructor
public function __construct()
{
 
}
// Class destructor
public function __destruct()
{
 
}
// public methods
// private methods
// protected methods
}
?>
/web/admin/old/users.php
0,0 → 1,253
<?php
/*
 
 
*/
require_once('includes/defines.inc.php');
require_once(ALCASAR_ADMIN_PATH_INC.'/session.inc.php');
//include(ALCASAR_ADMIN_PATH_LIB.'/user.class.php');
include(ALCASAR_ADMIN_PATH_LIB.'/radiusMysqlUser.class.php');
 
$options['fields'] = "*";
/*
$list_users = new user();
$users = $list_users->find($options);
*/
$users = radiusMysqlUser::find($options);
 
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">
<html>
<head>
<title>Users page</title>
<!-- include default CSS -->
<link rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/default.css" type="text/css">
<!-- include JQUERY UI CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/ui-lightness/jquery-ui-1.8.10.custom.css">
<!-- include tablesorter CSS -->
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/tablesorter-blue/style.css">
 
<link type="text/css" rel="stylesheet" href="<?php echo ALCASAR_ADMIN_PATH_CSS; ?>/default/datatables/css/demo_table.css">
<!-- include custom page CSS -->
<style type="text/css">
div#users-contain { width: 450px; margin: 20px 0; }
div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
div#users-contain table th { ui-widget-header }
.dataTables_filter {
float: left;
text-align: left;
width: 220px;
}
</style>
<!-- include JQUERY -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-1.5.min.js"></script>
<!-- include JQUERY UI -->
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery-ui-1.8.10.all.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.tablesorter.min.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.tablesorter.pager.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.quicksearch.js"></script>
<script type="text/javascript" language="javascript" src="<?php echo ALCASAR_ADMIN_PATH_JS; ?>/jquery.dataTables.min.js"></script>
<!-- include page javascript -->
<script type="text/javascript">
var table_data_lang = {
/*
//"sUrl": "media/language/de_DE.txt"
"sProcessing": "Bitte warten...",
"sLengthMenu": "_MENU_ Einträge anzeigen",
"sZeroRecords": "Keine Einträge vorhanden.",
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
"sInfoPostFix": "",
"sSearch": "Suchen",
"sUrl": "",
"oPaginate": {
"sFirst": "Erster",
"sPrevious": "Zurück",
"sNext": "Nächster",
"sLast": "Letzter"
}
*/
"sProcessing": "Patientez...",
"sLengthMenu": "Afficher _MENU_ enregistrements",
"sZeroRecords": "Aucun enregistrement disponible.",
"sInfo": "_START_ à _END_ sur _TOTAL_ enregistrements",
"sInfoEmpty": "0 à 0 sur 0 enregistrement",
"sInfoFiltered": "(Filtré à partir de _MAX_ enregistrements)",
"sInfoPostFix": "",
"sSearch": "Recherche : ",
"sUrl": "",
"oPaginate": {
"sFirst": "Première page",
"sPrevious": "Page précédente",
"sNext": "Page suivante",
"sLast": "Dernière page"
}
};
$(document).ready(function(){
// Tabs
$('#tabs-users').tabs();
// buttons
$( "button, input:submit, input:button, input:reset").button();
// Users table
/*
$("#test")
.tablesorter({widthFixed: true, widgets: ['zebra']})
.tablesorterPager({container: $("#pager")});
*/
//$('input#searchtest').quicksearch('table#test tbody tr');
$('#users_table').dataTable(
{
// fonction suivante permet d'avoir une colone numéroté dynamiquement (non triable)
"fnDrawCallback": function ( oSettings ) {
/* Need to redo the counters if filtered or sorted */
if ( oSettings.bSorted || oSettings.bFiltered )
{
for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
{
$('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
}
}
},
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] }
],
"aaSorting": [[ 1, 'asc' ]],
//fin
/*
"bPaginate": true, // Active la pagination (10 par défaut)
"bLengthChange":true, // Affiche le choix du nombre de résultat affiché
"bFilter": true, // Affiche le champ de recherche (filtre)
"bSort": true, // Active la possibilité de trie
"bInfo": true, // Affiche le nombre de résultat affiché et total
"bAutoWidth": true // ?
"bJQueryUI": true, // pour utiliser les styles JQUERY UI
"sPaginationType": "full_numbers", // affiche la pagination en nombre de page
"bProcessing": true, // active source de donnée AJAX
"bServerSide": true, // pagnination, filtre, etc... du coté du serveur
"sAjaxSource": "../examples_support/server_processing.php", // URL de la source de donnée (SI AJAX activé!)
*/
"oLanguage": table_data_lang
});
$('#users_table_filter').after('<div style="float:left"><a href="javascript:alert(\'Fonction prochainement dispobible.\');" title="Recherche avancée">Avancée</a></div>');
$('#vouchers_table').dataTable({
// fonction suivante permet d'avoir une colone numéroté dynamiquement (non triable)
"fnDrawCallback": function ( oSettings ) {
/* Need to redo the counters if filtered or sorted */
if ( oSettings.bSorted || oSettings.bFiltered )
{
for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
{
$('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
}
}
},
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] }
],
"aaSorting": [[ 1, 'asc' ]],
//fin
});
});
</script>
</head>
<body>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-dialog">Gestion des usagers</span>
</div>
<br />
<div id="tabs-users">
<ul>
<li><a href="#tabs1">Usagers</a></li>
<li><a href="#tabs2">Vouchers</a></li>
<li><a href="#tabs3">Profils</a></li>
</ul>
<div id="tabs1">
<div>
Un usager est un utilisateur standard de votre réseau de consultation.<br>
<font color="red">ATTENTION POUR DEMONSTRATION DES OPTIONS A UTILISER. Données du serveur RADIUS traitées (tri, pagination) par la page dans l'exemple , gérées par le serveur (AJAX) en production</font>
</div>
<br>
<div style="float:right;">
<form name="newUserform">
<input type="button" value="Nouvel usager">
</form>
</div>
<br>
<table id="users_table" cellspacing="1" class="tablesorter" border="0" width="100%">
<thead>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20">#</th><th width="200">Usagers</th><th>Nom, prénom</th><th width="100">Date validitée</th>
</tr>
</tfoot>
<tbody>
<?php
foreach ($users as $user){
echo "<tr><td></td><td><a href='user.php?username=".$user['username']."' title='Edit User'>".$user['username']."</a></td><td>".$user['Name']."</td><td><font color=red>ND</font></td></tr>";
}
?>
</tbody>
</table>
<br><br><br>
</div>
<div id="tabs2">
<div>
Un "Voucher" est un compte d'accès de type "pré-payé" qui dépend d'une durée d'utilisation ou d'un délai dans le temps.
</div>
<br>
<table id="vouchers_table" cellspacing="1" class="tablesorter" border="0" width="100%">
<thead>
<tr>
<th width="20">#</th>
<th>Vouchers</th>
<th>Description</th>
<th>Nom complet (identifier la personne)</th>
<th>Date validitée</th>
</tr>
</thead>
<tfoot>
<tr>
<th width="20">#</th>
<th>Vouchers</th>
<th>Description</th>
<th>Nom complet (identifier la personne)</th>
<th>Date validitée</th>
</tr>
</tfoot>
<tbody>
<!--
<tr><td>1</td><td><a href="user.php">cfjdjpjsdpajdazpjpaz</a></td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td>2</td><td>cfjdjpjsdpajdazpjpaz</td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td>3</td><td>casas456defe5zsd6saz</td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td>4</td><td>cfjdjpjsdddzd54zsd5q</td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td>5</td><td>cfd5d1s5d5df5fzpjpaz</td><td><br /></td><td><br /></td><td><br /></td></tr>
-->
</tbody>
</table>
</div>
<div id="tabs3">
<div>
Afin de gagner du temps dans la création des comptes usagers et vouchers, vous avez la possibilité de prédéfinir des profils de création de compte.
</div>
</div>
</div>
</body>
</html>
/web/admin/old/user.class.php
0,0 → 1,156
<?php
/*
 
*/
require_once('mysql.class.php');// the mysql class in already OK!
 
class user // rename to radius_user!
{
// public properties
public $username = null;
public $properties = Array();
// private properties
private $database = null;
 
// protected properties
 
// Class constructor
public function __construct($options = Array()) //see later how tp do the mysql init (init value in option or included with this file)
{
$this->database = new mysql("127.0.0.1","root","","radius");
 
}
// Class destructor
public function __destruct()
{
//$this->mysql->close(); //is private !
$this->database = null;
}
// public methods
public function find($options = Array(), $escape=false)
{
/*
If the options are not xss clean, escape all options string by calling _escapeDatas() method.
*/
if ($escape == true) {
//$this->_extractArray($options, true); //create variable from $options array and get xss clean for mysql database
$options = $this->_escapeDatas($options); //create variable from $options array and get xss clean for mysql database
}
/*
The differents $options values are :
$distinct -> only distinct response ?
$username -> only for this username
$fields -> fields to return (default : username)
$search -> search value to find
$search_IN -> search in this/those field(s)(text or array)
$limit -> to limit the resultset
$offset -> offset (work with $limit for pagination)
$sortby -> sort by x field (default : no sorting)
$sortdir -> sort direction (ASC/DESC) (default : no sorting)
$radius_attr-> radius attribute to find (text or array) if search_IN = radius
*/
//mysql_real_escape_string
$sql = "SELECT ";
// distinct option
if ((isset($distinct))&&($distinct=="distinct"))
$sql .= "DISTINCT ";
// field option (make sure that the field exist!)
if ((isset($options['fields']))&&($options['fields']!='')){
$sql .= $options['fields'].", username ";
}else{
$sql .= "username ";
}
$sql .= "FROM userinfo ";
// search option
if ((isset($options['username']))&&($options['username']!='')){
}
// where option
if ((isset($options['username']))&&($options['username']!=""))
{
$sql .= "WHERE username='".$options['username']."'";
$this->username = $options['username'];
}
// sort
if ((isset($options['sortby']))&&($options['sortby']!='')){
$sql .= "ORDER BY ".$options['sortby']." ";
if ((isset($options['sortdir']))&&($options['sortdir']!='')){
$sql .= "LIMIT ".$options['sortdir']." ";
}
}
// limit / offset
if ((isset($options['limit']))&&($options['limit']!='')){
if ((isset($options['offset']))&&($options['offset']!='')){
$sql .= "LIMIT $offset $limit ";
} else {
$sql .= "LIMIT $limit ";
}
}
$sql .= ";";
 
// query
$result = $this->database->query($sql);
// return the result values
return $result;
}
public function add($username, $options = array())
{
/*
$username : user to add
$options : others user infos or attribute to add
userinfo table : Name, Mail, Departement, WorkPhone, HomePhone, Mobile)
radcheck table : see in attrmap.php (i get it from the "freeradius dialupadmin" package)
radreply table : see in attrmap.php
*/
}
public function addAttribute($attribute)
{
// add attribute in radcheck or radreply table
// return true or false
}
public function delete($username)
{
// $username : user to delete
}
public function deleteAttribute($attribute)
{
// delete attribute in radcheck or radreply table
// return true or false
}
public function update($username, $options = array())
{
/*
$username : user to update
$options : user infos or attribute to update
userinfo table : Name, Mail, Departement, WorkPhone, HomePhone, Mobile)
radcheck table : see in attrmap.php (i get it from the "freeradius dialupadmin" package)
radreply table : see in attrmap.php
*/
}
public function updateAttribute($attribute)
{
// update attribute in radcheck or radreply table
// return true or false
}
public function passwordCheck($pwd, $username ="") // make it static?
{
// Check the user password
// Return true or false
}
public function passwordSet($pwd, $username ="") // make it static?
{
// Set or change the user password
}
// private methods
// protected methods
}
?>