Initial commit
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class Country extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM countries WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM countries WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "countries";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "name",
|
||||||
|
'PrintableName' => "printable_name",
|
||||||
|
'Iso' => "iso",
|
||||||
|
'Iso3' => "iso3"
|
||||||
|
),
|
||||||
|
'numeric' => array(
|
||||||
|
'NumericCode' => "numcode"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class Location extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM locations WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM locations WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "locations";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Location' => "Location",
|
||||||
|
'TestIp4' => "TestIp4",
|
||||||
|
'TestIp6' => "TestIp6",
|
||||||
|
'TestFile' => "TestFile"
|
||||||
|
),
|
||||||
|
'numeric' => array(
|
||||||
|
'CountryId' => "CountryId",
|
||||||
|
'ProviderId' => "ProviderId"
|
||||||
|
),
|
||||||
|
'country' => array(
|
||||||
|
'Country' => "CountryId"
|
||||||
|
),
|
||||||
|
'provider' => array(
|
||||||
|
'Provider' => "ProviderId"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class PaymentMethod extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM paymentmethods WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM paymentmethods WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "paymentmethods";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "Name",
|
||||||
|
'Icon' => "Icon"
|
||||||
|
),
|
||||||
|
'boolean' => array(
|
||||||
|
'IsAnonymous' => "Anonymous"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class PlanLocationOption extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM plan_locationoptions WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM plan_locationoptions WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "plan_locationoptions";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'numeric' => array(
|
||||||
|
'PlanId' => "PlanId",
|
||||||
|
'LocationId' => "LocationId"
|
||||||
|
),
|
||||||
|
'plan' => array(
|
||||||
|
'Plan' => "PlanId"
|
||||||
|
),
|
||||||
|
'location' => array(
|
||||||
|
'Location' => "LocationId"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class Plan extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM plans WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM plans WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "plans";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "Name"
|
||||||
|
),
|
||||||
|
'numeric' => array(
|
||||||
|
'ProviderId' => "ProviderId",
|
||||||
|
'Traffic' => "Traffic",
|
||||||
|
'DiskSpace' => "DiskSpace",
|
||||||
|
'CpuCores' => "CpuCores",
|
||||||
|
'Bandwidth' => "Bandwidth",
|
||||||
|
'GuaranteedRam' => "GuaranteedRam",
|
||||||
|
'BurstRam' => "BurstRam",
|
||||||
|
'AllowsIrc' => "AllowsIrc",
|
||||||
|
'BackupSpace' => "BackupSpace",
|
||||||
|
'VirtualizationPlatformId' => "VirtualizationPlatformId"
|
||||||
|
),
|
||||||
|
'boolean' => array(
|
||||||
|
'IsUnmetered' => "Unmetered",
|
||||||
|
'HasIpv4' => "HasIpv4",
|
||||||
|
'HasIpv6' => "HasIpv6",
|
||||||
|
'FreeDns' => "FreeDns",
|
||||||
|
'OverageBilling' => "OverageBilling",
|
||||||
|
'DedicatedCpu' => "DedicatedCpu",
|
||||||
|
'Visible' => "Visible"
|
||||||
|
),
|
||||||
|
'timestamp' => array(
|
||||||
|
'LastUpdate' => "LastUpdated",
|
||||||
|
'SubmissionDate' => "SubmissionDate"
|
||||||
|
),
|
||||||
|
'provider' => array(
|
||||||
|
'Provider' => "ProviderId"
|
||||||
|
),
|
||||||
|
'virtualizationplatform' => array(
|
||||||
|
'VirtualizationPlatform' => "VirtualizationPlatformId"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class PlanPriceOption extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM plan_priceoptions WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM plan_priceoptions WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "plan_priceoptions";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'numeric' => array(
|
||||||
|
'BillingPeriod' => "BillingPeriod",
|
||||||
|
'Price' => "Price",
|
||||||
|
'PlanId' => "PlanId"
|
||||||
|
),
|
||||||
|
'plan' => array(
|
||||||
|
'Plan' => "PlanId"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class Provider extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM providers WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM providers WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "providers";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "Name",
|
||||||
|
'Url' => "Url",
|
||||||
|
'CompanyLocation' => "Location"
|
||||||
|
),
|
||||||
|
'numeric' => array(
|
||||||
|
'PlanCount' => "PlanCount",
|
||||||
|
'UsesMaxmind' => "Maxmind"
|
||||||
|
),
|
||||||
|
'boolean' => array(
|
||||||
|
'Visible' => "Visible",
|
||||||
|
'CustomPossible' => "CustomPossible"
|
||||||
|
),
|
||||||
|
'timestamp' => array(
|
||||||
|
'SubmissionDate' => "SubmissionDate"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class VirtualizationTechnology extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM technologies WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM technologies WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "technologies";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "Name"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
if($_VPS !== true) { die("x"); }
|
||||||
|
|
||||||
|
class VirtualizationPlatform extends CPHPDatabaseRecordClass
|
||||||
|
{
|
||||||
|
public $fill_query = "SELECT * FROM virtualizationplatforms WHERE `Id` = '%d'";
|
||||||
|
public $verify_query = "SELECT * FROM virtualizationplatforms WHERE `Id` = '%d'";
|
||||||
|
public $table_name = "virtualizationplatforms";
|
||||||
|
|
||||||
|
public $prototype = array(
|
||||||
|
'string' => array(
|
||||||
|
'Name' => "Name"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
require("include.constants.php");
|
||||||
|
|
||||||
|
require("config.php");
|
||||||
|
|
||||||
|
require("include.dependencies.php");
|
||||||
|
require("include.exceptions.php");
|
||||||
|
require("include.datetime.php");
|
||||||
|
require("include.misc.php");
|
||||||
|
|
||||||
|
require("include.memcache.php");
|
||||||
|
require("include.mysql.php");
|
||||||
|
require("include.session.php");
|
||||||
|
|
||||||
|
require("class.templater.php");
|
||||||
|
require("class.localizer.php");
|
||||||
|
|
||||||
|
$locale = new Localizer();
|
||||||
|
$locale->Load($cphp_locale_name);
|
||||||
|
|
||||||
|
setlocale(LC_ALL, $locale->locale);
|
||||||
|
|
||||||
|
require("class.base.php");
|
||||||
|
require("class.databaserecord.php");
|
||||||
|
|
||||||
|
foreach($cphp_components as $component)
|
||||||
|
{
|
||||||
|
require("components/component.{$component}.php");
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,143 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
class CPHPBaseClass
|
||||||
|
{
|
||||||
|
public $render_template = "";
|
||||||
|
|
||||||
|
public function RenderTimeAgo($template, $property)
|
||||||
|
{
|
||||||
|
global $locale;
|
||||||
|
|
||||||
|
$variable_name = "s{$property}";
|
||||||
|
|
||||||
|
if(isset($this->$variable_name) && is_numeric($this->$variable_name))
|
||||||
|
{
|
||||||
|
$timestamp = $this->$variable_name;
|
||||||
|
|
||||||
|
if($timestamp > time())
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-future'];
|
||||||
|
}
|
||||||
|
elseif($timestamp == time())
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-now'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$date1 = new DateTime("@{$timestamp}", new DateTimeZone("GMT"));
|
||||||
|
$date2 = new DateTime("now", new DateTimeZone("GMT"));
|
||||||
|
|
||||||
|
$interval = $date1->diff($date2);
|
||||||
|
$years = (int)$interval->format("%G");
|
||||||
|
$months = (int)$interval->format("%m");
|
||||||
|
$weeks = (int)$interval->format("%U");
|
||||||
|
$days = (int)$interval->format("%d");
|
||||||
|
$hours = (int)$interval->format("%H");
|
||||||
|
$minutes = (int)$interval->format("%i");
|
||||||
|
$seconds = (int)$interval->format("%S");
|
||||||
|
|
||||||
|
if($years > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-years-ago'], $years);
|
||||||
|
}
|
||||||
|
elseif($years == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1year-ago'];
|
||||||
|
}
|
||||||
|
elseif($months > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-months-ago'], $months);
|
||||||
|
}
|
||||||
|
elseif($months == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1month-ago'];
|
||||||
|
}
|
||||||
|
elseif($weeks > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-weeks-ago'], $weeks);
|
||||||
|
}
|
||||||
|
elseif($weeks == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1week-ago'];
|
||||||
|
}
|
||||||
|
elseif($days > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-days-ago'], $days);
|
||||||
|
}
|
||||||
|
elseif($days == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1day-ago'];
|
||||||
|
}
|
||||||
|
elseif($hours > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-hours-ago'], $hours);
|
||||||
|
}
|
||||||
|
elseif($hours == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1hour-ago'];
|
||||||
|
}
|
||||||
|
elseif($minutes > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-minutes-ago'], $minutes);
|
||||||
|
}
|
||||||
|
elseif($minutes == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1minute-ago'];
|
||||||
|
}
|
||||||
|
elseif($seconds > 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = sprintf($locale->strings['event-seconds-ago'], $seconds);
|
||||||
|
}
|
||||||
|
elseif($seconds == 1)
|
||||||
|
{
|
||||||
|
$sTimeAgo = $locale->strings['event-1second-ago'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If you see this, there's probably something wrong.
|
||||||
|
$sTimeAgo = $locale->strings['event-past'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$sDate = local_from_unix($timestamp, $locale->datetime_long);
|
||||||
|
|
||||||
|
return $this->RenderTemplateExternal($template, array(
|
||||||
|
'local-time' => $sDate,
|
||||||
|
'time-ago' => $sTimeAgo,
|
||||||
|
'timestamp' => $timestamp
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Property {$classname}.{$property} does not exist or is not of a valid format.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function RenderTemplateExternal($template, $strings)
|
||||||
|
{
|
||||||
|
return $this->DoRenderTemplate($template, $strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function DoRenderTemplate($template, $strings)
|
||||||
|
{
|
||||||
|
global $locale;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$tpl = new Templater();
|
||||||
|
$tpl->Load($template);
|
||||||
|
$tpl->Localize($locale->strings);
|
||||||
|
$tpl->Compile($strings);
|
||||||
|
return $tpl->Render();
|
||||||
|
}
|
||||||
|
catch(Exception $e)
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Failed to render template {$classname}.{$template}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,381 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
|
||||||
|
{
|
||||||
|
public $fill_query = "";
|
||||||
|
public $verify_query = "";
|
||||||
|
public $table_name = "";
|
||||||
|
public $query_cache = 60;
|
||||||
|
|
||||||
|
public $prototype = array();
|
||||||
|
public $prototype_render = array();
|
||||||
|
public $uData = array();
|
||||||
|
|
||||||
|
public $sId = 0;
|
||||||
|
|
||||||
|
public function __construct($uDataSource, $uCommunityId = 0)
|
||||||
|
{
|
||||||
|
$this->ConstructDataset($uDataSource, $uCommunityId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function ConstructDataset($uDataSource, $uCommunityId = 0)
|
||||||
|
{
|
||||||
|
$bind_datasets = true;
|
||||||
|
|
||||||
|
if(is_numeric($uDataSource))
|
||||||
|
{
|
||||||
|
if($uDataSource != 0)
|
||||||
|
{
|
||||||
|
if(!empty($this->fill_query))
|
||||||
|
{
|
||||||
|
$this->sId = (is_numeric($uDataSource)) ? $uDataSource : 0;
|
||||||
|
|
||||||
|
$query = sprintf($this->fill_query, $uDataSource);
|
||||||
|
if($result = mysql_query_cached($query, $this->query_cache))
|
||||||
|
{
|
||||||
|
$uDataSource = $result->data[0];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new NotFoundException("Could not locate {$classname} {$uDataSource} in database.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new PrototypeException("No fill query defined for {$classname} class.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$bind_datasets = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(is_object($uDataSource))
|
||||||
|
{
|
||||||
|
if(isset($uDataSource->data[0]))
|
||||||
|
{
|
||||||
|
$uDataSource = $uDataSource->data[0];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new NotFoundException("No result set present in object.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(is_array($uDataSource))
|
||||||
|
{
|
||||||
|
if(isset($uDataSource[0]))
|
||||||
|
{
|
||||||
|
$uDataSource = $uDataSource[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new ConstructorException("Invalid type passed on to constructor for object of type {$classname}.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if($bind_datasets === true)
|
||||||
|
{
|
||||||
|
$this->sId = (is_numeric($uDataSource['Id'])) ? $uDataSource['Id'] : 0;
|
||||||
|
|
||||||
|
$this->uData = $uDataSource;
|
||||||
|
|
||||||
|
foreach($this->prototype as $type => $dataset)
|
||||||
|
{
|
||||||
|
$this->BindDataset($type, $dataset);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->sFound = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->sFound = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($uCommunityId) && !empty($this->sCommunityId))
|
||||||
|
{
|
||||||
|
$sCommunityId = (is_numeric($uCommunityId)) ? $uCommunityId : 0;
|
||||||
|
|
||||||
|
if($sCommunityId != $this->sCommunity->sId)
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new OwnershipException("{$classname} {$this->sId} does not belong to Community {$sCommunityId}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function BindDataset($type, $dataset)
|
||||||
|
{
|
||||||
|
global $cphp_class_map;
|
||||||
|
|
||||||
|
if(is_array($dataset))
|
||||||
|
{
|
||||||
|
foreach($dataset as $variable_name => $column_name)
|
||||||
|
{
|
||||||
|
$original_value = $this->uData[$column_name];
|
||||||
|
|
||||||
|
switch($type)
|
||||||
|
{
|
||||||
|
case "string":
|
||||||
|
$value = htmlspecialchars(stripslashes($original_value));
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "html":
|
||||||
|
$value = filter_html(stripslashes($original_value));
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "simplehtml":
|
||||||
|
$value = filter_html_strict(stripslashes($original_value));
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "nl2br":
|
||||||
|
$value = nl2br(htmlspecialchars(stripslashes($original_value)), false);
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "numeric":
|
||||||
|
$value = (is_numeric($original_value)) ? $original_value : 0;
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "timestamp":
|
||||||
|
$value = unix_from_mysql($original_value);
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "boolean":
|
||||||
|
$value = (empty($original_value)) ? false : true;
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "user":
|
||||||
|
$value = new User($original_value);
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
break;
|
||||||
|
case "none":
|
||||||
|
$value = $original_value;
|
||||||
|
$variable_type = CPHP_VARIABLE_UNSAFE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$found = false;
|
||||||
|
foreach($cphp_class_map as $class_type => $class_name)
|
||||||
|
{
|
||||||
|
if($type == $class_type)
|
||||||
|
{
|
||||||
|
$value = new $class_name($original_value);
|
||||||
|
$variable_type = CPHP_VARIABLE_SAFE;
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($found == false)
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Cannot determine type of dataset ({$type}) passed on to {$classname}.BindDataset.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($variable_type == CPHP_VARIABLE_SAFE)
|
||||||
|
{
|
||||||
|
$variable_name_safe = "s" . $variable_name;
|
||||||
|
$this->$variable_name_safe = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$variable_name_unsafe = "u" . $variable_name;
|
||||||
|
$this->$variable_name_unsafe = $original_value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Invalid dataset passed on to {$classname}.BindDataset.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function DoRenderInternalTemplate()
|
||||||
|
{
|
||||||
|
if(!empty($this->render_template))
|
||||||
|
{
|
||||||
|
$strings = array();
|
||||||
|
foreach($this->prototype_render as $template_var => $object_var)
|
||||||
|
{
|
||||||
|
$variable_name = "s" . $object_var;
|
||||||
|
$strings[$template_var] = $this->$variable_name;
|
||||||
|
}
|
||||||
|
return $this->DoRenderTemplate($this->render_template, $strings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Cannot render template: no template defined for {$classname} class.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function InsertIntoDatabase()
|
||||||
|
{
|
||||||
|
if(!empty($this->verify_query))
|
||||||
|
{
|
||||||
|
if($this->sId == 0)
|
||||||
|
{
|
||||||
|
$insert_mode = CPHP_INSERTMODE_INSERT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$query = sprintf($this->verify_query, $this->sId);
|
||||||
|
if($result = mysql_query_cached($query))
|
||||||
|
{
|
||||||
|
$insert_mode = CPHP_INSERTMODE_UPDATE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$insert_mode = CPHP_INSERTMODE_INSERT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$element_list = array();
|
||||||
|
|
||||||
|
foreach($this->prototype as $type_key => $type_value)
|
||||||
|
{
|
||||||
|
foreach($type_value as $element_key => $element_value)
|
||||||
|
{
|
||||||
|
switch($type_key)
|
||||||
|
{
|
||||||
|
case "none":
|
||||||
|
case "numeric":
|
||||||
|
case "boolean":
|
||||||
|
case "timestamp":
|
||||||
|
case "string":
|
||||||
|
$element_list[$element_value] = array(
|
||||||
|
'key' => $element_key,
|
||||||
|
'type' => $type_key
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sKeyList = array();
|
||||||
|
$sValueList = array();
|
||||||
|
|
||||||
|
foreach($element_list as $sKey => $value)
|
||||||
|
{
|
||||||
|
$variable_name_safe = "s" . $value['key'];
|
||||||
|
$variable_name_unsafe = "u" . $value['key'];
|
||||||
|
|
||||||
|
if(isset($this->$variable_name_safe) || isset($this->$variable_name_unsafe))
|
||||||
|
{
|
||||||
|
switch($value['type'])
|
||||||
|
{
|
||||||
|
case "none":
|
||||||
|
$sFinalValue = mysql_real_escape_string($this->$variable_name_unsafe);
|
||||||
|
break;
|
||||||
|
case "numeric":
|
||||||
|
$number = (isset($this->$variable_name_unsafe)) ? $this->$variable_name_unsafe : $this->$variable_name_safe;
|
||||||
|
$sFinalValue = (is_numeric($number)) ? $number : 0;
|
||||||
|
break;
|
||||||
|
case "boolean":
|
||||||
|
$bool = (isset($this->$variable_name_unsafe)) ? $this->$variable_name_unsafe : $this->$variable_name_safe;
|
||||||
|
$sFinalValue = ($bool) ? "1" : "0";
|
||||||
|
break;
|
||||||
|
case "timestamp":
|
||||||
|
$sFinalValue = (isset($this->$variable_name_safe)) ? mysql_from_unix($this->$variable_name_safe) : mysql_from_unix(unix_from_local($this->$variable_name_unsafe));
|
||||||
|
break;
|
||||||
|
case "string":
|
||||||
|
$sFinalValue = (isset($this->$variable_name_unsafe)) ? mysql_real_escape_string($this->$variable_name_unsafe) : mysql_real_escape_string($this->$variable_name_safe);
|
||||||
|
break;
|
||||||
|
case "default":
|
||||||
|
$sFinalValue = mysql_real_escape_string($this->$variable_name_unsafe);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sFinalValue = "'{$sFinalValue}'";
|
||||||
|
$sKey = "`{$sKey}`";
|
||||||
|
|
||||||
|
$sKeyList[] = $sKey;
|
||||||
|
$sValueList[] = $sFinalValue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("Database insertion failed: prototype property {$value['key']} not found in object of type {$classname}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($insert_mode == CPHP_INSERTMODE_INSERT)
|
||||||
|
{
|
||||||
|
$sQueryKeys = implode(", ", $sKeyList);
|
||||||
|
$sQueryValues = implode(", ", $sValueList);
|
||||||
|
$query = "INSERT INTO {$this->table_name} ({$sQueryKeys}) VALUES ({$sQueryValues})";
|
||||||
|
}
|
||||||
|
elseif($insert_mode == CPHP_INSERTMODE_UPDATE)
|
||||||
|
{
|
||||||
|
$sKeyValueList = array();
|
||||||
|
|
||||||
|
for($i = 0; $i < count($sKeyList); $i++)
|
||||||
|
{
|
||||||
|
$sKey = $sKeyList[$i];
|
||||||
|
$sValue = $sValueList[$i];
|
||||||
|
$sKeyValueList[] = "{$sKey} = {$sValue}";
|
||||||
|
}
|
||||||
|
|
||||||
|
$sQueryKeysValues = implode(", ", $sKeyValueList);
|
||||||
|
$query = "UPDATE {$this->table_name} SET {$sQueryKeysValues} WHERE `Id` = '{$this->sId}'";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($result = mysql_query($query))
|
||||||
|
{
|
||||||
|
if($insert_mode == CPHP_INSERTMODE_INSERT)
|
||||||
|
{
|
||||||
|
$this->sId = mysql_insert_id();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new DatabaseException("Database insertion query failed in object of type {$classname}. Error message: " . mysql_error());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new Exception("No verification query defined for {$classname} class.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function RetrieveChildren($type, $field)
|
||||||
|
{
|
||||||
|
if(!isset($cphp_class_map[$type]))
|
||||||
|
{
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new NotFoundException("Non-existent 'type' argument passed on to {$classname}.RetrieveChildren function.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$parent_type = get_parent_class($cphp_class_map[$type]);
|
||||||
|
if($parent_type !== "CPHPDatabaseRecordClass")
|
||||||
|
{
|
||||||
|
$parent_type = ($parent_type === false) ? "NONE" : $parent_type;
|
||||||
|
$classname = get_class($this);
|
||||||
|
throw new TypeException("{$classname}.RetrieveChildren expected 'type' argument of parent-type CPHPDatabaseRecordClass, but got {$parent_type} instead.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function PurgeCache()
|
||||||
|
{
|
||||||
|
$query = sprintf($this->fill_query, $this->sId);
|
||||||
|
$key = md5($query) . md5($query . "x");
|
||||||
|
mc_delete($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function RenderTemplate()
|
||||||
|
{
|
||||||
|
return $this->DoRenderInternalTemplate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
class Localizer
|
||||||
|
{
|
||||||
|
public $strings = array();
|
||||||
|
public $locale = "";
|
||||||
|
public $datetime_short = "";
|
||||||
|
public $datetime_long = "";
|
||||||
|
public $date_short = "";
|
||||||
|
public $date_long = "";
|
||||||
|
public $time = "";
|
||||||
|
|
||||||
|
public function Load($locale)
|
||||||
|
{
|
||||||
|
global $cphp_locale_path, $cphp_locale_ext;
|
||||||
|
|
||||||
|
$this->strings = array();
|
||||||
|
$lng_contents = file_get_contents("{$cphp_locale_path}/{$locale}.{$cphp_locale_ext}");
|
||||||
|
if($lng_contents !== false)
|
||||||
|
{
|
||||||
|
$lines = explode("\n", $lng_contents);
|
||||||
|
foreach($lines as $line)
|
||||||
|
{
|
||||||
|
$line = str_replace("\r", "", $line);
|
||||||
|
if(preg_match("/(.+?[^\\\]);(.+)/", $line, $matches))
|
||||||
|
{
|
||||||
|
$key = trim(str_replace("\;", ";", $matches[1]));
|
||||||
|
$value = trim(str_replace("\;", ";", $matches[2]));
|
||||||
|
switch($key)
|
||||||
|
{
|
||||||
|
case "_locale":
|
||||||
|
$this->locale = explode(",", $value);
|
||||||
|
break;
|
||||||
|
case "_datetime_short":
|
||||||
|
$this->datetime_short = $value;
|
||||||
|
break;
|
||||||
|
case "_datetime_long":
|
||||||
|
$this->datetime_long = $value;
|
||||||
|
break;
|
||||||
|
case "_date_short":
|
||||||
|
$this->date_short = $value;
|
||||||
|
break;
|
||||||
|
case "_date_long":
|
||||||
|
$this->date_long = $value;
|
||||||
|
break;
|
||||||
|
case "_time":
|
||||||
|
$this->time = $value;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$this->strings[$key] = $value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("Failed to load locale {$locale}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
$template_cache = array();
|
||||||
|
|
||||||
|
class Templater
|
||||||
|
{
|
||||||
|
private $basedir = "templates/";
|
||||||
|
private $extension = ".tpl";
|
||||||
|
private $tpl = NULL;
|
||||||
|
private $tpl_rendered = NULL;
|
||||||
|
|
||||||
|
public function Load($template)
|
||||||
|
{
|
||||||
|
global $template_cache;
|
||||||
|
|
||||||
|
if(isset($template_cache[$template]))
|
||||||
|
{
|
||||||
|
$tpl_contents = $template_cache[$template];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$tpl_contents = file_get_contents($this->basedir . $template . $this->extension);
|
||||||
|
$template_cache[$template] = $tpl_contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($tpl_contents !== false)
|
||||||
|
{
|
||||||
|
$this->tpl = $tpl_contents;
|
||||||
|
$this->tpl_rendered = $tpl_contents;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("Failed to load template {$template}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Reset()
|
||||||
|
{
|
||||||
|
if(!is_null($this->tpl))
|
||||||
|
{
|
||||||
|
$this->tpl_rendered = $this->tpl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("No template loaded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Localize($strings)
|
||||||
|
{
|
||||||
|
if(!is_null($this->tpl))
|
||||||
|
{
|
||||||
|
preg_match_all("/<%!([a-zA-Z0-9_-]+)>/", $this->tpl_rendered, $strlist);
|
||||||
|
foreach($strlist[1] as $str)
|
||||||
|
{
|
||||||
|
if(isset($strings[$str]))
|
||||||
|
{
|
||||||
|
$this->tpl_rendered = str_replace("<%!{$str}>", $strings[$str], $this->tpl_rendered);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("No template loaded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Compile($strings)
|
||||||
|
{
|
||||||
|
if(!is_null($this->tpl))
|
||||||
|
{
|
||||||
|
preg_match_all("/<%\?([a-zA-Z0-9_-]+)>/", $this->tpl_rendered, $strlist);
|
||||||
|
foreach($strlist[1] as $str)
|
||||||
|
{
|
||||||
|
if(isset($strings[$str]))
|
||||||
|
{
|
||||||
|
$this->tpl_rendered = str_replace("<%?{$str}>", $strings[$str], $this->tpl_rendered);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("No template loaded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
if(!is_null($this->tpl))
|
||||||
|
{
|
||||||
|
return $this->tpl_rendered;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("No template loaded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Output()
|
||||||
|
{
|
||||||
|
if(!is_null($this->tpl))
|
||||||
|
{
|
||||||
|
echo($this->tpl_rendered);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Throw new Exception("No template loaded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
cphp_dependency_provides("cphp_errorhandler", "0.1");
|
||||||
|
|
||||||
|
define("CPHP_ERRORHANDLER_TYPE_ERROR", 90001 );
|
||||||
|
define("CPHP_ERRORHANDLER_TYPE_INFO", 90002 );
|
||||||
|
define("CPHP_ERRORHANDLER_TYPE_WARNING", 90003 );
|
||||||
|
define("CPHP_ERRORHANDLER_TYPE_SUCCESS", 90004 );
|
||||||
|
|
||||||
|
class CPHPErrorHandler
|
||||||
|
{
|
||||||
|
public $sErrorType = CPHP_ERRORHANDLER_TYPE_ERROR;
|
||||||
|
public $sLogError = true;
|
||||||
|
public $sTitle = "";
|
||||||
|
public $sMessage = "";
|
||||||
|
|
||||||
|
public function __construct($type, $title, $message, $log = true)
|
||||||
|
{
|
||||||
|
$this->sErrorType = $type;
|
||||||
|
$this->sLogError = $log;
|
||||||
|
$this->sTitle = $title;
|
||||||
|
$this->sMessage = $message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function LogError($context, $message)
|
||||||
|
{
|
||||||
|
// FIXME placeholder function, error logging has not been implemented yet
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
global $locale;
|
||||||
|
|
||||||
|
$template['error'] = new Templater();
|
||||||
|
|
||||||
|
switch($this->sErrorType)
|
||||||
|
{
|
||||||
|
case CPHP_ERRORHANDLER_TYPE_ERROR:
|
||||||
|
$template['error']->Load("errorhandler.error");
|
||||||
|
break;
|
||||||
|
case CPHP_ERRORHANDLER_TYPE_INFO:
|
||||||
|
$template['error']->Load("errorhandler.info");
|
||||||
|
break;
|
||||||
|
case CPHP_ERRORHANDLER_TYPE_WARNING:
|
||||||
|
$template['error']->Load("errorhandler.warning");
|
||||||
|
break;
|
||||||
|
case CPHP_ERRORHANDLER_TYPE_SUCCESS:
|
||||||
|
$template['error']->Load("errorhandler.success");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$template['error']->Localize($locale->strings);
|
||||||
|
$template['error']->Compile(array(
|
||||||
|
'title' => $this->sTitle,
|
||||||
|
'message' => $this->sMessage
|
||||||
|
));
|
||||||
|
|
||||||
|
return $template['error']->Render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,379 @@
|
|||||||
|
<?php
|
||||||
|
cphp_dependency_provides("cphp_formbuilder", "1.0");
|
||||||
|
|
||||||
|
$cphp_formbuilder_increment = 0;
|
||||||
|
|
||||||
|
abstract class CPHPFormBuilderBaseClass
|
||||||
|
{
|
||||||
|
public $parameters = array();
|
||||||
|
|
||||||
|
public function AddParameter($key, $value)
|
||||||
|
{
|
||||||
|
$this->parameters[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function RenderParameters($parameters)
|
||||||
|
{
|
||||||
|
if(empty($parameters))
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$rendered = array();
|
||||||
|
|
||||||
|
foreach($parameters as $key => $value)
|
||||||
|
{
|
||||||
|
$value = utf8entities($value);
|
||||||
|
$rendered[] = "{$key}=\"{$value}\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
return " " . implode(" ", $rendered);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function RenderNote()
|
||||||
|
{
|
||||||
|
if(!empty($this->note))
|
||||||
|
{
|
||||||
|
return "<div class=\"cphp_fbd_note\">{$this->note}</div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class CPHPFormBuilderContainer extends CPHPFormBuilderBaseClass
|
||||||
|
{
|
||||||
|
public $elements = array();
|
||||||
|
|
||||||
|
public function AddElement($element)
|
||||||
|
{
|
||||||
|
$this->elements[] = $element;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormBuilder extends CPHPFormBuilderContainer
|
||||||
|
{
|
||||||
|
public $method = "";
|
||||||
|
public $action = "";
|
||||||
|
|
||||||
|
public function __construct($method, $target)
|
||||||
|
{
|
||||||
|
$this->method = strtolower($method);
|
||||||
|
$this->action = $target;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$rendered_elements = "";
|
||||||
|
|
||||||
|
foreach($this->elements as $element)
|
||||||
|
{
|
||||||
|
$rendered_elements .= $element->Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->AddParameter("method", $this->method);
|
||||||
|
$this->AddParameter("action", $this->action);
|
||||||
|
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
|
||||||
|
return "<form{$rendered_parameters}>{$rendered_elements}</form>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSection extends CPHPFormBuilderContainer
|
||||||
|
{
|
||||||
|
public $label = "";
|
||||||
|
public $fieldset = true;
|
||||||
|
public $classname = "";
|
||||||
|
|
||||||
|
public function __construct($fieldset = true, $label = "")
|
||||||
|
{
|
||||||
|
if(!empty($label))
|
||||||
|
{
|
||||||
|
$this->label = $label;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->fieldset = $fieldset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
if(!empty($this->label))
|
||||||
|
{
|
||||||
|
$legend = "<legend>{$this->label}</legend>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$legend = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->fieldset === true)
|
||||||
|
{
|
||||||
|
$this->classname = trim("{$this->classname} cphp_fbd_fieldset");
|
||||||
|
}
|
||||||
|
|
||||||
|
$rendered_elements = "";
|
||||||
|
|
||||||
|
foreach($this->elements as $element)
|
||||||
|
{
|
||||||
|
$rendered_elements .= $element->Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->fieldset === true)
|
||||||
|
{
|
||||||
|
$this->AddParameter("class", $this->classname);
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
return "<fieldset{$rendered_parameters}>{$legend}<div class=\"cphp_fbd_form\">{$rendered_elements}</div></fieldset>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "<div class=\"cphp_fbd_form\"{$rendered_parameters}>{$rendered_elements}</div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class CPHPFormInputElement extends CPHPFormBuilderBaseClass
|
||||||
|
{
|
||||||
|
public $id = "";
|
||||||
|
public $name = "";
|
||||||
|
public $value = "";
|
||||||
|
public $label = "";
|
||||||
|
|
||||||
|
public function __construct($label, $name, $value = "", $note = "", $id = "")
|
||||||
|
{
|
||||||
|
global $cphp_formbuilder_increment;
|
||||||
|
|
||||||
|
$this->name = $name;
|
||||||
|
$this->value = $value;
|
||||||
|
$this->label = $label;
|
||||||
|
$this->note = $note;
|
||||||
|
|
||||||
|
if(empty($id))
|
||||||
|
{
|
||||||
|
$this->id = "cphp_fbd_{$cphp_formbuilder_increment}";
|
||||||
|
$cphp_formbuilder_increment += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class CPHPFormInput extends CPHPFormInputElement
|
||||||
|
{
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$this->AddParameter("id", $this->id);
|
||||||
|
$this->AddParameter("type", $this->type);
|
||||||
|
$this->AddParameter("name", $this->name);
|
||||||
|
$this->AddParameter("value", $this->value);
|
||||||
|
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
$rendered_note = $this->RenderNote();
|
||||||
|
|
||||||
|
return "<div class=\"cphp_fbd_row\"><div class=\"cphp_fbd_label\">{$this->label}{$rendered_note}</div><div class=\"cphp_fbd_field\"><input{$rendered_parameters}></div></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormTextInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "text";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormPasswordInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "password";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormDateInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "date";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormTimeInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "time";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormEmailInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "email";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormUrlInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "url";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormRangeInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "range";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormColorInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "color";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSearchInput extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "search";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormCheckboxGroup extends CPHPFormBuilderContainer
|
||||||
|
{
|
||||||
|
public function __construct($label, $note = "")
|
||||||
|
{
|
||||||
|
global $cphp_formbuilder_increment;
|
||||||
|
|
||||||
|
$this->label = $label;
|
||||||
|
$this->note = $note;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$rendered_note = $this->RenderNote();
|
||||||
|
|
||||||
|
$rendered_elements = "";
|
||||||
|
|
||||||
|
foreach($this->elements as $element)
|
||||||
|
{
|
||||||
|
$rendered_elements .= $element->Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "<div class=\"cphp_fbd_row\"><div class=\"cphp_fbd_label\">{$this->label}{$rendered_note}</div><div class=\"cphp_fbd_field\">{$rendered_elements}</div></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormCheckbox extends CPHPFormInputElement
|
||||||
|
{
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$this->AddParameter("id", $this->id);
|
||||||
|
$this->AddParameter("type", "checkbox");
|
||||||
|
$this->AddParameter("name", $this->name);
|
||||||
|
|
||||||
|
if($this->value === true)
|
||||||
|
{
|
||||||
|
$this->AddParameter("checked", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
$rendered_note = $this->RenderNote();
|
||||||
|
return "<div class=\"cphp_fbd_cblabel\"><input{$rendered_parameters}><label for=\"{$this->id}\">{$this->label}{$rendered_note}</label></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormRadioButton extends CPHPFormInput
|
||||||
|
{
|
||||||
|
public $type = "radio";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormButton extends CPHPFormInputElement
|
||||||
|
{
|
||||||
|
public $type = "button";
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$this->AddParameter("type", $this->type);
|
||||||
|
$this->AddParameter("name", $this->name);
|
||||||
|
$this->AddParameter("value", $this->value);
|
||||||
|
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
|
||||||
|
return "<div class=\"cphp_fbd_row\"><div class=\"cphp_fbd_label\"></div><div class=\"cphp_fbd_field\"><button{$rendered_parameters}>{$this->label}</button></div></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSubmitButton extends CPHPFormButton
|
||||||
|
{
|
||||||
|
public $type = "submit";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormResetButton extends CPHPFormButton
|
||||||
|
{
|
||||||
|
public $type = "reset";
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSelect extends CPHPFormInputElement
|
||||||
|
{
|
||||||
|
public $options = array();
|
||||||
|
|
||||||
|
public function AddOption($option)
|
||||||
|
{
|
||||||
|
$this->options[] = $option;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$this->AddParameter("id", $this->id);
|
||||||
|
$this->AddParameter("name", $this->name);
|
||||||
|
|
||||||
|
$rendered_parameters = $this->RenderParameters($this->parameters);
|
||||||
|
$rendered_note = $this->RenderNote();
|
||||||
|
|
||||||
|
$list = "";
|
||||||
|
|
||||||
|
foreach($this->options as $option)
|
||||||
|
{
|
||||||
|
$list .= $option->Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "<div class=\"cphp_fbd_row\"><div class=\"cphp_fbd_label\">{$this->label}{$rendered_note}</div><div class=\"cphp_fbd_field\"><select{$rendered_parameters}>{$list}</select></div></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSelectOptionGroup
|
||||||
|
{
|
||||||
|
public $label = "";
|
||||||
|
public $options = array();
|
||||||
|
|
||||||
|
public function __construct($label)
|
||||||
|
{
|
||||||
|
$this->label = $label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function AddOption($option)
|
||||||
|
{
|
||||||
|
$this->options[] = $option;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$list = "";
|
||||||
|
|
||||||
|
foreach($this->options as $option)
|
||||||
|
{
|
||||||
|
$list .= $option->Render();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "<optgroup label=\"{$this->label}\">{$list}</optgroup>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CPHPFormSelectOption
|
||||||
|
{
|
||||||
|
public $value = "";
|
||||||
|
public $description = "";
|
||||||
|
public $selected = false;
|
||||||
|
|
||||||
|
public function __construct($value, $description, $selected = false)
|
||||||
|
{
|
||||||
|
$this->value = $value;
|
||||||
|
$this->description = $description;
|
||||||
|
$this->selected = $selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Render()
|
||||||
|
{
|
||||||
|
$selected_attribute = ($selected) ? " selected" : "";
|
||||||
|
|
||||||
|
return "<option value=\"{$this->value}\"{$selected_attribute}>{$this->description}</option>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
class CPHPRouter extends CPHPBaseClass
|
||||||
|
{
|
||||||
|
public $routes = array();
|
||||||
|
public $parameters = array();
|
||||||
|
|
||||||
|
public function RouteRequest()
|
||||||
|
{
|
||||||
|
eval(extract_globals()); // hack hackity hack hack
|
||||||
|
|
||||||
|
if(isset($_SERVER['REQUEST_URI']))
|
||||||
|
{
|
||||||
|
$requestpath = trim($_SERVER['REQUEST_URI']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$requestpath = "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
$found = false; // Workaround because a break after an include apparently doesn't work in PHP.
|
||||||
|
|
||||||
|
foreach($this->routes as $priority)
|
||||||
|
{
|
||||||
|
foreach($priority as $route_regex => $route_destination)
|
||||||
|
{
|
||||||
|
if($found === false)
|
||||||
|
{
|
||||||
|
$regex = str_replace("/", "\/", $route_regex);
|
||||||
|
if(preg_match("/{$regex}/i", $requestpath, $matches))
|
||||||
|
{
|
||||||
|
$this->uParameters = $matches;
|
||||||
|
include($route_destination);
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
$cphp_class_map = array(
|
||||||
|
'country' => "Country",
|
||||||
|
'provider' => "Provider",
|
||||||
|
'plan' => "Plan",
|
||||||
|
'paymentmethod' => "PaymentMethod",
|
||||||
|
'virtualizationplatform' => "VirtualizationPlatform"
|
||||||
|
);
|
||||||
|
|
||||||
|
$cphp_locale_name = "english";
|
||||||
|
$cphp_locale_path = "locales";
|
||||||
|
$cphp_locale_ext = "lng";
|
||||||
|
|
||||||
|
$cphp_usersettings[CPHP_SETTING_TIMEZONE] = "Europe/Amsterdam";
|
||||||
|
|
||||||
|
/* These are the memcache settings. You will need to have memcache set
|
||||||
|
* up on your server to use these. Compression requires zlib. */
|
||||||
|
$cphp_memcache_enabled = true; // Whether to user memcache.
|
||||||
|
$cphp_memcache_server = "localhost"; // The hostname of the memcached
|
||||||
|
$cphp_memcache_port = 11211; // The port number of memcached
|
||||||
|
$cphp_memcache_compressed = true; // Whether to compress memcache objects
|
||||||
|
|
||||||
|
$cphp_mysql_enabled = true;
|
||||||
|
$cphp_mysql_host = "localhost";
|
||||||
|
$cphp_mysql_user = "vps";
|
||||||
|
$cphp_mysql_pass = "";
|
||||||
|
$cphp_mysql_db = "vps";
|
||||||
|
|
||||||
|
$cphp_components = array(
|
||||||
|
"router",
|
||||||
|
"formbuilder",
|
||||||
|
"errorhandler"
|
||||||
|
);
|
||||||
|
?>
|
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
define("CPHP_SETTING_TIMEZONE", 1100 );
|
||||||
|
|
||||||
|
define("CPHP_VARIABLE_SAFE", 1260 );
|
||||||
|
define("CPHP_VARIABLE_UNSAFE", 1261 );
|
||||||
|
|
||||||
|
define("CPHP_INSERTMODE_INSERT", 1270 );
|
||||||
|
define("CPHP_INSERTMODE_UPDATE", 1271 );
|
||||||
|
|
||||||
|
define("CPHP_REGEX_EMAIL", "/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i");
|
||||||
|
?>
|
@ -0,0 +1,169 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
$timezones = array(
|
||||||
|
'Pacific/Kwajalein' => '(GMT-12:00) International Date Line West',
|
||||||
|
'Pacific/Midway' => '(GMT-11:00) Midway Island',
|
||||||
|
'Pacific/Samoa' => '(GMT-11:00) Samoa',
|
||||||
|
'Pacific/Honolulu' => '(GMT-10:00) Hawaii',
|
||||||
|
'America/Anchorage' => '(GMT-09:00) Alaska',
|
||||||
|
'America/Los_Angeles' => '(GMT-08:00) Pacific Time (US & Canada)',
|
||||||
|
'America/Tijuana' => '(GMT-08:00) Tijuana, Baja California',
|
||||||
|
'America/Denver' => '(GMT-07:00) Mountain Time (US & Canada)',
|
||||||
|
'America/Chihuahua' => '(GMT-07:00) Chihuahua',
|
||||||
|
'America/Mazatlan' => '(GMT-07:00) Mazatlan',
|
||||||
|
'America/Phoenix' => '(GMT-07:00) Arizona',
|
||||||
|
'America/Regina' => '(GMT-06:00) Saskatchewan',
|
||||||
|
'America/Tegucigalpa' => '(GMT-06:00) Central America',
|
||||||
|
'America/Chicago' => '(GMT-06:00) Central Time (US & Canada)',
|
||||||
|
'America/Mexico_City' => '(GMT-06:00) Mexico City',
|
||||||
|
'America/Monterrey' => '(GMT-06:00) Monterrey',
|
||||||
|
'America/New_York' => '(GMT-05:00) Eastern Time (US & Canada)',
|
||||||
|
'America/Bogota' => '(GMT-05:00) Bogota',
|
||||||
|
'America/Lima' => '(GMT-05:00) Lima',
|
||||||
|
'America/Rio_Branco' => '(GMT-05:00) Rio Branco',
|
||||||
|
'America/Indiana/Indianapolis' => '(GMT-05:00) Indiana (East)',
|
||||||
|
'America/Caracas' => '(GMT-04:30) Caracas',
|
||||||
|
'America/Halifax' => '(GMT-04:00) Atlantic Time (Canada)',
|
||||||
|
'America/Manaus' => '(GMT-04:00) Manaus',
|
||||||
|
'America/Santiago' => '(GMT-04:00) Santiago',
|
||||||
|
'America/La_Paz' => '(GMT-04:00) La Paz',
|
||||||
|
'America/St_Johns' => '(GMT-03:30) Newfoundland',
|
||||||
|
'America/Argentina/Buenos_Aires' => '(GMT-03:00) Georgetown',
|
||||||
|
'America/Sao_Paulo' => '(GMT-03:00) Brasilia',
|
||||||
|
'America/Godthab' => '(GMT-03:00) Greenland',
|
||||||
|
'America/Montevideo' => '(GMT-03:00) Montevideo',
|
||||||
|
'Atlantic/South_Georgia' => '(GMT-02:00) Mid-Atlantic',
|
||||||
|
'Atlantic/Azores' => '(GMT-01:00) Azores',
|
||||||
|
'Atlantic/Cape_Verde' => '(GMT-01:00) Cape Verde Is.',
|
||||||
|
'Europe/Dublin' => '(GMT) Dublin',
|
||||||
|
'Europe/Lisbon' => '(GMT) Lisbon',
|
||||||
|
'Europe/London' => '(GMT) London',
|
||||||
|
'Africa/Monrovia' => '(GMT) Monrovia',
|
||||||
|
'Atlantic/Reykjavik' => '(GMT) Reykjavik',
|
||||||
|
'Africa/Casablanca' => '(GMT) Casablanca',
|
||||||
|
'Europe/Belgrade' => '(GMT+01:00) Belgrade',
|
||||||
|
'Europe/Bratislava' => '(GMT+01:00) Bratislava',
|
||||||
|
'Europe/Budapest' => '(GMT+01:00) Budapest',
|
||||||
|
'Europe/Ljubljana' => '(GMT+01:00) Ljubljana',
|
||||||
|
'Europe/Prague' => '(GMT+01:00) Prague',
|
||||||
|
'Europe/Sarajevo' => '(GMT+01:00) Sarajevo',
|
||||||
|
'Europe/Skopje' => '(GMT+01:00) Skopje',
|
||||||
|
'Europe/Warsaw' => '(GMT+01:00) Warsaw',
|
||||||
|
'Europe/Zagreb' => '(GMT+01:00) Zagreb',
|
||||||
|
'Europe/Brussels' => '(GMT+01:00) Brussels',
|
||||||
|
'Europe/Copenhagen' => '(GMT+01:00) Copenhagen',
|
||||||
|
'Europe/Madrid' => '(GMT+01:00) Madrid',
|
||||||
|
'Europe/Paris' => '(GMT+01:00) Paris',
|
||||||
|
'Africa/Algiers' => '(GMT+01:00) West Central Africa',
|
||||||
|
'Europe/Amsterdam' => '(GMT+01:00) Amsterdam',
|
||||||
|
'Europe/Berlin' => '(GMT+01:00) Berlin',
|
||||||
|
'Europe/Rome' => '(GMT+01:00) Rome',
|
||||||
|
'Europe/Stockholm' => '(GMT+01:00) Stockholm',
|
||||||
|
'Europe/Vienna' => '(GMT+01:00) Vienna',
|
||||||
|
'Europe/Minsk' => '(GMT+02:00) Minsk',
|
||||||
|
'Africa/Cairo' => '(GMT+02:00) Cairo',
|
||||||
|
'Europe/Helsinki' => '(GMT+02:00) Helsinki',
|
||||||
|
'Europe/Riga' => '(GMT+02:00) Riga',
|
||||||
|
'Europe/Sofia' => '(GMT+02:00) Sofia',
|
||||||
|
'Europe/Tallinn' => '(GMT+02:00) Tallinn',
|
||||||
|
'Europe/Vilnius' => '(GMT+02:00) Vilnius',
|
||||||
|
'Europe/Athens' => '(GMT+02:00) Athens',
|
||||||
|
'Europe/Bucharest' => '(GMT+02:00) Bucharest',
|
||||||
|
'Europe/Istanbul' => '(GMT+02:00) Istanbul',
|
||||||
|
'Asia/Jerusalem' => '(GMT+02:00) Jerusalem',
|
||||||
|
'Asia/Amman' => '(GMT+02:00) Amman',
|
||||||
|
'Asia/Beirut' => '(GMT+02:00) Beirut',
|
||||||
|
'Africa/Windhoek' => '(GMT+02:00) Windhoek',
|
||||||
|
'Africa/Harare' => '(GMT+02:00) Harare',
|
||||||
|
'Asia/Kuwait' => '(GMT+03:00) Kuwait',
|
||||||
|
'Asia/Riyadh' => '(GMT+03:00) Riyadh',
|
||||||
|
'Asia/Baghdad' => '(GMT+03:00) Baghdad',
|
||||||
|
'Africa/Nairobi' => '(GMT+03:00) Nairobi',
|
||||||
|
'Asia/Tbilisi' => '(GMT+03:00) Tbilisi',
|
||||||
|
'Europe/Moscow' => '(GMT+03:00) Moscow',
|
||||||
|
'Europe/Volgograd' => '(GMT+03:00) Volgograd',
|
||||||
|
'Asia/Tehran' => '(GMT+03:30) Tehran',
|
||||||
|
'Asia/Muscat' => '(GMT+04:00) Muscat',
|
||||||
|
'Asia/Baku' => '(GMT+04:00) Baku',
|
||||||
|
'Asia/Yerevan' => '(GMT+04:00) Yerevan',
|
||||||
|
'Asia/Yekaterinburg' => '(GMT+05:00) Ekaterinburg',
|
||||||
|
'Asia/Karachi' => '(GMT+05:00) Karachi',
|
||||||
|
'Asia/Tashkent' => '(GMT+05:00) Tashkent',
|
||||||
|
'Asia/Kolkata' => '(GMT+05:30) Calcutta',
|
||||||
|
'Asia/Colombo' => '(GMT+05:30) Sri Jayawardenepura',
|
||||||
|
'Asia/Katmandu' => '(GMT+05:45) Kathmandu',
|
||||||
|
'Asia/Dhaka' => '(GMT+06:00) Dhaka',
|
||||||
|
'Asia/Almaty' => '(GMT+06:00) Almaty',
|
||||||
|
'Asia/Novosibirsk' => '(GMT+06:00) Novosibirsk',
|
||||||
|
'Asia/Rangoon' => '(GMT+06:30) Yangon (Rangoon)',
|
||||||
|
'Asia/Krasnoyarsk' => '(GMT+07:00) Krasnoyarsk',
|
||||||
|
'Asia/Bangkok' => '(GMT+07:00) Bangkok',
|
||||||
|
'Asia/Jakarta' => '(GMT+07:00) Jakarta',
|
||||||
|
'Asia/Brunei' => '(GMT+08:00) Beijing',
|
||||||
|
'Asia/Chongqing' => '(GMT+08:00) Chongqing',
|
||||||
|
'Asia/Hong_Kong' => '(GMT+08:00) Hong Kong',
|
||||||
|
'Asia/Urumqi' => '(GMT+08:00) Urumqi',
|
||||||
|
'Asia/Irkutsk' => '(GMT+08:00) Irkutsk',
|
||||||
|
'Asia/Ulaanbaatar' => '(GMT+08:00) Ulaan Bataar',
|
||||||
|
'Asia/Kuala_Lumpur' => '(GMT+08:00) Kuala Lumpur',
|
||||||
|
'Asia/Singapore' => '(GMT+08:00) Singapore',
|
||||||
|
'Asia/Taipei' => '(GMT+08:00) Taipei',
|
||||||
|
'Australia/Perth' => '(GMT+08:00) Perth',
|
||||||
|
'Asia/Seoul' => '(GMT+09:00) Seoul',
|
||||||
|
'Asia/Tokyo' => '(GMT+09:00) Tokyo',
|
||||||
|
'Asia/Yakutsk' => '(GMT+09:00) Yakutsk',
|
||||||
|
'Australia/Darwin' => '(GMT+09:30) Darwin',
|
||||||
|
'Australia/Adelaide' => '(GMT+09:30) Adelaide',
|
||||||
|
'Australia/Canberra' => '(GMT+10:00) Canberra',
|
||||||
|
'Australia/Melbourne' => '(GMT+10:00) Melbourne',
|
||||||
|
'Australia/Sydney' => '(GMT+10:00) Sydney',
|
||||||
|
'Australia/Brisbane' => '(GMT+10:00) Brisbane',
|
||||||
|
'Australia/Hobart' => '(GMT+10:00) Hobart',
|
||||||
|
'Asia/Vladivostok' => '(GMT+10:00) Vladivostok',
|
||||||
|
'Pacific/Guam' => '(GMT+10:00) Guam',
|
||||||
|
'Pacific/Port_Moresby' => '(GMT+10:00) Port Moresby',
|
||||||
|
'Asia/Magadan' => '(GMT+11:00) Magadan',
|
||||||
|
'Pacific/Fiji' => '(GMT+12:00) Fiji',
|
||||||
|
'Asia/Kamchatka' => '(GMT+12:00) Kamchatka',
|
||||||
|
'Pacific/Auckland' => '(GMT+12:00) Auckland',
|
||||||
|
'Pacific/Tongatapu' => '(GMT+13:00) Nukualofa'
|
||||||
|
);
|
||||||
|
|
||||||
|
function unix_from_local($timestamp)
|
||||||
|
{
|
||||||
|
global $user_preferences;
|
||||||
|
date_default_timezone_set($user_preferences[CPHP_SETTING_TIMEZONE]);
|
||||||
|
return strtotime($timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function unix_from_mysql($timestamp)
|
||||||
|
{
|
||||||
|
date_default_timezone_set("GMT");
|
||||||
|
return strtotime($timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function local_from_unix($timestamp, $format)
|
||||||
|
{
|
||||||
|
global $user_preferences;
|
||||||
|
date_default_timezone_set($user_preferences[CPHP_SETTING_TIMEZONE]);
|
||||||
|
return strftime($format, $timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function gmt_from_unix($timestamp, $format)
|
||||||
|
{
|
||||||
|
date_default_timezone_set("GMT");
|
||||||
|
return strftime($format, $timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function mysql_from_unix($timestamp)
|
||||||
|
{
|
||||||
|
date_default_timezone_set("GMT");
|
||||||
|
return date("Y-m-d H:i:s", $timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function floor_to_day($timestamp)
|
||||||
|
{
|
||||||
|
return floor($timestamp / (60 * 60 * 24)) * (60 * 60 * 24);
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
$cphp_dependencies = array();
|
||||||
|
$cphp_last_dependency = "";
|
||||||
|
|
||||||
|
function cphp_dependency_provides($component, $version)
|
||||||
|
{
|
||||||
|
global $cphp_dependencies, $cphp_last_dependency;
|
||||||
|
$cphp_dependencies[$component] = $version;
|
||||||
|
$cphp_last_dependency = $component;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cphp_dependency_requires($component, $version)
|
||||||
|
{
|
||||||
|
global $cphp_dependencies, $cphp_last_dependency;
|
||||||
|
|
||||||
|
if(!isset($cphp_dependencies[$component]))
|
||||||
|
{
|
||||||
|
die("The {$cphp_last_dependency} component requires the {$component} component to be loaded, but this is not the case.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$current_version = $cphp_dependencies[$component];
|
||||||
|
|
||||||
|
if(!cphp_dependency_match($current_version, $version))
|
||||||
|
{
|
||||||
|
die("The {$cphp_last_dependency} component requires the {$component} component with version {$version} to be loaded, but an incompatible version ({$current_version}) was found.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cphp_dependency_match($available, $required)
|
||||||
|
{
|
||||||
|
if(strpos($required, ",") !== false)
|
||||||
|
{
|
||||||
|
$ranges = explode(",", $required);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ranges[] = $version;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($ranges as $range)
|
||||||
|
{
|
||||||
|
if(strpos($required, "|") !== false)
|
||||||
|
{
|
||||||
|
list($min, $max) = explode("|", $range);
|
||||||
|
|
||||||
|
$f_min = (float) $min;
|
||||||
|
$f_max = (float) $max;
|
||||||
|
$f_cur = (float) $available;
|
||||||
|
|
||||||
|
if(empty($min) && empty($max))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
elseif(empty($min))
|
||||||
|
{
|
||||||
|
if($f_cur < $f_max)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(empty($max))
|
||||||
|
{
|
||||||
|
if($f_cur > $f_min)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($f_cur > $f_min && $f_cur < $f_max)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
class OwnershipException extends Exception {}
|
||||||
|
class UserAccessException extends Exception {}
|
||||||
|
class NotFoundException extends Exception {}
|
||||||
|
class PrototypeException extends Exception {}
|
||||||
|
class ConstructorException extends Exception {}
|
||||||
|
class MissingDataException extends Exception {}
|
||||||
|
class DatabaseException extends Exception {}
|
||||||
|
class TypeException extends Exception {}
|
||||||
|
?>
|
@ -0,0 +1,145 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
if($cphp_memcache_enabled)
|
||||||
|
{
|
||||||
|
$memcache = new Memcache;
|
||||||
|
$cphp_memcache_established = $memcache->connect($cphp_memcache_server, $cphp_memcache_port);
|
||||||
|
|
||||||
|
if($cphp_memcache_established !== false)
|
||||||
|
{
|
||||||
|
$cphp_memcache_connected = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cphp_memcache_connected = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mc_get($key)
|
||||||
|
{
|
||||||
|
global $cphp_memcache_enabled, $cphp_memcache_connected, $memcache;
|
||||||
|
|
||||||
|
if($cphp_memcache_enabled === false || $cphp_memcache_connected === false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$get_result = $memcache->get($key);
|
||||||
|
if($get_result !== false)
|
||||||
|
{
|
||||||
|
return $get_result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mc_set($key, $value, $expiry)
|
||||||
|
{
|
||||||
|
global $cphp_memcache_enabled, $cphp_memcache_connected, $cphp_memcache_compressed, $memcache;
|
||||||
|
|
||||||
|
if($cphp_memcache_enabled === false || $cphp_memcache_connected === false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($cphp_memcache_compressed === true)
|
||||||
|
{
|
||||||
|
$flag = MEMCACHE_COMPRESSED;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$flag = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$set_result = $memcache->set($key, $value, $flag, $expiry);
|
||||||
|
return $set_result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mc_delete($key)
|
||||||
|
{
|
||||||
|
global $cphp_memcache_enabled, $cphp_memcache_connected, $memcache;
|
||||||
|
|
||||||
|
if($cphp_memcache_enabled === false || $cphp_memcache_connected === false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return $memcache->delete($key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mysql_query_cached($query, $expiry = 60, $key = "")
|
||||||
|
{
|
||||||
|
if($key == "")
|
||||||
|
{
|
||||||
|
$key = md5($query) . md5($query . "x");
|
||||||
|
}
|
||||||
|
|
||||||
|
if($res = mc_get($key))
|
||||||
|
{
|
||||||
|
$return_object->source = "memcache";
|
||||||
|
$return_object->data = $res;
|
||||||
|
return $return_object;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($res = mysql_query($query))
|
||||||
|
{
|
||||||
|
$found = false;
|
||||||
|
|
||||||
|
while($row = mysql_fetch_assoc($res))
|
||||||
|
{
|
||||||
|
$return_object->data[] = $row;
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($found === true)
|
||||||
|
{
|
||||||
|
$return_object->source = "database";
|
||||||
|
mc_set($key, $return_object->data, $expiry);
|
||||||
|
return $return_object;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function file_get_contents_cached($path, $expiry = 3600)
|
||||||
|
{
|
||||||
|
if($res = mc_get(md5($path) . md5($path . "x")))
|
||||||
|
{
|
||||||
|
$return_object->source = "memcache";
|
||||||
|
$return_object->data = $res;
|
||||||
|
return $return_object;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($result = file_get_contents($path))
|
||||||
|
{
|
||||||
|
$return_object->source = "disk";
|
||||||
|
$return_object->data = $result;
|
||||||
|
mc_set(md5($path) . md5($path . "x"), $return_object->data, $expiry);
|
||||||
|
return $return_object;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
function random_string($length)
|
||||||
|
{
|
||||||
|
$output = "";
|
||||||
|
for ($i = 0; $i < $length; $i++)
|
||||||
|
{
|
||||||
|
$output .= substr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", mt_rand(0, 61), 1);
|
||||||
|
}
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
function extract_globals()
|
||||||
|
{
|
||||||
|
$vars = array();
|
||||||
|
|
||||||
|
foreach($GLOBALS as $key => $value){
|
||||||
|
$vars[] = "$".$key;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "global " . join(",", $vars) . ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
function utf8entities($utf8)
|
||||||
|
{
|
||||||
|
// Credits to silverbeat@gmx.at (http://www.php.net/manual/en/function.htmlentities.php#96648)
|
||||||
|
$encodeTags = true;
|
||||||
|
$result = '';
|
||||||
|
for ($i = 0; $i < strlen($utf8); $i++)
|
||||||
|
{
|
||||||
|
$char = $utf8[$i];
|
||||||
|
$ascii = ord($char);
|
||||||
|
if ($ascii < 128)
|
||||||
|
{
|
||||||
|
$result .= ($encodeTags) ? htmlentities($char) : $char;
|
||||||
|
}
|
||||||
|
else if ($ascii < 192)
|
||||||
|
{
|
||||||
|
// Do nothing.
|
||||||
|
}
|
||||||
|
else if ($ascii < 224)
|
||||||
|
{
|
||||||
|
$result .= htmlentities(substr($utf8, $i, 2), ENT_QUOTES, 'UTF-8');
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
else if ($ascii < 240)
|
||||||
|
{
|
||||||
|
$ascii1 = ord($utf8[$i+1]);
|
||||||
|
$ascii2 = ord($utf8[$i+2]);
|
||||||
|
$unicode = (15 & $ascii) * 4096 +
|
||||||
|
(63 & $ascii1) * 64 +
|
||||||
|
(63 & $ascii2);
|
||||||
|
$result .= "&#$unicode;";
|
||||||
|
$i += 2;
|
||||||
|
}
|
||||||
|
else if ($ascii < 248)
|
||||||
|
{
|
||||||
|
$ascii1 = ord($utf8[$i+1]);
|
||||||
|
$ascii2 = ord($utf8[$i+2]);
|
||||||
|
$ascii3 = ord($utf8[$i+3]);
|
||||||
|
$unicode = (15 & $ascii) * 262144 +
|
||||||
|
(63 & $ascii1) * 4096 +
|
||||||
|
(63 & $ascii2) * 64 +
|
||||||
|
(63 & $ascii3);
|
||||||
|
$result .= "&#$unicode;";
|
||||||
|
$i += 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_array($arr)
|
||||||
|
{
|
||||||
|
$result = array();
|
||||||
|
foreach($arr as $key => $value)
|
||||||
|
{
|
||||||
|
if(!empty($value))
|
||||||
|
{
|
||||||
|
$result[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_empty($variable)
|
||||||
|
{
|
||||||
|
return (trim($variable) == "");
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
$cphp_mysql_connected = false;
|
||||||
|
|
||||||
|
if($cphp_mysql_enabled === true)
|
||||||
|
{
|
||||||
|
if(mysql_connect($cphp_mysql_host, $cphp_mysql_user, $cphp_mysql_pass))
|
||||||
|
{
|
||||||
|
if(mysql_select_db($cphp_mysql_db))
|
||||||
|
{
|
||||||
|
$cphp_mysql_connected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
if($_CPHP !== true) { die(); }
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
?>
|
After Width: | Height: | Size: 249 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 115 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 106 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,287 @@
|
|||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Layout helpers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-helper-hidden { display: none; }
|
||||||
|
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||||
|
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||||
|
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
||||||
|
.ui-helper-clearfix:after { clear: both; }
|
||||||
|
.ui-helper-clearfix { zoom: 1; }
|
||||||
|
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||||
|
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-disabled { cursor: default !important; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*
|
||||||
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=3d4b8a&bgTextureHeader=07_diagonals_medium.png&bgImgOpacityHeader=15&borderColorHeader=ababab&fcHeader=ffffff&iconColorHeader=cccccc&bgColorContent=121212&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=16&borderColorContent=ababab&fcContent=eeeeee&iconColorContent=bbbbbb&bgColorDefault=adadad&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=35&borderColorDefault=999999&fcDefault=333333&iconColorDefault=666666&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=60&borderColorHover=dddddd&fcHover=000000&iconColorHover=c98000&bgColorActive=121212&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=15&borderColorActive=000000&fcActive=ffffff&iconColorActive=f29a00&bgColorHighlight=555555&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=404040&fcHighlight=cccccc&iconColorHighlight=aaaaaa&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Component containers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 1.1em; }
|
||||||
|
.ui-widget .ui-widget { font-size: 1em; }
|
||||||
|
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; }
|
||||||
|
.ui-widget-content { border: 1px solid #ababab; background: #121212 url(images/ui-bg_gloss-wave_16_121212_500x100.png) 50% top repeat-x; color: #eeeeee; }
|
||||||
|
.ui-widget-content a { color: #eeeeee; }
|
||||||
|
.ui-widget-header { border: 1px solid #ababab; background: #3d4b8a url(images/ui-bg_diagonals-medium_15_3d4b8a_40x40.png) 50% 50% repeat; color: #ffffff; font-weight: bold; }
|
||||||
|
.ui-widget-header a { color: #ffffff; }
|
||||||
|
|
||||||
|
/* Interaction states
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #999999; background: #adadad url(images/ui-bg_highlight-soft_35_adadad_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #333333; }
|
||||||
|
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #333333; text-decoration: none; }
|
||||||
|
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_60_dddddd_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000000; }
|
||||||
|
.ui-state-hover a, .ui-state-hover a:hover { color: #000000; text-decoration: none; }
|
||||||
|
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #000000; background: #121212 url(images/ui-bg_inset-soft_15_121212_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
|
||||||
|
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
|
||||||
|
.ui-widget :active { outline: none; }
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #404040; background: #555555 url(images/ui-bg_highlight-hard_55_555555_1x100.png) 50% top repeat-x; color: #cccccc; }
|
||||||
|
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #cccccc; }
|
||||||
|
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
||||||
|
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
||||||
|
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
||||||
|
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||||
|
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||||
|
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_bbbbbb_256x240.png); }
|
||||||
|
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_bbbbbb_256x240.png); }
|
||||||
|
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); }
|
||||||
|
.ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); }
|
||||||
|
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_c98000_256x240.png); }
|
||||||
|
.ui-state-active .ui-icon {background-image: url(images/ui-icons_f29a00_256x240.png); }
|
||||||
|
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_aaaaaa_256x240.png); }
|
||||||
|
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||||
|
|
||||||
|
/* positioning */
|
||||||
|
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||||
|
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||||
|
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||||
|
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||||
|
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||||
|
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||||
|
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||||
|
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||||
|
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||||
|
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||||
|
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||||
|
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||||
|
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||||
|
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||||
|
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||||
|
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||||
|
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||||
|
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||||
|
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||||
|
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||||
|
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||||
|
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||||
|
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||||
|
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||||
|
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||||
|
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||||
|
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||||
|
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||||
|
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||||
|
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||||
|
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||||
|
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||||
|
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||||
|
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||||
|
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||||
|
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||||
|
.ui-icon-extlink { background-position: -32px -80px; }
|
||||||
|
.ui-icon-newwin { background-position: -48px -80px; }
|
||||||
|
.ui-icon-refresh { background-position: -64px -80px; }
|
||||||
|
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||||
|
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||||
|
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||||
|
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||||
|
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||||
|
.ui-icon-document { background-position: -32px -96px; }
|
||||||
|
.ui-icon-document-b { background-position: -48px -96px; }
|
||||||
|
.ui-icon-note { background-position: -64px -96px; }
|
||||||
|
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||||
|
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||||
|
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||||
|
.ui-icon-comment { background-position: -128px -96px; }
|
||||||
|
.ui-icon-person { background-position: -144px -96px; }
|
||||||
|
.ui-icon-print { background-position: -160px -96px; }
|
||||||
|
.ui-icon-trash { background-position: -176px -96px; }
|
||||||
|
.ui-icon-locked { background-position: -192px -96px; }
|
||||||
|
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||||
|
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||||
|
.ui-icon-tag { background-position: -240px -96px; }
|
||||||
|
.ui-icon-home { background-position: 0 -112px; }
|
||||||
|
.ui-icon-flag { background-position: -16px -112px; }
|
||||||
|
.ui-icon-calendar { background-position: -32px -112px; }
|
||||||
|
.ui-icon-cart { background-position: -48px -112px; }
|
||||||
|
.ui-icon-pencil { background-position: -64px -112px; }
|
||||||
|
.ui-icon-clock { background-position: -80px -112px; }
|
||||||
|
.ui-icon-disk { background-position: -96px -112px; }
|
||||||
|
.ui-icon-calculator { background-position: -112px -112px; }
|
||||||
|
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||||
|
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||||
|
.ui-icon-search { background-position: -160px -112px; }
|
||||||
|
.ui-icon-wrench { background-position: -176px -112px; }
|
||||||
|
.ui-icon-gear { background-position: -192px -112px; }
|
||||||
|
.ui-icon-heart { background-position: -208px -112px; }
|
||||||
|
.ui-icon-star { background-position: -224px -112px; }
|
||||||
|
.ui-icon-link { background-position: -240px -112px; }
|
||||||
|
.ui-icon-cancel { background-position: 0 -128px; }
|
||||||
|
.ui-icon-plus { background-position: -16px -128px; }
|
||||||
|
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||||
|
.ui-icon-minus { background-position: -48px -128px; }
|
||||||
|
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||||
|
.ui-icon-close { background-position: -80px -128px; }
|
||||||
|
.ui-icon-closethick { background-position: -96px -128px; }
|
||||||
|
.ui-icon-key { background-position: -112px -128px; }
|
||||||
|
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||||
|
.ui-icon-scissors { background-position: -144px -128px; }
|
||||||
|
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||||
|
.ui-icon-copy { background-position: -176px -128px; }
|
||||||
|
.ui-icon-contact { background-position: -192px -128px; }
|
||||||
|
.ui-icon-image { background-position: -208px -128px; }
|
||||||
|
.ui-icon-video { background-position: -224px -128px; }
|
||||||
|
.ui-icon-script { background-position: -240px -128px; }
|
||||||
|
.ui-icon-alert { background-position: 0 -144px; }
|
||||||
|
.ui-icon-info { background-position: -16px -144px; }
|
||||||
|
.ui-icon-notice { background-position: -32px -144px; }
|
||||||
|
.ui-icon-help { background-position: -48px -144px; }
|
||||||
|
.ui-icon-check { background-position: -64px -144px; }
|
||||||
|
.ui-icon-bullet { background-position: -80px -144px; }
|
||||||
|
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||||
|
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||||
|
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||||
|
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||||
|
.ui-icon-play { background-position: 0 -160px; }
|
||||||
|
.ui-icon-pause { background-position: -16px -160px; }
|
||||||
|
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||||
|
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||||
|
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||||
|
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||||
|
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||||
|
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||||
|
.ui-icon-stop { background-position: -96px -160px; }
|
||||||
|
.ui-icon-eject { background-position: -112px -160px; }
|
||||||
|
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||||
|
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||||
|
.ui-icon-power { background-position: 0 -176px; }
|
||||||
|
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||||
|
.ui-icon-signal { background-position: -32px -176px; }
|
||||||
|
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||||
|
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||||
|
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||||
|
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||||
|
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||||
|
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||||
|
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||||
|
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||||
|
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||||
|
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||||
|
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||||
|
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||||
|
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||||
|
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||||
|
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||||
|
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||||
|
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||||
|
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||||
|
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||||
|
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||||
|
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||||
|
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||||
|
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||||
|
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||||
|
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||||
|
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||||
|
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||||
|
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||||
|
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||||
|
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Corner radius */
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||||
|
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
|
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 83 B |
After Width: | Height: | Size: 84 B |
After Width: | Height: | Size: 83 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,565 @@
|
|||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Layout helpers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-helper-hidden { display: none; }
|
||||||
|
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||||
|
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||||
|
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
||||||
|
.ui-helper-clearfix:after { clear: both; }
|
||||||
|
.ui-helper-clearfix { zoom: 1; }
|
||||||
|
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||||
|
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-disabled { cursor: default !important; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*
|
||||||
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial,%20sans-serif&fwDefault=bold&fsDefault=1.3em&cornerRadius=4px&bgColorHeader=0b3e6f&bgTextureHeader=08_diagonals_thick.png&bgImgOpacityHeader=15&borderColorHeader=0b3e6f&fcHeader=f6f6f6&iconColorHeader=98d2fb&bgColorContent=111111&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=20&borderColorContent=000000&fcContent=d9d9d9&iconColorContent=9ccdfc&bgColorDefault=333333&bgTextureDefault=09_dots_small.png&bgImgOpacityDefault=20&borderColorDefault=333333&fcDefault=ffffff&iconColorDefault=9ccdfc&bgColorHover=00498f&bgTextureHover=09_dots_small.png&bgImgOpacityHover=40&borderColorHover=222222&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=292929&bgTextureActive=01_flat.png&bgImgOpacityActive=40&borderColorActive=096ac8&fcActive=75abff&iconColorActive=00498f&bgColorHighlight=0b58a2&bgTextureHighlight=10_dots_medium.png&bgImgOpacityHighlight=30&borderColorHighlight=052f57&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=a32d00&bgTextureError=09_dots_small.png&bgImgOpacityError=30&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Component containers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-widget { font-family: Arial, sans-serif; font-size: 1.3em; }
|
||||||
|
.ui-widget .ui-widget { font-size: 1em; }
|
||||||
|
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, sans-serif; font-size: 1em; }
|
||||||
|
.ui-widget-content { border: 1px solid #000000; background: #111111 url(images/ui-bg_gloss-wave_20_111111_500x100.png) 50% top repeat-x; color: #d9d9d9; }
|
||||||
|
.ui-widget-content a { color: #d9d9d9; }
|
||||||
|
.ui-widget-header { border: 1px solid #0b3e6f; background: #0b3e6f url(images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png) 50% 50% repeat; color: #f6f6f6; font-weight: bold; }
|
||||||
|
.ui-widget-header a { color: #f6f6f6; }
|
||||||
|
|
||||||
|
/* Interaction states
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #333333; background: #333333 url(images/ui-bg_dots-small_20_333333_2x2.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
|
||||||
|
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; }
|
||||||
|
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #222222; background: #00498f url(images/ui-bg_dots-small_40_00498f_2x2.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
|
||||||
|
.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
|
||||||
|
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #096ac8; background: #292929 url(images/ui-bg_flat_40_292929_40x100.png) 50% 50% repeat-x; font-weight: bold; color: #75abff; }
|
||||||
|
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #75abff; text-decoration: none; }
|
||||||
|
.ui-widget :active { outline: none; }
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #052f57; background: #0b58a2 url(images/ui-bg_dots-medium_30_0b58a2_4x4.png) 50% 50% repeat; color: #ffffff; }
|
||||||
|
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; }
|
||||||
|
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #a32d00 url(images/ui-bg_dots-small_30_a32d00_2x2.png) 50% 50% repeat; color: #ffffff; }
|
||||||
|
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
||||||
|
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
||||||
|
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||||
|
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||||
|
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_9ccdfc_256x240.png); }
|
||||||
|
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_9ccdfc_256x240.png); }
|
||||||
|
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_98d2fb_256x240.png); }
|
||||||
|
.ui-state-default .ui-icon { background-image: url(images/ui-icons_9ccdfc_256x240.png); }
|
||||||
|
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||||
|
.ui-state-active .ui-icon {background-image: url(images/ui-icons_00498f_256x240.png); }
|
||||||
|
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||||
|
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||||
|
|
||||||
|
/* positioning */
|
||||||
|
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||||
|
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||||
|
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||||
|
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||||
|
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||||
|
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||||
|
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||||
|
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||||
|
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||||
|
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||||
|
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||||
|
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||||
|
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||||
|
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||||
|
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||||
|
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||||
|
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||||
|
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||||
|
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||||
|
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||||
|
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||||
|
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||||
|
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||||
|
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||||
|
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||||
|
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||||
|
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||||
|
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||||
|
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||||
|
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||||
|
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||||
|
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||||
|
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||||
|
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||||
|
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||||
|
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||||
|
.ui-icon-extlink { background-position: -32px -80px; }
|
||||||
|
.ui-icon-newwin { background-position: -48px -80px; }
|
||||||
|
.ui-icon-refresh { background-position: -64px -80px; }
|
||||||
|
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||||
|
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||||
|
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||||
|
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||||
|
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||||
|
.ui-icon-document { background-position: -32px -96px; }
|
||||||
|
.ui-icon-document-b { background-position: -48px -96px; }
|
||||||
|
.ui-icon-note { background-position: -64px -96px; }
|
||||||
|
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||||
|
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||||
|
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||||
|
.ui-icon-comment { background-position: -128px -96px; }
|
||||||
|
.ui-icon-person { background-position: -144px -96px; }
|
||||||
|
.ui-icon-print { background-position: -160px -96px; }
|
||||||
|
.ui-icon-trash { background-position: -176px -96px; }
|
||||||
|
.ui-icon-locked { background-position: -192px -96px; }
|
||||||
|
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||||
|
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||||
|
.ui-icon-tag { background-position: -240px -96px; }
|
||||||
|
.ui-icon-home { background-position: 0 -112px; }
|
||||||
|
.ui-icon-flag { background-position: -16px -112px; }
|
||||||
|
.ui-icon-calendar { background-position: -32px -112px; }
|
||||||
|
.ui-icon-cart { background-position: -48px -112px; }
|
||||||
|
.ui-icon-pencil { background-position: -64px -112px; }
|
||||||
|
.ui-icon-clock { background-position: -80px -112px; }
|
||||||
|
.ui-icon-disk { background-position: -96px -112px; }
|
||||||
|
.ui-icon-calculator { background-position: -112px -112px; }
|
||||||
|
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||||
|
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||||
|
.ui-icon-search { background-position: -160px -112px; }
|
||||||
|
.ui-icon-wrench { background-position: -176px -112px; }
|
||||||
|
.ui-icon-gear { background-position: -192px -112px; }
|
||||||
|
.ui-icon-heart { background-position: -208px -112px; }
|
||||||
|
.ui-icon-star { background-position: -224px -112px; }
|
||||||
|
.ui-icon-link { background-position: -240px -112px; }
|
||||||
|
.ui-icon-cancel { background-position: 0 -128px; }
|
||||||
|
.ui-icon-plus { background-position: -16px -128px; }
|
||||||
|
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||||
|
.ui-icon-minus { background-position: -48px -128px; }
|
||||||
|
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||||
|
.ui-icon-close { background-position: -80px -128px; }
|
||||||
|
.ui-icon-closethick { background-position: -96px -128px; }
|
||||||
|
.ui-icon-key { background-position: -112px -128px; }
|
||||||
|
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||||
|
.ui-icon-scissors { background-position: -144px -128px; }
|
||||||
|
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||||
|
.ui-icon-copy { background-position: -176px -128px; }
|
||||||
|
.ui-icon-contact { background-position: -192px -128px; }
|
||||||
|
.ui-icon-image { background-position: -208px -128px; }
|
||||||
|
.ui-icon-video { background-position: -224px -128px; }
|
||||||
|
.ui-icon-script { background-position: -240px -128px; }
|
||||||
|
.ui-icon-alert { background-position: 0 -144px; }
|
||||||
|
.ui-icon-info { background-position: -16px -144px; }
|
||||||
|
.ui-icon-notice { background-position: -32px -144px; }
|
||||||
|
.ui-icon-help { background-position: -48px -144px; }
|
||||||
|
.ui-icon-check { background-position: -64px -144px; }
|
||||||
|
.ui-icon-bullet { background-position: -80px -144px; }
|
||||||
|
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||||
|
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||||
|
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||||
|
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||||
|
.ui-icon-play { background-position: 0 -160px; }
|
||||||
|
.ui-icon-pause { background-position: -16px -160px; }
|
||||||
|
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||||
|
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||||
|
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||||
|
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||||
|
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||||
|
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||||
|
.ui-icon-stop { background-position: -96px -160px; }
|
||||||
|
.ui-icon-eject { background-position: -112px -160px; }
|
||||||
|
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||||
|
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||||
|
.ui-icon-power { background-position: 0 -176px; }
|
||||||
|
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||||
|
.ui-icon-signal { background-position: -32px -176px; }
|
||||||
|
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||||
|
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||||
|
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||||
|
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||||
|
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||||
|
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||||
|
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||||
|
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||||
|
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||||
|
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||||
|
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||||
|
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||||
|
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||||
|
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||||
|
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||||
|
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||||
|
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||||
|
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||||
|
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||||
|
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||||
|
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||||
|
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||||
|
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||||
|
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||||
|
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||||
|
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||||
|
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||||
|
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||||
|
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||||
|
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Corner radius */
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||||
|
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
||||||
|
* jQuery UI Resizable 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Resizable#theming
|
||||||
|
*/
|
||||||
|
.ui-resizable { position: relative;}
|
||||||
|
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
|
||||||
|
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||||
|
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||||
|
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||||
|
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||||
|
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||||
|
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||||
|
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
||||||
|
* jQuery UI Selectable 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Selectable#theming
|
||||||
|
*/
|
||||||
|
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Accordion 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Accordion#theming
|
||||||
|
*/
|
||||||
|
/* IE/Win - Fix animation bug - #4615 */
|
||||||
|
.ui-accordion { width: 100%; }
|
||||||
|
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||||
|
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||||
|
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
||||||
|
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
||||||
|
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-content-active { display: block; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Autocomplete 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Autocomplete#theming
|
||||||
|
*/
|
||||||
|
.ui-autocomplete { position: absolute; cursor: default; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI Menu 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Menu#theming
|
||||||
|
*/
|
||||||
|
.ui-menu {
|
||||||
|
list-style:none;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 0;
|
||||||
|
display:block;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu {
|
||||||
|
margin-top: -3px;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item {
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
zoom: 1;
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a {
|
||||||
|
text-decoration:none;
|
||||||
|
display:block;
|
||||||
|
padding:.2em .4em;
|
||||||
|
line-height:1.5;
|
||||||
|
zoom:1;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-hover,
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-active {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* jQuery UI Button 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Button#theming
|
||||||
|
*/
|
||||||
|
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
|
||||||
|
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||||
|
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||||
|
.ui-button-icons-only { width: 3.4em; }
|
||||||
|
button.ui-button-icons-only { width: 3.7em; }
|
||||||
|
|
||||||
|
/*button text element */
|
||||||
|
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||||
|
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||||
|
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
||||||
|
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
||||||
|
/* no icon support for input elements, provide padding by default */
|
||||||
|
input.ui-button { padding: .4em 1em; }
|
||||||
|
|
||||||
|
/*button icon element(s) */
|
||||||
|
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
|
||||||
|
/*button sets*/
|
||||||
|
.ui-buttonset { margin-right: 7px; }
|
||||||
|
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||||
|
/*
|
||||||
|
* jQuery UI Dialog 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Dialog#theming
|
||||||
|
*/
|
||||||
|
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
||||||
|
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||||
|
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
||||||
|
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||||
|
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Slider 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Slider#theming
|
||||||
|
*/
|
||||||
|
.ui-slider { position: relative; text-align: left; }
|
||||||
|
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||||
|
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
||||||
|
|
||||||
|
.ui-slider-horizontal { height: .8em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||||
|
|
||||||
|
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||||
|
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||||
|
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
|
||||||
|
* jQuery UI Tabs 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Tabs#theming
|
||||||
|
*/
|
||||||
|
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||||
|
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||||
|
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||||
|
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||||
|
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Datepicker 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Datepicker#theming
|
||||||
|
*/
|
||||||
|
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||||
|
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
||||||
|
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||||
|
.ui-datepicker select.ui-datepicker-month,
|
||||||
|
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||||
|
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||||
|
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||||
|
.ui-datepicker td { border: 0; padding: 1px; }
|
||||||
|
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||||
|
|
||||||
|
/* with multiple calendars */
|
||||||
|
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||||
|
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||||
|
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||||
|
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||||
|
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
||||||
|
|
||||||
|
/* RTL support */
|
||||||
|
.ui-datepicker-rtl { direction: rtl; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
|
||||||
|
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||||
|
.ui-datepicker-cover {
|
||||||
|
display: none; /*sorry for IE5*/
|
||||||
|
display/**/: block; /*sorry for IE5*/
|
||||||
|
position: absolute; /*must have*/
|
||||||
|
z-index: -1; /*must have*/
|
||||||
|
filter: mask(); /*must have*/
|
||||||
|
top: -4px; /*must have*/
|
||||||
|
left: -4px; /*must have*/
|
||||||
|
width: 200px; /*must have*/
|
||||||
|
height: 200px; /*must have*/
|
||||||
|
}/*
|
||||||
|
* jQuery UI Progressbar 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Progressbar#theming
|
||||||
|
*/
|
||||||
|
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
||||||
|
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 178 B |
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 111 B |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 101 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,565 @@
|
|||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Layout helpers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-helper-hidden { display: none; }
|
||||||
|
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||||
|
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||||
|
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
||||||
|
.ui-helper-clearfix:after { clear: both; }
|
||||||
|
.ui-helper-clearfix { zoom: 1; }
|
||||||
|
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||||
|
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-disabled { cursor: default !important; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*
|
||||||
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Component containers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
||||||
|
.ui-widget .ui-widget { font-size: 1em; }
|
||||||
|
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
||||||
|
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
||||||
|
.ui-widget-content a { color: #222222; }
|
||||||
|
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
||||||
|
.ui-widget-header a { color: #222222; }
|
||||||
|
|
||||||
|
/* Interaction states
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
||||||
|
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
||||||
|
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||||
|
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
||||||
|
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||||
|
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
||||||
|
.ui-widget :active { outline: none; }
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
||||||
|
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||||
|
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
||||||
|
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
||||||
|
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
||||||
|
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||||
|
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||||
|
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||||
|
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||||
|
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||||
|
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||||
|
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||||
|
|
||||||
|
/* positioning */
|
||||||
|
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||||
|
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||||
|
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||||
|
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||||
|
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||||
|
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||||
|
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||||
|
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||||
|
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||||
|
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||||
|
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||||
|
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||||
|
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||||
|
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||||
|
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||||
|
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||||
|
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||||
|
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||||
|
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||||
|
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||||
|
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||||
|
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||||
|
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||||
|
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||||
|
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||||
|
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||||
|
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||||
|
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||||
|
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||||
|
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||||
|
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||||
|
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||||
|
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||||
|
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||||
|
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||||
|
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||||
|
.ui-icon-extlink { background-position: -32px -80px; }
|
||||||
|
.ui-icon-newwin { background-position: -48px -80px; }
|
||||||
|
.ui-icon-refresh { background-position: -64px -80px; }
|
||||||
|
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||||
|
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||||
|
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||||
|
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||||
|
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||||
|
.ui-icon-document { background-position: -32px -96px; }
|
||||||
|
.ui-icon-document-b { background-position: -48px -96px; }
|
||||||
|
.ui-icon-note { background-position: -64px -96px; }
|
||||||
|
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||||
|
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||||
|
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||||
|
.ui-icon-comment { background-position: -128px -96px; }
|
||||||
|
.ui-icon-person { background-position: -144px -96px; }
|
||||||
|
.ui-icon-print { background-position: -160px -96px; }
|
||||||
|
.ui-icon-trash { background-position: -176px -96px; }
|
||||||
|
.ui-icon-locked { background-position: -192px -96px; }
|
||||||
|
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||||
|
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||||
|
.ui-icon-tag { background-position: -240px -96px; }
|
||||||
|
.ui-icon-home { background-position: 0 -112px; }
|
||||||
|
.ui-icon-flag { background-position: -16px -112px; }
|
||||||
|
.ui-icon-calendar { background-position: -32px -112px; }
|
||||||
|
.ui-icon-cart { background-position: -48px -112px; }
|
||||||
|
.ui-icon-pencil { background-position: -64px -112px; }
|
||||||
|
.ui-icon-clock { background-position: -80px -112px; }
|
||||||
|
.ui-icon-disk { background-position: -96px -112px; }
|
||||||
|
.ui-icon-calculator { background-position: -112px -112px; }
|
||||||
|
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||||
|
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||||
|
.ui-icon-search { background-position: -160px -112px; }
|
||||||
|
.ui-icon-wrench { background-position: -176px -112px; }
|
||||||
|
.ui-icon-gear { background-position: -192px -112px; }
|
||||||
|
.ui-icon-heart { background-position: -208px -112px; }
|
||||||
|
.ui-icon-star { background-position: -224px -112px; }
|
||||||
|
.ui-icon-link { background-position: -240px -112px; }
|
||||||
|
.ui-icon-cancel { background-position: 0 -128px; }
|
||||||
|
.ui-icon-plus { background-position: -16px -128px; }
|
||||||
|
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||||
|
.ui-icon-minus { background-position: -48px -128px; }
|
||||||
|
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||||
|
.ui-icon-close { background-position: -80px -128px; }
|
||||||
|
.ui-icon-closethick { background-position: -96px -128px; }
|
||||||
|
.ui-icon-key { background-position: -112px -128px; }
|
||||||
|
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||||
|
.ui-icon-scissors { background-position: -144px -128px; }
|
||||||
|
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||||
|
.ui-icon-copy { background-position: -176px -128px; }
|
||||||
|
.ui-icon-contact { background-position: -192px -128px; }
|
||||||
|
.ui-icon-image { background-position: -208px -128px; }
|
||||||
|
.ui-icon-video { background-position: -224px -128px; }
|
||||||
|
.ui-icon-script { background-position: -240px -128px; }
|
||||||
|
.ui-icon-alert { background-position: 0 -144px; }
|
||||||
|
.ui-icon-info { background-position: -16px -144px; }
|
||||||
|
.ui-icon-notice { background-position: -32px -144px; }
|
||||||
|
.ui-icon-help { background-position: -48px -144px; }
|
||||||
|
.ui-icon-check { background-position: -64px -144px; }
|
||||||
|
.ui-icon-bullet { background-position: -80px -144px; }
|
||||||
|
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||||
|
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||||
|
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||||
|
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||||
|
.ui-icon-play { background-position: 0 -160px; }
|
||||||
|
.ui-icon-pause { background-position: -16px -160px; }
|
||||||
|
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||||
|
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||||
|
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||||
|
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||||
|
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||||
|
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||||
|
.ui-icon-stop { background-position: -96px -160px; }
|
||||||
|
.ui-icon-eject { background-position: -112px -160px; }
|
||||||
|
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||||
|
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||||
|
.ui-icon-power { background-position: 0 -176px; }
|
||||||
|
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||||
|
.ui-icon-signal { background-position: -32px -176px; }
|
||||||
|
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||||
|
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||||
|
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||||
|
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||||
|
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||||
|
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||||
|
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||||
|
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||||
|
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||||
|
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||||
|
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||||
|
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||||
|
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||||
|
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||||
|
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||||
|
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||||
|
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||||
|
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||||
|
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||||
|
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||||
|
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||||
|
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||||
|
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||||
|
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||||
|
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||||
|
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||||
|
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||||
|
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||||
|
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||||
|
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Corner radius */
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||||
|
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||||
|
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
||||||
|
* jQuery UI Resizable 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Resizable#theming
|
||||||
|
*/
|
||||||
|
.ui-resizable { position: relative;}
|
||||||
|
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
|
||||||
|
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||||
|
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||||
|
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||||
|
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||||
|
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||||
|
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||||
|
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
||||||
|
* jQuery UI Selectable 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Selectable#theming
|
||||||
|
*/
|
||||||
|
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Accordion 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Accordion#theming
|
||||||
|
*/
|
||||||
|
/* IE/Win - Fix animation bug - #4615 */
|
||||||
|
.ui-accordion { width: 100%; }
|
||||||
|
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||||
|
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||||
|
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
||||||
|
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
||||||
|
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-content-active { display: block; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Autocomplete 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Autocomplete#theming
|
||||||
|
*/
|
||||||
|
.ui-autocomplete { position: absolute; cursor: default; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI Menu 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Menu#theming
|
||||||
|
*/
|
||||||
|
.ui-menu {
|
||||||
|
list-style:none;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 0;
|
||||||
|
display:block;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu {
|
||||||
|
margin-top: -3px;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item {
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
zoom: 1;
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a {
|
||||||
|
text-decoration:none;
|
||||||
|
display:block;
|
||||||
|
padding:.2em .4em;
|
||||||
|
line-height:1.5;
|
||||||
|
zoom:1;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-hover,
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-active {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* jQuery UI Button 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Button#theming
|
||||||
|
*/
|
||||||
|
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
|
||||||
|
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||||
|
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||||
|
.ui-button-icons-only { width: 3.4em; }
|
||||||
|
button.ui-button-icons-only { width: 3.7em; }
|
||||||
|
|
||||||
|
/*button text element */
|
||||||
|
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||||
|
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||||
|
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
||||||
|
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
||||||
|
/* no icon support for input elements, provide padding by default */
|
||||||
|
input.ui-button { padding: .4em 1em; }
|
||||||
|
|
||||||
|
/*button icon element(s) */
|
||||||
|
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
|
||||||
|
/*button sets*/
|
||||||
|
.ui-buttonset { margin-right: 7px; }
|
||||||
|
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||||
|
/*
|
||||||
|
* jQuery UI Dialog 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Dialog#theming
|
||||||
|
*/
|
||||||
|
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
||||||
|
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||||
|
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
||||||
|
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||||
|
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Slider 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Slider#theming
|
||||||
|
*/
|
||||||
|
.ui-slider { position: relative; text-align: left; }
|
||||||
|
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||||
|
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
||||||
|
|
||||||
|
.ui-slider-horizontal { height: .8em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||||
|
|
||||||
|
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||||
|
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||||
|
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
|
||||||
|
* jQuery UI Tabs 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Tabs#theming
|
||||||
|
*/
|
||||||
|
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||||
|
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||||
|
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||||
|
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||||
|
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Datepicker 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Datepicker#theming
|
||||||
|
*/
|
||||||
|
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||||
|
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
||||||
|
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||||
|
.ui-datepicker select.ui-datepicker-month,
|
||||||
|
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||||
|
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||||
|
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||||
|
.ui-datepicker td { border: 0; padding: 1px; }
|
||||||
|
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||||
|
|
||||||
|
/* with multiple calendars */
|
||||||
|
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||||
|
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||||
|
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||||
|
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||||
|
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
||||||
|
|
||||||
|
/* RTL support */
|
||||||
|
.ui-datepicker-rtl { direction: rtl; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
|
||||||
|
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||||
|
.ui-datepicker-cover {
|
||||||
|
display: none; /*sorry for IE5*/
|
||||||
|
display/**/: block; /*sorry for IE5*/
|
||||||
|
position: absolute; /*must have*/
|
||||||
|
z-index: -1; /*must have*/
|
||||||
|
filter: mask(); /*must have*/
|
||||||
|
top: -4px; /*must have*/
|
||||||
|
left: -4px; /*must have*/
|
||||||
|
width: 200px; /*must have*/
|
||||||
|
height: 200px; /*must have*/
|
||||||
|
}/*
|
||||||
|
* jQuery UI Progressbar 1.8.18
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Progressbar#theming
|
||||||
|
*/
|
||||||
|
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
||||||
|
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
@ -0,0 +1,522 @@
|
|||||||
|
/*
|
||||||
|
* File: demo_table_jui.css
|
||||||
|
* CVS: $Id$
|
||||||
|
* Description: CSS descriptions for DataTables demo pages
|
||||||
|
* Author: Allan Jardine
|
||||||
|
* Created: Tue May 12 06:47:22 BST 2009
|
||||||
|
* Modified: $Date$ by $Author$
|
||||||
|
* Language: CSS
|
||||||
|
* Project: DataTables
|
||||||
|
*
|
||||||
|
* Copyright 2009 Allan Jardine. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* ***************************************************************************
|
||||||
|
* DESCRIPTION
|
||||||
|
*
|
||||||
|
* The styles given here are suitable for the demos that are used with the standard DataTables
|
||||||
|
* distribution (see www.datatables.net). You will most likely wish to modify these styles to
|
||||||
|
* meet the layout requirements of your site.
|
||||||
|
*
|
||||||
|
* Common issues:
|
||||||
|
* 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is
|
||||||
|
* no conflict between the two pagination types. If you want to use full_numbers pagination
|
||||||
|
* ensure that you either have "example_alt_pagination" as a body class name, or better yet,
|
||||||
|
* modify that selector.
|
||||||
|
* Note that the path used for Images is relative. All images are by default located in
|
||||||
|
* ../images/ - relative to this CSS file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI specific styling
|
||||||
|
*/
|
||||||
|
|
||||||
|
.paging_two_button .ui-button {
|
||||||
|
float: left;
|
||||||
|
cursor: pointer;
|
||||||
|
* cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers .ui-button {
|
||||||
|
padding: 2px 6px;
|
||||||
|
margin: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
* cursor: hand;
|
||||||
|
color: #333 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_paginate .ui-button {
|
||||||
|
margin-right: -0.1em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers {
|
||||||
|
width: 350px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_wrapper .ui-toolbar {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_paginate {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_info {
|
||||||
|
padding-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display thead th {
|
||||||
|
padding: 3px 0px 3px 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
* cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_wrapper .ui-widget-header {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sort arrow icon positioning
|
||||||
|
*/
|
||||||
|
table.display thead th div.DataTables_sort_wrapper {
|
||||||
|
position: relative;
|
||||||
|
padding-right: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display thead th div.DataTables_sort_wrapper span {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
*
|
||||||
|
* Everything below this line is the same as demo_table.css. This file is
|
||||||
|
* required for 'cleanliness' of the markup
|
||||||
|
*
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* DataTables features
|
||||||
|
*/
|
||||||
|
|
||||||
|
.dataTables_wrapper {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 50%;
|
||||||
|
width: 250px;
|
||||||
|
margin-left: -125px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
text-align: center;
|
||||||
|
color: #999;
|
||||||
|
font-size: 11px;
|
||||||
|
padding: 2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_length {
|
||||||
|
width: 40%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_filter {
|
||||||
|
width: 50%;
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_info {
|
||||||
|
width: 50%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_paginate {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pagination nested */
|
||||||
|
.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
|
||||||
|
height: 19px;
|
||||||
|
width: 19px;
|
||||||
|
margin-left: 3px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_previous {
|
||||||
|
background-image: url('../images/back_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_previous {
|
||||||
|
background-image: url('../images/back_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_disabled_next {
|
||||||
|
background-image: url('../images/forward_disabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginate_enabled_next {
|
||||||
|
background-image: url('../images/forward_enabled.jpg');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* DataTables display
|
||||||
|
*/
|
||||||
|
table.display {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 100%;
|
||||||
|
clear: both;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tfoot th {
|
||||||
|
padding: 3px 0px 3px 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.heading2 td {
|
||||||
|
border-bottom: 1px solid #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display td {
|
||||||
|
padding: 3px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display td.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* DataTables sorting
|
||||||
|
*/
|
||||||
|
|
||||||
|
.sorting_asc {
|
||||||
|
background: url('../images/sort_asc.png') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting_desc {
|
||||||
|
background: url('../images/sort_desc.png') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting {
|
||||||
|
background: url('../images/sort_both.png') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting_asc_disabled {
|
||||||
|
background: url('../images/sort_asc_disabled.png') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sorting_desc_disabled {
|
||||||
|
background: url('../images/sort_desc_disabled.png') no-repeat center right;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* DataTables row classes
|
||||||
|
*/
|
||||||
|
table.display tr.odd.gradeA {
|
||||||
|
background-color: #ddffdd;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.gradeA {
|
||||||
|
background-color: #eeffee;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
table.display tr.odd.gradeA {
|
||||||
|
background-color: #ddffdd;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.gradeA {
|
||||||
|
background-color: #eeffee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.odd.gradeC {
|
||||||
|
background-color: #ddddff;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.gradeC {
|
||||||
|
background-color: #eeeeff;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.odd.gradeX {
|
||||||
|
background-color: #ffdddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.gradeX {
|
||||||
|
background-color: #ffeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.odd.gradeU {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.gradeU {
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tr.odd {
|
||||||
|
background-color: #E2E4FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* Misc
|
||||||
|
*/
|
||||||
|
.dataTables_scroll {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top, .bottom {
|
||||||
|
padding: 15px;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top .dataTables_info {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataTables_empty {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
tfoot input {
|
||||||
|
margin: 0.5em 0;
|
||||||
|
width: 100%;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
tfoot input.search_init {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.group {
|
||||||
|
background-color: #d1cfd0;
|
||||||
|
border-bottom: 2px solid #A19B9E;
|
||||||
|
border-top: 2px solid #A19B9E;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.details {
|
||||||
|
background-color: #d1cfd0;
|
||||||
|
border: 2px solid #A19B9E;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.example_alt_pagination div.dataTables_info {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers a.paginate_button,
|
||||||
|
.paging_full_numbers a.paginate_active {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
padding: 2px 5px;
|
||||||
|
margin: 0 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
color: #333 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers a.paginate_button {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers a.paginate_button:hover {
|
||||||
|
background-color: #ccc;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paging_full_numbers a.paginate_active {
|
||||||
|
background-color: #99B3FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.even.row_selected td {
|
||||||
|
background-color: #B0BED9;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.display tr.odd.row_selected td {
|
||||||
|
background-color: #9FAFD1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sorting classes for columns
|
||||||
|
*/
|
||||||
|
/* For the standard odd/even */
|
||||||
|
tr.odd td.sorting_1 {
|
||||||
|
background-color: #D3D6FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd td.sorting_2 {
|
||||||
|
background-color: #DADCFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd td.sorting_3 {
|
||||||
|
background-color: #E0E2FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even td.sorting_1 {
|
||||||
|
background-color: #EAEBFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even td.sorting_2 {
|
||||||
|
background-color: #F2F3FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even td.sorting_3 {
|
||||||
|
background-color: #F9F9FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* For the Conditional-CSS grading rows */
|
||||||
|
/*
|
||||||
|
Colour calculations (based off the main row colours)
|
||||||
|
Level 1:
|
||||||
|
dd > c4
|
||||||
|
ee > d5
|
||||||
|
Level 2:
|
||||||
|
dd > d1
|
||||||
|
ee > e2
|
||||||
|
*/
|
||||||
|
tr.odd.gradeA td.sorting_1 {
|
||||||
|
background-color: #c4ffc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeA td.sorting_2 {
|
||||||
|
background-color: #d1ffd1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeA td.sorting_3 {
|
||||||
|
background-color: #d1ffd1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeA td.sorting_1 {
|
||||||
|
background-color: #d5ffd5;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeA td.sorting_2 {
|
||||||
|
background-color: #e2ffe2;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeA td.sorting_3 {
|
||||||
|
background-color: #e2ffe2;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeC td.sorting_1 {
|
||||||
|
background-color: #c4c4ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeC td.sorting_2 {
|
||||||
|
background-color: #d1d1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeC td.sorting_3 {
|
||||||
|
background-color: #d1d1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeC td.sorting_1 {
|
||||||
|
background-color: #d5d5ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeC td.sorting_2 {
|
||||||
|
background-color: #e2e2ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeC td.sorting_3 {
|
||||||
|
background-color: #e2e2ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeX td.sorting_1 {
|
||||||
|
background-color: #ffc4c4;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeX td.sorting_2 {
|
||||||
|
background-color: #ffd1d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeX td.sorting_3 {
|
||||||
|
background-color: #ffd1d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeX td.sorting_1 {
|
||||||
|
background-color: #ffd5d5;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeX td.sorting_2 {
|
||||||
|
background-color: #ffe2e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeX td.sorting_3 {
|
||||||
|
background-color: #ffe2e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeU td.sorting_1 {
|
||||||
|
background-color: #c4c4c4;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeU td.sorting_2 {
|
||||||
|
background-color: #d1d1d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.odd.gradeU td.sorting_3 {
|
||||||
|
background-color: #d1d1d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeU td.sorting_1 {
|
||||||
|
background-color: #d5d5d5;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeU td.sorting_2 {
|
||||||
|
background-color: #e2e2e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.even.gradeU td.sorting_3 {
|
||||||
|
background-color: #e2e2e2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Row highlighting example
|
||||||
|
*/
|
||||||
|
.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted {
|
||||||
|
background-color: #ECFFB3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted {
|
||||||
|
background-color: #E6FF99;
|
||||||
|
}
|
@ -0,0 +1,679 @@
|
|||||||
|
html, body
|
||||||
|
{
|
||||||
|
font-size: 0.9em;
|
||||||
|
background-color: #E2E2E2;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body
|
||||||
|
{
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wf-active body
|
||||||
|
{
|
||||||
|
font-family: Oxygen, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear
|
||||||
|
{
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td
|
||||||
|
{
|
||||||
|
/*padding: 3px 8px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
th.icon
|
||||||
|
{
|
||||||
|
width: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.icon, td.icon
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.cpu
|
||||||
|
{
|
||||||
|
font-size: 0.95em;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.bandwidth
|
||||||
|
{
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.provider
|
||||||
|
{
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.guaranteed, td.burst, td.backup, td.diskspace, td.traffic, td.price, td.platform
|
||||||
|
{
|
||||||
|
width: 90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td
|
||||||
|
{
|
||||||
|
height: 17px !important;
|
||||||
|
padding: 3px 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
th
|
||||||
|
{
|
||||||
|
/*height: 34px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#vpslist_paginate a
|
||||||
|
{
|
||||||
|
padding: 2px 4px;
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-icon-triangle-1-n
|
||||||
|
{
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.DataTables_sort_icon
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead th
|
||||||
|
{
|
||||||
|
padding: 3px 4px 3px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table, th, tr, td
|
||||||
|
{
|
||||||
|
border-spacing: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table
|
||||||
|
{
|
||||||
|
border-width: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_slider
|
||||||
|
{
|
||||||
|
width: 200px;
|
||||||
|
margin: 3px 15px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.filter label
|
||||||
|
{
|
||||||
|
font-weight: bold;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_value
|
||||||
|
{
|
||||||
|
margin-top: 2px;
|
||||||
|
/*font-weight: bold;*/
|
||||||
|
color: #000248;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter
|
||||||
|
{
|
||||||
|
padding: 6px;
|
||||||
|
margin: 7px;
|
||||||
|
float: left;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wide
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
width: auto;
|
||||||
|
margin: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter_select
|
||||||
|
{
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sort_list, #sort_dir
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generic CPHP FormBuilder styles start here */
|
||||||
|
|
||||||
|
.cphp_fbd_form
|
||||||
|
{
|
||||||
|
display: table;
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_row
|
||||||
|
{
|
||||||
|
display: table-row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_label, .cphp_fbd_field
|
||||||
|
{
|
||||||
|
display: table-cell;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generic CPHP FormBuilder styles end here */
|
||||||
|
|
||||||
|
.cphp_fbd_form
|
||||||
|
{
|
||||||
|
border-spacing: 4px 7px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.cphp_fbd_label, .cphp_fbd_field
|
||||||
|
{
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_label
|
||||||
|
{
|
||||||
|
text-align: right;
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 1px;
|
||||||
|
padding-top: 5px;
|
||||||
|
vertical-align: top;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_note
|
||||||
|
{
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_field
|
||||||
|
{
|
||||||
|
width: 70%;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_form input, .cphp_fbd_form select, .cphp_fbd_form textarea
|
||||||
|
{
|
||||||
|
border: 1px solid #616161;
|
||||||
|
padding: 4px;
|
||||||
|
width: 90%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-family: 'Open Sans', sans-serif;
|
||||||
|
font-size: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_cblabel
|
||||||
|
{
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_cblabel input
|
||||||
|
{
|
||||||
|
width: auto;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_form button
|
||||||
|
{
|
||||||
|
font-size: 15px;
|
||||||
|
border: 1px solid black;
|
||||||
|
padding: 5px 10px;
|
||||||
|
background-color: #E5E5E5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_form button:hover
|
||||||
|
{
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_form textarea
|
||||||
|
{
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cphp_fbd_fieldset
|
||||||
|
{
|
||||||
|
margin: 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ErrorHandler styles start here */
|
||||||
|
|
||||||
|
.errorhandler
|
||||||
|
{
|
||||||
|
margin: 10px 0px;
|
||||||
|
padding: 8px 10px;
|
||||||
|
padding-left: 46px;
|
||||||
|
background-position: 8px 6px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
min-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler .error-title
|
||||||
|
{
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 120%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler.error-error
|
||||||
|
{
|
||||||
|
background-color: #FCCBC9;
|
||||||
|
border: 1px solid red;
|
||||||
|
background-image: url(images/errorhandler_error.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler.error-info
|
||||||
|
{
|
||||||
|
background-color: #C9F6FC;
|
||||||
|
border: 1px solid blue;
|
||||||
|
background-image: url(images/errorhandler_info.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler.error-warning
|
||||||
|
{
|
||||||
|
background-color: #FBFCC9;
|
||||||
|
border: 1px solid #C5BA00;
|
||||||
|
background-image: url(images/errorhandler_warning.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler.error-success
|
||||||
|
{
|
||||||
|
background-color: #DEFCC9;
|
||||||
|
border: 1px solid #4CC500;
|
||||||
|
background-image: url(images/errorhandler_success.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler ul
|
||||||
|
{
|
||||||
|
margin: 0px;
|
||||||
|
padding-left: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorhandler li
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
/* ErrorHandler styles end here */
|
||||||
|
|
||||||
|
td a
|
||||||
|
{
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
td a:hover
|
||||||
|
{
|
||||||
|
color: #00036F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice-header
|
||||||
|
{
|
||||||
|
padding: 9px;
|
||||||
|
background-color: #92D7FF;
|
||||||
|
border-bottom: 1px solid #006EB0;
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
top: 49px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice
|
||||||
|
{
|
||||||
|
padding: 6px;
|
||||||
|
background-color: #B8E5FF;
|
||||||
|
border: 1px solid #0082D0;
|
||||||
|
margin: 3px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning
|
||||||
|
{
|
||||||
|
padding: 6px;
|
||||||
|
background-color: #FEFFB8;
|
||||||
|
border: 1px solid #ABA901;
|
||||||
|
margin: 3px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
top: 88px;
|
||||||
|
background: -moz-linear-gradient(top, rgba(0,0,0,0.32) 0%, rgba(0,0,0,0) 100%); /* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.32)), color-stop(100%,rgba(0,0,0,0))); /* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, rgba(0,0,0,0.32) 0%,rgba(0,0,0,0) 100%); /* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, rgba(0,0,0,0.32) 0%,rgba(0,0,0,0) 100%); /* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, rgba(0,0,0,0.32) 0%,rgba(0,0,0,0) 100%); /* IE10+ */
|
||||||
|
background: linear-gradient(top, rgba(0,0,0,0.32) 0%,rgba(0,0,0,0) 100%); /* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#52000000', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.header
|
||||||
|
{
|
||||||
|
color: white;
|
||||||
|
background: #45484d; /* Old browsers */
|
||||||
|
background: -moz-linear-gradient(top, #45484d 0%, #000000 100%); /* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#45484d), color-stop(100%,#000000)); /* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #45484d 0%,#000000 100%); /* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, #45484d 0%,#000000 100%); /* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, #45484d 0%,#000000 100%); /* IE10+ */
|
||||||
|
background: linear-gradient(top, #45484d 0%,#000000 100%); /* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 ); /* IE6-9 */
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
height: 49px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#table_main
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
right: 270px;
|
||||||
|
background-color: silver;
|
||||||
|
overflow-x: scroll;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#table_sidebar
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
top: 0px;
|
||||||
|
width: 270px;
|
||||||
|
background: rgb(32,33,35); /* Old browsers */
|
||||||
|
background: -moz-linear-gradient(left, rgba(32,33,35,1) 0%, rgba(0,0,0,1) 100%); /* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(32,33,35,1)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(left, rgba(32,33,35,1) 0%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(left, rgba(32,33,35,1) 0%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(left, rgba(32,33,35,1) 0%,rgba(0,0,0,1) 100%); /* IE10+ */
|
||||||
|
background: linear-gradient(left, rgba(32,33,35,1) 0%,rgba(0,0,0,1) 100%); /* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#202123', endColorstr='#000000',GradientType=1 ); /* IE6-9 */
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header h1
|
||||||
|
{
|
||||||
|
font-size: 28px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 8px 13px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .button
|
||||||
|
{
|
||||||
|
height: 19px;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
padding: 15px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
color: white;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .button:hover
|
||||||
|
{
|
||||||
|
background-color: #484B51;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main
|
||||||
|
{
|
||||||
|
padding: 0px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate
|
||||||
|
{
|
||||||
|
margin: 12px;
|
||||||
|
padding: 11px;
|
||||||
|
border: 2px dashed #767676;
|
||||||
|
background-color: #EFEFEF;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate h2
|
||||||
|
{
|
||||||
|
margin: 3px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate h3
|
||||||
|
{
|
||||||
|
margin: 12px 0px 3px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate p
|
||||||
|
{
|
||||||
|
margin: 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flattr
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
margin-top: 13px;
|
||||||
|
margin-right: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-notices .notice
|
||||||
|
{
|
||||||
|
border-bottom: none;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-notices .warning
|
||||||
|
{
|
||||||
|
border-top: none;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#list
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-even td
|
||||||
|
{
|
||||||
|
background-color: #E6E6E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-odd td
|
||||||
|
{
|
||||||
|
background-color: #CFCFCF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data
|
||||||
|
{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
th
|
||||||
|
{
|
||||||
|
background: #45484d; /* Old browsers */
|
||||||
|
background: -moz-linear-gradient(top, #45484d 0%, #000000 100%); /* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#45484d), color-stop(100%,#000000)); /* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #45484d 0%,#000000 100%); /* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, #45484d 0%,#000000 100%); /* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, #45484d 0%,#000000 100%); /* IE10+ */
|
||||||
|
background: linear-gradient(top, #45484d 0%,#000000 100%); /* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 ); /* IE6-9 */
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody tr
|
||||||
|
{
|
||||||
|
height: 26px;
|
||||||
|
max-height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody td
|
||||||
|
{
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: 17px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info
|
||||||
|
{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10px;
|
||||||
|
left: 10px;
|
||||||
|
right: 10px;
|
||||||
|
border: 1px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination .left, #pagination .right
|
||||||
|
{
|
||||||
|
font-size: 36px;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 2px 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination .left:hover, #pagination .right:hover
|
||||||
|
{
|
||||||
|
background-color: #2F3135;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination .left
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination .right
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
th
|
||||||
|
{
|
||||||
|
padding: 6px 9px;
|
||||||
|
text-align: left;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
th .rotate
|
||||||
|
{
|
||||||
|
/*-webkit-transform: rotate(-18deg);
|
||||||
|
-moz-transform: rotate(-18deg);
|
||||||
|
transform: rotate(-18deg); */
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
th:hover
|
||||||
|
{
|
||||||
|
background: rgb(104,104,104); /* Old browsers */
|
||||||
|
background: -moz-linear-gradient(top, rgba(104,104,104,1) 0%, rgba(22,22,22,1) 100%); /* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(104,104,104,1)), color-stop(100%,rgba(22,22,22,1))); /* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, rgba(104,104,104,1) 0%,rgba(22,22,22,1) 100%); /* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, rgba(104,104,104,1) 0%,rgba(22,22,22,1) 100%); /* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, rgba(104,104,104,1) 0%,rgba(22,22,22,1) 100%); /* IE10+ */
|
||||||
|
background: linear-gradient(top, rgba(104,104,104,1) 0%,rgba(22,22,22,1) 100%); /* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#686868', endColorstr='#161616',GradientType=0 ); /* IE6-9 */
|
||||||
|
}
|
||||||
|
|
||||||
|
#list
|
||||||
|
{
|
||||||
|
width: 1400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sorting_arrow_down, #sorting_arrow_up
|
||||||
|
{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-provider { width: 110px; }
|
||||||
|
.row-plan { min-width: 250px; }
|
||||||
|
.row-platform { width: 110px; }
|
||||||
|
.row-price { width: 120px; }
|
||||||
|
.row-guaranteed { width: 90px; }
|
||||||
|
.row-burstable { width: 90px; }
|
||||||
|
.row-cpu { width: 50px; }
|
||||||
|
.row-disk { width: 90px; }
|
||||||
|
.row-traffic { width: 90px; }
|
||||||
|
.row-bandwidth { width: 100px; }
|
||||||
|
.row-ipv4 { width: 50px; }
|
||||||
|
.row-ipv6 { width: 50px; }
|
||||||
|
.row-irc { width: 50px; }
|
||||||
|
.row-dns { width: 70px; }
|
||||||
|
.row-overage { width: 80px; }
|
||||||
|
.row-backup { width: 80px; }
|
||||||
|
|
||||||
|
/*.inside-plan { min-width: 250px; }*/
|
||||||
|
|
||||||
|
.stretch
|
||||||
|
{
|
||||||
|
width: 1400px;
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-ipv4, .row-ipv6, .row-irc, .row-dns, .row-overage, .row-cpu
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#list
|
||||||
|
{
|
||||||
|
table-layout: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading
|
||||||
|
{
|
||||||
|
color: white;
|
||||||
|
background-color: black;
|
||||||
|
font-size: 42px;
|
||||||
|
padding-top: 150px;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagination
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pagecounter
|
||||||
|
{
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filterbar
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 80px;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filtered-hidden
|
||||||
|
{
|
||||||
|
display: none !important;
|
||||||
|
}
|
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 655 B |
After Width: | Height: | Size: 631 B |
After Width: | Height: | Size: 502 B |
After Width: | Height: | Size: 537 B |
@ -0,0 +1,313 @@
|
|||||||
|
<?php
|
||||||
|
$_VPS = true;
|
||||||
|
$_CPHP = true;
|
||||||
|
require("cphp/base.php");
|
||||||
|
require("classes/class.country.php");
|
||||||
|
require("classes/class.provider.php");
|
||||||
|
require("classes/class.plan.php");
|
||||||
|
require("classes/class.plan.priceoption.php");
|
||||||
|
require("classes/class.plan.locationoption.php");
|
||||||
|
require("classes/class.paymentmethod.php");
|
||||||
|
require("classes/class.virtualizationplatform.php");
|
||||||
|
|
||||||
|
$template['frame'] = new Templater();
|
||||||
|
$template['frame']->Load("frame");
|
||||||
|
$template['frame']->Localize($locale->strings);
|
||||||
|
|
||||||
|
$sPageContents = "";
|
||||||
|
$sPageTitle = "";
|
||||||
|
$sPageHeadScript = "";
|
||||||
|
|
||||||
|
if(empty($_GET['action']) || $_GET['action'] == "home")
|
||||||
|
{
|
||||||
|
// home page
|
||||||
|
header("Location: index.php?action=list");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
elseif($_GET['action'] == "list")
|
||||||
|
{
|
||||||
|
// list/filter
|
||||||
|
$template['main'] = new Templater();
|
||||||
|
$template['main']->Load("page.list");
|
||||||
|
$template['main']->Localize($locale->strings);
|
||||||
|
|
||||||
|
$template['vps'] = new Templater();
|
||||||
|
$template['vps']->Load("element.vps");
|
||||||
|
|
||||||
|
$sList = "";
|
||||||
|
|
||||||
|
$min_ram = 0;
|
||||||
|
$max_ram = 0;
|
||||||
|
$min_burst = 0;
|
||||||
|
$max_burst = 0;
|
||||||
|
$min_disk = 0;
|
||||||
|
$max_disk = 0;
|
||||||
|
$min_traffic = 0;
|
||||||
|
$max_traffic = 0;
|
||||||
|
$min_bandwidth = 0;
|
||||||
|
$max_bandwidth = 0;
|
||||||
|
$min_cpu = 0;
|
||||||
|
$max_cpu = 0;
|
||||||
|
$min_price = 0;
|
||||||
|
$max_price = 0;
|
||||||
|
$min_backup = 0;
|
||||||
|
$max_backup = 0;
|
||||||
|
|
||||||
|
$even = true;
|
||||||
|
|
||||||
|
if($result = mysql_query_cached("SELECT * FROM plans WHERE `Visible` = '1' ORDER BY `VirtualizationPlatformId`, `GuaranteedRam`"))
|
||||||
|
{
|
||||||
|
foreach($result->data as $row)
|
||||||
|
{
|
||||||
|
$plan = new Plan($row);
|
||||||
|
|
||||||
|
if($result = mysql_query_cached("SELECT * FROM plan_priceoptions WHERE `PlanId` = '{$plan->sId}' ORDER BY `BillingPeriod` ASC LIMIT 1"))
|
||||||
|
{
|
||||||
|
$option = new PlanPriceOption($result->data);
|
||||||
|
$sPrice = ($option->sPrice / $option->sBillingPeriod) / 100;
|
||||||
|
$sPriceMonths = $option->sBillingPeriod;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sPrice = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sGuaranteedRam < $min_ram)
|
||||||
|
{
|
||||||
|
$min_ram = $plan->sGuaranteedRam;
|
||||||
|
}
|
||||||
|
elseif($plan->sGuaranteedRam > $max_ram)
|
||||||
|
{
|
||||||
|
$max_ram = $plan->sGuaranteedRam;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sDiskSpace < $min_disk)
|
||||||
|
{
|
||||||
|
$min_disk = $plan->sDiskSpace;
|
||||||
|
}
|
||||||
|
elseif($plan->sDiskSpace > $max_disk)
|
||||||
|
{
|
||||||
|
$max_disk = $plan->sDiskSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sBurstRam < $min_burst)
|
||||||
|
{
|
||||||
|
$min_burst = $plan->sBurstRam;
|
||||||
|
}
|
||||||
|
elseif($plan->sBurstRam > $max_burst)
|
||||||
|
{
|
||||||
|
$max_burst = $plan->sBurstRam;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sTraffic < $min_traffic)
|
||||||
|
{
|
||||||
|
$min_traffic = $plan->sTraffic;
|
||||||
|
}
|
||||||
|
elseif($plan->sTraffic > $max_traffic)
|
||||||
|
{
|
||||||
|
$max_traffic = $plan->sTraffic;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sBandwidth < $min_bandwidth)
|
||||||
|
{
|
||||||
|
$min_bandwidth = $plan->sBandwidth;
|
||||||
|
}
|
||||||
|
elseif($plan->sBandwidth > $max_bandwidth)
|
||||||
|
{
|
||||||
|
$max_bandwidth = $plan->sBandwidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sCpuCores < $min_cpu)
|
||||||
|
{
|
||||||
|
$min_cpu = $plan->sCpuCores;
|
||||||
|
}
|
||||||
|
elseif($plan->sCpuCores > $max_cpu)
|
||||||
|
{
|
||||||
|
$max_cpu = $plan->sCpuCores;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sBackupSpace < $min_backup)
|
||||||
|
{
|
||||||
|
$min_backup = $plan->sBackupSpace;
|
||||||
|
}
|
||||||
|
elseif($plan->sBackupSpace > $max_backup)
|
||||||
|
{
|
||||||
|
$max_backup = $plan->sBackupSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($sPrice < $min_price)
|
||||||
|
{
|
||||||
|
$min_price = $sPrice;
|
||||||
|
}
|
||||||
|
elseif($sPrice > $max_price)
|
||||||
|
{
|
||||||
|
$max_price = $sPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sGuaranteedRam = "{$plan->sGuaranteedRam}MB";
|
||||||
|
$sDiskSpace = "{$plan->sDiskSpace}GB";
|
||||||
|
$sTraffic = ($plan->sIsUnmetered) ? "Unmetered" : "{$plan->sTraffic}GB";
|
||||||
|
$sBandwidth = "@ {$plan->sBandwidth}mbit";
|
||||||
|
$sPlatform = ($plan->sVirtualizationPlatform->sId == 0) ? "Unknown" : $plan->sVirtualizationPlatform->sName;
|
||||||
|
|
||||||
|
$sPrice = number_format($sPrice, 2, ".", "");
|
||||||
|
|
||||||
|
$sPriceOriginal = $sPrice;
|
||||||
|
|
||||||
|
if($sPriceMonths > 1)
|
||||||
|
{
|
||||||
|
$sPrice .= " <strong>(x {$sPriceMonths})</strong>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$sIpv4 = ($plan->sHasIpv4) ? "<img src=\"images/icons/yes.png\" alt=\"Yes\">" : "<img src=\"images/icons/no.png\" alt=\"No\">";
|
||||||
|
$sIpv6 = ($plan->sHasIpv6) ? "<img src=\"images/icons/yes.png\" alt=\"Yes\">" : "<img src=\"images/icons/no.png\" alt=\"No\">";
|
||||||
|
$sIrc = ($plan->sAllowsIrc) ? "<img src=\"images/icons/yes.png\" alt=\"Yes\">" : "<img src=\"images/icons/no.png\" alt=\"No\">";
|
||||||
|
$sFreeDns = ($plan->sFreeDns) ? "<img src=\"images/icons/yes.png\" alt=\"Yes\">" : "<img src=\"images/icons/no.png\" alt=\"No\">";
|
||||||
|
$sOverageBilling = ($plan->sOverageBilling) ? "<img src=\"images/icons/yes.png\" alt=\"Yes\">" : "<img src=\"images/icons/no.png\" alt=\"No\">";
|
||||||
|
$sBackupSpace = ($plan->sBackupSpace == 0) ? "None" : "{$plan->sBackupSpace}GB";
|
||||||
|
$sBurstRam = ($plan->sBurstRam == 0) ? "" : "{$plan->sBurstRam}MB";
|
||||||
|
|
||||||
|
if($plan->sCpuCores == 0)
|
||||||
|
{
|
||||||
|
$sCpuCores = "<img src=\"images/icons/unknown.png\" alt=\"Unknown amount of CPU cores\">";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sCpuCores = $plan->sCpuCores;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plan->sDedicatedCpu === false)
|
||||||
|
{
|
||||||
|
$sCpuCores = "{$sCpuCores} <img src=\"images/icons/shared.png\" alt=\"Shared CPU\" title=\"Shared CPU\">";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sCpuCores = "{$sCpuCores} <img src=\"images/icons/dedicated.png\" alt=\"Dedicated CPU\" title=\"Dedicated CPU\">";
|
||||||
|
}
|
||||||
|
|
||||||
|
$template['vps']->Reset();
|
||||||
|
$template['vps']->Compile(array(
|
||||||
|
'provider-name' => $plan->sProvider->sName,
|
||||||
|
'plan-name' => $plan->sName,
|
||||||
|
'platform' => $sPlatform,
|
||||||
|
'guaranteed-ram' => $sGuaranteedRam,
|
||||||
|
'burst-ram' => $sBurstRam,
|
||||||
|
'cpu-cores' => $sCpuCores,
|
||||||
|
'disk-space' => $sDiskSpace,
|
||||||
|
'traffic' => $sTraffic,
|
||||||
|
'bandwidth' => $sBandwidth,
|
||||||
|
'ipv4' => $sIpv4,
|
||||||
|
'ipv6' => $sIpv6,
|
||||||
|
'irc' => $sIrc,
|
||||||
|
'free-dns' => $sFreeDns,
|
||||||
|
'overage-billing' => $sOverageBilling,
|
||||||
|
'backup-space' => $sBackupSpace,
|
||||||
|
'virtualization-platform' => "OpenVZ",
|
||||||
|
'price' => "\${$sPrice}",
|
||||||
|
'data-provider-id' => $plan->sProvider->sId,
|
||||||
|
'data-cpu-cores' => $plan->sCpuCores,
|
||||||
|
'data-dedicated-cpu' => ($plan->sDedicatedCpu)?1:0,
|
||||||
|
'data-guaranteed-ram' => $plan->sGuaranteedRam,
|
||||||
|
'data-burst-ram' => $plan->sBurstRam,
|
||||||
|
'data-disk-space' => $plan->sDiskSpace,
|
||||||
|
'data-traffic' => $plan->sTraffic,
|
||||||
|
'data-bandwidth' => $plan->sBandwidth,
|
||||||
|
'data-unmetered' => ($plan->sIsUnmetered)?1:0,
|
||||||
|
'data-irc' => ($plan->sAllowsIrc)?1:0,
|
||||||
|
'data-ipv4' => ($plan->sHasIpv4)?1:0,
|
||||||
|
'data-ipv6' => ($plan->sHasIpv6)?1:0,
|
||||||
|
'data-free-dns' => ($plan->sFreeDns)?1:0,
|
||||||
|
'data-overage-billing' => ($plan->sOverageBilling)?1:0,
|
||||||
|
'data-virtualization-platform' => 0,
|
||||||
|
'data-price' => $sPriceOriginal,
|
||||||
|
'data-backup' => $plan->sBackupSpace,
|
||||||
|
'provider-url' => $plan->sProvider->sUrl,
|
||||||
|
'data-platform' => $plan->sVirtualizationPlatform->sId,
|
||||||
|
'color' => ($even) ? "row-even" : "row-odd"
|
||||||
|
));
|
||||||
|
$template['vps']->Localize($locale->strings);
|
||||||
|
$sList .= $template['vps']->Render();
|
||||||
|
|
||||||
|
$even = !$even;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$template['main']->Compile(array(
|
||||||
|
'list' => $sList,
|
||||||
|
'min-ram' => $min_ram,
|
||||||
|
'max-ram' => $max_ram,
|
||||||
|
'min-burst' => $min_burst,
|
||||||
|
'max-burst' => $max_burst,
|
||||||
|
'min-disk' => $min_disk,
|
||||||
|
'max-disk' => $max_disk,
|
||||||
|
'min-traffic' => $min_traffic,
|
||||||
|
'max-traffic' => $max_traffic,
|
||||||
|
'min-bandwidth' => $min_bandwidth,
|
||||||
|
'max-bandwidth' => $max_bandwidth,
|
||||||
|
'min-cpu' => $min_cpu,
|
||||||
|
'max-cpu' => $max_cpu,
|
||||||
|
'min-price' => $min_price,
|
||||||
|
'max-price' => $max_price,
|
||||||
|
'min-backup' => $min_backup,
|
||||||
|
'max-backup' => $max_backup
|
||||||
|
));
|
||||||
|
|
||||||
|
$sPageHeadScript = "var min_ram = {$min_ram}, max_ram = {$max_ram}, min_burst = {$min_burst}, max_burst = {$max_burst}, min_disk = {$min_disk}, max_disk = {$max_disk},
|
||||||
|
min_traffic = {$min_traffic}, max_traffic = {$max_traffic}, min_bandwidth = {$min_bandwidth}, max_bandwidth = {$max_bandwidth}, min_cpu = {$min_cpu}, max_cpu = {$max_cpu},
|
||||||
|
min_price = {$min_price}, max_price = {$max_price}, min_backup = {$min_backup}, max_backup = {$max_backup};";
|
||||||
|
|
||||||
|
$sPageContents = $template['main']->Render();
|
||||||
|
}
|
||||||
|
elseif($_GET['action'] == "donate")
|
||||||
|
{
|
||||||
|
$template['main'] = new Templater();
|
||||||
|
$template['main']->Load("page.donate");
|
||||||
|
$template['main']->Localize($locale->strings);
|
||||||
|
$sPageContents = $template['main']->Render();
|
||||||
|
$sPageTitle = "Donating";
|
||||||
|
}
|
||||||
|
/*elseif($_GET['action'] == "add")
|
||||||
|
{
|
||||||
|
// submission form
|
||||||
|
$template['main'] = new Templater();
|
||||||
|
$template['main']->Load("page.add");
|
||||||
|
$template['main']->Localize($locale->strings);
|
||||||
|
|
||||||
|
$form = new CPHPFormBuilder("post", "?action=add");
|
||||||
|
|
||||||
|
$section_info = new CPHPFormSection(true, "Plan information");
|
||||||
|
$section_info->AddElement(new CPHPFormTextInput("Plan name", "name", "", "The name of the plan as indicated on the providers website"));
|
||||||
|
$select_provider = new CPHPFormSelect("Provider", "provider", "", "The provider offering the plan");
|
||||||
|
$gr1 = new CPHPFormSelectOptionGroup("Group 1");
|
||||||
|
$gr1->AddOption(new CPHPFormSelectOption("val1", "Description 1"));
|
||||||
|
$gr1->AddOption(new CPHPFormSelectOption("val2", "Description 2"));
|
||||||
|
$select_provider->AddOption($gr1);
|
||||||
|
$gr2 = new CPHPFormSelectOptionGroup("Group 2");
|
||||||
|
$gr2->AddOption(new CPHPFormSelectOption("val1", "Description 1"));
|
||||||
|
$gr2->AddOption(new CPHPFormSelectOption("val2", "Description 2"));
|
||||||
|
$select_provider->AddOption($gr2);
|
||||||
|
$gr3 = new CPHPFormSelectOptionGroup("Group 3");
|
||||||
|
$gr3->AddOption(new CPHPFormSelectOption("val1", "Description 1"));
|
||||||
|
$gr3->AddOption(new CPHPFormSelectOption("val2", "Description 2"));
|
||||||
|
$select_provider->AddOption($gr3);
|
||||||
|
$select_provider->AddOption(new CPHPFormSelectOption("val1", "Description 1"));
|
||||||
|
$select_provider->AddOption(new CPHPFormSelectOption("val2", "Description 2"));
|
||||||
|
|
||||||
|
$section_info->AddElement($select_provider);
|
||||||
|
|
||||||
|
$form->AddElement($section_info);
|
||||||
|
|
||||||
|
$template['main']->Compile(array(
|
||||||
|
'form' => $form->Render()
|
||||||
|
));
|
||||||
|
|
||||||
|
$sPageContents = $template['main']->Render();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
$template['frame']->Compile(array(
|
||||||
|
'title' => $sPageTitle,
|
||||||
|
'contents' => $sPageContents,
|
||||||
|
'head-script' => $sPageHeadScript
|
||||||
|
));
|
||||||
|
$template['frame']->Output();
|
||||||
|
?>
|
@ -0,0 +1,519 @@
|
|||||||
|
var debugEl, table, row_count, arrow_down, arrow_up, data_collection;
|
||||||
|
var slider_events = [], filter_stack = [];
|
||||||
|
|
||||||
|
var row_height = 26;
|
||||||
|
var current_start = 0;
|
||||||
|
var total_rows = 0;
|
||||||
|
var total_pages = 0;
|
||||||
|
var current_page = 0;
|
||||||
|
var cur_sort = -1;
|
||||||
|
|
||||||
|
var table_width = 1400;
|
||||||
|
|
||||||
|
var offset = 15;
|
||||||
|
var column_map = {
|
||||||
|
"provider": 0,
|
||||||
|
"name": 1,
|
||||||
|
"cpu": offset + 2,
|
||||||
|
"dedicated": offset + 3,
|
||||||
|
"guaranteed": offset + 4,
|
||||||
|
"burst": offset + 5,
|
||||||
|
"disk": offset + 6,
|
||||||
|
"traffic": offset + 7,
|
||||||
|
"bandwidth": offset + 8,
|
||||||
|
"unmetered": offset + 9,
|
||||||
|
"irc": offset + 10,
|
||||||
|
"ipv4": offset + 11,
|
||||||
|
"ipv6": offset + 12,
|
||||||
|
"dns": offset + 13,
|
||||||
|
"overage": offset + 14,
|
||||||
|
"price": offset + 15,
|
||||||
|
"backup": offset + 16,
|
||||||
|
"platform": offset + 17
|
||||||
|
}
|
||||||
|
|
||||||
|
$(function(){
|
||||||
|
|
||||||
|
arrow_down = $('#sorting_arrow_down').text();
|
||||||
|
arrow_up = $('#sorting_arrow_up').text();
|
||||||
|
|
||||||
|
$("#slider_ram").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_ram,
|
||||||
|
max: max_ram,
|
||||||
|
step: 64,
|
||||||
|
values: [min_ram, max_ram],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_ram_min').html(ui.values[0]);
|
||||||
|
$('#filter_ram_max').html(ui.values[1]);
|
||||||
|
console.log(ui.values[0]);
|
||||||
|
|
||||||
|
if(slider_events['ram'])
|
||||||
|
{
|
||||||
|
slider_events['ram']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_burst").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_burst,
|
||||||
|
max: max_burst,
|
||||||
|
step: 64,
|
||||||
|
values: [min_burst, max_burst],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_burst_min').html(ui.values[0]);
|
||||||
|
$('#filter_burst_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['burst'])
|
||||||
|
{
|
||||||
|
slider_events['burst']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_disk").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_disk,
|
||||||
|
max: max_disk,
|
||||||
|
step: 10,
|
||||||
|
values: [min_disk, max_disk],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_disk_min').html(ui.values[0]);
|
||||||
|
$('#filter_disk_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['disk'])
|
||||||
|
{
|
||||||
|
slider_events['disk']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_traffic").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_traffic,
|
||||||
|
max: max_traffic,
|
||||||
|
step: 100,
|
||||||
|
values: [min_traffic, max_traffic],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
if(ui.values[0] == -1)
|
||||||
|
{
|
||||||
|
$('#filter_traffic_min').html("Unmetered");
|
||||||
|
$('#filter_traffic_max').html("Unmetered");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#filter_traffic_min').html(ui.values[0]);
|
||||||
|
$('#filter_traffic_max').html(ui.values[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(slider_events['traffic'])
|
||||||
|
{
|
||||||
|
slider_events['traffic']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_bandwidth").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_bandwidth,
|
||||||
|
max: max_bandwidth,
|
||||||
|
step: 10,
|
||||||
|
values: [min_bandwidth, max_bandwidth],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_bandwidth_min').html(ui.values[0]);
|
||||||
|
$('#filter_bandwidth_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['bandwidth'])
|
||||||
|
{
|
||||||
|
slider_events['bandwidth']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_cpu").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_cpu,
|
||||||
|
max: max_cpu,
|
||||||
|
step: 1,
|
||||||
|
values: [min_cpu, max_cpu],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_cpu_min').html(ui.values[0]);
|
||||||
|
$('#filter_cpu_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['cpu'])
|
||||||
|
{
|
||||||
|
slider_events['cpu']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_price").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_price,
|
||||||
|
max: max_price,
|
||||||
|
step: 1,
|
||||||
|
values: [min_price, max_price],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_price_min').html(ui.values[0]);
|
||||||
|
$('#filter_price_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['price'])
|
||||||
|
{
|
||||||
|
slider_events['price']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#slider_backup").slider({
|
||||||
|
range: true,
|
||||||
|
min: min_backup,
|
||||||
|
max: max_backup,
|
||||||
|
step: 1,
|
||||||
|
values: [min_backup, max_backup],
|
||||||
|
slide: function(event, ui) {
|
||||||
|
$('#filter_backup_min').html(ui.values[0]);
|
||||||
|
$('#filter_backup_max').html(ui.values[1]);
|
||||||
|
|
||||||
|
if(slider_events['backup'])
|
||||||
|
{
|
||||||
|
slider_events['backup']();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window).resize(function(){
|
||||||
|
redraw_table();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#javascript_notice').hide();
|
||||||
|
|
||||||
|
add_filter_hook("ram", column_map["guaranteed"], 0);
|
||||||
|
add_filter_hook("burst", column_map["burst"], 0);
|
||||||
|
add_filter_hook("disk", column_map["disk"], 0);
|
||||||
|
add_filter_hook("traffic", column_map["traffic"], 0);
|
||||||
|
add_filter_hook("bandwidth", column_map["bandwidth"], 0);
|
||||||
|
add_filter_hook("cpu", column_map["cpu"], 0);
|
||||||
|
add_filter_hook("price", column_map["price"], 0);
|
||||||
|
add_filter_hook("backup", column_map["backup"], 0);
|
||||||
|
|
||||||
|
sort_table(column_map["provider"], $("tr.row-provider")[0], false);
|
||||||
|
|
||||||
|
redraw_table();
|
||||||
|
|
||||||
|
$('.loading').delay(1500).fadeOut(1300);
|
||||||
|
});
|
||||||
|
|
||||||
|
function redraw_table()
|
||||||
|
{
|
||||||
|
if($('#table_main').width() > table_width)
|
||||||
|
{
|
||||||
|
$("#list").css({"width": "100%"});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#list").css({"width": table_width + "px"});
|
||||||
|
}
|
||||||
|
|
||||||
|
row_count = Math.floor(($("#table_main").height() - $("#list thead").height() - scrollbar_height($('#table_main'))) / row_height);
|
||||||
|
|
||||||
|
current_page = Math.floor(current_start / row_count);
|
||||||
|
|
||||||
|
total_rows = $('#list tbody tr.filtered-visible').length;
|
||||||
|
total_pages = Math.floor(total_rows / row_count);
|
||||||
|
|
||||||
|
var even = true;
|
||||||
|
|
||||||
|
$('#list tbody tr.filtered-visible').each(function(index, element){
|
||||||
|
$(element).removeClass("row-odd").removeClass("row-even");
|
||||||
|
|
||||||
|
if(even === true)
|
||||||
|
{
|
||||||
|
$(element).addClass("row-even");
|
||||||
|
even = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(element).addClass("row-odd");
|
||||||
|
even = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(current_page > total_pages)
|
||||||
|
{
|
||||||
|
current_page = total_pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
show_page(current_page);
|
||||||
|
}
|
||||||
|
|
||||||
|
function previous_page()
|
||||||
|
{
|
||||||
|
if(current_page > 0)
|
||||||
|
{
|
||||||
|
current_page -= 1;
|
||||||
|
show_page(current_page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function next_page()
|
||||||
|
{
|
||||||
|
if(current_page < total_pages)
|
||||||
|
{
|
||||||
|
current_page += 1;
|
||||||
|
show_page(current_page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function show_rows(start, count)
|
||||||
|
{
|
||||||
|
var end = start + count - 1;
|
||||||
|
$('#list tbody tr.filtered-visible').each(function(index, element){
|
||||||
|
if(index >= start && index <= end)
|
||||||
|
{
|
||||||
|
$(element).show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(element).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
current_start = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
function show_page(page)
|
||||||
|
{
|
||||||
|
show_rows(page * row_count, row_count);
|
||||||
|
$('#pagecounter').html((current_page + 1) + " / " + (total_pages + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
function sort_table(column, header, numeric)
|
||||||
|
{
|
||||||
|
var rows = $('#list tbody tr');
|
||||||
|
var objs = [];
|
||||||
|
|
||||||
|
rows.each(function(id, element){
|
||||||
|
// array values are faster to sort than DOM elements
|
||||||
|
var cols = [];
|
||||||
|
$(element).children('td').each(function(id2, element2){
|
||||||
|
cols.push($(element2).text());
|
||||||
|
});
|
||||||
|
|
||||||
|
objs.push({
|
||||||
|
"columns": cols,
|
||||||
|
"dom": element
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
debugEl = objs;
|
||||||
|
|
||||||
|
console.log(column);
|
||||||
|
|
||||||
|
console.log($(header).children('.sort-asc').length);
|
||||||
|
console.log($(header).children('.sort-asc'));
|
||||||
|
|
||||||
|
if(cur_sort == column)
|
||||||
|
{
|
||||||
|
// already sorted, just reverse the array
|
||||||
|
objs.reverse();
|
||||||
|
|
||||||
|
$('.sort-arrow').remove();
|
||||||
|
$(header).children('div').append("<span class='sort-arrow sort-desc'> " + arrow_up + "</span>");
|
||||||
|
cur_sort = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// not sorted yet or sorted descending
|
||||||
|
if(numeric === true)
|
||||||
|
{
|
||||||
|
objs.sort(function(a, b){
|
||||||
|
//console.log(a["columns"][column]);
|
||||||
|
//console.log(b["columns"][column]);
|
||||||
|
if(a["columns"][column] == b["columns"][column])
|
||||||
|
{
|
||||||
|
if(a["columns"][column_map["price"]] == b["columns"][column_map["price"]])
|
||||||
|
{
|
||||||
|
nameA = a["columns"][column_map["name"]].toLowerCase();
|
||||||
|
nameB = b["columns"][column_map["name"]].toLowerCase();
|
||||||
|
if(nameA < nameB)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(nameA > nameB)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return a["columns"][column_map["price"]] - b["columns"][column_map["price"]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return a["columns"][column] - b["columns"][column];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
objs.sort(function(a, b){
|
||||||
|
nameA = a["columns"][column].toLowerCase();
|
||||||
|
nameB = b["columns"][column].toLowerCase();
|
||||||
|
if(nameA < nameB)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if(nameA > nameB)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.sort-arrow').remove();
|
||||||
|
$(header).children('div').append("<span class='sort-arrow sort-asc'> " + arrow_down + "</span>");
|
||||||
|
cur_sort = column;
|
||||||
|
}
|
||||||
|
|
||||||
|
data_collection = objs;
|
||||||
|
|
||||||
|
$(objs).each(function(id, element){
|
||||||
|
$(element["dom"]).appendTo('#list');
|
||||||
|
});
|
||||||
|
|
||||||
|
redraw_table();
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollbar_height(element)
|
||||||
|
{
|
||||||
|
/*var original_overflow = element.css("overflow");
|
||||||
|
|
||||||
|
element.css({"overflow":"hidden"});
|
||||||
|
console.log(element.height());
|
||||||
|
var height = element.height();
|
||||||
|
element.css({"overflow":"scroll"});
|
||||||
|
console.log(element.height());
|
||||||
|
height -= element.height();
|
||||||
|
element.css({"overflow":original_overflow});
|
||||||
|
|
||||||
|
return height;*/
|
||||||
|
// Does not work. Why not?
|
||||||
|
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_filter_hook(name, column, type)
|
||||||
|
{
|
||||||
|
// 0 = numeric range
|
||||||
|
// 1 = boolean
|
||||||
|
// 2 = enum
|
||||||
|
|
||||||
|
if(type == 0)
|
||||||
|
{
|
||||||
|
filter_stack.push( function(columns){
|
||||||
|
debugEl = $('#filter_' + name + '_min');
|
||||||
|
var iMin = $('#filter_' + name + '_min').html() * 1;
|
||||||
|
var iMax = $('#filter_' + name + '_max').html() * 1;
|
||||||
|
var iCur = columns[column] == "-" ? 0 : columns[column] * 1;
|
||||||
|
if ( iMin == "" && iMax == "" )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin == "" && iCur <= iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin <= iCur && "" == iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin <= iCur && iCur <= iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
slider_events[name] = function(){ refresh_filter(); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function refresh_filter()
|
||||||
|
{
|
||||||
|
var rows = $('#list tbody tr');
|
||||||
|
var objs = [];
|
||||||
|
|
||||||
|
$(data_collection).each(function(id, element){
|
||||||
|
var show = true;
|
||||||
|
$(filter_stack).each(function(func_id, func_element){
|
||||||
|
if(show === true)
|
||||||
|
{
|
||||||
|
result = func_element(element["columns"]);
|
||||||
|
if(result === false)
|
||||||
|
{
|
||||||
|
show = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(show === false)
|
||||||
|
{
|
||||||
|
$(element["dom"]).removeClass('filtered-visible');
|
||||||
|
$(element["dom"]).addClass('filtered-hidden');
|
||||||
|
//$(element["dom"]).hide();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(element["dom"]).removeClass('filtered-hidden');
|
||||||
|
$(element["dom"]).addClass('filtered-visible');
|
||||||
|
//$(element["dom"]).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
redraw_table();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*$.fn.dataTableExt.afnFiltering.push(
|
||||||
|
function( oSettings, aData, iDataIndex ) {
|
||||||
|
var iMin = document.getElementById('min').value * 1;
|
||||||
|
var iMax = document.getElementById('max').value * 1;
|
||||||
|
var iVersion = aData[3] == "-" ? 0 : aData[3]*1;
|
||||||
|
if ( iMin == "" && iMax == "" )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin == "" && iVersion < iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin < iVersion && "" == iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( iMin < iVersion && iVersion < iMax )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
/* Initialise datatables
|
||||||
|
var oTable = $('#example').dataTable();
|
||||||
|
|
||||||
|
/* Add event listeners to the two range filtering inputs
|
||||||
|
$('#min').keyup( function() { oTable.fnDraw(); } );
|
||||||
|
$('#max').keyup( function() { oTable.fnDraw(); } );
|
||||||
|
} );*/
|
@ -0,0 +1,24 @@
|
|||||||
|
_locale; en_US.UTF-8,en_US
|
||||||
|
_datetime_short; %d/%m/%Y %H:%M:%S
|
||||||
|
_datetime_long; %A %B %d, %Y %H:%M:%S
|
||||||
|
_date_short; %d/%m/%Y
|
||||||
|
_date_long; %A %B %d, %Y
|
||||||
|
_time; %H:%M:%S
|
||||||
|
|
||||||
|
event-now; now
|
||||||
|
event-future; in the future
|
||||||
|
event-past; in the past
|
||||||
|
event-1second-ago; 1 second ago
|
||||||
|
event-seconds-ago; %1$d seconds ago
|
||||||
|
event-1minutes-ago; 1 minute ago
|
||||||
|
event-minutes-ago; %1$d minutes ago
|
||||||
|
event-1hour-ago; 1 hour ago
|
||||||
|
event-hours-ago; %1$d hours ago
|
||||||
|
event-1day-ago; 1 day ago
|
||||||
|
event-days-ago; %1$d days ago
|
||||||
|
event-1week-ago; 1 week ago
|
||||||
|
event-weeks-ago; %1$d weeks ago
|
||||||
|
event-1month-ago; 1 month ago
|
||||||
|
event-months-ago; %1$d months ago
|
||||||
|
event-1year-ago; 1 year ago
|
||||||
|
event-years-ago; %1$d years ago
|
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
$_VPS = true;
|
||||||
|
$_CPHP = true;
|
||||||
|
require("cphp/base.php");
|
||||||
|
require("classes/class.country.php");
|
||||||
|
require("classes/class.provider.php");
|
||||||
|
require("classes/class.plan.php");
|
||||||
|
require("classes/class.plan.priceoption.php");
|
||||||
|
require("classes/class.plan.locationoption.php");
|
||||||
|
require("classes/class.paymentmethod.php");
|
||||||
|
require("classes/class.virtualizationplatform.php");
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
$user = "";
|
||||||
|
$pw = "";
|
||||||
|
|
||||||
|
if(!isset($_SESSION['logged_in']))
|
||||||
|
{
|
||||||
|
if(!isset($_POST['submit']))
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<form method="post" action="mod.php">
|
||||||
|
Username: <input type="text" name="username"><br>
|
||||||
|
Password: <input type="password" name="password"><br>
|
||||||
|
<button type="submit" name="submit" value="submit">Login</button>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_POST['username'] == $user && $_POST['password'] == $pw)
|
||||||
|
{
|
||||||
|
$_SESSION['logged_in'] = true;
|
||||||
|
header("Location: mod.php");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
die("Wrong login details.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!isset($_GET['action']) || $_GET['action'] == "home")
|
||||||
|
{
|
||||||
|
$result = mysql_query_cached("SELECT * FROM plans WHERE `Visible` = '0'", 10);
|
||||||
|
|
||||||
|
foreach($result->data as $row)
|
||||||
|
{
|
||||||
|
$plan = new Plan($row);
|
||||||
|
|
||||||
|
if($result = mysql_query_cached("SELECT * FROM plan_priceoptions WHERE `PlanId` = '{$plan->sId}' ORDER BY `BillingPeriod` ASC LIMIT 1"))
|
||||||
|
{
|
||||||
|
$option = new PlanPriceOption($result->data);
|
||||||
|
$sPrice = ($option->sPrice / $option->sBillingPeriod) / 100;
|
||||||
|
$sPriceMonths = $option->sBillingPeriod;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sPrice = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sPrice = number_format($sPrice, 2, ".", "");
|
||||||
|
|
||||||
|
echo("<a href=\"mod.php?action=accept&plan={$plan->sId}\">[Yes]</a>
|
||||||
|
<a href=\"mod.php?action=reject&plan={$plan->sId}\">[No]</a>
|
||||||
|
{$plan->sProvider->sName} : {$plan->sName} : {$sPrice} : <strong>{$plan->sGuaranteedRam}MB</strong> Guaranteed, <strong>{$plan->sBurstRam}MB</strong> Burst, <strong>{$plan->sDiskSpace}GB</strong> Disk, <strong>{$plan->sCpuCores}</strong> CPU Cores, <strong>{$plan->sTraffic}GB</strong> Traffic, <strong>{$plan->sBandwidth}mbps</strong> Bandwidth
|
||||||
|
<br>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($_GET['action'] == "accept")
|
||||||
|
{
|
||||||
|
$plan = new Plan($_GET['plan']);
|
||||||
|
$plan->uVisible = true;
|
||||||
|
$plan->InsertIntoDatabase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -0,0 +1,333 @@
|
|||||||
|
<?php
|
||||||
|
$_VPS = true;
|
||||||
|
$_CPHP = true;
|
||||||
|
require("cphp/base.php");
|
||||||
|
require("classes/class.country.php");
|
||||||
|
require("classes/class.provider.php");
|
||||||
|
require("classes/class.plan.php");
|
||||||
|
require("classes/class.plan.priceoption.php");
|
||||||
|
require("classes/class.plan.locationoption.php");
|
||||||
|
require("classes/class.paymentmethod.php");
|
||||||
|
require("classes/class.virtualizationplatform.php");
|
||||||
|
|
||||||
|
?>
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,600' rel='stylesheet' type='text/css'>
|
||||||
|
<style>
|
||||||
|
body
|
||||||
|
{
|
||||||
|
font-family: "Open Sans", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success
|
||||||
|
{
|
||||||
|
background-color: #E8FFC8;
|
||||||
|
border: 1px solid #AAFF38;
|
||||||
|
padding: 6px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formfield
|
||||||
|
{
|
||||||
|
margin: 18px 8px;
|
||||||
|
background-color: #F6FFE9;
|
||||||
|
padding: 9px;
|
||||||
|
border: 1px solid #68B800;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2
|
||||||
|
{
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button
|
||||||
|
{
|
||||||
|
display: block;
|
||||||
|
font-size: 21px;
|
||||||
|
margin-left: 200px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: "Open Sans", sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if(!isset($_GET['action']))
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<h1>VPS plan submission page</h1>
|
||||||
|
<p>
|
||||||
|
<strong>Note:</strong> submitting providers or plans does not require registration yet, but every submission will be reviewed before becoming
|
||||||
|
visible. Typically this happens within 1 or 2 days. Since we have no way of contacting you, check back after 2 days to see if your submissions
|
||||||
|
have appeared yet. If not, there was probably an issue with your submission, and you should submit it again with correct details. If you need
|
||||||
|
any help on filling in the submission forms, feel free to <a href="http://irc.lc/cryto/crytocc">drop into IRC</a> and ask joepie91 for help.
|
||||||
|
</p>
|
||||||
|
<a href="?action=provider">Add provider</a><br>
|
||||||
|
<a href="?action=plan">Add plan</a><br>
|
||||||
|
<!-- <a href="?action=prices">Add pricing</a><br> -->
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
elseif($_GET['action'] == "provider")
|
||||||
|
{
|
||||||
|
// form
|
||||||
|
|
||||||
|
if(isset($_POST['submit']))
|
||||||
|
{
|
||||||
|
// process
|
||||||
|
$provider = new Provider(0);
|
||||||
|
$provider->uName = $_POST['name'];
|
||||||
|
$provider->uUrl = $_POST['url'];
|
||||||
|
$provider->uCompanyLocation = $_POST['location'];
|
||||||
|
$provider->uPlanCount = 0;
|
||||||
|
$provider->uUsesMaxmind = 2;
|
||||||
|
$provider->uCustomPossible = false;
|
||||||
|
$provider->uVisible = false;
|
||||||
|
$provider->sSubmissionDate = time();
|
||||||
|
$provider->InsertIntoDatabase();
|
||||||
|
echo("<div class=\"success\">Your submission has been added and will be reviewed shortly. <a href=\"quickadd.php?action=plan&sub={$provider->sId}\">Click here to add plans for the provider you just added.</a></div>");
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<form method="post" action="?action=provider">
|
||||||
|
Provider Name<br>
|
||||||
|
<input type="text" name="name"><br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
URL<br>
|
||||||
|
<input type="text" name="url" value="http://"><br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
Company location (NOT server location!)<br>
|
||||||
|
<input type="text" name="location"><br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<button type="submit" name="submit" value="submit">Submit</button>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
elseif($_GET['action'] == "plan")
|
||||||
|
{
|
||||||
|
if(!isset($_GET['sub']))
|
||||||
|
{
|
||||||
|
// list providers
|
||||||
|
$result = mysql_query_cached("SELECT * FROM providers ORDER BY `Name` ASC");
|
||||||
|
|
||||||
|
foreach($result->data as $row)
|
||||||
|
{
|
||||||
|
$provider = new Provider($row);
|
||||||
|
echo("<a href=\"?action=plan&sub={$provider->sId}\">{$provider->sName}</a><br>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// form
|
||||||
|
$provider_id = $_GET['sub'];
|
||||||
|
$provider = new Provider($provider_id);
|
||||||
|
|
||||||
|
if(isset($_POST['submit']))
|
||||||
|
{
|
||||||
|
// process
|
||||||
|
$price_defined = false;
|
||||||
|
|
||||||
|
foreach($_POST['months'] as $month)
|
||||||
|
{
|
||||||
|
if(!empty($month))
|
||||||
|
{
|
||||||
|
$price_defined = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($price_defined === false)
|
||||||
|
{
|
||||||
|
die("You did not specify any billing periods / prices. Go back and try again.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$plan = new Plan(0);
|
||||||
|
$plan->uProviderId = $provider_id;
|
||||||
|
$plan->uName = $_POST['name'];
|
||||||
|
$plan->uGuaranteedRam = $_POST['guaranteed'];
|
||||||
|
$plan->uBurstRam = $_POST['burst'];
|
||||||
|
$plan->uDiskSpace = $_POST['disk'];
|
||||||
|
$plan->uTraffic = $_POST['traffic'];
|
||||||
|
$plan->uBandwidth = $_POST['bandwidth'];
|
||||||
|
$plan->uBackupSpace = $_POST['backup'];
|
||||||
|
$plan->uCpuCores = $_POST['cores'];
|
||||||
|
$plan->uAllowsIrc = (isset($_POST['irc'])) ? 1 : 0;
|
||||||
|
$plan->uIsUnmetered = isset($_POST['unmetered']);
|
||||||
|
$plan->uHasIpv4 = isset($_POST['ipv4']);
|
||||||
|
$plan->uHasIpv6 = isset($_POST['ipv6']);
|
||||||
|
$plan->uFreeDns = isset($_POST['dns']);
|
||||||
|
$plan->uOverageBilling = isset($_POST['overage']);
|
||||||
|
$plan->uDedicatedCpu = isset($_POST['dedicated_cores']);
|
||||||
|
$plan->uVirtualizationPlatformId = $_POST['platform'];
|
||||||
|
$plan->uVisible = false;
|
||||||
|
$plan->sLastUpdate = time();
|
||||||
|
$plan->sSubmissionDate = time();
|
||||||
|
$plan->InsertIntoDatabase();
|
||||||
|
|
||||||
|
for($i = 0; $i < count($_POST['months']); $i++)
|
||||||
|
{
|
||||||
|
if(!empty($_POST['months'][$i]))
|
||||||
|
{
|
||||||
|
$price = new PlanPriceOption(0);
|
||||||
|
$price->uBillingPeriod = $_POST['months'][$i];
|
||||||
|
$price->uPrice = $_POST['price'][$i] * 100;
|
||||||
|
$price->uPlanId = $plan->sId;
|
||||||
|
$price->InsertIntoDatabase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo("<div class=\"success\">Your submission has been added and will be reviewed shortly.</div>");
|
||||||
|
}
|
||||||
|
|
||||||
|
$platform_list = "<option vale=\"0\">Unknown</option>";
|
||||||
|
$result = mysql_query_cached("SELECT * FROM virtualizationplatforms");
|
||||||
|
|
||||||
|
foreach($result->data as $row)
|
||||||
|
{
|
||||||
|
$platform = new VirtualizationPlatform($row);
|
||||||
|
$platform_list .= "<option value=\"{$platform->sId}\">{$platform->sName}</option>";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo("<h1>Add new plan for {$provider->sName}</h1>");
|
||||||
|
?>
|
||||||
|
<h3>NOTE: Please only add plans in different locations as separate plans, if the specifications are different. If only the location differs, list
|
||||||
|
them as 1 plan! Location data is coming soon.</h3>
|
||||||
|
<h3>NOTE: No discount plans/codes please, only plans that are listed on the website permanently.</h3>
|
||||||
|
<form method="post" action="?action=plan&sub=<?php echo($provider_id); ?>">
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Plan Name</strong><br>
|
||||||
|
<sup>Please use the same name as on your website</sup><br>
|
||||||
|
<input type="text" name="name">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Virtualization platform</strong><br>
|
||||||
|
<sup>Your platform not listed? <a href="http://irc.lc/cryto/crytocc">Contact joepie91 on IRC.</a></sup><br>
|
||||||
|
<select name="platform">
|
||||||
|
<?php echo($platform_list); ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Guaranteed/dedicated RAM</strong><br>
|
||||||
|
<input type="text" name="guaranteed">MB
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Burst RAM</strong><br>
|
||||||
|
<sup><strong>Using OpenVZ Burst RAM?</strong> Enter your amount of burst RAM including the guaranteed RAM.</sup><br>
|
||||||
|
<sup><strong>Using swap or vSwap?</strong> Enter the TOTAL amount of guaranteed RAM + the amount of swap/vSwap. A better method to indicate
|
||||||
|
this will be added in the very near future.</sup><br>
|
||||||
|
<sup><strong>Not using burst, swap, or vSwap?</strong> Leave this field empty.</sup><br>
|
||||||
|
<input type="text" name="burst">MB
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Disk space</strong><br>
|
||||||
|
<input type="text" name="disk">GB
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Traffic</strong><br>
|
||||||
|
<sup><strong>Unmetered?</strong> Leave the input field empty and tick the checkbox.</sup><br>
|
||||||
|
<sup><strong>Unmetered for either only inbound or outbound?</strong> Enter the traffic for the metered part.</sup><br>
|
||||||
|
<input type="text" name="traffic">GB<br>
|
||||||
|
<input type="checkbox" name="unmetered" id="unmetered"> <label for="unmetered">Unmetered</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Port speed / bandwidth (NOT traffic!)</strong><br>
|
||||||
|
<input type="text" name="bandwidth">mbps
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>CPU</strong><br>
|
||||||
|
<sup><strong>No defined amount of cores, or fair-share based on other specs?</strong> Leave this field empty.</sup><br>
|
||||||
|
<input type="text" name="cores"><br>
|
||||||
|
<input type="checkbox" name="dedicated_cores" id="dedicated_cores"> <label for="dedicated_cores">Dedicated</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<strong>Free backup space</strong><br>
|
||||||
|
<sup><strong>Backup space per customer, rather than per plan?</strong> Just enter the backup space per customer, and ensure your website
|
||||||
|
clearly states that backup space is per customer.</sup><br>
|
||||||
|
<sup><strong>Backup space only on ticket request?</strong> Just fill in this field. It's recommended to clearly indicate this on your website.</sup><br>
|
||||||
|
<input type="text" name="backup" value="0">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<input type="checkbox" name="irc" id="irc" checked> <label for="irc">Allows IRC servers<br><sup>(this is only about daemons, not about clients or bouncers)</sup></label>
|
||||||
|
</div>
|
||||||
|
<div class="formfield">
|
||||||
|
<input type="checkbox" name="dns" id="dns"> <label for="dns">Free DNS hosting</label>
|
||||||
|
</div>
|
||||||
|
<div class="formfield">
|
||||||
|
<input type="checkbox" name="ipv4" id="ipv4" checked> <label for="ipv4">IPv4 connectivity</label><br>
|
||||||
|
<input type="checkbox" name="ipv6" id="ipv6"> <label for="ipv6">IPv6 connectivity</label>
|
||||||
|
</div>
|
||||||
|
<div class="formfield">
|
||||||
|
<input type="checkbox" name="overage" id="overage"> <label for="overage">Overage billing<br><sup>(automatic billing for going over traffic quota, as opposed to temporary VPS suspension)</sup></label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formfield">
|
||||||
|
<h2>Billing periods</h2>
|
||||||
|
<h3>For multiple-month billing periods, be sure to enter the TOTAL price for all those months together, and NOT the (discounted) price per month.</h3>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" name="submit" value="submit">Submit</button>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*elseif($_GET['action'] == "prices")
|
||||||
|
{
|
||||||
|
if(!isset($_GET['plan']))
|
||||||
|
{
|
||||||
|
$result = mysql_query_cached("SELECT * FROM plans ORDER BY `ProviderId`");
|
||||||
|
|
||||||
|
foreach($result->data as $row)
|
||||||
|
{
|
||||||
|
$plan = new Plan($row);
|
||||||
|
echo("<a href=\"?action=prices&plan={$plan->sId}\">[{$plan->sProvider->sName}] {$plan->sName}</a><br>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$plan_id = $_GET['plan'];
|
||||||
|
$plan = new Plan($plan_id);
|
||||||
|
|
||||||
|
if(isset($_POST['submit']))
|
||||||
|
{
|
||||||
|
for($i = 0; $i < count($_POST['months']); $i++)
|
||||||
|
{
|
||||||
|
if(!empty($_POST['months'][$i]))
|
||||||
|
{
|
||||||
|
$price = new PlanPriceOption(0);
|
||||||
|
$price->uBillingPeriod = $_POST['months'][$i];
|
||||||
|
$price->uPrice = $_POST['price'][$i] * 100;
|
||||||
|
$price->uPlanId = $plan_id;
|
||||||
|
$price->InsertIntoDatabase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo("<strong>Done!</strong><br>");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<form method="post" action="?action=prices&plan=<?php echo($plan_id); ?>">
|
||||||
|
<h2>Billing options for <?php echo("{$plan->sName} ({$plan->sProvider->sName})"); ?></h2>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
$<input type="text" name="price[]"> per <input type="text" name="months[]"> months<br>
|
||||||
|
|
||||||
|
<button type="submit" name="submit" value="submit">Submit</button>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
?>
|
@ -0,0 +1,101 @@
|
|||||||
|
<tr class="<%?color> filtered-visible">
|
||||||
|
<td class="row-provider">
|
||||||
|
<a href="<%?provider-url>" target="_blank"><%?provider-name></a>
|
||||||
|
</td>
|
||||||
|
<td class="info row-plan">
|
||||||
|
<%?plan-name>
|
||||||
|
</td>
|
||||||
|
<td class="info row-platform">
|
||||||
|
<%?platform>
|
||||||
|
</td>
|
||||||
|
<td class="info row-price">
|
||||||
|
<%?price>
|
||||||
|
</td>
|
||||||
|
<td class="info row-guaranteed">
|
||||||
|
<%?guaranteed-ram>
|
||||||
|
</td>
|
||||||
|
<td class="info row-burst">
|
||||||
|
<%?burst-ram>
|
||||||
|
</td>
|
||||||
|
<td class="info row-cpu">
|
||||||
|
<%?cpu-cores>
|
||||||
|
</td>
|
||||||
|
<td class="info row-diskspace">
|
||||||
|
<%?disk-space>
|
||||||
|
</td>
|
||||||
|
<td class="info row-traffic">
|
||||||
|
<%?traffic>
|
||||||
|
</td>
|
||||||
|
<td class="info row-bandwidth">
|
||||||
|
<%?bandwidth>
|
||||||
|
</td>
|
||||||
|
<td class="info row-ipv4">
|
||||||
|
<%?ipv4>
|
||||||
|
</td>
|
||||||
|
<td class="info row-ipv6">
|
||||||
|
<%?ipv6>
|
||||||
|
</td>
|
||||||
|
<td class="info row-irc">
|
||||||
|
<%?irc>
|
||||||
|
</td>
|
||||||
|
<td class="info row-dns">
|
||||||
|
<%?free-dns>
|
||||||
|
</td>
|
||||||
|
<td class="info row-overage">
|
||||||
|
<%?overage-billing>
|
||||||
|
</td>
|
||||||
|
<td class="info row-backup">
|
||||||
|
<%?backup-space>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-provider-id>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-cpu-cores>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-dedicated-cpu>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-guaranteed-ram>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-burst-ram>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-disk-space>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-traffic>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-bandwidth>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-unmetered>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-irc>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-ipv4>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-ipv6>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-free-dns>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-overage-billing>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-price>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-backup>
|
||||||
|
</td>
|
||||||
|
<td class="data">
|
||||||
|
<%?data-platform>
|
||||||
|
</td>
|
||||||
|
</tr>
|
@ -0,0 +1,67 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<title>VPS Comparison Table</title>
|
||||||
|
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
|
||||||
|
<script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
|
||||||
|
<script type="text/javascript" src="js/sorttable.js"></script>
|
||||||
|
<script type="text/javascript" src="js/vps.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<%?head-script>
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* <![CDATA[ */
|
||||||
|
(function() {
|
||||||
|
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
|
||||||
|
s.type = 'text/javascript';
|
||||||
|
s.async = true;
|
||||||
|
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
|
||||||
|
t.parentNode.insertBefore(s, t);
|
||||||
|
})();
|
||||||
|
/* ]]> */</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
WebFontConfig = {
|
||||||
|
google: { families: [ 'Oxygen' ] }
|
||||||
|
};
|
||||||
|
(function() {
|
||||||
|
var wf = document.createElement('script');
|
||||||
|
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
|
||||||
|
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
|
||||||
|
wf.type = 'text/javascript';
|
||||||
|
wf.async = 'true';
|
||||||
|
var s = document.getElementsByTagName('script')[0];
|
||||||
|
s.parentNode.insertBefore(wf, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||||
|
<link type="text/css" rel="stylesheet" href="css/dot-luv/jquery-ui-1.8.18.custom.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="css/jquery.dataTables.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="css/table.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="css/vps.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="header">
|
||||||
|
<h1>VPS Comparison Table</h1>
|
||||||
|
<a href="index.php?action=list" class="button">The list</a>
|
||||||
|
<a href="http://wiki.cryto.net/doku.php?id=projects:vpslist" target="_blank" class="button">About</a>
|
||||||
|
<a href="quickadd.php" target="_blank" class="button">Submit plans</a>
|
||||||
|
<a href="index.php?action=donate" class="button" style="color: #FFE42D; font-weight: bold;">Donate</a>
|
||||||
|
<div class="flattr">
|
||||||
|
<a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="http://vps-list.cryto.net/"></a>
|
||||||
|
<noscript><a href="http://flattr.com/thing/607780/Cryto-VPS-Comparison-Table" target="_blank">
|
||||||
|
<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></noscript>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<div class="notice-header">
|
||||||
|
<strong>User submission page is now available!</strong> You can now add providers and plans yourself, without having to register. After review by
|
||||||
|
the site administrator they will become visible in the table. <a href="quickadd.php">Click here to go to the user submission page.</a>
|
||||||
|
</div>
|
||||||
|
<div class="main">
|
||||||
|
<%?contents>
|
||||||
|
</div>
|
||||||
|
<div id="sorting_arrow_down">▼</div>
|
||||||
|
<div id="sorting_arrow_up">▲</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,4 @@
|
|||||||
|
<h1>Submit your data</h1>
|
||||||
|
<p>To add a plan to the comparison chart, fill out the form and submit it. Your submission will be reviewed for validity, and eventually made
|
||||||
|
visible on the chart. If the provider offering the plan is not in the database yet, you will be given a chance to add it as well.</p>
|
||||||
|
<%?form>
|
@ -0,0 +1,24 @@
|
|||||||
|
<div class="donate">
|
||||||
|
<h2>Donating to me</h2>
|
||||||
|
<p>I work solely on non-profit projects that I believe are genuinely useful to people; my only income is from donations. If you want to support the work
|
||||||
|
I do (<a href="http://www.cryto.net/">the Cryto Coding Collective</a>, <a href="http://www.anonnews.org/">AnonNews.org</a>, <a href="http://books.cryto.net/">
|
||||||
|
Cryto Books</a>, <a href="http://wiki.cryto.net/doku.php?id=projects:jsde">JSDE</a>, this very site, and many other projects), you can choose to make a
|
||||||
|
donation. Considering I live off a very small budget, and this includes things like food, electricity, and hosting costs, your donation <em>does</em> make
|
||||||
|
a difference!</p>
|
||||||
|
|
||||||
|
<h3>Donating through Bitcoin</h3>
|
||||||
|
<p>You can donate through <a href="http://www.bitcoin.org/">Bitcoin</a> at <a href="bitcoin:1EQoqrJ6HjwzN2JiCowFWqD66YX4S6Xxvt&label=Cryto">1EQoqrJ6HjwzN2JiCowFWqD66YX4S6Xxvt</a>.</p>
|
||||||
|
|
||||||
|
<h3>Donating through Flattr</h3>
|
||||||
|
<p>You can donate to me through Flattr by clicking the Flattr button in the top bar.</p>
|
||||||
|
|
||||||
|
<h3>Donating through PayPal</h3>
|
||||||
|
<p>You can donate to me by clicking the following button (your donation will be listed as a donation to Cryto):</p>
|
||||||
|
<p>
|
||||||
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||||
|
<input type="hidden" name="cmd" value="_s-xclick">
|
||||||
|
<input type="hidden" name="hosted_button_id" value="7V4CE97VK7GZ2">
|
||||||
|
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
|
||||||
|
</form>
|
||||||
|
</p>
|
||||||
|
</div>
|
@ -0,0 +1,200 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
|
||||||
|
<div class="wide" id="sort_options">
|
||||||
|
<strong>Sort by: </strong>
|
||||||
|
<div>
|
||||||
|
<div id="sort_dir">
|
||||||
|
<input type="radio" name="sortdir" value="asc" id="sort_asc" checked>
|
||||||
|
<label for="sort_asc">Ascending</label>
|
||||||
|
<input type="radio" name="sortdir" value="desc" id="sort_desc">
|
||||||
|
<label for="sort_desc">Descending</label>
|
||||||
|
</div>
|
||||||
|
<div id="sort_list">
|
||||||
|
<input type="radio" name="sort" value="provider" id="sort_provider" checked>
|
||||||
|
<label for="sort_provider">Provider</label>
|
||||||
|
<input type="radio" name="sort" value="name" id="sort_name">
|
||||||
|
<label for="sort_name">Plan Name</label>
|
||||||
|
<input type="radio" name="sort" value="platform" id="sort_platform">
|
||||||
|
<label for="sort_platform">Platform</label>
|
||||||
|
<input type="radio" name="sort" value="price" id="sort_price">
|
||||||
|
<label for="sort_price">Price</label>
|
||||||
|
<input type="radio" name="sort" value="guaranteed" id="sort_guaranteed">
|
||||||
|
<label for="sort_guaranteed">Guaranteed RAM</label>
|
||||||
|
<input type="radio" name="sort" value="burst" id="sort_burst">
|
||||||
|
<label for="sort_burst">Burst RAM</label>
|
||||||
|
<input type="radio" name="sort" value="cpu" id="sort_cpu">
|
||||||
|
<label for="sort_cpu">CPU</label>
|
||||||
|
<input type="radio" name="sort" value="disk" id="sort_disk">
|
||||||
|
<label for="sort_disk">Disk</label>
|
||||||
|
<input type="radio" name="sort" value="traffic" id="sort_traffic">
|
||||||
|
<label for="sort_traffic">Traffic</label>
|
||||||
|
<input type="radio" name="sort" value="bandwidth" id="sort_bandwidth">
|
||||||
|
<label for="sort_bandwidth">Bandwidth</label>
|
||||||
|
<input type="radio" name="sort" value="backup" id="sort_backup">
|
||||||
|
<label for="sort_backup">Backup Space</label>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
|
||||||
|
<div class="top-notices">
|
||||||
|
<div class="notice"><strong>NOTE: An 'x 3' (or any other number) suffix in the Price column indicates a minimum billing period.</strong> Example: "$4.99 (x 3)" would indicate a
|
||||||
|
monthly price of $4.99, but a billing period of 3 months. This means you pay $4.99 x 3 = $14.97 per 3 months.</div>
|
||||||
|
<div class="warning"><strong>WARNING:</strong> That a provider is listed here does NOT mean they offer a good service or have a good reputation. Any provider
|
||||||
|
can submit their plans to this site, as long as they have a website. Please do your research before ordering a service at any provider.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<div id="table_main">
|
||||||
|
<div class="loading">
|
||||||
|
Loading...
|
||||||
|
</div>
|
||||||
|
<!-- <div id="javascript_notice">You need Javascript for this table to work.</div> -->
|
||||||
|
<table id="list">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th onclick="sort_table(column_map['provider'], this, false);" class="row-provider"><div class="rotate">Provider</div></th>
|
||||||
|
<th onclick="sort_table(column_map['name'], this, false);" class="row-plan"><div class="rotate inside-plan">Plan Name</div></th>
|
||||||
|
<th onclick="sort_table(column_map['platform'], this, true);" class="row-platform"><div class="rotate">Platform</div></th>
|
||||||
|
<th onclick="sort_table(column_map['price'], this, true);" class="row-price"><div class="rotate">Price / month</div></th>
|
||||||
|
<th onclick="sort_table(column_map['guaranteed'], this, true);" class="row-guaranteed"><div class="rotate">Guaranteed RAM</div></th>
|
||||||
|
<th onclick="sort_table(column_map['burst'], this, true);" class="row-burstable"><div class="rotate">Burstable RAM</div></th>
|
||||||
|
<th onclick="sort_table(column_map['cpu'], this, true);" class="row-cpu"><div class="rotate">CPU</div></th>
|
||||||
|
<th onclick="sort_table(column_map['disk'], this, true);" class="row-disk"><div class="rotate">Disk</div></th>
|
||||||
|
<th onclick="sort_table(column_map['traffic'], this, true);" class="row-traffic"><div class="rotate">Traffic</div></th>
|
||||||
|
<th onclick="sort_table(column_map['bandwidth'], this, true);" class="row-bandwidth"><div class="rotate">Bandwidth</div></th>
|
||||||
|
<th onclick="sort_table(column_map['ipv4'], this, true);" class="row-ipv4"><div class="rotate">IPv4</div></th>
|
||||||
|
<th onclick="sort_table(column_map['ipv6'], this, true);" class="row-ipv6"><div class="rotate">IPv6</div></th>
|
||||||
|
<th onclick="sort_table(column_map['irc'], this, true);" class="row-irc"><div class="rotate">Allows IRC</div></th>
|
||||||
|
<th onclick="sort_table(column_map['dns'], this, true);" class="row-dns"><div class="rotate">Free DNS</div></th>
|
||||||
|
<th onclick="sort_table(column_map['overage'], this, true);" class="row-overage"><div class="rotate">Overage Billing</div></th>
|
||||||
|
<th onclick="sort_table(column_map['backup'], this, true);" class="row-backup"><div class="rotate">Backup Space</div></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
<th class="data"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%?list>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<!-- <div class="stretch"></div> -->
|
||||||
|
</div>
|
||||||
|
<div id="table_sidebar">
|
||||||
|
<div id="filterbar">
|
||||||
|
<div class="filter">
|
||||||
|
<label>Guaranteed RAM:
|
||||||
|
<span id="filter_ram_min"><%?min-ram></span>MB -
|
||||||
|
<span id="filter_ram_max"><%?max-ram></span>MB
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_ram"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Burstable RAM:
|
||||||
|
<span id="filter_burst_min"><%?min-burst></span>MB -
|
||||||
|
<span id="filter_burst_max"><%?max-burst></span>MB
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_burst"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Disk space:
|
||||||
|
<span id="filter_disk_min"><%?min-disk></span>GB -
|
||||||
|
<span id="filter_disk_max"><%?max-disk></span>GB
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_disk"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Traffic:
|
||||||
|
<span id="filter_traffic_min"><%?min-traffic></span>GB -
|
||||||
|
<span id="filter_traffic_max"><%?max-traffic></span>GB
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_traffic"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Bandwidth:
|
||||||
|
<span id="filter_bandwidth_min"><%?min-bandwidth></span>mbit -
|
||||||
|
<span id="filter_bandwidth_max"><%?max-bandwidth></span>mbit
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_bandwidth"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>CPU Cores:
|
||||||
|
<span id="filter_cpu_min"><%?min-cpu></span> cores -
|
||||||
|
<span id="filter_cpu_max"><%?max-cpu></span> cores
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_cpu"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Price:
|
||||||
|
$<span id="filter_price_min"><%?min-price></span> -
|
||||||
|
$<span id="filter_price_max"><%?max-price></span>
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_price"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="filter">
|
||||||
|
<label>Free backup space:
|
||||||
|
<span id="filter_backup_min"><%?min-backup></span>GB -
|
||||||
|
<span id="filter_backup_max"><%?max-backup></span>GB
|
||||||
|
</label>
|
||||||
|
<div class="filter_select">
|
||||||
|
<div class="filter_slider" id="slider_backup"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="pagination">
|
||||||
|
<a class="left" href="#" onclick="previous_page(); return false;">◀</a>
|
||||||
|
<a class="right" href="#" onclick="next_page(); return false;">▶</a>
|
||||||
|
<div id="pagecounter"></div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1 @@
|
|||||||
|
hai
|