From b1818bfa9e343694f915d71e7f2584c72bb1d3c9 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 3 Nov 2011 11:45:39 -0500 Subject: [PATCH 001/343] Update changelog.txt --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index a8dd7703..d36b60e8 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,5 @@ +Version 1.0.2 +------------- Bug Fixes - Fixed the delete confirmation on the admin/pages.php view. From c6c2aac2b060b3b8bbf3dd3c781c50e4cb20bbeb Mon Sep 17 00:00:00 2001 From: Gabe Date: Sat, 5 Nov 2011 00:08:24 -0700 Subject: [PATCH 002/343] 1.1 final quickfix --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index 7f207341..b123147e 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.0.1 \ No newline at end of file +1.1 \ No newline at end of file From 1d2ea6b60be757e41cf4a4d598379c0cea2538fc Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Sat, 5 Nov 2011 13:41:54 -0500 Subject: [PATCH 003/343] Set firstname and lastname fields to NULL in the database install script. In response to a bug report from swicks in the forums --- install/application/models/install_model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/application/models/install_model.php b/install/application/models/install_model.php index 4fc3d678..c377ba0d 100755 --- a/install/application/models/install_model.php +++ b/install/application/models/install_model.php @@ -11,8 +11,8 @@ function get_query($prefix) $query[] = "CREATE TABLE `".$prefix."admin` ( `id` int(10) unsigned NOT NULL auto_increment, - `firstname` varchar(32) collate utf8_general_ci NOT NULL, - `lastname` varchar(32) collate utf8_general_ci NOT NULL, + `firstname` varchar(32) collate utf8_general_ci NULL, + `lastname` varchar(32) collate utf8_general_ci NULL, `email` varchar(128) collate utf8_general_ci NOT NULL, `access` varchar(11) collate utf8_general_ci NOT NULL, `password` varchar(40) collate utf8_general_ci NOT NULL, From 19affb9d2ab505e1c7472fb966b4e776f111b4c2 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 09:02:18 -0600 Subject: [PATCH 004/343] Force_SSL bug fix Force_SSL was trying to force SSL even if SSL isn't enabled. --- gocart/helpers/MY_url_helper.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gocart/helpers/MY_url_helper.php b/gocart/helpers/MY_url_helper.php index a35fdb28..970a0f82 100644 --- a/gocart/helpers/MY_url_helper.php +++ b/gocart/helpers/MY_url_helper.php @@ -23,11 +23,12 @@ function force_ssl() if ( ! function_exists('remove_ssl')) { function remove_ssl() - { - $CI =& get_instance(); - $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']); + { if ($_SERVER['SERVER_PORT'] != 80 || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { + $CI =& get_instance(); + $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']); + redirect($CI->uri->uri_string()); } } From 192f400f4e858ff825d9615c57ecc2d641fca967 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 10:19:08 -0600 Subject: [PATCH 005/343] Fixed some MySQL strict mode bugs --- install/application/models/install_model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/application/models/install_model.php b/install/application/models/install_model.php index c377ba0d..8f1401ec 100755 --- a/install/application/models/install_model.php +++ b/install/application/models/install_model.php @@ -4389,7 +4389,7 @@ function get_query($prefix) `password` varchar(40) collate utf8_general_ci NOT NULL, `active` tinyint(1) NOT NULL, `group_id` int(11) NOT NULL default '1', - `confirmed` tinyint(1) NOT NULL, + `confirmed` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;"; @@ -4610,7 +4610,7 @@ function get_query($prefix) $query[] = "CREATE TABLE `".$prefix."sessions` ( `session_id` varchar(40) NOT NULL default '0', `ip_address` varchar(16) NOT NULL default '0', - `user_agent` varchar(120) NOT NULL, + `user_agent` varchar(120) NULL, `last_activity` int(10) unsigned NOT NULL default '0', `user_data` text NOT NULL, PRIMARY KEY (`session_id`), From 9e28c7a503945645962a8541e85c871699592bde Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 10:19:18 -0600 Subject: [PATCH 006/343] ChangeLog update --- changelog.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.txt b/changelog.txt index b676efa3..21c67a3f 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,12 @@ +Version 1.1.1 + Release date: Nov 7, 2011 + + Bug Fixes + + - Fixed a bug in MY_url_helper that caused Force_SSL to Force SSL even if SSL isn't enabled. + - Fixed a MySQL strict mode bug where administrators do not have a default first and last name. + - Fixed a MySQL Strict Mode bug where UserData is not given a value. + Version 1.1 ------------ Release date: Nov 5, 2011 From f1c0413084399191bf1303145e6c6041d6fe6453 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 12:23:05 -0600 Subject: [PATCH 007/343] Code cleanup replaced set_value() functions with $this->input->post() and eliminated some uneccessary code in the constructor --- gocart/controllers/checkout.php | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index 083af90d..e25002f4 100755 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -15,12 +15,9 @@ class Checkout extends CI_Controller { //load all the pages into this variable so we can call it from all the methods var $pages = ''; - // determine whether to display gift card link on all cart pages var $gift_cards_enabled = false; - var $header_text; - // construct function __construct() { @@ -41,7 +38,6 @@ function __construct() //fill in our variables $this->categories = $this->Category_model->get_categories_tierd(0); $this->pages = $this->Page_model->get_pages(); - $this->header_text = $this->Page_model->get_page(142); $gc_setting = $this->Settings_model->get_settings('gift_cards'); if($gc_setting['enabled']==1) @@ -273,15 +269,15 @@ function save_customer() else { - $customer['bill_address']['firstname'] = set_value('bill_firstname'); - $customer['bill_address']['lastname'] = set_value('bill_lastname'); - $customer['bill_address']['email'] = set_value('bill_email'); - $customer['bill_address']['phone'] = set_value('bill_phone'); - $customer['bill_address']['company'] = set_value('bill_company'); - $customer['bill_address']['address1'] = set_value('bill_address1'); - $customer['bill_address']['address2'] = set_value('bill_address2'); - $customer['bill_address']['city'] = set_value('bill_city'); - $customer['bill_address']['zip'] = set_value('bill_zip'); + $customer['bill_address']['firstname'] = $this->input->post('bill_firstname'); + $customer['bill_address']['lastname'] = $this->input->post('bill_lastname'); + $customer['bill_address']['email'] = $this->input->post('bill_email'); + $customer['bill_address']['phone'] = $this->input->post('bill_phone'); + $customer['bill_address']['company'] = $this->input->post('bill_company'); + $customer['bill_address']['address1'] = $this->input->post('bill_address1'); + $customer['bill_address']['address2'] = $this->input->post('bill_address2'); + $customer['bill_address']['city'] = $this->input->post('bill_city'); + $customer['bill_address']['zip'] = $this->input->post('bill_zip'); // get zone / country data using the zone id submitted as state @@ -291,13 +287,13 @@ function save_customer() $customer['bill_address']['zone'] = $bill_zone->code; // save the state for output formatted addresses $customer['bill_address']['country'] = $bill_country->name; // some shipping libraries require country name $customer['bill_address']['country_code'] = $bill_country->iso_code_2; // some shipping libraries require the code - $customer['bill_address']['zone_id'] = set_value('bill_zone_id'); // use the zone id to populate address state field value - $customer['bill_address']['country_id'] = set_value('bill_country_id'); + $customer['bill_address']['zone_id'] = $this->input->post('bill_zone_id'); // use the zone id to populate address state field value + $customer['bill_address']['country_id'] = $this->input->post('bill_country_id'); // Remember chosen ID - if(empty($customer['default_billing_address']) && set_value('bill_address_id')!='') + if(empty($customer['default_billing_address']) && $this->input->post('bill_address_id')!='') { - $customer['default_billing_address'] = set_value('bill_address_id'); + $customer['default_billing_address'] = $this->input->post('bill_address_id'); } } From 893b21a08bb5466614dcf9192c7fd8fc990e395c Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 12:28:29 -0600 Subject: [PATCH 008/343] Code cleanup changed set_value() to $this->input->post(), fixed some MySQL strict mode bugs and removed unnecessary code. --- gocart/controllers/secure.php | 100 +++++++++++----------------------- 1 file changed, 33 insertions(+), 67 deletions(-) diff --git a/gocart/controllers/secure.php b/gocart/controllers/secure.php index 1b485e1a..d869788e 100755 --- a/gocart/controllers/secure.php +++ b/gocart/controllers/secure.php @@ -19,8 +19,6 @@ class Secure extends CI_Controller { var $customer; - var $header_text; - function __construct() { parent::__construct(); @@ -37,9 +35,9 @@ function __construct() //fill up our categories variable $this->categories = $this->Category_model->get_categories_tierd(0); - $this->pages = $this->Page_model->get_pages(0, array(138)); - $this->header_text = $this->Page_model->get_page(142); + $this->pages = $this->Page_model->get_pages(); $gc_setting = $this->Settings_model->get_settings('gift_cards'); + if(!empty($gc_setting['enabled']) && $gc_setting['enabled']==1) $this->gift_cards_enabled = true; } @@ -198,15 +196,15 @@ function register() $save['id'] = false; - $save['firstname'] = set_value('firstname'); - $save['lastname'] = set_value('lastname'); - $save['email'] = set_value('email'); - $save['phone'] = set_value('phone'); - $save['company'] = set_value('company'); + $save['firstname'] = $this->input->post('firstname'); + $save['lastname'] = $this->input->post('lastname'); + $save['email'] = $this->input->post('email'); + $save['phone'] = $this->input->post('phone'); + $save['company'] = $this->input->post('company'); $save['active'] = $this->config->item('new_customer_status'); - $save['email_subscribe'] = set_value('email_subscribe'); + $save['email_subscribe'] = intval((bool)$this->input->post('email_subscribe')); - $save['password'] = set_value('password'); + $save['password'] = $this->input->post('password'); $redirect = $this->input->post('redirect'); @@ -227,8 +225,8 @@ function register() // set replacement values for subject & body // {customer_name} - $row['subject'] = str_replace('{customer_name}', set_value('firstname').' '. set_value('lastname'), $row['subject']); - $row['content'] = str_replace('{customer_name}', set_value('firstname').' '. set_value('lastname'), $row['content']); + $row['subject'] = str_replace('{customer_name}', $this->input->post('firstname').' '. $this->input->post('lastname'), $row['subject']); + $row['content'] = str_replace('{customer_name}', $this->input->post('firstname').' '. $this->input->post('lastname'), $row['content']); // {url} $row['subject'] = str_replace('{url}', $this->config->item('base_url'), $row['subject']); @@ -252,10 +250,10 @@ function register() $this->email->send(); - $this->session->set_flashdata('message', 'Thanks for registering '.set_value('firstname').'!'); + $this->session->set_flashdata('message', 'Thanks for registering '.$this->input->post('firstname').'!'); //lets automatically log them in - $this->Customer_model->login($save['email'], set_value('confirm')); + $this->Customer_model->login($save['email'], $this->input->post('confirm')); //we're just going to make this secure regardless, because we don't know if they are //wanting to redirect to an insecure location, if it needs to be secured then we can use the secure redirect in the controller @@ -398,31 +396,24 @@ function my_account($offset=0) else { $customer = array(); - $customer['id'] = $this->customer['id']; - $customer['company'] = set_value('company'); - $customer['firstname'] = set_value('firstname'); - $customer['lastname'] = set_value('lastname'); - $customer['email'] = set_value('email'); - $customer['phone'] = set_value('phone'); - $customer['email_subscribe'] = set_value('email_subscribe'); + $customer['id'] = $this->customer['id']; + $customer['company'] = $this->input->post('company'); + $customer['firstname'] = $this->input->post('firstname'); + $customer['lastname'] = $this->input->post('lastname'); + $customer['email'] = $this->input->post('email'); + $customer['phone'] = $this->input->post('phone'); + $customer['email_subscribe'] = intval((bool)$this->input->post('email_subscribe')); if($this->input->post('password') != '') { - $customer['password'] = set_value('password'); + $customer['password'] = $this->input->post('password'); } - $this->customer['company'] = set_value('company'); - $this->customer['firstname'] = set_value('firstname'); - $this->customer['lastname'] = set_value('lastname'); - $this->customer['email'] = set_value('email'); - $this->customer['phone'] = set_value('phone'); - $this->customer['email_subscribe'] = set_value('email_subscribe'); - + $this->go_cart->save_customer($this->customer); $this->Customer_model->save($customer); $this->session->set_flashdata('message', 'Your account has been updated'); redirect('secure/my_account'); - //$this->load->view('my_account', $data); } } @@ -557,15 +548,15 @@ function address_form($id = 0) $a = array(); $a['id'] = ($id==0) ? '' : $id; $a['customer_id'] = $this->customer['id']; - $a['field_data']['company'] = set_value('company'); - $a['field_data']['firstname'] = set_value('firstname'); - $a['field_data']['lastname'] = set_value('lastname'); - $a['field_data']['email'] = set_value('email'); - $a['field_data']['phone'] = set_value('phone'); - $a['field_data']['address1'] = set_value('address1'); - $a['field_data']['address2'] = set_value('address2'); - $a['field_data']['city'] = set_value('city'); - $a['field_data']['zip'] = set_value('zip'); + $a['field_data']['company'] = $this->input->post('company'); + $a['field_data']['firstname'] = $this->input->post('firstname'); + $a['field_data']['lastname'] = $this->input->post('lastname'); + $a['field_data']['email'] = $this->input->post('email'); + $a['field_data']['phone'] = $this->input->post('phone'); + $a['field_data']['address1'] = $this->input->post('address1'); + $a['field_data']['address2'] = $this->input->post('address2'); + $a['field_data']['city'] = $this->input->post('city'); + $a['field_data']['zip'] = $this->input->post('zip'); // get zone / country data using the zone id submitted as state $country = $this->location_model->get_country(set_value('country_id')); @@ -575,8 +566,8 @@ function address_form($id = 0) $a['field_data']['zone'] = $zone->code; // save the state for output formatted addresses $a['field_data']['country'] = $country->name; // some shipping libraries require country name $a['field_data']['country_code'] = $country->iso_code_2; // some shipping libraries require the code - $a['field_data']['country_id'] = set_value('country_id'); - $a['field_data']['zone_id'] = set_value('zone_id'); + $a['field_data']['country_id'] = $this->input->post('country_id'); + $a['field_data']['zone_id'] = $this->input->post('zone_id'); } $this->Customer_model->save_address($a); @@ -585,31 +576,6 @@ function address_form($id = 0) } } - // address management functions - /* - function save_address() - { - $data = $this->input->post('address'); - if($data) - { - $customer = $this->go_cart->customer(); - $data['customer_id'] = $customer['id']; - - // get zone / country data using the zone id submitted as state - $country = $this->location_model->get_country_by_zone_id(set_value('state')); - if(!empty($country)) - { - $data['field_data']['state'] = $country->code; // save the state for output formatted addresses - $data['field_data']['country'] = $country->c_name; // some shipping libraries require country name - $data['field_data']['country_code'] = $country->iso_code_2; // some shipping libraries require the code - $data['field_data']['zone_id'] = set_value('state'); // use the zone id to populate address state field value - } - - echo json_encode(array('id'=>$this->Customer_model->save_address($data))); - } - } - */ - function delete_address() { $id = $this->input->post('id'); From b7f245b86f250e918406444dd93e6273dc674fb5 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 13:00:20 -0600 Subject: [PATCH 009/343] MySQL Strict mode bug fix added floatval around floats saved to the db. --- gocart/controllers/admin/products.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gocart/controllers/admin/products.php b/gocart/controllers/admin/products.php index ec31e9db..bcf1996b 100644 --- a/gocart/controllers/admin/products.php +++ b/gocart/controllers/admin/products.php @@ -201,9 +201,9 @@ function form($id = false, $duplicate = false) $save['meta'] = $this->input->post('meta'); $save['description'] = $this->input->post('description'); $save['excerpt'] = $this->input->post('excerpt'); - $save['price'] = $this->input->post('price'); - $save['saleprice'] = $this->input->post('saleprice'); - $save['weight'] = $this->input->post('weight'); + $save['price'] = floatval($this->input->post('price')); + $save['saleprice'] = floatval($this->input->post('saleprice')); + $save['weight'] = floatval($this->input->post('weight')); $save['in_stock'] = $this->input->post('in_stock'); $post_images = $this->input->post('images'); From dae1fdb62a05d75019948f550ba782c6da338e38 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 13:04:56 -0600 Subject: [PATCH 010/343] MySQL strict mode bug fix on Categories Categories image was set to NOT NULL when saving a category without an image, this returned an error. --- install/application/models/install_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/application/models/install_model.php b/install/application/models/install_model.php index 8f1401ec..0b27cd83 100755 --- a/install/application/models/install_model.php +++ b/install/application/models/install_model.php @@ -84,7 +84,7 @@ function get_query($prefix) `description` text collate utf8_general_ci NOT NULL, `excerpt` text collate utf8_general_ci NOT NULL, `sequence` int(10) unsigned NOT NULL, - `image` varchar(255) collate utf8_general_ci NOT NULL, + `image` varchar(255) collate utf8_general_ci NULL, `seo_title` text collate utf8_general_ci NOT NULL, `meta` text collate utf8_general_ci NOT NULL, PRIMARY KEY (`id`) From 3a9b422d63c896e253e1957d14d2da9fb5a38928 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 13:08:48 -0600 Subject: [PATCH 011/343] MySQL strict mode fixed Added in intval() for sequence, parent_id, and route_id in the category form. --- gocart/controllers/admin/categories.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gocart/controllers/admin/categories.php b/gocart/controllers/admin/categories.php index 48d5d626..dbe15513 100644 --- a/gocart/controllers/admin/categories.php +++ b/gocart/controllers/admin/categories.php @@ -257,12 +257,12 @@ function form($id = false) $save['name'] = $this->input->post('name'); $save['description'] = $this->input->post('description'); $save['excerpt'] = $this->input->post('excerpt'); - $save['parent_id'] = $this->input->post('parent_id'); - $save['sequence'] = $this->input->post('sequence'); + $save['parent_id'] = intval($this->input->post('parent_id')); + $save['sequence'] = intval($this->input->post('sequence')); $save['seo_title'] = $this->input->post('seo_title'); $save['meta'] = $this->input->post('meta'); - $save['route_id'] = $route_id; + $save['route_id'] = intval($route_id); $save['slug'] = $slug; $category_id = $this->Category_model->save($save); From 7bb56ed552de66133b21b1b012ac149a97bdcd31 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 13:20:26 -0600 Subject: [PATCH 012/343] MySQL strict mode bug fix set floatval() on option values for weight and price. --- gocart/models/option_model.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gocart/models/option_model.php b/gocart/models/option_model.php index 883ba2e4..80c602c6 100755 --- a/gocart/models/option_model.php +++ b/gocart/models/option_model.php @@ -69,6 +69,8 @@ function save_option($option, $values) { $value['option_id'] = $id; $value['sequence'] = $sequence; + $value['weight'] = floatval($value['weight']); + $value['price'] = floatval($value['price']); $sequence++; $this->db->insert('option_values', $value); From f18522554ab43c8b806a92668b3e31fa7c572a18 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 15:38:48 -0600 Subject: [PATCH 013/343] update version --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index b123147e..8cfbc905 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.1 \ No newline at end of file +1.1.1 \ No newline at end of file From cfaf9777f477351fb29131b9fed45002465585ac Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 16:54:18 -0600 Subject: [PATCH 014/343] Updated the order_model to store the correct quantity, order_id and item id in the database. This was previously all done in a serialized array, but we added the fields to help in reporting. Now, reporting should have the right numbers! --- gocart/models/order_model.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gocart/models/order_model.php b/gocart/models/order_model.php index 35eb0696..e203c616 100644 --- a/gocart/models/order_model.php +++ b/gocart/models/order_model.php @@ -212,8 +212,10 @@ function save_order($data, $contents = false) // update order items foreach($contents as $item) { - $save = array(); + $save = array(); $save['contents'] = $item; + + $item = unserialize($item); $save['product_id'] = $item['id']; $save['quantity'] = $item['quantity']; $save['order_id'] = $id; From f9cd48fbf49a506c1ae55588a429ad767d772781 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 16:59:02 -0600 Subject: [PATCH 015/343] update change log --- changelog.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.txt b/changelog.txt index 21c67a3f..6f2610cb 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,10 @@ +Version 1.1.2 + Release date: Nov 7, 2011 + + Bug Fixes + + - Fixed a bug in the order_model related to quantity and item reporting. + Version 1.1.1 Release date: Nov 7, 2011 From 119d2647000f5f5fd2d5d908af3d44d7d9d82965 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 16:59:31 -0600 Subject: [PATCH 016/343] updated version number --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index 8cfbc905..8428158d 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.1.1 \ No newline at end of file +1.1.2 \ No newline at end of file From b0560b1824e43ca6895130c5994737aa1f42daa9 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 Nov 2011 17:52:30 -0600 Subject: [PATCH 017/343] Another ssl redirect bug fix. --- gocart/helpers/MY_url_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/helpers/MY_url_helper.php b/gocart/helpers/MY_url_helper.php index 970a0f82..91f325a3 100644 --- a/gocart/helpers/MY_url_helper.php +++ b/gocart/helpers/MY_url_helper.php @@ -12,7 +12,7 @@ function force_ssl() { $CI =& get_instance(); $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']); - if (ssl_support() && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off' || $_SERVER['SERVER_PORT'] != 80)) + if (ssl_support() && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off')) { redirect($CI->uri->uri_string()); } From d0aa6c327d7075287cec5d9e42dcae5cb09b4d7e Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 8 Nov 2011 09:52:36 -0600 Subject: [PATCH 018/343] SSL URL fix I meant to do this before and obviously missed it :( --- gocart/helpers/MY_url_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gocart/helpers/MY_url_helper.php b/gocart/helpers/MY_url_helper.php index 91f325a3..a67a0eb3 100644 --- a/gocart/helpers/MY_url_helper.php +++ b/gocart/helpers/MY_url_helper.php @@ -10,10 +10,10 @@ function ssl_support() { function force_ssl() { - $CI =& get_instance(); - $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']); if (ssl_support() && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off')) { + $CI =& get_instance(); + $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']); redirect($CI->uri->uri_string()); } } From dcb289193a51a85ae52d937124b18c2a0a4f7dda Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 8 Nov 2011 10:01:22 -0600 Subject: [PATCH 019/343] update change log and version --- changelog.txt | 7 +++++++ version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 6f2610cb..b0e9d319 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,10 @@ +Version 1.1.3 + Release date: Nov 8, 2011 + + Bug Fixes + + - This is the same bug fix from 1.1.1 for SSL. It wasn't properly fixed in 1.1.1 + Version 1.1.2 Release date: Nov 7, 2011 diff --git a/version b/version index 8428158d..9c1218c2 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.1.2 \ No newline at end of file +1.1.3 \ No newline at end of file From 5adce5d4aa6221d63285fb9e8c16f9de216306a2 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 8 Nov 2011 10:38:57 -0600 Subject: [PATCH 020/343] updated rtrim to work better on windows paths --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 81d67470..b9737c99 100644 --- a/index.php +++ b/index.php @@ -3,7 +3,7 @@ //if the gocart config file doesn't exist, the cart hasn't been installed. if(!file_exists(dirname($_SERVER['SCRIPT_FILENAME']).'/gocart/config/gocart.php')) { - $path = rtrim($_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']), '/').'/'; + $path = rtrim($_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']), '/\\').'/'; header('Location: http://'.$path.'install'); die; From b516e586d60c5daaf278b4e16c3706842aef3833 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 8 Nov 2011 14:45:12 -0600 Subject: [PATCH 021/343] Updated the url to tiny_mce_init in the iframe header This was pointing to an old init function. --- gocart/views/admin/iframe/header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/views/admin/iframe/header.php b/gocart/views/admin/iframe/header.php index 9b807670..0de3d85f 100644 --- a/gocart/views/admin/iframe/header.php +++ b/gocart/views/admin/iframe/header.php @@ -23,7 +23,7 @@ - +
Customer_model->is_logged_in(false, false)) : ?> - - + + - +
-

Customer Information

+

loading

@@ -254,7 +254,7 @@ function update_summary() diff --git a/gocart/views/checkout/customer_details.php b/gocart/views/checkout/customer_details.php index 52b9b1ee..a16f8ca7 100755 --- a/gocart/views/checkout/customer_details.php +++ b/gocart/views/checkout/customer_details.php @@ -95,7 +95,7 @@ function save_customer() { if(typeof response != "object") // error { - display_error('customer', 'There was an unexpected problem communicating with the server'); + display_error('customer', ''); return; } @@ -243,15 +243,15 @@ function populate_address(address_id)
-

Customer Information

+

-
Shipping Address
+
Customer_model->is_logged_in(false, false)) : ?>
- +
@@ -259,127 +259,127 @@ function populate_address(address_id)
- Company
+
- First Name *
+ *
- Last Name *
+ *
- Email *
+ *
- Phone *
+ *
- Address *
+ *
'.form_input($s_address2);?>
- City *
+ *
- Zip *
+ *
- Country *
+ *
- State / Province *
+ *
- onclick="toggle_billing_address_form(this.checked)"> Use this address for billing + onclick="toggle_billing_address_form(this.checked)">
-
Billing Address
+
Customer_model->is_logged_in(false, false)) : ?>
- +
- Company
+
- First Name *
+ *
- Last Name *
+ *
- Email *
+ *
- Phone *
+ *
- Address *
+ *
'.form_input($b_address2);?>
- City *
+ *
- Zip *
+ *
- Country *
+ *
- State / Province *
+ *
@@ -391,7 +391,7 @@ function populate_address(address_id)
- +
@@ -401,7 +401,7 @@ function populate_address(address_id) Customer_model->is_logged_in(false, false)) : ?>
- +

-

Order Number:

+

:

-

Account Information

+

':'';?>

@@ -32,7 +32,7 @@
-

Billing Information

+

':'';?>

@@ -44,56 +44,53 @@
-

Payment Method

+


-

Shipping Method

+

-

Additional Details

+

How did you hear about us?
-
Deadline
-
Special Instructions?
-

This is a gift

-
Message
+ if(!empty($referral)):?>
+
- - - - - - + + + + + + go_cart->group_discount() > 0) : ?> - + - + go_cart->coupon_discount() > 0) : ?> - + go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> - + @@ -103,14 +100,14 @@ config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - + go_cart->order_tax() != 0) : ?> - + @@ -118,20 +115,20 @@ config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - + go_cart->gift_card_discount() != 0) : ?> - + - + @@ -173,4 +170,4 @@
SKUNamePriceDescriptionQuantityTotals
Group Discount go_cart->group_discount()); ?>
Subtotal go_cart->subtotal()); ?>
Coupon Discount go_cart->coupon_discount()); ?>
Discounted Subtotal go_cart->discounted_subtotal()); ?>
Shipping go_cart->shipping_cost()); ?>
Taxes go_cart->order_tax()); ?>
Shipping go_cart->shipping_cost()); ?>
Gift Card go_cart->gift_card_discount()); ?>
Cart Total go_cart->total()); ?>
- + -

Payment Method

+

$info):?> @@ -43,7 +43,7 @@

- +
diff --git a/gocart/views/product.php b/gocart/views/product.php index 264647f7..66f41470 100755 --- a/gocart/views/product.php +++ b/gocart/views/product.php @@ -18,7 +18,7 @@
'; + $photo = ''.lang('no_image_available').''; if(count($product->images) > 0 ) { @@ -69,19 +69,19 @@
-
SKU: sku; ?>
+
: sku; ?>
saleprice > 0):?> - price: price); ?> - SALE: saleprice); ?> + price); ?> + saleprice); ?> - Price: price); ?> + price); ?>
0): ?>
-

Available Options

+

type == 'droplist'):?> - + -

Out of Stock

+

@@ -192,8 +192,8 @@
description; ?> @@ -240,13 +240,13 @@
saleprice > 0):?> - price: price; ?> - SALE: saleprice; ?> + price; ?> + saleprice; ?> - Price: price; ?> + price; ?> in_stock==0) { ?> -
Out of Stock
+
diff --git a/gocart/views/register.php b/gocart/views/register.php index 0febb101..0800fe2a 100644 --- a/gocart/views/register.php +++ b/gocart/views/register.php @@ -16,50 +16,50 @@
- Company
+
- First Name *
+ *
- Last Name *
+ *
- Email *
+ *
- Phone *
+ *
- /> Subscribe to our email list. + />
- Password *
+ *
- Confirm *
+ *
- +
diff --git a/gocart/views/view_cart.php b/gocart/views/view_cart.php index 515c177a..f7cf3051 100644 --- a/gocart/views/view_cart.php +++ b/gocart/views/view_cart.php @@ -14,35 +14,35 @@ - - - - - - + + + + + + go_cart->group_discount() > 0) : ?> - + - + go_cart->coupon_discount() > 0) : ?> - + go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> - + @@ -67,13 +67,13 @@ // Show shipping cost if added before taxes if($this->config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - + go_cart->order_tax() != 0) : ?> - + @@ -81,19 +81,19 @@ config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - + go_cart->gift_card_discount() != 0) : ?> - + - + @@ -140,16 +140,17 @@
SKUNamePriceDescriptionQuantityTotals
Group Discount go_cart->group_discount()); ?>
Subtotal go_cart->subtotal()); ?>
Coupon Discount go_cart->coupon_discount()); ?>
Discounted Subtotal go_cart->discounted_subtotal()); ?>
Shipping go_cart->shipping_cost()); ?>
Taxes go_cart->order_tax()); ?>
Shipping go_cart->shipping_cost()); ?>
Gift Card go_cart->gift_card_discount()); ?>
Cart Total go_cart->total()); ?>
-
- If you have a coupon, enter the code here:
- +
+
 
If you have a Gift Certificate, enter the code here:
- +
+
+
@@ -160,7 +161,7 @@ - + Customer_model->is_logged_in(false,false) || !$this->config->item('require_login')): ?> From 5a8b511d7be82e25ee293f8e5730838cb2d5db10 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 28 Nov 2011 15:16:12 -0600 Subject: [PATCH 042/343] additional changes to support language library --- gocart/controllers/cart.php | 41 +++++++------- gocart/controllers/secure.php | 46 +++------------ gocart/language/english/common_lang.php | 74 +++++++++++++++++-------- 3 files changed, 80 insertions(+), 81 deletions(-) diff --git a/gocart/controllers/cart.php b/gocart/controllers/cart.php index 2a5ab5ec..8d37a4c5 100755 --- a/gocart/controllers/cart.php +++ b/gocart/controllers/cart.php @@ -75,7 +75,7 @@ function page($id) function search($code=false, $page = 0) { $this->load->model('Search_model'); - $data['page_title'] = 'Search'; + $data['page_title'] = lang('search'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; //check to see if we have a search term if(!$code) @@ -295,7 +295,6 @@ function update_cart($redirect = false) function giftcard() { - if(!$this->gift_cards_enabled) redirect('/'); // Load giftcard settings @@ -308,20 +307,20 @@ function giftcard() if($data['allow_custom_amount']) { - $this->form_validation->set_rules('custom_amount', 'Custom Amount', 'numeric'); + $this->form_validation->set_rules('custom_amount', 'lang:custom_amount', 'numeric'); } - $this->form_validation->set_rules('amount', 'Amount', 'required'); - $this->form_validation->set_rules('preset_amount', 'Preset Amount', 'numeric'); - $this->form_validation->set_rules('gc_to_name', 'Recipient Name', 'trim|required'); - $this->form_validation->set_rules('gc_to_email', 'Recipient Email', 'trim|required|valid_email'); - $this->form_validation->set_rules('gc_from', 'Sender Name', 'trim|required'); - $this->form_validation->set_rules('message', 'Custom Greeting Message', 'trim|required'); + $this->form_validation->set_rules('amount', 'lang:amount', 'required'); + $this->form_validation->set_rules('preset_amount', 'lang:preset_amount', 'numeric'); + $this->form_validation->set_rules('gc_to_name', 'lang:recipient_name', 'trim|required'); + $this->form_validation->set_rules('gc_to_email', 'lang:recipient_email', 'trim|required|valid_email'); + $this->form_validation->set_rules('gc_from', 'lang:sender_email', 'trim|required'); + $this->form_validation->set_rules('message', 'lang:custom_greeting', 'trim|required'); if ($this->form_validation->run() == FALSE) { $data['error'] = validation_errors(); - $data['page_title'] = "Gift Card"; + $data['page_title'] = lang('giftcard'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; $this->load->view('giftcards', $data); } @@ -332,17 +331,17 @@ function giftcard() $card['price'] = set_value(set_value('amount')); - $card['id'] = -1; // just a placeholder - $card['sku'] = 'GiftCard'; - $card['base_price'] = $card['price']; // price gets modified by options, show the baseline still... - $card['name'] = 'Gift Card'; - $card['code'] = $this->Gift_card_model->generate_password(); - $card['excerpt'] = 'Gift Card for a Friend
To: '.set_value('gc_to_name'); - $card['weight'] = 0; - $card['no_quantity'] = true; // prevent quantity change.. since it wouldn't make sense - $card['quantity'] = 1; - $card['shippable'] = false; - $card['is_gc'] = true; // !Important + $card['id'] = -1; // just a placeholder + $card['sku'] = lang('giftcard'); + $card['base_price'] = $card['price']; // price gets modified by options, show the baseline still... + $card['name'] = lang('giftcard'); + $card['code'] = $this->Gift_card_model->generate_password(); + $card['excerpt'] = sprintf(lang('giftcard_excerpt'), set_value('gc_to_name')); + $card['weight'] = 0; + $card['no_quantity'] = true; // prevent quantity change.. since it wouldn't make sense + $card['quantity'] = 1; + $card['shippable'] = false; + $card['is_gc'] = true; // !Important $card['gc_info'] = array("to_name" => set_value('gc_to_name'), "to_email" => set_value('gc_to_email'), diff --git a/gocart/controllers/secure.php b/gocart/controllers/secure.php index d869788e..c0d51557 100755 --- a/gocart/controllers/secure.php +++ b/gocart/controllers/secure.php @@ -101,7 +101,7 @@ function login($ajax = false) else { $this->session->set_flashdata('redirect', $redirect); - $this->session->set_flashdata('error', 'Authentication Failed!'); + $this->session->set_flashdata('error', lang('login_failed')); redirect('secure/login'); } @@ -147,7 +147,7 @@ function register() */ $data['redirect'] = $this->session->flashdata('redirect'); - $data['page_title'] = 'Account Registration'; + $data['page_title'] = lang('account_registration'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; //default values are empty if the customer is new @@ -250,7 +250,7 @@ function register() $this->email->send(); - $this->session->set_flashdata('message', 'Thanks for registering '.$this->input->post('firstname').'!'); + $this->session->set_flashdata('message', sprintf( lang('registration_thanks'), $this->input->post('firstname') ) ); //lets automatically log them in $this->Customer_model->login($save['email'], $this->input->post('confirm')); @@ -275,7 +275,7 @@ function check_email($str) if ($email) { - $this->form_validation->set_message('check_email', 'The requested email is already in use.'); + $this->form_validation->set_message('check_email', lang('error_email')); return FALSE; } else @@ -286,7 +286,7 @@ function check_email($str) function forgot_password() { - $data['page_title'] = 'Forgot Password'; + $data['page_title'] = lang('forgot_password'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; $submitted = $this->input->post('submitted'); if ($submitted) @@ -298,11 +298,11 @@ function forgot_password() if ($reset) { - $this->session->set_flashdata('message', 'A new password has been generated and sent to your email.'); + $this->session->set_flashdata('message', lang('message_new_password')); } else { - $this->session->set_flashdata('message', 'There is no record of your account.'); + $this->session->set_flashdata('error', lang('error_no_account_record')); } redirect('secure/forgot_password'); } @@ -411,7 +411,7 @@ function my_account($offset=0) $this->go_cart->save_customer($this->customer); $this->Customer_model->save($customer); - $this->session->set_flashdata('message', 'Your account has been updated'); + $this->session->set_flashdata('message', lang('message_account_updated')); redirect('secure/my_account'); } @@ -571,7 +571,7 @@ function address_form($id = 0) } $this->Customer_model->save_address($a); - $this->session->set_flashdata('message', 'Your address has been saved!'); + $this->session->set_flashdata('message', lang('message_address_saved')); echo 1; } } @@ -584,32 +584,4 @@ function delete_address() $this->Customer_model->delete_address($id, $customer['id']); echo $id; } - - function send_email_comments() - { - - if(!$this->input->post('submitted')) - { - $this->load->view('email_comments'); - - } else { - - $this->load->library('email'); - - $config['mailtype'] = 'html'; - - $this->email->initialize($config); - - $this->email->from($this->input->post('email'), $this->input->post('name')); - $this->email->to($this->config->item('email')); - - $this->email->subject('New comments submitted from '.$this->config->item('company_name')); - $this->email->message($this->input->post('comments')); - - $this->email->send(); - - // load to close the iframe - $this->load->view('email_comments', array('finished'=>true)); - } - } } \ No newline at end of file diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 78e6c95a..d594d82e 100644 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -7,33 +7,52 @@ ******************************************/ -//common terms $lang['login'] = 'Login'; $lang['logout'] = 'Logout'; $lang['my_account'] = 'My Account'; - $lang['empty_cart'] = 'Your cart is empty'; $lang['single_item'] = 'There is %d items in your cart'; $lang['multiple_items'] = 'There are %d items in your cart'; -//form elements -$lang['form_submit'] = "Submit"; -$lang['form_search'] = "Search"; -$lang['form_cancel'] = "Cancel"; +$lang['form_submit'] = 'Submit'; +$lang['form_register'] = 'Register'; +$lang['form_login'] = 'Login'; +$lang['form_search'] = 'Search'; +$lang['form_cancel'] = 'Cancel'; $lang['form_add_to_cart'] = 'Add to Cart'; +$lang['form_update_cart'] = 'Update Cart'; +$lang['form_checkout'] = 'Checkout »'; $lang['form_continue'] = 'Continue'; $lang['form_choose'] = 'Choose'; $lang['form_edit'] = 'Edit'; $lang['form_delete'] = 'Delete'; -//catalog -$lang['products'] = 'Products'; -$lang['out_of_stock'] = 'Out of Stock'; -$lang['no_products'] = 'There are currently no available products in this category.'; -$lang['no_image_available'] = 'No Image Available'; - -//checkout +$lang['search'] = 'Search'; +$lang['amount'] = 'Amount'; +$lang['custom_amount'] = 'Custom Amount'; +$lang['preset_amount'] = 'Preset Amount'; +$lang['recipient_name'] = 'Recipient Name'; +$lang['recipient_email'] = 'Recipient Email'; +$lang['sender_email'] = 'Sender Email'; +$lang['custom_greeting'] = 'Custom Greeting Message'; +$lang['check_out'] = 'Check Out'; + +$lang['products'] = 'Products'; +$lang['out_of_stock'] = 'Out of Stock'; +$lang['no_products'] = 'There are currently no available products in this category.'; +$lang['no_image_available'] = 'No Image Available'; +$lang['product_price'] = 'Price:'; +$lang['product_sale'] = 'SALE:'; +$lang['available_options'] = 'Available Options'; +$lang['choose_option'] = 'Choose an Option'; +$lang['tab_description'] = 'Description'; +$lang['tab_related_products'] = 'Related Products'; + +$lang['coupon_label'] = 'If you have a coupon, enter the code here:'; +$lang['gift_card_label'] = 'If you have a Gift Certificate, enter the code here:'; +$lang['apply_gift_card'] = 'Apply Gift Card'; +$lang['apply_coupon'] = 'Apply Coupon'; $lang['customer_information'] = 'Customer Information'; $lang['error_save_payment'] = 'There was a problem saving your payment method'; $lang['error_choose_payment'] = 'Please choose a payment method'; @@ -48,13 +67,13 @@ $lang['shipping_method'] = 'Shipping Method'; $lang['no_shipping_needed'] = 'Your order does not include any items that require shipping.'; $lang['payment_information'] = 'Payment Information'; - -//checkout_summary -$lang['product_information'] = 'Product Info'; /* this is used in the email confirmation */ -$lang['price_and_quantity'] = 'Price & Quantity'; /* this is used in the email confirmation */ +$lang['payment_method'] = 'Payment Method'; +$lang['submit_payment_method'] = 'Submit Payment Method'; +$lang['product_information'] = 'Product Info'; +$lang['price_and_quantity'] = 'Price & Quantity'; $lang['sku'] = 'SKU'; $lang['name'] = 'Name'; -$lang['Price'] = 'Price'; +$lang['price'] = 'Price'; $lang['description'] = 'Description'; $lang['quantity'] = 'Quantity'; $lang['totals'] = 'Totals'; @@ -67,7 +86,6 @@ $lang['taxes'] = 'Taxes'; $lang['grand_total'] = 'Grand Total'; -//addresses $lang['address_manager'] = 'Address Manager'; $lang['your_addresses'] = 'Your Addresses'; $lang['shipping_and_billing'] = 'Shipping & Billing Address'; @@ -77,6 +95,7 @@ $lang['shipping_address'] = 'Shipping Address'; $lang['choose_shipping_address'] = 'Choose Your Shipping Address'; $lang['choose_address'] = 'Choose Address'; +$lang['ship_to_address'] = 'Ship to this address'; $lang['address_company'] = 'Company'; $lang['address'] = 'Address'; $lang['address_firstname'] = 'First Name'; @@ -87,13 +106,13 @@ $lang['address_postcode'] = 'Zip / Post Code'; $lang['address_country'] = 'Country'; $lang['address_state'] = 'State'; +$lang['message_address_saved'] = 'Your address has been saved!'; -//checkout - Additional Details $lang['additional_order_details'] = 'Additional Order Details'; +$lang['additional_details'] = 'Additional Details'; $lang['heard_about'] = 'How did you hear about us?'; $lang['shipping_instructions'] = 'Shipping Instructions?'; -//giftcards $lang['giftcard'] = 'Gift Card'; $lang['giftcard_choose_amount'] = 'Choose Gift Card Amount'; $lang['giftcard_custom_amount'] = 'Custom Amount'; @@ -101,16 +120,24 @@ $lang['giftcard_email'] = 'To (Email)'; $lang['giftcard_from'] = 'From'; $lang['giftcard_message'] = 'Personal Message'; +$lang['giftcard_excerpt'] = 'Gift Card for a friend
To: %s'; -//login and forgot password $lang['email'] = 'Email'; $lang['password'] = 'Password'; $lang['return_to_login'] = 'Return to Login'; $lang['forgot_password'] = 'Forgot Password'; $lang['keep_me_logged_in'] = 'Keep me logged in!'; $lang['register'] = 'Register'; +$lang['login_failed'] = 'Authentication Failed!'; +$lang['go_to_login'] = 'Go to Login'; + +$lang['account_registration'] = 'Account Registration'; +$lang['registration_thanks'] = 'thanks for registering %s!'; +$lang['error_email'] = 'The requested email is already in use.'; +$lang['error_no_account_record'] = 'There is no record of your account.'; +$lang['message_new_password'] = 'A new password has been generated and sent to your email.'; +$lang['message_account_updated'] = 'Your account has been updated'; -//my account $lang['delete_address_confirmation'] = 'Are you sure you want to delete this address?'; $lang['error_must_have_address'] = 'You Must leave at least 1 address in the Address Manager.'; $lang['account_information'] = 'Account Information'; @@ -129,6 +156,7 @@ $lang['order_date'] = 'Ordered On'; $lang['order_number'] = 'Order Number'; $lang['order_status'] = 'Status'; +$lang['add_address'] = 'Add Address'; $lang['no_order_history'] = 'You have no orders in your account history.'; From 36cf8bdb28566a2f226254ae88275cc7c4ea8a7c Mon Sep 17 00:00:00 2001 From: Repox Date: Mon, 28 Nov 2011 22:36:05 +0100 Subject: [PATCH 043/343] Altered the process of testing the database connection as the old one failed. --- install/application/controllers/install.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/install/application/controllers/install.php b/install/application/controllers/install.php index fb9de232..3f878abe 100755 --- a/install/application/controllers/install.php +++ b/install/application/controllers/install.php @@ -71,16 +71,18 @@ public function index() $config['dbdriver'] = "mysql"; $config['dbprefix'] = ""; $config['pconnect'] = FALSE; - $config['db_debug'] = TRUE; + $config['db_debug'] = FALSE; $config['cache_on'] = FALSE; $config['cachedir'] = ""; $config['char_set'] = "utf8"; $config['dbcollat'] = "utf8_general_ci"; $config['active_r'] = TRUE; - $db = $this->load->database($config, true); + // Unset any existing DB information + unset($this->db); + $this->load->database($config); - if($db) + if (is_resource($this->db->conn_id) OR is_object($this->db->conn_id)) { $this->load->model('Install_model'); @@ -89,11 +91,11 @@ public function index() foreach($query as $q) { - $db->query($q); + $this->db->query($q); } //set up the admin user - $db->insert($this->input->post('prefix').'admin', array('access'=>'Admin', 'email'=>$this->input->post('admin_email'), 'password'=>sha1($this->input->post('admin_password') ) ) ); + $this->db->insert($this->input->post('prefix').'admin', array('access'=>'Admin', 'email'=>$this->input->post('admin_email'), 'password'=>sha1($this->input->post('admin_password') ) ) ); //setup the database config file $settings = array(); @@ -163,4 +165,4 @@ public function index() } /* End of file welcome.php */ -/* Location: ./application/controllers/install.php */ \ No newline at end of file +/* Location: ./application/controllers/install.php */ From bffc3e6661dc1fa222a7dfa71c480ee367f728d4 Mon Sep 17 00:00:00 2001 From: Gabe Date: Mon, 28 Nov 2011 13:43:37 -0800 Subject: [PATCH 044/343] making progress --- changelog.txt | 11 +- gocart/controllers/admin/dashboard.php | 2 +- gocart/controllers/checkout.php | 2 +- gocart/helpers/credit_card_helper.php | 2 +- gocart/language/english/common_lang.php | 135 +++++++++++++++++- gocart/libraries/Go_cart.php | 31 ++-- .../payment/authorize_net/authorize_net.php | 16 +-- .../authorize_net/forms/admin_form.php | 24 ++-- .../authorize_net/forms/customer_card.php | 16 +-- .../paypal_express/forms/admin_form.php | 24 ++-- .../payment/paypal_express/forms/checkout.php | 2 +- .../payment/paypal_express/paypal_express.php | 2 +- gocart/libraries/shipping/fedex/fedex.php | 14 +- gocart/views/admin/dashboard.php | 28 ++-- gocart/views/admin/header.php | 48 +++---- gocart/views/admin/orders.php | 57 ++++---- gocart/views/checkout/checkout.php | 4 +- gocart/views/header.php | 2 +- .../application/views/templates/gocart.php | 5 +- 19 files changed, 282 insertions(+), 143 deletions(-) mode change 100644 => 100755 gocart/controllers/admin/dashboard.php mode change 100644 => 100755 gocart/helpers/credit_card_helper.php mode change 100644 => 100755 gocart/language/english/common_lang.php mode change 100644 => 100755 gocart/libraries/payment/authorize_net/authorize_net.php mode change 100644 => 100755 gocart/libraries/payment/authorize_net/forms/admin_form.php mode change 100644 => 100755 gocart/libraries/payment/authorize_net/forms/customer_card.php mode change 100644 => 100755 gocart/libraries/payment/paypal_express/forms/admin_form.php mode change 100644 => 100755 gocart/libraries/payment/paypal_express/forms/checkout.php mode change 100644 => 100755 gocart/libraries/payment/paypal_express/paypal_express.php mode change 100644 => 100755 gocart/libraries/shipping/fedex/fedex.php mode change 100644 => 100755 gocart/views/admin/dashboard.php mode change 100644 => 100755 gocart/views/admin/orders.php mode change 100644 => 100755 gocart/views/checkout/checkout.php mode change 100644 => 100755 gocart/views/header.php mode change 100644 => 100755 install/application/views/templates/gocart.php diff --git a/changelog.txt b/changelog.txt index 6af75eb2..7a2a7e4a 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,16 @@ -Version 1.1.5 +Version 1.2 ------------- Release date: pending Bug Fixes - + + - Replaced deprecated function in the credit card helper and missing HTML tags in the main header view + + Features + + - Added language support and extended internationalization capabilities + - Added support for BrainTree and BeanStream payment gateways + Other - Updated to CodeIgniter 2.1 diff --git a/gocart/controllers/admin/dashboard.php b/gocart/controllers/admin/dashboard.php old mode 100644 new mode 100755 index 806bf1ea..02bdbb7d --- a/gocart/controllers/admin/dashboard.php +++ b/gocart/controllers/admin/dashboard.php @@ -23,7 +23,7 @@ function __construct() function index() { - $data['page_title'] = 'Dashboard'; + $data['page_title'] = lang('dashboard'); // get 5 latest orders $data['orders'] = $this->Order_model->get_orders(false, '' , 'DESC', 5); diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index e25002f4..2d29120a 100755 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -494,7 +494,7 @@ function place_order() $this->email->send(); - $data['page_title'] = 'Thanks for shopping with '.$this->config->item('company_name'); + $data['page_title'] = lang('thank_you').$this->config->item('company_name'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; // show final confirmation page $this->load->view('order_placed', $data); diff --git a/gocart/helpers/credit_card_helper.php b/gocart/helpers/credit_card_helper.php old mode 100644 new mode 100755 index 2eeea239..6e3cfe6c --- a/gocart/helpers/credit_card_helper.php +++ b/gocart/helpers/credit_card_helper.php @@ -81,7 +81,7 @@ function card_expiry_valid($month, $year) { * @return string The stripped down card number. */ function card_number_clean($number) { - return ereg_replace("[^0-9]", "", $number); + return preg_replace("[^0-9]", "", $number); } diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php old mode 100644 new mode 100755 index 78e6c95a..b9114c87 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -7,14 +7,29 @@ ******************************************/ + + +/******************* + + Site front end + + *******************/ + //common terms $lang['login'] = 'Login'; $lang['logout'] = 'Logout'; $lang['my_account'] = 'My Account'; +$lang['enabled'] = 'Enabled'; +$lang['disabled'] = 'Disabled'; +$lang['mode'] = 'Mode'; +$lang['currency'] = 'Currency'; +$lang['active'] = 'Active'; +$lang['yes'] = 'Yes'; +$lang['no'] = 'No'; $lang['empty_cart'] = 'Your cart is empty'; -$lang['single_item'] = 'There is %d items in your cart'; +$lang['single_item'] = 'There is %d item in your cart'; $lang['multiple_items'] = 'There are %d items in your cart'; //form elements @@ -26,6 +41,14 @@ $lang['form_choose'] = 'Choose'; $lang['form_edit'] = 'Edit'; $lang['form_delete'] = 'Delete'; +$lang['form_term'] = 'Term'; +$lang['form_search'] = 'Search'; +$lang['form_view'] = 'View'; +$lang['form_save'] = 'Save'; +//dates +$lang['form_from'] = 'From'; +$lang['form_to'] = 'to'; + //catalog $lang['products'] = 'Products'; @@ -39,6 +62,7 @@ $lang['error_choose_payment'] = 'Please choose a payment method'; $lang['error_choose_shipping'] = 'Please choose a shipping method'; $lang['continue_shopping'] = 'Continue Shopping'; +$lang['form_login'] = 'Log In'; $lang['register_now'] = 'Register Now'; $lang['submit_order'] = 'Submit Order'; $lang['edit_customer_information'] = 'Edit Customer Information'; @@ -93,6 +117,28 @@ $lang['heard_about'] = 'How did you hear about us?'; $lang['shipping_instructions'] = 'Shipping Instructions?'; +//checkout confirmation +$lang['thank_you'] = 'Thanks for shopping with '; // terminates with company/site name, defined in gocart config as 'company_name' + +//authorize.net library messages +$lang['please_fix_errors'] = 'Please fix the following errors:'; +$lang['enter_card_name'] = 'Please enter your first and last name as it appears on the card'; +$lang['invalid_card_exp'] = 'The expiration date does not appear to be valid'; +$lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; +$lang['enter_card_code'] = 'Please enter the three digit security code on the reverse side of the card'; +$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; +$lang['enter_test_mode_credentials'] = 'You must enter login values for TEST mode'; +$lang['enter_live_mode_credentials'] = 'You must enter login values for LIVE mode'; +$lang['all_required_fields'] = 'Please complete all required fields.'; +$lang['card_number'] = 'Card Number'; +$lang['expires_on'] = 'Expires On'; +$lang['cvv_code'] = 'CVV Code'; + +//paypal library messages +$lang['paypal_error'] = 'There was an error processing your payment through PayPal'; +$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; + + //giftcards $lang['giftcard'] = 'Gift Card'; $lang['giftcard_choose_amount'] = 'Choose Gift Card Amount'; @@ -132,3 +178,90 @@ $lang['no_order_history'] = 'You have no orders in your account history.'; +//cart library messages +$lang['coupon_not_apply'] = 'The coupon code you entered does not apply to any products in your cart.'; +$lang['coupon_applied'] = 'The coupon has been applied to your products.'; +$lang['coupon_invalid'] = 'Sorry, but the coupon you entered is not valid at this time.'; +$lang['coupon_already_applied'] = 'That coupon code has already been applied to your items.'; +$lang['invalid_coupon_code'] = 'There was no coupon with that code. Check to make sure you entered it correctly.'; +$lang['giftcard_balance_applied'] = 'You should see your card balance displayed.'; +$lang['giftcard_zero_balance'] = 'Sorry, but the gift card you entered is expired or has a zero balance.'; +$lang['giftcard_not_exist'] = 'The gift card code you entered does not exist.'; +$lang['giftcard_already_applied'] = 'Your gift card is already applied'; + + +/****************** + + Admin section + +*******************/ + + +//header +$lang['sales'] = 'Sales'; +$lang['orders'] = 'Orders'; +$lang['customers'] = 'Customers'; +$lang['groups'] = 'Groups'; +$lang['reports'] = 'Reports'; +$lang['coupons'] = 'Coupons'; +$lang['giftcards'] = 'Gift Cards'; +$lang['catalog'] = 'Catalog'; +$lang['categories'] = 'Categories'; +$lang['products'] = 'Products'; +$lang['content'] = 'Content'; +$lang['banners'] = 'Banners'; +$lang['boxes'] = 'Boxes'; +$lang['pages'] = 'Pages'; +$lang['administrative'] = 'Administrative'; +$lang['settings'] = 'Settings'; +$lang['locations'] = 'Locations'; +$lang['administrators'] = 'Administrators'; +$lang['note'] = 'Note'; +$lang['alert'] = 'Alert'; +$lang['log_out'] = 'Log Out'; +$lang['front_end'] = 'Front End'; +$lang['dashboard'] = 'Dashboard'; + +//dashboard & shared +$lang['recent_orders'] = 'Most Recent Orders'; +$lang['order'] = 'Order'; +$lang['bill_to'] = 'Bill To'; +$lang['ship_to'] = 'Ship To'; +$lang['ordered_on'] = 'Ordered On'; +$lang['status'] = 'Status'; +$lang['notes'] = 'Notes'; +$lang['recent_customers'] = 'Most Recent Registered Customers'; + +//orders +$lang['search_returned'] = 'Your searched returned'; //... results (below) +$lang['returned_results'] = 'results'; // end of above +$lang['view_orders'] = 'View All Orders'; +$lang['xml_export'] = 'XML Export'; +$lang['no_orders'] = 'There are currently no orders.'; +$lang['order_delete'] = 'Are you sure you want to delete the selected orders?'; +$lang['no_orders_sel'] = 'You did not select any orders to delete.'; + + +//auth.net admin +$lang['test_mode'] = 'Test Mode'; +$lang['live_mode'] = 'Live Mode'; +$lang['tm_login'] = 'Test Mode Login ID'; +$lang['tm_key'] = 'Test Mode Transaction Key'; +$lang['lm_login'] = 'Live Mode Login ID'; +$lang['lm_key'] = 'Live Mode Transaction Key'; + +//paypal admin +$lang['pp_username'] = 'Paypal Username'; +$lang['pp_password'] = 'Paypal Password'; +$lang['pp_key'] = 'Paypal API Signature'; + +//fedex module +$lang['fedex_key'] = 'Key'; +$lang['fedex_account'] = 'Ship Account'; +$lang['fedex_meter'] = 'Meter'; +$lang['fedex_pw'] = 'Password'; +$lang['fedex_services'] = 'Services To Offer'; + + + + diff --git a/gocart/libraries/Go_cart.php b/gocart/libraries/Go_cart.php index b7e5212d..24d0f5c5 100755 --- a/gocart/libraries/Go_cart.php +++ b/gocart/libraries/Go_cart.php @@ -37,7 +37,8 @@ class go_cart { var $gift_cards_enabled = false; - function __construct() { + function __construct() + { $this->CI =& get_instance(); $this->CI->load->model('Coupon_model'); $this->CI->load->model('Gift_card_model'); @@ -87,7 +88,8 @@ private function _init_properties($totals_only=false, $preserve_customer=false) // We want to preserve the cart items and properties, but reset total values when recalculating - if( ! $totals_only) { + if( ! $totals_only) + { // product items will live in here $this->_cart_contents['items'] = array(); @@ -350,7 +352,8 @@ private function _apply_coupon_to_product($cartkey, $coupon_code) // To start, it needs to look like: // applied_coupons[ coupon code index ][ product key index] = array list of discounts,repeated to product quantity - for($x=0;$x<$this->_cart_contents['items'][$cartkey]['quantity'];$x++) { + for($x=0;$x<$this->_cart_contents['items'][$cartkey]['quantity'];$x++) + { $this->_cart_contents['applied_coupons'][$coupon_code][$cartkey][] = $discount_amount; } @@ -432,24 +435,24 @@ private function _insert_coupon($coupon_code) if(!$is_applied) { // message coupon added but not applied - return array('message'=>'Your coupon does not apply to any products in your cart'); + return array('message'=>lang('coupon_not_apply')); } else { // message coupon applied - return array('message'=>'Your coupon has been applied to your products.'); + return array('message'=>lang('coupon_applied')); } } else { // message coupon no longer valid - return array('error'=>'Sorry, but the coupon you entered is not valid at this time.'); + return array('error'=>lang('coupon_invalid')); } } else { // message coupon already applied - return array('error'=>'That coupon code has already been applied to your items.'); + return array('error'=>lang('coupon_already_applied')); } } else { // invalid code error message - return array('error'=>'There was no coupon with that code. Check to make sure you entered it correctly.'); + return array('error'=>lang('invalid_coupon_code')); } } @@ -574,18 +577,18 @@ private function _attach_gift_card($gc_code) $this->_cart_contents['gift_card_balance'] += $this->_cart_contents['gc_list'][$gc_code]['balance']; // message coupon applied - return array('message'=>'You should see your card balance displayed.'); + return array('message'=>lang('giftcard_balance_displayed')); } else { // invalid card (expired or zero balance) - return array('error'=>'Sorry, but the gift card you entered is expired or has a zero balance.'); + return array('error'=>lang('giftcard_zero_balance')); } } else { // invalid card code - return array('error'=>'The gift card code you entered does not exist.'); + return array('error'=>lang('giftcard_not_exist')); } } else { // already applied - return array('message'=>'Your gift card is already applied'); + return array('message'=>lang('giftcard_already_applied')); } } } @@ -1295,10 +1298,10 @@ function total_items() * @access public * @return null */ - function destroy($keep_login_session=true) + function destroy($keep_customer_data=true) { // reset the cart values - $this->_init_properties(false,$keep_login_session); + $this->_init_properties(false,$keep_customer_data); // save the updated cart to our session $this->_save_cart(false); } diff --git a/gocart/libraries/payment/authorize_net/authorize_net.php b/gocart/libraries/payment/authorize_net/authorize_net.php old mode 100644 new mode 100755 index 02aa455f..c2dc5619 --- a/gocart/libraries/payment/authorize_net/authorize_net.php +++ b/gocart/libraries/payment/authorize_net/authorize_net.php @@ -52,24 +52,24 @@ function checkout_form($post = false) function checkout_check() { - $error_msg = "Please fix the following errors:
    "; + $error_msg = lang('please_fix_errors').'
      '; $error_list = ""; //Verify name field if( empty($_POST["x_first_name"]) || empty($_POST["x_last_name"])) - $error_list .= "
    • Please enter your first and last name as it appears on the card
    • "; + $error_list .= '
    • '.lang('enter_card_name').'
    • '; //Verify date if( !card_expiry_valid($_POST["x_exp_date_mm"], $_POST["x_exp_date_yy"]) ) - $error_list .= "
    • The expiration date does not appear to be valid
    • "; + $error_list .= '
    • '.lang('invalid_card_exp').'
    • '; //Verify card number if( empty($_POST["x_card_num"]) || !card_number_valid($_POST["x_card_num"]) ) - $error_list .= "
    • The card number you entered is not a valid credit card number
    • "; + $error_list .= '
    • '.lang('invalid_card_num').'
    • '; //Verify security code if( empty($_POST["x_card_code"])) - $error_list .= "
    • Please enter the three digit security code on the reverse side of the card
    • "; + $error_list .= '
    • '.lang('enter_card_code').'
    • '; // We need to store the credit card information temporarily @@ -190,7 +190,7 @@ function process_payment() else { // payment declined, return our user to the form with an error. - return "Transaction Declined. Please check your card information and try again."; + return lang('transaction_declined'); } } @@ -229,14 +229,14 @@ function check() { if(empty($_POST["authorize_net_test_x_login"]) || empty($_POST["authorize_net_test_x_tran_key"]) ) { - $error = "
      You must enter login values for TEST mode
      "; + $error = lang('enter_test_mode_credentials'); } } else { if(empty($_POST["authorize_net_live_x_login"]) || empty($_POST["authorize_net_live_x_tran_key"]) ) { - $error = "
      You must enter login values for LIVE mode
      "; + $error = lang('enter_live_mode_credentials'); } } diff --git a/gocart/libraries/payment/authorize_net/forms/admin_form.php b/gocart/libraries/payment/authorize_net/forms/admin_form.php old mode 100644 new mode 100755 index d441ff87..27674583 --- a/gocart/libraries/payment/authorize_net/forms/admin_form.php +++ b/gocart/libraries/payment/authorize_net/forms/admin_form.php @@ -1,42 +1,42 @@ - + - + - + - + - + - +
      Enabled
      Mode
      Test Mode Login ID
      " size="50" >
      Test Mode Transaction Key
      " size="50">
      Live Mode Login ID
      " size="50">
      Live Mode Transaction Key
      " size="50">
      diff --git a/gocart/libraries/payment/authorize_net/forms/customer_card.php b/gocart/libraries/payment/authorize_net/forms/customer_card.php old mode 100644 new mode 100755 index b499c669..aba29259 --- a/gocart/libraries/payment/authorize_net/forms/customer_card.php +++ b/gocart/libraries/payment/authorize_net/forms/customer_card.php @@ -5,7 +5,7 @@ The JavaScript Source!! http://javascript.internet.com Created by: David Leppek :: https://www.azcode.com/Mod10 -Basically, the alorithum takes each digit, from right to left and muliplies each second +Basically, the alorithm takes each digit, from right to left and muliplies each second digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of the multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is then @@ -89,7 +89,7 @@ function Mod10(ccNumb) { // v2.0 { $('#card_num').addClass('require_fail'); errors = true; - display_error('payment', 'Credit card does not appear to be a valid number'); + display_error('payment', '') ; } // validate other fields $('.pmt_required').each(function(){ @@ -97,7 +97,7 @@ function Mod10(ccNumb) { // v2.0 { $(this).addClass('require_fail'); errors = true; - display_error('payment', 'Please complete all required fields.'); + display_error('payment', ''); } }); @@ -117,21 +117,21 @@ function Mod10(ccNumb) { // v2.0
      - First Name *
      + *
      " size="30" />
      - Last Name *
      + *
      " size="30" />
      - Card Number *
      + *
      " size="30">
      - Expires on *
      + *
      1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12); @@ -147,7 +147,7 @@ function Mod10(ccNumb) { // v2.0 ?>
      - CVV Code *
      + *
      " />
      diff --git a/gocart/libraries/payment/paypal_express/forms/admin_form.php b/gocart/libraries/payment/paypal_express/forms/admin_form.php old mode 100644 new mode 100755 index 0b0fbc5a..279eecdf --- a/gocart/libraries/payment/paypal_express/forms/admin_form.php +++ b/gocart/libraries/payment/paypal_express/forms/admin_form.php @@ -1,44 +1,44 @@ - + - + - + - + - + - +
      Enabled
      Test Mode
      Currency
      Paypal Username
      " size="50" >
      Paypal Password
      " size="50">
      Paypal API Signature
      " size="50" />
      diff --git a/gocart/libraries/payment/paypal_express/forms/checkout.php b/gocart/libraries/payment/paypal_express/forms/checkout.php old mode 100644 new mode 100755 index dad84289..82ffb5fa --- a/gocart/libraries/payment/paypal_express/forms/checkout.php +++ b/gocart/libraries/payment/paypal_express/forms/checkout.php @@ -3,6 +3,6 @@ Acceptance Mark - Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete. + diff --git a/gocart/libraries/payment/paypal_express/paypal_express.php b/gocart/libraries/payment/paypal_express/paypal_express.php old mode 100644 new mode 100755 index fa4ff48a..d8d90d2c --- a/gocart/libraries/payment/paypal_express/paypal_express.php +++ b/gocart/libraries/payment/paypal_express/paypal_express.php @@ -89,7 +89,7 @@ function process_payment() $this->CI->paypal->doExpressCheckout($this->CI->go_cart->total(), $store.' order'); // If we get to this step at all, something went wrong - return 'There was an error processing your payment through PayPal'; + return lang('paypal_error'); } diff --git a/gocart/libraries/shipping/fedex/fedex.php b/gocart/libraries/shipping/fedex/fedex.php old mode 100644 new mode 100755 index 351bad49..c3e47772 --- a/gocart/libraries/shipping/fedex/fedex.php +++ b/gocart/libraries/shipping/fedex/fedex.php @@ -132,11 +132,11 @@ function rates() $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; $request['RequestedShipment']['PackagingType'] = $package; $request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => $weight, - 'Units' => 'LB'), + 'Units' => $this->CI->config->item('weight_unit')), 'Dimensions' => array('Length' => $pkg_length, 'Width' => $pkg_width, 'Height' => $pkg_height, - 'Units' => 'IN'))); + 'Units' => $this->CI->config->item('dimension_unit')))); // send request $response = $client ->getRates($request); @@ -249,12 +249,12 @@ function form($post = false) } - $form = ' - - - '; + $form = '
      Key: '.form_input('key', $key, 'class="gc_tf1"') .'
      Ship Account: '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
      Meter: '.form_input('meter', $meter, 'class="gc_tf1"') .'
      Password: '.form_input('password', $password, 'class="gc_tf1"') .'
      + + + '; - $form .= ' - +
      '.lang('fedex_key').': '.form_input('key', $key, 'class="gc_tf1"') .'
      '.lang('fedex_account').': '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
      '.lang('fedex_meter').': '.form_input('meter', $meter, 'class="gc_tf1"') .'
      '.lang('password').': '.form_input('password', $password, 'class="gc_tf1"') .'
      Services To Offer: '; + $form .= '
      '.lang('fedex_services').': '; foreach($this->service_list as $id=>$opt) { diff --git a/gocart/views/admin/dashboard.php b/gocart/views/admin/dashboard.php old mode 100644 new mode 100755 index 3870b590..67aad978 --- a/gocart/views/admin/dashboard.php +++ b/gocart/views/admin/dashboard.php @@ -1,15 +1,15 @@ -

      Most Recent Orders

      +

      - - - - - - + + + + + + @@ -32,15 +32,15 @@

      -

      Most Recent Registered Customers

      +

      OrderBill ToShip ToOrdered OnStatusNotes
      ID uncomment this if you want it*/ ?> - - - - + + + + @@ -53,11 +53,11 @@ diff --git a/gocart/views/admin/header.php b/gocart/views/admin/header.php index 04ff33a9..bc1a1009 100755 --- a/gocart/views/admin/header.php +++ b/gocart/views/admin/header.php @@ -48,9 +48,9 @@ function buttons()

      - Logout - Front End - Dashboard + + +
      @@ -60,14 +60,14 @@ function buttons() $admin_url = site_url($this->config->item('admin_folder')).'/';?> auth->check_access('Admin')) : ?> @@ -118,18 +118,18 @@ function buttons()

      - Note:

      + :

      - Alert:

      + :

      \ No newline at end of file diff --git a/gocart/views/admin/orders.php b/gocart/views/admin/orders.php old mode 100644 new mode 100755 index fc9791ab..adae35f9 --- a/gocart/views/admin/orders.php +++ b/gocart/views/admin/orders.php @@ -1,11 +1,4 @@ - - -
      You searched returned '.$total.' results

      '; + echo '

      '.lang('search_returned').' '.$total.' '.lang('returned_results').'

      '; } ?> @@ -74,12 +67,12 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder)
      - - - - - - + + + + + + @@ -91,21 +84,21 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder) - ':''?> + ':''?> @@ -123,28 +116,28 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder) echo form_dropdown('status', $this->config->item('order_statuses'), $order->status, 'id="status_form_'.$order->id.'"'); ?> - Save + @@ -193,14 +186,14 @@ function submit_form() { if($(".gc_check:checked").length > 0) { - if(confirm('Are you sure you want to delete the selected orders.')) + if(confirm('')) { $('#delete_form').submit(); } } else { - alert('You did not select any orders to delete.'); + alert(''); } } diff --git a/gocart/views/checkout/checkout.php b/gocart/views/checkout/checkout.php old mode 100644 new mode 100755 index 7b877f73..f79b9606 --- a/gocart/views/checkout/checkout.php +++ b/gocart/views/checkout/checkout.php @@ -72,7 +72,7 @@ function submit_order() { if(typeof response != "object") { - display_error('payment', ''); return; } @@ -191,7 +191,7 @@ function save_order() { if(typeof response != "object") { - display_error('payment', ''); return; } diff --git a/gocart/views/header.php b/gocart/views/header.php old mode 100644 new mode 100755 index 97bdb65f..bb79bd7d --- a/gocart/views/header.php +++ b/gocart/views/header.php @@ -137,7 +137,7 @@ function page_loop($pages, $layer, $first=false) } ?> -
    • +
    • diff --git a/install/application/views/templates/gocart.php b/install/application/views/templates/gocart.php old mode 100644 new mode 100755 index aaddd8da..67aeae99 --- a/install/application/views/templates/gocart.php +++ b/install/application/views/templates/gocart.php @@ -15,7 +15,10 @@ // Store currency $config['currency'] = 'USD'; // USD, EUR, etc $config['currency_symbol'] = '$'; -//$config['currency_separator'] = ','; + +// Shipping config units +$config['weight_unit'] = 'LB'; // LB, KG, etc +$config['dimension_unit'] = 'IN'; // FT, CM, etc // site logo path (for packing slip) $config['site_logo'] = '/images/logo.png'; From 2637bce7394cfee7fcadc896b16be6ebbee00427 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 12:47:41 -0600 Subject: [PATCH 045/343] removed third_party folder replacing third_party folder with packages folder --- gocart/third_party/.htaccess | 1 - gocart/third_party/index.html | 10 ---------- 2 files changed, 11 deletions(-) delete mode 100644 gocart/third_party/.htaccess delete mode 100644 gocart/third_party/index.html diff --git a/gocart/third_party/.htaccess b/gocart/third_party/.htaccess deleted file mode 100644 index 14249c50..00000000 --- a/gocart/third_party/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/gocart/third_party/index.html b/gocart/third_party/index.html deleted file mode 100644 index c942a79c..00000000 --- a/gocart/third_party/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

      Directory access is forbidden.

      - - - \ No newline at end of file From b0731a7d7adf8888025039e4db38f5e54cf826ed Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 12:49:49 -0600 Subject: [PATCH 046/343] Moved payment and shipping modules to the packages folder This move will help keep payment and shipping modules organized with related files such as languages. --- .../payment/sage_pay/forms/admin_form.php | 76 ---- .../payment/sage_pay/forms/customer_card.php | 102 ----- .../libraries/payment/sage_pay/sage_pay.php | 380 ------------------ .../payment/sage_pay/sage_pay_lib.php | 148 ------- .../shipping/fedex/lib_old/fedex.php | 189 --------- .../shipping/fedex/lib_old/xmlparser.php | 99 ----- gocart/packages/.htaccess | 1 + gocart/packages/index.html | 10 + .../libraries}/authorize_net.php | 22 +- .../libraries}/authorize_net_lib.php | 0 .../libraries}/forms/admin_form.php | 24 +- .../libraries}/forms/customer_card.php | 16 +- .../authorize_net/libraries}/forms/cvv.png | Bin .../payment/cod/libraries}/cod.php | 0 .../libraries}/forms/admin_form.php | 24 +- .../libraries}/forms/checkout.php | 2 +- .../paypal_express/libraries}/httprequest.php | 0 .../paypal_express/libraries}/paypal.php | 0 .../libraries}/paypal_express.php | 10 +- .../shipping/fedex/language/fedex_lang.php | 7 + .../shipping/fedex/libraries}/fedex.php | 16 +- .../fedex/libraries}/lib/RateService_v8.wsdl | 0 .../fedex/libraries}/lib/fedex-common.php5 | 0 .../shipping/flatrate/libraries}/flatrate.php | 0 .../shipping/tablerate/libraries}/form.php | 0 .../tablerate/libraries}/tablerate.php | 0 .../libraries}/united_parcel_service.php | 0 .../libraries}/usps_domestic.php | 2 +- .../libraries}/usps_international.php | 0 29 files changed, 76 insertions(+), 1052 deletions(-) delete mode 100644 gocart/libraries/payment/sage_pay/forms/admin_form.php delete mode 100644 gocart/libraries/payment/sage_pay/forms/customer_card.php delete mode 100644 gocart/libraries/payment/sage_pay/sage_pay.php delete mode 100644 gocart/libraries/payment/sage_pay/sage_pay_lib.php delete mode 100644 gocart/libraries/shipping/fedex/lib_old/fedex.php delete mode 100644 gocart/libraries/shipping/fedex/lib_old/xmlparser.php create mode 100644 gocart/packages/.htaccess create mode 100644 gocart/packages/index.html rename gocart/{libraries/payment/authorize_net => packages/payment/authorize_net/libraries}/authorize_net.php (89%) mode change 100755 => 100644 rename gocart/{libraries/payment/authorize_net => packages/payment/authorize_net/libraries}/authorize_net_lib.php (100%) rename gocart/{libraries/payment/authorize_net => packages/payment/authorize_net/libraries}/forms/admin_form.php (60%) mode change 100755 => 100644 rename gocart/{libraries/payment/authorize_net => packages/payment/authorize_net/libraries}/forms/customer_card.php (90%) mode change 100755 => 100644 rename gocart/{libraries/payment/authorize_net => packages/payment/authorize_net/libraries}/forms/cvv.png (100%) rename gocart/{libraries/payment/cod => packages/payment/cod/libraries}/cod.php (100%) rename gocart/{libraries/payment/paypal_express => packages/payment/paypal_express/libraries}/forms/admin_form.php (56%) mode change 100755 => 100644 rename gocart/{libraries/payment/paypal_express => packages/payment/paypal_express/libraries}/forms/checkout.php (50%) mode change 100755 => 100644 rename gocart/{libraries/payment/paypal_express => packages/payment/paypal_express/libraries}/httprequest.php (100%) rename gocart/{libraries/payment/paypal_express => packages/payment/paypal_express/libraries}/paypal.php (100%) rename gocart/{libraries/payment/paypal_express => packages/payment/paypal_express/libraries}/paypal_express.php (90%) mode change 100755 => 100644 create mode 100644 gocart/packages/shipping/fedex/language/fedex_lang.php rename gocart/{libraries/shipping/fedex => packages/shipping/fedex/libraries}/fedex.php (93%) mode change 100755 => 100644 rename gocart/{libraries/shipping/fedex => packages/shipping/fedex/libraries}/lib/RateService_v8.wsdl (100%) rename gocart/{libraries/shipping/fedex => packages/shipping/fedex/libraries}/lib/fedex-common.php5 (100%) rename gocart/{libraries/shipping/flatrate => packages/shipping/flatrate/libraries}/flatrate.php (100%) rename gocart/{libraries/shipping/tablerate => packages/shipping/tablerate/libraries}/form.php (100%) rename gocart/{libraries/shipping/tablerate => packages/shipping/tablerate/libraries}/tablerate.php (100%) rename gocart/{libraries/shipping/united_parcel_service => packages/shipping/united_parcel_service/libraries}/united_parcel_service.php (100%) rename gocart/{libraries/shipping/usps_domestic => packages/shipping/usps_domestic/libraries}/usps_domestic.php (99%) rename gocart/{libraries/shipping/usps_international => packages/shipping/usps_international/libraries}/usps_international.php (100%) diff --git a/gocart/libraries/payment/sage_pay/forms/admin_form.php b/gocart/libraries/payment/sage_pay/forms/admin_form.php deleted file mode 100644 index 7fe41ef4..00000000 --- a/gocart/libraries/payment/sage_pay/forms/admin_form.php +++ /dev/null @@ -1,76 +0,0 @@ - - - 'Disabled', 1 => 'Enabled'); - - //protocol (save hidden to keep in settings) - echo form_hidden('vps_protocol', $settings['vps_protocol']); - - //mode - $mode_options = array('simulator' => 'Simulator', 'test' => 'Test', 'live' => 'Live'); - //type - $type_options = array('PAYMENT' => 'Payment', 'DEFFERRED' => 'Deferred', 'AUTHENTICATE' => 'Authenticate'); - //available card types - $available_card_types = explode(',', SAGE_PAY_CARD_TYPES); - for ($i=0; $i < count($available_card_types); $i+=2) - $acts[$available_card_types[$i]]=$available_card_types[$i+1]; - //currency - $available_currency_types = explode(',', SAGE_PAY_CURRENCY); - for ($i=0; $i < count($available_currency_types); $i+=2) - $currency_options[$available_currency_types[$i]]=$available_currency_types[$i+1]; - -?> -
      First NameLast NameEmailActive
      active == 1) { - echo 'Yes'; + echo lang('yes'); } else { - echo 'No'; + echo lang('no'); } ?>
      OrderBill ToShip ToOrdered OnStatusNotes
      - Delete +
      There are currently no orders.
      '.lang('no_orders') .'
      notes; ?>
      - View +
      - Delete +
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Enabled:
      VPS Protocol:
      Vendor Name:
      Supported Card Types:
      - $value){ - echo ''; - } - ?> - -
      ' . $value . '' . form_checkbox('card_types[]', $key, isset($settings['card_types'][$key])) . '
      System:
      Type:
      Currency
      diff --git a/gocart/libraries/payment/sage_pay/forms/customer_card.php b/gocart/libraries/payment/sage_pay/forms/customer_card.php deleted file mode 100644 index d27d7ca2..00000000 --- a/gocart/libraries/payment/sage_pay/forms/customer_card.php +++ /dev/null @@ -1,102 +0,0 @@ - - - - -'01','02'=>'02','03'=>'03','04'=>'04','05'=>'05','06'=>'06','07'=>'07','08'=>'08','09'=>'09','10'=>'10','11'=>'11','12'=>'12'); - - // valid from years - $year_now = date('y'); - $valid_from_years = array(); - for($y = $year_now; $y > $year_now - 5; $y--) - $valid_from_years[$y] = $y; - // expires on years - $expires_on_years = array(); - for($y = $year_now; $y < $year_now + 7; $y++) - $expires_on_years[$y] = $y; - - -?> - - -
      -
      - Full Name (as shown on card) *
      - 'CardHolder', 'name' => 'CardHolder', 'value' => @$sp_data["CardHolder"], 'class' => 'pmt_required textfield input', 'size' => '30')) ?> -
      -
      - Card Type *
      - -
      -
      - Card Number *
      - 'CardNumber', 'name' => 'CardNumber', 'value' => @$sp_data["CardNumber"], 'class' => 'pmt_required textfield input', 'size' => '30')) ?> -
      -
      -
      -
      - Valid from
      - -
      -
      - Expires on *
      - -
      -
      - CVV Code *
      - 'CV2', 'name' => 'CV2', 'max_length' => '3', 'value' => @$sp_data["CV2"], 'class' => 'pmt_required textfield input', 'size' => '5')) ?> -
      -
      -
      \ No newline at end of file diff --git a/gocart/libraries/payment/sage_pay/sage_pay.php b/gocart/libraries/payment/sage_pay/sage_pay.php deleted file mode 100644 index bdbf03b3..00000000 --- a/gocart/libraries/payment/sage_pay/sage_pay.php +++ /dev/null @@ -1,380 +0,0 @@ -CI =& get_instance(); - $this->CI->load->library('session'); - $this->CI->load->library('payment/sage_pay/sage_pay_lib'); - } - - /** - * customer front end checkout form - * - * @param array $post - * @return string - */ - public function checkout_form($post = false){ - //load form helper - $this->CI->load->helper('form'); - - $settings = $this->CI->Settings_model->get_settings('sage_pay'); - $enabled = $settings['enabled']; - - //explode selected card types - if(isset($settings['card_types'])){ - $selected_cards = explode(',', $settings['card_types']); - $settings['card_types'] = array(); - //store values in keys - foreach($selected_cards as $selected_card){ - $settings['card_types'][$selected_card] = 1; - } - } - - $form = array(); - - // Retrieve any previously stored card data to redisplay in case of errors - $sp_data = $this->CI->session->userdata('sp_data'); - - - if($enabled) - { - $form['name'] = $this->method_name; - - //retrieve cc form - ob_start(); - include(APPPATH."libraries/payment/sage_pay/forms/customer_card.php"); - $form['form'] = ob_get_contents(); - ob_end_clean(); - - } else return array(); - - return $form; - } - - public function checkout_check(){ - - //load credit card helper - $this->CI->load->helper('credit_card_helper'); - - $error_msg = "Please fix the following errors:
        "; - $error_list = ""; - - //Verify name field - if( empty($_POST["CardHolder"])) - $error_list .= "
      • Please enter your full name as shown on the card
      • "; - - //Verify date - if( !card_expiry_valid($_POST["ExpiryDate_mm"], $_POST["ExpiryDate_yy"]) ) - $error_list .= "
      • The expiration date does not appear to be valid
      • "; - - //Verify card number - if( empty($_POST["CardNumber"]) || !card_number_valid($_POST["CardNumber"]) ) - $error_list .= "
      • The card number you entered is not a valid credit card number
      • "; - - //Verify security code - if( empty($_POST["CV2"])) - $error_list .= "
      • Please enter the three digit security code on the reverse side of the card
      • "; - - - // We need to store the credit card information temporarily - $sp_tmp_data["sp_data"] = $_POST; - $this->CI->session->set_userdata($sp_tmp_data); - - if( $error_list ) - return $error_msg . $error_list . "
      "; - else - { - return false; - } - } - - /** - * payment module description - * - */ - public function description(){ - //create a description from the session which we can store in the database - //this will be added to the database upon order confirmation - - /* - access the payment information with the $_POST variable since this is called - from the same place as the checkout_check above. - */ - - return 'Sage Pay'; - - } - - /** - * back end installation functions - * - */ - public function install(){ - //default settings - $config['service'] = 'DIRECT'; //FORM, SERVER & DIRECT - direct only available in this version - - $config['mode'] = 'Simulator'; //Simulator, Test & Live - - $config['direct_simulator_url'] = 'https://test.sagepay.com/Simulator/VSPDirectGateway.asp'; - $config['direct_test_url'] = 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp'; - $config['direct_live_url'] = 'https://live.sagepay.com/gateway/service/vspdirect-register.vsp'; - - $config['vps_protocol'] = 2.23; - - $config['tx_type'] = 'PAYMENT'; //Can be PAYMENT, DEFERRED or AUTHENTICATE - - $config['vendor'] = ''; //Sage pay vendor name - - $config['account_type'] = 'E'; //E for e-commerce - - $config['currency'] = 'USD'; //default USD - - $config['enabled'] = '0'; - - $this->CI->Settings_model->save_settings('sage_pay', $config); - - //create sql table(s) - $queries = $this->create_table($this->CI->db->dbprefix); - foreach($queries as $query){ - $this->CI->db->query($query); - } - - } - - /** - * table for storing transaction data - * - * @param string $prefix - * @return array - */ - private function create_table($prefix){ - $query = array(); - - // currently disabled - //$query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; - - // currently set not to overwrite if install has already been run - $query[] = "CREATE TABLE IF NOT EXISTS `".$prefix."sage_pay` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) DEFAULT NULL, - `VPSProtocol` varchar(4) COLLATE utf8_general_ci DEFAULT NULL, - `Status` varchar(15) COLLATE utf8_general_ci DEFAULT NULL, - `StatusDetail` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, - `VendorTxCode` varchar(64) COLLATE utf8_general_ci DEFAULT NULL, - `VPSTxId` varchar(38) COLLATE utf8_general_ci DEFAULT NULL, - `SecurityKey` varchar(10) COLLATE utf8_general_ci DEFAULT NULL, - `TxAuthNo` int(11) DEFAULT NULL, - `AVSCV2` varchar(50) COLLATE utf8_general_ci DEFAULT NULL, - `AddressResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `PostCodeResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `CV2Result` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `3DSecureStatus` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `CAVV` varchar(32) COLLATE utf8_general_ci DEFAULT NULL, - `MD` varchar(35) COLLATE utf8_general_ci DEFAULT NULL, - `ACSURL` text COLLATE utf8_general_ci, - `PAReq` text COLLATE utf8_general_ci, - `PayPalRedirectURL` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, - `Created` datetime default NULL, - PRIMARY KEY (`id`) - ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;"; - - return $query; - } - /** - * remove payment module settings - * - */ - public function uninstall(){ - $this->CI->Settings_model->delete_settings('sage_pay'); - $queries = $this->drop_table($this->CI->db->dbprefix); - foreach($queries as $query){ - $this->CI->db->query($query); - } - } - /** - * drop any associated tables - * - * @param string $prefix - * @return array - */ - private function drop_table($prefix){ - $query = array(); - - $query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; - - return $query; - } - - - /** - * payment processor - * - */ - public function process_payment(){ - - // Get previously entered customer info - $sp_data = $this->CI->session->userdata('sp_data'); - $customer = $this->CI->go_cart->customer(); - - // Set our sagepay fields - - $this->CI->sage_pay_lib->add_field('Amount', $this->CI->go_cart->total()); - - $this->CI->sage_pay_lib->add_field('CardHolder', $sp_data["CardHolder"]); - $this->CI->sage_pay_lib->add_field('CardNumber', $sp_data["CardNumber"]); - $this->CI->sage_pay_lib->add_field('StartDate', $sp_data["StartDate_mm"] . $sp_data["StartDate_yy"]); - $this->CI->sage_pay_lib->add_field('ExpiryDate', $sp_data["ExpiryDate_mm"] . $sp_data["ExpiryDate_yy"]); - $this->CI->sage_pay_lib->add_field('CV2', $sp_data["CV2"]); - $this->CI->sage_pay_lib->add_field('CardType', $sp_data["CardType"]); - - $this->CI->sage_pay_lib->add_field('BillingSurname', $customer['bill_address']["lastname"]); - $this->CI->sage_pay_lib->add_field('BillingFirstnames', $customer['bill_address']["firstname"]); - $this->CI->sage_pay_lib->add_field('BillingAddress1', $customer['bill_address']["address1"]); - $this->CI->sage_pay_lib->add_field('BillingAddress2',$customer['bill_address']["address2"]); - $this->CI->sage_pay_lib->add_field('BillingCity', $customer['bill_address']["city"]); - $this->CI->sage_pay_lib->add_field('BillingState', $customer['bill_address']["zone"]); - $this->CI->sage_pay_lib->add_field('BillingPostCode', $customer['bill_address']["zip"]); - $this->CI->sage_pay_lib->add_field('BillingCountry', $customer['bill_address']["country_code"]); - $this->CI->sage_pay_lib->add_field('BillingPhone', $customer['bill_address']["phone"]); - - $this->CI->sage_pay_lib->add_field('DeliverySurname', $customer['ship_address']["lastname"]); - $this->CI->sage_pay_lib->add_field('DeliveryFirstnames', $customer['ship_address']["firstname"]); - $this->CI->sage_pay_lib->add_field('DeliveryAddress1', $customer['ship_address']["address1"]); - $this->CI->sage_pay_lib->add_field('DeliveryAddress2',$customer['ship_address']["address2"]); - $this->CI->sage_pay_lib->add_field('DeliveryCity', $customer['ship_address']["city"]); - $this->CI->sage_pay_lib->add_field('DeliveryState', $customer['ship_address']["zone"]); - $this->CI->sage_pay_lib->add_field('DeliveryPostCode', $customer['ship_address']["zip"]); - $this->CI->sage_pay_lib->add_field('DeliveryCountry', $customer['ship_address']["country_code"]); - $this->CI->sage_pay_lib->add_field('DeliveryPhone', $customer['ship_address']["phone"]); - - - // Send info to sagepay and receive a response - $this->CI->sage_pay_lib->process_payment(); - $sagepay_response = $this->CI->sage_pay_lib->get_all_responses(); - - // record results in say_pay table for future processing - $this->CI->db->insert($this->CI->db->dbprefix . 'sage_pay', $sagepay_response); - - // Forward results - if($sagepay_response['Status'] != 'INVALID'){ - // payment success, we can destroy our tmp card data - $this->CI->session->unset_userdata('sp_data'); - return false; // false == no error - } - else - { - // payment declined, return our user to the form with an error. - log_message('debug', 'Sage-pay module - Protocol:'. $sagepay_response['VPSProtocol'] .' - Status:' . $sagepay_response['Status']); - log_message('debug', 'Sage-pay module - Status Detail:'. $sagepay_response['StatusDetail']); - return "Transaction Declined. Please check your card information and try again."; - } - } - - /** - * Admin form settings - * - * @param array $post - * @return string - */ - public function form($post = false){ - - //load form helper - $this->CI->load->helper('form'); - - //this same function processes the form - if(!$post) - { - $settings = $this->CI->Settings_model->get_settings('sage_pay'); - $enabled = $settings['enabled']; - - //explode selected card types - if(isset($settings['card_types'])){ - $selected_cards = explode(',', $settings['card_types']); - $settings['card_types'] = array(); - //store values in keys - foreach($selected_cards as $selected_card){ - $settings['card_types'][$selected_card] = 1; - } - } - - - - } - else - { - $settings = $post; - $enabled = $post['enabled']; - } - - //retrieve form contents - ob_start(); - include(APPPATH."libraries/payment/sage_pay/forms/admin_form.php"); - $form = ob_get_contents(); - ob_end_clean(); - - return $form; - } - - /** - * Admin form validation - * - */ - public function check(){ - $error = false; - - // TODO 4 -o swicks -c Category: fix check options - - if(empty($_POST['vendor'])) - $error = "
      You must enter a valid Vendor Name
      "; - - if($error) - { - return $error; - } - else - { - //we save the settings if it gets here - - //place selected card types in a string - $_POST['card_types'] = isset($_POST['card_types'])? implode(',', $_POST['card_types']) : ""; - - $this->CI->Settings_model->save_settings('sage_pay', $_POST); - - return false; - } - } -} diff --git a/gocart/libraries/payment/sage_pay/sage_pay_lib.php b/gocart/libraries/payment/sage_pay/sage_pay_lib.php deleted file mode 100644 index 0882abaa..00000000 --- a/gocart/libraries/payment/sage_pay/sage_pay_lib.php +++ /dev/null @@ -1,148 +0,0 @@ -CI =& get_instance(); - - // Retrieve gocart admin settings - if( $this->settings = $this->CI->Settings_model->get_settings('sage_pay') ) - { - // If we have settings, the module is installed. If not, don't bother loading them - switch($this->settings['mode']){ - case 'test': - $this->gateway_url = $this->settings['direct_test_url']; - break; - case 'live': - $this->gateway_url = $this->settings['direct_live_url']; - break; - case 'simulator': - default: - $this->gateway_url = $this->settings['direct_simulator_url']; - break; - } - - } - } - - /** - * Add field to instance array - * - * @param string $field - * @param string $value - */ - function add_field($field, $value) { - $this->fields[$field] = $value; - } - - - /** - * process say pay payments - * - * @return string status - */ - public function process_payment(){ - set_time_limit(60); - - // add some preset items - $this->add_field('VPSProtocol', $this->settings['vps_protocol']); - $this->add_field('Vendor', $this->settings['vendor']); - - // need to improve description - site description or part of cart - $this->add_field('Description', $this->settings['vendor']); - - $this->add_field('Currency', $this->settings['currency']); - $this->add_field('TxType', $this->settings['tx_type']); - - //generate a unique vendorTxCode - $time_stamp = date("ymdHis"); - $rand_num = rand(0,32000)*rand(0,32000); - $this->vendor_tx_code= $this->settings['vendor'] . "-" . $time_stamp . "-" . $rand_num; - $this->add_field('VendorTxCode', $this->vendor_tx_code); - - // hardcoded vendor for test demo - $this->add_field('Vendor', 'fountainsdirect'); - - foreach( $this->fields as $key => $value ) { - $this->field_string .= "$key=" . urlencode( $value ) . "&"; - } - $this->field_string = rtrim( $this->field_string, "& " ); - - //set up URL & options - $curl = curl_init($this->gateway_url); - curl_setopt($curl, CURLOPT_HEADER, 0); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_POSTFIELDS, $this->field_string); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($curl, CURLOPT_TIMEOUT,30); - //remove these last 2 lines if using an earlier version of CURL - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); - - // execute curl - $this->response_string = curl_exec($curl); - $this->response = array(); - // split response into lines - $lines = preg_split( '/\r\n|\r|\n/', $this->response_string ); - foreach($lines as $line){ - $key_value = preg_split( '/=/', $line ); - if(count($key_value) == 2) - $this->response[trim($key_value[0])] = trim($key_value[1]); - } - - // additional information returned for debugging - $this->response['VendorTxCode'] = $this->vendor_tx_code; - - $this->response['Created'] = date('Y-m-d H:i:s'); - - return $this->response['Status']; - } - - /** - * response status detail - * - */ - function get_response_status_text() { - return $this->response['StatusDetail']; - } - - /** - * returns array of all response results from sagepay - * - */ - function get_all_responses() { - return $this->response; - } - - - - -} \ No newline at end of file diff --git a/gocart/libraries/shipping/fedex/lib_old/fedex.php b/gocart/libraries/shipping/fedex/lib_old/fedex.php deleted file mode 100644 index e107e68d..00000000 --- a/gocart/libraries/shipping/fedex/lib_old/fedex.php +++ /dev/null @@ -1,189 +0,0 @@ -server = $server; - } - - function setAccountNumber($accountNumber) { - $this->accountNumber = $accountNumber; - } - - function setMeterNumber($meterNumber) { - $this->meterNumber = $meterNumber; - } - - function setCarrierCode($carrierCode) { - $this->carrierCode = $carrierCode; - } - - function setDropoffType($dropoffType) { - $this->dropoffType = $dropoffType; - } - - function setService($service, $name) { - $this->service = $service; - $this->serviceName = $name; - } - - function setPackaging($packaging) { - $this->packaging = $packaging; - } - - function setWeightUnits($units) { - $this->weightUnits = $units; - } - - function setWeight($weight) { - $this->weight = $weight; - } - - function setOriginStateOrProvinceCode($code) { - $this->originStateOrProvinceCode = $code; - } - - function setOriginPostalCode($code) { - $this->originPostalCode = $code; - } - - function setOriginCountryCode($code) { - $this->originCountryCode = $code; - } - - function setDestStateOrProvinceCode($code) { - $this->destStateOrProvinceCode = $code; - } - - function setDestPostalCode($code) { - $this->destPostalCode = $code; - } - - function setDestCountryCode($code) { - $this->destCountryCode = $code; - } - - function setPayorType($type) { - $this->payorType = $type; - } - - function getPrice() { - - $str = ''; - $str .= ' '; - $str .= ' '; - $str .= ' Express Rate'; - $str .= ' '.$this->accountNumber.''; - $str .= ' '.$this->meterNumber.''; - $str .= ' '.$this->carrierCode.''; - $str .= ' '; - $str .= ' '.$this->dropoffType.''; - $str .= ' '.$this->service.''; - $str .= ' '.$this->packaging.''; - $str .= ' '.$this->weightUnits.''; - $str .= ' '.number_format($this->weight, 1, '.', '').''; - $str .= ' '; - $str .= ' '.$this->originStateOrProvinceCode.''; - $str .= ' '.$this->originPostalCode.''; - $str .= ' '.$this->originCountryCode.''; - $str .= ' '; - $str .= ' '; - $str .= ' '.$this->destStateOrProvinceCode.''; - $str .= ' '.$this->destPostalCode.''; - $str .= ' '.$this->destCountryCode.''; - $str .= ' '; - $str .= ' '; - $str .= ' '.$this->payorType.''; - $str .= ' '; - $str .= ' '.ceil(bcdiv(number_format($this->weight, 1, '.', ''), '150', 3)).''; - $str .= ' '; - //print($str); - $header[] = "Host: www.smart-shop.com"; - $header[] = "MIME-Version: 1.0"; - $header[] = "Content-type: multipart/mixed; boundary=----doc"; - $header[] = "Accept: text/xml"; - $header[] = "Content-length: ".strlen($str); - $header[] = "Cache-Control: no-cache"; - $header[] = "Connection: close \r\n"; - $header[] = $str; - - $ch = curl_init(); - //Disable certificate check. - // uncomment the next line if you get curl error 60: error setting certificate verify locations - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); - // uncommenting the next line is most likely not necessary in case of error 60 - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); - //------------------------- - //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); - //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); - //curl_setopt($ch, CURLOPT_CAINFO, "c:/ca-bundle.crt"); - //------------------------- - curl_setopt($ch, CURLOPT_URL,$this->server); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_TIMEOUT, 4); - curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST'); - curl_setopt($ch, CURLOPT_HTTPHEADER, $header); - - $data = curl_exec($ch); - if (curl_errno($ch)) { - $this->getPrice(); - } else { - // close curl resource, and free up system resources - curl_close($ch); - $xmlParser = new xmlparser(); - $array = $xmlParser->GetXMLTree($data); - //$xmlParser->printa($array); - if(count($array['FDXRATEREPLY'][0]['ERROR'])) { // If it is error - $error = new fedexError(); - $error->number = $array['FDXRATEREPLY'][0]['ERROR'][0]['CODE'][0]['VALUE']; - $error->description = $array['FDXRATEREPLY'][0]['ERROR'][0]['MESSAGE'][0]['VALUE']; - $error->response = $array; - $this->error = $error; - } else if (count($array['FDXRATEREPLY'][0]['ESTIMATEDCHARGES'][0]['DISCOUNTEDCHARGES'][0]['NETCHARGE'])) { - $price = new fedexPrice(); - $price->rate = $array['FDXRATEREPLY'][0]['ESTIMATEDCHARGES'][0]['DISCOUNTEDCHARGES'][0]['NETCHARGE'][0]['VALUE']; - $price->service = $this->serviceName; - $price->response = $array; - $this->price = $price; - } - //print_r($this); - return $this; - } - } -} -class fedexError -{ - var $number; - var $description; - var $response; -} -class fedexPrice -{ - var $service; - var $rate; - var $response; -} - diff --git a/gocart/libraries/shipping/fedex/lib_old/xmlparser.php b/gocart/libraries/shipping/fedex/lib_old/xmlparser.php deleted file mode 100644 index eec9a82b..00000000 --- a/gocart/libraries/shipping/fedex/lib_old/xmlparser.php +++ /dev/null @@ -1,99 +0,0 @@ -GetChildren($vals, $i)); - } else { - $children[$vals[$i]['tag']][] = $this->GetChildren($vals, $i); - } - break; - - case 'close': - return $children; - } - } - } - - function GetXMLTree($xml) - { - $data = $xml; - - $parser = xml_parser_create(); - xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); - xml_parse_into_struct($parser, $data, $vals, $index); - xml_parser_free($parser); - - //print_r($index); - - $tree = array(); - $i = 0; - - if (isset($vals[$i]['attributes'])) { - $tree[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; - $index = count($tree[$vals[$i]['tag']])-1; - $tree[$vals[$i]['tag']][$index] = array_merge($tree[$vals[$i]['tag']][$index], $this->GetChildren($vals, $i)); - } - else - $tree[$vals[$i]['tag']][] = $this->GetChildren($vals, $i); - - return $tree; - } - - function printa($obj) { - global $__level_deep; - if (!isset($__level_deep)) $__level_deep = array(); - - if (is_object($obj)) - print '[obj]'; - elseif (is_array($obj)) { - foreach(array_keys($obj) as $keys) { - array_push($__level_deep, "[".$keys."]"); - $this->printa($obj[$keys]); - array_pop($__level_deep); - } - } - else print implode(" ",$__level_deep)." = $obj\n"; - } -} -?> diff --git a/gocart/packages/.htaccess b/gocart/packages/.htaccess new file mode 100644 index 00000000..14249c50 --- /dev/null +++ b/gocart/packages/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/gocart/packages/index.html b/gocart/packages/index.html new file mode 100644 index 00000000..c942a79c --- /dev/null +++ b/gocart/packages/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

      Directory access is forbidden.

      + + + \ No newline at end of file diff --git a/gocart/libraries/payment/authorize_net/authorize_net.php b/gocart/packages/payment/authorize_net/libraries/authorize_net.php old mode 100755 new mode 100644 similarity index 89% rename from gocart/libraries/payment/authorize_net/authorize_net.php rename to gocart/packages/payment/authorize_net/libraries/authorize_net.php index c2dc5619..cc622acf --- a/gocart/libraries/payment/authorize_net/authorize_net.php +++ b/gocart/packages/payment/authorize_net/libraries/authorize_net.php @@ -12,7 +12,7 @@ function __construct() $this->CI =& get_instance(); $this->CI->load->helper("credit_card"); $this->CI->load->library('session'); - $this->CI->load->library('payment/authorize_net/authorize_net_lib'); + $this->CI->load->library('authorize_net_lib'); } @@ -40,7 +40,7 @@ function checkout_form($post = false) //retrieve cc form ob_start(); - include(APPPATH."libraries/payment/authorize_net/forms/customer_card.php"); + include(APPPATH."packages/payment/authorize_net/libraries/forms/customer_card.php"); $form['form'] = ob_get_contents(); ob_end_clean(); @@ -52,24 +52,24 @@ function checkout_form($post = false) function checkout_check() { - $error_msg = lang('please_fix_errors').'
        '; + $error_msg = "Please fix the following errors:
          "; $error_list = ""; //Verify name field if( empty($_POST["x_first_name"]) || empty($_POST["x_last_name"])) - $error_list .= '
        • '.lang('enter_card_name').'
        • '; + $error_list .= "
        • Please enter your first and last name as it appears on the card
        • "; //Verify date if( !card_expiry_valid($_POST["x_exp_date_mm"], $_POST["x_exp_date_yy"]) ) - $error_list .= '
        • '.lang('invalid_card_exp').'
        • '; + $error_list .= "
        • The expiration date does not appear to be valid
        • "; //Verify card number if( empty($_POST["x_card_num"]) || !card_number_valid($_POST["x_card_num"]) ) - $error_list .= '
        • '.lang('invalid_card_num').'
        • '; + $error_list .= "
        • The card number you entered is not a valid credit card number
        • "; //Verify security code if( empty($_POST["x_card_code"])) - $error_list .= '
        • '.lang('enter_card_code').'
        • '; + $error_list .= "
        • Please enter the three digit security code on the reverse side of the card
        • "; // We need to store the credit card information temporarily @@ -190,7 +190,7 @@ function process_payment() else { // payment declined, return our user to the form with an error. - return lang('transaction_declined'); + return "Transaction Declined. Please check your card information and try again."; } } @@ -213,7 +213,7 @@ function form($post = false) //retrieve form contents ob_start(); - include(APPPATH."libraries/payment/authorize_net/forms/admin_form.php"); + include(APPPATH."packages/payment/authorize_net/libraries/forms/admin_form.php"); $form = ob_get_contents(); ob_end_clean(); @@ -229,14 +229,14 @@ function check() { if(empty($_POST["authorize_net_test_x_login"]) || empty($_POST["authorize_net_test_x_tran_key"]) ) { - $error = lang('enter_test_mode_credentials'); + $error = "
          You must enter login values for TEST mode
          "; } } else { if(empty($_POST["authorize_net_live_x_login"]) || empty($_POST["authorize_net_live_x_tran_key"]) ) { - $error = lang('enter_live_mode_credentials'); + $error = "
          You must enter login values for LIVE mode
          "; } } diff --git a/gocart/libraries/payment/authorize_net/authorize_net_lib.php b/gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php similarity index 100% rename from gocart/libraries/payment/authorize_net/authorize_net_lib.php rename to gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php diff --git a/gocart/libraries/payment/authorize_net/forms/admin_form.php b/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php old mode 100755 new mode 100644 similarity index 60% rename from gocart/libraries/payment/authorize_net/forms/admin_form.php rename to gocart/packages/payment/authorize_net/libraries/forms/admin_form.php index 27674583..d441ff87 --- a/gocart/libraries/payment/authorize_net/forms/admin_form.php +++ b/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php @@ -1,42 +1,42 @@ - + - + - + - + - + - +
          Enabled
          Mode
          Test Mode Login ID
          " size="50" >
          Test Mode Transaction Key
          " size="50">
          Live Mode Login ID
          " size="50">
          Live Mode Transaction Key
          " size="50">
          diff --git a/gocart/libraries/payment/authorize_net/forms/customer_card.php b/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php old mode 100755 new mode 100644 similarity index 90% rename from gocart/libraries/payment/authorize_net/forms/customer_card.php rename to gocart/packages/payment/authorize_net/libraries/forms/customer_card.php index aba29259..b499c669 --- a/gocart/libraries/payment/authorize_net/forms/customer_card.php +++ b/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php @@ -5,7 +5,7 @@ The JavaScript Source!! http://javascript.internet.com Created by: David Leppek :: https://www.azcode.com/Mod10 -Basically, the alorithm takes each digit, from right to left and muliplies each second +Basically, the alorithum takes each digit, from right to left and muliplies each second digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of the multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is then @@ -89,7 +89,7 @@ function Mod10(ccNumb) { // v2.0 { $('#card_num').addClass('require_fail'); errors = true; - display_error('payment', '') ; + display_error('payment', 'Credit card does not appear to be a valid number'); } // validate other fields $('.pmt_required').each(function(){ @@ -97,7 +97,7 @@ function Mod10(ccNumb) { // v2.0 { $(this).addClass('require_fail'); errors = true; - display_error('payment', ''); + display_error('payment', 'Please complete all required fields.'); } }); @@ -117,21 +117,21 @@ function Mod10(ccNumb) { // v2.0
          - *
          + First Name *
          " size="30" />
          - *
          + Last Name *
          " size="30" />
          - *
          + Card Number *
          " size="30">
          - *
          + Expires on *
          1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12); @@ -147,7 +147,7 @@ function Mod10(ccNumb) { // v2.0 ?>
          - *
          + CVV Code *
          " />
          diff --git a/gocart/libraries/payment/authorize_net/forms/cvv.png b/gocart/packages/payment/authorize_net/libraries/forms/cvv.png similarity index 100% rename from gocart/libraries/payment/authorize_net/forms/cvv.png rename to gocart/packages/payment/authorize_net/libraries/forms/cvv.png diff --git a/gocart/libraries/payment/cod/cod.php b/gocart/packages/payment/cod/libraries/cod.php similarity index 100% rename from gocart/libraries/payment/cod/cod.php rename to gocart/packages/payment/cod/libraries/cod.php diff --git a/gocart/libraries/payment/paypal_express/forms/admin_form.php b/gocart/packages/payment/paypal_express/libraries/forms/admin_form.php old mode 100755 new mode 100644 similarity index 56% rename from gocart/libraries/payment/paypal_express/forms/admin_form.php rename to gocart/packages/payment/paypal_express/libraries/forms/admin_form.php index 279eecdf..0b0fbc5a --- a/gocart/libraries/payment/paypal_express/forms/admin_form.php +++ b/gocart/packages/payment/paypal_express/libraries/forms/admin_form.php @@ -1,44 +1,44 @@ - + - + - + - + - + - +
          Enabled
          Test Mode
          Currency
          Paypal Username
          " size="50" >
          Paypal Password
          " size="50">
          Paypal API Signature
          " size="50" />
          diff --git a/gocart/libraries/payment/paypal_express/forms/checkout.php b/gocart/packages/payment/paypal_express/libraries/forms/checkout.php old mode 100755 new mode 100644 similarity index 50% rename from gocart/libraries/payment/paypal_express/forms/checkout.php rename to gocart/packages/payment/paypal_express/libraries/forms/checkout.php index 82ffb5fa..dad84289 --- a/gocart/libraries/payment/paypal_express/forms/checkout.php +++ b/gocart/packages/payment/paypal_express/libraries/forms/checkout.php @@ -3,6 +3,6 @@
      Acceptance Mark
      Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.
      diff --git a/gocart/libraries/payment/paypal_express/httprequest.php b/gocart/packages/payment/paypal_express/libraries/httprequest.php similarity index 100% rename from gocart/libraries/payment/paypal_express/httprequest.php rename to gocart/packages/payment/paypal_express/libraries/httprequest.php diff --git a/gocart/libraries/payment/paypal_express/paypal.php b/gocart/packages/payment/paypal_express/libraries/paypal.php similarity index 100% rename from gocart/libraries/payment/paypal_express/paypal.php rename to gocart/packages/payment/paypal_express/libraries/paypal.php diff --git a/gocart/libraries/payment/paypal_express/paypal_express.php b/gocart/packages/payment/paypal_express/libraries/paypal_express.php old mode 100755 new mode 100644 similarity index 90% rename from gocart/libraries/payment/paypal_express/paypal_express.php rename to gocart/packages/payment/paypal_express/libraries/paypal_express.php index d8d90d2c..9f01bed8 --- a/gocart/libraries/payment/paypal_express/paypal_express.php +++ b/gocart/packages/payment/paypal_express/libraries/paypal_express.php @@ -11,8 +11,8 @@ function __construct() { $this->CI =& get_instance(); $this->CI->load->library('session'); - $this->CI->load->library('payment/paypal_express/paypal'); - $this->CI->load->library('payment/paypal_express/httprequest'); + $this->CI->load->library('paypal'); + $this->CI->load->library('httprequest'); } /* @@ -35,7 +35,7 @@ function checkout_form($post = false) //retrieve form contents ob_start(); - include(APPPATH."libraries/payment/paypal_express/forms/checkout.php"); + include(APPPATH."packages/payment/paypal_express/libraries/forms/checkout.php"); $form['form'] = ob_get_contents(); ob_end_clean(); } else return array(); @@ -89,7 +89,7 @@ function process_payment() $this->CI->paypal->doExpressCheckout($this->CI->go_cart->total(), $store.' order'); // If we get to this step at all, something went wrong - return lang('paypal_error'); + return 'There was an error processing your payment through PayPal'; } @@ -109,7 +109,7 @@ function form($post = false) } //retrieve form contents ob_start(); - include(APPPATH."libraries/payment/paypal_express/forms/admin_form.php"); + include(APPPATH."packages/payment/paypal_express/libraries/forms/admin_form.php"); $form = ob_get_contents(); ob_end_clean(); diff --git a/gocart/packages/shipping/fedex/language/fedex_lang.php b/gocart/packages/shipping/fedex/language/fedex_lang.php new file mode 100644 index 00000000..e7b03935 --- /dev/null +++ b/gocart/packages/shipping/fedex/language/fedex_lang.php @@ -0,0 +1,7 @@ +path_to_wsdl = APPPATH."libraries/shipping/fedex/lib/RateService_v8.wsdl"; + $this->path_to_wsdl = APPPATH."packages/shipping/fedex/libraries/lib/RateService_v8.wsdl"; // Packaging types $this->package_types['FEDEX_10KG_BOX'] = '10KG Box'; @@ -132,11 +132,11 @@ function rates() $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; $request['RequestedShipment']['PackagingType'] = $package; $request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => $weight, - 'Units' => $this->CI->config->item('weight_unit')), + 'Units' => 'LB'), 'Dimensions' => array('Length' => $pkg_length, 'Width' => $pkg_width, 'Height' => $pkg_height, - 'Units' => $this->CI->config->item('dimension_unit')))); + 'Units' => 'IN'))); // send request $response = $client ->getRates($request); @@ -249,12 +249,12 @@ function form($post = false) } - $form = ' - - - '; + $form = '
      '.lang('fedex_key').': '.form_input('key', $key, 'class="gc_tf1"') .'
      '.lang('fedex_account').': '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
      '.lang('fedex_meter').': '.form_input('meter', $meter, 'class="gc_tf1"') .'
      '.lang('password').': '.form_input('password', $password, 'class="gc_tf1"') .'
      + + + '; - $form .= ' - +
      Key: '.form_input('key', $key, 'class="gc_tf1"') .'
      Ship Account: '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
      Meter: '.form_input('meter', $meter, 'class="gc_tf1"') .'
      Password: '.form_input('password', $password, 'class="gc_tf1"') .'
      '.lang('fedex_services').': '; + $form .= '
      Services To Offer: '; foreach($this->service_list as $id=>$opt) { diff --git a/gocart/libraries/shipping/fedex/lib/RateService_v8.wsdl b/gocart/packages/shipping/fedex/libraries/lib/RateService_v8.wsdl similarity index 100% rename from gocart/libraries/shipping/fedex/lib/RateService_v8.wsdl rename to gocart/packages/shipping/fedex/libraries/lib/RateService_v8.wsdl diff --git a/gocart/libraries/shipping/fedex/lib/fedex-common.php5 b/gocart/packages/shipping/fedex/libraries/lib/fedex-common.php5 similarity index 100% rename from gocart/libraries/shipping/fedex/lib/fedex-common.php5 rename to gocart/packages/shipping/fedex/libraries/lib/fedex-common.php5 diff --git a/gocart/libraries/shipping/flatrate/flatrate.php b/gocart/packages/shipping/flatrate/libraries/flatrate.php similarity index 100% rename from gocart/libraries/shipping/flatrate/flatrate.php rename to gocart/packages/shipping/flatrate/libraries/flatrate.php diff --git a/gocart/libraries/shipping/tablerate/form.php b/gocart/packages/shipping/tablerate/libraries/form.php similarity index 100% rename from gocart/libraries/shipping/tablerate/form.php rename to gocart/packages/shipping/tablerate/libraries/form.php diff --git a/gocart/libraries/shipping/tablerate/tablerate.php b/gocart/packages/shipping/tablerate/libraries/tablerate.php similarity index 100% rename from gocart/libraries/shipping/tablerate/tablerate.php rename to gocart/packages/shipping/tablerate/libraries/tablerate.php diff --git a/gocart/libraries/shipping/united_parcel_service/united_parcel_service.php b/gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php similarity index 100% rename from gocart/libraries/shipping/united_parcel_service/united_parcel_service.php rename to gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php diff --git a/gocart/libraries/shipping/usps_domestic/usps_domestic.php b/gocart/packages/shipping/usps_domestic/libraries/usps_domestic.php similarity index 99% rename from gocart/libraries/shipping/usps_domestic/usps_domestic.php rename to gocart/packages/shipping/usps_domestic/libraries/usps_domestic.php index cc1dfaca..6695e324 100644 --- a/gocart/libraries/shipping/usps_domestic/usps_domestic.php +++ b/gocart/packages/shipping/usps_domestic/libraries/usps_domestic.php @@ -294,7 +294,7 @@ function form($post = false) else { $container = $post['container']; - $service = explode(',',$post['service']); + $service = $post['service']; $username = $post['username']; $password = $post['password']; $mode = $post['mode']; diff --git a/gocart/libraries/shipping/usps_international/usps_international.php b/gocart/packages/shipping/usps_international/libraries/usps_international.php similarity index 100% rename from gocart/libraries/shipping/usps_international/usps_international.php rename to gocart/packages/shipping/usps_international/libraries/usps_international.php From 2c868d7d8aa60d8d9ed6bc56dd9f1438668c170b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 12:51:03 -0600 Subject: [PATCH 047/343] updated files to reflect new location of shipping and payment modules as packages. --- gocart/controllers/admin/payment.php | 8 ++++++-- gocart/controllers/admin/settings.php | 4 ++-- gocart/controllers/admin/shipping.php | 9 +++++++-- gocart/controllers/checkout.php | 14 +++++++++----- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/gocart/controllers/admin/payment.php b/gocart/controllers/admin/payment.php index ec580270..a825bc04 100644 --- a/gocart/controllers/admin/payment.php +++ b/gocart/controllers/admin/payment.php @@ -22,9 +22,11 @@ function index() function install($module) { + $this->load->add_package_path(APPPATH.'packages/payment/'.$module.'/'); + $enabled_modules = $this->Settings_model->get_settings('payment_modules'); - $this->load->library('payment/'.$module.'/'.$module); + $this->load->library($module); if(!array_key_exists($module, $enabled_modules)) { @@ -49,7 +51,9 @@ function uninstall($module) function settings($module) { - $this->load->library('payment/'.$module.'/'.$module); + $this->load->add_package_path(APPPATH.'packages/payment/'.$module.'/'); + $this->load->library($module); + //ok, in order for the most flexibility, and in case someone wants to use javascript or something //the form gets pulled directly from the library. diff --git a/gocart/controllers/admin/settings.php b/gocart/controllers/admin/settings.php index 9a2d0e91..805493b0 100644 --- a/gocart/controllers/admin/settings.php +++ b/gocart/controllers/admin/settings.php @@ -25,7 +25,7 @@ function index() $data['payment_modules'] = array(); //create a list of available payment modules - if ($handle = opendir(APPPATH.'/libraries/payment/')) { + if ($handle = opendir(APPPATH.'packages/payment/')) { while (false !== ($file = readdir($handle))) { //now we eliminate the periods from the list. @@ -50,7 +50,7 @@ function index() $data['shipping_modules'] = array(); //create a list of available shipping modules - if ($handle = opendir(APPPATH.'/libraries/shipping/')) { + if ($handle = opendir(APPPATH.'packages/shipping/')) { while (false !== ($file = readdir($handle))) { //now we eliminate anything with periods diff --git a/gocart/controllers/admin/shipping.php b/gocart/controllers/admin/shipping.php index 0be2a05c..1739eca0 100644 --- a/gocart/controllers/admin/shipping.php +++ b/gocart/controllers/admin/shipping.php @@ -21,9 +21,12 @@ function index() function install($module) { + //setup the third_party package + $this->load->add_package_path(APPPATH.'packages/shipping/'.$module.'/'); + $enabled_modules = $this->Settings_model->get_settings('shipping_modules'); - $this->load->library('shipping/'.$module.'/'.$module); + $this->load->library($module); if(!array_key_exists($module, $enabled_modules)) { @@ -48,7 +51,9 @@ function uninstall($module) function settings($module) { - $this->load->library('shipping/'.$module.'/'.$module); + $this->load->add_package_path(APPPATH.'packages/shipping/'.$module.'/'); + $this->load->library($module); + //ok, in order for the most flexibility, and in case someone wants to use javascript or something //the form gets pulled directly from the library. diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index 2d29120a..ad38e375 100755 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -100,8 +100,9 @@ function shipping_payment_methods() $shipping_methods = array(); foreach ($this->Settings_model->get_settings('shipping_modules') as $shipping_method=>$order) { + $this->load->add_package_path(APPPATH.'packages/shipping/'.$shipping_method.'/'); //eventually, we will sort by order, but I'm not concerned with that at the moment - $this->load->library('shipping/'.$shipping_method.'/'.$shipping_method); + $this->load->library($shipping_method); $shipping_methods = array_merge($shipping_methods, $this->$shipping_method->rates()); } @@ -130,7 +131,8 @@ function shipping_payment_methods() foreach ($this->Settings_model->get_settings('payment_modules') as $payment_method=>$order) { - $this->load->library('payment/'.$payment_method.'/'.$payment_method); + $this->load->add_package_path(APPPATH.'packages/payment/'.$payment_method.'/'); + $this->load->library($payment_method); $payment_form = $this->$payment_method->checkout_form(); if(!empty($payment_form)) @@ -358,7 +360,8 @@ function save_payment_method() if($module) { - $this->load->library('payment/'.$module.'/'.$module); + $this->load->add_package_path(APPPATH.'packages/payment/'.$module.'/'); + $this->load->library($module); $check = $this->$module->checkout_check(); if(!$check) @@ -423,7 +426,8 @@ function place_order() if($this->go_cart->total() > 0 && ! isset($payment['confirmed'])) { //lost the payment module - $this->load->library('payment/'.$payment['module'].'/'.$payment['module']); + $this->load->add_package_path(APPPATH.'packages/payment/'.$payment['module'].'/'); + $this->load->library($payment['module']); //run the payment $error_status = $this->$payment['module']->process_payment(); @@ -494,7 +498,7 @@ function place_order() $this->email->send(); - $data['page_title'] = lang('thank_you').$this->config->item('company_name'); + $data['page_title'] = 'Thanks for shopping with '.$this->config->item('company_name'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; // show final confirmation page $this->load->view('order_placed', $data); From 87e437bdca68b6d0db39125acba83efde07c0b97 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 13:03:57 -0600 Subject: [PATCH 048/343] updated language support --- gocart/views/category.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gocart/views/category.php b/gocart/views/category.php index 1b79c43d..42385e8c 100644 --- a/gocart/views/category.php +++ b/gocart/views/category.php @@ -107,10 +107,10 @@
      saleprice > 0):?> - reg: price); ?> - SALE: saleprice); ?> + price); ?> + saleprice); ?> - Price: price); ?> + price); ?>
      in_stock==0) { ?> From 0570ee8ee4585dbe6c95c23eb78257e7e6af907a Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 13:23:55 -0600 Subject: [PATCH 049/343] More updates to support translations --- gocart/language/english/common_lang.php | 24 +++++++++++++++++++----- gocart/views/admin/address_list.php | 4 ++-- gocart/views/admin/admin_form.php | 16 ++++++++-------- gocart/views/admin/admins.php | 16 ++++++++-------- gocart/views/admin/banner_form.php | 18 +++++++++--------- 5 files changed, 46 insertions(+), 32 deletions(-) diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 69ef81fa..b006acde 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -52,7 +52,6 @@ $lang['form_from'] = 'From'; $lang['form_to'] = 'to'; - $lang['search'] = 'Search'; $lang['amount'] = 'Amount'; $lang['custom_amount'] = 'Custom Amount'; @@ -67,6 +66,7 @@ $lang['out_of_stock'] = 'Out of Stock'; $lang['no_products'] = 'There are currently no available products in this category.'; $lang['no_image_available'] = 'No Image Available'; +$lang['product_reg'] = 'reg:'; $lang['product_price'] = 'Price:'; $lang['product_sale'] = 'SALE:'; $lang['available_options'] = 'Available Options'; @@ -254,6 +254,23 @@ $lang['front_end'] = 'Front End'; $lang['dashboard'] = 'Dashboard'; +//admin management +$lang['firstname'] = 'First Name'; +$lang['lastname'] = 'Last Name'; +$lang['access'] = 'Access'; +$lang['add_new_admin'] = 'Add New Admin'; +$lang['confirm_delete_admin'] = 'Are you sure you want to delete this admin?'; + +//banner management +$lang['tab_banners'] = 'Banners'; +$lang['label_banner_title'] = 'Title'; +$lang['label_banner_link'] = 'Link'; +$lang['label_banner_enable_on'] = 'Enable On'; +$lang['label_banner_disable_on'] = 'Disable On'; +$lang['label_banner_new_window'] = 'New Window'; +$lang['label_banner_image'] = 'Image'; +$lang['label_banner_current_file'] = 'Current File'; + //dashboard & shared $lang['recent_orders'] = 'Most Recent Orders'; $lang['order'] = 'Order'; @@ -263,6 +280,7 @@ $lang['status'] = 'Status'; $lang['notes'] = 'Notes'; $lang['recent_customers'] = 'Most Recent Registered Customers'; +$lang['information'] = 'Information'; //orders $lang['search_returned'] = 'Your searched returned'; //... results (below) @@ -293,7 +311,3 @@ $lang['fedex_meter'] = 'Meter'; $lang['fedex_pw'] = 'Password'; $lang['fedex_services'] = 'Services To Offer'; - - - - diff --git a/gocart/views/admin/address_list.php b/gocart/views/admin/address_list.php index 881f1982..1ff75ce1 100644 --- a/gocart/views/admin/address_list.php +++ b/gocart/views/admin/address_list.php @@ -4,8 +4,8 @@ foreach($address_list as $a):?>
      - - + +
      config->item('admin_folder').'/admin/form/'.$id); ?>
      - +
      - + 'firstname', 'name'=>'firstname', 'value'=>set_value('firstname', $firstname), 'class'=>'gc_tf1'); echo form_input($data); @@ -21,7 +21,7 @@
      - + 'lastname', 'name'=>'lastname', 'value'=>set_value('lastname', $lastname), 'class'=>'gc_tf1'); echo form_input($data); @@ -29,7 +29,7 @@
      - + 'email', 'name'=>'email', 'value'=>set_value('email', $email), 'class'=>'gc_tf1'); echo form_input($data); @@ -37,7 +37,7 @@
      - + 'Admin', 'Orders' => 'Orders' @@ -47,7 +47,7 @@
      - + 'password', 'name'=>'password', 'class'=>'gc_tf1'); echo form_password($data); @@ -55,7 +55,7 @@
      - + 'confirm', 'name'=>'confirm', 'class'=>'gc_tf1'); echo form_password($data); diff --git a/gocart/views/admin/admins.php b/gocart/views/admin/admins.php index 6061451a..3c856326 100644 --- a/gocart/views/admin/admins.php +++ b/gocart/views/admin/admins.php @@ -2,21 +2,21 @@ - - - - + + + + @@ -32,9 +32,9 @@ function areyousure() $current_admin = $this->session->userdata('admin'); $margin = 30; if ($current_admin['id'] != $admin->id): ?> - Delete + - Edit + diff --git a/gocart/views/admin/banner_form.php b/gocart/views/admin/banner_form.php index 682ddb7f..9f18154a 100644 --- a/gocart/views/admin/banner_form.php +++ b/gocart/views/admin/banner_form.php @@ -13,46 +13,46 @@ config->item('admin_folder').'/banners/form/'.$id); ?>
      - +
      - +
      - +
      - +
      - +
      - +
      - + -
      current
      Current File
      +
      current
      From e5ece60faeb4a3ae577d94fd16c293de71897616 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 29 Nov 2011 13:40:53 -0600 Subject: [PATCH 050/343] additional changes to support translation --- gocart/language/english/common_lang.php | 16 ++++++++++++++++ gocart/views/admin/banners.php | 16 ++++++++-------- gocart/views/admin/box_form.php | 18 +++++++++--------- gocart/views/admin/boxes.php | 16 ++++++++-------- 4 files changed, 41 insertions(+), 25 deletions(-) diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index b006acde..2c626fb1 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -270,6 +270,22 @@ $lang['label_banner_new_window'] = 'New Window'; $lang['label_banner_image'] = 'Image'; $lang['label_banner_current_file'] = 'Current File'; +$lang['confirm_delete_banner'] = 'Are you sure you want to delete this banner?'; +$lang['add_new_banner'] = 'Add New Banner'; +$lang['message_no_banners'] = 'There are currently no banners'; + +//box management +$lang['tab_boxes'] = 'Homepage Boxes'; +$lang['label_box_title'] = 'Title'; +$lang['label_box_link'] = 'Link'; +$lang['label_box_enable_on'] = 'Enable On'; +$lang['label_box_disable_on'] = 'Disable On'; +$lang['label_box_new_window'] = 'New Window'; +$lang['label_box_image'] = 'Image'; +$lang['label_box_current_file'] = 'Current File'; +$lang['confirm_delete_box'] = 'Are you sure you want to delete this box?'; +$lang['add_new_box'] = 'Add New Box'; +$lang['message_no_boxes'] = 'There are currently no boxes'; //dashboard & shared $lang['recent_orders'] = 'Most Recent Orders'; diff --git a/gocart/views/admin/banners.php b/gocart/views/admin/banners.php index 0f9d7092..baae880d 100755 --- a/gocart/views/admin/banners.php +++ b/gocart/views/admin/banners.php @@ -36,7 +36,7 @@ function save_sortable() } function areyousure() { - return confirm('Are you sure you want to delete this banner?'); + return confirm(''); } //]]> @@ -44,20 +44,20 @@ function areyousure()
      First NameLast NameEmailAccess
      - - - + + + - ':''?> + ':''?> diff --git a/gocart/views/admin/box_form.php b/gocart/views/admin/box_form.php index f341e1eb..d79de042 100644 --- a/gocart/views/admin/box_form.php +++ b/gocart/views/admin/box_form.php @@ -13,46 +13,46 @@ config->item('admin_folder').'/boxes/form/'.$id); ?>
      - +
      - +
      - +
      - +
      - +
      - +
      - + -
      current
      Current File
      +
      current
      diff --git a/gocart/views/admin/boxes.php b/gocart/views/admin/boxes.php index 53856b44..6925f051 100755 --- a/gocart/views/admin/boxes.php +++ b/gocart/views/admin/boxes.php @@ -36,7 +36,7 @@ function save_sortable() } function areyousure() { - return confirm('Are you sure you want to delete this box?'); + return confirm(''); } //]]> @@ -44,19 +44,19 @@ function areyousure()
      TitleEnable OnDisable On
      There are currently no banners.
      '.lang('message_no_banners').'
      - Delete - Edit + +
      - - - + + + - ':''?> + ':''?> @@ -102,8 +102,8 @@ function areyousure() From 71dbd956cd4c939c90ecd1869251d2082239920d Mon Sep 17 00:00:00 2001 From: Clear Sky Designs Date: Tue, 29 Nov 2011 21:05:18 -0600 Subject: [PATCH 051/343] Finished converting payment and shipping libs to package format, moved language content --- changelog.txt | 8 +++- gocart/controllers/admin/shipping.php | 3 +- gocart/controllers/pp_gate.php | 4 +- gocart/language/english/common_lang.php | 37 --------------- .../language/english/authorize_net_lang.php | 25 ++++++++++ .../authorize_net/libraries/authorize_net.php | 43 ++++++----------- .../{libraries/forms => views}/admin_form.php | 26 +++++------ .../forms => views}/customer_card.php | 16 +++---- .../{libraries/forms => views}/cvv.png | Bin .../language/english/paypal_express_lang.php | 17 +++++++ .../libraries/forms/admin_form.php | 44 ------------------ .../libraries/paypal_express.php | 35 ++++++-------- .../paypal_express/views/admin_form.php | 41 ++++++++++++++++ .../{libraries/forms => views}/checkout.php | 2 +- install/application/controllers/install.php | 4 +- version | 2 +- 16 files changed, 146 insertions(+), 161 deletions(-) create mode 100644 gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php rename gocart/packages/payment/authorize_net/{libraries/forms => views}/admin_form.php (58%) rename gocart/packages/payment/authorize_net/{libraries/forms => views}/customer_card.php (90%) rename gocart/packages/payment/authorize_net/{libraries/forms => views}/cvv.png (100%) create mode 100644 gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php delete mode 100644 gocart/packages/payment/paypal_express/libraries/forms/admin_form.php create mode 100644 gocart/packages/payment/paypal_express/views/admin_form.php rename gocart/packages/payment/paypal_express/{libraries/forms => views}/checkout.php (50%) diff --git a/changelog.txt b/changelog.txt index 7a2a7e4a..07ea5833 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ Version 1.2 ------------- - Release date: pending + Release date: PENDING (Warning, incomplete work in this version!! Not production ready!!) Bug Fixes @@ -9,11 +9,15 @@ Version 1.2 Features - Added language support and extended internationalization capabilities - - Added support for BrainTree and BeanStream payment gateways + - Converted payment and shipping libraries into application package modules + - Added support for BrainTree and Bean Stream payment gateways + - Added support for Sage Pay payment gateway (Thanks to swicks) Other - Updated to CodeIgniter 2.1 + - Changed the database password and prefix fields to unrequired in the Installer, for those of you who want to shoot yourself in the feet + Version 1.1.4 ------------- diff --git a/gocart/controllers/admin/shipping.php b/gocart/controllers/admin/shipping.php index 1739eca0..cab6cd49 100644 --- a/gocart/controllers/admin/shipping.php +++ b/gocart/controllers/admin/shipping.php @@ -23,11 +23,10 @@ function install($module) { //setup the third_party package $this->load->add_package_path(APPPATH.'packages/shipping/'.$module.'/'); + $this->load->library($module); $enabled_modules = $this->Settings_model->get_settings('shipping_modules'); - $this->load->library($module); - if(!array_key_exists($module, $enabled_modules)) { $this->Settings_model->save_settings('shipping_modules', array($module=>false)); diff --git a/gocart/controllers/pp_gate.php b/gocart/controllers/pp_gate.php index 818cbeff..4d5a6826 100644 --- a/gocart/controllers/pp_gate.php +++ b/gocart/controllers/pp_gate.php @@ -5,8 +5,8 @@ class pp_gate extends CI_Controller { function __construct() { parent::__construct(); - - $this->load->library(array('payment/paypal_express/paypal', 'payment/paypal_express/httprequest', 'go_cart')); + $this->load->add_package_path(APPPATH.'packages/payment/paypal_express/'); + $this->load->library(array('paypal', 'httprequest', 'go_cart')); $this->load->helper('form_helper'); } diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 2c626fb1..448a28bd 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -8,12 +8,8 @@ ******************************************/ - - /******************* - Site front end - *******************/ //common terms @@ -143,24 +139,6 @@ //checkout confirmation $lang['thank_you'] = 'Thanks for shopping with '; // terminates with company/site name, defined in gocart config as 'company_name' -//authorize.net library messages -$lang['please_fix_errors'] = 'Please fix the following errors:'; -$lang['enter_card_name'] = 'Please enter your first and last name as it appears on the card'; -$lang['invalid_card_exp'] = 'The expiration date does not appear to be valid'; -$lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; -$lang['enter_card_code'] = 'Please enter the three digit security code on the reverse side of the card'; -$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; -$lang['enter_test_mode_credentials'] = 'You must enter login values for TEST mode'; -$lang['enter_live_mode_credentials'] = 'You must enter login values for LIVE mode'; -$lang['all_required_fields'] = 'Please complete all required fields.'; -$lang['card_number'] = 'Card Number'; -$lang['expires_on'] = 'Expires On'; -$lang['cvv_code'] = 'CVV Code'; - -//paypal library messages -$lang['paypal_error'] = 'There was an error processing your payment through PayPal'; -$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; - //giftcards $lang['giftcard'] = 'Gift Card'; @@ -223,9 +201,7 @@ /****************** - Admin section - *******************/ @@ -308,19 +284,6 @@ $lang['no_orders_sel'] = 'You did not select any orders to delete.'; -//auth.net admin -$lang['test_mode'] = 'Test Mode'; -$lang['live_mode'] = 'Live Mode'; -$lang['tm_login'] = 'Test Mode Login ID'; -$lang['tm_key'] = 'Test Mode Transaction Key'; -$lang['lm_login'] = 'Live Mode Login ID'; -$lang['lm_key'] = 'Live Mode Transaction Key'; - -//paypal admin -$lang['pp_username'] = 'Paypal Username'; -$lang['pp_password'] = 'Paypal Password'; -$lang['pp_key'] = 'Paypal API Signature'; - //fedex module $lang['fedex_key'] = 'Key'; $lang['fedex_account'] = 'Ship Account'; diff --git a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php new file mode 100644 index 00000000..0c42ae67 --- /dev/null +++ b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php @@ -0,0 +1,25 @@ +CI =& get_instance(); $this->CI->load->helper("credit_card"); - $this->CI->load->library('session'); $this->CI->load->library('authorize_net_lib'); + $this->CI->lang->load('authorize_net'); } @@ -38,38 +38,33 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - //retrieve cc form - ob_start(); - include(APPPATH."packages/payment/authorize_net/libraries/forms/customer_card.php"); - $form['form'] = ob_get_contents(); - ob_end_clean(); + return $this->CI->load->view('customer_card', array('settings'=>$se), true); } else return array(); - return $form; } function checkout_check() { - $error_msg = "Please fix the following errors:
        "; + $error_msg = lang('please_fix_errors').'
          '; $error_list = ""; //Verify name field if( empty($_POST["x_first_name"]) || empty($_POST["x_last_name"])) - $error_list .= "
        • Please enter your first and last name as it appears on the card
        • "; + $error_list .= '
        • '.lang('enter_card_name').'
        • '; //Verify date if( !card_expiry_valid($_POST["x_exp_date_mm"], $_POST["x_exp_date_yy"]) ) - $error_list .= "
        • The expiration date does not appear to be valid
        • "; + $error_list .= '
        • '.lang('invalid_card_exp').'
        • '; //Verify card number if( empty($_POST["x_card_num"]) || !card_number_valid($_POST["x_card_num"]) ) - $error_list .= "
        • The card number you entered is not a valid credit card number
        • "; + $error_list .= '
        • '.lang('invalid_card_num').'
        • '; //Verify security code if( empty($_POST["x_card_code"])) - $error_list .= "
        • Please enter the three digit security code on the reverse side of the card
        • "; + $error_list .= '
        • '.lang('enter_card_code').'
        • '; // We need to store the credit card information temporarily @@ -113,11 +108,11 @@ function install() // -These will be user-editable $config['authorize_net_test_mode'] = 'TRUE'; // Set this to FALSE for live processing - $config['authorize_net_live_x_login'] = 'LIVE LOGIN ID'; - $config['authorize_net_live_x_tran_key'] = 'LIVE TRANS KEY'; + $config['authorize_net_live_x_login'] = ''; + $config['authorize_net_live_x_tran_key'] = ''; - $config['authorize_net_test_x_login'] = 'TEST LOGIN ID'; - $config['authorize_net_test_x_tran_key'] = 'TEST LOGIN TRANS KEY'; + $config['authorize_net_test_x_login'] = ''; + $config['authorize_net_test_x_tran_key'] = ''; // Lets setup some other values so we dont have to do it everytime we process a transaction @@ -190,7 +185,7 @@ function process_payment() else { // payment declined, return our user to the form with an error. - return "Transaction Declined. Please check your card information and try again."; + return lang('transaction_declined'); } } @@ -203,21 +198,13 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('Authorize_net'); - $enabled = $settings['enabled']; } else { $settings = $post; - $enabled = $settings['enabled']; } - //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/authorize_net/libraries/forms/admin_form.php"); - $form = ob_get_contents(); - ob_end_clean(); - - return $form; + return $this->CI->load->view('admin_form', array('settings'=>$settings), true); } @@ -229,14 +216,14 @@ function check() { if(empty($_POST["authorize_net_test_x_login"]) || empty($_POST["authorize_net_test_x_tran_key"]) ) { - $error = "
          You must enter login values for TEST mode
          "; + $error = lang('enter_test_mode_credentials'); } } else { if(empty($_POST["authorize_net_live_x_login"]) || empty($_POST["authorize_net_live_x_tran_key"]) ) { - $error = "
          You must enter login values for LIVE mode
          "; + $error = lang('enter_live_mode_credentials'); } } diff --git a/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php b/gocart/packages/payment/authorize_net/views/admin_form.php similarity index 58% rename from gocart/packages/payment/authorize_net/libraries/forms/admin_form.php rename to gocart/packages/payment/authorize_net/views/admin_form.php index d441ff87..a87bd7e5 100644 --- a/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php +++ b/gocart/packages/payment/authorize_net/views/admin_form.php @@ -1,42 +1,42 @@
      TitleEnable OnDisable On
      There are currently no boxes.
      '.lang('message_no_boxes').'
      - Delete - Edit + +
      - + - + - + - + - + - +
      Enabled
      Mode
      Test Mode Login ID
      " size="50" >
      Test Mode Transaction Key
      " size="50">
      Live Mode Login ID
      " size="50">
      Live Mode Transaction Key
      " size="50">
      diff --git a/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php b/gocart/packages/payment/authorize_net/views/customer_card.php similarity index 90% rename from gocart/packages/payment/authorize_net/libraries/forms/customer_card.php rename to gocart/packages/payment/authorize_net/views/customer_card.php index b499c669..aba29259 100644 --- a/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php +++ b/gocart/packages/payment/authorize_net/views/customer_card.php @@ -5,7 +5,7 @@ The JavaScript Source!! http://javascript.internet.com Created by: David Leppek :: https://www.azcode.com/Mod10 -Basically, the alorithum takes each digit, from right to left and muliplies each second +Basically, the alorithm takes each digit, from right to left and muliplies each second digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of the multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is then @@ -89,7 +89,7 @@ function Mod10(ccNumb) { // v2.0 { $('#card_num').addClass('require_fail'); errors = true; - display_error('payment', 'Credit card does not appear to be a valid number'); + display_error('payment', '') ; } // validate other fields $('.pmt_required').each(function(){ @@ -97,7 +97,7 @@ function Mod10(ccNumb) { // v2.0 { $(this).addClass('require_fail'); errors = true; - display_error('payment', 'Please complete all required fields.'); + display_error('payment', ''); } }); @@ -117,21 +117,21 @@ function Mod10(ccNumb) { // v2.0
      - First Name *
      + *
      " size="30" />
      - Last Name *
      + *
      " size="30" />
      - Card Number *
      + *
      " size="30">
      - Expires on *
      + *
      1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12); @@ -147,7 +147,7 @@ function Mod10(ccNumb) { // v2.0 ?>
      - CVV Code *
      + *
      " />
      diff --git a/gocart/packages/payment/authorize_net/libraries/forms/cvv.png b/gocart/packages/payment/authorize_net/views/cvv.png similarity index 100% rename from gocart/packages/payment/authorize_net/libraries/forms/cvv.png rename to gocart/packages/payment/authorize_net/views/cvv.png diff --git a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php new file mode 100644 index 00000000..cb1bc949 --- /dev/null +++ b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php @@ -0,0 +1,17 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - -
      Enabled
      Test Mode
      Currency
      Paypal Username
      " size="50" >
      Paypal Password
      " size="50">
      Paypal API Signature
      " size="50" />
      diff --git a/gocart/packages/payment/paypal_express/libraries/paypal_express.php b/gocart/packages/payment/paypal_express/libraries/paypal_express.php index 9f01bed8..3abc1b59 100644 --- a/gocart/packages/payment/paypal_express/libraries/paypal_express.php +++ b/gocart/packages/payment/paypal_express/libraries/paypal_express.php @@ -13,6 +13,7 @@ function __construct() $this->CI->load->library('session'); $this->CI->load->library('paypal'); $this->CI->load->library('httprequest'); + $this->CI->lang->load('paypal_express'); } /* @@ -33,14 +34,10 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/paypal_express/libraries/forms/checkout.php"); - $form['form'] = ob_get_contents(); - ob_end_clean(); + return $this->CI->load->view('checkout', array(), true); + } else return array(); - return $form; } @@ -59,16 +56,18 @@ function description() function install() { - $config['username'] = "Paypal username"; - $config['password'] = "Paypal password"; - $config['signature'] = "Paypal API signature"; - $config['currency'] = "USD"; + $config['username'] = ''; + $config['password'] = '';; + $config['signature'] = ''; + $config['currency'] = 'USD'; // default - $config['return_url'] = "pp_gate/pp_return/"; - $config['cancel_url'] = "pp_gate/pp_cancel/"; $config['SANDBOX'] = true; $config['enabled'] = "0"; + + //not normally user configurable + $config['return_url'] = "pp_gate/pp_return/"; + $config['cancel_url'] = "pp_gate/pp_cancel/"; $this->CI->Settings_model->save_settings('paypal_express', $config); } @@ -89,7 +88,7 @@ function process_payment() $this->CI->paypal->doExpressCheckout($this->CI->go_cart->total(), $store.' order'); // If we get to this step at all, something went wrong - return 'There was an error processing your payment through PayPal'; + return lang('paypal_error'); } @@ -100,20 +99,13 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('paypal_express'); - $enabled = $settings['enabled']; } else { $settings = $post; - $enabled = $settings['enabled']; } //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/paypal_express/libraries/forms/admin_form.php"); - $form = ob_get_contents(); - ob_end_clean(); - - return $form; + return $this->CI->load->view('admin_form', array('settings'=>$settings), true); } function check() @@ -138,3 +130,4 @@ function check() } } } + diff --git a/gocart/packages/payment/paypal_express/views/admin_form.php b/gocart/packages/payment/paypal_express/views/admin_form.php new file mode 100644 index 00000000..8c1e1f3f --- /dev/null +++ b/gocart/packages/payment/paypal_express/views/admin_form.php @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      " />
      " size="50" >
      " size="50">
      " size="50" />
      diff --git a/gocart/packages/payment/paypal_express/libraries/forms/checkout.php b/gocart/packages/payment/paypal_express/views/checkout.php similarity index 50% rename from gocart/packages/payment/paypal_express/libraries/forms/checkout.php rename to gocart/packages/payment/paypal_express/views/checkout.php index dad84289..c8c55bbe 100644 --- a/gocart/packages/payment/paypal_express/libraries/forms/checkout.php +++ b/gocart/packages/payment/paypal_express/views/checkout.php @@ -3,6 +3,6 @@
      Acceptance Mark
      Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.
      diff --git a/install/application/controllers/install.php b/install/application/controllers/install.php index 3f878abe..a82d6b8c 100755 --- a/install/application/controllers/install.php +++ b/install/application/controllers/install.php @@ -38,8 +38,8 @@ public function index() $this->form_validation->set_rules('hostname', 'Hostname', 'required'); $this->form_validation->set_rules('database', 'Database Name', 'required'); $this->form_validation->set_rules('username', 'Username', 'required'); - $this->form_validation->set_rules('password', 'Password', 'required'); - $this->form_validation->set_rules('prefix', 'Database Prefix', 'required'); + $this->form_validation->set_rules('password', 'Password', 'trim'); + $this->form_validation->set_rules('prefix', 'Database Prefix', 'trim'); $this->form_validation->set_rules('admin_email', 'Admin Email', 'required|valid_email'); $this->form_validation->set_rules('admin_password', 'Admin Password', 'required|min_length[5]'); diff --git a/version b/version index 314c3d71..5381191b 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.1.5 \ No newline at end of file +1.2a \ No newline at end of file From 144bfe9575c4bf577486e1a8a269f6712b189ca5 Mon Sep 17 00:00:00 2001 From: Clear Sky Designs Date: Tue, 29 Nov 2011 21:07:21 -0600 Subject: [PATCH 052/343] Revert "Finished converting payment and shipping libs to package format, moved language content" This reverts commit 71dbd956cd4c939c90ecd1869251d2082239920d. --- changelog.txt | 8 +--- gocart/controllers/admin/shipping.php | 3 +- gocart/controllers/pp_gate.php | 4 +- gocart/language/english/common_lang.php | 37 +++++++++++++++ .../language/english/authorize_net_lang.php | 25 ---------- .../authorize_net/libraries/authorize_net.php | 43 +++++++++++------ .../{views => libraries/forms}/admin_form.php | 26 +++++------ .../forms}/customer_card.php | 16 +++---- .../{views => libraries/forms}/cvv.png | Bin .../language/english/paypal_express_lang.php | 17 ------- .../libraries/forms/admin_form.php | 44 ++++++++++++++++++ .../{views => libraries/forms}/checkout.php | 2 +- .../libraries/paypal_express.php | 35 ++++++++------ .../paypal_express/views/admin_form.php | 41 ---------------- install/application/controllers/install.php | 4 +- version | 2 +- 16 files changed, 161 insertions(+), 146 deletions(-) delete mode 100644 gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php rename gocart/packages/payment/authorize_net/{views => libraries/forms}/admin_form.php (58%) rename gocart/packages/payment/authorize_net/{views => libraries/forms}/customer_card.php (90%) rename gocart/packages/payment/authorize_net/{views => libraries/forms}/cvv.png (100%) delete mode 100644 gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php create mode 100644 gocart/packages/payment/paypal_express/libraries/forms/admin_form.php rename gocart/packages/payment/paypal_express/{views => libraries/forms}/checkout.php (50%) delete mode 100644 gocart/packages/payment/paypal_express/views/admin_form.php diff --git a/changelog.txt b/changelog.txt index 07ea5833..7a2a7e4a 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ Version 1.2 ------------- - Release date: PENDING (Warning, incomplete work in this version!! Not production ready!!) + Release date: pending Bug Fixes @@ -9,15 +9,11 @@ Version 1.2 Features - Added language support and extended internationalization capabilities - - Converted payment and shipping libraries into application package modules - - Added support for BrainTree and Bean Stream payment gateways - - Added support for Sage Pay payment gateway (Thanks to swicks) + - Added support for BrainTree and BeanStream payment gateways Other - Updated to CodeIgniter 2.1 - - Changed the database password and prefix fields to unrequired in the Installer, for those of you who want to shoot yourself in the feet - Version 1.1.4 ------------- diff --git a/gocart/controllers/admin/shipping.php b/gocart/controllers/admin/shipping.php index cab6cd49..1739eca0 100644 --- a/gocart/controllers/admin/shipping.php +++ b/gocart/controllers/admin/shipping.php @@ -23,10 +23,11 @@ function install($module) { //setup the third_party package $this->load->add_package_path(APPPATH.'packages/shipping/'.$module.'/'); - $this->load->library($module); $enabled_modules = $this->Settings_model->get_settings('shipping_modules'); + $this->load->library($module); + if(!array_key_exists($module, $enabled_modules)) { $this->Settings_model->save_settings('shipping_modules', array($module=>false)); diff --git a/gocart/controllers/pp_gate.php b/gocart/controllers/pp_gate.php index 4d5a6826..818cbeff 100644 --- a/gocart/controllers/pp_gate.php +++ b/gocart/controllers/pp_gate.php @@ -5,8 +5,8 @@ class pp_gate extends CI_Controller { function __construct() { parent::__construct(); - $this->load->add_package_path(APPPATH.'packages/payment/paypal_express/'); - $this->load->library(array('paypal', 'httprequest', 'go_cart')); + + $this->load->library(array('payment/paypal_express/paypal', 'payment/paypal_express/httprequest', 'go_cart')); $this->load->helper('form_helper'); } diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 448a28bd..2c626fb1 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -8,8 +8,12 @@ ******************************************/ + + /******************* + Site front end + *******************/ //common terms @@ -139,6 +143,24 @@ //checkout confirmation $lang['thank_you'] = 'Thanks for shopping with '; // terminates with company/site name, defined in gocart config as 'company_name' +//authorize.net library messages +$lang['please_fix_errors'] = 'Please fix the following errors:'; +$lang['enter_card_name'] = 'Please enter your first and last name as it appears on the card'; +$lang['invalid_card_exp'] = 'The expiration date does not appear to be valid'; +$lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; +$lang['enter_card_code'] = 'Please enter the three digit security code on the reverse side of the card'; +$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; +$lang['enter_test_mode_credentials'] = 'You must enter login values for TEST mode'; +$lang['enter_live_mode_credentials'] = 'You must enter login values for LIVE mode'; +$lang['all_required_fields'] = 'Please complete all required fields.'; +$lang['card_number'] = 'Card Number'; +$lang['expires_on'] = 'Expires On'; +$lang['cvv_code'] = 'CVV Code'; + +//paypal library messages +$lang['paypal_error'] = 'There was an error processing your payment through PayPal'; +$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; + //giftcards $lang['giftcard'] = 'Gift Card'; @@ -201,7 +223,9 @@ /****************** + Admin section + *******************/ @@ -284,6 +308,19 @@ $lang['no_orders_sel'] = 'You did not select any orders to delete.'; +//auth.net admin +$lang['test_mode'] = 'Test Mode'; +$lang['live_mode'] = 'Live Mode'; +$lang['tm_login'] = 'Test Mode Login ID'; +$lang['tm_key'] = 'Test Mode Transaction Key'; +$lang['lm_login'] = 'Live Mode Login ID'; +$lang['lm_key'] = 'Live Mode Transaction Key'; + +//paypal admin +$lang['pp_username'] = 'Paypal Username'; +$lang['pp_password'] = 'Paypal Password'; +$lang['pp_key'] = 'Paypal API Signature'; + //fedex module $lang['fedex_key'] = 'Key'; $lang['fedex_account'] = 'Ship Account'; diff --git a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php deleted file mode 100644 index 0c42ae67..00000000 --- a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php +++ /dev/null @@ -1,25 +0,0 @@ -CI =& get_instance(); $this->CI->load->helper("credit_card"); + $this->CI->load->library('session'); $this->CI->load->library('authorize_net_lib'); - $this->CI->lang->load('authorize_net'); } @@ -38,33 +38,38 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - return $this->CI->load->view('customer_card', array('settings'=>$se), true); + //retrieve cc form + ob_start(); + include(APPPATH."packages/payment/authorize_net/libraries/forms/customer_card.php"); + $form['form'] = ob_get_contents(); + ob_end_clean(); } else return array(); + return $form; } function checkout_check() { - $error_msg = lang('please_fix_errors').'
        '; + $error_msg = "Please fix the following errors:
          "; $error_list = ""; //Verify name field if( empty($_POST["x_first_name"]) || empty($_POST["x_last_name"])) - $error_list .= '
        • '.lang('enter_card_name').'
        • '; + $error_list .= "
        • Please enter your first and last name as it appears on the card
        • "; //Verify date if( !card_expiry_valid($_POST["x_exp_date_mm"], $_POST["x_exp_date_yy"]) ) - $error_list .= '
        • '.lang('invalid_card_exp').'
        • '; + $error_list .= "
        • The expiration date does not appear to be valid
        • "; //Verify card number if( empty($_POST["x_card_num"]) || !card_number_valid($_POST["x_card_num"]) ) - $error_list .= '
        • '.lang('invalid_card_num').'
        • '; + $error_list .= "
        • The card number you entered is not a valid credit card number
        • "; //Verify security code if( empty($_POST["x_card_code"])) - $error_list .= '
        • '.lang('enter_card_code').'
        • '; + $error_list .= "
        • Please enter the three digit security code on the reverse side of the card
        • "; // We need to store the credit card information temporarily @@ -108,11 +113,11 @@ function install() // -These will be user-editable $config['authorize_net_test_mode'] = 'TRUE'; // Set this to FALSE for live processing - $config['authorize_net_live_x_login'] = ''; - $config['authorize_net_live_x_tran_key'] = ''; + $config['authorize_net_live_x_login'] = 'LIVE LOGIN ID'; + $config['authorize_net_live_x_tran_key'] = 'LIVE TRANS KEY'; - $config['authorize_net_test_x_login'] = ''; - $config['authorize_net_test_x_tran_key'] = ''; + $config['authorize_net_test_x_login'] = 'TEST LOGIN ID'; + $config['authorize_net_test_x_tran_key'] = 'TEST LOGIN TRANS KEY'; // Lets setup some other values so we dont have to do it everytime we process a transaction @@ -185,7 +190,7 @@ function process_payment() else { // payment declined, return our user to the form with an error. - return lang('transaction_declined'); + return "Transaction Declined. Please check your card information and try again."; } } @@ -198,13 +203,21 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('Authorize_net'); + $enabled = $settings['enabled']; } else { $settings = $post; + $enabled = $settings['enabled']; } - return $this->CI->load->view('admin_form', array('settings'=>$settings), true); + //retrieve form contents + ob_start(); + include(APPPATH."packages/payment/authorize_net/libraries/forms/admin_form.php"); + $form = ob_get_contents(); + ob_end_clean(); + + return $form; } @@ -216,14 +229,14 @@ function check() { if(empty($_POST["authorize_net_test_x_login"]) || empty($_POST["authorize_net_test_x_tran_key"]) ) { - $error = lang('enter_test_mode_credentials'); + $error = "
          You must enter login values for TEST mode
          "; } } else { if(empty($_POST["authorize_net_live_x_login"]) || empty($_POST["authorize_net_live_x_tran_key"]) ) { - $error = lang('enter_live_mode_credentials'); + $error = "
          You must enter login values for LIVE mode
          "; } } diff --git a/gocart/packages/payment/authorize_net/views/admin_form.php b/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php similarity index 58% rename from gocart/packages/payment/authorize_net/views/admin_form.php rename to gocart/packages/payment/authorize_net/libraries/forms/admin_form.php index a87bd7e5..d441ff87 100644 --- a/gocart/packages/payment/authorize_net/views/admin_form.php +++ b/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php @@ -1,42 +1,42 @@ - + - + - + - + - + - +
          Enabled
          Mode
          Test Mode Login ID
          " size="50" >
          Test Mode Transaction Key
          " size="50">
          Live Mode Login ID
          " size="50">
          Live Mode Transaction Key
          " size="50">
          diff --git a/gocart/packages/payment/authorize_net/views/customer_card.php b/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php similarity index 90% rename from gocart/packages/payment/authorize_net/views/customer_card.php rename to gocart/packages/payment/authorize_net/libraries/forms/customer_card.php index aba29259..b499c669 100644 --- a/gocart/packages/payment/authorize_net/views/customer_card.php +++ b/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php @@ -5,7 +5,7 @@ The JavaScript Source!! http://javascript.internet.com Created by: David Leppek :: https://www.azcode.com/Mod10 -Basically, the alorithm takes each digit, from right to left and muliplies each second +Basically, the alorithum takes each digit, from right to left and muliplies each second digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of the multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is then @@ -89,7 +89,7 @@ function Mod10(ccNumb) { // v2.0 { $('#card_num').addClass('require_fail'); errors = true; - display_error('payment', '') ; + display_error('payment', 'Credit card does not appear to be a valid number'); } // validate other fields $('.pmt_required').each(function(){ @@ -97,7 +97,7 @@ function Mod10(ccNumb) { // v2.0 { $(this).addClass('require_fail'); errors = true; - display_error('payment', ''); + display_error('payment', 'Please complete all required fields.'); } }); @@ -117,21 +117,21 @@ function Mod10(ccNumb) { // v2.0
          - *
          + First Name *
          " size="30" />
          - *
          + Last Name *
          " size="30" />
          - *
          + Card Number *
          " size="30">
          - *
          + Expires on *
          1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12); @@ -147,7 +147,7 @@ function Mod10(ccNumb) { // v2.0 ?>
          - *
          + CVV Code *
          " />
          diff --git a/gocart/packages/payment/authorize_net/views/cvv.png b/gocart/packages/payment/authorize_net/libraries/forms/cvv.png similarity index 100% rename from gocart/packages/payment/authorize_net/views/cvv.png rename to gocart/packages/payment/authorize_net/libraries/forms/cvv.png diff --git a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php deleted file mode 100644 index cb1bc949..00000000 --- a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + +
          Enabled
          Test Mode
          Currency
          Paypal Username
          " size="50" >
          Paypal Password
          " size="50">
          Paypal API Signature
          " size="50" />
          diff --git a/gocart/packages/payment/paypal_express/views/checkout.php b/gocart/packages/payment/paypal_express/libraries/forms/checkout.php similarity index 50% rename from gocart/packages/payment/paypal_express/views/checkout.php rename to gocart/packages/payment/paypal_express/libraries/forms/checkout.php index c8c55bbe..dad84289 100644 --- a/gocart/packages/payment/paypal_express/views/checkout.php +++ b/gocart/packages/payment/paypal_express/libraries/forms/checkout.php @@ -3,6 +3,6 @@ Acceptance Mark - + Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete. diff --git a/gocart/packages/payment/paypal_express/libraries/paypal_express.php b/gocart/packages/payment/paypal_express/libraries/paypal_express.php index 3abc1b59..9f01bed8 100644 --- a/gocart/packages/payment/paypal_express/libraries/paypal_express.php +++ b/gocart/packages/payment/paypal_express/libraries/paypal_express.php @@ -13,7 +13,6 @@ function __construct() $this->CI->load->library('session'); $this->CI->load->library('paypal'); $this->CI->load->library('httprequest'); - $this->CI->lang->load('paypal_express'); } /* @@ -34,10 +33,14 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - return $this->CI->load->view('checkout', array(), true); - + //retrieve form contents + ob_start(); + include(APPPATH."packages/payment/paypal_express/libraries/forms/checkout.php"); + $form['form'] = ob_get_contents(); + ob_end_clean(); } else return array(); + return $form; } @@ -56,18 +59,16 @@ function description() function install() { - $config['username'] = ''; - $config['password'] = '';; - $config['signature'] = ''; - $config['currency'] = 'USD'; // default + $config['username'] = "Paypal username"; + $config['password'] = "Paypal password"; + $config['signature'] = "Paypal API signature"; + $config['currency'] = "USD"; + $config['return_url'] = "pp_gate/pp_return/"; + $config['cancel_url'] = "pp_gate/pp_cancel/"; $config['SANDBOX'] = true; $config['enabled'] = "0"; - - //not normally user configurable - $config['return_url'] = "pp_gate/pp_return/"; - $config['cancel_url'] = "pp_gate/pp_cancel/"; $this->CI->Settings_model->save_settings('paypal_express', $config); } @@ -88,7 +89,7 @@ function process_payment() $this->CI->paypal->doExpressCheckout($this->CI->go_cart->total(), $store.' order'); // If we get to this step at all, something went wrong - return lang('paypal_error'); + return 'There was an error processing your payment through PayPal'; } @@ -99,13 +100,20 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('paypal_express'); + $enabled = $settings['enabled']; } else { $settings = $post; + $enabled = $settings['enabled']; } //retrieve form contents - return $this->CI->load->view('admin_form', array('settings'=>$settings), true); + ob_start(); + include(APPPATH."packages/payment/paypal_express/libraries/forms/admin_form.php"); + $form = ob_get_contents(); + ob_end_clean(); + + return $form; } function check() @@ -130,4 +138,3 @@ function check() } } } - diff --git a/gocart/packages/payment/paypal_express/views/admin_form.php b/gocart/packages/payment/paypal_express/views/admin_form.php deleted file mode 100644 index 8c1e1f3f..00000000 --- a/gocart/packages/payment/paypal_express/views/admin_form.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
          " />
          " size="50" >
          " size="50">
          " size="50" />
          diff --git a/install/application/controllers/install.php b/install/application/controllers/install.php index a82d6b8c..3f878abe 100755 --- a/install/application/controllers/install.php +++ b/install/application/controllers/install.php @@ -38,8 +38,8 @@ public function index() $this->form_validation->set_rules('hostname', 'Hostname', 'required'); $this->form_validation->set_rules('database', 'Database Name', 'required'); $this->form_validation->set_rules('username', 'Username', 'required'); - $this->form_validation->set_rules('password', 'Password', 'trim'); - $this->form_validation->set_rules('prefix', 'Database Prefix', 'trim'); + $this->form_validation->set_rules('password', 'Password', 'required'); + $this->form_validation->set_rules('prefix', 'Database Prefix', 'required'); $this->form_validation->set_rules('admin_email', 'Admin Email', 'required|valid_email'); $this->form_validation->set_rules('admin_password', 'Admin Password', 'required|min_length[5]'); diff --git a/version b/version index 5381191b..314c3d71 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.2a \ No newline at end of file +1.1.5 \ No newline at end of file From f828899b68e8593b297e0118d903946efd539474 Mon Sep 17 00:00:00 2001 From: Clear Sky Designs Date: Tue, 29 Nov 2011 21:08:23 -0600 Subject: [PATCH 053/343] Revert 144bfe9575c4bf577486e1a8a269f6712b189ca5^..HEAD --- changelog.txt | 8 +++- gocart/config/config.php | 2 +- gocart/controllers/admin/shipping.php | 3 +- gocart/controllers/pp_gate.php | 4 +- gocart/language/english/common_lang.php | 37 --------------- .../language/english/authorize_net_lang.php | 25 ++++++++++ .../authorize_net/libraries/authorize_net.php | 43 ++++++----------- .../{libraries/forms => views}/admin_form.php | 26 +++++------ .../forms => views}/customer_card.php | 16 +++---- .../{libraries/forms => views}/cvv.png | Bin .../language/english/paypal_express_lang.php | 17 +++++++ .../libraries/forms/admin_form.php | 44 ------------------ .../libraries/paypal_express.php | 35 ++++++-------- .../paypal_express/views/admin_form.php | 41 ++++++++++++++++ .../{libraries/forms => views}/checkout.php | 2 +- install/application/controllers/install.php | 4 +- version | 2 +- 17 files changed, 147 insertions(+), 162 deletions(-) create mode 100644 gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php rename gocart/packages/payment/authorize_net/{libraries/forms => views}/admin_form.php (58%) rename gocart/packages/payment/authorize_net/{libraries/forms => views}/customer_card.php (90%) rename gocart/packages/payment/authorize_net/{libraries/forms => views}/cvv.png (100%) create mode 100644 gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php delete mode 100644 gocart/packages/payment/paypal_express/libraries/forms/admin_form.php create mode 100644 gocart/packages/payment/paypal_express/views/admin_form.php rename gocart/packages/payment/paypal_express/{libraries/forms => views}/checkout.php (50%) diff --git a/changelog.txt b/changelog.txt index 7a2a7e4a..07ea5833 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ Version 1.2 ------------- - Release date: pending + Release date: PENDING (Warning, incomplete work in this version!! Not production ready!!) Bug Fixes @@ -9,11 +9,15 @@ Version 1.2 Features - Added language support and extended internationalization capabilities - - Added support for BrainTree and BeanStream payment gateways + - Converted payment and shipping libraries into application package modules + - Added support for BrainTree and Bean Stream payment gateways + - Added support for Sage Pay payment gateway (Thanks to swicks) Other - Updated to CodeIgniter 2.1 + - Changed the database password and prefix fields to unrequired in the Installer, for those of you who want to shoot yourself in the feet + Version 1.1.4 ------------- diff --git a/gocart/config/config.php b/gocart/config/config.php index 0b255eca..bae592a4 100644 --- a/gocart/config/config.php +++ b/gocart/config/config.php @@ -225,7 +225,7 @@ | MUST set an encryption key. See the user guide for info. | */ -$config['encryption_key'] = 'a3bed46e139353c4d4c091d7de9eb6c9'; +$config['encryption_key'] = '98e2567f533aba085e5ef446f1e8590a'; /* |-------------------------------------------------------------------------- diff --git a/gocart/controllers/admin/shipping.php b/gocart/controllers/admin/shipping.php index 1739eca0..cab6cd49 100644 --- a/gocart/controllers/admin/shipping.php +++ b/gocart/controllers/admin/shipping.php @@ -23,11 +23,10 @@ function install($module) { //setup the third_party package $this->load->add_package_path(APPPATH.'packages/shipping/'.$module.'/'); + $this->load->library($module); $enabled_modules = $this->Settings_model->get_settings('shipping_modules'); - $this->load->library($module); - if(!array_key_exists($module, $enabled_modules)) { $this->Settings_model->save_settings('shipping_modules', array($module=>false)); diff --git a/gocart/controllers/pp_gate.php b/gocart/controllers/pp_gate.php index 818cbeff..4d5a6826 100644 --- a/gocart/controllers/pp_gate.php +++ b/gocart/controllers/pp_gate.php @@ -5,8 +5,8 @@ class pp_gate extends CI_Controller { function __construct() { parent::__construct(); - - $this->load->library(array('payment/paypal_express/paypal', 'payment/paypal_express/httprequest', 'go_cart')); + $this->load->add_package_path(APPPATH.'packages/payment/paypal_express/'); + $this->load->library(array('paypal', 'httprequest', 'go_cart')); $this->load->helper('form_helper'); } diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 2c626fb1..448a28bd 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -8,12 +8,8 @@ ******************************************/ - - /******************* - Site front end - *******************/ //common terms @@ -143,24 +139,6 @@ //checkout confirmation $lang['thank_you'] = 'Thanks for shopping with '; // terminates with company/site name, defined in gocart config as 'company_name' -//authorize.net library messages -$lang['please_fix_errors'] = 'Please fix the following errors:'; -$lang['enter_card_name'] = 'Please enter your first and last name as it appears on the card'; -$lang['invalid_card_exp'] = 'The expiration date does not appear to be valid'; -$lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; -$lang['enter_card_code'] = 'Please enter the three digit security code on the reverse side of the card'; -$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; -$lang['enter_test_mode_credentials'] = 'You must enter login values for TEST mode'; -$lang['enter_live_mode_credentials'] = 'You must enter login values for LIVE mode'; -$lang['all_required_fields'] = 'Please complete all required fields.'; -$lang['card_number'] = 'Card Number'; -$lang['expires_on'] = 'Expires On'; -$lang['cvv_code'] = 'CVV Code'; - -//paypal library messages -$lang['paypal_error'] = 'There was an error processing your payment through PayPal'; -$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; - //giftcards $lang['giftcard'] = 'Gift Card'; @@ -223,9 +201,7 @@ /****************** - Admin section - *******************/ @@ -308,19 +284,6 @@ $lang['no_orders_sel'] = 'You did not select any orders to delete.'; -//auth.net admin -$lang['test_mode'] = 'Test Mode'; -$lang['live_mode'] = 'Live Mode'; -$lang['tm_login'] = 'Test Mode Login ID'; -$lang['tm_key'] = 'Test Mode Transaction Key'; -$lang['lm_login'] = 'Live Mode Login ID'; -$lang['lm_key'] = 'Live Mode Transaction Key'; - -//paypal admin -$lang['pp_username'] = 'Paypal Username'; -$lang['pp_password'] = 'Paypal Password'; -$lang['pp_key'] = 'Paypal API Signature'; - //fedex module $lang['fedex_key'] = 'Key'; $lang['fedex_account'] = 'Ship Account'; diff --git a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php new file mode 100644 index 00000000..0c42ae67 --- /dev/null +++ b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php @@ -0,0 +1,25 @@ +CI =& get_instance(); $this->CI->load->helper("credit_card"); - $this->CI->load->library('session'); $this->CI->load->library('authorize_net_lib'); + $this->CI->lang->load('authorize_net'); } @@ -38,38 +38,33 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - //retrieve cc form - ob_start(); - include(APPPATH."packages/payment/authorize_net/libraries/forms/customer_card.php"); - $form['form'] = ob_get_contents(); - ob_end_clean(); + return $this->CI->load->view('customer_card', array('settings'=>$se), true); } else return array(); - return $form; } function checkout_check() { - $error_msg = "Please fix the following errors:
            "; + $error_msg = lang('please_fix_errors').'
              '; $error_list = ""; //Verify name field if( empty($_POST["x_first_name"]) || empty($_POST["x_last_name"])) - $error_list .= "
            • Please enter your first and last name as it appears on the card
            • "; + $error_list .= '
            • '.lang('enter_card_name').'
            • '; //Verify date if( !card_expiry_valid($_POST["x_exp_date_mm"], $_POST["x_exp_date_yy"]) ) - $error_list .= "
            • The expiration date does not appear to be valid
            • "; + $error_list .= '
            • '.lang('invalid_card_exp').'
            • '; //Verify card number if( empty($_POST["x_card_num"]) || !card_number_valid($_POST["x_card_num"]) ) - $error_list .= "
            • The card number you entered is not a valid credit card number
            • "; + $error_list .= '
            • '.lang('invalid_card_num').'
            • '; //Verify security code if( empty($_POST["x_card_code"])) - $error_list .= "
            • Please enter the three digit security code on the reverse side of the card
            • "; + $error_list .= '
            • '.lang('enter_card_code').'
            • '; // We need to store the credit card information temporarily @@ -113,11 +108,11 @@ function install() // -These will be user-editable $config['authorize_net_test_mode'] = 'TRUE'; // Set this to FALSE for live processing - $config['authorize_net_live_x_login'] = 'LIVE LOGIN ID'; - $config['authorize_net_live_x_tran_key'] = 'LIVE TRANS KEY'; + $config['authorize_net_live_x_login'] = ''; + $config['authorize_net_live_x_tran_key'] = ''; - $config['authorize_net_test_x_login'] = 'TEST LOGIN ID'; - $config['authorize_net_test_x_tran_key'] = 'TEST LOGIN TRANS KEY'; + $config['authorize_net_test_x_login'] = ''; + $config['authorize_net_test_x_tran_key'] = ''; // Lets setup some other values so we dont have to do it everytime we process a transaction @@ -190,7 +185,7 @@ function process_payment() else { // payment declined, return our user to the form with an error. - return "Transaction Declined. Please check your card information and try again."; + return lang('transaction_declined'); } } @@ -203,21 +198,13 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('Authorize_net'); - $enabled = $settings['enabled']; } else { $settings = $post; - $enabled = $settings['enabled']; } - //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/authorize_net/libraries/forms/admin_form.php"); - $form = ob_get_contents(); - ob_end_clean(); - - return $form; + return $this->CI->load->view('admin_form', array('settings'=>$settings), true); } @@ -229,14 +216,14 @@ function check() { if(empty($_POST["authorize_net_test_x_login"]) || empty($_POST["authorize_net_test_x_tran_key"]) ) { - $error = "
              You must enter login values for TEST mode
              "; + $error = lang('enter_test_mode_credentials'); } } else { if(empty($_POST["authorize_net_live_x_login"]) || empty($_POST["authorize_net_live_x_tran_key"]) ) { - $error = "
              You must enter login values for LIVE mode
              "; + $error = lang('enter_live_mode_credentials'); } } diff --git a/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php b/gocart/packages/payment/authorize_net/views/admin_form.php similarity index 58% rename from gocart/packages/payment/authorize_net/libraries/forms/admin_form.php rename to gocart/packages/payment/authorize_net/views/admin_form.php index d441ff87..a87bd7e5 100644 --- a/gocart/packages/payment/authorize_net/libraries/forms/admin_form.php +++ b/gocart/packages/payment/authorize_net/views/admin_form.php @@ -1,42 +1,42 @@ - + - + - + - + - + - +
              Enabled
              Mode
              Test Mode Login ID
              " size="50" >
              Test Mode Transaction Key
              " size="50">
              Live Mode Login ID
              " size="50">
              Live Mode Transaction Key
              " size="50">
              diff --git a/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php b/gocart/packages/payment/authorize_net/views/customer_card.php similarity index 90% rename from gocart/packages/payment/authorize_net/libraries/forms/customer_card.php rename to gocart/packages/payment/authorize_net/views/customer_card.php index b499c669..aba29259 100644 --- a/gocart/packages/payment/authorize_net/libraries/forms/customer_card.php +++ b/gocart/packages/payment/authorize_net/views/customer_card.php @@ -5,7 +5,7 @@ The JavaScript Source!! http://javascript.internet.com Created by: David Leppek :: https://www.azcode.com/Mod10 -Basically, the alorithum takes each digit, from right to left and muliplies each second +Basically, the alorithm takes each digit, from right to left and muliplies each second digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of the multiple are then added together for a new number (1 + 2 = 3). You then add up the string of numbers, both unaltered and new values and get a total sum. This sum is then @@ -89,7 +89,7 @@ function Mod10(ccNumb) { // v2.0 { $('#card_num').addClass('require_fail'); errors = true; - display_error('payment', 'Credit card does not appear to be a valid number'); + display_error('payment', '') ; } // validate other fields $('.pmt_required').each(function(){ @@ -97,7 +97,7 @@ function Mod10(ccNumb) { // v2.0 { $(this).addClass('require_fail'); errors = true; - display_error('payment', 'Please complete all required fields.'); + display_error('payment', ''); } }); @@ -117,21 +117,21 @@ function Mod10(ccNumb) { // v2.0
              - First Name *
              + *
              " size="30" />
              - Last Name *
              + *
              " size="30" />
              - Card Number *
              + *
              " size="30">
              - Expires on *
              + *
              1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12); @@ -147,7 +147,7 @@ function Mod10(ccNumb) { // v2.0 ?>
              - CVV Code *
              + *
              " />
              diff --git a/gocart/packages/payment/authorize_net/libraries/forms/cvv.png b/gocart/packages/payment/authorize_net/views/cvv.png similarity index 100% rename from gocart/packages/payment/authorize_net/libraries/forms/cvv.png rename to gocart/packages/payment/authorize_net/views/cvv.png diff --git a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php new file mode 100644 index 00000000..cb1bc949 --- /dev/null +++ b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php @@ -0,0 +1,17 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - -
              Enabled
              Test Mode
              Currency
              Paypal Username
              " size="50" >
              Paypal Password
              " size="50">
              Paypal API Signature
              " size="50" />
              diff --git a/gocart/packages/payment/paypal_express/libraries/paypal_express.php b/gocart/packages/payment/paypal_express/libraries/paypal_express.php index 9f01bed8..3abc1b59 100644 --- a/gocart/packages/payment/paypal_express/libraries/paypal_express.php +++ b/gocart/packages/payment/paypal_express/libraries/paypal_express.php @@ -13,6 +13,7 @@ function __construct() $this->CI->load->library('session'); $this->CI->load->library('paypal'); $this->CI->load->library('httprequest'); + $this->CI->lang->load('paypal_express'); } /* @@ -33,14 +34,10 @@ function checkout_form($post = false) { $form['name'] = $this->method_name; - //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/paypal_express/libraries/forms/checkout.php"); - $form['form'] = ob_get_contents(); - ob_end_clean(); + return $this->CI->load->view('checkout', array(), true); + } else return array(); - return $form; } @@ -59,16 +56,18 @@ function description() function install() { - $config['username'] = "Paypal username"; - $config['password'] = "Paypal password"; - $config['signature'] = "Paypal API signature"; - $config['currency'] = "USD"; + $config['username'] = ''; + $config['password'] = '';; + $config['signature'] = ''; + $config['currency'] = 'USD'; // default - $config['return_url'] = "pp_gate/pp_return/"; - $config['cancel_url'] = "pp_gate/pp_cancel/"; $config['SANDBOX'] = true; $config['enabled'] = "0"; + + //not normally user configurable + $config['return_url'] = "pp_gate/pp_return/"; + $config['cancel_url'] = "pp_gate/pp_cancel/"; $this->CI->Settings_model->save_settings('paypal_express', $config); } @@ -89,7 +88,7 @@ function process_payment() $this->CI->paypal->doExpressCheckout($this->CI->go_cart->total(), $store.' order'); // If we get to this step at all, something went wrong - return 'There was an error processing your payment through PayPal'; + return lang('paypal_error'); } @@ -100,20 +99,13 @@ function form($post = false) if(!$post) { $settings = $this->CI->Settings_model->get_settings('paypal_express'); - $enabled = $settings['enabled']; } else { $settings = $post; - $enabled = $settings['enabled']; } //retrieve form contents - ob_start(); - include(APPPATH."packages/payment/paypal_express/libraries/forms/admin_form.php"); - $form = ob_get_contents(); - ob_end_clean(); - - return $form; + return $this->CI->load->view('admin_form', array('settings'=>$settings), true); } function check() @@ -138,3 +130,4 @@ function check() } } } + diff --git a/gocart/packages/payment/paypal_express/views/admin_form.php b/gocart/packages/payment/paypal_express/views/admin_form.php new file mode 100644 index 00000000..8c1e1f3f --- /dev/null +++ b/gocart/packages/payment/paypal_express/views/admin_form.php @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
              " />
              " size="50" >
              " size="50">
              " size="50" />
              diff --git a/gocart/packages/payment/paypal_express/libraries/forms/checkout.php b/gocart/packages/payment/paypal_express/views/checkout.php similarity index 50% rename from gocart/packages/payment/paypal_express/libraries/forms/checkout.php rename to gocart/packages/payment/paypal_express/views/checkout.php index dad84289..c8c55bbe 100644 --- a/gocart/packages/payment/paypal_express/libraries/forms/checkout.php +++ b/gocart/packages/payment/paypal_express/views/checkout.php @@ -3,6 +3,6 @@ Acceptance Mark - Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete. + diff --git a/install/application/controllers/install.php b/install/application/controllers/install.php index 3f878abe..a82d6b8c 100755 --- a/install/application/controllers/install.php +++ b/install/application/controllers/install.php @@ -38,8 +38,8 @@ public function index() $this->form_validation->set_rules('hostname', 'Hostname', 'required'); $this->form_validation->set_rules('database', 'Database Name', 'required'); $this->form_validation->set_rules('username', 'Username', 'required'); - $this->form_validation->set_rules('password', 'Password', 'required'); - $this->form_validation->set_rules('prefix', 'Database Prefix', 'required'); + $this->form_validation->set_rules('password', 'Password', 'trim'); + $this->form_validation->set_rules('prefix', 'Database Prefix', 'trim'); $this->form_validation->set_rules('admin_email', 'Admin Email', 'required|valid_email'); $this->form_validation->set_rules('admin_password', 'Admin Password', 'required|min_length[5]'); diff --git a/version b/version index 314c3d71..5381191b 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.1.5 \ No newline at end of file +1.2a \ No newline at end of file From 23943fa7564dc13b152ead0da6efe00e681d4cd1 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 5 Dec 2011 13:42:32 -0600 Subject: [PATCH 054/343] support translations in admin --- gocart/controllers/admin/admin.php | 56 +++--- gocart/controllers/admin/banners.php | 37 ++-- gocart/controllers/admin/boxes.php | 33 ++-- gocart/controllers/admin/categories.php | 47 ++--- gocart/controllers/admin/coupons.php | 56 ++---- gocart/controllers/admin/customers.php | 180 ++++++++---------- gocart/controllers/admin/dashboard.php | 16 +- gocart/controllers/admin/giftcards.php | 35 ++-- gocart/controllers/admin/locations.php | 109 ++++------- gocart/controllers/admin/login.php | 5 +- gocart/controllers/admin/orders.php | 26 ++- gocart/controllers/admin/pages.php | 71 +++---- gocart/controllers/admin/payment.php | 13 +- gocart/controllers/admin/products.php | 66 +++---- gocart/controllers/admin/reports.php | 10 +- gocart/controllers/admin/settings.php | 23 ++- gocart/controllers/admin/shipping.php | 12 +- gocart/language/english/admin_common_lang.php | 37 ++++ gocart/language/english/admin_lang.php | 22 +++ gocart/language/english/banner_lang.php | 21 ++ gocart/language/english/boxes_lang.php | 21 ++ gocart/language/english/category_lang.php | 36 ++++ gocart/language/english/coupon_lang.php | 36 ++++ gocart/language/english/customer_lang.php | 58 ++++++ gocart/language/english/dashboard_lang.php | 18 ++ gocart/language/english/giftcard_lang.php | 37 ++++ gocart/language/english/location_lang.php | 47 +++++ gocart/language/english/login_lang.php | 13 ++ gocart/language/english/order_lang.php | 68 +++++++ gocart/language/english/page_lang.php | 38 ++++ gocart/language/english/product_lang.php | 76 ++++++++ gocart/language/english/report_lang.php | 35 ++++ gocart/language/english/settings_lang.php | 25 +++ gocart/views/admin/admin_form.php | 6 +- gocart/views/admin/admins.php | 6 +- gocart/views/admin/banners.php | 12 +- gocart/views/admin/box_form.php | 14 +- gocart/views/admin/boxes.php | 12 +- gocart/views/admin/canned_message_form.php | 8 +- gocart/views/admin/categories.php | 16 +- gocart/views/admin/category_form.php | 26 +-- gocart/views/admin/countries.php | 24 +-- gocart/views/admin/country_form.php | 18 +- gocart/views/admin/country_zone_area_form.php | 8 +- gocart/views/admin/country_zone_areas.php | 18 +- gocart/views/admin/country_zone_form.php | 14 +- gocart/views/admin/country_zones.php | 20 +- gocart/views/admin/coupon_form.php | 32 ++-- gocart/views/admin/coupons.php | 14 +- gocart/views/admin/customer_address_form.php | 24 +-- gocart/views/admin/customer_addresses.php | 20 +- gocart/views/admin/customer_form.php | 45 +++-- gocart/views/admin/customer_group_form.php | 10 +- gocart/views/admin/customer_groups.php | 26 +-- .../views/admin/customer_subscriber_list.php | 10 + gocart/views/admin/customers.php | 24 +-- gocart/views/admin/dashboard.php | 8 +- gocart/views/admin/giftcard_form.php | 16 +- gocart/views/admin/giftcards.php | 26 +-- gocart/views/admin/giftcards_settings.php | 14 +- gocart/views/admin/header.php | 48 ++--- .../views/admin/iframe/order_notification.php | 22 +-- .../admin/iframe/product_image_uploader.php | 4 +- gocart/views/admin/link_form.php | 18 +- gocart/views/admin/login.php | 14 +- gocart/views/admin/order.php | 54 +++--- gocart/views/admin/orders.php | 22 +-- gocart/views/admin/organize_category.php | 10 +- gocart/views/admin/packing_slip.php | 20 +- gocart/views/admin/page_form.php | 20 +- gocart/views/admin/pages.php | 22 +-- .../views/admin/payment_module_settings.php | 6 +- gocart/views/admin/product_form.php | 119 ++++++------ gocart/views/admin/products.php | 32 ++-- gocart/views/admin/reports.php | 8 +- gocart/views/admin/reports/best_sellers.php | 6 +- gocart/views/admin/reports/sales.php | 38 ++-- gocart/views/admin/settings.php | 26 +-- .../views/admin/shipping_module_settings.php | 6 +- 79 files changed, 1400 insertions(+), 949 deletions(-) create mode 100755 gocart/language/english/admin_common_lang.php create mode 100755 gocart/language/english/admin_lang.php create mode 100755 gocart/language/english/banner_lang.php create mode 100755 gocart/language/english/boxes_lang.php create mode 100755 gocart/language/english/category_lang.php create mode 100755 gocart/language/english/coupon_lang.php create mode 100755 gocart/language/english/customer_lang.php create mode 100755 gocart/language/english/dashboard_lang.php create mode 100755 gocart/language/english/giftcard_lang.php create mode 100755 gocart/language/english/location_lang.php create mode 100755 gocart/language/english/login_lang.php create mode 100755 gocart/language/english/order_lang.php create mode 100755 gocart/language/english/page_lang.php create mode 100755 gocart/language/english/product_lang.php create mode 100755 gocart/language/english/report_lang.php create mode 100755 gocart/language/english/settings_lang.php create mode 100644 gocart/views/admin/customer_subscriber_list.php diff --git a/gocart/controllers/admin/admin.php b/gocart/controllers/admin/admin.php index 20e4cda1..e95512c3 100755 --- a/gocart/controllers/admin/admin.php +++ b/gocart/controllers/admin/admin.php @@ -1,5 +1,5 @@ load->library('Auth'); - - $this->auth->is_logged_in(uri_string()); $this->auth->check_access('Admin', true); + //load the admin language file in + $this->lang->load('admin'); + $this->current_admin = $this->session->userdata('admin'); } function index() { - $data['page_title'] = 'Admins'; + $data['page_title'] = lang('admins'); $data['admins'] = $this->auth->get_admin_list(); $this->load->view($this->config->item('admin_folder').'/admins', $data); @@ -27,10 +27,13 @@ function delete($id) //even though the link isn't displayed for an admin to delete themselves, if they try, this should stop them. if ($this->current_admin['id'] == $id) { - $this->session->set_flashdata('message', 'You cannot delete yourself!'); + $this->session->set_flashdata('message', lang('error_self_delete')); redirect($this->config->item('admin_folder').'/admin'); } - $this->session->set_flashdata('message', $this->auth->delete($id)); + + //delete the user + $this->auth->delete($id); + $this->session->set_flashdata('message', lang('message_user_deleted')); redirect($this->config->item('admin_folder').'/admin'); } function form($id = false) @@ -41,7 +44,7 @@ function form($id = false) $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('
              ', '
              '); - $data['page_title'] = 'Add Admin'; + $data['page_title'] = lang('admin_form'); //default values are empty if the customer is new $data['id'] = ''; @@ -57,31 +60,27 @@ function form($id = false) //if the administrator does not exist, redirect them to the admin list with an error if (!$admin) { - $this->session->set_flashdata('message', 'The requested admin could not be found.'); + $this->session->set_flashdata('message', lang('admin_not_found')); redirect($this->config->item('admin_folder').'/admin'); } - - //set title to edit if we have an ID - $data['page_title'] = 'Edit Administrator'; - //set values to db values - $data['id'] = $admin->id; + $data['id'] = $admin->id; $data['firstname'] = $admin->firstname; $data['lastname'] = $admin->lastname; $data['email'] = $admin->email; $data['access'] = $admin->access; } - $this->form_validation->set_rules('firstname', 'First Name', 'trim|max_length[32]'); - $this->form_validation->set_rules('lastname', 'Last Name', 'trim|max_length[32]'); - $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|max_length[128]|callback_check_email'); - $this->form_validation->set_rules('access', 'Access', 'trim|required'); + $this->form_validation->set_rules('firstname', 'lang:firstname', 'trim|max_length[32]'); + $this->form_validation->set_rules('lastname', 'lang:lastname', 'trim|max_length[32]'); + $this->form_validation->set_rules('email', 'lang:email', 'trim|required|valid_email|max_length[128]|callback_check_email'); + $this->form_validation->set_rules('access', 'lang:access', 'trim|required'); //if this is a new account require a password, or if they have entered either a password or a password confirmation if ($this->input->post('password') != '' || $this->input->post('confirm') != '' || !$id) { - $this->form_validation->set_rules('password', 'Password', 'required|min_length[6]|sha1'); - $this->form_validation->set_rules('confirm', 'Confirm Password', 'required|matches[password]'); + $this->form_validation->set_rules('password', 'lang:password', 'required|min_length[6]|sha1'); + $this->form_validation->set_rules('confirm', 'lang:confirm_password', 'required|matches[password]'); } if ($this->form_validation->run() == FALSE) @@ -103,14 +102,7 @@ function form($id = false) $this->auth->save($save); - if (!$id) - { - $this->session->set_flashdata('message', 'The user has been added'); - } - else - { - $this->session->set_flashdata('message', ' The user has been updated.'); - } + $this->session->set_flashdata('message', lang('message_user_saved')); //go back to the customer list redirect($this->config->item('admin_folder').'/admin'); @@ -119,10 +111,10 @@ function form($id = false) function check_email($str) { - $email = $this->auth->check_email($str, $this->admin_id); - if ($email) - { - $this->form_validation->set_message('check_email', 'The Email is already in use.'); + $email = $this->auth->check_email($str, $this->admin_id); + if ($email) + { + $this->form_validation->set_message('check_email', lang('error_email_taken')); return FALSE; } else diff --git a/gocart/controllers/admin/banners.php b/gocart/controllers/admin/banners.php index 01ed7ac2..3d35dbaa 100644 --- a/gocart/controllers/admin/banners.php +++ b/gocart/controllers/admin/banners.php @@ -1,17 +1,15 @@ load->library('auth'); - - $this->auth->is_logged_in(uri_string()); $this->auth->check_access('Admin', true); + $this->lang->load('banner'); + $this->load->model('Banner_model'); $this->load->helper('date'); @@ -20,7 +18,7 @@ function __construct() function index() { $data['banners'] = $this->Banner_model->get_banners(); - $data['page_title'] = 'Banners'; + $data['page_title'] = lang('banners'); $this->load->view($this->config->item('admin_folder').'/banners', $data); } @@ -33,7 +31,9 @@ function organize() function delete($id) { - $this->session->set_flashdata('message', $this->Banner_model->delete($id)); + $this->Banner_model->delete($id) + + $this->session->set_flashdata('message', lang('message_delete_banner')); redirect($this->config->item('admin_folder').'/banners'); } @@ -66,20 +66,20 @@ function form($id = false) ,'new_window'=>false ); - $data['page_title'] = 'New Ad'; + $data['page_title'] = lang('banner_form'); + if($id) { $data = (array) $this->Banner_model->get_banner($id); $data['new_window'] = (bool) $data['new_window']; - $data['page_title'] = 'Edit Ad'; } - $this->form_validation->set_rules('title', 'Title', 'trim|required|full_decode'); - $this->form_validation->set_rules('enable_on', 'Enable On', 'trim'); - $this->form_validation->set_rules('disable_on', 'Disable On', 'trim|callback_date_check'); - $this->form_validation->set_rules('image', 'image', 'trim'); - $this->form_validation->set_rules('link', 'Link', 'trim'); - $this->form_validation->set_rules('new_window', 'New Window', 'trim'); + $this->form_validation->set_rules('title', 'lang:title', 'trim|required|full_decode'); + $this->form_validation->set_rules('enable_on', 'lang:enable_on', 'trim'); + $this->form_validation->set_rules('disable_on', 'lang:disable_on', 'trim|callback_date_check'); + $this->form_validation->set_rules('image', 'lang:image', 'trim'); + $this->form_validation->set_rules('link', 'lang:link', 'trim'); + $this->form_validation->set_rules('new_window', 'lang:new_window', 'trim'); if ($this->form_validation->run() == false) { @@ -134,9 +134,8 @@ function form($id = false) } $this->Banner_model->save_banner($save); - $message = 'The "'.$this->input->post('title').'" banner has been saved.'; - $this->session->set_flashdata('message', $message); + $this->session->set_flashdata('message', lang('message_banner_saved')); redirect($this->config->item('admin_folder').'/banners'); } @@ -149,7 +148,7 @@ function date_check($str) { if ($this->input->post('enable_on') >= $str) { - $this->form_validation->set_message('date_check', 'The "Disable On" date cannot come on or before the "Enable On" date.'); + $this->form_validation->set_message('date_check', lang('date_error')); return FALSE; } } diff --git a/gocart/controllers/admin/boxes.php b/gocart/controllers/admin/boxes.php index 9abef06f..74c72db8 100644 --- a/gocart/controllers/admin/boxes.php +++ b/gocart/controllers/admin/boxes.php @@ -1,31 +1,30 @@ load->library('auth'); + $this->auth->check_access('Admin', true); - + + $this->lang->load('boxes'); $this->load->model('Box_model'); $this->load->helper('date'); - $this->auth->is_logged_in(uri_string()); } function index() { $data['boxes'] = $this->Box_model->get_boxes(); - $data['page_title'] = 'Boxes'; + $data['page_title'] = lang('boxes'); $this->load->view($this->config->item('admin_folder').'/boxes', $data); } function delete($id) { - $this->session->set_flashdata('message', $this->Box_model->delete($id)); + $this->Box_model->delete($id); + $this->session->set_flashdata('message', lang('message_delete_box')); redirect($this->config->item('admin_folder').'/boxes'); } @@ -63,21 +62,20 @@ function form($id = false) ,'new_window'=>false ); - $data['page_title'] = 'New Ad'; + $data['page_title'] = lang('box_form'); if($id) { $data = (array) $this->Box_model->get_box($id); $data['new_window'] = (bool) $data['new_window']; - $data['page_title'] = 'Edit Ad'; } - $this->form_validation->set_rules('title', 'Title', 'trim|required|full_decode'); - $this->form_validation->set_rules('enable_on', 'Enable On', 'trim'); - $this->form_validation->set_rules('disable_on', 'Disable On', 'trim'); - $this->form_validation->set_rules('image', 'image', 'trim'); - $this->form_validation->set_rules('link', 'Link', 'trim'); - $this->form_validation->set_rules('new_window', 'New Window', 'trim'); + $this->form_validation->set_rules('title', 'lang:title', 'trim|required|full_decode'); + $this->form_validation->set_rules('enable_on', 'lang:enable_on', 'trim'); + $this->form_validation->set_rules('disable_on', 'lang:disable_on', 'trim'); + $this->form_validation->set_rules('image', 'lang:image', 'trim'); + $this->form_validation->set_rules('link', 'lang:link', 'trim'); + $this->form_validation->set_rules('new_window', 'lang:new_window', 'trim'); if ($this->form_validation->run() == false) { @@ -132,9 +130,8 @@ function form($id = false) } $this->Box_model->save($save); - $message = 'The "'.$this->input->post('title').'" box has been saved.'; - $this->session->set_flashdata('message', $message); + $this->session->set_flashdata('message', lang('message_box_saved')); redirect($this->config->item('admin_folder').'/boxes'); } diff --git a/gocart/controllers/admin/categories.php b/gocart/controllers/admin/categories.php index dbe15513..13a3c6fe 100644 --- a/gocart/controllers/admin/categories.php +++ b/gocart/controllers/admin/categories.php @@ -1,19 +1,15 @@ load->library('Auth'); $this->auth->check_access('Admin', true); - + $this->lang->load('category'); $this->load->model('Category_model'); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); } function index() @@ -21,7 +17,7 @@ function index() //we're going to use flash data and redirect() after form submissions to stop people from refreshing and duplicating submissions //$this->session->set_flashdata('message', 'this is our message'); - $data['page_title'] = 'Categories'; + $data['page_title'] = lang('categories'); $data['categories'] = $this->Category_model->get_categories_tierd(); $this->load->view($this->config->item('admin_folder').'/categories', $data); @@ -33,7 +29,7 @@ function organize($id = false) if (!$id) { - $this->session->set_flashdata('message', 'You must select a category to organize.'); + $this->session->set_flashdata('error', lang('error_must_select')); redirect($this->config->item('admin_folder').'/categories'); } @@ -41,11 +37,11 @@ function organize($id = false) //if the category does not exist, redirect them to the category list with an error if (!$data['category']) { - $this->session->set_flashdata('message', 'The requested category could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/categories'); } - $data['page_title'] = 'Oranize "'.$data['category']->name.'" Category'; + $data['page_title'] = sprintf(lang('organize_category'), $data['category']->name); $data['category_products'] = $this->Category_model->get_category_products_admin($id); @@ -76,7 +72,7 @@ function form($id = false) $this->form_validation->set_error_delimiters('
              ', '
              '); $data['categories'] = $this->Category_model->get_categories(); - $data['page_title'] = 'Add Category'; + $data['page_title'] = lang('category_form'); //default values are empty if the customer is new $data['id'] = ''; @@ -100,16 +96,13 @@ function form($id = false) //if the category does not exist, redirect them to the category list with an error if (!$category) { - $this->session->set_flashdata('message', 'The requested category could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/categories'); } //helps us with the slug generation $this->category_name = $this->input->post('slug', $category->slug); - //set title to edit if we have an ID - $data['page_title'] = 'Edit Category'; - //set values to db values $data['id'] = $category->id; $data['name'] = $category->name; @@ -124,15 +117,15 @@ function form($id = false) } - $this->form_validation->set_rules('name', 'Name', 'trim|required|max_length[64]'); - $this->form_validation->set_rules('slug', 'slug', 'trim'); - $this->form_validation->set_rules('description', 'Description', 'trim'); - $this->form_validation->set_rules('excerpt', 'Excerpt', 'trim'); - $this->form_validation->set_rules('sequence', 'Sequence', 'trim|integer'); + $this->form_validation->set_rules('name', 'lang:name', 'trim|required|max_length[64]'); + $this->form_validation->set_rules('slug', 'lang:slug', 'trim'); + $this->form_validation->set_rules('description', 'lang:description', 'trim'); + $this->form_validation->set_rules('excerpt', 'lang:excerpt', 'trim'); + $this->form_validation->set_rules('sequence', 'lang:sequence', 'trim|integer'); $this->form_validation->set_rules('parent_id', 'parent_id', 'trim'); - $this->form_validation->set_rules('image', 'image', 'trim'); - $this->form_validation->set_rules('seo_title', 'SEO Title', 'trim'); - $this->form_validation->set_rules('meta', 'Meta', 'trim'); + $this->form_validation->set_rules('image', 'lang:image', 'trim'); + $this->form_validation->set_rules('seo_title', 'lang:seo_title', 'trim'); + $this->form_validation->set_rules('meta', 'lang:meta', 'trim'); // validate the form @@ -177,7 +170,7 @@ function form($id = false) if(!$uploaded) { $error = $this->upload->display_errors(); - if($error != '

              You did not select a file to upload.

              ') + if($error != lang('error_file_upload')) { $data['error'] .= $this->upload->display_errors(); $this->load->view($this->config->item('admin_folder').'/category_form', $data); @@ -274,7 +267,7 @@ function form($id = false) $this->Routes_model->save($route); - $this->session->set_flashdata('message', 'The "'.$this->input->post('name').'" category has been updated.'); + $this->session->set_flashdata('message', lang('message_category_saved')); //go back to the category list redirect($this->config->item('admin_folder').'/categories'); @@ -293,12 +286,12 @@ function delete($id) $this->Routes_model->delete($category->route_id); $this->Category_model->delete($id); - $this->session->set_flashdata('message', 'The "'.$category->name.'" category has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_delete_category')); redirect($this->config->item('admin_folder').'/categories'); } else { - $this->session->set_flashdata('error', 'The requested category could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); } } } \ No newline at end of file diff --git a/gocart/controllers/admin/coupons.php b/gocart/controllers/admin/coupons.php index aac6cea5..c0bba847 100644 --- a/gocart/controllers/admin/coupons.php +++ b/gocart/controllers/admin/coupons.php @@ -1,6 +1,6 @@ load->library('Auth'); $this->auth->check_access('Admin', true); $this->load->model('Coupon_model'); $this->load->model('Product_model'); - - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('coupon'); } function index() { - $data['page_title'] = 'Coupons'; + $data['page_title'] = lang('coupons'); $data['coupons'] = $this->Coupon_model->get_coupons(); $this->load->view($this->config->item('admin_folder').'/coupons', $data); @@ -37,7 +33,7 @@ function form($id = false) $this->coupon_id = $id; - $data['page_title'] = 'Add Coupon'; + $data['page_title'] = lang('coupon_form'); //default values are empty if the product is new $data['id'] = ''; @@ -60,13 +56,10 @@ function form($id = false) //if the product does not exist, redirect them to the product list with an error if (!$coupon) { - $this->session->set_flashdata('message', 'The requested coupon could not be found.'); + $this->session->set_flashdata('message', lang('error_not_found')); redirect($this->config->item('admin_folder').'/product'); } - //set title to edit if we have an ID - $data['page_title'] = 'Edit Coupon'; - //set values to db values $data['id'] = $coupon->id; $data['code'] = $coupon->code; @@ -83,15 +76,15 @@ function form($id = false) $added = $this->Coupon_model->get_product_ids($id); } - $this->form_validation->set_rules('code', 'Code', 'trim|required|callback_check_code'); - $this->form_validation->set_rules('max_uses', 'Max Uses', 'trim|numeric'); - $this->form_validation->set_rules('max_product_instances', 'Max Instances', 'trim|numeric'); - $this->form_validation->set_rules('whole_order_coupon', 'Whole Order Discount?'); - $this->form_validation->set_rules('reduction_target', 'Reduction Target', 'trim|required'); - $this->form_validation->set_rules('reduction_type', 'Reduction Type', 'trim'); - $this->form_validation->set_rules('reduction_amount', 'Reduction Amount', 'trim|numeric'); - $this->form_validation->set_rules('start_date', 'Start Date'); - $this->form_validation->set_rules('end_date', 'End Date'); + $this->form_validation->set_rules('code', 'lang:code', 'trim|required|callback_check_code'); + $this->form_validation->set_rules('max_uses', 'lang:max_uses', 'trim|numeric'); + $this->form_validation->set_rules('max_product_instances', 'lang:limit_per_order', 'trim|numeric'); + $this->form_validation->set_rules('whole_order_coupon', 'lang:whole_order_discount'); + $this->form_validation->set_rules('reduction_target', 'lang:reduction_target', 'trim|required'); + $this->form_validation->set_rules('reduction_type', 'lang:reduction_type', 'trim'); + $this->form_validation->set_rules('reduction_amount', 'lang:reduction_amount', 'trim|numeric'); + $this->form_validation->set_rules('start_date', 'lang:start_date'); + $this->form_validation->set_rules('end_date', 'lang:end_date'); // create product list $products = $this->Product_model->get_products(); @@ -161,14 +154,7 @@ function form($id = false) } // We're done - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('code').'" coupon code has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('code').'" coupon code has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_coupon')); //go back to the product list redirect($this->config->item('admin_folder').'/coupons'); @@ -181,7 +167,7 @@ function check_code($str) $code = $this->Coupon_model->check_code($str, $this->coupon_id); if ($code) { - $this->form_validation->set_message('check_code', 'The requested code is already in use.'); + $this->form_validation->set_message('check_code', lang('error_already_used')); return FALSE; } else @@ -198,24 +184,22 @@ function delete($id = false) //if the promo does not exist, redirect them to the customer list with an error if (!$coupon) { - $this->session->set_flashdata('message', 'The requested coupon could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/coupons'); } else { $this->Coupon_model->delete_coupon($id); - $this->session->set_flashdata('message', 'The "'.$coupon->code.'" coupon has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_coupon_deleted')); redirect($this->config->item('admin_folder').'/coupons'); } } else { //if they do not provide an id send them to the promo list page with an error - $this->session->set_flashdata('message', 'The requested coupon could not be found.'); + $this->session->set_flashdata('message', lang('error_not_found')); redirect($this->config->item('admin_folder').'/coupons'); } } -} - -?> +} \ No newline at end of file diff --git a/gocart/controllers/admin/customers.php b/gocart/controllers/admin/customers.php index b0048f76..f0af2c3e 100755 --- a/gocart/controllers/admin/customers.php +++ b/gocart/controllers/admin/customers.php @@ -1,6 +1,6 @@ load->library('Auth'); + $this->load->model(array('Customer_model', 'Location_model')); $this->load->helper('formatting_helper'); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('customer'); } function index($field='lastname', $by='ASC', $page=0) @@ -20,7 +19,7 @@ function index($field='lastname', $by='ASC', $page=0) //we're going to use flash data and redirect() after form submissions to stop people from refreshing and duplicating submissions //$this->session->set_flashdata('message', 'this is our message'); - $data['page_title'] = 'Customers'; + $data['page_title'] = lang('customers'); $data['customers'] = $this->Customer_model->get_customers(50,$page, $field, $by); $this->load->library('pagination'); @@ -58,22 +57,21 @@ function form($id = false) $this->load->helper('form'); $this->load->library('form_validation'); - $data['page_title'] = 'Add Customer'; + $data['page_title'] = lang('customer_form'); //default values are empty if the customer is new - $data['id'] = ''; - $data['group_id'] = ''; - $data['firstname'] = ''; - $data['lastname'] = ''; - $data['email'] = ''; - $data['phone'] = ''; - $data['company'] = ''; - $data['email_subscribe'] = ''; - $data['active'] = false; + $data['id'] = ''; + $data['group_id'] = ''; + $data['firstname'] = ''; + $data['lastname'] = ''; + $data['email'] = ''; + $data['phone'] = ''; + $data['company'] = ''; + $data['email_subscribe'] = ''; + $data['active'] = false; // get group list $groups = $this->Customer_model->get_groups(); - $group_list[0]=''; foreach($groups as $group) { $group_list[$group->id] = $group->name; @@ -89,40 +87,37 @@ function form($id = false) //if the customer does not exist, redirect them to the customer list with an error if (!$customer) { - $this->session->set_flashdata('message', 'The requested customer could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/customers'); } - //set title to edit if we have an ID - $data['page_title'] = 'Edit Customer'; - //set values to db values - $data['id'] = $customer->id; - $data['group_id'] = $customer->group_id; - $data['firstname'] = $customer->firstname; - $data['lastname'] = $customer->lastname; - $data['email'] = $customer->email; - $data['phone'] = $customer->phone; - $data['company'] = $customer->company; - $data['active'] = $customer->active; - $data['email_subscribe'] = $customer->email_subscribe; + $data['id'] = $customer->id; + $data['group_id'] = $customer->group_id; + $data['firstname'] = $customer->firstname; + $data['lastname'] = $customer->lastname; + $data['email'] = $customer->email; + $data['phone'] = $customer->phone; + $data['company'] = $customer->company; + $data['active'] = $customer->active; + $data['email_subscribe'] = $customer->email_subscribe; } - $this->form_validation->set_rules('firstname', 'First Name', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('lastname', 'Last Name', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|max_length[128]|callback_check_email'); - $this->form_validation->set_rules('phone', 'Phone', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('company', 'Company', 'trim|max_length[128]'); - $this->form_validation->set_rules('active', 'Active'); - $this->form_validation->set_rules('group_id', 'numeric'); - $this->form_validation->set_rules('email_subscribe', 'numeric|max_length[1]'); + $this->form_validation->set_rules('firstname', 'lang:firstname', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('lastname', 'lang:lastname', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('email', 'lang:email', 'trim|required|valid_email|max_length[128]|callback_check_email'); + $this->form_validation->set_rules('phone', 'lang:phone', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('company', 'lang:company', 'trim|max_length[128]'); + $this->form_validation->set_rules('active', 'lang:active'); + $this->form_validation->set_rules('group_id', 'group_id', 'numeric'); + $this->form_validation->set_rules('email_subscribe', 'email_subscribe', 'numeric|max_length[1]'); //if this is a new account require a password, or if they have entered either a password or a password confirmation if ($this->input->post('password') != '' || $this->input->post('confirm') != '' || !$id) { - $this->form_validation->set_rules('password', 'Password', 'required|min_length[6]|sha1'); - $this->form_validation->set_rules('confirm', 'Confirm Password', 'required|matches[password]'); + $this->form_validation->set_rules('password', 'lang:password', 'required|min_length[6]|sha1'); + $this->form_validation->set_rules('confirm', 'lang:confirm_password', 'required|matches[password]'); } @@ -150,14 +145,7 @@ function form($id = false) $this->Customer_model->save($save); - if (!$id) - { - $this->session->set_flashdata('message', $this->input->post('firstname').' '.$this->input->post('lastname').' has been added.'); - } - else - { - $this->session->set_flashdata('message', $this->input->post('firstname').' '.$this->input->post('lastname').'\'s information has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_customer')); //go back to the customer list redirect($this->config->item('admin_folder').'/customers'); @@ -171,14 +159,13 @@ function addresses($id = false) //if the customer does not exist, redirect them to the customer list with an error if (!$data['customer']) { - $this->session->set_flashdata('message', 'The requested customer could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/customers'); } $data['addresses'] = $this->Customer_model->get_address_list($id); - //set title to edit if we have an ID - $data['page_title'] = $data['customer']->lastname.', '.$data['customer']->firstname.' Addresses'; + $data['page_title'] = sprintf(lang('addresses_for'), $data['customer']->firstname.' '.$data['customer']->lastname); $this->load->view($this->config->item('admin_folder').'/customer_addresses', $data); } @@ -191,7 +178,7 @@ function delete($id = false) //if the customer does not exist, redirect them to the customer list with an error if (!$customer) { - $this->session->set_flashdata('message', 'The requested customer could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/customers'); } else @@ -199,14 +186,14 @@ function delete($id = false) //if the customer is legit, delete them $delete = $this->Customer_model->delete($id); - $this->session->set_flashdata('message', $customer->firstname.' '.$customer->lastname.' has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_customer_deleted')); redirect($this->config->item('admin_folder').'/customers'); } } else { //if they do not provide an id send them to the customer list page with an error - $this->session->set_flashdata('message', 'The requested customer could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/customers'); } } @@ -217,7 +204,7 @@ function check_email($str) $email = $this->Customer_model->check_email($str, $this->customer_id); if ($email) { - $this->form_validation->set_message('check_email', 'The requested email is already in use.'); + $this->form_validation->set_message('check_email', lang('error_email_in_use')); return FALSE; } else @@ -249,23 +236,16 @@ function get_subscriber_list() $sub_list .= $subscriber['email'].",\n"; } - // start output - header('Content-Type: "text/csv"'); - header('Content-Disposition: attachment; filename="email_subscribers_list.csv"'); - header('Expires: 0'); - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header("Content-Transfer-Encoding: binary"); - header('Pragma: public'); + $data['sub_list'] = $sub_list; - echo $sub_list; + $this->load->view($this->config->item('admin_folder').'/customer_subscriber_list', $data); } - //// customer groups - + // customer groups function groups() { - $data['groups'] = $this->Customer_model->get_groups(); - $data['page_title'] = 'Customer Groups'; + $data['groups'] = $this->Customer_model->get_groups(); + $data['page_title'] = lang('customer_groups'); $this->load->view($this->config->item('admin_folder').'/customer_groups', $data); } @@ -275,7 +255,7 @@ function edit_group($id=0) $this->load->helper('form'); $this->load->library('form_validation'); - $data['page_title'] = 'Add Customer Group'; + $data['page_title'] = lang('customer_group_form'); //default values are empty if the customer is new $data['id'] = ''; @@ -291,13 +271,11 @@ function edit_group($id=0) $data['name'] = $group->name; $data['discount'] = $group->discount; $data['discount_type'] = $group->discount_type; - - $data['page_title'] = 'Edit Customer Group'; } - $this->form_validation->set_rules('name', 'Group Name', 'trim|required|max_length[50]'); - $this->form_validation->set_rules('discount', 'Discount', 'trim|required|numeric'); - $this->form_validation->set_rules('discount_type', 'Discount Type', 'trim|required'); + $this->form_validation->set_rules('name', 'lang:group_name', 'trim|required|max_length[50]'); + $this->form_validation->set_rules('discount', 'lang:discount', 'trim|required|numeric'); + $this->form_validation->set_rules('discount_type', 'lang:discount_type', 'trim|required'); if ($this->form_validation->run() == FALSE) { @@ -311,26 +289,16 @@ function edit_group($id=0) $save['id'] = $id; } - $save['name'] = set_value('name'); - $save['discount'] = set_value('discount'); - $save['discount_type'] = set_value('discount_type'); + $save['name'] = set_value('name'); + $save['discount'] = set_value('discount'); + $save['discount_type'] = set_value('discount_type'); $this->Customer_model->save_group($save); - - if (!$id) - { - $this->session->set_flashdata('message', 'The group "'.set_value('name').'" has been added.'); - } - else - { - $this->session->set_flashdata('message', 'The group "'.set_value('name').'" has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_group')); //go back to the customer group list redirect($this->config->item('admin_folder').'/customers/groups'); - } - } @@ -347,7 +315,10 @@ function get_group() function delete_group($id) { - if(empty($id)) return; + if(empty($id)) + { + return; + } $this->Customer_model->delete_group($id); @@ -379,13 +350,12 @@ function address_form($customer_id, $id = false) $data['customer_id'] = $customer_id; - $data['page_title'] = 'Add Address'; + $data['page_title'] = lang('address_form'); //get the countries list for the dropdown $data['countries_menu'] = $this->Location_model->get_countries_menu(); if($id) { - $data['page_title'] = 'Edit Address'; $address = $this->Customer_model->get_address($id); //fully escape the address @@ -402,17 +372,17 @@ function address_form($customer_id, $id = false) $data['zones_menu'] = $this->Location_model->get_zones_menu(array_shift(array_keys($data['countries_menu']))); } $this->load->library('form_validation'); - $this->form_validation->set_rules('company', 'Company', 'trim|max_length[128]'); - $this->form_validation->set_rules('firstname', 'First Name', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('lastname', 'Last Name', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|max_length[128]'); - $this->form_validation->set_rules('phone', 'Phone', 'trim|required|max_length[32]'); - $this->form_validation->set_rules('address1', 'Address', 'trim|required|max_length[128]'); - $this->form_validation->set_rules('address2', 'Address', 'trim|max_length[128]'); - $this->form_validation->set_rules('city', 'City', 'trim|required'); - $this->form_validation->set_rules('country_id', 'Country', 'trim|required'); - $this->form_validation->set_rules('zone_id', 'State', 'trim|required'); - $this->form_validation->set_rules('zip', 'Zip', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('company', 'lang:company', 'trim|max_length[128]'); + $this->form_validation->set_rules('firstname', 'lang:firstname', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('lastname', 'lang:lastname', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('email', 'lang:email', 'trim|required|valid_email|max_length[128]'); + $this->form_validation->set_rules('phone', 'lang:phone', 'trim|required|max_length[32]'); + $this->form_validation->set_rules('address1', 'lang:address', 'trim|required|max_length[128]'); + $this->form_validation->set_rules('address2', 'lang:address', 'trim|max_length[128]'); + $this->form_validation->set_rules('city', 'lang:city', 'trim|required'); + $this->form_validation->set_rules('country_id', 'lang:country', 'trim|required'); + $this->form_validation->set_rules('zone_id', 'lang:state', 'trim|required'); + $this->form_validation->set_rules('zip', 'lang:postcode', 'trim|required|max_length[32]'); if ($this->form_validation->run() == FALSE) { @@ -445,7 +415,7 @@ function address_form($customer_id, $id = false) $a['field_data']['country_code'] = $country->iso_code_2; // some shipping libraries require the code $this->Customer_model->save_address($a); - $this->session->set_flashdata('message', 'Your address has been saved!'); + $this->session->set_flashdata('message', lang('message_saved_address')); redirect($this->config->item('admin_folder').'/customers/addresses/'.$customer_id); } @@ -460,7 +430,7 @@ function delete_address($customer_id = false, $id = false) //if the customer does not exist, redirect them to the customer list with an error if (!$address) { - $this->session->set_flashdata('message', 'The requested address could not be found.'); + $this->session->set_flashdata('error', lang('error_address_not_found')); if($customer_id) { @@ -475,9 +445,9 @@ function delete_address($customer_id = false, $id = false) else { //if the customer is legit, delete them - $delete = $this->Customer_model->delete_address($id, $customer_id); + $delete = $this->Customer_model->delete_address($id, $customer_id); + $this->session->set_flashdata('message', lang('message_address_deleted')); - $this->session->set_flashdata('message', 'An address has been deleted from the system.'); if($customer_id) { redirect($this->config->item('admin_folder').'/customers/addresses/'.$customer_id); @@ -491,7 +461,7 @@ function delete_address($customer_id = false, $id = false) else { //if they do not provide an id send them to the customer list page with an error - $this->session->set_flashdata('message', 'The requested address could not be found.'); + $this->session->set_flashdata('error', lang('error_address_not_found')); if($customer_id) { diff --git a/gocart/controllers/admin/dashboard.php b/gocart/controllers/admin/dashboard.php index 02bdbb7d..911c2a78 100755 --- a/gocart/controllers/admin/dashboard.php +++ b/gocart/controllers/admin/dashboard.php @@ -1,24 +1,22 @@ load->library('Auth'); - $this->load->model('Order_model'); - $this->load->model('Customer_model'); - $this->load->helper('date'); - - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); - if($this->auth->check_access('Orders')) { redirect($this->config->item('admin_folder').'/orders'); } + + $this->load->model('Order_model'); + $this->load->model('Customer_model'); + $this->load->helper('date'); + + $this->lang->load('dashboard'); } function index() diff --git a/gocart/controllers/admin/giftcards.php b/gocart/controllers/admin/giftcards.php index aed16dd2..3add6210 100644 --- a/gocart/controllers/admin/giftcards.php +++ b/gocart/controllers/admin/giftcards.php @@ -1,6 +1,6 @@ load->library('Auth'); $this->load->model('Settings_model'); $this->load->model('Gift_card_model'); $this->load->helper('form'); $this->load->library('form_validation'); - $this->form_validation->set_error_delimiters('
              ', '
              '); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('giftcard'); } function index() { - $data['page_title'] = "Gift Cards List"; + $data['page_title'] = lang('giftcards'); $data['cards'] = $this->Gift_card_model->get_all_new(); $gc_settings = $this->Settings_model->get_settings('gift_cards'); @@ -41,13 +38,13 @@ function index() function form() { - $this->form_validation->set_rules('to_email', 'Recipient Email Address', 'trim|required'); - $this->form_validation->set_rules('to_name', 'Recipient Name', 'trim|required'); - $this->form_validation->set_rules('from', 'Sender Name', 'trim|required'); - $this->form_validation->set_rules('personal_message', 'Personal Message', 'trim'); - $this->form_validation->set_rules('beginning_amount', 'Amount', 'trim|required|numeric'); + $this->form_validation->set_rules('to_email', 'lang:recipient_email', 'trim|required'); + $this->form_validation->set_rules('to_name', 'lang:recipient_name', 'trim|required'); + $this->form_validation->set_rules('from', 'lang:sender_name', 'trim|required'); + $this->form_validation->set_rules('personal_message', 'lang:personal_message', 'trim'); + $this->form_validation->set_rules('beginning_amount', 'lang:amount', 'trim|required|numeric'); - $data['page_title'] = "Add Gift Card"; + $data['page_title'] = lang('add_giftcard'); if ($this->form_validation->run() == FALSE) { @@ -96,7 +93,7 @@ function form() $this->email->send(); } - $this->session->set_flashdata('message', 'Gift Card saved'); + $this->session->set_flashdata('message', lang('message_saved_giftcard')); redirect($this->config->item('admin_folder').'/giftcards'); } @@ -107,7 +104,7 @@ function activate($code) { $this->Gift_card_model->activate($code); $this->Gift_card_model->send_notification($code); - $this->session->set_flashdata('message', 'Gift Card Activated'); + $this->session->set_flashdata('message', lang('message_activated_giftcard')); redirect($this->config->item('admin_folder').'/giftcards'); } @@ -115,7 +112,7 @@ function delete($id) { $this->Gift_card_model->delete($id); - $this->session->set_flashdata('message', 'Gift Card Deleted'); + $this->session->set_flashdata('message', lang('message_deleted_giftcard')); redirect($this->config->item('admin_folder').'/giftcards'); } @@ -144,10 +141,10 @@ function settings() $data['predefined_card_amounts'] = $gc_settings['predefined_card_amounts']; $data['allow_custom_amount'] = $gc_settings['allow_custom_amount']; - $this->form_validation->set_rules('predefined_card_amounts', 'Predefined Card Amounts', 'trim'); - $this->form_validation->set_rules('allow_custom_amount', 'Allow Custom Amounts', 'trim'); + $this->form_validation->set_rules('predefined_card_amounts', 'lang:predefined_card_amounts', 'trim'); + $this->form_validation->set_rules('allow_custom_amount', 'lang:allow_custom_amounts', 'trim'); - $data['page_title'] = 'Gift Card Settings'; + $data['page_title'] = lang('giftcard_settings'); if ($this->form_validation->run() == FALSE) { @@ -161,7 +158,7 @@ function settings() $this->Settings_model->save_settings('gift_cards', $save); - $this->session->set_flashdata('message', 'Gift Card settings saved'); + $this->session->set_flashdata('message', lang('message_saved_settings')); redirect($this->config->item('admin_folder').'/giftcards'); diff --git a/gocart/controllers/admin/locations.php b/gocart/controllers/admin/locations.php index 83450bc0..41978346 100644 --- a/gocart/controllers/admin/locations.php +++ b/gocart/controllers/admin/locations.php @@ -1,23 +1,20 @@ load->library('Auth'); $this->auth->check_access('Admin', true); $this->load->model('Location_model'); - - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('location'); } function index() { - $data['page_title'] = 'Countries'; + $data['page_title'] = lang('countries'); $data['locations'] = $this->Location_model->get_countries(); $this->load->view($this->config->item('admin_folder').'/countries', $data); @@ -37,7 +34,7 @@ function country_form($id = false) $this->form_validation->set_error_delimiters('
              ', '
              '); - $data['page_title'] = 'Add Country'; + $data['page_title'] = lang('country_form'); //default values are empty if the product is new $data['id'] = ''; @@ -55,23 +52,20 @@ function country_form($id = false) //if the country does not exist, redirect them to the country list with an error if (!$country) { - $this->session->set_flashdata('message', 'The requested country could not be found.'); + $this->session->set_flashdata('error', lang('error_country_not_found')); redirect($this->config->item('admin_folder').'/locations'); } - //set title to edit if we have an ID - $data['page_title'] = 'Edit Country'; - $data = array_merge($data, $country); } - $this->form_validation->set_rules('name', 'Name', 'trim|required'); - $this->form_validation->set_rules('iso_code_2', 'ISO Code 2', 'trim|required'); - $this->form_validation->set_rules('iso_code_3', 'ISO Code 3', 'trim|required'); - $this->form_validation->set_rules('address_format', 'Address Format', 'trim'); - $this->form_validation->set_rules('postcode_required', 'Post Code Required', 'trim'); - $this->form_validation->set_rules('tax', 'Tax', 'trim|numeric'); - $this->form_validation->set_rules('status', 'Status', 'trim'); + $this->form_validation->set_rules('name', 'lang:name', 'trim|required'); + $this->form_validation->set_rules('iso_code_2', 'lang:iso_code_2', 'trim|required'); + $this->form_validation->set_rules('iso_code_3', 'lang:iso_code_3', 'trim|required'); + $this->form_validation->set_rules('address_format', 'lang:address_format', 'trim'); + $this->form_validation->set_rules('postcode_required', 'lang:require_postcode', 'trim'); + $this->form_validation->set_rules('tax', 'lang:tax', 'trim|numeric'); + $this->form_validation->set_rules('status', 'lang:status', 'trim'); if ($this->form_validation->run() == FALSE) { @@ -90,15 +84,7 @@ function country_form($id = false) $promo_id = $this->Location_model->save_country($save); - // We're done - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('name').'" Country has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('name').'" Country has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_country')); //go back to the product list redirect($this->config->item('admin_folder').'/locations'); @@ -114,21 +100,21 @@ function delete_country($id = false) //if the promo does not exist, redirect them to the customer list with an error if (!$location) { - $this->session->set_flashdata('message', 'The requested Coutnry could not be found.'); + $this->session->set_flashdata('error', lang('error_country_not_found')); redirect($this->config->item('admin_folder').'/locations'); } else { $this->Location_model->delete_country($id); - $this->session->set_flashdata('message', 'The "'.$location->name.'" Country has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_deleted_country')); redirect($this->config->item('admin_folder').'/locations'); } } else { //if they do not provide an id send them to the promo list page with an error - $this->session->set_flashdata('message', 'The requested Country could not be found.'); + $this->session->set_flashdata('error', lang('error_country_not_found')); redirect($this->config->item('admin_folder').'/locations'); } } @@ -141,21 +127,21 @@ function delete_zone($id = false) //if the promo does not exist, redirect them to the customer list with an error if (!$location) { - $this->session->set_flashdata('message', 'The requested zone could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_not_found')); redirect($this->config->item('admin_folder').'/locations'); } else { $this->Location_model->delete_zone($id); - $this->session->set_flashdata('message', 'The "'.$location->name.'" Zone has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_deleted_zone')); redirect($this->config->item('admin_folder').'/locations/zones/'.$location->country_id); } } else { //if they do not provide an id send them to the promo list page with an error - $this->session->set_flashdata('message', 'The requested Zone could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_not_found')); redirect($this->config->item('admin_folder').'/locations'); } } @@ -166,12 +152,12 @@ function zones($country_id) $data['country'] = $this->Location_model->get_country($country_id); if(!$data['country']) { - $this->session->set_flashdata('error', 'The requested Country could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_not_found')); redirect($this->config->item('admin_folder').'/locations'); } $data['zones'] = $this->Location_model->get_zones($country_id); - $data['page_title'] = $data['country']->name. ' Zones'; + $data['page_title'] = sprintf(lang('country_zones'), $data['country']->name); $this->load->view($this->config->item('admin_folder').'/country_zones', $data); } @@ -184,7 +170,7 @@ function zone_form($id = false) $this->form_validation->set_error_delimiters('
              ', '
              '); $data['countries'] = $this->Location_model->get_countries(); - $data['page_title'] = 'Add Zone'; + $data['page_title'] = lang('zone_form'); //default values are empty if the product is new $data['id'] = ''; @@ -201,20 +187,18 @@ function zone_form($id = false) //if the country does not exist, redirect them to the country list with an error if (!$zone) { - $this->session->set_flashdata('message', 'The requested zone could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_not_found')); redirect($this->config->item('admin_folder').'/locations'); } - //set title to edit if we have an ID - $data['page_title'] = 'Edit Zone'; $data = array_merge($data, $zone); } $this->form_validation->set_rules('country_id', 'Country ID', 'trim|required'); - $this->form_validation->set_rules('name', 'Name', 'trim|required'); - $this->form_validation->set_rules('code', 'Code', 'trim|required'); - $this->form_validation->set_rules('tax', 'Tax', 'trim|numeric'); - $this->form_validation->set_rules('status', 'Status', 'trim'); + $this->form_validation->set_rules('name', 'lang:name', 'trim|required'); + $this->form_validation->set_rules('code', 'lang:code', 'trim|required'); + $this->form_validation->set_rules('tax', 'lang:tax', 'trim|numeric'); + $this->form_validation->set_rules('status', 'lang:status', 'trim'); if ($this->form_validation->run() == FALSE) { @@ -231,16 +215,7 @@ function zone_form($id = false) $this->Location_model->save_zone($save); - // We're done - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('name').'" zone has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('name').'" zone has been updated.'); - } - + $this->session->set_flashdata('message', lang('message_zone_saved')); //go back to the product list redirect($this->config->item('admin_folder').'/locations/zones/'.$save['country_id']); } @@ -263,7 +238,7 @@ function zone_areas($id) $data['zone'] = $this->Location_model->get_zone($id); $data['areas'] = $this->Location_model->get_zone_areas($id); - $data['page_title'] = 'Zone Areas for '.$data['zone']->name; + $data['page_title'] = sprintf(lang('zone_areas_for'), $data['zone']->name); $this->load->view($this->config->item('admin_folder').'/country_zone_areas', $data); } @@ -276,21 +251,21 @@ function delete_zone_area($id = false) //if the promo does not exist, redirect them to the customer list with an error if (!$location) { - $this->session->set_flashdata('message', 'The requested Zone Area could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_area_not_found')); redirect($this->config->item('admin_folder').'/locations'); } else { $this->Location_model->delete_zone_area($id); - $this->session->set_flashdata('message', 'The "'.$location->code.'" Zone Area has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_deleted_zone_area')); redirect($this->config->item('admin_folder').'/locations/zone_areas/'.$location->zone_id); } } else { //if they do not provide an id send them to the promo list page with an error - $this->session->set_flashdata('message', 'The requested Zone Area could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_area_not_found')); redirect($this->config->item('admin_folder').'/locations/'); } } @@ -303,7 +278,7 @@ function zone_area_form($zone_id, $area_id =false) $this->form_validation->set_error_delimiters('
              ', '
              '); $zone = $this->Location_model->get_zone($zone_id); - $data['page_title'] = 'Add Zone Area to '.$zone->name; + $data['page_title'] = sprintf(lang('zone_area_form'), $zone->name); //default values are empty if the product is new $data['id'] = ''; @@ -318,17 +293,15 @@ function zone_area_form($zone_id, $area_id =false) //if the country does not exist, redirect them to the country list with an error if (!$area) { - $this->session->set_flashdata('message', 'The requested zone area could not be found.'); + $this->session->set_flashdata('error', lang('error_zone_area_not_found')); redirect($this->config->item('admin_folder').'/locations/zone_areas/'.$zone_id); } - //set title to edit if we have an ID - $data['page_title'] = 'Edit Zone Area'; $data = array_merge($data, $area); } - $this->form_validation->set_rules('code', 'Code', 'trim|required'); - $this->form_validation->set_rules('tax', 'Tax', 'trim|numeric'); + $this->form_validation->set_rules('code', 'lang:code', 'trim|required'); + $this->form_validation->set_rules('tax', 'lang:tax', 'trim|numeric'); if ($this->form_validation->run() == FALSE) { @@ -343,15 +316,7 @@ function zone_area_form($zone_id, $area_id =false) $this->Location_model->save_zone_area($save); - // We're done - if (!$area_id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('code').'" zone area has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('code').'" zone area has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_zone_area')); //go back to the product list redirect($this->config->item('admin_folder').'/locations/zone_areas/'.$save['zone_id']); diff --git a/gocart/controllers/admin/login.php b/gocart/controllers/admin/login.php index 57f0f136..48199f98 100644 --- a/gocart/controllers/admin/login.php +++ b/gocart/controllers/admin/login.php @@ -9,6 +9,7 @@ function __construct() force_ssl(); $this->load->library('Auth'); + $this->lang->load('login'); } function index() @@ -45,7 +46,7 @@ function index() { //this adds the redirect back to flash data if they provide an incorrect credentials $this->session->set_flashdata('redirect', $redirect); - $this->session->set_flashdata('message', 'Authentication Failed'); + $this->session->set_flashdata('error', lang('error_authentication_failed')); redirect($this->config->item('admin_folder').'/login'); } } @@ -57,7 +58,7 @@ function logout() $this->auth->logout(); //when someone logs out, automatically redirect them to the login page. - $this->session->set_flashdata('message', 'You have been logged out.'); + $this->session->set_flashdata('message', lang('message_logged_out')); redirect($this->config->item('admin_folder').'/login'); } diff --git a/gocart/controllers/admin/orders.php b/gocart/controllers/admin/orders.php index 08ff5b8a..60d7d4cb 100644 --- a/gocart/controllers/admin/orders.php +++ b/gocart/controllers/admin/orders.php @@ -1,19 +1,17 @@ load->library('Auth'); + remove_ssl(); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); - $this->load->model('Order_model'); $this->load->model('Search_model'); $this->load->model('location_model'); $this->load->helper(array('formatting', 'utility')); + $this->lang->load('order'); } function index($sort_by='order_number',$sortorder='desc', $code=0, $page=0, $rows=15) @@ -21,7 +19,7 @@ function index($sort_by='order_number',$sortorder='desc', $code=0, $page=0, $row $this->load->helper('form'); $this->load->helper('date'); $data['message'] = $this->session->flashdata('message'); - $data['page_title'] = 'Orders'; + $data['page_title'] = lang('orders'); $data['code'] = $code; $term = false; @@ -84,8 +82,8 @@ function view($id) $this->load->library('form_validation'); $this->load->model('Gift_card_model'); - $this->form_validation->set_rules('notes', 'Notes'); - $this->form_validation->set_rules('status', 'Status', 'required'); + $this->form_validation->set_rules('notes', 'lang:notes'); + $this->form_validation->set_rules('status', 'lang:status', 'required'); if ($this->form_validation->run() == TRUE) { $save = array(); @@ -93,12 +91,12 @@ function view($id) $save['notes'] = $this->input->post('notes'); $save['status'] = $this->input->post('status'); - $data['message'] ='The order has been updated!'; + $data['message'] = lang('message_order_updated'); $this->Order_model->save_order($save); } //get the order information, this way if something was posted before the new one gets queried here - $data['page_title'] = 'View Order'; + $data['page_title'] = lang('view_order'); $data['order'] = $this->Order_model->get_order($id); // we need to see if any items are gift cards, so we can generate an activation link @@ -108,9 +106,9 @@ function view($id) { if($this->Gift_card_model->is_active($product['code'])) { - $data['order']->contents[$orderkey]['gc_status'] = '[ Gift Card is Active ]'; + $data['order']->contents[$orderkey]['gc_status'] = '[ '.lang('giftcard_is_active').' ]'; } else { - $data['order']->contents[$orderkey]['gc_status'] = ' [ Activate ]'; + $data['order']->contents[$orderkey]['gc_status'] = ' [ '.lang('activate').' ]'; } } } @@ -207,11 +205,11 @@ function bulk_delete() { $this->Order_model->delete($order); } - $this->session->set_flashdata('message', 'The selected orders have been deleted.'); + $this->session->set_flashdata('message', lang('message_orders_deleted')); } else { - $this->session->set_flashdata('error', 'You did not select any orders to delete.'); + $this->session->set_flashdata('error', lang('error_no_orders_selected')); } //redirect as to change the url redirect($this->config->item('admin_folder').'/orders'); diff --git a/gocart/controllers/admin/pages.php b/gocart/controllers/admin/pages.php index e8e295b7..4edef836 100644 --- a/gocart/controllers/admin/pages.php +++ b/gocart/controllers/admin/pages.php @@ -1,5 +1,5 @@ load->library('Auth'); - $this->auth->is_logged_in(uri_string()); $this->auth->check_access('Admin', true); - $this->load->model('Page_model'); + $this->lang->load('page'); } function index() { - $data['page_title'] = 'Page Administration'; + $data['page_title'] = lang('pages'); $data['pages'] = $this->Page_model->get_pages(); @@ -44,20 +42,18 @@ function form($id = false) $data['seo_title'] = ''; $data['meta'] = ''; - $data['page_title'] = 'Add Page'; + $data['page_title'] = lang('page_form'); $data['pages'] = $this->Page_model->get_pages(); if($id) { - //set the page title to edit page - $data['page_title'] = 'Edit Page'; $page = $this->Page_model->get_page($id); if(!$page) { //page does not exist - $this->session->set_flashdata('message', 'The requested page could not be found.'); + $this->session->set_flashdata('error', lang('error_page_not_found')); redirect($this->config->item('admin_folder').'/pages'); } @@ -74,14 +70,14 @@ function form($id = false) $data['slug'] = $page->slug; } - $this->form_validation->set_rules('title', 'Title', 'trim|required'); - $this->form_validation->set_rules('menu_title', 'Menu Title', 'trim'); - $this->form_validation->set_rules('slug', 'slug', 'trim'); - $this->form_validation->set_rules('seo_title', 'SEO Title', 'trim'); - $this->form_validation->set_rules('meta', 'Meta', 'trim'); - $this->form_validation->set_rules('sequence', 'sequence', 'trim|integer'); - $this->form_validation->set_rules('parent_id', 'parent_id', 'trim|integer'); - $this->form_validation->set_rules('content', 'Content', 'trim'); + $this->form_validation->set_rules('title', 'lang:title', 'trim|required'); + $this->form_validation->set_rules('menu_title', 'lang:menu_title', 'trim'); + $this->form_validation->set_rules('slug', 'lang:slug', 'trim'); + $this->form_validation->set_rules('seo_title', 'lang:seo_title', 'trim'); + $this->form_validation->set_rules('meta', 'lang:meta', 'trim'); + $this->form_validation->set_rules('sequence', 'lang:sequence', 'trim|integer'); + $this->form_validation->set_rules('parent_id', 'lang:parent_id', 'trim|integer'); + $this->form_validation->set_rules('content', 'lang:content', 'trim'); // Validate the form if($this->form_validation->run() == false) @@ -144,15 +140,7 @@ function form($id = false) $this->Routes_model->save($route); - //set the message accordingly - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('title').'" page has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('title').'" page has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_page')); //go back to the page list redirect($this->config->item('admin_folder').'/pages'); @@ -175,19 +163,16 @@ function link_form($id = false) $data['parent_id'] = 0; - $data['page_title'] = 'Add Link'; + $data['page_title'] = lang('link_form'); $data['pages'] = $this->Page_model->get_pages(); if($id) { - //set the page title to edit page - $data['page_title'] = 'Edit Link'; - $page = $this->Page_model->get_page($id); if(!$page) { //page does not exist - $this->session->set_flashdata('message', 'The requested link could not be found.'); + $this->session->set_flashdata('error', lang('error_link_not_found')); redirect($this->config->item('admin_folder').'/pages'); } @@ -201,11 +186,11 @@ function link_form($id = false) $data['sequence'] = $page->sequence; } - $this->form_validation->set_rules('title', 'Title', 'trim|required'); - $this->form_validation->set_rules('url', 'URL', 'trim|required'); - $this->form_validation->set_rules('sequence', 'sequence', 'trim|integer'); - $this->form_validation->set_rules('new_window', 'New Window', 'trim|integer'); - $this->form_validation->set_rules('parent_id', 'Parent', 'trim|integer'); + $this->form_validation->set_rules('title', 'lang:title', 'trim|required'); + $this->form_validation->set_rules('url', 'lang:url', 'trim|required'); + $this->form_validation->set_rules('sequence', 'lang:sequence', 'trim|integer'); + $this->form_validation->set_rules('new_window', 'lang:new_window', 'trim|integer'); + $this->form_validation->set_rules('parent_id', 'lang:parent_id', 'trim|integer'); // Validate the form if($this->form_validation->run() == false) @@ -226,15 +211,7 @@ function link_form($id = false) //save the page $this->Page_model->save($save); - //set the message accordingly - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('title').'" link has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('title').'" link has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_link')); //go back to the page list redirect($this->config->item('admin_folder').'/pages'); @@ -255,11 +232,11 @@ function delete($id) $this->Routes_model->delete($page->route_id); $this->Page_model->delete_page($id); - $this->session->set_flashdata('message', 'The page has been deleted.'); + $this->session->set_flashdata('message', lang('message_deleted_page')); } else { - $this->session->set_flashdata('error', 'The requested page could not be found.'); + $this->session->set_flashdata('error', lang('error_page_not_found')); } redirect($this->config->item('admin_folder').'/pages'); diff --git a/gocart/controllers/admin/payment.php b/gocart/controllers/admin/payment.php index a825bc04..12e01b36 100644 --- a/gocart/controllers/admin/payment.php +++ b/gocart/controllers/admin/payment.php @@ -1,18 +1,17 @@ load->library('Auth'); + $this->auth->check_access('Admin', true); $this->load->model('Settings_model'); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + + $this->lang->load('settings'); } function index() @@ -62,7 +61,7 @@ function settings($module) $check = $this->$module->check(); if(!$check) { - $this->session->set_flashdata('message', $module.' settings have been updated'); + $this->session->set_flashdata('message', sprintf(lang('settings_updated'), $module)); redirect($this->config->item('admin_folder').'/payment'); } else @@ -82,7 +81,7 @@ function settings($module) $data['form'] = $this->$module->form(); } $data['module'] = $module; - $data['page_title'] = '"'.$module.'" Payment Settings'; + $data['page_title'] = sprintf(lang('payment_settings'), $module); $this->load->view($this->config->item('admin_folder').'/payment_module_settings', $data); } } diff --git a/gocart/controllers/admin/products.php b/gocart/controllers/admin/products.php index bcf1996b..7c33efdc 100644 --- a/gocart/controllers/admin/products.php +++ b/gocart/controllers/admin/products.php @@ -1,23 +1,23 @@ load->library('Auth'); + $this->auth->check_access('Admin', true); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); $this->load->model('Product_model'); $this->load->helper('form'); + + $this->lang->load('product'); } function index() { - $data['page_title'] = 'Products'; + $data['page_title'] = lang('products'); $data['products'] = $this->Product_model->get_products(); $this->load->view($this->config->item('admin_folder').'/products', $data); @@ -33,7 +33,7 @@ function bulk_save() $this->Product_model->save($product); } - $this->session->set_flashdata('message', 'Your products have been updated'); + $this->session->set_flashdata('message', lang('message_bulk_update')); redirect($this->config->item('admin_folder').'/products'); } @@ -47,7 +47,7 @@ function form($id = false, $duplicate = false) $data['categories'] = $this->Category_model->get_categories_tierd(); $data['product_list'] = $this->Product_model->get_products(); - $data['page_title'] = 'Add Product'; + $data['page_title'] = lang('product_form'); //default values are empty if the product is new $data['id'] = ''; @@ -77,20 +77,13 @@ function form($id = false, $duplicate = false) //if the product does not exist, redirect them to the product list with an error if (!$product) { - $this->session->set_flashdata('error', 'The requested product could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/products'); } //helps us with the slug generation $this->product_name = $this->input->post('slug', $product->slug); - - //if we're duplicating the product, then this should not be set - if(!$duplicate) - { - $data['page_title'] = 'Edit Product'; - } - //set values to db values $data['id'] = $id; $data['sku'] = $product->sku; @@ -128,17 +121,17 @@ function form($id = false, $duplicate = false) $this->form_validation->set_rules('caption', 'Caption'); $this->form_validation->set_rules('primary_photo', 'Primary'); - $this->form_validation->set_rules('sku', 'SKU', 'trim'); - $this->form_validation->set_rules('seo_title', 'SEO Title', 'trim'); - $this->form_validation->set_rules('meta', 'Meta Data', 'trim'); - $this->form_validation->set_rules('name', 'Name', 'trim|required|max_length[64]'); - $this->form_validation->set_rules('slug', 'slug', 'trim'); - $this->form_validation->set_rules('description', 'Description', 'trim'); - $this->form_validation->set_rules('excerpt', 'Excerpt', 'trim'); - $this->form_validation->set_rules('price', 'Price', 'trim|numeric'); - $this->form_validation->set_rules('saleprice', 'Sale Price', 'trim|numeric'); - $this->form_validation->set_rules('weight', 'Weight', 'trim|numeric'); - $this->form_validation->set_rules('in_stock', 'In Stock', 'trim|numeric'); + $this->form_validation->set_rules('sku', 'lang:sku', 'trim'); + $this->form_validation->set_rules('seo_title', 'lang:seo_title', 'trim'); + $this->form_validation->set_rules('meta', 'lang:meta_data', 'trim'); + $this->form_validation->set_rules('name', 'lang:name', 'trim|required|max_length[64]'); + $this->form_validation->set_rules('slug', 'lang:slug', 'trim'); + $this->form_validation->set_rules('description', 'lang:description', 'trim'); + $this->form_validation->set_rules('excerpt', 'lang:excerpt', 'trim'); + $this->form_validation->set_rules('price', 'lang:price', 'trim|numeric'); + $this->form_validation->set_rules('saleprice', 'lang:saleprice', 'trim|numeric'); + $this->form_validation->set_rules('weight', 'lang:weight', 'trim|numeric'); + $this->form_validation->set_rules('in_stock', 'lang:in_stock', 'trim|numeric'); /* if we've posted already, get the photo stuff and organize it @@ -261,14 +254,7 @@ function form($id = false, $duplicate = false) $this->Routes_model->save($route); - if (!$id) - { - $this->session->set_flashdata('message', 'The "'.$this->input->post('name').'" product has been added.'); - } - else - { - $this->session->set_flashdata('message', 'Information for the "'.$this->input->post('name').'" product has been updated.'); - } + $this->session->set_flashdata('message', lang('message_saved_product')); //go back to the product list redirect($this->config->item('admin_folder').'/products'); @@ -303,13 +289,13 @@ function product_image_upload() /* I find that ImageMagick is more efficient that GD2 but not everyone has it - if your server has ImageMagick then change out the line + if your server has ImageMagick then you can change out the line $config['image_library'] = 'gd2'; with - $config['library_path'] = '/usr/bin/convert'; + $config['library_path'] = '/usr/bin/convert'; //make sure you use the correct path to ImageMagic $config['image_library'] = 'ImageMagick'; */ @@ -364,7 +350,7 @@ function delete($id = false) //if the product does not exist, redirect them to the customer list with an error if (!$product) { - $this->session->set_flashdata('message', 'The requested product could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/products'); } else @@ -375,16 +361,16 @@ function delete($id = false) $this->Routes_model->remove('('.$product->slug.')'); //if the product is legit, delete them - $delete = $this->Product_model->delete_product($id); + $this->Product_model->delete_product($id); - $this->session->set_flashdata('message', 'The "'.$product->name.'" product has been deleted from the system.'); + $this->session->set_flashdata('message', lang('message_deleted_product')); redirect($this->config->item('admin_folder').'/products'); } } else { //if they do not provide an id send them to the product list page with an error - $this->session->set_flashdata('message', 'The requested product could not be found.'); + $this->session->set_flashdata('error', lang('error_not_found')); redirect($this->config->item('admin_folder').'/products'); } } diff --git a/gocart/controllers/admin/reports.php b/gocart/controllers/admin/reports.php index 8d002691..6e0a2168 100644 --- a/gocart/controllers/admin/reports.php +++ b/gocart/controllers/admin/reports.php @@ -1,6 +1,6 @@ load->library('Auth'); + $this->auth->check_access('Admin', true); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); $this->load->model('Order_model'); $this->load->model('Search_model'); $this->load->helper(array('formatting', 'utility')); + + $this->lang->load('report'); } function index() @@ -27,7 +27,7 @@ function index() { $data['orders'][] = $this->Order_model->get_items($o->id); } - $data['page_title'] = 'Reports'; + $data['page_title'] = lang('reports'); $this->load->view($this->config->item('admin_folder').'/reports', $data); } diff --git a/gocart/controllers/admin/settings.php b/gocart/controllers/admin/settings.php index 805493b0..8c05fbdb 100644 --- a/gocart/controllers/admin/settings.php +++ b/gocart/controllers/admin/settings.php @@ -1,18 +1,16 @@ load->library('Auth'); + $this->auth->check_access('Admin', true); $this->load->model('Settings_model'); $this->load->model('Messages_model'); - - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('settings'); } function index() @@ -72,13 +70,13 @@ function index() $data['canned_messages'] = $this->Messages_model->get_list(); - $data['page_title'] = 'Settings'; + $data['page_title'] = lang('settings'); $this->load->view($this->config->item('admin_folder').'/settings', $data); } function canned_message_form($id=false) { - $data['page_title'] = 'Add Canned Message'; + $data['page_title'] = lang('canned_message_form'); $data['id'] = $id; $data['name'] = ''; @@ -88,7 +86,6 @@ function canned_message_form($id=false) if($id) { - $data['page_title'] = 'Edit Canned Message'; $message = $this->Messages_model->get_message($id); $data['name'] = $message['name']; @@ -100,9 +97,9 @@ function canned_message_form($id=false) $this->load->helper('form'); $this->load->library('form_validation'); - $this->form_validation->set_rules('name', 'Message name', 'trim|required|max_length[50]'); - $this->form_validation->set_rules('subject', 'Subject', 'trim|required|max_length[100]'); - $this->form_validation->set_rules('content', 'Message Content', 'trim|required'); + $this->form_validation->set_rules('name', 'lang:message_name', 'trim|required|max_length[50]'); + $this->form_validation->set_rules('subject', 'lang:subject', 'trim|required|max_length[100]'); + $this->form_validation->set_rules('content', 'lang:message_content', 'trim|required'); if ($this->form_validation->run() == FALSE) { @@ -120,7 +117,7 @@ function canned_message_form($id=false) $this->Messages_model->save_message($save); - $this->session->set_flashdata('message', 'Your message has been saved.'); + $this->session->set_flashdata('message', lang('message_saved_message')); redirect($this->config->item('admin_folder').'/settings'); } } @@ -128,6 +125,8 @@ function canned_message_form($id=false) function delete_message($id) { $this->Messages_model->delete_message($id); + + $this->session->set_flashdata('message', lang('message_deleted_message')); redirect($this->config->item('admin_folder').'/settings'); } } \ No newline at end of file diff --git a/gocart/controllers/admin/shipping.php b/gocart/controllers/admin/shipping.php index cab6cd49..bd1980a8 100644 --- a/gocart/controllers/admin/shipping.php +++ b/gocart/controllers/admin/shipping.php @@ -1,17 +1,15 @@ load->library('Auth'); + $this->auth->check_access('Admin', true); - //$this->load->helper('Shipping'); $this->load->model('Settings_model'); - //this adds the redirect url to our flash data, incase they are not logged in - $this->auth->is_logged_in(uri_string()); + $this->lang->load('settings'); } function index() @@ -61,7 +59,7 @@ function settings($module) $check = $this->$module->check(); if(!$check) { - $this->session->set_flashdata('message', $module.' settings have been updated'); + $this->session->set_flashdata('message', sprintf(lang('settings_updated'), $module)); redirect($this->config->item('admin_folder').'/shipping'); } else @@ -81,7 +79,7 @@ function settings($module) $data['form'] = $this->$module->form(); } $data['module'] = $module; - $data['page_title'] = '"'.$module.'" Shipping Settings'; + $data['page_title'] = sprintf(lang('shipping_settings'), $module); $this->load->view($this->config->item('admin_folder').'/shipping_module_settings', $data); } } diff --git a/gocart/language/english/admin_common_lang.php b/gocart/language/english/admin_common_lang.php new file mode 100755 index 00000000..0e93f9d5 --- /dev/null +++ b/gocart/language/english/admin_common_lang.php @@ -0,0 +1,37 @@ +You did not select a file to upload.

              '; //important. This must match the same error as generated by the file upload script of your language. +$lang['message_delete_category'] = 'The category has been deleted.'; +$lang['current_file'] = 'Current File'; +$lang['confirm_delete_category'] = 'Are you sure you want to delete this category?'; +$lang['add_new_category'] = 'Add New Category'; +$lang['no_categories'] = 'There are currently no categories'; +$lang['attributes'] = 'Attributes'; +$lang['seo'] = 'SEO'; +$lang['parent'] = 'Parent'; +$lang['meta_data_description'] = 'ex. <meta name="description" content="We sell products that help you" />'; +$lang['drag_and_drop'] = 'Drag and drop the products in the order you would like them to appear.'; +$lang['sku'] = 'SKU'; +$lang['price'] = 'Price'; +$lang['sale'] = 'Sale'; \ No newline at end of file diff --git a/gocart/language/english/coupon_lang.php b/gocart/language/english/coupon_lang.php new file mode 100755 index 00000000..9998d543 --- /dev/null +++ b/gocart/language/english/coupon_lang.php @@ -0,0 +1,36 @@ +(http:// is required!)
              '; +$lang['menu_title'] = 'Menu Title'; +$lang['slug'] = 'Slug'; +$lang['seo_title'] = 'SEO Title'; +$lang['meta'] = 'Meta Data'; +$lang['sequence'] = 'Sequence'; +$lang['parent_id'] = 'Parent'; +$lang['new_window'] = 'New Window'; +$lang['open_in_new_window'] = 'Open this link in a new window'; +$lang['content'] = 'Content'; +$lang['top_level'] = 'Top Level'; +$lang['follow_link'] = 'Follow Link'; +$lang['go_to_page'] = 'Go to Page'; + +$lang['no_pages_or_links'] = 'There are currently no pages or links.'; +$lang['error_page_not_found'] = 'The request page could not be found.'; +$lang['error_link_not_found'] = 'The request link could not be found.'; +$lang['message_saved_page'] = 'The page has been saved.'; +$lang['message_saved_link'] = 'The link has been saved.'; +$lang['message_deleted_page'] = 'The page has been deleted.'; +$lang['message_deleted_link'] = 'The link has been deleted.'; +$lang['confirm_delete'] = 'Are you sure you want to delete this page/link?'; diff --git a/gocart/language/english/product_lang.php b/gocart/language/english/product_lang.php new file mode 100755 index 00000000..f360d547 --- /dev/null +++ b/gocart/language/english/product_lang.php @@ -0,0 +1,76 @@ +config->item('admin_folder').'/admin/form/'.$id); ?>
              - +
              @@ -47,7 +47,7 @@
              - + 'password', 'name'=>'password', 'class'=>'gc_tf1'); echo form_password($data); @@ -55,7 +55,7 @@
              - + 'confirm', 'name'=>'confirm', 'class'=>'gc_tf1'); echo form_password($data); diff --git a/gocart/views/admin/admins.php b/gocart/views/admin/admins.php index 3c856326..8b345e2b 100644 --- a/gocart/views/admin/admins.php +++ b/gocart/views/admin/admins.php @@ -2,7 +2,7 @@ @@ -32,9 +32,9 @@ function areyousure() $current_admin = $this->session->userdata('admin'); $margin = 30; if ($current_admin['id'] != $admin->id): ?> - + - + diff --git a/gocart/views/admin/banners.php b/gocart/views/admin/banners.php index baae880d..a19ea641 100755 --- a/gocart/views/admin/banners.php +++ b/gocart/views/admin/banners.php @@ -51,13 +51,13 @@ function areyousure() - - - + + + - ':''?> + ':''?> diff --git a/gocart/views/admin/box_form.php b/gocart/views/admin/box_form.php index d79de042..9358770c 100644 --- a/gocart/views/admin/box_form.php +++ b/gocart/views/admin/box_form.php @@ -22,37 +22,37 @@
              - +
              - +
              - +
              - +
              - +
              - + -
              current
              +
              current
              diff --git a/gocart/views/admin/boxes.php b/gocart/views/admin/boxes.php index 6925f051..bdd4aaab 100755 --- a/gocart/views/admin/boxes.php +++ b/gocart/views/admin/boxes.php @@ -50,13 +50,13 @@ function areyousure()
              '.lang('message_no_banners').'
              '.lang('no_banners').'
              - - + +
              - - - + + + - ':''?> + ':''?> @@ -102,8 +102,8 @@ function areyousure() diff --git a/gocart/views/admin/canned_message_form.php b/gocart/views/admin/canned_message_form.php index 0b801a3f..54f9fa1e 100644 --- a/gocart/views/admin/canned_message_form.php +++ b/gocart/views/admin/canned_message_form.php @@ -3,21 +3,21 @@ config->item('admin_folder').'/settings/canned_message_form/'.$id); ?>
              - +
              - + style=" background-color:#f2f2f2;" readonly="readonly" />
              - +
              diff --git a/gocart/views/admin/categories.php b/gocart/views/admin/categories.php index 2d0e0a91..8234990b 100644 --- a/gocart/views/admin/categories.php +++ b/gocart/views/admin/categories.php @@ -2,24 +2,24 @@
              '.lang('message_no_boxes').'
              '.lang('no_boxes').'
              - - + +
              - - + + - ':''?> + ':''?> config->item('admin_folder')); function list_categories($cats, $sub='') { @@ -29,11 +29,11 @@ function list_categories($cats, $sub='') { config->item('admin_folder').'/categories/form/'.$id); ?>
              - +
              @@ -27,20 +27,20 @@ ?>
              - +
              - + 'slug', 'name'=>'slug', 'value'=>set_value('slug', $slug), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'sequence', 'name'=>'sequence', 'value'=>set_value('sequence', $sequence), 'class'=>'gc_tf1'); echo form_input($data); @@ -48,7 +48,7 @@
              - + 'Top Level Category'); foreach($categories as $parent) @@ -62,7 +62,7 @@ ?>
              - + 'excerpt', 'name'=>'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'gc_tf1'); echo form_textarea($data); @@ -70,10 +70,10 @@
              - Max Size config->item('size_limit')/1024; ?>kb + config->item('size_limit')/1024; ?>kb 'image', 'id'=>'image'));?>
              -
              current
              Current File
              +
              current
              @@ -81,7 +81,7 @@
              - + 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); echo form_input($data); @@ -89,7 +89,7 @@
              - ex. <meta name="description" content="We sell products that help you" /> + 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); echo form_textarea($data); diff --git a/gocart/views/admin/countries.php b/gocart/views/admin/countries.php index f4f16d4d..601024f8 100644 --- a/gocart/views/admin/countries.php +++ b/gocart/views/admin/countries.php @@ -36,25 +36,25 @@ function save_sortable() } function areyousure() { - return confirm('Are you sure you want to delete this Country?'); + return confirm(''); } //]]>
              - Countries are sortable! Just drag and drop them in the order you would like for them to appear. - Add New Country - Add New Zone + + +

              IDName
              There are currently no categories.
              '.lang('message_no_categories').'
              id; ?> name; ?> - Delete + - Edit + - Organize +
              - - - - - + + + + + @@ -67,9 +67,9 @@ function areyousure() diff --git a/gocart/views/admin/country_form.php b/gocart/views/admin/country_form.php index 7ab24e02..d2f138ae 100644 --- a/gocart/views/admin/country_form.php +++ b/gocart/views/admin/country_form.php @@ -3,17 +3,17 @@ config->item('admin_folder').'/locations/country_form/'.$id); ?>
              - +
              - + 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'gc_tf1'); echo form_input($data); @@ -21,21 +21,21 @@
              - + 'iso_code_2', 'maxlength'=>'2', 'value'=>set_value('iso_code_2', $iso_code_2), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'iso_code_3', 'maxlength'=>'3', 'value'=>set_value('iso_code_3', $iso_code_3), 'class'=>'gc_tf1'); echo form_input($data); ?>
              -
              +
              'address_format', 'value'=>set_value('address_format', $address_format), 'class'=>'gc_tf1'); echo form_textarea($data); @@ -43,10 +43,10 @@
              'postcode_required', 'value'=>1, 'checked'=>set_checkbox('postcode_required', 1, (bool)$postcode_required));?> - +
              - + 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); echo form_input($data); @@ -54,7 +54,7 @@
              'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status));?> - +
              diff --git a/gocart/views/admin/country_zone_area_form.php b/gocart/views/admin/country_zone_area_form.php index 82ba0297..8d35bcf9 100644 --- a/gocart/views/admin/country_zone_area_form.php +++ b/gocart/views/admin/country_zone_area_form.php @@ -3,24 +3,24 @@ config->item('admin_folder').'/locations/zone_area_form/'.$zone_id.'/'.$id); ?>
              - +
              - + 'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); echo form_input($data); diff --git a/gocart/views/admin/country_zone_areas.php b/gocart/views/admin/country_zone_areas.php index 04eba1ad..02143d32 100644 --- a/gocart/views/admin/country_zone_areas.php +++ b/gocart/views/admin/country_zone_areas.php @@ -2,21 +2,21 @@
              NameISO 2ISO 3Tax RateStatus
              tax+0;?>% status)?'enabled':'disabled';?> - Delete - Edit - Zones + + +
              - - + + @@ -26,15 +26,15 @@ function areyousure() diff --git a/gocart/views/admin/country_zone_form.php b/gocart/views/admin/country_zone_form.php index ae20474a..eb23c91d 100644 --- a/gocart/views/admin/country_zone_form.php +++ b/gocart/views/admin/country_zone_form.php @@ -3,18 +3,18 @@ config->item('admin_folder').'/locations/zone_form/'.$id); ?>
              - +
              - +
              - + 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'gc_tf1'); echo form_input($data); @@ -35,14 +35,14 @@
              - + 'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); echo form_input($data); @@ -50,7 +50,7 @@
              'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status), 'class="gc_tf1"');?> - +
              diff --git a/gocart/views/admin/country_zones.php b/gocart/views/admin/country_zones.php index 16eda8e0..4a63f36b 100644 --- a/gocart/views/admin/country_zones.php +++ b/gocart/views/admin/country_zones.php @@ -2,22 +2,22 @@
              CodeTax Rate
              code; ?> tax+0;?>% - Delete - Edit + +
              - There are no Zone Areas for the requested Zone. Would you like to add a new Zone Area? +
              - - - - + + + + @@ -29,9 +29,9 @@ function areyousure() diff --git a/gocart/views/admin/coupon_form.php b/gocart/views/admin/coupon_form.php index 9d31f4ef..eab438ec 100644 --- a/gocart/views/admin/coupon_form.php +++ b/gocart/views/admin/coupon_form.php @@ -13,13 +13,13 @@
              - + 'code', 'name'=>'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); echo form_input($data); @@ -27,27 +27,27 @@
              - +
              - + 'max_uses', 'name'=>'max_uses', 'value'=>set_value('max_uses', $max_uses), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'max_product_instances', 'value'=>set_value('max_product_instances', $max_product_instances), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'datepicker1', 'value'=>set_value('start_date', reverse_format($start_date)), 'class'=>'gc_tf1'); echo form_input($data); @@ -55,7 +55,7 @@
              - + 'datepicker2', 'value'=>set_value('end_date', reverse_format($end_date)), 'class'=>'gc_tf1'); echo form_input($data); @@ -63,35 +63,35 @@
              - + 'Price Discount', - 'shipping' => 'FREE Shipping' + 'price' => lang('price_discount'), + 'shipping' => lang('free_shipping') ); echo form_dropdown('reduction_target', $options, $reduction_target, 'id="gc_coupon_type"'); ?>
              - + 'reduction_amount', 'name'=>'reduction_amount', 'value'=>set_value('reduction_amount', $reduction_amount), 'class'=>'gc_tf1'); echo form_input($data); $options = array( 'percent' => '%', - 'fixed' => '$' + 'fixed' => $this->config->item('currency_symbol') ); echo ' '.form_dropdown('reduction_type', $options, $reduction_type); ?>
              -
              +
              'Apply Coupon to Whole Order', - '0' => 'Apply Coupon to Select Products' + '1' => lang('apply_to_whole_order'), + '0' => lang('apply_to_select_items') ); echo form_dropdown('whole_order_coupon', $options, set_value(0, $whole_order_coupon), 'id="gc_coupon_appliesto_fields"'); ?> diff --git a/gocart/views/admin/coupons.php b/gocart/views/admin/coupons.php index 0d85eeb2..5a5bf67d 100644 --- a/gocart/views/admin/coupons.php +++ b/gocart/views/admin/coupons.php @@ -2,23 +2,23 @@
              NameCodeTax RateStatus
              tax+0;?>% status)?'enabled':'disabled';?> - Delete - Edit - Zone Areas + + +
              - - + + - ':''?> + ':''?> @@ -26,8 +26,8 @@ function areyousure() num_uses ." / ". $coupon->max_uses; ?> diff --git a/gocart/views/admin/customer_address_form.php b/gocart/views/admin/customer_address_form.php index 5b0f515c..42681a79 100644 --- a/gocart/views/admin/customer_address_form.php +++ b/gocart/views/admin/customer_address_form.php @@ -12,66 +12,66 @@ config->item('admin_folder').'/customers/address_form/'.$customer_id.'/'.$id);?>
              - +
              - Company
              +
              - First Name
              +
              - Last Name
              +
              - Email
              +
              - Phone
              +
              - Address
              +
              '.form_input($f_address2);?>
              - City
              +
              - Post Code
              +
              - Country
              +
              - State
              +
              diff --git a/gocart/views/admin/customer_addresses.php b/gocart/views/admin/customer_addresses.php index 85b1e2e4..5dcbf487 100644 --- a/gocart/views/admin/customer_addresses.php +++ b/gocart/views/admin/customer_addresses.php @@ -2,25 +2,25 @@
              CodeUsage
              There are currently no coupons.
              '.lang('no_coupons').'
              code; ?> - Delete - Edit + +
              - - - - - + + + + + - ':''?> + ':''?> @@ -47,8 +47,8 @@ function areyousure() diff --git a/gocart/views/admin/customer_form.php b/gocart/views/admin/customer_form.php index 7fdd4cce..50352f19 100644 --- a/gocart/views/admin/customer_form.php +++ b/gocart/views/admin/customer_form.php @@ -2,12 +2,12 @@ config->item('admin_folder').'/customers/form/'.$id); ?>
              - +
              @@ -16,9 +16,8 @@
              diff --git a/gocart/views/admin/customer_group_form.php b/gocart/views/admin/customer_group_form.php index bba8080a..f9dae5d5 100755 --- a/gocart/views/admin/customer_group_form.php +++ b/gocart/views/admin/customer_group_form.php @@ -10,31 +10,31 @@ ?>
              - +
              Name/CompanyContactAddressLocalityCountry/
              There are currently no addresses.
              '.lang('no_addresses').'
              - Delete - Edit + +
              - - + - + - + + ?> + - + + ?> + - + + ?> + - + + ?> + - + + ?> + - + - + + ?> + - - + +

              Personal Information

              Company 'company', 'name'=>'company', 'value'=>set_value('company', $company), 'class'=>'gc_tf1'); @@ -27,67 +26,73 @@
              First Name 'firstname', 'name'=>'firstname', 'value'=>set_value('firstname', $firstname), 'class'=>'gc_tf1'); echo form_input($data); ?>
              Last Name 'lastname', 'name'=>'lastname', 'value'=>set_value('lastname', $lastname), 'class'=>'gc_tf1'); echo form_input($data); - ?>
              Email 'email', 'name'=>'email', 'value'=>set_value('email', $email), 'class'=>'gc_tf1'); echo form_input($data); - ?>
              Phone Number 'phone', 'name'=>'phone', 'value'=>set_value('phone', $phone), 'class'=>'gc_tf1'); echo form_input($data); - ?>
              Password 'password', 'name'=>'password', 'class'=>'gc_tf1'); echo form_password($data); - ?>
              Confirm 'confirm', 'name'=>'confirm', 'class'=>'gc_tf1'); echo form_password($data); - ?>
              Email Subscribed checked="checked" />
              Active 'active', 'name'=>'active', 'value'=>1, 'checked'=>$active); echo form_checkbox($data); - ?>
              Group
              - + - + - + diff --git a/gocart/views/admin/customer_groups.php b/gocart/views/admin/customer_groups.php index bba7e306..4f2d5774 100755 --- a/gocart/views/admin/customer_groups.php +++ b/gocart/views/admin/customer_groups.php @@ -3,22 +3,22 @@
              Group Name:
              Price Adjust:
              Adjust Type
              - - - + + + @@ -35,22 +35,14 @@ function areyousure() id != 1) : ?> - Delete + - Edit + - - - - - + + - - - - -
              Group NameDiscountDiscount Type
              There are no groups
              diff --git a/gocart/views/admin/customer_subscriber_list.php b/gocart/views/admin/customer_subscriber_list.php new file mode 100644 index 00000000..fce96925 --- /dev/null +++ b/gocart/views/admin/customer_subscriber_list.php @@ -0,0 +1,10 @@ + function areyousure() { - return confirm('Are you sure you want to delete this user?'); + return confirm(''); } @@ -27,10 +27,10 @@ function areyousure() } ?> - - - - + + + + @@ -42,7 +42,7 @@ function areyousure() if($page_links != ''):?> - ':''?> + ':''?> id; ?>*/?> @@ -61,9 +61,9 @@ function areyousure() ?> - + @@ -37,9 +37,9 @@ ID uncomment this if you want it*/ ?> - - - + + + diff --git a/gocart/views/admin/giftcard_form.php b/gocart/views/admin/giftcard_form.php index d328c8fd..d14228be 100644 --- a/gocart/views/admin/giftcard_form.php +++ b/gocart/views/admin/giftcard_form.php @@ -2,45 +2,45 @@ config->item('admin_folder').'/giftcards/form/'); ?>
              - +
              - + 'to_name', 'name'=>'to_name', 'value'=>set_value('code'), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'to_email', 'name'=>'to_email', 'value'=>set_value('to_email'), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'send_notification', 'value'=>'true', 'class'=>'gc_tf1'); echo form_checkbox($data); ?>
              - + 'from', 'name'=>'from', 'value'=>set_value('from'), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'personal_message', 'value'=>set_value('personal_message'), 'class'=>'gc_tf1'); echo form_textarea($data); @@ -48,7 +48,7 @@
              - + 'beginning_amount', 'name'=>'beginning_amount', 'value'=>set_value('beginning_amount'), 'class'=>'gc_tf1'); echo form_input($data); diff --git a/gocart/views/admin/giftcards.php b/gocart/views/admin/giftcards.php index 08eb7992..94373e63 100644 --- a/gocart/views/admin/giftcards.php +++ b/gocart/views/admin/giftcards.php @@ -2,37 +2,37 @@
              Last NameFirst NameEmailActive
              There are currently no customers.
              '.lang('no_customers').'
              - Delete - Edit - Addresses + + +
              - - - - - - + + + + + + - ':''?> + ':''?> @@ -42,7 +42,7 @@ function areyousure() diff --git a/gocart/views/admin/giftcards_settings.php b/gocart/views/admin/giftcards_settings.php index 669b22ee..7512b9b8 100644 --- a/gocart/views/admin/giftcards_settings.php +++ b/gocart/views/admin/giftcards_settings.php @@ -3,30 +3,30 @@ config->item('admin_folder').'/giftcards/settings'); ?>
              - +
              - + 'predefined_card_amounts', 'value'=>set_value('predefined_card_amounts', $predefined_card_amounts), 'class'=>'gc_tf1'); echo form_input($data); echo form_error('predefined_card_amounts'); ?> - (ex. 10,20,30) +
              - + 'Yes','0'=>'No'); + $options = array('1'=>lang('yes'),'0'=>lang('no')); echo form_dropdown('allow_custom_amount', $options, $allow_custom_amount); ?>
              - + - - - + + +
              @@ -60,14 +60,14 @@ function buttons() $admin_url = site_url($this->config->item('admin_folder')).'/';?> auth->check_access('Admin')) : ?> @@ -118,18 +118,18 @@ function buttons()

              - :

              + :

              - :

              + :

              \ No newline at end of file diff --git a/gocart/views/admin/iframe/order_notification.php b/gocart/views/admin/iframe/order_notification.php index 6b063cbe..0068822d 100644 --- a/gocart/views/admin/iframe/order_notification.php +++ b/gocart/views/admin/iframe/order_notification.php @@ -64,7 +64,7 @@ function set_canned_message(id)
              -
              +
              @@ -73,12 +73,12 @@ function set_canned_message(id)
              CodeToFromTotalUsedRemaining
              There are currently no giftcards.
              '.lang('no_giftcards').'
              - Delete +
              - + - + - + - + - +
              Message Templates
              Recipient
              Subject
              Message
              Send Message
              @@ -129,4 +129,4 @@ function set_canned_message(id)
              - \ No newline at end of file + config->item('admin_folder').'/products/product_image_upload');?> -'userfile', 'id'=>'userfile'));?> +'userfile', 'id'=>'userfile'));?> - \ No newline at end of file +config->item('admin_folder').'/pages/link_form/'.$id); ?>
              - +
              diff --git a/gocart/views/admin/login.php b/gocart/views/admin/login.php index ed412675..2241ba49 100644 --- a/gocart/views/admin/login.php +++ b/gocart/views/admin/login.php @@ -2,7 +2,7 @@ -GoCart Login +<?php echo lang('gocart_login');?> session->flashdata('message')) + if ($this->session->flashdata('error')) { - echo '
              '.$this->session->flashdata('message').'
              '; + echo '
              '.$this->session->flashdata('error').'
              '; } ?> config->item('admin_folder').'/login') ?>
              - + 'email', 'name'=>'email', 'class'=>'form_input')); ?> - + 'password', 'name'=>'password', 'class'=>'form_input')); ?> - Keep Me Logged In: + - +
              diff --git a/gocart/views/admin/order.php b/gocart/views/admin/order.php index 5a53502c..7b3de871 100644 --- a/gocart/views/admin/order.php +++ b/gocart/views/admin/order.php @@ -1,15 +1,15 @@ config->item('admin_folder').'/orders/view/'.$order->id);?> - - - + + + @@ -46,27 +46,27 @@ - - - + + + ID uncomment this if you want it*/ ?> - - - + + + diff --git a/gocart/views/admin/reports/sales.php b/gocart/views/admin/reports/sales.php index e21e2c99..bb06ec8c 100644 --- a/gocart/views/admin/reports/sales.php +++ b/gocart/views/admin/reports/sales.php @@ -1,18 +1,18 @@ $months):?> @@ -21,13 +21,13 @@ ID uncomment this if you want it*/ ?> - - - - - - - + + + + + + + diff --git a/gocart/views/admin/settings.php b/gocart/views/admin/settings.php index b97106c8..4fca8419 100644 --- a/gocart/views/admin/settings.php +++ b/gocart/views/admin/settings.php @@ -4,7 +4,7 @@
              Account InfoBilling AddressShipping Address
              Order DetailsPayment MethodShipping Method/Instructions
              referral)):?> - + is_gift)):?> - + gift_message)):?> - + @@ -84,9 +84,9 @@ - + - + @@ -108,11 +108,11 @@
              Referral: referral;?>
              This is a gift.
              Gift Note: gift_message;?>
              Admin Notes Status
              @@ -96,7 +96,7 @@ config->item('order_statuses'), $order->status); ?>
              - +
              - - - - - + + + + + @@ -120,7 +120,7 @@ - + - + @@ -189,28 +189,26 @@ - - - + - + gift_card_discount > 0):?> - + - + @@ -224,4 +222,4 @@ iframe: true }); - +
              '.lang('search_returned').' '.$total.' '.lang('returned_results').'

              '; + echo '

              '.sprintf(lang('search_returned'), intval($total)).'

              '; } ?> @@ -87,12 +87,12 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder) @@ -131,12 +131,12 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder) @@ -186,14 +186,14 @@ function submit_form() { if($(".gc_check:checked").length > 0) { - if(confirm('')) + if(confirm('')) { $('#delete_form').submit(); } } else { - alert(''); + alert(''); } } diff --git a/gocart/views/admin/organize_category.php b/gocart/views/admin/organize_category.php index 53dc73ba..c61c2924 100644 --- a/gocart/views/admin/organize_category.php +++ b/gocart/views/admin/organize_category.php @@ -40,15 +40,15 @@ function save_sortable() //]]> -

              Drag and drop the products in the order you would like them to appear.

              +

              NameDescriptionPriceQuantityTotal
              - sku: '.$product['sku'].'':'';?> + '.lang('sku').': '.$product['sku'].'':'';?> @@ -162,14 +162,14 @@ coupon_discount > 0):?>
              Coupon Discount coupon_discount); ?>
              Subtotal subtotal); ?>
              Shipping shipping_method; ?> shipping); ?>
              Tax tax); ?>
              Gift Card Discount gift_card_discount); ?>
              Total total); ?>
              - - - - + + + + diff --git a/gocart/views/admin/packing_slip.php b/gocart/views/admin/packing_slip.php index 03cb0daa..fce48d2a 100644 --- a/gocart/views/admin/packing_slip.php +++ b/gocart/views/admin/packing_slip.php @@ -10,11 +10,11 @@ @@ -57,7 +57,7 @@ gift_message)):?> @@ -66,7 +66,7 @@ shipping_notes)):?> @@ -76,13 +76,13 @@ diff --git a/gocart/views/admin/page_form.php b/gocart/views/admin/page_form.php index 0dbf277d..fcccab2b 100644 --- a/gocart/views/admin/page_form.php +++ b/gocart/views/admin/page_form.php @@ -3,14 +3,14 @@ config->item('admin_folder').'/pages/form/'.$id); ?>
              - +
              @@ -33,14 +33,14 @@
              - + 'menu_title', 'name'=>'menu_title', 'value'=>set_value('menu_title', $menu_title), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'slug', 'name'=>'slug', 'value'=>set_value('slug', $slug), 'class'=>'gc_tf1'); echo form_input($data); @@ -48,7 +48,7 @@
              - +
              - + 'sequence', 'name'=>'sequence', 'value'=>set_value('sequence', $sequence), 'class'=>'gc_tf1'); echo form_input($data); @@ -80,7 +80,7 @@ function page_loop($pages, $dash = '', $id=0)
              - + 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); echo form_input($data); @@ -88,7 +88,7 @@ function page_loop($pages, $dash = '', $id=0)
              - + 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); echo form_textarea($data); diff --git a/gocart/views/admin/pages.php b/gocart/views/admin/pages.php index b49292fa..5373ecca 100755 --- a/gocart/views/admin/pages.php +++ b/gocart/views/admin/pages.php @@ -3,24 +3,24 @@
              SKUNamePriceSale

              *order_number;?>*

              is_gift)):?> -

              IS GIFT

              +

              - Bill To Address
              +
              bill_company))?$order->bill_company.'
              ':'';?> bill_firstname.' '.$order->bill_lastname;?>
              bill_address1;?>
              @@ -27,7 +27,7 @@
              - Ship To Address
              +
              ship_company))?$order->ship_company.'
              ':'';?> ship_firstname.' '.$order->ship_lastname;?>
              ship_address1;?>
              @@ -45,11 +45,11 @@
              - Payment Method: + payment_info; ?> - Shipping Method: + shipping_method; ?>
              - Gift Note: + gift_message;?>
              - Special Instructions:
              shipping_notes;?> +
              shipping_notes;?>
              - Qty + - Item Name + - Description +
              - + - ':''?> + ':''?> @@ -35,14 +35,14 @@ function page_loop($pages, $dash = '') title; ?> @@ -56,4 +56,4 @@ function page_loop($pages, $dash = '')
              Title
              There are currently no pages.
              '.lang('no_pages_or_links').'
              - Delete + content)): ?> - Edit - Follow Link + + - Edit - Go to Page + +
              - \ No newline at end of file +config->item('admin_folder').'/payment/settings/'. $module);?>">
              - +
              @@ -18,4 +18,4 @@
              - +')) { var id = img.attr('rel') $('#gc_photo_'+id).remove(); @@ -89,7 +89,7 @@ function add_option(type) } else { - alert('You must give this option a name'); + alert(''); } } @@ -103,17 +103,17 @@ function add_item(type, id) if(type!='textfield' && type != 'textarea') { - append_html = append_html + '
            • '; + append_html = append_html + '
            • '; } - append_html += '
              Name: '+ - 'Value: '+ - 'Weight: '+ - 'Price: '; + append_html += '
              : '+ + ': '+ + ': '+ + ': '; if(type == 'textfield') { - append_html += ' Limit: '; + append_html += ' : '; } append_html += '
              '; @@ -134,7 +134,7 @@ function add_item(type, id) function remove_option(id) { - if(confirm('Are you sure you want to remove this option?')) + if(confirm('')) { $('#option-'+id).remove(); @@ -201,13 +201,13 @@ function delete_product_option(id)
              @@ -218,7 +218,6 @@ function delete_product_option(id) ?>
              - Description (detailed):
              'description', 'name'=>'description', 'class'=>'tinyMCE', 'value'=>set_value('description', $description)); @@ -232,42 +231,42 @@ function delete_product_option(id)
              - + 'sku', 'name'=>'sku', 'value'=>set_value('sku', $sku), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'price', 'name'=>'price', 'value'=>set_value('price', $price), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'saleprice', 'name'=>'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'weight', 'name'=>'weight', 'value'=>set_value('weight', $weight), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'slug', 'name'=>'slug', 'value'=>set_value('slug', $slug), 'class'=>'gc_tf1'); echo form_input($data); ?>
              - + 'In Stock', @@ -278,7 +277,7 @@ function delete_product_option(id) ?>
              - + 'excerpt', 'name'=>'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'gc_tf1'); echo form_textarea($data); @@ -291,7 +290,7 @@ function delete_product_option(id) - + @@ -325,7 +324,7 @@ function list_categories($cats, $product_categories, $sub='') {
              - + 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); echo form_input($data); @@ -333,7 +332,7 @@ function list_categories($cats, $product_categories, $sub='') {
              - ex. <meta name="description" content="We sell products that help you" /> + 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); echo form_textarea($data); @@ -348,11 +347,11 @@ function list_categories($cats, $product_categories, $sub='') { - - - - - + + + + +
              @@ -374,17 +373,17 @@ function list_categories($cats, $product_categories, $sub='') {

              type.' > '.$option->name; ?>

              - Option Name + - required)?'checked="checked"':'';?>/> required + required)?'checked="checked"':'';?>/> type!='textarea' && $option->type!='textfield') { ?> - + @@ -396,18 +395,18 @@ function list_categories($cats, $product_categories, $sub='') { $value = (object)$value;?> type!='textarea' && $option->type!='textfield') { ?>
            • -
              Name: +
              - Value: - Weight: - Price: + + + type == 'textfield'):?> - Limit: + type!='textarea' && $option->type!='textfield') { ?> - +
              type!='textarea' && $option->type!='textfield') { ?> @@ -437,14 +436,14 @@ function list_categories($cats, $product_categories, $sub='') {
            • - + @@ -510,20 +509,20 @@ function add_image($photo_id, $filename, $alt, $caption, $primary=false) '; diff --git a/gocart/views/admin/products.php b/gocart/views/admin/products.php index c493bed2..9ae725ce 100644 --- a/gocart/views/admin/products.php +++ b/gocart/views/admin/products.php @@ -2,28 +2,28 @@ config->item('admin_folder').'/products/bulk_save', array('id'=>'bulk_form'));?>
              Name
              Product Name
              - /> primary + /> - Remove +
              - + - +
              Alt Tag
              Caption
              @@ -546,16 +545,16 @@ function add_option($name, $option_id, $type)

              '.$name; ?>

              - Option Name + - required + - +
                @@ -585,9 +584,9 @@ function replace_newline($string) { function add_related_product() { - + //if the related product is not already a related product, add it - if($('#related_product_'+$('#product_list').val()).length == 0) + if($('#related_product_'+$('#product_list').val()).length == 0 && $('#product_list').val() != null) { var related_product = ''; @@ -596,14 +595,20 @@ function add_related_product() } else { - //otherwise alert them that this is aleady a related product - alert('You have already made this product related'); + if($('#product_list').val() == null) + { + alert(''); + } + else + { + alert(''); + } } } function remove_related_product(id) { - if(confirm('Are you sure you want to remove this related item?')) + if(confirm('?')) { $('#related_product_'+id).remove(); } @@ -631,7 +636,7 @@ function related_items($id, $name) { '.$name.'
              - remove + '.lang('remove').'
              - - - - - + + + + + - ':''?> + ':''?> @@ -33,17 +33,17 @@ function areyousure() @@ -51,7 +51,7 @@ function areyousure()
              SKUNamePriceSaleAvailability
              There are currently no products.
              '.lang('no_products').'
              'product['.$product->id.'][sku]','value'=>form_decode($product->sku), 'class'=>'gc_tf3'));?> 'In Stock', - '0' => 'Out of Stock' + '1' => lang('in_stock'), + '0' => lang('out_of_stock') ); echo form_dropdown('product['.$product->id.'][in_stock]', $options, set_value('in_stock',$product->in_stock)); ?> - Delete - Edit - Copy + + +
              \ No newline at end of file diff --git a/gocart/views/admin/reports.php b/gocart/views/admin/reports.php index e228d172..d5a0f179 100644 --- a/gocart/views/admin/reports.php +++ b/gocart/views/admin/reports.php @@ -1,9 +1,9 @@ -

              Best Sellers

              +

              - From + - to +
              @@ -12,7 +12,7 @@
              -

              Sales

              +

              diff --git a/gocart/views/admin/reports/best_sellers.php b/gocart/views/admin/reports/best_sellers.php index 14cbae4c..870c274a 100644 --- a/gocart/views/admin/reports/best_sellers.php +++ b/gocart/views/admin/reports/best_sellers.php @@ -2,9 +2,9 @@
            • SKUNameQuantity
              Months of Coupon DiscountsGift Card DiscountsProductsShippingTaxGrand Total
              - + @@ -14,10 +14,10 @@ @@ -30,7 +30,7 @@
              Shipping Modules
              - Uninstall - Settings + + - Install +
              - + @@ -40,10 +40,10 @@ @@ -53,14 +53,14 @@ 0): ?>
              Payment Modules
              - Uninstall - Settings + + - Install +
              - + @@ -70,9 +70,9 @@ @@ -83,7 +83,7 @@ config->item('admin_folder').'/shipping/settings/'.$module);?>">
              - +
              @@ -18,4 +18,4 @@
              - + Date: Mon, 5 Dec 2011 13:42:54 -0600 Subject: [PATCH 055/343] legacy files not needed --- gocart/views/admin/address_list.php | 16 ----------- gocart/views/admin/customers_csv.php | 43 ---------------------------- 2 files changed, 59 deletions(-) delete mode 100644 gocart/views/admin/address_list.php delete mode 100644 gocart/views/admin/customers_csv.php diff --git a/gocart/views/admin/address_list.php b/gocart/views/admin/address_list.php deleted file mode 100644 index 1ff75ce1..00000000 --- a/gocart/views/admin/address_list.php +++ /dev/null @@ -1,16 +0,0 @@ -
              - -
              -
              - - -
              - - -
              - \ No newline at end of file diff --git a/gocart/views/admin/customers_csv.php b/gocart/views/admin/customers_csv.php deleted file mode 100644 index b6e8fe39..00000000 --- a/gocart/views/admin/customers_csv.php +++ /dev/null @@ -1,43 +0,0 @@ -id, firstname, lastname, email, phone, company, shipping company, shipping firstname, shipping lastname, shipping email, shipping phone, shipping address1, shipping address2, shipping city, shipping state, shipping post code, shipping country, billing company, billing firstname, billing lastname, billing email, billing phone, billing address1, billing address2, billing city, billing state, billing post code, billing country -Customer_model->get_address($c->default_address); - if(!$c->ship_to_bill_address) - { - $ship_address = $this->Customer_model->get_address($c->default_shipping_address); - } else { - $ship_address = $bill_address; - } - - echo $c->id .', '; - echo $c->firstname .', '; - echo $c->lastname .', '; - echo $c->email .', '; - echo $c->phone .', '; - echo $c->company .', '; - echo @$ship_address['field_data']['company'] .', '; - echo @$ship_address['field_data']['firstname'] .', '; - echo @$ship_address['field_data']['lastname'] .', '; - echo @$ship_address['field_data']['email'] .', '; - echo @$ship_address['field_data']['phone'] .', '; - echo @$ship_address['field_data']['address1'] .', '; - echo @$ship_address['field_data']['address2'] .', '; - echo @$ship_address['field_data']['city'] .', '; - echo @$ship_address['field_data']['zone'] .', '; - echo @$ship_address['field_data']['zip'] .', '; - echo @$ship_address['field_data']['country'] .', '; - - echo @$bill_address['field_data']['company'] .', '; - echo @$bill_address['field_data']['firstname'] .', '; - echo @$bill_address['field_data']['lastname'] .', '; - echo @$bill_address['field_data']['email'] .', '; - echo @$bill_address['field_data']['phone'] .', '; - echo @$bill_address['field_data']['address1'] .', '; - echo @$bill_address['field_data']['address2'] .', '; - echo @$bill_address['field_data']['city'] .', '; - echo @$bill_address['field_data']['zone'] .', '; - echo @$bill_address['field_data']['zip'] .', '; - echo @$bill_address['field_data']['country'] ."\n"; - - -} ?> \ No newline at end of file From 2af3e0c0cb3e7ece90ba8f8e348e919c0673d386 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 5 Dec 2011 13:43:03 -0600 Subject: [PATCH 056/343] update translation file --- gocart/language/english/common_lang.php | 112 +++++------------------- 1 file changed, 22 insertions(+), 90 deletions(-) diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index 448a28bd..3453f529 100755 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -8,8 +8,12 @@ ******************************************/ + + /******************* + Site front end + *******************/ //common terms @@ -139,6 +143,24 @@ //checkout confirmation $lang['thank_you'] = 'Thanks for shopping with '; // terminates with company/site name, defined in gocart config as 'company_name' +//authorize.net library messages +$lang['please_fix_errors'] = 'Please fix the following errors:'; +$lang['enter_card_name'] = 'Please enter your first and last name as it appears on the card'; +$lang['invalid_card_exp'] = 'The expiration date does not appear to be valid'; +$lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; +$lang['enter_card_code'] = 'Please enter the three digit security code on the reverse side of the card'; +$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; +$lang['enter_test_mode_credentials'] = 'You must enter login values for TEST mode'; +$lang['enter_live_mode_credentials'] = 'You must enter login values for LIVE mode'; +$lang['all_required_fields'] = 'Please complete all required fields.'; +$lang['card_number'] = 'Card Number'; +$lang['expires_on'] = 'Expires On'; +$lang['cvv_code'] = 'CVV Code'; + +//paypal library messages +$lang['paypal_error'] = 'There was an error processing your payment through PayPal'; +$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; + //giftcards $lang['giftcard'] = 'Gift Card'; @@ -200,93 +222,3 @@ $lang['giftcard_already_applied'] = 'Your gift card is already applied'; -/****************** - Admin section -*******************/ - - -//header -$lang['sales'] = 'Sales'; -$lang['orders'] = 'Orders'; -$lang['customers'] = 'Customers'; -$lang['groups'] = 'Groups'; -$lang['reports'] = 'Reports'; -$lang['coupons'] = 'Coupons'; -$lang['giftcards'] = 'Gift Cards'; -$lang['catalog'] = 'Catalog'; -$lang['categories'] = 'Categories'; -$lang['products'] = 'Products'; -$lang['content'] = 'Content'; -$lang['banners'] = 'Banners'; -$lang['boxes'] = 'Boxes'; -$lang['pages'] = 'Pages'; -$lang['administrative'] = 'Administrative'; -$lang['settings'] = 'Settings'; -$lang['locations'] = 'Locations'; -$lang['administrators'] = 'Administrators'; -$lang['note'] = 'Note'; -$lang['alert'] = 'Alert'; -$lang['log_out'] = 'Log Out'; -$lang['front_end'] = 'Front End'; -$lang['dashboard'] = 'Dashboard'; - -//admin management -$lang['firstname'] = 'First Name'; -$lang['lastname'] = 'Last Name'; -$lang['access'] = 'Access'; -$lang['add_new_admin'] = 'Add New Admin'; -$lang['confirm_delete_admin'] = 'Are you sure you want to delete this admin?'; - -//banner management -$lang['tab_banners'] = 'Banners'; -$lang['label_banner_title'] = 'Title'; -$lang['label_banner_link'] = 'Link'; -$lang['label_banner_enable_on'] = 'Enable On'; -$lang['label_banner_disable_on'] = 'Disable On'; -$lang['label_banner_new_window'] = 'New Window'; -$lang['label_banner_image'] = 'Image'; -$lang['label_banner_current_file'] = 'Current File'; -$lang['confirm_delete_banner'] = 'Are you sure you want to delete this banner?'; -$lang['add_new_banner'] = 'Add New Banner'; -$lang['message_no_banners'] = 'There are currently no banners'; - -//box management -$lang['tab_boxes'] = 'Homepage Boxes'; -$lang['label_box_title'] = 'Title'; -$lang['label_box_link'] = 'Link'; -$lang['label_box_enable_on'] = 'Enable On'; -$lang['label_box_disable_on'] = 'Disable On'; -$lang['label_box_new_window'] = 'New Window'; -$lang['label_box_image'] = 'Image'; -$lang['label_box_current_file'] = 'Current File'; -$lang['confirm_delete_box'] = 'Are you sure you want to delete this box?'; -$lang['add_new_box'] = 'Add New Box'; -$lang['message_no_boxes'] = 'There are currently no boxes'; - -//dashboard & shared -$lang['recent_orders'] = 'Most Recent Orders'; -$lang['order'] = 'Order'; -$lang['bill_to'] = 'Bill To'; -$lang['ship_to'] = 'Ship To'; -$lang['ordered_on'] = 'Ordered On'; -$lang['status'] = 'Status'; -$lang['notes'] = 'Notes'; -$lang['recent_customers'] = 'Most Recent Registered Customers'; -$lang['information'] = 'Information'; - -//orders -$lang['search_returned'] = 'Your searched returned'; //... results (below) -$lang['returned_results'] = 'results'; // end of above -$lang['view_orders'] = 'View All Orders'; -$lang['xml_export'] = 'XML Export'; -$lang['no_orders'] = 'There are currently no orders.'; -$lang['order_delete'] = 'Are you sure you want to delete the selected orders?'; -$lang['no_orders_sel'] = 'You did not select any orders to delete.'; - - -//fedex module -$lang['fedex_key'] = 'Key'; -$lang['fedex_account'] = 'Ship Account'; -$lang['fedex_meter'] = 'Meter'; -$lang['fedex_pw'] = 'Password'; -$lang['fedex_services'] = 'Services To Offer'; From c191b2484e22b3fbd16937ce03b4e6648cb45966 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 5 Dec 2011 14:44:22 -0600 Subject: [PATCH 057/343] removed old code fragment --- gocart/views/header.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gocart/views/header.php b/gocart/views/header.php index bb79bd7d..d02f00b8 100755 --- a/gocart/views/header.php +++ b/gocart/views/header.php @@ -74,7 +74,7 @@ function page_loop($pages, $layer, $first=false) } - foreach($pages as $page): if($page->id != 143)://this is the "homepage" page. By skipping it, we're skipping anything under it.?> + foreach($pages as $page):?>
            • content)):?> @@ -100,7 +100,7 @@ function page_loop($pages, $layer, $first=false) }?>
            • '; From dabb0d6ec5ddde5da98f496e7905d71bf3b7b67b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 5 Dec 2011 14:51:21 -0600 Subject: [PATCH 058/343] changed out homebrew browser checker for browser-update.org --- gocart/views/header.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/gocart/views/header.php b/gocart/views/header.php index d02f00b8..1af33239 100755 --- a/gocart/views/header.php +++ b/gocart/views/header.php @@ -39,7 +39,21 @@ }); - + + + + + - - -
              - You are using an old browser that may not function as expected. For a better, safer browsing experience, please upgrade your browser.
              - For your convenience, here are some links! - Internet Explorer | - Firefox | - Google Chrome | - Apple Safari -
              - -
                From 6760a5c3a870fd00fc34304dc4c1b15014c00687 Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 5 Dec 2011 14:55:34 -0600 Subject: [PATCH 059/343] Update changelog.txt --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 07ea5833..40f70509 100755 --- a/changelog.txt +++ b/changelog.txt @@ -10,13 +10,13 @@ Version 1.2 - Added language support and extended internationalization capabilities - Converted payment and shipping libraries into application package modules - - Added support for BrainTree and Bean Stream payment gateways - Added support for Sage Pay payment gateway (Thanks to swicks) Other - Updated to CodeIgniter 2.1 - Changed the database password and prefix fields to unrequired in the Installer, for those of you who want to shoot yourself in the feet + - eliminated some junk code and views that are not used. Version 1.1.4 From 4f1921fd2cb4211897a88299e09a4c33267a5a4b Mon Sep 17 00:00:00 2001 From: Clear Sky Designs Date: Mon, 5 Dec 2011 17:51:24 -0600 Subject: [PATCH 060/343] package and language updates --- gocart/config/autoload.php | 4 +- gocart/libraries/Go_cart.php | 3 +- gocart/models/cart_model.php | 78 ---- .../language/english/authorize_net_lang.php | 4 + .../authorize_net/libraries/authorize_net.php | 6 +- .../libraries/authorize_net_lib.php | 7 + gocart/packages/payment/cod/libraries/cod.php | 1 - .../language/english/paypal_express_lang.php | 6 +- .../libraries/paypal_express.php | 6 +- .../views/{checkout.php => pp_checkout.php} | 0 .../language/english/sage_pay_lang.php | 53 +++ .../payment/sage_pay/libraries/sage_pay.php | 372 ++++++++++++++++++ .../sage_pay/libraries/sage_pay_lib.php | 148 +++++++ .../payment/sage_pay/views/admin_form.php | 76 ++++ .../payment/sage_pay/views/customer_card.php | 102 +++++ .../fedex/language/english/fedex_lang.php | 47 +++ .../shipping/fedex/language/fedex_lang.php | 7 - .../libraries/{lib => }/RateService_v8.wsdl | 0 .../fedex-common.php5 => fedex-common.php} | 0 .../shipping/fedex/libraries/fedex.php | 91 ++--- .../language/english/flatrate_lang.php | 4 + .../shipping/flatrate/libraries/flatrate.php | 16 +- .../language/english/tablerate_lang.php | 31 ++ .../tablerate/libraries/tablerate.php | 30 +- .../form.php => views/admin_form.php} | 61 +-- .../language/english/ups_lang.php | 5 + .../libraries/united_parcel_service.php | 18 +- 27 files changed, 969 insertions(+), 207 deletions(-) delete mode 100644 gocart/models/cart_model.php rename gocart/packages/payment/paypal_express/views/{checkout.php => pp_checkout.php} (100%) create mode 100644 gocart/packages/payment/sage_pay/language/english/sage_pay_lang.php create mode 100644 gocart/packages/payment/sage_pay/libraries/sage_pay.php create mode 100644 gocart/packages/payment/sage_pay/libraries/sage_pay_lib.php create mode 100644 gocart/packages/payment/sage_pay/views/admin_form.php create mode 100644 gocart/packages/payment/sage_pay/views/customer_card.php create mode 100644 gocart/packages/shipping/fedex/language/english/fedex_lang.php delete mode 100644 gocart/packages/shipping/fedex/language/fedex_lang.php rename gocart/packages/shipping/fedex/libraries/{lib => }/RateService_v8.wsdl (100%) rename gocart/packages/shipping/fedex/libraries/{lib/fedex-common.php5 => fedex-common.php} (100%) create mode 100644 gocart/packages/shipping/flatrate/language/english/flatrate_lang.php create mode 100644 gocart/packages/shipping/tablerate/language/english/tablerate_lang.php rename gocart/packages/shipping/tablerate/{libraries/form.php => views/admin_form.php} (63%) create mode 100644 gocart/packages/shipping/united_parcel_service/language/english/ups_lang.php diff --git a/gocart/config/autoload.php b/gocart/config/autoload.php index d07fd26b..dfff5f5e 100644 --- a/gocart/config/autoload.php +++ b/gocart/config/autoload.php @@ -52,7 +52,7 @@ | $autoload['libraries'] = array('database', 'session', 'xmlrpc'); */ -$autoload['libraries'] = array('database', 'session', 'auth'); +$autoload['libraries'] = array('database', 'session', 'auth', 'go_cart'); /* @@ -109,7 +109,7 @@ | */ -$autoload['model'] = array('Customer_model', 'Category_model', 'Cart_model', 'Settings_model'); +$autoload['model'] = array('Customer_model', 'Category_model', 'Settings_model', 'Location_model'); /* End of file autoload.php */ diff --git a/gocart/libraries/Go_cart.php b/gocart/libraries/Go_cart.php index 24d0f5c5..70ed564d 100755 --- a/gocart/libraries/Go_cart.php +++ b/gocart/libraries/Go_cart.php @@ -40,8 +40,7 @@ class go_cart { function __construct() { $this->CI =& get_instance(); - $this->CI->load->model('Coupon_model'); - $this->CI->load->model('Gift_card_model'); + $this->CI->load->model(array('Coupon_model' , 'Gift_card_model', 'Settings_model')); // Load the saved session if ($this->CI->session->userdata('cart_contents') !== FALSE) diff --git a/gocart/models/cart_model.php b/gocart/models/cart_model.php deleted file mode 100644 index 46822a47..00000000 --- a/gocart/models/cart_model.php +++ /dev/null @@ -1,78 +0,0 @@ -cart = $this->session->userdata('cart'); - } - - /******************************************************************** - - ********************************************************************/ - - function get_order($by='id', $string) - { - /* - get_order() will only return the higher end order information - it does not return order items or item options - - $by can be id, customer_id, or session_id - */ - $this->db->where($id, $string); - $result = $this->db->get('order'); - return $result->row(); - } - - function get_order_items($order_id) - { - $this->db_where('order_id', $id); - $result = $this->db->get('order_items'); - return $result->results(); - } - - function get_order_item_options($item_id) - { - $this->db_where('item_id', $id); - $result = $this->db->get('order_item_options'); - return $result->results(); - } - - function get_order_weight() - { - $order_weight = 0; - foreach ($this->cart['content'] as $item) - { - $item_weight = $item['weight']*$item['quantity']; - $order_weight = $order_weight + $item_weight; - } - - return $order_weight; - } - - function get_order_price() - { - $order_price = 0; - foreach ($this->cart['content'] as $item) - { - $item_price = $item['price']*$item['quantity']; - $order_price = $order_price + $item_price; - } - - return $order_price; - } - - function get_total() - { - $order_price = $this->get_order_price(); - $tax = $this->cart['taxes']; - $shipping = $this->cart['shipping']; - $discount = isset($this->cart['coupon_discount']) ? $this->cart['coupon_discount'] : 0; - - $total = ($order_price + $tax + $shipping) - $discount; - - return number_format($total, '2'); - } -} -?> diff --git a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php index 0c42ae67..4b01970c 100644 --- a/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php +++ b/gocart/packages/payment/authorize_net/language/english/authorize_net_lang.php @@ -15,6 +15,10 @@ $lang['invalid_card_num'] = 'The card number you entered is not a valid credit card number'; $lang['all_required_fields'] = 'Please complete all required fields.'; + +$lang['auth_error'] = 'Authorize.Net Critical Error: '; + + //admin $lang['test_mode'] = 'Test Mode'; diff --git a/gocart/packages/payment/authorize_net/libraries/authorize_net.php b/gocart/packages/payment/authorize_net/libraries/authorize_net.php index 40d3705d..4c9a61dd 100644 --- a/gocart/packages/payment/authorize_net/libraries/authorize_net.php +++ b/gocart/packages/payment/authorize_net/libraries/authorize_net.php @@ -30,15 +30,17 @@ function checkout_form($post = false) $enabled = $settings['enabled']; $form = array(); + $form['name'] = $this->method_name; // Retrieve any previously stored cc data to redisplay in case of errors $cc_data = $this->CI->session->userdata('cc_data'); if($enabled) { - $form['name'] = $this->method_name; - return $this->CI->load->view('customer_card', array('settings'=>$se), true); + $form['form'] = $this->CI->load->view('customer_card', array('cc_data'=>$cc_data), true); + + return $form; } else return array(); diff --git a/gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php b/gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php index f2d46798..ce13b45a 100644 --- a/gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php +++ b/gocart/packages/payment/authorize_net/libraries/authorize_net_lib.php @@ -50,6 +50,13 @@ function process_payment() { $this->field_string .= "$key=" . urlencode( $value ) . "&"; } $ch = curl_init($this->gateway_url); + + // turn off peer verification for test mode + if($this->settings['authorize_net_test_mode'] == 'TRUE') + { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + } + curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim( $this->field_string, "& " )); diff --git a/gocart/packages/payment/cod/libraries/cod.php b/gocart/packages/payment/cod/libraries/cod.php index f48f7d86..00f132ec 100644 --- a/gocart/packages/payment/cod/libraries/cod.php +++ b/gocart/packages/payment/cod/libraries/cod.php @@ -10,7 +10,6 @@ class cod function __construct() { $this->CI =& get_instance(); - $this->CI->load->library('session'); } /* diff --git a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php index cb1bc949..9e77fbd7 100644 --- a/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php +++ b/gocart/packages/payment/paypal_express/language/english/paypal_express_lang.php @@ -2,12 +2,12 @@ //paypal library messages $lang['paypal_error'] = 'There was an error processing your payment through PayPal'; -$lang['paypal_desc'] = 'Using this method, you will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; +$lang['paypal_desc'] = 'You will be directed to the Paypal website to verify your payment. Once your payment is authorized, you will be directed back to our website and your order will be complete.'; //paypal admin -$lang['pp_username'] = 'Paypal Username'; -$lang['pp_password'] = 'Paypal Password'; +$lang['pp_username'] = 'Paypal API Username'; +$lang['pp_password'] = 'Paypal API Password'; $lang['pp_key'] = 'Paypal API Signature'; $lang['test_mode_label'] = 'Mode'; diff --git a/gocart/packages/payment/paypal_express/libraries/paypal_express.php b/gocart/packages/payment/paypal_express/libraries/paypal_express.php index 3abc1b59..a379db6f 100644 --- a/gocart/packages/payment/paypal_express/libraries/paypal_express.php +++ b/gocart/packages/payment/paypal_express/libraries/paypal_express.php @@ -32,9 +32,11 @@ function checkout_form($post = false) $form = array(); if($enabled) { - $form['name'] = $this->method_name; + $form['name'] = $this->method_name; - return $this->CI->load->view('checkout', array(), true); + $form['form'] = $this->CI->load->view('pp_checkout', array(), true); + + return $form; } else return array(); diff --git a/gocart/packages/payment/paypal_express/views/checkout.php b/gocart/packages/payment/paypal_express/views/pp_checkout.php similarity index 100% rename from gocart/packages/payment/paypal_express/views/checkout.php rename to gocart/packages/payment/paypal_express/views/pp_checkout.php diff --git a/gocart/packages/payment/sage_pay/language/english/sage_pay_lang.php b/gocart/packages/payment/sage_pay/language/english/sage_pay_lang.php new file mode 100644 index 00000000..a2f09219 --- /dev/null +++ b/gocart/packages/payment/sage_pay/language/english/sage_pay_lang.php @@ -0,0 +1,53 @@ +(as shown on card)'; +$lang['card_type'] = 'Card Type'; +$lang['card_number'] = 'Card Number'; +$lang['valid_from'] = 'Valid From'; +$lang['expires_on'] = 'Expires On'; +$lang['cvv_code'] = 'CVV Code'; + +$lang['fix_errors'] = 'Please fix the following errors:'; +$lang['enter_name'] = 'Please enter your full name as shown on the card'; +$lang['fix_exp_date'] = 'The expiration date does not appear to be valid'; +$lang['fix_card_num'] = 'The card number you entered is not a valid credit card number'; +$lang['enter_cvv'] = 'Please enter the three digit security code on the reverse side of the card'; + +$lang['transaction_declined'] = 'Transaction Declined. Please check your card information and try again.'; + +// admin + +$lang['simulator'] = 'Simulator'; +$lang['test'] = 'Test'; +$lang['live'] = 'Live'; + +$lang['payment'] = 'Payment'; +$lang['deferred'] = 'Deferred'; +$lang['authenticate'] = 'Authenticate'; + +$lang['enter_vendor'] = 'You must enter a valid Vendor Name'; +$lang['vps_protocol'] = 'VPS protocol'; +$lang['vendor_name'] = 'Vendor Name'; +$lang['supported_cards'] = 'Supported Card Types'; +$lang['system'] = 'System'; +$lang['type'] = 'Type'; +$lang['currency'] = 'Currency'; + diff --git a/gocart/packages/payment/sage_pay/libraries/sage_pay.php b/gocart/packages/payment/sage_pay/libraries/sage_pay.php new file mode 100644 index 00000000..61617f92 --- /dev/null +++ b/gocart/packages/payment/sage_pay/libraries/sage_pay.php @@ -0,0 +1,372 @@ +CI =& get_instance(); + $this->CI->load->library('sage_pay_lib'); + $this->CI->lang->load('sage_pay'); + + $this->method_name = lang('package_name'); + } + + /** + * customer front end checkout form + * + * @param array $post + * @return string + */ + public function checkout_form($post = false){ + //load form helper + $this->CI->load->helper('form'); + + $settings = $this->CI->Settings_model->get_settings('sage_pay'); + $enabled = $settings['enabled']; + + //explode selected card types + if(isset($settings['card_types'])){ + $selected_cards = explode(',', $settings['card_types']); + $settings['card_types'] = array(); + //store values in keys + foreach($selected_cards as $selected_card){ + $settings['card_types'][$selected_card] = 1; + } + } + + $form = array(); + + // Retrieve any previously stored card data to redisplay in case of errors + $sp_data = $this->CI->session->userdata('sp_data'); + + + if($enabled) + { + $form['name'] = $this->method_name; + + $form['form'] = $this->CI->load->view('customer_card', array('settings'=>$settings, 'sp_data'=>$sp_data), true); + + return $form; + + } else return array(); + + return $form; + } + + public function checkout_check(){ + + //load credit card helper + $this->CI->load->helper('credit_card_helper'); + + $error_msg = lang('fix_errors')."
                  "; + $error_list = ""; + + //Verify name field + if( empty($_POST["CardHolder"])) + $error_list .= "
                • ".lang('enter_name')."
                • "; + + //Verify date + if( !card_expiry_valid($_POST["ExpiryDate_mm"], $_POST["ExpiryDate_yy"]) ) + $error_list .= "
                • ".lang('fix_exp_date')."
                • "; + + //Verify card number + if( empty($_POST["CardNumber"]) || !card_number_valid($_POST["CardNumber"]) ) + $error_list .= "
                • ".lang('fix_card_num')."
                • "; + + //Verify security code + if( empty($_POST["CV2"])) + $error_list .= "
                • ".lang('enter_cvv')."
                • "; + + + // We need to store the credit card information temporarily + $sp_tmp_data["sp_data"] = $_POST; + $this->CI->session->set_userdata($sp_tmp_data); + + if( $error_list ) + return $error_msg . $error_list . "
                "; + else + { + return false; + } + } + + /** + * payment module description + * + */ + public function description(){ + //create a description from the session which we can store in the database + //this will be added to the database upon order confirmation + + /* + access the payment information with the $_POST variable since this is called + from the same place as the checkout_check above. + */ + + return 'Sage Pay'; + + } + + /** + * back end installation functions + * + */ + public function install(){ + //default settings + $config['service'] = 'DIRECT'; //FORM, SERVER & DIRECT - direct only available in this version + + $config['mode'] = 'Simulator'; //Simulator, Test & Live + + $config['direct_simulator_url'] = 'https://test.sagepay.com/Simulator/VSPDirectGateway.asp'; + $config['direct_test_url'] = 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp'; + $config['direct_live_url'] = 'https://live.sagepay.com/gateway/service/vspdirect-register.vsp'; + + $config['vps_protocol'] = 2.23; + + $config['tx_type'] = 'PAYMENT'; //Can be PAYMENT, DEFERRED or AUTHENTICATE + + $config['vendor'] = ''; //Sage pay vendor name + + $config['account_type'] = 'E'; //E for e-commerce + + $config['currency'] = 'USD'; //default USD + + $config['enabled'] = '0'; + + $this->CI->Settings_model->save_settings('sage_pay', $config); + + //create sql table(s) + $queries = $this->create_table($this->CI->db->dbprefix); + foreach($queries as $query){ + $this->CI->db->query($query); + } + + } + + /** + * table for storing transaction data + * + * @param string $prefix + * @return array + */ + private function create_table($prefix){ + $query = array(); + + // currently disabled + //$query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; + + // currently set not to overwrite if install has already been run + $query[] = "CREATE TABLE IF NOT EXISTS `".$prefix."sage_pay` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) DEFAULT NULL, + `VPSProtocol` varchar(4) COLLATE utf8_general_ci DEFAULT NULL, + `Status` varchar(15) COLLATE utf8_general_ci DEFAULT NULL, + `StatusDetail` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, + `VendorTxCode` varchar(64) COLLATE utf8_general_ci DEFAULT NULL, + `VPSTxId` varchar(38) COLLATE utf8_general_ci DEFAULT NULL, + `SecurityKey` varchar(10) COLLATE utf8_general_ci DEFAULT NULL, + `TxAuthNo` int(11) DEFAULT NULL, + `AVSCV2` varchar(50) COLLATE utf8_general_ci DEFAULT NULL, + `AddressResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `PostCodeResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `CV2Result` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `3DSecureStatus` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `CAVV` varchar(32) COLLATE utf8_general_ci DEFAULT NULL, + `MD` varchar(35) COLLATE utf8_general_ci DEFAULT NULL, + `ACSURL` text COLLATE utf8_general_ci, + `PAReq` text COLLATE utf8_general_ci, + `PayPalRedirectURL` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, + `Created` datetime default NULL, + PRIMARY KEY (`id`) + ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;"; + + return $query; + } + /** + * remove payment module settings + * + */ + public function uninstall(){ + $this->CI->Settings_model->delete_settings('sage_pay'); + $queries = $this->drop_table($this->CI->db->dbprefix); + foreach($queries as $query){ + $this->CI->db->query($query); + } + } + /** + * drop any associated tables + * + * @param string $prefix + * @return array + */ + private function drop_table($prefix){ + $query = array(); + + $query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; + + return $query; + } + + + /** + * payment processor + * + */ + public function process_payment(){ + + // Get previously entered customer info + $sp_data = $this->CI->session->userdata('sp_data'); + $customer = $this->CI->go_cart->customer(); + + // Set our sagepay fields + + $this->CI->sage_pay_lib->add_field('Amount', $this->CI->go_cart->total()); + + $this->CI->sage_pay_lib->add_field('CardHolder', $sp_data["CardHolder"]); + $this->CI->sage_pay_lib->add_field('CardNumber', $sp_data["CardNumber"]); + $this->CI->sage_pay_lib->add_field('StartDate', $sp_data["StartDate_mm"] . $sp_data["StartDate_yy"]); + $this->CI->sage_pay_lib->add_field('ExpiryDate', $sp_data["ExpiryDate_mm"] . $sp_data["ExpiryDate_yy"]); + $this->CI->sage_pay_lib->add_field('CV2', $sp_data["CV2"]); + $this->CI->sage_pay_lib->add_field('CardType', $sp_data["CardType"]); + + $this->CI->sage_pay_lib->add_field('BillingSurname', $customer['bill_address']["lastname"]); + $this->CI->sage_pay_lib->add_field('BillingFirstnames', $customer['bill_address']["firstname"]); + $this->CI->sage_pay_lib->add_field('BillingAddress1', $customer['bill_address']["address1"]); + $this->CI->sage_pay_lib->add_field('BillingAddress2',$customer['bill_address']["address2"]); + $this->CI->sage_pay_lib->add_field('BillingCity', $customer['bill_address']["city"]); + $this->CI->sage_pay_lib->add_field('BillingState', $customer['bill_address']["zone"]); + $this->CI->sage_pay_lib->add_field('BillingPostCode', $customer['bill_address']["zip"]); + $this->CI->sage_pay_lib->add_field('BillingCountry', $customer['bill_address']["country_code"]); + $this->CI->sage_pay_lib->add_field('BillingPhone', $customer['bill_address']["phone"]); + + $this->CI->sage_pay_lib->add_field('DeliverySurname', $customer['ship_address']["lastname"]); + $this->CI->sage_pay_lib->add_field('DeliveryFirstnames', $customer['ship_address']["firstname"]); + $this->CI->sage_pay_lib->add_field('DeliveryAddress1', $customer['ship_address']["address1"]); + $this->CI->sage_pay_lib->add_field('DeliveryAddress2',$customer['ship_address']["address2"]); + $this->CI->sage_pay_lib->add_field('DeliveryCity', $customer['ship_address']["city"]); + $this->CI->sage_pay_lib->add_field('DeliveryState', $customer['ship_address']["zone"]); + $this->CI->sage_pay_lib->add_field('DeliveryPostCode', $customer['ship_address']["zip"]); + $this->CI->sage_pay_lib->add_field('DeliveryCountry', $customer['ship_address']["country_code"]); + $this->CI->sage_pay_lib->add_field('DeliveryPhone', $customer['ship_address']["phone"]); + + + // Send info to sagepay and receive a response + $this->CI->sage_pay_lib->process_payment(); + $sagepay_response = $this->CI->sage_pay_lib->get_all_responses(); + + // record results in say_pay table for future processing + $this->CI->db->insert($this->CI->db->dbprefix . 'sage_pay', $sagepay_response); + + // Forward results + if($sagepay_response['Status'] != 'INVALID'){ + // payment success, we can destroy our tmp card data + $this->CI->session->unset_userdata('sp_data'); + return false; // false == no error + } + else + { + // payment declined, return our user to the form with an error. + log_message('debug', 'Sage-pay module - Protocol:'. $sagepay_response['VPSProtocol'] .' - Status:' . $sagepay_response['Status']); + log_message('debug', 'Sage-pay module - Status Detail:'. $sagepay_response['StatusDetail']); + return lang('transaction_declined'); + } + } + + /** + * Admin form settings + * + * @param array $post + * @return string + */ + public function form($post = false){ + + //load form helper + $this->CI->load->helper('form'); + + //this same function processes the form + if(!$post) + { + $settings = $this->CI->Settings_model->get_settings('sage_pay'); + + //explode selected card types + if(isset($settings['card_types'])){ + $selected_cards = explode(',', $settings['card_types']); + $settings['card_types'] = array(); + //store values in keys + foreach($selected_cards as $selected_card){ + $settings['card_types'][$selected_card] = 1; + } + } + + + + } + else + { + $settings = $post; + } + + return $this->CI->load->view('admin_form', array('settings'=>$settings), true); + } + + /** + * Admin form validation + * + */ + public function check(){ + $error = false; + + // TODO 4 -o swicks -c Category: fix check options + + if(empty($_POST['vendor'])) + $error = "
                ".lang('enter_vendor')."
                "; + + if($error) + { + return $error; + } + else + { + //we save the settings if it gets here + + //place selected card types in a string + $_POST['card_types'] = isset($_POST['card_types'])? implode(',', $_POST['card_types']) : ""; + + $this->CI->Settings_model->save_settings('sage_pay', $_POST); + + return false; + } + } +} diff --git a/gocart/packages/payment/sage_pay/libraries/sage_pay_lib.php b/gocart/packages/payment/sage_pay/libraries/sage_pay_lib.php new file mode 100644 index 00000000..3d7d3d26 --- /dev/null +++ b/gocart/packages/payment/sage_pay/libraries/sage_pay_lib.php @@ -0,0 +1,148 @@ +CI =& get_instance(); + + // Retrieve gocart admin settings + if( $this->settings = $this->CI->Settings_model->get_settings('sage_pay') ) + { + // If we have settings, the module is installed. If not, don't bother loading them + switch($this->settings['mode']){ + case 'test': + $this->gateway_url = $this->settings['direct_test_url']; + break; + case 'live': + $this->gateway_url = $this->settings['direct_live_url']; + break; + case 'simulator': + default: + $this->gateway_url = $this->settings['direct_simulator_url']; + break; + } + + } + } + + /** + * Add field to instance array + * + * @param string $field + * @param string $value + */ + function add_field($field, $value) { + $this->fields[$field] = $value; + } + + + /** + * process say pay payments + * + * @return string status + */ + public function process_payment(){ + set_time_limit(60); + + // add some preset items + $this->add_field('VPSProtocol', $this->settings['vps_protocol']); + $this->add_field('Vendor', $this->settings['vendor']); + + // need to improve description - site description or part of cart + $this->add_field('Description', $this->settings['vendor']); + + $this->add_field('Currency', $this->settings['currency']); + $this->add_field('TxType', $this->settings['tx_type']); + + //generate a unique vendorTxCode + $time_stamp = date("ymdHis"); + $rand_num = rand(0,32000)*rand(0,32000); + $this->vendor_tx_code= $this->settings['vendor'] . "-" . $time_stamp . "-" . $rand_num; + $this->add_field('VendorTxCode', $this->vendor_tx_code); + + // hardcoded vendor for test demo + $this->add_field('Vendor', 'fountainsdirect'); + + foreach( $this->fields as $key => $value ) { + $this->field_string .= "$key=" . urlencode( $value ) . "&"; + } + $this->field_string = rtrim( $this->field_string, "& " ); + + //set up URL & options + $curl = curl_init($this->gateway_url); + curl_setopt($curl, CURLOPT_HEADER, 0); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $this->field_string); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_TIMEOUT,30); + //remove these last 2 lines if using an earlier version of CURL + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); + + // execute curl + $this->response_string = curl_exec($curl); + $this->response = array(); + // split response into lines + $lines = preg_split( '/\r\n|\r|\n/', $this->response_string ); + foreach($lines as $line){ + $key_value = preg_split( '/=/', $line ); + if(count($key_value) == 2) + $this->response[trim($key_value[0])] = trim($key_value[1]); + } + + // additional information returned for debugging + $this->response['VendorTxCode'] = $this->vendor_tx_code; + + $this->response['Created'] = date('Y-m-d H:i:s'); + + return $this->response['Status']; + } + + /** + * response status detail + * + */ + function get_response_status_text() { + return $this->response['StatusDetail']; + } + + /** + * returns array of all response results from sagepay + * + */ + function get_all_responses() { + return $this->response; + } + + + + +} \ No newline at end of file diff --git a/gocart/packages/payment/sage_pay/views/admin_form.php b/gocart/packages/payment/sage_pay/views/admin_form.php new file mode 100644 index 00000000..98b3a548 --- /dev/null +++ b/gocart/packages/payment/sage_pay/views/admin_form.php @@ -0,0 +1,76 @@ + + + lang('disabled'), 1 => lang('enabled')); + + //protocol (save hidden to keep in settings) + echo form_hidden('vps_protocol', $settings['vps_protocol']); + + //mode + $mode_options = array('simulator' => lang('simulator'), 'test' => lang('test'), 'live' => lang('live')); + //type + $type_options = array('PAYMENT' => lang('payment'), 'DEFFERRED' => lang('deferred'), 'AUTHENTICATE' => lang('authenticate')); + //available card types + $available_card_types = explode(',', SAGE_PAY_CARD_TYPES); + for ($i=0; $i < count($available_card_types); $i+=2) + $acts[$available_card_types[$i]]=$available_card_types[$i+1]; + //currency + $available_currency_types = explode(',', SAGE_PAY_CURRENCY); + for ($i=0; $i < count($available_currency_types); $i+=2) + $currency_options[$available_currency_types[$i]]=$available_currency_types[$i+1]; + +?> +
              Canned Messages
              - Delete + - Edit +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              :
              :
              :
              :
              + $value){ + echo ''; + } + ?> + +
              ' . $value . '' . form_checkbox('card_types[]', $key, isset($settings['card_types'][$key])) . '
              :
              :
              :
              diff --git a/gocart/packages/payment/sage_pay/views/customer_card.php b/gocart/packages/payment/sage_pay/views/customer_card.php new file mode 100644 index 00000000..e7593b38 --- /dev/null +++ b/gocart/packages/payment/sage_pay/views/customer_card.php @@ -0,0 +1,102 @@ + + + + +'01','02'=>'02','03'=>'03','04'=>'04','05'=>'05','06'=>'06','07'=>'07','08'=>'08','09'=>'09','10'=>'10','11'=>'11','12'=>'12'); + + // valid from years + $year_now = date('y'); + $valid_from_years = array(); + for($y = $year_now; $y > $year_now - 5; $y--) + $valid_from_years[$y] = $y; + // expires on years + $expires_on_years = array(); + for($y = $year_now; $y < $year_now + 7; $y++) + $expires_on_years[$y] = $y; + + +?> + + +
              +
              + *
              + 'CardHolder', 'name' => 'CardHolder', 'value' => @$sp_data["CardHolder"], 'class' => 'pmt_required textfield input', 'size' => '30')) ?> +
              +
              + *
              + +
              +
              + *
              + 'CardNumber', 'name' => 'CardNumber', 'value' => @$sp_data["CardNumber"], 'class' => 'pmt_required textfield input', 'size' => '30')) ?> +
              +
              +
              +
              +
              + +
              +
              + *
              + +
              +
              + *
              + 'CV2', 'name' => 'CV2', 'max_length' => '3', 'value' => @$sp_data["CV2"], 'class' => 'pmt_required textfield input', 'size' => '5')) ?> +
              +
              +
              \ No newline at end of file diff --git a/gocart/packages/shipping/fedex/language/english/fedex_lang.php b/gocart/packages/shipping/fedex/language/english/fedex_lang.php new file mode 100644 index 00000000..51d69f2a --- /dev/null +++ b/gocart/packages/shipping/fedex/language/english/fedex_lang.php @@ -0,0 +1,47 @@ +CI =& get_instance(); - $this->CI->load->model('Settings_model'); + $this->CI->lang->load('fedex'); //$this->server = 'https://gatewaybeta.fedex.com/GatewayDC'; //The WSDL is not included with the sample code. //Please include and reference in $path_to_wsdl variable. - $this->path_to_wsdl = APPPATH."packages/shipping/fedex/libraries/lib/RateService_v8.wsdl"; + $this->path_to_wsdl = APPPATH."packages/shipping/fedex/libraries/RateService_v8.wsdl"; // Packaging types - $this->package_types['FEDEX_10KG_BOX'] = '10KG Box'; - $this->package_types['FEDEX_25KG_BOX'] = '25KG Box'; - $this->package_types['FEDEX_BOX'] = 'Fedex Box'; - $this->package_types['FEDEX_ENVELOPE'] = 'Fedex Envelope'; - $this->package_types['FEDEX_PAK'] = 'Fedex Pak'; - $this->package_types['FEDEX_TUBE'] = 'Fedex Tube'; - $this->package_types['YOUR_PACKAGING'] = 'Your Packaging'; + $this->package_types['FEDEX_10KG_BOX'] = lang('FEDEX_10KG_BOX'); + $this->package_types['FEDEX_25KG_BOX'] = lang('FEDEX_25KG_BOX'); + $this->package_types['FEDEX_BOX'] = lang('FEDEX_BOX'); + $this->package_types['FEDEX_ENVELOPE'] = lang('FEDEX_ENVELOPE'); + $this->package_types['FEDEX_PAK'] = lang('FEDEX_PAK'); + $this->package_types['FEDEX_TUBE'] = lang('FEDEX_TUBE'); + $this->package_types['YOUR_PACKAGING'] = lang('YOUR_PACKAGING'); // Available Services - $this->service_list['EUROPE_FIRST_INTERNATIONAL_PRIORITY'] = 'Fedex Europe 1st Intn\'l Priority'; - $this->service_list['FEDEX_1_DAY_FREIGHT'] = 'Fedex 1 Day Freight'; - $this->service_list['FEDEX_2_DAY'] = 'Fedex 2 Day'; - $this->service_list['FEDEX_2_DAY_FREIGHT'] = 'Fedex 2 Day Freight'; - $this->service_list['FEDEX_3_DAY_FREIGHT'] = 'Fedex 3 Day Freight'; - $this->service_list['FEDEX_EXPRESS_SAVER'] = 'Fedex Express Saver'; - $this->service_list['FEDEX_GROUND'] = 'Fedex Ground'; - $this->service_list['FIRST_OVERNIGHT'] = 'Fedex First Overnight'; - $this->service_list['GROUND_HOME_DELIVERY'] = 'Fedex Ground Home Delivery'; - $this->service_list['INTERNATIONAL_ECONOMY'] = 'Fedex International Economy'; - $this->service_list['INTERNATIONAL_ECONOMY_FREIGHT'] = 'Fedex International Economy Freight'; - $this->service_list['INTERNATIONAL_FIRST'] = 'Fedex International First'; - $this->service_list['INTERNATIONAL_PRIORITY'] = 'Fedex International Priority'; - $this->service_list['INTERNATIONAL_PRIORITY_FREIGHT'] = 'Fedex International Priority Freight'; - $this->service_list['PRIORITY_OVERNIGHT'] = 'Fedex Priority Overnight'; - $this->service_list['SMART_POST'] = 'Fedex Smart Post'; - $this->service_list['STANDARD_OVERNIGHT'] = 'Fedex Standard Overnight'; - $this->service_list['FEDEX_FREIGHT'] = 'Fedex Freight'; - $this->service_list['FEDEX_NATIONAL_FREIGHT'] = 'Fedex National Freight'; - $this->service_list['INTERNATIONAL_GROUND'] = 'Fedex International Ground'; + $this->service_list['EUROPE_FIRST_INTERNATIONAL_PRIORITY'] = lang('EUROPE_FIRST_INTERNATIONAL_PRIORITY'); + $this->service_list['FEDEX_1_DAY_FREIGHT'] = lang('FEDEX_1_DAY_FREIGHT'); + $this->service_list['FEDEX_2_DAY'] = lang('FEDEX_2_DAY'); + $this->service_list['FEDEX_2_DAY_FREIGHT'] = lang('FEDEX_2_DAY_FREIGHT'); + $this->service_list['FEDEX_3_DAY_FREIGHT'] = lang('FEDEX_3_DAY_FREIGHT'); + $this->service_list['FEDEX_EXPRESS_SAVER'] = lang('FEDEX_EXPRESS_SAVER'); + $this->service_list['FEDEX_GROUND'] = lang('FEDEX_GROUND'); + $this->service_list['FIRST_OVERNIGHT'] = lang('FIRST_OVERNIGHT'); + $this->service_list['GROUND_HOME_DELIVERY'] = lang('GROUND_HOME_DELIVERY'); + $this->service_list['INTERNATIONAL_ECONOMY'] = lang('INTERNATIONAL_ECONOMY'); + $this->service_list['INTERNATIONAL_ECONOMY_FREIGHT'] = lang('INTERNATIONAL_ECONOMY_FREIGHT'); + $this->service_list['INTERNATIONAL_FIRST'] = lang('INTERNATIONAL_FIRST'); + $this->service_list['INTERNATIONAL_PRIORITY'] = lang('INTERNATIONAL_PRIORITY'); + $this->service_list['INTERNATIONAL_PRIORITY_FREIGHT'] = lang('INTERNATIONAL_PRIORITY_FREIGHT'); + $this->service_list['PRIORITY_OVERNIGHT'] = lang('PRIORITY_OVERNIGHT'); + $this->service_list['SMART_POST'] = lang('SMART_POST'); + $this->service_list['STANDARD_OVERNIGHT'] = lang('STANDARD_OVERNIGHT'); + $this->service_list['FEDEX_FREIGHT'] = lang('FEDEX_FREIGHT'); + $this->service_list['FEDEX_NATIONAL_FREIGHT'] = lang('FEDEX_NATIONAL_FREIGHT'); + $this->service_list['INTERNATIONAL_GROUND'] = lang('INTERNATIONAL_GROUND'); } @@ -96,7 +96,7 @@ function rates() //====== Fedex code start - require_once('lib/fedex-common.php5'); + require_once('fedex-common.php'); ini_set("soap.wsdl_cache_enabled", "0"); @@ -132,11 +132,11 @@ function rates() $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; $request['RequestedShipment']['PackagingType'] = $package; $request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => $weight, - 'Units' => 'LB'), + 'Units' => $this->config->item('weight_unit')), 'Dimensions' => array('Length' => $pkg_length, 'Width' => $pkg_width, 'Height' => $pkg_height, - 'Units' => 'IN'))); + 'Units' => $this->config->item('dimension_unit')))); // send request $response = $client ->getRates($request); @@ -249,12 +249,13 @@ function form($post = false) } - $form = ' - - - '; + $form = '
              Key: '.form_input('key', $key, 'class="gc_tf1"') .'
              Ship Account: '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
              Meter: '.form_input('meter', $meter, 'class="gc_tf1"') .'
              Password: '.form_input('password', $password, 'class="gc_tf1"') .'
              + + + '; - $form .= ''; + $form .= ''; - $form .= ' + + + + + + + +
              '.lang('fedex_key').': '.form_input('key', $key, 'class="gc_tf1"') .'
              '.lang('fedex_account').': '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
              '.lang('fedex_meter').': '.form_input('meter', $meter, 'class="gc_tf1"') .'
              '.lang('password').': '.form_input('password', $password, 'class="gc_tf1"') .'
              Services To Offer: '; + $form .= '
              '.lang('fedex_services').': '; + foreach($this->service_list as $id=>$opt) { @@ -263,35 +264,35 @@ function form($post = false) $form .= "> $opt
              "; } - $form .= '
              Container: '; + $form .= '
              '.lang('container').':'; $opts = $this->package_types; $form .= form_dropdown('package', $opts, $package); - $form .= '
              Container Dimensions (inches):
              '.lang('dimensions').' ('. $this->CI->config->item('dimension_unit'). '):
              Height: '; + $form .= '
              '.lang('height').': '; $form .= ' '. form_input('height', $height, 'class="gc_tf1"'); - $form .= '
              Width: '; + $form .= '
              '.lang('width').': '; $form .= ' '. form_input('width', $width, 'class="gc_tf1"'); - $form .= '
              Length: '; + $form .= '
              '.lang('length').': '; $form .= ' '. form_input('length', $length, 'class="gc_tf1"'); - $form .= '
              Handling Fee: '; + $form .= '
              '.lang('fee').': '; $form .= form_dropdown('handling_method', array('$'=>'$', '%'=>'%'), $handling_method); $form .= ' '. form_input('handling_amount', $handling_amount, 'class="gc_tf1"'); - $form .= '
              Module Status: '; + $form .= '
              '.lang('enabled').': '; - $opts = array('Disabled', 'Enabled'); + $opts = array(lang('disabled'), lang('enabled')); $form .= form_dropdown('enabled', $opts, $enabled); diff --git a/gocart/packages/shipping/flatrate/language/english/flatrate_lang.php b/gocart/packages/shipping/flatrate/language/english/flatrate_lang.php new file mode 100644 index 00000000..ba71bc18 --- /dev/null +++ b/gocart/packages/shipping/flatrate/language/english/flatrate_lang.php @@ -0,0 +1,4 @@ +CI =& get_instance(); - $this->CI->load->model('Settings_model'); + $this->CI->lang->load('flatrate'); } function rates() @@ -47,17 +47,15 @@ function form($post = false) { $settings = $this->CI->Settings_model->get_settings('flatrate'); $rate = $settings['rate']; - $enabled = $settings['enabled']; } else { $rate = $post['rate']; - $enabled = $post['enabled']; } - $form = ' -
              Rate:
              Enabled: +
              '.lang('rate').':
              '.lang('enabled').':
              '; return $form; @@ -80,7 +78,7 @@ function check() if(!is_numeric($_POST['rate'])) { - $error .= '
              The rate must be a numerical value.
              '; + $error .= '
              '.lang('val_err').'
              '; } //count the errors diff --git a/gocart/packages/shipping/tablerate/language/english/tablerate_lang.php b/gocart/packages/shipping/tablerate/language/english/tablerate_lang.php new file mode 100644 index 00000000..27fb3e07 --- /dev/null +++ b/gocart/packages/shipping/tablerate/language/english/tablerate_lang.php @@ -0,0 +1,31 @@ +Note: Fields that are left blank or contain non-numeric will be removed.'; + +$lang['add_tbl'] = 'Add New Table'; + +$lang['btn_tbl_remove'] = 'Remove Table'; +$lang['btn_rename'] = 'Rename Table'; +$lang['btn_remove'] = 'Remove'; +$lang['btn_above'] = 'Add Above'; +$lang['btn_below'] = 'Add Below'; + +$lang['by_country'] = 'By Country'; +$lang['weight'] = 'Weight'; +$lang['price'] = 'Price'; +$lang['rates'] = 'Rates'; +$lang['rate'] = 'Rate'; +$lang['from'] = 'From'; + +$lang['na'] = 'N/A'; + +$lang['tbl_err'] = 'You must leave at least one table.'; + +$lang['method'] = 'Method'; + + +// form check +$lang['empty_post'] = 'Nothing was sent.'; +$lang['post_err'] = 'You must enter at least 1 rate per table in order to proceed.'; \ No newline at end of file diff --git a/gocart/packages/shipping/tablerate/libraries/tablerate.php b/gocart/packages/shipping/tablerate/libraries/tablerate.php index 948fcc53..fc060f6f 100644 --- a/gocart/packages/shipping/tablerate/libraries/tablerate.php +++ b/gocart/packages/shipping/tablerate/libraries/tablerate.php @@ -8,8 +8,7 @@ class tablerate function tablerate() { $this->CI =& get_instance(); - $this->CI->load->model(array('Settings_model', 'location_model')); - $this->CI->load->library('session'); + $this->CI->lang->load('tablerate'); } function rates() @@ -42,7 +41,7 @@ function rates() $order_weight = $this->get_order_weight(); $order_price = $this->get_order_price(); - $countries = $this->CI->location_model->get_countries(); + $countries = $this->CI->Location_model->get_countries(); $rates = array(); @@ -104,13 +103,13 @@ function install() ,'10' => '15.00' ,'0' => '5.00'); - $table = array('Table_Rate' => $rates); + $table = array('Example' => $rates); //note that the code here is plural, these are the rates $this->CI->Settings_model->save_settings('tablerates', array('rates' => serialize($table))); $this->CI->Settings_model->save_settings('tablerate', array('enabled'=>'0', - 'method'=>serialize(array('Table_Rate'=>'price')), - 'location'=>serialize(array('Table_Rate'=>'')) //location is by country ID + 'method'=>serialize(array('Example'=>'price')), + 'location'=>serialize(array('Example'=>'')) //location is by country ID )); } @@ -142,34 +141,29 @@ function form($post = false) $rates = $this->organize_post_rates($post['rates']); } - $countries = $this->CI->location_model->get_countries_menu(); - - //set weight and price to blank by default - $weight = ''; - $price = ''; + $countries = $this->CI->Location_model->get_countries_menu(); // fetch form contents - ob_start(); - include('form.php'); - $form = ob_get_contents(); - ob_end_clean(); + $data = array('settings'=>$settings, + 'rates' =>$rates, + 'countries' =>$countries ); + return $this->CI->load->view('admin_form', $data, true); - return $form; } function check() { if(empty($_POST)) { - return '
              Nothing was sent
              '; + return '
              '.lang('empty_post').'
              '; } foreach($_POST['from'] as $table=>$list) { if(empty($list)) { - return '
              You must enter at least 1 rate per table in order to proceed.
              '; + return '
              '.lang('post_err').'
              '; } } diff --git a/gocart/packages/shipping/tablerate/libraries/form.php b/gocart/packages/shipping/tablerate/views/admin_form.php similarity index 63% rename from gocart/packages/shipping/tablerate/libraries/form.php rename to gocart/packages/shipping/tablerate/views/admin_form.php index 39ac5454..8ab59862 100644 --- a/gocart/packages/shipping/tablerate/libraries/form.php +++ b/gocart/packages/shipping/tablerate/views/admin_form.php @@ -1,4 +1,4 @@ -
              Note: Note Fields that are left blank or contain non-numeric will be removed.
              +
              \ No newline at end of file From 0772b8e6db8305c2e02e32585f82c47d023980b8 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 12 Apr 2012 08:59:35 -0500 Subject: [PATCH 175/343] fixed get_homepage_banners function to properly remove disabled banners --- gocart/models/banner_model.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gocart/models/banner_model.php b/gocart/models/banner_model.php index e309611d..23c530f2 100644 --- a/gocart/models/banner_model.php +++ b/gocart/models/banner_model.php @@ -14,7 +14,9 @@ function get_homepage_banners($limit = false) { $banners = $this->db->order_by('sequence ASC')->get('banners')->result(); $count = 1; - foreach ($banners as &$banner) + + $return = array(); + foreach ($banners as $banner) { if ($banner->enable_on == '0000-00-00') { @@ -44,10 +46,11 @@ function get_homepage_banners($limit = false) if (($enable_test && $enable_test > $curDate) || ($disable_test && $disable_test <= $curDate)) { - unset($banner); + //unset($ad); } else { + $return[] = $banner; $count++; } @@ -59,7 +62,12 @@ function get_homepage_banners($limit = false) } } } - return $banners; + + if($limit) + { + array_splice($return, $limit); + } + return $return; } function get_banner($id) From b2de876c3333fccb94110618811c173f281caff7 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 12 Apr 2012 09:02:33 -0500 Subject: [PATCH 176/343] updated --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index 31577d03..22a17ee8 100755 --- a/changelog.txt +++ b/changelog.txt @@ -9,6 +9,8 @@ Version 1.2.4 - Removed default Lousiana tax of %4. - Updated default uri-protocol to AUTO. - Fixed colspan on an empty product table in the admin products view. + - Fixed admin banner datepicker javascript and fields + - Fixed banner_model.php to properly restrict disabled banners for the get_homepage_banners() function. Version 1.2.3 ------------- From 58cbbc4c4b95336ea56887b70e71962d60288bc9 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 12 Apr 2012 09:58:28 -0500 Subject: [PATCH 177/343] fixed variable name --- gocart/views/admin/banner_form.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/gocart/views/admin/banner_form.php b/gocart/views/admin/banner_form.php index c681c4a3..6a56668c 100644 --- a/gocart/views/admin/banner_form.php +++ b/gocart/views/admin/banner_form.php @@ -1,14 +1,12 @@ 'gc_tf1', 'name'=>'title', 'id'=>'title', 'value' => set_value('title', $title)); -$enable_on = array('class'=>'gc_tf1', 'id'=>'enable_on_alt', 'value' => set_value('enable_on_alt', reverse_format($enable_on))); -$disable_on = array('class'=>'gc_tf1', 'id'=>'disable_on_alt', 'value' => set_value('disable_on_alt', reverse_format($disable_on))); -$f_image = array('style'=>'padding:5px','name'=>'image', 'id'=>'image'); -$link = array('class'=>'gc_tf1', 'name'=>'link', 'id'=>'link', 'value' => set_value('link', $link)); -$new_window = array('id'=>'new_window', 'name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window)); -?> +$title = array('name'=>'title', 'value' => set_value('title', $title)); +$enable_on_alt = array('id'=>'enable_on_alt', 'value' => set_value('enable_on_alt', reverse_format($enable_on))); +$disable_on_alt = array('id'=>'disable_on_alt', 'value' => set_value('disable_on_alt', reverse_format($disable_on))); +$f_image = array('name'=>'image', 'id'=>'image'); +$link = array('name'=>'link', 'value' => set_value('link', $link)); +$new_window = array('name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window));?> config->item('admin_folder').'/banners/form/'.$id); ?> @@ -33,13 +31,13 @@
              - +
              - +
              From cb777080b309d3b328e5b6c7c8bdfd3021b1beec Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 12 Apr 2012 10:20:37 -0500 Subject: [PATCH 178/343] Fixed the date fields to properly save on boxes --- gocart/views/admin/box_form.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gocart/views/admin/box_form.php b/gocart/views/admin/box_form.php index 76b17adb..f6b42814 100644 --- a/gocart/views/admin/box_form.php +++ b/gocart/views/admin/box_form.php @@ -3,8 +3,8 @@ 'gc_tf1', 'name'=>'title', 'id'=>'title', 'value' => set_value('title', $title)); -$enable_on = array('class'=>'gc_tf1', 'id'=>'enable_on', 'value' => set_value('enable_on', reverse_format($enable_on))); -$disable_on = array('class'=>'gc_tf1', 'id'=>'disable_on', 'value' => set_value('disable_on', reverse_format($disable_on))); +$enable_on_alt = array('class'=>'gc_tf1', 'id'=>'enable_on_alt', 'value' => set_value('enable_on', reverse_format($enable_on))); +$disable_on_alt = array('class'=>'gc_tf1', 'id'=>'disable_on_alt', 'value' => set_value('disable_on', reverse_format($disable_on))); $f_image = array('style'=>'pboxding:5px','name'=>'image', 'id'=>'image'); $link = array('class'=>'gc_tf1', 'name'=>'link', 'id'=>'link', 'value' => set_value('link', $link)); $new_window = array('id'=>'new_window', 'name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window)); @@ -33,14 +33,14 @@
              - - + +
              - - + +
              @@ -61,8 +61,8 @@ \ No newline at end of file From e3875568a65982b9e06d3593a4ad770125a0086b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Fri, 13 Apr 2012 08:37:29 -0500 Subject: [PATCH 179/343] updated --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 22a17ee8..20ae839c 100755 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,7 @@ Version 1.2.4 - Fixed colspan on an empty product table in the admin products view. - Fixed admin banner datepicker javascript and fields - Fixed banner_model.php to properly restrict disabled banners for the get_homepage_banners() function. + - Fixed meta tag code in the default theme header. Version 1.2.3 ------------- From e4a5c0cc4f4252006e8d3667a00a6bcce2733330 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Fri, 13 Apr 2012 15:42:30 -0500 Subject: [PATCH 180/343] pagination fixes for sites using index.php --- gocart/controllers/admin/orders.php | 2 +- gocart/controllers/secure.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gocart/controllers/admin/orders.php b/gocart/controllers/admin/orders.php index 17f5fd36..d3f28638 100644 --- a/gocart/controllers/admin/orders.php +++ b/gocart/controllers/admin/orders.php @@ -45,7 +45,7 @@ function index($sort_by='order_number',$sortorder='desc', $code=0, $page=0, $row $this->load->library('pagination'); - $config['base_url'] = $this->config->item('admin_folder').'/orders/index/'.$sort_by.'/'.$sortorder.'/'.$code.'/'; + $config['base_url'] = site_url($this->config->item('admin_folder').'/orders/index/'.$sort_by.'/'.$sortorder.'/'.$code.'/'); $config['total_rows'] = $data['total']; $config['per_page'] = $rows; diff --git a/gocart/controllers/secure.php b/gocart/controllers/secure.php index 1672d871..6287ef36 100644 --- a/gocart/controllers/secure.php +++ b/gocart/controllers/secure.php @@ -355,7 +355,7 @@ function my_account($offset=0) // paginate the orders $this->load->library('pagination'); - $config['base_url'] = base_url().'secure/my_account'; + $config['base_url'] = site_url('secure/my_account'); $config['total_rows'] = $this->order_model->count_customer_orders($this->customer['id']); $config['per_page'] = '15'; From 5b8f7d93553aecf9efa25c1361e1a24f419d3171 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 19 Apr 2012 08:30:51 -0500 Subject: [PATCH 181/343] Fixed login redirect for expired customer sessions (thanks Dinesh) --- gocart/models/customer_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/models/customer_model.php b/gocart/models/customer_model.php index 61a548c4..1c4084a6 100755 --- a/gocart/models/customer_model.php +++ b/gocart/models/customer_model.php @@ -290,7 +290,7 @@ function is_logged_in($redirect = false, $default_redirect = 'secure/login/') if($default_redirect) { - redirect('login'); + redirect('secure/login'); } return false; From ac8c7e43122a730e5a81a37c944b31ae5bcb6af2 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 19 Apr 2012 08:30:58 -0500 Subject: [PATCH 182/343] updated --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 20ae839c..b4709486 100755 --- a/changelog.txt +++ b/changelog.txt @@ -12,6 +12,7 @@ Version 1.2.4 - Fixed admin banner datepicker javascript and fields - Fixed banner_model.php to properly restrict disabled banners for the get_homepage_banners() function. - Fixed meta tag code in the default theme header. + - Fixed login redirect for expired customer sessions (thanks Dinesh) Version 1.2.3 ------------- From 4e918fbee2c1467047d2d393ae5a665f471f470d Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 2 May 2012 08:59:09 -0500 Subject: [PATCH 183/343] Fixed admin order list pagination --- gocart/controllers/admin/orders.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gocart/controllers/admin/orders.php b/gocart/controllers/admin/orders.php index d3f28638..1e3a41f2 100644 --- a/gocart/controllers/admin/orders.php +++ b/gocart/controllers/admin/orders.php @@ -45,9 +45,10 @@ function index($sort_by='order_number',$sortorder='desc', $code=0, $page=0, $row $this->load->library('pagination'); - $config['base_url'] = site_url($this->config->item('admin_folder').'/orders/index/'.$sort_by.'/'.$sortorder.'/'.$code.'/'); - $config['total_rows'] = $data['total']; - $config['per_page'] = $rows; + $config['base_url'] = site_url($this->config->item('admin_folder').'/orders/index/'.$sort_by.'/'.$sortorder.'/'.$code.'/'); + $config['total_rows'] = $data['total']; + $config['per_page'] = $rows; + $config['uri_segment'] = 7; $this->pagination->initialize($config); From 79a80b185e8fc186df24b0cde0d4b69a14b50f60 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 2 May 2012 21:30:36 -0500 Subject: [PATCH 184/343] partial admin order pagination fix --- gocart/controllers/admin/orders.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/controllers/admin/orders.php b/gocart/controllers/admin/orders.php index 1e3a41f2..de7cfc0c 100644 --- a/gocart/controllers/admin/orders.php +++ b/gocart/controllers/admin/orders.php @@ -48,7 +48,7 @@ function index($sort_by='order_number',$sortorder='desc', $code=0, $page=0, $row $config['base_url'] = site_url($this->config->item('admin_folder').'/orders/index/'.$sort_by.'/'.$sortorder.'/'.$code.'/'); $config['total_rows'] = $data['total']; $config['per_page'] = $rows; - $config['uri_segment'] = 7; + $config['uri_segment'] = 7; $this->pagination->initialize($config); From d0c4dd5ada1c33ebc66715143f18966e2d90425d Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 7 May 2012 08:47:08 -0500 Subject: [PATCH 185/343] Load the payment module even if they don't owe anything. This is because without loading it, paypal breaks. I assume other payment gateways that process the payment elsewhere would have this same problem. --- gocart/controllers/checkout.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index da911b6f..d537c8d7 100644 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -438,14 +438,12 @@ function place_order() redirect('checkout'); } } + //load the payment module + $this->load->add_package_path(APPPATH.'packages/payment/'.$payment['module'].'/'); + $this->load->library($payment['module']); // Is payment bypassed? (total is zero, or processed flag is set) if($this->go_cart->total() > 0 && ! isset($payment['confirmed'])) { - - //load the payment module - $this->load->add_package_path(APPPATH.'packages/payment/'.$payment['module'].'/'); - $this->load->library($payment['module']); - //run the payment $error_status = $this->$payment['module']->process_payment(); if($error_status !== false) From 6f91bba5cdb7aff93a13f791c97bd5e366aec27f Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Fri, 11 May 2012 09:08:55 -0500 Subject: [PATCH 186/343] PHP error fix for admin order view related to product code. --- gocart/controllers/admin/orders.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/controllers/admin/orders.php b/gocart/controllers/admin/orders.php index de7cfc0c..7089c7f8 100644 --- a/gocart/controllers/admin/orders.php +++ b/gocart/controllers/admin/orders.php @@ -103,7 +103,7 @@ function view($id) // we need to see if any items are gift cards, so we can generate an activation link foreach($data['order']->contents as $orderkey=>$product) { - if(isset($product['is_gc'])) + if(isset($product['is_gc']) && $product['is_gc'] == true) { if($this->Gift_card_model->is_active($product['code'])) { From cdd822401e04e5c56f82f07846727ab55c850dfb Mon Sep 17 00:00:00 2001 From: Shawn Crigger Date: Tue, 19 Jun 2012 11:16:31 -0400 Subject: [PATCH 187/343] Updated CodeIgniter to 2.1.1 --- gocart/config/mimes.php | 17 +- system/core/CodeIgniter.php | 2 +- system/core/Input.php | 135 ++++++++- system/core/Security.php | 2 +- system/database/DB_active_rec.php | 12 +- system/database/DB_driver.php | 44 ++- system/database/drivers/pdo/index.html | 10 + system/database/drivers/pdo/pdo_driver.php | 51 ++-- system/database/drivers/pdo/pdo_forge.php | 266 ++++++++++++++++++ system/database/drivers/pdo/pdo_result.php | 182 ++++++++++++ system/database/drivers/pdo/pdo_utility.php | 103 +++++++ system/helpers/form_helper.php | 2 +- system/helpers/url_helper.php | 36 ++- system/language/english/migration_lang.php | 2 +- system/libraries/Cache/Cache.php | 2 +- system/libraries/Cache/drivers/Cache_apc.php | 2 +- .../libraries/Cache/drivers/Cache_dummy.php | 2 +- system/libraries/Cache/drivers/Cache_file.php | 2 +- .../Cache/drivers/Cache_memcached.php | 2 +- system/libraries/Cart.php | 2 +- system/libraries/Driver.php | 4 +- system/libraries/Form_validation.php | 5 +- system/libraries/Image_lib.php | 4 +- system/libraries/Migration.php | 2 +- system/libraries/Upload.php | 107 +++++-- 25 files changed, 889 insertions(+), 109 deletions(-) create mode 100755 system/database/drivers/pdo/index.html create mode 100755 system/database/drivers/pdo/pdo_forge.php create mode 100755 system/database/drivers/pdo/pdo_result.php create mode 100755 system/database/drivers/pdo/pdo_utility.php diff --git a/gocart/config/mimes.php b/gocart/config/mimes.php index de923c45..100f7d44 100644 --- a/gocart/config/mimes.php +++ b/gocart/config/mimes.php @@ -10,7 +10,7 @@ $mimes = array( 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', - 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'), + 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'), 'bin' => 'application/macbinary', 'dms' => 'application/octet-stream', 'lha' => 'application/octet-stream', @@ -56,7 +56,7 @@ 'midi' => 'audio/midi', 'mpga' => 'audio/mpeg', 'mp2' => 'audio/mpeg', - 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3'), + 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), 'aif' => 'audio/x-aiff', 'aiff' => 'audio/x-aiff', 'aifc' => 'audio/x-aiff', @@ -65,8 +65,8 @@ 'rpm' => 'audio/x-pn-realaudio-plugin', 'ra' => 'audio/x-realaudio', 'rv' => 'video/vnd.rn-realvideo', - 'wav' => 'audio/x-wav', - 'bmp' => 'image/bmp', + 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), + 'bmp' => array('image/bmp', 'image/x-windows-bmp'), 'gif' => 'image/gif', 'jpeg' => array('image/jpeg', 'image/pjpeg'), 'jpg' => array('image/jpeg', 'image/pjpeg'), @@ -93,13 +93,14 @@ 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'), + 'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'), 'word' => array('application/msword', 'application/octet-stream'), 'xl' => 'application/excel', - 'eml' => 'message/rfc822' + 'eml' => 'message/rfc822', + 'json' => array('application/json', 'text/json') ); /* End of file mimes.php */ -/* Location: ./application/config/mimes.php */ \ No newline at end of file +/* Location: ./application/config/mimes.php */ diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index db1aee57..ec729410 100755 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -33,7 +33,7 @@ * @var string * */ - define('CI_VERSION', '2.1.0'); + define('CI_VERSION', '2.1.1'); /** * CodeIgniter Branch (Core = TRUE, Reactor = FALSE) diff --git a/system/core/Input.php b/system/core/Input.php index 9bfb5f1f..3559d860 100755 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -365,18 +365,70 @@ function ip_address() /** * Validate IP Address * + * @access public + * @param string + * @param string ipv4 or ipv6 + * @return bool + */ + public function valid_ip($ip, $which = '') + { + $which = strtolower($which); + + // First check if filter_var is available + if (is_callable('filter_var')) + { + switch ($which) { + case 'ipv4': + $flag = FILTER_FLAG_IPV4; + break; + case 'ipv6': + $flag = FILTER_FLAG_IPV6; + break; + default: + $flag = ''; + break; + } + + return (bool) filter_var($ip, FILTER_VALIDATE_IP, $flag); + } + + if ($which !== 'ipv6' && $which !== 'ipv4') + { + if (strpos($ip, ':') !== FALSE) + { + $which = 'ipv6'; + } + elseif (strpos($ip, '.') !== FALSE) + { + $which = 'ipv4'; + } + else + { + return FALSE; + } + } + + $func = '_valid_'.$which; + return $this->$func($ip); + } + + // -------------------------------------------------------------------- + + /** + * Validate IPv4 Address + * * Updated version suggested by Geert De Deckere * - * @access public + * @access protected * @param string - * @return string + * @return bool */ - function valid_ip($ip) + protected function _valid_ipv4($ip) { $ip_segments = explode('.', $ip); // Always 4 segments needed - if (count($ip_segments) != 4) + if (count($ip_segments) !== 4) { return FALSE; } @@ -385,6 +437,7 @@ function valid_ip($ip) { return FALSE; } + // Check each segment foreach ($ip_segments as $segment) { @@ -401,6 +454,80 @@ function valid_ip($ip) // -------------------------------------------------------------------- + /** + * Validate IPv6 Address + * + * @access protected + * @param string + * @return bool + */ + protected function _valid_ipv6($str) + { + // 8 groups, separated by : + // 0-ffff per group + // one set of consecutive 0 groups can be collapsed to :: + + $groups = 8; + $collapsed = FALSE; + + $chunks = array_filter( + preg_split('/(:{1,2})/', $str, NULL, PREG_SPLIT_DELIM_CAPTURE) + ); + + // Rule out easy nonsense + if (current($chunks) == ':' OR end($chunks) == ':') + { + return FALSE; + } + + // PHP supports IPv4-mapped IPv6 addresses, so we'll expect those as well + if (strpos(end($chunks), '.') !== FALSE) + { + $ipv4 = array_pop($chunks); + + if ( ! $this->_valid_ipv4($ipv4)) + { + return FALSE; + } + + $groups--; + } + + while ($seg = array_pop($chunks)) + { + if ($seg[0] == ':') + { + if (--$groups == 0) + { + return FALSE; // too many groups + } + + if (strlen($seg) > 2) + { + return FALSE; // long separator + } + + if ($seg == '::') + { + if ($collapsed) + { + return FALSE; // multiple collapsed + } + + $collapsed = TRUE; + } + } + elseif (preg_match("/[^0-9a-f]/i", $seg) OR strlen($seg) > 4) + { + return FALSE; // invalid segment + } + } + + return $collapsed OR $groups == 1; + } + + // -------------------------------------------------------------------- + /** * User Agent * diff --git a/system/core/Security.php b/system/core/Security.php index a3e22743..6f5ac1ed 100755 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -848,7 +848,7 @@ protected function _csrf_set_hash() // each page load since a page could contain embedded // sub-pages causing this feature to fail if (isset($_COOKIE[$this->_csrf_cookie_name]) && - $_COOKIE[$this->_csrf_cookie_name] != '') + preg_match('#^[0-9a-f]{32}$#iS', $_COOKIE[$this->_csrf_cookie_name]) === 1) { return $this->_csrf_hash = $_COOKIE[$this->_csrf_cookie_name]; } diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php index 7bab729f..10febb1f 100755 --- a/system/database/DB_active_rec.php +++ b/system/database/DB_active_rec.php @@ -255,7 +255,7 @@ public function distinct($val = TRUE) */ public function from($from) { - foreach ((array)$from as $val) + foreach ((array) $from as $val) { if (strpos($val, ',') !== FALSE) { @@ -660,8 +660,12 @@ protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $n $prefix = (count($this->ar_like) == 0) ? '' : $type; $v = $this->escape_like_str($v); - - if ($side == 'before') + + if ($side == 'none') + { + $like_statement = $prefix." $k $not LIKE '{$v}'"; + } + elseif ($side == 'before') { $like_statement = $prefix." $k $not LIKE '%{$v}'"; } @@ -1643,7 +1647,7 @@ protected function _track_aliases($table) if (strpos($table, " ") !== FALSE) { // if the alias is written with the AS keyword, remove it - $table = preg_replace('/ AS /i', ' ', $table); + $table = preg_replace('/\s+AS\s+/i', ' ', $table); // Grab the alias $table = trim(strrchr($table, " ")); diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 3680b85c..775fd335 100755 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -265,6 +265,12 @@ function query($sql, $binds = FALSE, $return_object = TRUE) $sql = preg_replace("/(\W)".$this->swap_pre."(\S+?)/", "\\1".$this->dbprefix."\\2", $sql); } + // Compile binds if needed + if ($binds !== FALSE) + { + $sql = $this->compile_binds($sql, $binds); + } + // Is query caching enabled? If the query is a "read type" // we will load the caching class and return the previously // cached query if it exists @@ -280,12 +286,6 @@ function query($sql, $binds = FALSE, $return_object = TRUE) } } - // Compile binds if needed - if ($binds !== FALSE) - { - $sql = $this->compile_binds($sql, $binds); - } - // Save the query for debugging if ($this->save_queries == TRUE) { @@ -1015,8 +1015,14 @@ function call_function($function) else { $args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null; - - return call_user_func_array($function, $args); + if (is_null($args)) + { + return call_user_func($function); + } + else + { + return call_user_func_array($function, $args); + } } } @@ -1261,12 +1267,15 @@ function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifier // If the item has an alias declaration we remove it and set it aside. // Basically we remove everything to the right of the first space - $alias = ''; if (strpos($item, ' ') !== FALSE) { - $alias = strstr($item, " "); + $alias = strstr($item, ' '); $item = substr($item, 0, - strlen($alias)); } + else + { + $alias = ''; + } // This is basically a bug fix for queries that use MAX, MIN, etc. // If a parenthesis is found we know that we do not need to @@ -1382,9 +1391,20 @@ function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifier return $item.$alias; } + // -------------------------------------------------------------------- -} + /** + * Dummy method that allows Active Record class to be disabled + * + * This function is used extensively by every db driver. + * + * @return void + */ + protected function _reset_select() + { + } +} /* End of file DB_driver.php */ -/* Location: ./system/database/DB_driver.php */ +/* Location: ./system/database/DB_driver.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/index.html b/system/database/drivers/pdo/index.html new file mode 100755 index 00000000..c942a79c --- /dev/null +++ b/system/database/drivers/pdo/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

              Directory access is forbidden.

              + + + \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index f6989327..654074cd 100755 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -5,11 +5,11 @@ * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter - * @author ExpressionEngine Dev Team * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html + * @author EllisLab Dev Team * @link http://codeigniter.com - * @since Version 2.1.0 + * @since Version 2.1.1 * @filesource */ @@ -25,10 +25,9 @@ * @package CodeIgniter * @subpackage Drivers * @category Database - * @author ExpressionEngine Dev Team + * @author EllisLab Dev Team * @link http://codeigniter.com/user_guide/database/ */ - class CI_DB_pdo_driver extends CI_DB { var $dbdriver = 'pdo'; @@ -37,7 +36,7 @@ class CI_DB_pdo_driver extends CI_DB { var $_escape_char = ''; var $_like_escape_str; var $_like_escape_chr; - + /** * The syntax to count rows is slightly different across different @@ -64,11 +63,11 @@ function __construct($params) { $this->hostname .= ";charset={$this->char_set}"; } - + //Set the charset with the connection options $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; } - else if (strpos($this->hostname, 'odbc') !== FALSE) + elseif (strpos($this->hostname, 'odbc') !== FALSE) { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; @@ -78,8 +77,9 @@ function __construct($params) $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } - - $this->hostname .= ";dbname=".$this->database; + + empty($this->database) OR $this->hostname .= ';dbname='.$this->database; + $this->trans_enabled = FALSE; $this->_random_keyword = ' RND('.time().')'; // database specific random keyword @@ -94,7 +94,7 @@ function __construct($params) function db_connect() { $this->options['PDO::ATTR_ERRMODE'] = PDO::ERRMODE_SILENT; - + return new PDO($this->hostname, $this->username, $this->password, $this->options); } @@ -189,17 +189,26 @@ function _version() function _execute($sql) { $sql = $this->_prep_query($sql); - $result_id = $this->conn_id->query($sql); - + $result_id = $this->conn_id->prepare($sql); + $result_id->execute(); + if (is_object($result_id)) { - $this->affect_rows = $result_id->rowCount(); + if (is_numeric(stripos($sql, 'SELECT'))) + { + $this->affect_rows = count($result_id->fetchAll()); + $result_id->execute(); + } + else + { + $this->affect_rows = $result_id->rowCount(); + } } else { $this->affect_rows = 0; } - + return $result_id; } @@ -319,16 +328,16 @@ function escape_str($str, $like = FALSE) return $str; } - + //Escape the string $str = $this->conn_id->quote($str); - + //If there are duplicated quotes, trim them away if (strpos($str, "'") === 0) { $str = substr($str, 1, -1); } - + // escape LIKE condition wildcards if ($like === TRUE) { @@ -530,7 +539,7 @@ function _escape_identifiers($item) if (strpos($item, '.') !== FALSE) { $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - + } else { @@ -580,7 +589,7 @@ function _insert($table, $keys, $values) { return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; } - + // -------------------------------------------------------------------- /** @@ -633,7 +642,7 @@ function _update($table, $values, $where, $orderby = array(), $limit = FALSE) return $sql; } - + // -------------------------------------------------------------------- /** @@ -775,7 +784,7 @@ function _limit($sql, $limit, $offset) { $sql .= " OFFSET ".$offset; } - + return $sql; } } diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php new file mode 100755 index 00000000..1a076d4a --- /dev/null +++ b/system/database/drivers/pdo/pdo_forge.php @@ -0,0 +1,266 @@ +db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Drop database + * + * @access private + * @param string the database name + * @return bool + */ + function _drop_database($name) + { + // PDO has no "drop database" command since it's + // designed to connect to an existing database + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Create Table + * + * @access private + * @param string the table name + * @param array the fields + * @param mixed primary key(s) + * @param mixed key(s) + * @param boolean should 'IF NOT EXISTS' be added to the SQL + * @return bool + */ + function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) + { + $sql = 'CREATE TABLE '; + + if ($if_not_exists === TRUE) + { + $sql .= 'IF NOT EXISTS '; + } + + $sql .= $this->db->_escape_identifiers($table)." ("; + $current_field_count = 0; + + foreach ($fields as $field=>$attributes) + { + // Numeric field names aren't allowed in databases, so if the key is + // numeric, we know it was assigned by PHP and the developer manually + // entered the field information, so we'll simply add it to the list + if (is_numeric($field)) + { + $sql .= "\n\t$attributes"; + } + else + { + $attributes = array_change_key_case($attributes, CASE_UPPER); + + $sql .= "\n\t".$this->db->_protect_identifiers($field); + + $sql .= ' '.$attributes['TYPE']; + + if (array_key_exists('CONSTRAINT', $attributes)) + { + $sql .= '('.$attributes['CONSTRAINT'].')'; + } + + if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) + { + $sql .= ' UNSIGNED'; + } + + if (array_key_exists('DEFAULT', $attributes)) + { + $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; + } + + if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) + { + $sql .= ' AUTO_INCREMENT'; + } + } + + // don't add a comma on the end of the last field + if (++$current_field_count < count($fields)) + { + $sql .= ','; + } + } + + if (count($primary_keys) > 0) + { + $primary_keys = $this->db->_protect_identifiers($primary_keys); + $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; + } + + if (is_array($keys) && count($keys) > 0) + { + foreach ($keys as $key) + { + if (is_array($key)) + { + $key = $this->db->_protect_identifiers($key); + } + else + { + $key = array($this->db->_protect_identifiers($key)); + } + + $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; + } + } + + $sql .= "\n)"; + + return $sql; + } + + // -------------------------------------------------------------------- + + /** + * Drop Table + * + * @access private + * @return bool + */ + function _drop_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Alter table query + * + * Generates a platform-specific query so that a table can be altered + * Called by add_column(), drop_column(), and column_alter(), + * + * @access private + * @param string the ALTER type (ADD, DROP, CHANGE) + * @param string the column name + * @param string the table name + * @param string the column definition + * @param string the default value + * @param boolean should 'NOT NULL' be added + * @param string the field after which we should add the new field + * @return object + */ + function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); + + // DROP has everything it needs now. + if ($alter_type == 'DROP') + { + return $sql; + } + + $sql .= " $column_definition"; + + if ($default_value != '') + { + $sql .= " DEFAULT \"$default_value\""; + } + + if ($null === NULL) + { + $sql .= ' NULL'; + } + else + { + $sql .= ' NOT NULL'; + } + + if ($after_field != '') + { + $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); + } + + return $sql; + + } + + + // -------------------------------------------------------------------- + + /** + * Rename a table + * + * Generates a platform-specific query so that a table can be renamed + * + * @access private + * @param string the old table name + * @param string the new table name + * @return string + */ + function _rename_table($table_name, $new_table_name) + { + $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); + return $sql; + } + + +} + +/* End of file pdo_forge.php */ +/* Location: ./system/database/drivers/pdo/pdo_forge.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php new file mode 100755 index 00000000..650b5f98 --- /dev/null +++ b/system/database/drivers/pdo/pdo_result.php @@ -0,0 +1,182 @@ +result_id->queryString, 'SELECT'))) + { + $dbh = $this->conn_id; + $query = $dbh->query($this->result_id->queryString); + $result = $query->fetchAll(); + unset($dbh, $query); + return count($result); + } + else + { + return $this->result_id->rowCount(); + } + } + + // -------------------------------------------------------------------- + + /** + * Number of fields in the result set + * + * @access public + * @return integer + */ + function num_fields() + { + return $this->result_id->columnCount(); + } + + // -------------------------------------------------------------------- + + /** + * Fetch Field Names + * + * Generates an array of column names + * + * @access public + * @return array + */ + function list_fields() + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Field data + * + * Generates an array of objects containing field meta-data + * + * @access public + * @return array + */ + function field_data() + { + $data = array(); + + try + { + for($i = 0; $i < $this->num_fields(); $i++) + { + $data[] = $this->result_id->getColumnMeta($i); + } + + return $data; + } + catch (Exception $e) + { + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Free the result + * + * @return null + */ + function free_result() + { + if (is_object($this->result_id)) + { + $this->result_id = FALSE; + } + } + + // -------------------------------------------------------------------- + + /** + * Data Seek + * + * Moves the internal pointer to the desired offset. We call + * this internally before fetching results to make sure the + * result set starts at zero + * + * @access private + * @return array + */ + function _data_seek($n = 0) + { + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Result - associative array + * + * Returns the result set as an array + * + * @access private + * @return array + */ + function _fetch_assoc() + { + return $this->result_id->fetch(PDO::FETCH_ASSOC); + } + + // -------------------------------------------------------------------- + + /** + * Result - object + * + * Returns the result set as an object + * + * @access private + * @return object + */ + function _fetch_object() + { + return $this->result_id->fetchObject(); + } + +} + + +/* End of file pdo_result.php */ +/* Location: ./system/database/drivers/pdo/pdo_result.php */ \ No newline at end of file diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php new file mode 100755 index 00000000..fec27645 --- /dev/null +++ b/system/database/drivers/pdo/pdo_utility.php @@ -0,0 +1,103 @@ +db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Optimize table query + * + * Generates a platform-specific query so that a table can be optimized + * + * @access private + * @param string the table name + * @return object + */ + function _optimize_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * Repair table query + * + * Generates a platform-specific query so that a table can be repaired + * + * @access private + * @param string the table name + * @return object + */ + function _repair_table($table) + { + // Not a supported PDO feature + if ($this->db->db_debug) + { + return $this->db->display_error('db_unsuported_feature'); + } + return FALSE; + } + + // -------------------------------------------------------------------- + + /** + * PDO Export + * + * @access private + * @param array Preferences + * @return mixed + */ + function _backup($params = array()) + { + // Currently unsupported + return $this->db->display_error('db_unsuported_feature'); + } + +} + +/* End of file pdo_utility.php */ +/* Location: ./system/database/drivers/pdo/pdo_utility.php */ \ No newline at end of file diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index d9305c00..8733ae05 100755 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -65,7 +65,7 @@ function form_open($action = '', $attributes = '', $hidden = array()) $form .= '>'; // Add CSRF field if enabled, but leave it out for GET requests and requests to external websites - if ($CI->config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->site_url()) === FALSE OR strpos($form, 'method="get"'))) + if ($CI->config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->base_url()) === FALSE OR strpos($form, 'method="get"'))) { $hidden[$CI->security->get_csrf_token_name()] = $CI->security->get_csrf_hash(); } diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 9f4b8524..f1e8c6ac 100755 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -466,39 +466,35 @@ function prep_url($str = '') * Create URL Title * * Takes a "title" string as input and creates a - * human-friendly URL string with either a dash - * or an underscore as the word separator. + * human-friendly URL string with a "separator" string + * as the word separator. * * @access public * @param string the string - * @param string the separator: dash, or underscore + * @param string the separator * @return string */ if ( ! function_exists('url_title')) { - function url_title($str, $separator = 'dash', $lowercase = FALSE) + function url_title($str, $separator = '-', $lowercase = FALSE) { - if ($separator == 'dash') + if ($separator == 'dash') { - $search = '_'; - $replace = '-'; + $separator = '-'; } - else + else if ($separator == 'underscore') { - $search = '-'; - $replace = '_'; + $separator = '_'; } + + $q_separator = preg_quote($separator); $trans = array( - '&\#\d+?;' => '', - '&\S+?;' => '', - '\s+' => $replace, - '[^a-z0-9\-\._]' => '', - $replace.'+' => $replace, - $replace.'$' => $replace, - '^'.$replace => $replace, - '\.+$' => '' - ); + '&.+?;' => '', + '[^a-z0-9 _-]' => '', + '\s+' => $separator, + '('.$q_separator.')+' => $separator + ); $str = strip_tags($str); @@ -512,7 +508,7 @@ function url_title($str, $separator = 'dash', $lowercase = FALSE) $str = strtolower($str); } - return trim(stripslashes($str)); + return trim($str, $separator); } } diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php index 4763ca24..f17530f0 100755 --- a/system/language/english/migration_lang.php +++ b/system/language/english/migration_lang.php @@ -5,7 +5,7 @@ $lang['migration_multiple_version'] = "This are multiple migrations with the same version number: %d."; $lang['migration_class_doesnt_exist'] = "The migration class \"%s\" could not be found."; $lang['migration_missing_up_method'] = "The migration class \"%s\" is missing an 'up' method."; -$lang['migration_missing_down_method'] = "The migration class \"%s\" is missing an 'up' method."; +$lang['migration_missing_down_method'] = "The migration class \"%s\" is missing an 'down' method."; $lang['migration_invalid_filename'] = "Migration \"%s\" has an invalid filename."; diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 61e7aa76..261fc367 100755 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011 EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index 79d91b32..f750e6cb 100755 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011 EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index f96a68e2..b11b5b8f 100755 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011 EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index 13e2d1af..c5004366 100755 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011 EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index fc586e02..74784209 100755 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011 EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012 EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cart.php b/system/libraries/Cart.php index ab5a70c9..da47b5a1 100755 --- a/system/libraries/Cart.php +++ b/system/libraries/Cart.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author ExpressionEngine Dev Team - * @copyright Copyright (c) 2006 - 2011, EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 1.0 diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php index 9881c1ee..4912c4aa 100755 --- a/system/libraries/Driver.php +++ b/system/libraries/Driver.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author EllisLab Dev Team - * @copyright Copyright (c) 2006 - 2011, EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 1.0 @@ -30,7 +30,7 @@ class CI_Driver_Library { protected $valid_drivers = array(); - protected static $lib_name; + protected $lib_name; // The first time a child is used it won't exist, so we instantiate it // subsequents calls will go straight to the proper child. diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index a34809e0..9aab5da4 100755 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1079,11 +1079,12 @@ public function valid_emails($str) * * @access public * @param string + * @param string "ipv4" or "ipv6" to validate a specific ip format * @return string */ - public function valid_ip($ip) + public function valid_ip($ip, $which = '') { - return $this->CI->input->valid_ip($ip); + return $this->CI->input->valid_ip($ip, $which); } // -------------------------------------------------------------------- diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 8902f524..21ec2cb4 100755 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -104,7 +104,7 @@ public function __construct($props = array()) */ function clear() { - $props = array('source_folder', 'dest_folder', 'source_image', 'full_src_path', 'full_dst_path', 'new_image', 'image_type', 'size_str', 'quality', 'orig_width', 'orig_height', 'rotation_angle', 'x_axis', 'y_axis', 'create_fnc', 'copy_fnc', 'wm_overlay_path', 'wm_use_truetype', 'dynamic_output', 'wm_font_size', 'wm_text', 'wm_vrt_alignment', 'wm_hor_alignment', 'wm_padding', 'wm_hor_offset', 'wm_vrt_offset', 'wm_font_color', 'wm_use_drop_shadow', 'wm_shadow_color', 'wm_shadow_distance', 'wm_opacity'); + $props = array('source_folder', 'dest_folder', 'source_image', 'full_src_path', 'full_dst_path', 'new_image', 'image_type', 'size_str', 'quality', 'orig_width', 'orig_height', 'width', 'height', 'rotation_angle', 'x_axis', 'y_axis', 'create_fnc', 'copy_fnc', 'wm_overlay_path', 'wm_use_truetype', 'dynamic_output', 'wm_font_size', 'wm_text', 'wm_vrt_alignment', 'wm_hor_alignment', 'wm_padding', 'wm_hor_offset', 'wm_vrt_offset', 'wm_font_color', 'wm_use_drop_shadow', 'wm_shadow_color', 'wm_shadow_distance', 'wm_opacity'); foreach ($props as $val) { @@ -208,7 +208,7 @@ function initialize($props = array()) } else { - if (strpos($this->new_image, '/') === FALSE) + if (strpos($this->new_image, '/') === FALSE AND strpos($this->new_image, '\\') === FALSE) { $this->dest_folder = $this->source_folder; $this->dest_image = $this->new_image; diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index 3943ec13..5a41377e 100755 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -6,7 +6,7 @@ * * @package CodeIgniter * @author EllisLab Dev Team - * @copyright Copyright (c) 2006 - 2011, EllisLab, Inc. + * @copyright Copyright (c) 2006 - 2012, EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 1.0 diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 05511b5d..0e5d73b1 100755 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -868,6 +868,10 @@ public function do_xss_clean() { return TRUE; // its an image, no "triggers" detected in the first 256 bytes, we're good } + else + { + return FALSE; + } } if (($data = @file_get_contents($file)) === FALSE) @@ -1018,47 +1022,104 @@ protected function _prep_filename($filename) */ protected function _file_mime_type($file) { - // Use if the Fileinfo extension, if available (only versions above 5.3 support the FILEINFO_MIME_TYPE flag) - if ( (float) substr(phpversion(), 0, 3) >= 5.3 && function_exists('finfo_file')) + // We'll need this to validate the MIME info string (e.g. text/plain; charset=us-ascii) + $regexp = '/^([a-z\-]+\/[a-z0-9\-\.\+]+)(;\s.+)?$/'; + + /* Fileinfo extension - most reliable method + * + * Unfortunately, prior to PHP 5.3 - it's only available as a PECL extension and the + * more convenient FILEINFO_MIME_TYPE flag doesn't exist. + */ + if (function_exists('finfo_file')) { - $finfo = new finfo(FILEINFO_MIME_TYPE); - if ($finfo !== FALSE) // This is possible, if there is no magic MIME database file found on the system + $finfo = finfo_open(FILEINFO_MIME); + if (is_resource($finfo)) // It is possible that a FALSE value is returned, if there is no magic MIME database file found on the system { - $file_type = $finfo->file($file['tmp_name']); + $mime = @finfo_file($finfo, $file['tmp_name']); + finfo_close($finfo); /* According to the comments section of the PHP manual page, * it is possible that this function returns an empty string * for some files (e.g. if they don't exist in the magic MIME database) */ - if (strlen($file_type) > 1) + if (is_string($mime) && preg_match($regexp, $mime, $matches)) { - $this->file_type = $file_type; + $this->file_type = $matches[1]; return; } } } - // Fall back to the deprecated mime_content_type(), if available - if (function_exists('mime_content_type')) - { - $this->file_type = @mime_content_type($file['tmp_name']); - return; - } - - /* This is an ugly hack, but UNIX-type systems provide a native way to detect the file type, - * which is still more secure than depending on the value of $_FILES[$field]['type']. + /* This is an ugly hack, but UNIX-type systems provide a "native" way to detect the file type, + * which is still more secure than depending on the value of $_FILES[$field]['type'], and as it + * was reported in issue #750 (https://github.com/EllisLab/CodeIgniter/issues/750) - it's better + * than mime_content_type() as well, hence the attempts to try calling the command line with + * three different functions. * * Notes: - * - a 'W' in the substr() expression bellow, would mean that we're using Windows - * - many system admins would disable the exec() function due to security concerns, hence the function_exists() check + * - the DIRECTORY_SEPARATOR comparison ensures that we're not on a Windows system + * - many system admins would disable the exec(), shell_exec(), popen() and similar functions + * due to security concerns, hence the function_exists() checks */ - if (DIRECTORY_SEPARATOR !== '\\' && function_exists('exec')) + if (DIRECTORY_SEPARATOR !== '\\') { - $output = array(); - @exec('file --brief --mime-type ' . escapeshellarg($file['tmp_path']), $output, $return_code); - if ($return_code === 0 && strlen($output[0]) > 0) // A return status code != 0 would mean failed execution + $cmd = 'file --brief --mime ' . escapeshellarg($file['tmp_name']) . ' 2>&1'; + + if (function_exists('exec')) + { + /* This might look confusing, as $mime is being populated with all of the output when set in the second parameter. + * However, we only neeed the last line, which is the actual return value of exec(), and as such - it overwrites + * anything that could already be set for $mime previously. This effectively makes the second parameter a dummy + * value, which is only put to allow us to get the return status code. + */ + $mime = @exec($cmd, $mime, $return_status); + if ($return_status === 0 && is_string($mime) && preg_match($regexp, $mime, $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + + if ( (bool) @ini_get('safe_mode') === FALSE && function_exists('shell_exec')) + { + $mime = @shell_exec($cmd); + if (strlen($mime) > 0) + { + $mime = explode("\n", trim($mime)); + if (preg_match($regexp, $mime[(count($mime) - 1)], $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + } + + if (function_exists('popen')) + { + $proc = @popen($cmd, 'r'); + if (is_resource($proc)) + { + $mime = @fread($proc, 512); + @pclose($proc); + if ($mime !== FALSE) + { + $mime = explode("\n", trim($mime)); + if (preg_match($regexp, $mime[(count($mime) - 1)], $matches)) + { + $this->file_type = $matches[1]; + return; + } + } + } + } + } + + // Fall back to the deprecated mime_content_type(), if available (still better than $_FILES[$field]['type']) + if (function_exists('mime_content_type')) + { + $this->file_type = @mime_content_type($file['tmp_name']); + if (strlen($this->file_type) > 0) // It's possible that mime_content_type() returns FALSE or an empty string { - $this->file_type = rtrim($output[0]); return; } } From ea34cf76678ebf1378f7ecf205c5690d9c725184 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 20 Jun 2012 15:23:54 -0500 Subject: [PATCH 188/343] Updated to SQL session query to support ipv6 length --- install/application/views/templates/sql.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/application/views/templates/sql.php b/install/application/views/templates/sql.php index 0119f653..81a82626 100644 --- a/install/application/views/templates/sql.php +++ b/install/application/views/templates/sql.php @@ -425,7 +425,7 @@ CREATE TABLE `prefix_sessions` ( `session_id` varchar(40) NOT NULL default '0', - `ip_address` varchar(16) NOT NULL default '0', + `ip_address` varchar(45) NOT NULL default '0', `user_agent` varchar(120) default NULL, `last_activity` int(10) unsigned NOT NULL default '0', `user_data` text NOT NULL, From 28838760407d6f001295c3809634091ca35c9186 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 20 Jun 2012 15:25:03 -0500 Subject: [PATCH 189/343] updated --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index b4709486..88b9e727 100755 --- a/changelog.txt +++ b/changelog.txt @@ -13,6 +13,8 @@ Version 1.2.4 - Fixed banner_model.php to properly restrict disabled banners for the get_homepage_banners() function. - Fixed meta tag code in the default theme header. - Fixed login redirect for expired customer sessions (thanks Dinesh) + - Upgraded to CodeIgnier 2.1.1 + - Updated SQL install script to support ipv6 ip address length Version 1.2.3 ------------- From 7cfb9d30a9232adb7300104a1fc7127f46a8d670 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 20 Jun 2012 16:04:52 -0500 Subject: [PATCH 190/343] updated index.php to CI 2.1.1 --- index.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.php b/index.php index 1c6ec8b6..7e155f3b 100755 --- a/index.php +++ b/index.php @@ -8,7 +8,6 @@ header('Location: http://'.$path.'install'); die; } - /* *--------------------------------------------------------------- * APPLICATION ENVIRONMENT @@ -81,7 +80,7 @@ * NO TRAILING SLASH! * */ - $application_folder = 'gocart'; + $application_folder = 'application'; /* * -------------------------------------------------------------------- From 1dc970ea66663cefa4d984410c19052f466596a9 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Fri, 22 Jun 2012 11:50:56 -0500 Subject: [PATCH 191/343] Update to GoCart 2.0 Dev --- assets/css/bootstrap-responsive.css | 808 +++ assets/css/bootstrap-responsive.min.css | 9 + assets/css/bootstrap.css | 4960 ++++++++++++++++ assets/css/bootstrap.min.css | 9 + assets/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes assets/img/glyphicons-halflings.png | Bin 0 -> 13826 bytes assets/img/storing_animation.gif | Bin 0 -> 3887 bytes assets/js/bootstrap.js | 1824 ++++++ assets/js/bootstrap.min.js | 6 + changelog.txt | 21 +- css/admin.css | 508 -- css/modal.css | 782 --- css/styles.css | 1222 ---- gocart/config/config.php | 2 +- gocart/config/mimes.php | 17 +- gocart/config/routes.php | 34 - gocart/controllers/admin/admin.php | 2 +- gocart/controllers/admin/banners.php | 18 +- gocart/controllers/admin/boxes.php | 26 +- gocart/controllers/admin/categories.php | 29 +- gocart/controllers/admin/coupons.php | 4 +- gocart/controllers/admin/customers.php | 10 +- gocart/controllers/admin/locations.php | 10 +- gocart/controllers/admin/orders.php | 175 +- gocart/controllers/admin/pages.php | 4 +- gocart/controllers/admin/payment.php | 1 + gocart/controllers/admin/products.php | 101 +- gocart/controllers/admin/reports.php | 85 +- gocart/controllers/admin/settings.php | 5 + gocart/controllers/admin/shipping.php | 1 + gocart/controllers/cart.php | 162 +- gocart/controllers/checkout.php | 20 +- gocart/controllers/secure.php | 22 + gocart/core/MY_Router.php | 121 + gocart/helpers/MY_date_helper.php | 26 + gocart/helpers/MY_url_helper.php | 48 + gocart/helpers/credit_card_helper.php | 0 gocart/helpers/utility_helper.php | 44 +- gocart/language/english/banner_lang.php | 4 +- gocart/language/english/boxes_lang.php | 4 +- gocart/language/english/category_lang.php | 5 +- gocart/language/english/common_lang.php | 199 +- gocart/language/english/coupon_lang.php | 4 +- gocart/language/english/dashboard_lang.php | 6 +- gocart/language/english/giftcard_lang.php | 2 +- gocart/language/english/location_lang.php | 1 + gocart/language/english/order_lang.php | 8 +- gocart/language/english/page_lang.php | 2 +- gocart/language/english/product_lang.php | 41 +- gocart/language/english/report_lang.php | 8 +- gocart/libraries/Go_cart.php | 33 +- gocart/libraries/MY_Pagination.php | 25 +- gocart/models/banner_model.php | 14 +- gocart/models/category_model.php | 5 + gocart/models/customer_model.php | 0 gocart/models/gift_card_model.php | 0 gocart/models/option_model.php | 0 gocart/models/order_model.php | 31 + gocart/models/product_model.php | 205 +- .../language/english/authorize_net_lang.php | 2 +- .../authorize_net/libraries/authorize_net.php | 2 +- .../authorize_net/views/admin_form.php | 42 - .../authorize_net/views/auth_net_form.php | 28 + .../payment/cod/language/english/cod_lang.php | 4 + gocart/packages/payment/cod/libraries/cod.php | 37 +- .../language/english/paypal_express_lang.php | 2 + .../libraries/paypal_express.php | 8 +- .../paypal_express/views/admin_form.php | 41 - .../views/paypal_express_form.php | 18 + .../payment/sage_pay/libraries/sage_pay.php | 695 +-- .../payment/sage_pay/views/admin_form.php | 84 - .../payment/sage_pay/views/sage_pay_form.php | 71 + .../shipping/fedex/libraries/fedex.php | 263 +- .../shipping/flatrate/libraries/flatrate.php | 31 +- .../language/english/table_rate_lang.php | 41 + .../table_rate/libraries/table_rate.php | 216 + .../table_rate/views/table_rate_form.php | 169 + .../shipping/tablerate/views/admin_form.php | 5 +- .../libraries/united_parcel_service.php | 85 +- .../language/english/usps_domestic_lang.php | 40 + .../usps_domestic/libraries/usps_domestic.php | 398 +- .../english/usps_international_lang.php | 40 + .../libraries/usps_international.php | 254 +- .../assets/css/bootstrap-responsive.css | 815 +++ .../assets/css/bootstrap-responsive.min.css | 9 + .../themes/bootstrap/assets/css/bootstrap.css | 4983 +++++++++++++++++ .../bootstrap/assets/css/bootstrap.min.css | 9 + .../assets/css/jquery-ui-1.8.19.custom.css | 565 ++ gocart/themes/bootstrap/assets/css/styles.css | 112 + .../bootstrap/assets/img/ajax-loader.gif | Bin 0 -> 723 bytes .../assets/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../assets/img/glyphicons-halflings.png | Bin 0 -> 13826 bytes .../assets/img/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../img/ui-bg_flat_65_f2f2f2_40x100.png | Bin 0 -> 180 bytes .../img/ui-bg_flat_75_eeeeee_40x100.png | Bin 0 -> 180 bytes .../img/ui-bg_flat_75_f2f2f2_40x100.png | Bin 0 -> 180 bytes .../img/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../img/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../img/ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../assets/img/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../assets/img/ui-icons_333333_256x240.png | Bin 0 -> 4369 bytes .../assets/img/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../themes/bootstrap/assets/js/bootstrap.js | 1825 ++++++ .../bootstrap/assets/js/bootstrap.min.js | 6 + .../bootstrap/assets/js/equal_heights.js | 9 + .../bootstrap/assets/js/jquery-1.7.2.min.js | 4 + .../assets/js/jquery-ui-1.8.19.custom.min.js | 125 + gocart/themes/bootstrap/assets/js/squard.js | 62 + gocart/themes/bootstrap/images/body_bg.gif | Bin 0 -> 1174 bytes gocart/themes/bootstrap/images/delete.png | Bin 0 -> 336 bytes gocart/themes/bootstrap/images/footer_bg.png | Bin 0 -> 2550 bytes gocart/themes/bootstrap/images/footer_lid.gif | Bin 0 -> 1309 bytes gocart/themes/bootstrap/images/input_bg.png | Bin 0 -> 1443 bytes .../themes/bootstrap/views/address_form.php | 122 + gocart/themes/bootstrap/views/category.php | 109 + .../checkout/additional_details_form.php | 30 + .../bootstrap/views/checkout/checkout.php | 260 + .../views/checkout/customer_details.php | 450 ++ .../checkout/customer_details_static.php | 57 + .../bootstrap/views/checkout/payment_form.php | 89 + .../views/checkout/shipping_form.php | 40 + .../bootstrap/views/checkout/summary.php | 161 + gocart/themes/bootstrap/views/footer.php | 11 + .../bootstrap/views/forgot_password.php | 32 + gocart/themes/bootstrap/views/giftcards.php | 111 + gocart/themes/bootstrap/views/header.php | 165 + gocart/themes/bootstrap/views/homepage.php | 73 + gocart/themes/bootstrap/views/index.html | 10 + gocart/themes/bootstrap/views/login.php | 52 + gocart/themes/bootstrap/views/my_account.php | 228 + .../themes/bootstrap/views/my_downloads.php | 82 + gocart/themes/bootstrap/views/order_email.php | 170 + .../themes/bootstrap/views/order_placed.php | 178 + gocart/themes/bootstrap/views/page.php | 3 + gocart/themes/bootstrap/views/payment.php | 60 + gocart/themes/bootstrap/views/product.php | 377 ++ gocart/themes/bootstrap/views/register.php | 80 + gocart/themes/bootstrap/views/view_cart.php | 183 + .../default/views/checkout/checkout.php | 10 +- .../themes/default/views/checkout/summary.php | 5 +- gocart/themes/default/views/header.php | 4 +- gocart/views/admin/admin_form.php | 45 +- gocart/views/admin/admins.php | 28 +- gocart/views/admin/banner_form.php | 73 +- gocart/views/admin/banners.php | 23 +- gocart/views/admin/box_form.php | 91 +- gocart/views/admin/boxes.php | 23 +- gocart/views/admin/canned_message_form.php | 50 +- gocart/views/admin/categories.php | 25 +- gocart/views/admin/category_form.php | 183 +- gocart/views/admin/countries.php | 31 +- gocart/views/admin/country_form.php | 91 +- gocart/views/admin/country_zone_area_form.php | 46 +- gocart/views/admin/country_zone_areas.php | 28 +- gocart/views/admin/country_zone_form.php | 92 +- gocart/views/admin/country_zones.php | 24 +- gocart/views/admin/coupon_form.php | 102 +- gocart/views/admin/coupons.php | 20 +- gocart/views/admin/customer_address_form.php | 103 +- gocart/views/admin/customer_addresses.php | 21 +- gocart/views/admin/customer_form.php | 180 +- gocart/views/admin/customer_group_form.php | 57 +- gocart/views/admin/customer_groups.php | 56 +- gocart/views/admin/customers.php | 38 +- gocart/views/admin/dashboard.php | 42 +- gocart/views/admin/digital_product_form.php | 72 +- gocart/views/admin/digital_products.php | 31 +- gocart/views/admin/footer.php | 7 +- gocart/views/admin/giftcard_form.php | 96 +- gocart/views/admin/giftcards.php | 21 +- gocart/views/admin/giftcards_settings.php | 33 +- gocart/views/admin/header.php | 274 +- gocart/views/admin/iframe/close_modal.php | 5 - gocart/views/admin/iframe/footer.php | 1 + gocart/views/admin/iframe/header.php | 44 +- .../views/admin/iframe/order_notification.php | 132 - .../admin/iframe/product_image_uploader.php | 26 +- gocart/views/admin/link_form.php | 97 +- gocart/views/admin/login.php | 127 +- gocart/views/admin/order.php | 304 +- gocart/views/admin/orders.php | 191 +- gocart/views/admin/organize_category.php | 20 +- gocart/views/admin/page_form.php | 175 +- gocart/views/admin/pages.php | 37 +- .../views/admin/payment_module_settings.php | 27 +- gocart/views/admin/product_form backup.php | 717 +++ gocart/views/admin/product_form backup2.php | 780 +++ gocart/views/admin/product_form.php | 1152 ++-- gocart/views/admin/products.php | 151 +- gocart/views/admin/reports.php | 77 +- gocart/views/admin/reports/best_sellers.php | 12 +- gocart/views/admin/reports/sales.php | 32 +- gocart/views/admin/settings.php | 131 +- .../views/admin/shipping_module_settings.php | 24 +- index.php | 3 +- install/application/controllers/install.php | 0 install/application/views/install.php | 0 .../application/views/templates/config.php | 2 +- .../application/views/templates/gocart.php | 2 +- install/application/views/templates/sql.php | 2 +- js/jquery/jquery-1.7.2.min.js | 4 + js/jquery/jquery-ui-1.8.16.custom.min.js | 0 js/jquery/jquery-ui-1.8.19.custom.min.js | 105 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_65_f2f2f2_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_eeeeee_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_f2f2f2_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../gocart/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../gocart/images/ui-icons_333333_256x240.png | Bin 0 -> 4369 bytes .../gocart/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../theme/gocart/jquery-ui-1.8.19.custom.css | 420 ++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../images/ui-icons_222222_256x240.png | Bin .../images/ui-icons_2e83ff_256x240.png | Bin .../images/ui-icons_454545_256x240.png | Bin .../images/ui-icons_888888_256x240.png | Bin .../images/ui-icons_cd0a0a_256x240.png | Bin .../smoothness/jquery-ui-1.8.16.custom.css | 0 system/.htaccess | 0 system/core/Benchmark.php | 0 system/core/CodeIgniter.php | 0 system/core/Common.php | 0 system/core/Config.php | 0 system/core/Controller.php | 0 system/core/Exceptions.php | 0 system/core/Hooks.php | 0 system/core/Input.php | 0 system/core/Lang.php | 0 system/core/Loader.php | 0 system/core/Model.php | 0 system/core/Output.php | 0 system/core/Router.php | 0 system/core/Security.php | 0 system/core/URI.php | 0 system/core/Utf8.php | 0 system/core/index.html | 0 system/database/DB.php | 0 system/database/DB_active_rec.php | 0 system/database/DB_cache.php | 0 system/database/DB_driver.php | 0 system/database/DB_forge.php | 0 system/database/DB_result.php | 0 system/database/DB_utility.php | 0 .../database/drivers/cubrid/cubrid_driver.php | 0 .../database/drivers/cubrid/cubrid_forge.php | 0 .../database/drivers/cubrid/cubrid_result.php | 0 .../drivers/cubrid/cubrid_utility.php | 0 system/database/drivers/cubrid/index.html | 0 system/database/drivers/index.html | 0 system/database/drivers/mssql/index.html | 0 .../database/drivers/mssql/mssql_driver.php | 0 system/database/drivers/mssql/mssql_forge.php | 0 .../database/drivers/mssql/mssql_result.php | 0 .../database/drivers/mssql/mssql_utility.php | 0 system/database/drivers/mysql/index.html | 0 .../database/drivers/mysql/mysql_driver.php | 0 system/database/drivers/mysql/mysql_forge.php | 0 .../database/drivers/mysql/mysql_result.php | 0 .../database/drivers/mysql/mysql_utility.php | 0 system/database/drivers/mysqli/index.html | 0 .../database/drivers/mysqli/mysqli_driver.php | 0 .../database/drivers/mysqli/mysqli_forge.php | 0 .../database/drivers/mysqli/mysqli_result.php | 0 .../drivers/mysqli/mysqli_utility.php | 0 system/database/drivers/oci8/index.html | 0 system/database/drivers/oci8/oci8_driver.php | 0 system/database/drivers/oci8/oci8_forge.php | 0 system/database/drivers/oci8/oci8_result.php | 0 system/database/drivers/oci8/oci8_utility.php | 0 system/database/drivers/odbc/index.html | 0 system/database/drivers/odbc/odbc_driver.php | 0 system/database/drivers/odbc/odbc_forge.php | 0 system/database/drivers/odbc/odbc_result.php | 0 system/database/drivers/odbc/odbc_utility.php | 0 system/database/drivers/pdo/index.html | 0 system/database/drivers/pdo/pdo_driver.php | 0 system/database/drivers/pdo/pdo_forge.php | 0 system/database/drivers/pdo/pdo_result.php | 0 system/database/drivers/pdo/pdo_utility.php | 0 system/database/drivers/postgre/index.html | 0 .../drivers/postgre/postgre_driver.php | 0 .../drivers/postgre/postgre_forge.php | 0 .../drivers/postgre/postgre_result.php | 0 .../drivers/postgre/postgre_utility.php | 0 system/database/drivers/sqlite/index.html | 0 .../database/drivers/sqlite/sqlite_driver.php | 0 .../database/drivers/sqlite/sqlite_forge.php | 0 .../database/drivers/sqlite/sqlite_result.php | 0 .../drivers/sqlite/sqlite_utility.php | 0 system/database/drivers/sqlsrv/index.html | 0 .../database/drivers/sqlsrv/sqlsrv_driver.php | 0 .../database/drivers/sqlsrv/sqlsrv_forge.php | 0 .../database/drivers/sqlsrv/sqlsrv_result.php | 0 .../drivers/sqlsrv/sqlsrv_utility.php | 0 system/database/index.html | 0 system/fonts/index.html | 0 system/fonts/texb.ttf | Bin system/helpers/array_helper.php | 0 system/helpers/captcha_helper.php | 0 system/helpers/cookie_helper.php | 0 system/helpers/date_helper.php | 0 system/helpers/directory_helper.php | 0 system/helpers/download_helper.php | 0 system/helpers/email_helper.php | 0 system/helpers/file_helper.php | 0 system/helpers/form_helper.php | 0 system/helpers/html_helper.php | 0 system/helpers/index.html | 0 system/helpers/inflector_helper.php | 0 system/helpers/language_helper.php | 0 system/helpers/number_helper.php | 0 system/helpers/path_helper.php | 0 system/helpers/security_helper.php | 0 system/helpers/smiley_helper.php | 0 system/helpers/string_helper.php | 0 system/helpers/text_helper.php | 0 system/helpers/typography_helper.php | 0 system/helpers/url_helper.php | 0 system/helpers/xml_helper.php | 0 system/index.html | 0 system/language/english/calendar_lang.php | 0 system/language/english/date_lang.php | 0 system/language/english/db_lang.php | 0 system/language/english/email_lang.php | 0 .../language/english/form_validation_lang.php | 0 system/language/english/ftp_lang.php | 0 system/language/english/imglib_lang.php | 0 system/language/english/index.html | 0 system/language/english/migration_lang.php | 0 system/language/english/number_lang.php | 0 system/language/english/profiler_lang.php | 0 system/language/english/unit_test_lang.php | 0 system/language/english/upload_lang.php | 0 system/language/index.html | 0 system/libraries/Cache/Cache.php | 0 system/libraries/Cache/drivers/Cache_apc.php | 0 .../libraries/Cache/drivers/Cache_dummy.php | 0 system/libraries/Cache/drivers/Cache_file.php | 0 .../Cache/drivers/Cache_memcached.php | 0 system/libraries/Calendar.php | 0 system/libraries/Cart.php | 0 system/libraries/Driver.php | 0 system/libraries/Email.php | 0 system/libraries/Encrypt.php | 0 system/libraries/Form_validation.php | 0 system/libraries/Ftp.php | 0 system/libraries/Image_lib.php | 0 system/libraries/Javascript.php | 0 system/libraries/Log.php | 0 system/libraries/Migration.php | 0 system/libraries/Pagination.php | 0 system/libraries/Parser.php | 0 system/libraries/Profiler.php | 0 system/libraries/Session.php | 0 system/libraries/Sha1.php | 0 system/libraries/Table.php | 0 system/libraries/Trackback.php | 0 system/libraries/Typography.php | 0 system/libraries/Unit_test.php | 0 system/libraries/Upload.php | 0 system/libraries/User_agent.php | 0 system/libraries/Xmlrpc.php | 0 system/libraries/Xmlrpcs.php | 0 system/libraries/Zip.php | 0 system/libraries/index.html | 0 system/libraries/javascript/Jquery.php | 0 376 files changed, 26322 insertions(+), 6449 deletions(-) create mode 100644 assets/css/bootstrap-responsive.css create mode 100644 assets/css/bootstrap-responsive.min.css create mode 100644 assets/css/bootstrap.css create mode 100644 assets/css/bootstrap.min.css create mode 100644 assets/img/glyphicons-halflings-white.png create mode 100644 assets/img/glyphicons-halflings.png create mode 100644 assets/img/storing_animation.gif create mode 100644 assets/js/bootstrap.js create mode 100644 assets/js/bootstrap.min.js delete mode 100644 css/admin.css delete mode 100644 css/modal.css delete mode 100644 css/styles.css create mode 100644 gocart/core/MY_Router.php mode change 100755 => 100644 gocart/helpers/credit_card_helper.php mode change 100755 => 100644 gocart/libraries/Go_cart.php mode change 100755 => 100644 gocart/models/customer_model.php mode change 100755 => 100644 gocart/models/gift_card_model.php mode change 100755 => 100644 gocart/models/option_model.php mode change 100755 => 100644 gocart/models/product_model.php delete mode 100644 gocart/packages/payment/authorize_net/views/admin_form.php create mode 100644 gocart/packages/payment/authorize_net/views/auth_net_form.php create mode 100644 gocart/packages/payment/cod/language/english/cod_lang.php delete mode 100644 gocart/packages/payment/paypal_express/views/admin_form.php create mode 100644 gocart/packages/payment/paypal_express/views/paypal_express_form.php delete mode 100644 gocart/packages/payment/sage_pay/views/admin_form.php create mode 100644 gocart/packages/payment/sage_pay/views/sage_pay_form.php create mode 100644 gocart/packages/shipping/table_rate/language/english/table_rate_lang.php create mode 100644 gocart/packages/shipping/table_rate/libraries/table_rate.php create mode 100644 gocart/packages/shipping/table_rate/views/table_rate_form.php create mode 100644 gocart/packages/shipping/usps_domestic/language/english/usps_domestic_lang.php create mode 100644 gocart/packages/shipping/usps_international/language/english/usps_international_lang.php create mode 100644 gocart/themes/bootstrap/assets/css/bootstrap-responsive.css create mode 100644 gocart/themes/bootstrap/assets/css/bootstrap-responsive.min.css create mode 100644 gocart/themes/bootstrap/assets/css/bootstrap.css create mode 100644 gocart/themes/bootstrap/assets/css/bootstrap.min.css create mode 100644 gocart/themes/bootstrap/assets/css/jquery-ui-1.8.19.custom.css create mode 100644 gocart/themes/bootstrap/assets/css/styles.css create mode 100644 gocart/themes/bootstrap/assets/img/ajax-loader.gif create mode 100644 gocart/themes/bootstrap/assets/img/glyphicons-halflings-white.png create mode 100644 gocart/themes/bootstrap/assets/img/glyphicons-halflings.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_flat_65_f2f2f2_40x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_flat_75_eeeeee_40x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_flat_75_f2f2f2_40x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_flat_75_ffffff_40x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-icons_2e83ff_256x240.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-icons_333333_256x240.png create mode 100644 gocart/themes/bootstrap/assets/img/ui-icons_cd0a0a_256x240.png create mode 100644 gocart/themes/bootstrap/assets/js/bootstrap.js create mode 100644 gocart/themes/bootstrap/assets/js/bootstrap.min.js create mode 100644 gocart/themes/bootstrap/assets/js/equal_heights.js create mode 100644 gocart/themes/bootstrap/assets/js/jquery-1.7.2.min.js create mode 100644 gocart/themes/bootstrap/assets/js/jquery-ui-1.8.19.custom.min.js create mode 100644 gocart/themes/bootstrap/assets/js/squard.js create mode 100644 gocart/themes/bootstrap/images/body_bg.gif create mode 100644 gocart/themes/bootstrap/images/delete.png create mode 100644 gocart/themes/bootstrap/images/footer_bg.png create mode 100644 gocart/themes/bootstrap/images/footer_lid.gif create mode 100644 gocart/themes/bootstrap/images/input_bg.png create mode 100644 gocart/themes/bootstrap/views/address_form.php create mode 100644 gocart/themes/bootstrap/views/category.php create mode 100644 gocart/themes/bootstrap/views/checkout/additional_details_form.php create mode 100644 gocart/themes/bootstrap/views/checkout/checkout.php create mode 100644 gocart/themes/bootstrap/views/checkout/customer_details.php create mode 100644 gocart/themes/bootstrap/views/checkout/customer_details_static.php create mode 100644 gocart/themes/bootstrap/views/checkout/payment_form.php create mode 100644 gocart/themes/bootstrap/views/checkout/shipping_form.php create mode 100644 gocart/themes/bootstrap/views/checkout/summary.php create mode 100644 gocart/themes/bootstrap/views/footer.php create mode 100644 gocart/themes/bootstrap/views/forgot_password.php create mode 100644 gocart/themes/bootstrap/views/giftcards.php create mode 100644 gocart/themes/bootstrap/views/header.php create mode 100644 gocart/themes/bootstrap/views/homepage.php create mode 100644 gocart/themes/bootstrap/views/index.html create mode 100644 gocart/themes/bootstrap/views/login.php create mode 100644 gocart/themes/bootstrap/views/my_account.php create mode 100644 gocart/themes/bootstrap/views/my_downloads.php create mode 100644 gocart/themes/bootstrap/views/order_email.php create mode 100644 gocart/themes/bootstrap/views/order_placed.php create mode 100644 gocart/themes/bootstrap/views/page.php create mode 100644 gocart/themes/bootstrap/views/payment.php create mode 100644 gocart/themes/bootstrap/views/product.php create mode 100644 gocart/themes/bootstrap/views/register.php create mode 100644 gocart/themes/bootstrap/views/view_cart.php delete mode 100644 gocart/views/admin/iframe/close_modal.php delete mode 100644 gocart/views/admin/iframe/order_notification.php create mode 100644 gocart/views/admin/product_form backup.php create mode 100644 gocart/views/admin/product_form backup2.php mode change 100755 => 100644 index.php mode change 100755 => 100644 install/application/controllers/install.php mode change 100755 => 100644 install/application/views/install.php mode change 100755 => 100644 install/application/views/templates/config.php mode change 100755 => 100644 install/application/views/templates/gocart.php create mode 100644 js/jquery/jquery-1.7.2.min.js mode change 100755 => 100644 js/jquery/jquery-ui-1.8.16.custom.min.js create mode 100644 js/jquery/jquery-ui-1.8.19.custom.min.js create mode 100644 js/jquery/theme/gocart/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_flat_65_f2f2f2_40x100.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_flat_75_eeeeee_40x100.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_flat_75_f2f2f2_40x100.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 js/jquery/theme/gocart/images/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100644 js/jquery/theme/gocart/images/ui-icons_2e83ff_256x240.png create mode 100644 js/jquery/theme/gocart/images/ui-icons_333333_256x240.png create mode 100644 js/jquery/theme/gocart/images/ui-icons_cd0a0a_256x240.png create mode 100644 js/jquery/theme/gocart/jquery-ui-1.8.19.custom.css mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_flat_75_ffffff_40x100.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_glass_65_ffffff_1x400.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_glass_75_dadada_1x400.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-icons_222222_256x240.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-icons_2e83ff_256x240.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-icons_454545_256x240.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-icons_888888_256x240.png mode change 100755 => 100644 js/jquery/theme/smoothness/images/ui-icons_cd0a0a_256x240.png mode change 100755 => 100644 js/jquery/theme/smoothness/jquery-ui-1.8.16.custom.css mode change 100755 => 100644 system/.htaccess mode change 100755 => 100644 system/core/Benchmark.php mode change 100755 => 100644 system/core/CodeIgniter.php mode change 100755 => 100644 system/core/Common.php mode change 100755 => 100644 system/core/Config.php mode change 100755 => 100644 system/core/Controller.php mode change 100755 => 100644 system/core/Exceptions.php mode change 100755 => 100644 system/core/Hooks.php mode change 100755 => 100644 system/core/Input.php mode change 100755 => 100644 system/core/Lang.php mode change 100755 => 100644 system/core/Loader.php mode change 100755 => 100644 system/core/Model.php mode change 100755 => 100644 system/core/Output.php mode change 100755 => 100644 system/core/Router.php mode change 100755 => 100644 system/core/Security.php mode change 100755 => 100644 system/core/URI.php mode change 100755 => 100644 system/core/Utf8.php mode change 100755 => 100644 system/core/index.html mode change 100755 => 100644 system/database/DB.php mode change 100755 => 100644 system/database/DB_active_rec.php mode change 100755 => 100644 system/database/DB_cache.php mode change 100755 => 100644 system/database/DB_driver.php mode change 100755 => 100644 system/database/DB_forge.php mode change 100755 => 100644 system/database/DB_result.php mode change 100755 => 100644 system/database/DB_utility.php mode change 100755 => 100644 system/database/drivers/cubrid/cubrid_driver.php mode change 100755 => 100644 system/database/drivers/cubrid/cubrid_forge.php mode change 100755 => 100644 system/database/drivers/cubrid/cubrid_result.php mode change 100755 => 100644 system/database/drivers/cubrid/cubrid_utility.php mode change 100755 => 100644 system/database/drivers/cubrid/index.html mode change 100755 => 100644 system/database/drivers/index.html mode change 100755 => 100644 system/database/drivers/mssql/index.html mode change 100755 => 100644 system/database/drivers/mssql/mssql_driver.php mode change 100755 => 100644 system/database/drivers/mssql/mssql_forge.php mode change 100755 => 100644 system/database/drivers/mssql/mssql_result.php mode change 100755 => 100644 system/database/drivers/mssql/mssql_utility.php mode change 100755 => 100644 system/database/drivers/mysql/index.html mode change 100755 => 100644 system/database/drivers/mysql/mysql_driver.php mode change 100755 => 100644 system/database/drivers/mysql/mysql_forge.php mode change 100755 => 100644 system/database/drivers/mysql/mysql_result.php mode change 100755 => 100644 system/database/drivers/mysql/mysql_utility.php mode change 100755 => 100644 system/database/drivers/mysqli/index.html mode change 100755 => 100644 system/database/drivers/mysqli/mysqli_driver.php mode change 100755 => 100644 system/database/drivers/mysqli/mysqli_forge.php mode change 100755 => 100644 system/database/drivers/mysqli/mysqli_result.php mode change 100755 => 100644 system/database/drivers/mysqli/mysqli_utility.php mode change 100755 => 100644 system/database/drivers/oci8/index.html mode change 100755 => 100644 system/database/drivers/oci8/oci8_driver.php mode change 100755 => 100644 system/database/drivers/oci8/oci8_forge.php mode change 100755 => 100644 system/database/drivers/oci8/oci8_result.php mode change 100755 => 100644 system/database/drivers/oci8/oci8_utility.php mode change 100755 => 100644 system/database/drivers/odbc/index.html mode change 100755 => 100644 system/database/drivers/odbc/odbc_driver.php mode change 100755 => 100644 system/database/drivers/odbc/odbc_forge.php mode change 100755 => 100644 system/database/drivers/odbc/odbc_result.php mode change 100755 => 100644 system/database/drivers/odbc/odbc_utility.php mode change 100755 => 100644 system/database/drivers/pdo/index.html mode change 100755 => 100644 system/database/drivers/pdo/pdo_driver.php mode change 100755 => 100644 system/database/drivers/pdo/pdo_forge.php mode change 100755 => 100644 system/database/drivers/pdo/pdo_result.php mode change 100755 => 100644 system/database/drivers/pdo/pdo_utility.php mode change 100755 => 100644 system/database/drivers/postgre/index.html mode change 100755 => 100644 system/database/drivers/postgre/postgre_driver.php mode change 100755 => 100644 system/database/drivers/postgre/postgre_forge.php mode change 100755 => 100644 system/database/drivers/postgre/postgre_result.php mode change 100755 => 100644 system/database/drivers/postgre/postgre_utility.php mode change 100755 => 100644 system/database/drivers/sqlite/index.html mode change 100755 => 100644 system/database/drivers/sqlite/sqlite_driver.php mode change 100755 => 100644 system/database/drivers/sqlite/sqlite_forge.php mode change 100755 => 100644 system/database/drivers/sqlite/sqlite_result.php mode change 100755 => 100644 system/database/drivers/sqlite/sqlite_utility.php mode change 100755 => 100644 system/database/drivers/sqlsrv/index.html mode change 100755 => 100644 system/database/drivers/sqlsrv/sqlsrv_driver.php mode change 100755 => 100644 system/database/drivers/sqlsrv/sqlsrv_forge.php mode change 100755 => 100644 system/database/drivers/sqlsrv/sqlsrv_result.php mode change 100755 => 100644 system/database/drivers/sqlsrv/sqlsrv_utility.php mode change 100755 => 100644 system/database/index.html mode change 100755 => 100644 system/fonts/index.html mode change 100755 => 100644 system/fonts/texb.ttf mode change 100755 => 100644 system/helpers/array_helper.php mode change 100755 => 100644 system/helpers/captcha_helper.php mode change 100755 => 100644 system/helpers/cookie_helper.php mode change 100755 => 100644 system/helpers/date_helper.php mode change 100755 => 100644 system/helpers/directory_helper.php mode change 100755 => 100644 system/helpers/download_helper.php mode change 100755 => 100644 system/helpers/email_helper.php mode change 100755 => 100644 system/helpers/file_helper.php mode change 100755 => 100644 system/helpers/form_helper.php mode change 100755 => 100644 system/helpers/html_helper.php mode change 100755 => 100644 system/helpers/index.html mode change 100755 => 100644 system/helpers/inflector_helper.php mode change 100755 => 100644 system/helpers/language_helper.php mode change 100755 => 100644 system/helpers/number_helper.php mode change 100755 => 100644 system/helpers/path_helper.php mode change 100755 => 100644 system/helpers/security_helper.php mode change 100755 => 100644 system/helpers/smiley_helper.php mode change 100755 => 100644 system/helpers/string_helper.php mode change 100755 => 100644 system/helpers/text_helper.php mode change 100755 => 100644 system/helpers/typography_helper.php mode change 100755 => 100644 system/helpers/url_helper.php mode change 100755 => 100644 system/helpers/xml_helper.php mode change 100755 => 100644 system/index.html mode change 100755 => 100644 system/language/english/calendar_lang.php mode change 100755 => 100644 system/language/english/date_lang.php mode change 100755 => 100644 system/language/english/db_lang.php mode change 100755 => 100644 system/language/english/email_lang.php mode change 100755 => 100644 system/language/english/form_validation_lang.php mode change 100755 => 100644 system/language/english/ftp_lang.php mode change 100755 => 100644 system/language/english/imglib_lang.php mode change 100755 => 100644 system/language/english/index.html mode change 100755 => 100644 system/language/english/migration_lang.php mode change 100755 => 100644 system/language/english/number_lang.php mode change 100755 => 100644 system/language/english/profiler_lang.php mode change 100755 => 100644 system/language/english/unit_test_lang.php mode change 100755 => 100644 system/language/english/upload_lang.php mode change 100755 => 100644 system/language/index.html mode change 100755 => 100644 system/libraries/Cache/Cache.php mode change 100755 => 100644 system/libraries/Cache/drivers/Cache_apc.php mode change 100755 => 100644 system/libraries/Cache/drivers/Cache_dummy.php mode change 100755 => 100644 system/libraries/Cache/drivers/Cache_file.php mode change 100755 => 100644 system/libraries/Cache/drivers/Cache_memcached.php mode change 100755 => 100644 system/libraries/Calendar.php mode change 100755 => 100644 system/libraries/Cart.php mode change 100755 => 100644 system/libraries/Driver.php mode change 100755 => 100644 system/libraries/Email.php mode change 100755 => 100644 system/libraries/Encrypt.php mode change 100755 => 100644 system/libraries/Form_validation.php mode change 100755 => 100644 system/libraries/Ftp.php mode change 100755 => 100644 system/libraries/Image_lib.php mode change 100755 => 100644 system/libraries/Javascript.php mode change 100755 => 100644 system/libraries/Log.php mode change 100755 => 100644 system/libraries/Migration.php mode change 100755 => 100644 system/libraries/Pagination.php mode change 100755 => 100644 system/libraries/Parser.php mode change 100755 => 100644 system/libraries/Profiler.php mode change 100755 => 100644 system/libraries/Session.php mode change 100755 => 100644 system/libraries/Sha1.php mode change 100755 => 100644 system/libraries/Table.php mode change 100755 => 100644 system/libraries/Trackback.php mode change 100755 => 100644 system/libraries/Typography.php mode change 100755 => 100644 system/libraries/Unit_test.php mode change 100755 => 100644 system/libraries/Upload.php mode change 100755 => 100644 system/libraries/User_agent.php mode change 100755 => 100644 system/libraries/Xmlrpc.php mode change 100755 => 100644 system/libraries/Xmlrpcs.php mode change 100755 => 100644 system/libraries/Zip.php mode change 100755 => 100644 system/libraries/index.html mode change 100755 => 100644 system/libraries/javascript/Jquery.php diff --git a/assets/css/bootstrap-responsive.css b/assets/css/bootstrap-responsive.css new file mode 100644 index 00000000..7f669d57 --- /dev/null +++ b/assets/css/bootstrap-responsive.css @@ -0,0 +1,808 @@ +/*! + * Bootstrap Responsive v2.0.3 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +@media (max-width: 767px) { + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .modal { + position: absolute; + top: 10px; + right: 10px; + left: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + [class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: auto; + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.762430939%; + *margin-left: 2.709239449638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 99.999999993%; + *width: 99.9468085036383%; + } + .row-fluid .span11 { + width: 91.436464082%; + *width: 91.38327259263829%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + *width: 82.8197366816383%; + } + .row-fluid .span9 { + width: 74.30939226%; + *width: 74.25620077063829%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + *width: 65.6926648596383%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + *width: 57.129128948638304%; + } + .row-fluid .span6 { + width: 48.618784527%; + *width: 48.5655930376383%; + } + .row-fluid .span5 { + width: 40.055248616%; + *width: 40.0020571266383%; + } + .row-fluid .span4 { + width: 31.491712705%; + *width: 31.4385212156383%; + } + .row-fluid .span3 { + width: 22.928176794%; + *width: 22.874985304638297%; + } + .row-fluid .span2 { + width: 14.364640883%; + *width: 14.311449393638298%; + } + .row-fluid .span1 { + width: 5.801104972%; + *width: 5.747913482638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 714px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 652px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 590px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 528px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 466px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 404px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 342px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 280px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 218px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 156px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 94px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 32px; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.564102564%; + *margin-left: 2.510911074638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + *width: 91.3997999636383%; + } + .row-fluid .span10 { + width: 82.905982906%; + *width: 82.8527914166383%; + } + .row-fluid .span9 { + width: 74.358974359%; + *width: 74.30578286963829%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + *width: 65.7587743226383%; + } + .row-fluid .span7 { + width: 57.264957265%; + *width: 57.2117657756383%; + } + .row-fluid .span6 { + width: 48.717948718%; + *width: 48.6647572286383%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + *width: 40.117748681638304%; + } + .row-fluid .span4 { + width: 31.623931624%; + *width: 31.5707401346383%; + } + .row-fluid .span3 { + width: 23.076923077%; + *width: 23.0237315876383%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + *width: 14.4767230406383%; + } + .row-fluid .span1 { + width: 5.982905983%; + *width: 5.929714493638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1160px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1060px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 960px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 860px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 760px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 660px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 560px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 460px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 360px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 260px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 160px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 60px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 9px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #999999; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: #222222; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: block; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/assets/css/bootstrap-responsive.min.css b/assets/css/bootstrap-responsive.min.css new file mode 100644 index 00000000..dd134a1b --- /dev/null +++ b/assets/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.0.3 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top{position:static;margin-bottom:18px}.navbar-fixed-top .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/assets/css/bootstrap.css b/assets/css/bootstrap.css new file mode 100644 index 00000000..09e2833d --- /dev/null +++ b/assets/css/bootstrap.css @@ -0,0 +1,4960 @@ +/*! + * Bootstrap v2.0.3 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover { + color: #005580; + text-decoration: underline; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + margin-left: 20px; +} + +.container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.127659574%; + *margin-left: 2.0744680846382977%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .span12 { + width: 99.99999998999999%; + *width: 99.94680850063828%; +} + +.row-fluid .span11 { + width: 91.489361693%; + *width: 91.4361702036383%; +} + +.row-fluid .span10 { + width: 82.97872339599999%; + *width: 82.92553190663828%; +} + +.row-fluid .span9 { + width: 74.468085099%; + *width: 74.4148936096383%; +} + +.row-fluid .span8 { + width: 65.95744680199999%; + *width: 65.90425531263828%; +} + +.row-fluid .span7 { + width: 57.446808505%; + *width: 57.3936170156383%; +} + +.row-fluid .span6 { + width: 48.93617020799999%; + *width: 48.88297871863829%; +} + +.row-fluid .span5 { + width: 40.425531911%; + *width: 40.3723404216383%; +} + +.row-fluid .span4 { + width: 31.914893614%; + *width: 31.8617021246383%; +} + +.row-fluid .span3 { + width: 23.404255317%; + *width: 23.3510638276383%; +} + +.row-fluid .span2 { + width: 14.89361702%; + *width: 14.8404255306383%; +} + +.row-fluid .span1 { + width: 6.382978723%; + *width: 6.329787233638298%; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} + +p small { + font-size: 11px; + color: #999999; +} + +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: bold; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} + +h1 { + font-size: 30px; + line-height: 36px; +} + +h1 small { + font-size: 18px; +} + +h2 { + font-size: 24px; + line-height: 36px; +} + +h2 small { + font-size: 18px; +} + +h3 { + font-size: 18px; + line-height: 27px; +} + +h3 small { + font-size: 14px; +} + +h4, +h5, +h6 { + line-height: 18px; +} + +h4 { + font-size: 14px; +} + +h4 small { + font-size: 12px; +} + +h5 { + font-size: 12px; +} + +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} + +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} + +.page-header h1 { + line-height: 1; +} + +ul, +ol { + padding: 0; + margin: 0 0 9px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +li { + line-height: 18px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +dl { + margin-bottom: 18px; +} + +dt, +dd { + line-height: 18px; +} + +dt { + font-weight: bold; + line-height: 17px; +} + +dd { + margin-left: 9px; +} + +.dl-horizontal dt { + float: left; + width: 120px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 130px; +} + +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +.muted { + color: #999999; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #ddd; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} + +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 18px; + font-style: normal; + line-height: 18px; +} + +small { + font-size: 100%; +} + +cite { + font-style: normal; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12.025px; + line-height: 18px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 18px; +} + +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 18px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} + +legend small { + font-size: 13.5px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 13px; + font-weight: normal; + line-height: 18px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; + color: #333333; +} + +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +label input, +label textarea, +label select { + display: block; +} + +input[type="image"], +input[type="checkbox"], +input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + cursor: pointer; + background-color: transparent; + border: 0 \9; + /* IE9 and down */ + + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +input[type="image"] { + border: 0; +} + +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + background-color: #ffffff; + background-color: initial; + border: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; +} + +select, +input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} + +input[type="file"] { + line-height: 18px \9; +} + +select { + width: 220px; + background-color: #ffffff; +} + +select[multiple], +select[size] { + height: auto; +} + +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +textarea { + height: auto; +} + +input[type="hidden"] { + display: none; +} + +.radio, +.checkbox { + min-height: 18px; + padding-left: 18px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +input, +textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +input:focus, +textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 930px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 850px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 770px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 690px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 610px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 530px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 450px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 370px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 290px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 210px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 130px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 50px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; + border-color: #ddd; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; + border-color: #468847; +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; + cursor: not-allowed; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +:-moz-placeholder { + color: #999999; +} + +::-webkit-input-placeholder { + color: #999999; +} + +.help-block, +.help-inline { + color: #555555; +} + +.help-block { + display: block; + margin-bottom: 9px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-prepend, +.input-append { + margin-bottom: 5px; +} + +.input-prepend input, +.input-append input, +.input-prepend select, +.input-append select, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: middle; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend input:focus, +.input-append input:focus, +.input-prepend select:focus, +.input-append select:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + z-index: 2; +} + +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} + +.input-prepend .add-on, +.input-append .add-on { + display: inline-block; + width: auto; + height: 18px; + min-width: 16px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-prepend .add-on, +.input-append .add-on, +.input-prepend .btn, +.input-append .btn { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend .active, +.input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append .uneditable-input { + border-right-color: #ccc; + border-left-color: #eee; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 9px; +} + +legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 160px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 160px; +} + +.form-horizontal .help-block { + margin-top: 9px; + margin-bottom: 0; +} + +.form-horizontal .form-actions { + padding-left: 160px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 18px; +} + +.table th, +.table td { + padding: 8px; + line-height: 18px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapsed; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +.table tbody tr:hover td, +.table tbody tr:hover th { + background-color: #f5f5f5; +} + +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} + +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} + +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} + +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} + +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} + +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} + +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} + +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} + +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} + +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} + +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} + +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} + +table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} + +table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} + +table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} + +table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} + +table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} + +table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} + +table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} + +table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} + +table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} + +table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} + +table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} + +table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +[class^="icon-"]:last-child, +[class*=" icon-"]:last-child { + *margin-left: 0; +} + +.icon-white { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + background-position: -384px -120px; +} + +.icon-folder-open { + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; + opacity: 0.3; + filter: alpha(opacity=30); +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown:hover .caret, +.open .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 4px 0; + margin: 1px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 8px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} + +.open { + *z-index: 1000; +} + +.open .dropdown-menu { + display: block; +} + +.pull-right .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: "\2191"; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; + filter: alpha(opacity=100); +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 10px 4px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 13px; + line-height: 18px; + *line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(top, #ffffff, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + *background-color: #d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-color: #e6e6e6; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.btn-large [class^="icon-"] { + margin-top: 1px; +} + +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} + +.btn-small [class^="icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 14px; +} + +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn { + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +.btn-primary { + background-color: #0074cc; + *background-color: #0055cc; + background-image: -ms-linear-gradient(top, #0088cc, #0055cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); + background-image: -o-linear-gradient(top, #0088cc, #0055cc); + background-image: -moz-linear-gradient(top, #0088cc, #0055cc); + background-image: linear-gradient(top, #0088cc, #0055cc); + background-repeat: repeat-x; + border-color: #0055cc #0055cc #003580; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0055cc; + *background-color: #004ab3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #004099 \9; +} + +.btn-warning { + background-color: #faa732; + *background-color: #f89406; + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + background-color: #da4f49; + *background-color: #bd362f; + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + background-color: #5bb75b; + *background-color: #51a351; + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + background-color: #414141; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #555555, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image: -webkit-linear-gradient(top, #555555, #222222); + background-image: -o-linear-gradient(top, #555555, #222222); + background-image: -moz-linear-gradient(top, #555555, #222222); + background-image: linear-gradient(top, #555555, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-group { + position: relative; + *margin-left: .3em; + *zoom: 1; +} + +.btn-group:before, +.btn-group:after { + display: table; + content: ""; +} + +.btn-group:after { + clear: both; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} + +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group > .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .dropdown-toggle { + *padding-top: 4px; + padding-right: 8px; + *padding-bottom: 4px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini.dropdown-toggle { + padding-right: 5px; + padding-left: 5px; +} + +.btn-group > .btn-small.dropdown-toggle { + *padding-top: 4px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large.dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0055cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 7px; + margin-left: 0; +} + +.btn:hover .caret, +.open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.btn-mini .caret { + margin-top: 5px; +} + +.btn-small .caret { + margin-top: 6px; +} + +.btn-large .caret { + margin-top: 6px; + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.dropup .btn-large .caret { + border-top: 0; + border-bottom: 5px solid #000000; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + color: #c09853; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert-heading { + color: inherit; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 18px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > .pull-right { + float: right; +} + +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 8px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 18px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.nav-tabs.nav-stacked > li > a:hover { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.nav-tabs .dropdown-toggle .caret, +.nav-pills .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav-tabs .dropdown-toggle:hover .caret, +.nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +.nav-tabs .active .dropdown-toggle .caret, +.nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 18px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; +} + +.navbar { + color: #999999; +} + +.navbar .brand:hover { + text-decoration: none; +} + +.navbar .brand { + display: block; + float: left; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #999999; +} + +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; +} + +.navbar .navbar-link { + color: #999999; +} + +.navbar .navbar-link:hover { + color: #ffffff; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn { + margin: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + background-color: #626262; + border: 1px solid #151515; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-search .search-query:focus, +.navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; +} + +.navbar .nav > li { + display: block; + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 9px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar .btn { + display: inline-block; + padding: 4px 10px 4px; + margin: 5px 5px 6px; + line-height: 18px; +} + +.navbar .btn-group { + padding: 5px 5px 6px; + margin: 0; +} + +.navbar .nav > li > a:hover { + color: #ffffff; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav .active > a, +.navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; +} + +.navbar .divider-vertical { + width: 1px; + height: 40px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} + +.navbar .nav.pull-right { + margin-right: 0; + margin-left: 10px; +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + background-color: #2c2c2c; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-image: -moz-linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #080808 \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown .dropdown-toggle .caret, +.navbar .nav li.dropdown.open .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.active .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: transparent; +} + +.navbar .nav li.dropdown.active > .dropdown-toggle:hover { + color: #ffffff; +} + +.navbar .pull-right .dropdown-menu, +.navbar .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right .dropdown-menu:before, +.navbar .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right .dropdown-menu:after, +.navbar .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + list-style: none; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.breadcrumb li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} + +.breadcrumb .active a { + color: #333333; +} + +.pagination { + height: 36px; + margin: 18px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination li { + display: inline; +} + +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} + +.pagination a:hover, +.pagination .active a { + background-color: #f5f5f5; +} + +.pagination .active a { + color: #999999; + cursor: default; +} + +.pagination .disabled span, +.pagination .disabled a, +.pagination .disabled a:hover { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pager { + margin-bottom: 18px; + margin-left: 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next a { + float: right; +} + +.pager .previous a { + float: left; +} + +.pager .disabled a, +.pager .disabled a:hover { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-open .dropdown-menu { + z-index: 2050; +} + +.modal-open .dropdown.open { + *z-index: 2050; +} + +.modal-open .popover { + z-index: 2060; +} + +.modal-open .tooltip { + z-index: 2070; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + width: 560px; + margin: -250px 0 0 -280px; + overflow: auto; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -ms-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-body { + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.tooltip { + position: absolute; + z-index: 1020; + display: block; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + margin-top: -2px; +} + +.tooltip.right { + margin-left: 2px; +} + +.tooltip.bottom { + margin-top: 2px; +} + +.tooltip.left { + margin-left: -2px; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} + +.popover.top { + margin-top: -5px; +} + +.popover.right { + margin-left: 5px; +} + +.popover.bottom { + margin-top: 5px; +} + +.popover.left { + margin-left: -5px; +} + +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} + +.popover-inner { + width: 280px; + padding: 3px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} + +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} + +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 18px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} + +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; +} + +.label, +.badge { + font-size: 10.998px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + padding: 1px 4px 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding: 1px 9px 2px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +a.label:hover, +a.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 18px; + margin-bottom: 18px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + width: 0; + height: 18px; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} + +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); +} + +.progress-warning.progress-striped .bar { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 18px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel .item > img { + display: block; + line-height: 1; +} + +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} + +.carousel .active { + left: 0; +} + +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel .next { + left: 100%; +} + +.carousel .prev { + left: -100%; +} + +.carousel .next.left, +.carousel .prev.right { + left: 0; +} + +.carousel .active.left { + left: -100%; +} + +.carousel .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; + color: inherit; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} diff --git a/assets/css/bootstrap.min.css b/assets/css/bootstrap.min.css new file mode 100644 index 00000000..1c75d0c0 --- /dev/null +++ b/assets/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.0.3 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.127659574%;*margin-left:2.0744680846382977%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%}.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%}.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%}.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%}.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%}.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%}.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%}.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%}.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%}.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%}.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%}.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{font-size:18px;line-height:27px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:bold;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;width:120px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}strong{font-weight:bold}em{font-style:italic}.muted{color:#999}abbr[title]{cursor:help;border-bottom:1px dotted #ddd}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;font-style:normal;line-height:18px}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #eee}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px;color:#333}input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.uneditable-textarea{width:auto;height:auto}label input,label textarea,label select{display:block}input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;background-color:transparent;border:0 \9;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}input[type="image"]{border:0}input[type="file"]{width:auto;padding:initial;line-height:initial;background-color:#fff;background-color:initial;border:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}input[type="file"]{line-height:18px \9}select{width:220px;background-color:#fff}select[multiple],select[size]{height:auto}input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}textarea{height:auto}input[type="hidden"]{display:none}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus,textarea:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;border-color:#ddd}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#fff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}:-moz-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:9px}legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:.3;filter:alpha(opacity=30)}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c}.open{*z-index:1000}.open .dropdown-menu{display:block}.pull-right .dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;filter:alpha(opacity=0);-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1;filter:alpha(opacity=100)}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 10px 4px;margin-bottom:0;*margin-left:.3em;font-size:13px;line-height:18px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#ccc;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn-primary{background-color:#0074cc;*background-color:#05c;background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:-moz-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;border-color:#05c #05c #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c;*background-color:#004ab3}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;*background-color:#f89406;background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;*background-color:#bd362f;background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;*background-color:#51a351;background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;*background-color:#2f96b4;background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;*background-color:#222;background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-group{position:relative;*margin-left:.3em;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{*padding-top:4px;padding-right:8px;*padding-bottom:4px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini.dropdown-toggle{padding-right:5px;padding-left:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#05c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:18px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav>.dropdown.active>a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;margin-bottom:18px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{display:block;float:left;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .navbar-link{color:#999}.navbar .navbar-link:hover{color:#fff}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{display:block;float:left}.navbar .nav>li>a{float:none;padding:9px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:5px 5px 6px;line-height:18px}.navbar .btn-group{padding:5px 5px 6px;margin:0}.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:transparent}.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{width:1px;height:40px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid #333}.navbar .nav.pull-right{margin-right:0;margin-left:10px}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;background-color:#2c2c2c;*background-color:#222;background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-image:-moz-linear-gradient(top,#333,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#222;*background-color:#151515}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#080808 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent}.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#fff}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{right:13px;left:auto}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;cursor:default;background-color:transparent}.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin-bottom:18px;margin-left:0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;cursor:default;background-color:#fff}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{width:280px;padding:3px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:18px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px}.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:18px;margin-bottom:18px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{width:0;height:18px;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:18px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden} diff --git a/assets/img/glyphicons-halflings-white.png b/assets/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 zcmZvC1yGz#v+m*$LXcp=A$ZWB0fL7wNbp_U*$~{_gL`my3oP#L!5tQYy99Ta`+g_q zKlj|KJ2f@c)ARJx{q*bbkhN_!|Wn*Vos8{TEhUT@5e;_WJsIMMcG5%>DiS&dv_N`4@J0cnAQ-#>RjZ z00W5t&tJ^l-QC*ST1-p~00u^9XJ=AUl7oW-;2a+x2k__T=grN{+1c4XK0ZL~^z^i$ zp&>vEhr@4fZWb380S18T&!0cQ3IKpHF)?v=b_NIm0Q>vwY7D0baZ)n z31Fa5sELUQARIVaU0nqf0XzT+fB_63aA;@<$l~wse|mcA;^G1TmX?-)e)jkGPfkuA z92@|!<>h5S_4f8QP-JRq>d&7)^Yin8l7K8gED$&_FaV?gY+wLjpoW%~7NDe=nHfMG z5DO3j{R9kv5GbssrUpO)OyvVrlx>u0UKD0i;Dpm5S5dY16(DL5l{ixz|mhJU@&-OWCTb7_%}8-fE(P~+XIRO zJU|wp1|S>|J3KrLcz^+v1f&BDpd>&MAaibR4#5A_4(MucZwG9E1h4@u0P@C8;oo+g zIVj7kfJi{oV~E(NZ*h(@^-(Q(C`Psb3KZ{N;^GB(a8NE*Vwc715!9 zr-H4Ao|T_c6+VT_JH9H+P3>iXSt!a$F`>s`jn`w9GZ_~B!{0soaiV|O_c^R2aWa%}O3jUE)WO=pa zs~_Wz08z|ieY5A%$@FcBF9^!1a}m5ks@7gjn;67N>}S~Hrm`4sM5Hh`q7&5-N{|31 z6x1{ol7BnskoViZ0GqbLa#kW`Z)VCjt1MysKg|rT zi!?s##Ck>8c zpi|>$lGlw#@yMNi&V4`6OBGJ(H&7lqLlcTQ&1zWriG_fL>BnFcr~?;E93{M-xIozQ zO=EHQ#+?<}%@wbWWv23#!V70h9MOuUVaU>3kpTvYfc|LBw?&b*89~Gc9i&8tlT#kF ztpbZoAzkdB+UTy=tx%L3Z4)I{zY(Kb)eg{InobSJmNwPZt$14aS-uc4eKuY8h$dtfyxu^a%zA)>fYI&)@ZXky?^{5>xSC?;w4r&td6vBdi%vHm4=XJH!3yL3?Ep+T5aU_>i;yr_XGq zxZfCzUU@GvnoIk+_Nd`aky>S&H!b*{A%L>?*XPAgWL(Vf(k7qUS}>Zn=U(ZfcOc{B z3*tOHH@t5Ub5D~#N7!Fxx}P2)sy{vE_l(R7$aW&CX>c|&HY+7};vUIietK%}!phrCuh+;C@1usp;XLU<8Gq8P!rEI3ieg#W$!= zQcZr{hp>8sF?k&Yl0?B84OneiQxef-4TEFrq3O~JAZR}yEJHA|Xkqd49tR&8oq{zP zY@>J^HBV*(gJvJZc_0VFN7Sx?H7#75E3#?N8Z!C+_f53YU}pyggxx1?wQi5Yb-_`I`_V*SMx5+*P^b=ec5RON-k1cIlsBLk}(HiaJyab0`CI zo0{=1_LO$~oE2%Tl_}KURuX<`+mQN_sTdM&* zkFf!Xtl^e^gTy6ON=&gTn6)$JHQq2)33R@_!#9?BLNq-Wi{U|rVX7Vny$l6#+SZ@KvQt@VYb%<9JfapI^b9j=wa+Tqb4ei;8c5 z&1>Uz@lVFv6T4Z*YU$r4G`g=91lSeA<=GRZ!*KTWKDPR}NPUW%peCUj`Ix_LDq!8| zMH-V`Pv!a~QkTL||L@cqiTz)*G-0=ytr1KqTuFPan9y4gYD5>PleK`NZB$ev@W%t= zkp)_=lBUTLZJpAtZg;pjI;7r2y|26-N7&a(hX|`1YNM9N8{>8JAuv}hp1v`3JHT-=5lbXpbMq7X~2J5Kl zh7tyU`_AusMFZ{ej9D;Uyy;SQ!4nwgSnngsYBwdS&EO3NS*o04)*juAYl;57c2Ly0(DEZ8IY?zSph-kyxu+D`tt@oU{32J#I{vmy=#0ySPK zA+i(A3yl)qmTz*$dZi#y9FS;$;h%bY+;StNx{_R56Otq+?pGe^T^{5d7Gs&?`_r`8 zD&dzOA|j8@3A&FR5U3*eQNBf<4^4W_iS_()*8b4aaUzfk2 zzIcMWSEjm;EPZPk{j{1>oXd}pXAj!NaRm8{Sjz!D=~q3WJ@vmt6ND_?HI~|wUS1j5 z9!S1MKr7%nxoJ3k`GB^7yV~*{n~O~n6($~x5Bu{7s|JyXbAyKI4+tO(zZYMslK;Zc zzeHGVl{`iP@jfSKq>R;{+djJ9n%$%EL()Uw+sykjNQdflkJZSjqV_QDWivbZS~S{K zkE@T^Jcv)Dfm93!mf$XYnCT--_A$zo9MOkPB6&diM8MwOfV?+ApNv`moV@nqn>&lv zYbN1-M|jc~sG|yLN^1R2=`+1ih3jCshg`iP&mY$GMTcY^W^T`WOCX!{-KHmZ#GiRH zYl{|+KLn5!PCLtBy~9i}`#d^gCDDx$+GQb~uc;V#K3OgbbOG0j5{BRG-si%Bo{@lB zGIt+Ain8^C`!*S0d0OSWVO+Z89}}O8aFTZ>p&k}2gGCV zh#<$gswePFxWGT$4DC^8@84_e*^KT74?7n8!$8cg=sL$OlKr&HMh@Rr5%*Wr!xoOl zo7jItnj-xYgVTX)H1=A2bD(tleEH57#V{xAeW_ezISg5OC zg=k>hOLA^urTH_e6*vSYRqCm$J{xo}-x3@HH;bsHD1Z`Pzvsn}%cvfw%Q(}h`Dgtb z0_J^niUmoCM5$*f)6}}qi(u;cPgxfyeVaaVmOsG<)5`6tzU4wyhF;k|~|x>7-2hXpVBpc5k{L4M`Wbe6Q?tr^*B z`Y*>6*&R#~%JlBIitlZ^qGe3s21~h3U|&k%%jeMM;6!~UH|+0+<5V-_zDqZQN79?n?!Aj!Nj`YMO9?j>uqI9-Tex+nJD z%e0#Yca6(zqGUR|KITa?9x-#C0!JKJHO(+fy@1!B$%ZwJwncQW7vGYv?~!^`#L~Um zOL++>4qmqW`0Chc0T23G8|vO)tK=Z2`gvS4*qpqhIJCEv9i&&$09VO8YOz|oZ+ubd zNXVdLc&p=KsSgtmIPLN69P7xYkYQ1vJ?u1g)T!6Ru`k2wkdj*wDC)VryGu2=yb0?F z>q~~e>KZ0d_#7f3UgV%9MY1}vMgF{B8yfE{HL*pMyhYF)WDZ^^3vS8F zGlOhs%g_~pS3=WQ#494@jAXwOtr^Y|TnQ5zki>qRG)(oPY*f}U_=ip_{qB0!%w7~G zWE!P4p3khyW-JJnE>eECuYfI?^d366Shq!Wm#x&jAo>=HdCllE$>DPO0N;y#4G)D2y#B@5=N=+F%Xo2n{gKcPcK2!hP*^WSXl+ut; zyLvVoY>VL{H%Kd9^i~lsb8j4>$EllrparEOJNT?Ym>vJa$(P^tOG)5aVb_5w^*&M0 zYOJ`I`}9}UoSnYg#E(&yyK(tqr^@n}qU2H2DhkK-`2He% zgXr_4kpXoQHxAO9S`wEdmqGU4j=1JdG!OixdqB4PPP6RXA}>GM zumruUUH|ZG2$bBj)Qluj&uB=dRb)?^qomw?Z$X%#D+Q*O97eHrgVB2*mR$bFBU`*} zIem?dM)i}raTFDn@5^caxE^XFXVhBePmH9fqcTi`TLaXiueH=@06sl}>F%}h9H_e9 z>^O?LxM1EjX}NVppaO@NNQr=AtHcH-BU{yBT_vejJ#J)l^cl69Z7$sk`82Zyw7Wxt z=~J?hZm{f@W}|96FUJfy65Gk8?^{^yjhOahUMCNNpt5DJw}ZKH7b!bGiFY9y6OY&T z_N)?Jj(MuLTN36ZCJ6I5Xy7uVlrb$o*Z%=-)kPo9s?<^Yqz~!Z* z_mP8(unFq65XSi!$@YtieSQ!<7IEOaA9VkKI?lA`*(nURvfKL8cX}-+~uw9|_5)uC2`ZHcaeX7L8aG6Ghleg@F9aG%X$#g6^yP5apnB>YTz&EfS{q z9UVfSyEIczebC)qlVu5cOoMzS_jrC|)rQlAzK7sfiW0`M8mVIohazPE9Jzn*qPt%6 zZL8RELY@L09B83@Be;x5V-IHnn$}{RAT#<2JA%ttlk#^(%u}CGze|1JY5MPhbfnYG zIw%$XfBmA-<_pKLpGKwbRF$#P;@_)ech#>vj25sv25VM$ouo)?BXdRcO{)*OwTw)G zv43W~T6ekBMtUD%5Bm>`^Ltv!w4~65N!Ut5twl!Agrzyq4O2Fi3pUMtCU~>9gt_=h-f% z;1&OuSu?A_sJvIvQ+dZNo3?m1%b1+s&UAx?8sUHEe_sB7zkm4R%6)<@oYB_i5>3Ip zIA+?jVdX|zL{)?TGpx+=Ta>G80}0}Ax+722$XFNJsC1gcH56{8B)*)eU#r~HrC&}` z|EWW92&;6y;3}!L5zXa385@?-D%>dSvyK;?jqU2t_R3wvBW;$!j45uQ7tyEIQva;Db}r&bR3kqNSh)Q_$MJ#Uj3Gj1F;)sO|%6z#@<+ zi{pbYsYS#u`X$Nf($OS+lhw>xgjos1OnF^$-I$u;qhJswhH~p|ab*nO>zBrtb0ndn zxV0uh!LN`&xckTP+JW}gznSpU492)u+`f{9Yr)js`NmfYH#Wdtradc0TnKNz@Su!e zu$9}G_=ku;%4xk}eXl>)KgpuT>_<`Ud(A^a++K&pm3LbN;gI}ku@YVrA%FJBZ5$;m zobR8}OLtW4-i+qPPLS-(7<>M{)rhiPoi@?&vDeVq5%fmZk=mDdRV>Pb-l7pP1y6|J z8I>sF+TypKV=_^NwBU^>4JJq<*14GLfM2*XQzYdlqqjnE)gZsPW^E@mp&ww* zW9i>XL=uwLVZ9pO*8K>t>vdL~Ek_NUL$?LQi5sc#1Q-f6-ywKcIT8Kw?C(_3pbR`e|)%9S-({if|E+hR2W!&qfQ&UiF^I!|M#xhdWsenv^wpKCBiuxXbnp85`{i|;BM?Ba`lqTA zyRm=UWJl&E{8JzYDHFu>*Z10-?#A8D|5jW9Ho0*CAs0fAy~MqbwYuOq9jjt9*nuHI zbDwKvh)5Ir$r!fS5|;?Dt>V+@F*v8=TJJF)TdnC#Mk>+tGDGCw;A~^PC`gUt*<(|i zB{{g{`uFehu`$fm4)&k7`u{xIV)yvA(%5SxX9MS80p2EKnLtCZ>tlX>*Z6nd&6-Mv$5rHD*db;&IBK3KH&M<+ArlGXDRdX1VVO4)&R$f4NxXI>GBh zSv|h>5GDAI(4E`@F?EnW zS>#c&Gw6~_XL`qQG4bK`W*>hek4LX*efn6|_MY+rXkNyAuu?NxS%L7~9tD3cn7&p( zCtfqe6sjB&Q-Vs7BP5+%;#Gk};4xtwU!KY0XXbmkUy$kR9)!~?*v)qw00!+Yg^#H> zc#8*z6zZo>+(bud?K<*!QO4ehiTCK&PD4G&n)Tr9X_3r-we z?fI+}-G~Yn93gI6F{}Dw_SC*FLZ)5(85zp4%uubtD)J)UELLkvGk4#tw&Tussa)mTD$R2&O~{ zCI3>fr-!-b@EGRI%g0L8UU%%u_<;e9439JNV;4KSxd|78v+I+8^rmMf3f40Jb}wEszROD?xBZu>Ll3;sUIoNxDK3|j3*sam2tC@@e$ z^!;+AK>efeBJB%ALsQ{uFui)oDoq()2USi?n=6C3#eetz?wPswc={I<8x=(8lE4EIsUfyGNZ{|KYn1IR|=E==f z(;!A5(-2y^2xRFCSPqzHAZn5RCN_bp22T(KEtjA(rFZ%>a4@STrHZflxKoqe9Z4@^ zM*scx_y73?Q{vt6?~WEl?2q*;@8 z3M*&@%l)SQmXkcUm)d@GT2#JdzhfSAP9|n#C;$E8X|pwD!r#X?0P>0ZisQ~TNqupW z*lUY~+ikD`vQb?@SAWX#r*Y+;=_|oacL$2CL$^(mV}aKO77pg}O+-=T1oLBT5sL2i z42Qth2+0@C`c+*D0*5!qy26sis<9a7>LN2{z%Qj49t z=L@x`4$ALHb*3COHoT?5S_c(Hs}g!V>W^=6Q0}zaubkDn)(lTax0+!+%B}9Vqw6{H zvL|BRM`O<@;eVi1DzM!tXtBrA20Ce@^Jz|>%X-t`vi-%WweXCh_LhI#bUg2*pcP~R z*RuTUzBKLXO~~uMd&o$v3@d0shHfUjC6c539PE6rF&;Ufa(Rw@K1*m7?f5)t`MjH0 z)_V(cajV5Am>f!kWcI@5rE8t6$S>5M=k=aRZROH6fA^jJp~2NlR4;Q2>L$7F#RT#9 z>4@1RhWG`Khy>P2j1Yx^BBL{S`niMaxlSWV-JBU0-T9zZ%>7mR3l$~QV$({o0;jTI ze5=cN^!Bc2bT|BcojXp~K#2cM>OTe*cM{Kg-j*CkiW)EGQot^}s;cy8_1_@JA0Whq zlrNr+R;Efa+`6N)s5rH*|E)nYZ3uqkk2C(E7@A|3YI`ozP~9Lexx#*1(r8luq+YPk z{J}c$s` zPM35Fx(YWB3Z5IYnN+L_4|jaR(5iWJi2~l&xy}aU7kW?o-V*6Av2wyZTG!E2KSW2* zGRLQkQU;Oz##ie-Z4fI)WSRxn$(ZcD;TL+;^r=a4(G~H3ZhK$lSXZj?cvyY8%d9JM zzc3#pD^W_QnWy#rx#;c&N@sqHhrnHRmj#i;s%zLm6SE(n&BWpd&f7>XnjV}OlZntI70fq%8~9<7 zMYaw`E-rp49-oC1N_uZTo)Cu%RR2QWdHpzQIcNsoDp`3xfP+`gI?tVQZ4X={qU?(n zV>0ASES^Xuc;9JBji{)RnFL(Lez;8XbB1uWaMp@p?7xhXk6V#!6B@aP4Rz7-K%a>i z?fvf}va_DGUXlI#4--`A3qK7J?-HwnG7O~H2;zR~RLW)_^#La!=}+>KW#anZ{|^D3 B7G?kd literal 0 HcmV?d00001 diff --git a/assets/img/glyphicons-halflings.png b/assets/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..79bc568c21395d5a5ceab62fadb04457094b2ac7 GIT binary patch literal 13826 zcma)jby!@B+o%-915yyF0YFyB4?Ne(CRg z-#O<#&wb84`D17H-t*49Gi$BAvS#fBDJx22pcA4aAt7PN%1EdpAw8RXk~3bSJRMO{ zLOPzl2q2PL5H+wV#M#IJgd}PLHU^Q&+8CLER6#~2F82K(0VJg7mlo<;5G{o-d_b@b zi_u>l7MP9Q6B-FgKp19c1hfJ{$c#Z|7Pf*EM~$r%WELiZ6q=k0YzlVbAae^DR|k-q ztD-v4)e6XKLLn?fCII7mGGGIO7?HtjtZg0nV1g9?*yVeY|6XRLAp1uJVkJoNAEdMt zl*z=w4j?j47B*%e8y7nn*Jl>?&uqM(d6~#Qv9YtUvVUS_<7Q@Os%DRy=VF;OnbPZB&l+~Sg=;$olKxc@r)Yv8{FpRTZ&JYl7zK5_7had2=;im|h^ zOS1E@^NNabNpOiuiHY)jW|#UmR@T-LVq^;h{dM{mYw=&$PyZv9Puu}y1OYp!gTdDS z?kdXWUuEt5GU<9?B8*-aqzJHUs!SW&!V4sCD=ZRit}=F za#FB9kud@CK`bEFpnvsHQESM*Bx{Smy@b!&$kyyB9n2;mQzNJ~ghI&7+QrV?0tmKs zG<38vvbHufF>%IThd>Rse#s3_OPbdF5nnAWt zL)hVIta5&^8bd;2&ytl8Rfo+Tcz~_-Bx?#ZE2<3oUBe})+zpAGX&=O$_aCJBN!CBt zv~LUxtg{dH^uI`jCU#YZa*6x&AyIg@k@bxImc$%rVne48BslqY$+TLFj(v37h7yfx z$^jmG#g_Rs?ETA?`?LMJ^OpUDIY(RQdGlgR?XG$OKf8PyqRZyid2g!3%@a^C1igpD z2NKzV@|1wiF}EtKQRH|$CJJ9)q3e}#g7m#Zl(d`W;iCBregW~kz}j^J z#1PLChA^$dal^V@@cK(w}dv%n2!w4^wV*y35J)-xE{$fXwc@pa}RzJm5M)#tr)iJZA7 zBA<^jjwJWvLx1>RPDIS^k*z$pgpiQZ-O2S}m#&N|A4@|nID3F1~ z+{<)-J1C8b8ezW2FI#gotv2}C#wQERQ(Bd4_} zR$QREVi8_9nE3}6@Vks1@*cVLJrSLt#`lb0$M?!xg%%C;C!jFg2$sX)U0bprNA043 zt1cd;7oNIanP3?<(O0mgAc`)87;35OB;`nL3-yw7Fq`<#Hqz;v+Mj? z%y|w07f93V#m`17f@xa3g&Kss@<20hE22A#Ba2fDjWQe?u<#pkgd4DKg$db>BIa`q zqEeb}1&O#H`nWg^GT=P^c&c$+@UcRMn~k-y&+aN^ic}0j)s9vGd$m}}SL4iw!tr4e z74SRhmFujYvTL$e!;=bil=GRdGp3UA1~R?@@XL?>oK21E-g3xj0Gu;SC|l|8wmd~d zG@8i53Tu3s9ldBp@%(!A6E=rZOl&LAvv1Nkj=ysQ(9(~g-8X6}A>#Y#1a(KQ1TAh( z`*b|k%zN|vOG$C7_4PTiy8Lhr&rZ~I!*iV zG+W%bI&HR#n{T~n|CLrV#?k5#Et)n4f;XdM7~@Er-K9uS8vPNM>uZUibWxth=wqXp zt{0wO*|bZs%9J3Y;Tj4)?d>OBZ>YUb@tFh)1KiKdOeB10_CBOTMml4P#hsP|NnH`$ zn8C$aG#8|gqT#i}vYTeH^aF(r1JFKcz$K3~!6}2FX0@^RHCL+33v-FhYXz#e!VN4~ z3pAY$kL`HvPAaz%ZKvX4N680T6G=`cF|!UT=iU?gUR}#z>rLnIjH4UiW&X!Z2Ih$B z#MDHe_%!Yd4!bTFMGeNcO(+vEfWe=Y&#$#Dh_vk`s>hf<^Bj2jofdTiH?Cvh55o&b zE2N(49<70oDa2DrZnfjbhn{Jl;CT6QCOL517jsNXxh ztk>S%Nl!1kKE!_Y1E%82zuk(#fmi4VMZZ|C9XG#t=_a%pE(?AS@K%j{n=lj?kEKY< zW|3b0>CWE2bkN^RapDK@3*dIhwI~%Mb87ZxnF|-bX;tNwFf}3s_Ti{S8}(TUA=c4( zY2Z!UZS&H=Pk;r%irg?jcz?{s!|V*#QA4{2Fzp37$r+}Z-K{*#DE7B^Inz!%Q9nU} zU%!E(b~61SJ_R5KSY88G!*+2Crm?Vp1DUFviD)lB1c&Atk+dP7K7{oK1?N#HTx(Jx zis^|e#sUW_TPZE3IGu1R+xV`&BV&1NNkrD4j;(NEKdkpSdz8YLZ}ya474taW7yY@8 zsA-+N{3&saE60RSnI802s?NYn0KiULv+`y9hNB!6%B_qCFHMhVOa;O!ge!LzPKbk( zbOnDN{s12ui~i)C55qt9+S4F%_rqna@M}~Kvh3z-^-K67%2T=8H8g<_=LYj#`6IF< z&#}t=5w#4@^{y}B4J8rm?|c7nu!l2bJZ`U-W4@aT)V{Bm!c%#8HewtNPwZ4>dYBdQ z$`?MJMLJt7`j`p7Y7C@WWmQu(B(vQ&FMa>ZZpX>;(|`+m?2Yl|fhX43DejM5BMl`? zr(v=9l4R8Y3}+Abj6x1X^T?$#`1;s>I24lFFFn~&HRgQK%%Ey(mn=20z;U>um1z~Q zJG*-wAw;tG!?{U#JnA5M5rX*u%NF+}y;0xPbTQppWv;^8{aGUxG$gD!0YAlLo;KuE zkFzemm@vHoQYYv<_b|t(esPHC%z-nLF5Q9^?&hl?0?g0d9hVSdDc=X~B?dQzaRfp; z+2*{_ss{}_cv+!%k7WX20;r5{GER*rd{={D1l}-^Se~*W+_M}?z+w9HX;SR@AB6by zI0}UM&nJY!1O!_&a8xRuf`=Drhp4bwFD4GN;7|wXEpdq}@{E+u#{VT}-UEwtWPkxKl^Wa8Qi?#AQLxY4w+?_Y4 zd1glMwHFc0bglfOS-7V_h zjsOP>)fG0TPo!`fIkeDn-b_WlxJH)NqQqX{Cjt1+PPI$%JFTSWT#$Mj_6O?PY#fK3 zMy2&j?Y~|hc!Xla$G$#xZ0%AyTx!yYt=5!)nk&0@J-$=t?&(X;8%~rQYD<{9lr1z zs@8X~WZq3R1+cmT>`KWeE&^_UF>|q&Ay^}*sN63yo7B9nz}D!eQt$6m26sKn>O$P zmvsnQ7b9nJQ46`zs$s*Wtto!ux2}?)U%;Z5%hb7!$w!&8C`>TRG+*DdD0JLss5Xff zBThm&kGp*Qxmrsc3GjV@6TVB6)l|r!wyRJP)U%eM@Of-k4FDYmUY)1+7EUyRGbs_` zleaIf78kfz<{vx`Ls^b4Ogd8_rSR#I2AH%NK)|Vfh#}z~2k0bJcEvc$3He?p;bGVK zyam;#Nl5X&J8j^k<~QS18sq4NPR$kE>m%=`^Ki#+ieKpZYF?TTM#Jv80{<7eYn$&q2aN=p)lq6fG9}Dv2}g_RSVx*Iv-0C}kEWsUw>e$24l?hUH3zqG z2Sa%=_ql^t*`t3yW7`PZ(-yol6mNfiUV1c7e)%BgzOh%HQQd^uq9gC3O*vPSi&V!$ zuJ-gy-6_@)r?@+~#wK_V|QHgllM9B^dZanlnPLZqhL-@Wql1PDLO_j>7Nz?o z+_&sbFV42Gr7019rPl3IUH2}h2Wl+=p46k?>x70Pnt9Gn_CduyDht`=S4b}9&F^387k|mAZg2^t9(aD+I+W{ z#iMaSJ%Slg$*$}d;|(Q|7`BKm3z9) zh-*c!-WX<4{kD>(FE8TvP+#HUL}QrAKt*0vVL7!~ovM)?Ur`?N{))Ew;yk>PkfjG- z*)^I$qo~mV?U!~Gwi(1*M)0+vT9Jy~`kGC^1<}kh2R4PgR^?53j%>|Ns{2kn=ewGn zvPvguwaHo(xrDKI-r{x~q$onf~4u$MK|{q*`g)sDyNO(})q!R?7xZH;c=m6iWiHEU8Q0KT-e zKaAgECVApd!3(FjK2!e|a^g^-5f7L7jB^GFCrwQ_*B`o?=jeoDN_*x+cXrv8gf$36NQ*!QC!Kwg5~wLak^RyUvu(CifB7CA>(1lu6}+@1^DvB!>VYXX?9Ys*9wd&0abG}7TGJ`WsH;FX_s&}n4v(1m|Q)++R8J>#?XO`$8g+3q` zwN~X&6{@){!8Q1(2!in4P8(_gYuOhhFGZ;=C-6kTb%~vBQQ*b-=z*J+>E;6ujm;wX zvb?kY(oC=+ca4)i4a#h@{dTzWSLS3ag^66Gpkn{ke!AC9A{1jMRP%OcQ)<<@nxJH} zZIr?|jBinPoiR)snBOcecjcb@Wuh3my1iVRzl-u;gB}~Rjhub`?Cfu)nPL3L+b$kL zO32z2XK-0_shy`%ZT9<2V<1qI5Rel|E7W{`Hg#M|m&O0`Ua-&p;v}tapS>wTE*On` z756q!EO*AN?oxlV&@ybUeVWd1q~Tg`kpqG}F@V;VsN#&)R^`V00X5}(4*PmNqShEg zQih?Ga1nmgvx@-!Wngeg;A+L{F-(i zf_X7=?WU?j|23>ePpP8OODXHU69Lw_MmSudzHtic8)MWn1BPdI_Ae4ykPB0u9il*G zJ?$Q@);~I`)dd=AQuaxcTe2HSse|E|ii5U_*5>3~bz~#PL%91W(Nyd|=|ZA6*w`c7 z$R1sRD@XhF^&4gJ#exDQRqq3%$Y|oPc!wXV-=n37^UJ=Olj%RP#gEAol|$!AAbjxW zXq&hxEZQyPL4JOa6I*343W#)9&u%!GDhw_3B>yJ7)O`Ae76GRZenb(|eWOMZU_spF zuD{--T)B0<*4E?|ri0F<=p!twyj!hH;HlUN0Htt?hj8zO#!~F83W|K9Lvq z3{RaoPbjaDFu@z{^qW3cjj7kS$GR|;9I%R~LZ@6(ENvrteZFbkkow-9p%qZBx>J+M zq8}TEyApxpU@n((iw0bRrJvc6Cd$y8wbf4?-w4%S5$Slysc^DTKW~+Y`!?zI;_DZL zV9KO0`~P=A@%O2`KlPzF{xwsO>z5=mqo0Z23o-D!NekrdbEa^%TfV56v|FDM?4cKX z@rrk@JJ?1_5irzO66hc^C*{*Ke&o=Ijw!R*ZAgtQC0ezeL17SocQu_m!6VUsNTcVG zpwRaCZCIJ=OR~@li`X(c8LO9k&wjr&0Gd_GRou<{3Hu`Css}PU72iy4PZtFd(l9VK zR)fk*&dPTy&yMX{o8@~bPnX0_Q@UX-RN+o|sC$;fpA|xTEugMj7@)yJ{4@bO3x^+O zH0OTqp82(iEah+>0QWS z$@9x&MNFG_ayE3OJxi@l$%9i2{OAD1go7t5}Sv8p*L*?_XV-Inr zpe~mOfBekpsM*iZA4B0U-_aDDuQGQ>$du+c-pHfXyBaLv@T`?*-je(+>E!q1bXa1q z14-*PWvM+oFg(z{YlRS2em5Pw1U1&De`{t$Pg={frAk6|^cDRB$0e*ut zvJ=N0<2rG{&|2ECVoU=~V0R9rfUWk0Z${R3(A&#kkMCPoz`s?k7N+_8!1v32J*zyO zR9Lv8#NK_E; zsf^8eBN5l`rT5}^m`=Z(Oaw_(G`KLa6xX%V@W0keWi;An4+N4QThS_k{n&Vyk{0!?N_d)(8r)?>J|F`-ZusfRTzNO)+h%L=-)$92e&Ck?1oAE(~~ z$-n~o0g*n;RB*mqiaAn=Wlm0w2D6Yu&4fY#;MU1bvU(~NK6m1FUoPk+w;|b?nzGkO z_PUIl=pfDRhrLvm<;sb9>BFB~Sc4oJ;hS&xb#O~;Q7(2b8< zQ9Hg8isf_ddK#6OY$>r#Kxz@D+gtkY>hy|#o8Z-=^bH`o)WbuhhdK98@PHbw2Zt=7 zV$-oYeC$U<;|pnaU4187;%~hxdnq*JOnEGam?8hex6Iy=ZlWGzZv-4 zoJ{KX4x(J5=P>qor+5;Qvhp3GFBpXJ9fO3crB!vqua&Y$iFJdsGsQL15;##Wtx)a! zYY)JHGBW`d%x6ZI`{f6_r^+OdBbZk{<-B0y4iS|--^SLDWVMu&VT?M2Z|8*E=pfeq z);Kt;$?dDKuIJvdZG|d_=QWvbk?X!+UMjWng_S4uk_M}7f`V03>h!f-=Qxpm9ReU7 za!V9@Dytw&Y;Dn_tG@+O7`;DiSse1^ilx|o^~@+CRqBxKgXtuFTdkV9s}V3?Sy6{S z*XctI(Eyb3h^4g}R#0C=Al$1x3GX$~3fA}}eX>>DF+LFj4zJ()a-xd1d6P?W{`m*D z*x%43iLpP6D8xOj1Z<^h)%1C*{`|uBM zAKe~zJa>JT4Tqn|wxn>-+P9_i;yHBP@*ap6jMJgu7>d2GIq{>J`g;o%tKlmpM-RrSw{_pAKK; zSq)!`7M=VE#*z4?xSugikUTPD}y7GXhB{U`6@}s8z0d@C`F9EQ3#s|A3?{zk{KOin$?&5UgsTdnL zO1i!hQhbL?LiIIX*RA*iV$~) zB>zWXKyBeJC4}W_3SGU)PQseJzO;g~99>U&xx8@V2Qp$StzgO_?GxT!9UmQV2vt-^ zkab;==s?$tI#Akh4J+G|pAPYZQ5vA(8|@a9T2-p=)uPN{@6f@tmW11S)1s z!h%|zyG6Dc);F%IdWaK*t#r*khD51^8Ay)ixzUtt=#AX2VmjE zOFg-|2AdD>SmMSf?bo9uRB)zYaT{m9I%7Vs)$dLGX>bj<#I2?S8OUQRh(mJrJhADZ zT_^gL-3m0*JIokIbOUyiA83%98nW2{Wp2BW5akVi?klylc_3UwSpIlPTwb zEIG-t+EJ;a3(OZ-sGt+R_j^Z;x|qvjBr|7-{wn4kOG&^GRt$u`kMx zzV;Zy-UA7<xMJg(rd2`sKuS9&FoYuUoug>t*^~eJTjg>pWcBUABu-7%@{xM zICt)A_$aq9KQ1!{${`~7GXd+8ZDmu`rjx$oiC@GP<}zwn_dR8&M)WQdC&iw3E)YGG z>3e7ZNZUGzmYhW2?kKOPphuHB2q3zn7e!n3V8t*?@hpE5fc7snCI0l&iE)SiOs(W%=b1^y8b;aHjB&KaO|McF*t%v`zlW*&h5@1@_C^ zu@=`+#rV2TS56EeCh=>uP<-lPc^}fc208qOOb9~TKo;7L zA~1!rYZOt)&{UFvJI5a$VIW+Rn=eIQsZ^sU)8hNGK};PpknpE84hIhht07)(ER+4_ zxLhMx$;116i@tQodN*XTcFS{`!fPjk0n} z1udu3=k`@uaQK?j)YF!Z2n=fc zY`~>$*#BZX+mGk=DFM0Z|L3%DK(H(w+__!4UF`kf9Jf(YzE zR+p>6%a^g;g${|zdmK6-Gj(({7pl{TV*3&Z!Tg4cKvV0j;*Hb(Z#qmw#wdm`wZ8ts zjIUMJ`h#Vh4=S1zDw~a^H)q+6{ z#Hz!oYPE7ZFi~~AG7n#q$;s}pANs@VyV5vhU2&d`=@Es*pQh}pgHHCW`KB+GEa9ck zW`9DlW`Wvi6+8Jp#bM-ebD50CjykM&Y5Nb{=n_#L!>gatGhc`j`D$a>B*m5@1=_tY z1!7V55YfU?hSlU@@flw?^BFXCnLzGQ5nOAvVvjQP>otW|mQj7Pc1evAEdaVt_O7si zLf)Opv3>@Ky-^Y?)9yR;H}8pcbX&{bu?-8JE^rhUOvU2ko_d9PU&9pXO^>cRZ#zZo zCkq39jb4}nCKp>1oQXcr)#BC}eH;uS!al|lo`b0S;{)B1C!B9NGJ7sRRf8u~;@IH-gDB{~GwmgyVn+go-vI%&pi z&YpjGP!eesJV1P}>w0bDVqj#o(Td$rcY=Dy(vmsW4Lu7vblFZ1AkwFt&8yEeH+$MF z-`f?Kpo$}2=fdkh7scLN3X|LFczR*OC>3vQN$>T`HJ{7Et7(nPTo6piDNA7Mqp=3RT0d>DNW?+-b;wgbWc@xKrOgn@*hcG0Bl300~zM z1cqJaF;{x*c%r%A4-dBquj5*G&bu!gKwoO_nS;LQT^1W`?RvhSP_8$3==>+aY-PTt z>bq-vSj!54>+X4cy9uFc7n4e89$B@NcVD5A-ZJOxHgc`}0Xekmrnv zFXt>J(de%xG=HqM%#sdc`1MGQF^WDoQiWxMaI(4dHmX&4!LlBo`(Of>F#wiHG2!fZ zvB{2Q#2#f}GF24rrVMQV1q+OtDek8cd8z74b#rGk91~90FBtkjwVnDn53id&|26Z`rO1<>1bMNki zIionO>*HS1J4(aUYgwsF#kSB3LoKM6=_L4awnOEIti-PdFWHKvSHkYopzzkmO{#f! zBCp*D{8xF0vlect8R3v&sfl^TuDXSf&P%wC74{#9?N5X!pC24A7h4?)2V-9N|c{C;w5wl|z8<2X0es$`*M5j(oF{0r&32 z`U~-Q8qfbA;nM54%Pd-|nK@0LdSA=5KyqV*g)A>?W!gQiNj|kKfej`z+TWeH!`Hpg z4x)z(>^8nLqTC<9RW5iJvCjWHv7}1afGXDDjvlcDu^s2txL;E`C?VN3k?3wy4?Rg4 znmrvze0;v4z1-miFC~klv>fjZbDDi1Sb3^nk~4(v>AQ0kEgcS!BT@@JFn156+M2%+9d~_aj?sf*d7G$H=KZ+;~_5OXv~HkLZB`D1C0=ySHh6%$1n_d9W{Z z&m>oGu#UW7!b=#@N;S*cUt1_&zh6G6Pp&1MS&qW^nP8>f9Vydi7A|Q=nJs1UqHe~% zo8!0@d07eTQ)zRgq2lRbPX=U9X)}<}K~;F^6$@(xJg{M=ogF(BJK$Va())Mp;3$9P zb1zLrct_$*_$9%}3(n0%gfU}7>#&k71PXy}!LO#cR3p!xc`NR8zFQw{A$DKq6Oeuw z;ZC#iv;VMss-vmXR&ElJ5dxInx1l|}uEaG5i80LcV~4TkD%!RUD@5+~l+kiSOpS0( zJ-iwpm}JCR@Sy?BW$_tvO%K-fQUFm-UCi;NK$-MsQoWnQXO+(qUd!{zFS!JepUfxD zmmoFLB>{OkHam{gP2#GXZaq&=xio1Kop4j#`v}Qz6U1D0dc!ks4ikn{Y6ti#ZeqYgF+ z0jQIIQUvnReW)_53Z+>u>)Lw((~vxa6AFrr%d}nI!o7{spwl@ir`qH9j7o=6JXYD| zsp>X-yI}#VHc1S{c}{E|acAh>zF%*}R`4 zM+xtI9F&>Xs(IJooneFYo;l{cU*-2DT~2TUm;QwTC9RXwFSwqHS82mcZmDj8xVn(+ zhjg5e>~E9?3K-*RvJ)uCq0UIdRl~D85$B^#Nph2%)6FN1>6!u6+%oE;F=J5B=`W{` zL<6;Qu8Pq|0+tS%yP10nmIgUV^r%Hyjyo|#W0hIVR`qiw@r)O7`K*l4Ma$$u=XQc$ z^#q3KLI6#VtuIxX4b;#_lx#bieZGmNS8?8jxHeTsE52O+t4ih5iw}=p7@DZs*!jev z{i#&SO#GsN^zjC{G<~Nu|2>~?q2Z@)UnNDB&2?wHQCn?p9v7YpNRPW1 zWM9#550th&<~(gv_Sok5g3e8tnTzkV2|gxe#kE{nUT{aP8n5=}qg4mCp!JuEcz=Ht z&y3I7&uxdKU%P7D+5NV%Ok}hj@mimhKlv+R1bd8?zb|20JJD?Q?=vElsc#c2!VJmq z&W&vW+CaWx`FG1VfMsEf)`p}0TTes}|I{%_X{vj;}wDxh!zb$|D=4e756H z7dp8?Ul~60@eSwbY!+Crzr*mLMSqj6ofW&@mJB8fIGm%=B28`wnbx8F8YnigN|~sB z)ie@y57LaLin3|;u`JzFDsS0JCrG!Z4g+Nd*=-JadG7AesG5y*rMun?dHJhkCMW_% zCal ztKYWr0+ECjETkqk!9jw#hv?D8BB>sVztP<9s&fY3kg7O(65kdl!pnzWhNl>mkKBOP z9wGNuspXb&`T7gZLu#Y670KyIg|D$foZ^6CxK^NurqGjTAORgOb-D`MnNNRW8Xw=g z8)`pHz^^@&DlTfcLBTlT7>c#c{d1Rs^_EM?6rpWz{8ZrZ3&E3&F=tOC;zGnc>6#NjY1JQMZ!+8#j*!95<*U{5CE&b@6WIV= z`L8w`z0>!&Y?@c9IUIXc)WVTOpF}^_=xxWoJZGv|AT41`N;g@MZhWeGa@pxlgGji8 zR3?G5Rb3_fNj8zy!w)Nl>leQXO0(UI&kdY+N-i0G7Z%q|`!Oo^N%yZLWCBLMop?7) z`#d}b79JtI-AG(Fx@TIi!6u-D3-^!Dlae;43Yp1%MZ9XATQ^#ln*F21RntEEXZFkB z`SV+qf>QWy^~x~X!#q&<(a*gW8Npq#5?J;o^D1<$rOl;PQ2b4cBvE-R>e$@3lbK}qIv=--S zEeI|aC9>S#V3jN>JO#=lUV`ja4_n@N34a(b9DsX~5L~fhJpe=AgZbr~VX+0ZQY{x^ z(k)K(A0~mNkFt zA8e)|)*K0!nFmOg^$p@)RlWA0%f_jul)Ga}wOT-A_SHF)3v!5Ywj5XdkuSTR2s1b> z60lzNZMkjx`b~_wapzIo-Eku>H`NV#XFRgb*F@gDM&yDMiwX=D%B zmzw)_!+aX+zV8mY9at~%ev^rb^(0rwKSp(3};ZpMvxEwD2OjDaVA6Ry$0&8rtZV3pHxzf$? zzAjYXA~;b|XCc95MUR%dTT@Z>0}uY+8y=;wW1vky{pKP;cOV}6&6tV$I;>`FK z906wPfPrz9t=;&M?(Wwdm z0?&;KzLQk84srC-9#ap*I_9GregSZjm<$6oiZ>h3ACEnS7A^faq{fPmD!rT69qQG% zRVF#+RDZ(-Ue?g!$?;NT#p=8F8SV%EZ5ry{-5J)UN6Jj~-klPlw7o4w&aUp0pn@@) zM(jp3}a6rP@=sC1ZvM zV)jL-HO|elZ@x|hHXkrmGu9uS2%=Jqa zgIqpCmA+s{=XewW1!LqE)3%%mIO z(8jQbk;xApH`iS0;h7M96j^_3N=#|-xP-=*>3=obmL(W)Au>jdy3E<UjD;R zOI^Va(lW(qH`MjF&}RqCOifgKKA39SANA9=Qv4z+3Qey|4BJBzex_v%9=l5D-xJaG`?IF#?EKul!io4R+`>v>t_65&VXqROwiMr@*>SD)gNHL4^Ml5(vgCqodJjd$~XNSPzt@GziL=mgy;Y+qBZh&1qKxwm{>$kMCyH2rN?F2%^-bX#z9QBC| zNx?aIaFXEMqAKsMWDfWB@Pt3@$5LZ%DVDT70icB1BXM`F_#4rYqTkpk%wf tVgFekgZM{XhA!KlmFcR^%iaf4$rSfz)nO-hfB%&wE2$_^D)!aq{{YOB6}SKZ literal 0 HcmV?d00001 diff --git a/assets/img/storing_animation.gif b/assets/img/storing_animation.gif new file mode 100644 index 0000000000000000000000000000000000000000..eca3a53c7920249927ea49e62ea40445a93ecda7 GIT binary patch literal 3887 zcma*qXHZj%x(46?30<~_k^m}#5vd}@0wM}1o1!2ngeKBUC<20nCWIy(L4<(xUP2-e zn$$=Qp(aQ#0g+w;LMYq94fo!2?wpxBv(Jz9XU&>fKc0EN_xm)p|5Q}6Rt2a6_5c7p z9>1}%k&%&s!C>0j+DIhQ;^HEWMx#(DtE;PIGWpl9U;F#}$H&K1Dir_#h@5cfX&64e zucogdFC)vuaQf=E;HCR7?XA7-?Sv6mGgNZqWd?~HQJ7}eL_Ul0D;6=BEi z5N5&qI*88)84ZZ_kLP*I9O?Ex)gz7jL#9o3m|`BFAQ%ZME&-OIlQ3BKlIpjGu#XMW z5E=P)w(EYCWo=MViGDGu-eD4Xm_Wkhp@yNk0PIf3q1xW^mZa7v7wL7u5$+<>7w(Rr(N{|Csw`}U8&onDt z*^8=DSBtq6oOB*Qw$cGhng7Q58Z5Vb z0-g9N@Afa~r)V8Kk+wFNeOGP=n6X_liZxMi4)l|^1J%HFohzL7=FJ;Sm#|&KV@npz zhP3=|$|$H+nKR4ytE0n8WakTryK5kSwPmmO(Cr{;#pik4-QYv;T$3-E^>0BF?BH_Rq{Axgjmg5A8ww9*-synW4P{uG_%rL{P{2%|o}*e_-c%2b5OWw8Oi8od^oa4Fkc znU_{f178`sz0eHcd9CQ}g5dSDd&3>29~=@23y;u!9b*~ClVFkvc$fJ!n>*L^!^@&4 zC4e$_v=hea+VzH;=25k3AFn{gr90SU@I8cHVqgEj;LtFMz{z?F+D#T@1wDApYq4(P&e+L{8LeMz*6LKv@Cx5DtSIk5H8t z)zq2q-}wgl$5^NBIpW%@IHN088t%}0j2yi(_G-yu%BczvrVE5*@p?BaC4EO`=ZR3W zk!4&dsX$AG)r446Hd3rDdME2I?{*~G1n1lm6IVW71gnqf(n%=h%mB3dpHYTwYN+si zd15~e+nCn$T!N+Ok8d@hc=xwK!-$PpeLs*wk-0D4+9-tY+VXVTre$2TsDjK-6PR5u z}Hh}e7Y57O*zWCphi6jVS2*?WOw;gXl;C*E2FJIBi&9t zfXu%8p-A5gw!J6V8R%*4gs3*k7^?I3x(Xknc=#o8RZ@2y{q-P0VNX3C+S-KM*=za5 zyoj?4jEYW<1xFYlEd}J{rLKc>^JKCN#mdnY80^Q&s%l(KZC!nXASYXMOKS_KY;iu8 z4MgW9uq7cd-9!?oKkZ$`FuC{3hxowD6O%pDX0u%jQv<<6D}8Hk(DMt6ycu`rpu3ZM zu1g!6Bio9{w)G$N+FVWmFt0Z|mTG_^_4rWKjo+0Fc(x56FwV=9Dm3wx8r zAICiEm0t>HkhLXdvL%Ny0TsR0XV#GFeL13*ofHD`V#`?VqwBz?^~*UO7cbH;x7 zUv(J92^iOHB3@08Jr|pq(Z1t2G+nGIY57}{@jr4Mpu3VzT}$scYUWY{J*+-Gry|(c z5uIO?P!;?rUE&^picAt7jg?Gi|73x=h6V*hDpr~5wuUk|I-I**QrtivLC?FPR< zgob!W_`EiW^p6dU4+49}B)Q7ol)es@L&>COW{KtH7Zes1mz0*3i!h$Leng+Es;$Ba z)-_@p1ezKPnA)g)J_lbSN0r{xyul}D+KXuJ}un=aSEzT#Z;;MNak!PXhf~r;dU9r3pimLdk zf}XcrO@CUShbPg^#GjTwi_T>X1JYgNdhv|C8CQ(g4JY5Jhcc>$v7h;XUmi$OLTqm; zEvyWefMQ^ZG2ZRkMYq#+JlKs&4cQIlu5=M`jN@3b_*en2piQMJhoXWX zsmy`?Ws8Gp9d(22FN@vMZj^k;uG}r4CWwf#U(|bM1pHr5;J@{1;(zz5%hkq{`TBS} zaJF?B)@d5EvsyR$a>h4EIt{bYOyo5BpD~P-lT3NEAgkedH_0HD)>!kXEP3mO`8S&u zOM}tC%O59SsGD7IKwSIk7`QFbk>L{%$Qb0{$?d1_6d3U=5*V!=8t4878T{n^t2DEa zSg&|nRBC!I@7;TfYT(i`jfQer%(>&caj$6`|X3-cY^g;&1#%O3czX3y6e2okIT4A%|v5r z+hG`smi7u^pNipX-a&a?^q81=y7D@S_}1p6JVQV81GMPu#C7M<=cbFV;stIRPKK-X)&4SC9-v(J z`imQ0t*HH8B3a6EF!26AVgLVysp`l|{LO`1nNH=|BdZBZb%XF9bLthO=J=+RZfh-R zAwh`Hz#)$jS4gS1pyK5eDF>eYLVpa{6;>T#kUJ;Qa0v$Qo2~KIg^v^L$)G?=6FT((h#$rl!5~%X7|h%TZMO6RTw%iN1AP zpb!xAthPzuQ*1LGwxg2{E5OBi+OJ%MW>(#&mH{-W=)_V3+4i0yZ0}Z5GHpJZ1?&^V==cL3pbH#&xmCA80pEYWaqWosyjWWpZ z_JNR;^?F1V@qG3GGWbw7=aV)E4QIofiVj7N-pK_R7ri*1HHdXzP8vN7eB27jg1-L52Xr90On9iHu@$cZh%| zMkQOMSfP;VPcvXyh#ajvW1qs%u#$%bZbh0H>)SeBMoSUC7+=C?p!hglf*_Gt_(8{1p-v3ziFBvUy8k@?UT zyw7OHueFn<7Ea@ZS!pHa;KI&|KFKW|vQda*?YN;gzd8t2NIZF+$uvnU@qLVN(ky}$8rep__OhNzoQqs`%7 zj57Z58(guwNTA0zTjZZL3;MUQT=}naXMRQ44xY_*qr!Cq3r_C$)}>!On}JklIV#a! zTReeqSw3k`DFEN=VPp1@I%G=L?yfm3I95G&NH5#J9ASa^WWyb3NNkAfSI?p zsoN9lYnwX<%-{FE(GID{e^HKTE{A_u-3npi5adNx=BS6Ap{fA+NplZg^DS6pqDYk5 zh=pcJ&V8pd-_(+zY(dw1&)O5?*9Tu)O+Hz^nR-)sxW5-yGL%D4@6xAvBt5-5D_Ea#1D literal 0 HcmV?d00001 diff --git a/assets/js/bootstrap.js b/assets/js/bootstrap.js new file mode 100644 index 00000000..6944ade9 --- /dev/null +++ b/assets/js/bootstrap.js @@ -0,0 +1,1824 @@ +/* =================================================== + * bootstrap-transition.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + $(function () { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd' + , 'msTransition' : 'MSTransitionEnd' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-alert.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-button.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-carousel.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = options + this.options.slide && this.slide(this.options.slide) + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e = $.Event('slide') + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if ($next.hasClass('active')) return + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else if (options.interval) data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , selector + , isActive + + if ($this.is('.disabled, :disabled')) return + + selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body') + .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}(window.jQuery);/* ========================================================= + * bootstrap-modal.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (content, options) { + this.options = options + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + $('body').addClass('modal-open') + + this.isShown = true + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element.removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal(that) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop(callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('
              diff --git a/gocart/packages/payment/cod/language/english/cod_lang.php b/gocart/packages/payment/cod/language/english/cod_lang.php new file mode 100644 index 00000000..f56fca35 --- /dev/null +++ b/gocart/packages/payment/cod/language/english/cod_lang.php @@ -0,0 +1,4 @@ +CI =& get_instance(); + $this->CI->lang->load('cod'); + + $this->method_name = lang('charge_on_delivery'); } /* @@ -52,7 +55,7 @@ function description() from the same place as the checkout_check above. */ - return 'Charge on Delivery'; + return lang('charge_on_delivery'); /* for a credit card, this may look something like @@ -83,7 +86,7 @@ function process_payment() //process the payment here, if it goes through return false if it breaks down, return an error message if($process) { - return 'There was an error processing your payment'; + return lang('processing_error'); } else { @@ -105,22 +108,18 @@ function form($post = false) $enabled = $post['enabled']; } - $form = ' - -
              Enabled:
              '; + ob_start(); + ?> + + + + CI->load->library('paypal'); $this->CI->load->library('httprequest'); $this->CI->lang->load('paypal_express'); + + $this->method_name = lang('paypal_express'); } /* @@ -51,7 +53,7 @@ function checkout_check() function description() { - return 'Paypal Express'; + return lang('paypal_express'); } //back end installation functions @@ -107,7 +109,7 @@ function form($post = false) $settings = $post; } //retrieve form contents - return $this->CI->load->view('admin_form', array('settings'=>$settings), true); + return $this->CI->load->view('paypal_express_form', array('settings'=>$settings), true); } function check() diff --git a/gocart/packages/payment/paypal_express/views/admin_form.php b/gocart/packages/payment/paypal_express/views/admin_form.php deleted file mode 100644 index 8c1e1f3f..00000000 --- a/gocart/packages/payment/paypal_express/views/admin_form.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
              " />
              " size="50" >
              " size="50">
              " size="50" />
              diff --git a/gocart/packages/payment/paypal_express/views/paypal_express_form.php b/gocart/packages/payment/paypal_express/views/paypal_express_form.php new file mode 100644 index 00000000..74050c77 --- /dev/null +++ b/gocart/packages/payment/paypal_express/views/paypal_express_form.php @@ -0,0 +1,18 @@ + + + + + +" /> + + +" size="50" > + + +" size="50"> + + +" size="50" /> diff --git a/gocart/packages/payment/sage_pay/libraries/sage_pay.php b/gocart/packages/payment/sage_pay/libraries/sage_pay.php index 3836b84c..35ff9a78 100644 --- a/gocart/packages/payment/sage_pay/libraries/sage_pay.php +++ b/gocart/packages/payment/sage_pay/libraries/sage_pay.php @@ -1,386 +1,397 @@ CI =& get_instance(); - $this->CI->load->library('sage_pay_lib'); - $this->CI->lang->load('sage_pay'); - - $this->method_name = lang('package_name'); + $this->CI->load->library('sage_pay_lib'); + $this->CI->lang->load('sage_pay'); + + $this->method_name = lang('package_name'); } - + /** - * customer front end checkout form - * - * @param array $post - * @return string - */ - public function checkout_form($post = false){ - //load form helper - $this->CI->load->helper('form'); - - $settings = $this->CI->Settings_model->get_settings('sage_pay'); - $enabled = $settings['enabled']; - - //explode selected card types - if(isset($settings['card_types'])){ - $selected_cards = explode(',', $settings['card_types']); - $settings['card_types'] = array(); - //store values in keys - foreach($selected_cards as $selected_card){ - $settings['card_types'][$selected_card] = 1; - } - } - - $form = array(); - - // Retrieve any previously stored card data to redisplay in case of errors - $sp_data = $this->CI->session->userdata('sp_data'); - - - if($enabled) - { - $form['name'] = $this->method_name; - - $form['form'] = $this->CI->load->view('customer_card', array('settings'=>$settings, 'sp_data'=>$sp_data), true); - - return $form; - - } else return array(); - - return $form; - } - - public function checkout_check(){ - - //load credit card helper - $this->CI->load->helper('credit_card_helper'); - - $error_msg = lang('fix_errors')."
                "; - $error_list = ""; - - //Verify name field - if( empty($_POST["CardHolder"])) - $error_list .= "
              • ".lang('enter_name')."
              • "; - - //Verify date - if( !card_expiry_valid($_POST["ExpiryDate_mm"], $_POST["ExpiryDate_yy"]) ) - $error_list .= "
              • ".lang('fix_exp_date')."
              • "; - - //Verify card number - if( empty($_POST["CardNumber"]) || !card_number_valid($_POST["CardNumber"]) ) - $error_list .= "
              • ".lang('fix_card_num')."
              • "; - - //Verify security code - if( empty($_POST["CV2"])) - $error_list .= "
              • ".lang('enter_cvv')."
              • "; - - - // We need to store the credit card information temporarily - $sp_tmp_data["sp_data"] = $_POST; - $this->CI->session->set_userdata($sp_tmp_data); - - if( $error_list ) - return $error_msg . $error_list . "
              "; - else - { - return false; - } - } - - /** - * payment module description - * - */ + * customer front end checkout form + * + * @param array $post + * @return string +*/ + public function checkout_form($post = false){ + //load form helper + $this->CI->load->helper('form'); + + $settings = $this->CI->Settings_model->get_settings('sage_pay'); + $enabled = $settings['enabled']; + + //explode selected card types + if(isset($settings['card_types'])){ + $selected_cards = explode(',', $settings['card_types']); + $settings['card_types'] = array(); + //store values in keys + foreach($selected_cards as $selected_card){ + $settings['card_types'][$selected_card] = 1; + } + } + + $form = array(); + + // Retrieve any previously stored card data to redisplay in case of errors + $sp_data = $this->CI->session->userdata('sp_data'); + + + if($enabled) + { + $form['name'] = $this->method_name; + + $form['form'] = $this->CI->load->view('customer_card', array('settings'=>$settings, 'sp_data'=>$sp_data), true); + + return $form; + + } else return array(); + + return $form; + } + + public function checkout_check(){ + + //load credit card helper + $this->CI->load->helper('credit_card_helper'); + + $error_msg = lang('fix_errors')."
                "; + $error_list = ""; + + //Verify name field + if( empty($_POST["CardHolder"])) + $error_list .= "
              • ".lang('enter_name')."
              • "; + + //Verify date + if( !card_expiry_valid($_POST["ExpiryDate_mm"], $_POST["ExpiryDate_yy"]) ) + $error_list .= "
              • ".lang('fix_exp_date')."
              • "; + + //Verify card number + if( empty($_POST["CardNumber"]) || !card_number_valid($_POST["CardNumber"]) ) + $error_list .= "
              • ".lang('fix_card_num')."
              • "; + + //Verify security code + if( empty($_POST["CV2"])) + { + $error_list .= "
              • ".lang('enter_cvv')."
              • "; + } + + // We need to store the credit card information temporarily + $sp_tmp_data["sp_data"] = $_POST; + $this->CI->session->set_userdata($sp_tmp_data); + + if( $error_list ) + return $error_msg . $error_list . "
              "; + else + { + return false; + } + } + + /** + * payment module description + * +*/ public function description(){ //create a description from the session which we can store in the database //this will be added to the database upon order confirmation - - /* - access the payment information with the $_POST variable since this is called - from the same place as the checkout_check above. - */ - - return 'Sage Pay'; - + +/* + access the payment information with the $_POST variable since this is called + from the same place as the checkout_check above. +*/ + + return 'Sage Pay'; + } - - /** - * back end installation functions - * - */ + + /** + * back end installation functions + * +*/ public function install(){ - //default settings - $config['service'] = 'DIRECT'; //FORM, SERVER & DIRECT - direct only available in this version - - $config['mode'] = 'Simulator'; //Simulator, Test & Live - - $config['direct_simulator_url'] = 'https://test.sagepay.com/Simulator/VSPDirectGateway.asp'; - $config['direct_test_url'] = 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp'; - $config['direct_live_url'] = 'https://live.sagepay.com/gateway/service/vspdirect-register.vsp'; - - $config['vps_protocol'] = 2.23; - - $config['tx_type'] = 'PAYMENT'; //Can be PAYMENT, DEFERRED or AUTHENTICATE - - $config['vendor'] = ''; //Sage pay vendor name - - $config['account_type'] = 'E'; //E for e-commerce - - $config['currency'] = 'USD'; //default USD - + //default settings + $config['service'] = 'DIRECT'; //FORM, SERVER & DIRECT - direct only available in this version + + $config['mode'] = 'Simulator'; //Simulator, Test & Live + + $config['direct_simulator_url'] = 'https://test.sagepay.com/Simulator/VSPDirectGateway.asp'; + $config['direct_test_url'] = 'https://test.sagepay.com/gateway/service/vspdirect-register.vsp'; + $config['direct_live_url'] = 'https://live.sagepay.com/gateway/service/vspdirect-register.vsp'; + + $config['vps_protocol'] = 2.23; + + $config['tx_type'] = 'PAYMENT'; //Can be PAYMENT, DEFERRED or AUTHENTICATE + + $config['vendor'] = ''; //Sage pay vendor name + + $config['account_type'] = 'E'; //E for e-commerce + + $config['currency'] = 'USD'; //default USD + $config['enabled'] = '0'; - + $this->CI->Settings_model->save_settings('sage_pay', $config); - - //create sql table(s) - $queries = $this->create_table($this->CI->db->dbprefix); - foreach($queries as $query){ - $this->CI->db->query($query); - } - + + //create sql table(s) + $queries = $this->create_table($this->CI->db->dbprefix); + foreach($queries as $query){ + $this->CI->db->query($query); + } + } - - /** - * table for storing transaction data - * - * @param string $prefix - * @return array - */ + + /** + * table for storing transaction data + * + * @param string $prefix + * @return array +*/ private function create_table($prefix){ - $query = array(); - - // currently disabled - //$query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; - - // currently set not to overwrite if install has already been run - $query[] = "CREATE TABLE IF NOT EXISTS `".$prefix."sage_pay` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) DEFAULT NULL, - `VPSProtocol` varchar(4) COLLATE utf8_general_ci DEFAULT NULL, - `Status` varchar(15) COLLATE utf8_general_ci DEFAULT NULL, - `StatusDetail` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, - `VendorTxCode` varchar(64) COLLATE utf8_general_ci DEFAULT NULL, - `VPSTxId` varchar(38) COLLATE utf8_general_ci DEFAULT NULL, - `SecurityKey` varchar(10) COLLATE utf8_general_ci DEFAULT NULL, - `TxAuthNo` int(11) DEFAULT NULL, - `AVSCV2` varchar(50) COLLATE utf8_general_ci DEFAULT NULL, - `AddressResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `PostCodeResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `CV2Result` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `3DSecureStatus` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, - `CAVV` varchar(32) COLLATE utf8_general_ci DEFAULT NULL, - `MD` varchar(35) COLLATE utf8_general_ci DEFAULT NULL, - `ACSURL` text COLLATE utf8_general_ci, - `PAReq` text COLLATE utf8_general_ci, - `PayPalRedirectURL` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, - `Created` datetime default NULL, - PRIMARY KEY (`id`) - ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;"; - - return $query; - } + $query = array(); + + // currently disabled + //$query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; + + // currently set not to overwrite if install has already been run + $query[] = "CREATE TABLE IF NOT EXISTS `".$prefix."sage_pay` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) DEFAULT NULL, + `VPSProtocol` varchar(4) COLLATE utf8_general_ci DEFAULT NULL, + `Status` varchar(15) COLLATE utf8_general_ci DEFAULT NULL, + `StatusDetail` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, + `VendorTxCode` varchar(64) COLLATE utf8_general_ci DEFAULT NULL, + `VPSTxId` varchar(38) COLLATE utf8_general_ci DEFAULT NULL, + `SecurityKey` varchar(10) COLLATE utf8_general_ci DEFAULT NULL, + `TxAuthNo` int(11) DEFAULT NULL, + `AVSCV2` varchar(50) COLLATE utf8_general_ci DEFAULT NULL, + `AddressResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `PostCodeResult` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `CV2Result` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `3DSecureStatus` varchar(20) COLLATE utf8_general_ci DEFAULT NULL, + `CAVV` varchar(32) COLLATE utf8_general_ci DEFAULT NULL, + `MD` varchar(35) COLLATE utf8_general_ci DEFAULT NULL, + `ACSURL` text COLLATE utf8_general_ci, + `PAReq` text COLLATE utf8_general_ci, + `PayPalRedirectURL` varchar(255) COLLATE utf8_general_ci DEFAULT NULL, + `Created` datetime default NULL, + PRIMARY KEY (`id`) + ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;"; + + return $query; + } /** - * remove payment module settings - * - */ - public function uninstall(){ + * remove payment module settings + * + */ + public function uninstall(){ $this->CI->Settings_model->delete_settings('sage_pay'); - $queries = $this->drop_table($this->CI->db->dbprefix); - foreach($queries as $query){ - $this->CI->db->query($query); - } + $queries = $this->drop_table($this->CI->db->dbprefix); + foreach($queries as $query){ + $this->CI->db->query($query); + } + } + /** + * drop any associated tables + * + * @param string $prefix + * @return array + */ + private function drop_table($prefix){ + $query = array(); + + $query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; + + return $query; } - /** - * drop any associated tables - * - * @param string $prefix - * @return array - */ - private function drop_table($prefix){ - $query = array(); - - $query[] = "DROP TABLE IF EXISTS `".$prefix."sage_pay`;"; - - return $query; - } - - - /** - * payment processor - * - */ + + + /** + * payment processor + * + */ public function process_payment(){ - - // Get previously entered customer info - $sp_data = $this->CI->session->userdata('sp_data'); - $customer = $this->CI->go_cart->customer(); - - // Set our sagepay fields - - $this->CI->sage_pay_lib->add_field('Amount', $this->CI->go_cart->total()); - - $this->CI->sage_pay_lib->add_field('CardHolder', $sp_data["CardHolder"]); - $this->CI->sage_pay_lib->add_field('CardNumber', $sp_data["CardNumber"]); - $this->CI->sage_pay_lib->add_field('StartDate', $sp_data["StartDate_mm"] . $sp_data["StartDate_yy"]); - $this->CI->sage_pay_lib->add_field('ExpiryDate', $sp_data["ExpiryDate_mm"] . $sp_data["ExpiryDate_yy"]); - $this->CI->sage_pay_lib->add_field('CV2', $sp_data["CV2"]); - $this->CI->sage_pay_lib->add_field('CardType', $sp_data["CardType"]); - - $this->CI->sage_pay_lib->add_field('BillingSurname', $customer['bill_address']["lastname"]); - $this->CI->sage_pay_lib->add_field('BillingFirstnames', $customer['bill_address']["firstname"]); - $this->CI->sage_pay_lib->add_field('BillingAddress1', $customer['bill_address']["address1"]); - $this->CI->sage_pay_lib->add_field('BillingAddress2',$customer['bill_address']["address2"]); - $this->CI->sage_pay_lib->add_field('BillingCity', $customer['bill_address']["city"]); - // State is only supported in US, for all other countries leave blank - if($customer['bill_address']["country_id"] == "223") - $this->CI->sage_pay_lib->add_field('BillingState', $customer['bill_address']["zone"]); - else - $this->CI->sage_pay_lib->add_field('BillingState', ""); - $this->CI->sage_pay_lib->add_field('BillingPostCode', $customer['bill_address']["zip"]); - $this->CI->sage_pay_lib->add_field('BillingCountry', $customer['bill_address']["country_code"]); - $this->CI->sage_pay_lib->add_field('BillingPhone', $customer['bill_address']["phone"]); - - $this->CI->sage_pay_lib->add_field('DeliverySurname', $customer['ship_address']["lastname"]); - $this->CI->sage_pay_lib->add_field('DeliveryFirstnames', $customer['ship_address']["firstname"]); - $this->CI->sage_pay_lib->add_field('DeliveryAddress1', $customer['ship_address']["address1"]); - $this->CI->sage_pay_lib->add_field('DeliveryAddress2',$customer['ship_address']["address2"]); - $this->CI->sage_pay_lib->add_field('DeliveryCity', $customer['ship_address']["city"]); - // State is only supported in US, for all other countries leave blank - if($customer['ship_address']["country_id"] == "223") - $this->CI->sage_pay_lib->add_field('DeliveryState', $customer['ship_address']["zone"]); - else - $this->CI->sage_pay_lib->add_field('DeliveryState', ""); - $this->CI->sage_pay_lib->add_field('DeliveryPostCode', $customer['ship_address']["zip"]); - $this->CI->sage_pay_lib->add_field('DeliveryCountry', $customer['ship_address']["country_code"]); - $this->CI->sage_pay_lib->add_field('DeliveryPhone', $customer['ship_address']["phone"]); - - - // Send info to sagepay and receive a response - $this->CI->sage_pay_lib->process_payment(); - $this->_sagepay_response = $this->CI->sage_pay_lib->get_all_responses(); - - // handle response status - switch($this->_sagepay_response['Status']){ - case 'OK': - case 'REGISTERED': - $this->CI->session->unset_userdata('sp_data'); - return false; // false == no error - break; - - case 'MALFORMED': - case 'INVALID': - case 'ERROR': - case 'NOTAUTHED': - case 'REJECTED': - case '3DAUTH': - log_message('debug', 'Sage-pay module - Protocol:'. $this->_sagepay_response['VPSProtocol'] .' - Status:' . $this->_sagepay_response['Status']); - log_message('debug', 'Sage-pay module - Status Detail:'. $this->_sagepay_response['StatusDetail']); - return lang('transaction_declined'); - break; - } + + // Get previously entered customer info + $sp_data = $this->CI->session->userdata('sp_data'); + $customer = $this->CI->go_cart->customer(); + + // Set our sagepay fields + + $this->CI->sage_pay_lib->add_field('Amount', $this->CI->go_cart->total()); + + $this->CI->sage_pay_lib->add_field('CardHolder', $sp_data["CardHolder"]); + $this->CI->sage_pay_lib->add_field('CardNumber', $sp_data["CardNumber"]); + $this->CI->sage_pay_lib->add_field('StartDate', $sp_data["StartDate_mm"] . $sp_data["StartDate_yy"]); + $this->CI->sage_pay_lib->add_field('ExpiryDate', $sp_data["ExpiryDate_mm"] . $sp_data["ExpiryDate_yy"]); + $this->CI->sage_pay_lib->add_field('CV2', $sp_data["CV2"]); + $this->CI->sage_pay_lib->add_field('CardType', $sp_data["CardType"]); + + $this->CI->sage_pay_lib->add_field('BillingSurname', $customer['bill_address']["lastname"]); + $this->CI->sage_pay_lib->add_field('BillingFirstnames', $customer['bill_address']["firstname"]); + $this->CI->sage_pay_lib->add_field('BillingAddress1', $customer['bill_address']["address1"]); + $this->CI->sage_pay_lib->add_field('BillingAddress2',$customer['bill_address']["address2"]); + $this->CI->sage_pay_lib->add_field('BillingCity', $customer['bill_address']["city"]); + // State is only supported in US, for all other countries leave blank + if($customer['bill_address']["country_id"] == "223") + { + $this->CI->sage_pay_lib->add_field('BillingState', $customer['bill_address']["zone"]); + } + else + { + $this->CI->sage_pay_lib->add_field('BillingState', ""); + } + + $this->CI->sage_pay_lib->add_field('BillingPostCode', $customer['bill_address']["zip"]); + $this->CI->sage_pay_lib->add_field('BillingCountry', $customer['bill_address']["country_code"]); + $this->CI->sage_pay_lib->add_field('BillingPhone', $customer['bill_address']["phone"]); + + $this->CI->sage_pay_lib->add_field('DeliverySurname', $customer['ship_address']["lastname"]); + $this->CI->sage_pay_lib->add_field('DeliveryFirstnames', $customer['ship_address']["firstname"]); + $this->CI->sage_pay_lib->add_field('DeliveryAddress1', $customer['ship_address']["address1"]); + $this->CI->sage_pay_lib->add_field('DeliveryAddress2',$customer['ship_address']["address2"]); + $this->CI->sage_pay_lib->add_field('DeliveryCity', $customer['ship_address']["city"]); + // State is only supported in US, for all other countries leave blank + if($customer['ship_address']["country_id"] == "223") + { + $this->CI->sage_pay_lib->add_field('DeliveryState', $customer['ship_address']["zone"]); + } + else + { + $this->CI->sage_pay_lib->add_field('DeliveryState', ""); + } + + $this->CI->sage_pay_lib->add_field('DeliveryPostCode', $customer['ship_address']["zip"]); + $this->CI->sage_pay_lib->add_field('DeliveryCountry', $customer['ship_address']["country_code"]); + $this->CI->sage_pay_lib->add_field('DeliveryPhone', $customer['ship_address']["phone"]); + + + // Send info to sagepay and receive a response + $this->CI->sage_pay_lib->process_payment(); + $this->_sagepay_response = $this->CI->sage_pay_lib->get_all_responses(); + + // handle response status + switch($this->_sagepay_response['Status']){ + case 'OK': + case 'REGISTERED': + $this->CI->session->unset_userdata('sp_data'); + return false; // false == no error + break; + + case 'MALFORMED': + case 'INVALID': + case 'ERROR': + case 'NOTAUTHED': + case 'REJECTED': + case '3DAUTH': + log_message('debug', 'Sage-pay module - Protocol:'. $this->_sagepay_response['VPSProtocol'] .' - Status:' . $this->_sagepay_response['Status']); + log_message('debug', 'Sage-pay module - Status Detail:'. $this->_sagepay_response['StatusDetail']); + return lang('transaction_declined'); + break; + } } - /** - * final method to run after the order has been saved. - * allows you to save order_id etc. back to the payment module - * - * @param array $data - */ - public function complete_payment($data){ - - // add order id for admin to process payments - $this->_sagepay_response['order_id'] = $data['order_id']; - - // record results in say_pay table for future processing - $this->CI->db->insert($this->CI->db->dbprefix . 'sage_pay', $this->_sagepay_response); - } - - /** - * Admin form settings - * - * @param array $post - * @return string - */ + /** + * final method to run after the order has been saved. + * allows you to save order_id etc. back to the payment module + * + * @param array $data + */ + public function complete_payment($data){ + + // add order id for admin to process payments + $this->_sagepay_response['order_id'] = $data['order_id']; + + // record results in say_pay table for future processing + $this->CI->db->insert($this->CI->db->dbprefix . 'sage_pay', $this->_sagepay_response); + } + + /** + * Admin form settings + * + * @param array $post + * @return string + */ public function form($post = false){ - - //load form helper - $this->CI->load->helper('form'); - + + //load form helper + $this->CI->load->helper('form'); + //this same function processes the form if(!$post) { $settings = $this->CI->Settings_model->get_settings('sage_pay'); - - //explode selected card types - if(isset($settings['card_types'])){ - $selected_cards = explode(',', $settings['card_types']); - $settings['card_types'] = array(); - //store values in keys - foreach($selected_cards as $selected_card){ - $settings['card_types'][$selected_card] = 1; - } - } - - - + + //explode selected card types + if(isset($settings['card_types'])){ + $selected_cards = explode(',', $settings['card_types']); + $settings['card_types'] = array(); + //store values in keys + foreach($selected_cards as $selected_card){ + $settings['card_types'][$selected_card] = 1; + } + } + + + } else { - $settings = $post; + $settings = $post; } - - return $this->CI->load->view('admin_form', array('settings'=>$settings), true); + + return $this->CI->load->view('sage_pay_form', array('settings'=>$settings), true); } - + /** - * Admin form validation - * - */ - public function check(){ + * Admin form validation + * + */ + public function check(){ $error = false; // TODO 4 -o swicks -c Category: fix check options - - if(empty($_POST['vendor'])) - $error = "
              ".lang('enter_vendor')."
              "; + + if(empty($_POST['vendor'])) + $error = "
              ".lang('enter_vendor')."
              "; if($error) { @@ -389,12 +400,12 @@ public function check(){ else { //we save the settings if it gets here - - //place selected card types in a string - $_POST['card_types'] = isset($_POST['card_types'])? implode(',', $_POST['card_types']) : ""; + + //place selected card types in a string + $_POST['card_types'] = isset($_POST['card_types'])? implode(',', $_POST['card_types']) : ""; $this->CI->Settings_model->save_settings('sage_pay', $_POST); - + return false; } } diff --git a/gocart/packages/payment/sage_pay/views/admin_form.php b/gocart/packages/payment/sage_pay/views/admin_form.php deleted file mode 100644 index 1941ab49..00000000 --- a/gocart/packages/payment/sage_pay/views/admin_form.php +++ /dev/null @@ -1,84 +0,0 @@ - - - lang('disabled'), 1 => lang('enabled')); - - //protocol (save hidden to keep in settings) - echo form_hidden('vps_protocol', $settings['vps_protocol']); - - //system - //$service_options = array('direct' => lang('direct'), 'form' => lang('form'), 'server' => lang('server')); - // currently only direct - form and server to follow... - $service_options = array('direct' => lang('direct')); - //mode - $mode_options = array('simulator' => lang('simulator'), 'test' => lang('test'), 'live' => lang('live')); - //type - $type_options = array('PAYMENT' => lang('payment'), 'DEFFERRED' => lang('deferred'), 'AUTHENTICATE' => lang('authenticate')); - //available card types - $available_card_types = explode(',', SAGE_PAY_CARD_TYPES); - for ($i=0; $i < count($available_card_types); $i+=2) - $acts[$available_card_types[$i]]=$available_card_types[$i+1]; - //currency - $available_currency_types = explode(',', SAGE_PAY_CURRENCY); - for ($i=0; $i < count($available_currency_types); $i+=2) - $currency_options[$available_currency_types[$i]]=$available_currency_types[$i+1]; - -?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              :
              :
              :
              :
              :
              - $value){ - echo ''; - } - ?> - -
              ' . $value . '' . form_checkbox('card_types[]', $key, isset($settings['card_types'][$key])) . '
              :
              :
              :
              diff --git a/gocart/packages/payment/sage_pay/views/sage_pay_form.php b/gocart/packages/payment/sage_pay/views/sage_pay_form.php new file mode 100644 index 00000000..94b683dc --- /dev/null +++ b/gocart/packages/payment/sage_pay/views/sage_pay_form.php @@ -0,0 +1,71 @@ + + + lang('disabled'), 1 => lang('enabled')); + + //protocol (save hidden to keep in settings) + echo form_hidden('vps_protocol', $settings['vps_protocol']); + + //system + //$service_options = array('direct' => lang('direct'), 'form' => lang('form'), 'server' => lang('server')); + // currently only direct - form and server to follow... + $service_options = array('direct' => lang('direct')); + //mode + $mode_options = array('simulator' => lang('simulator'), 'test' => lang('test'), 'live' => lang('live')); + //type + $type_options = array('PAYMENT' => lang('payment'), 'DEFFERRED' => lang('deferred'), 'AUTHENTICATE' => lang('authenticate')); + //available card types + $available_card_types = explode(',', SAGE_PAY_CARD_TYPES); + for ($i=0; $i < count($available_card_types); $i+=2) + $acts[$available_card_types[$i]]=$available_card_types[$i+1]; + //currency + $available_currency_types = explode(',', SAGE_PAY_CURRENCY); + for ($i=0; $i < count($available_currency_types); $i+=2) + $currency_options[$available_currency_types[$i]]=$available_currency_types[$i+1]; + +?> + + + + + + + + + + + + +
              + $value):?> + + +
              + + + + + + + + + \ No newline at end of file diff --git a/gocart/packages/shipping/fedex/libraries/fedex.php b/gocart/packages/shipping/fedex/libraries/fedex.php index ebb916c8..2a7ef97e 100644 --- a/gocart/packages/shipping/fedex/libraries/fedex.php +++ b/gocart/packages/shipping/fedex/libraries/fedex.php @@ -8,20 +8,20 @@ class fedex var $package_types; var $service_list; var $path_to_wsdl; - + function __construct() { //we're going to have this information in the back end for editing eventually //username password, origin zip code etc. $this->CI =& get_instance(); $this->CI->lang->load('fedex'); - + //$this->server = 'https://gatewaybeta.fedex.com/GatewayDC'; - + //The WSDL is not included with the sample code. //Please include and reference in $path_to_wsdl variable. $this->path_to_wsdl = APPPATH."packages/shipping/fedex/libraries/RateService_v8.wsdl"; - + // Packaging types $this->package_types['FEDEX_10KG_BOX'] = lang('FEDEX_10KG_BOX'); $this->package_types['FEDEX_25KG_BOX'] = lang('FEDEX_25KG_BOX'); @@ -30,8 +30,8 @@ function __construct() $this->package_types['FEDEX_PAK'] = lang('FEDEX_PAK'); $this->package_types['FEDEX_TUBE'] = lang('FEDEX_TUBE'); $this->package_types['YOUR_PACKAGING'] = lang('YOUR_PACKAGING'); - - + + // Available Services $this->service_list['EUROPE_FIRST_INTERNATIONAL_PRIORITY'] = lang('EUROPE_FIRST_INTERNATIONAL_PRIORITY'); $this->service_list['FEDEX_1_DAY_FREIGHT'] = lang('FEDEX_1_DAY_FREIGHT'); @@ -53,32 +53,32 @@ function __construct() $this->service_list['FEDEX_FREIGHT'] = lang('FEDEX_FREIGHT'); $this->service_list['FEDEX_NATIONAL_FREIGHT'] = lang('FEDEX_NATIONAL_FREIGHT'); $this->service_list['INTERNATIONAL_GROUND'] = lang('INTERNATIONAL_GROUND'); - + } - + function rates() { - + $this->CI->load->library('session'); - + // get customer info $customer = $this->CI->go_cart->customer(); - + $customer_address = $customer['ship_address']; - - + + // Weight of order $weight = $this->CI->go_cart->order_weight(); // retrieve settings $settings = $this->CI->Settings_model->get_settings('fedex'); - + //check if we're enabled if(!$settings['enabled'] || $settings['enabled'] < 1) { return array(); } - + $key = $settings['key']; $password = $settings['password']; $shipAccount = $settings['shipaccount']; @@ -91,72 +91,73 @@ function rates() $pkg_height = $settings['height']; $pkg_length = $settings['length']; $billAccount = $shipAccount; - - - + + + //====== Fedex code start - + require_once('fedex-common.php'); - + ini_set("soap.wsdl_cache_enabled", "0"); - + $client = new SoapClient($this->path_to_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information - + $request['WebAuthenticationDetail'] = array('UserCredential' => - array('Key' => $key, 'Password' => $password)); + array('Key' => $key, 'Password' => $password)); $request['ClientDetail'] = array('AccountNumber' => $shipAccount, 'MeterNumber' => $meter); $request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Available Services Request v8 using PHP ***'); $request['Version'] = array('ServiceId' => 'crs', 'Major' => '8', 'Intermediate' => '0', 'Minor' => '0'); $request['ReturnTransitAndCommit'] = true; $request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ... $request['RequestedShipment']['ShipTimestamp'] = date('c'); - + $request['RequestedShipment']['Shipper'] = array('Address' => array( - 'StreetLines' => array($this->CI->config->item('address1'), $this->CI->config->item('address2')), // Origin details - 'City' => $this->CI->config->item('city'), - 'StateOrProvinceCode' => $this->CI->config->item('state'), - 'PostalCode' => $this->CI->config->item('zip'), - 'CountryCode' => $this->CI->config->item('country'))); + 'StreetLines' => array($this->CI->config->item('address1'), $this->CI->config->item('address2')), // Origin details + 'City' => $this->CI->config->item('city'), + 'StateOrProvinceCode' => $this->CI->config->item('state'), + 'PostalCode' => $this->CI->config->item('zip'), + 'CountryCode' => $this->CI->config->item('country'))); $request['RequestedShipment']['Recipient'] = array('Address' => array ( - 'StreetLines' => array($customer_address['address1'],$customer_address['address2']), // Destination details - 'City' => $customer_address['city'], - 'StateOrProvinceCode' => $customer_address['zone'], - 'PostalCode' => $customer_address['zip'], - 'CountryCode' => $customer_address['country_code'])); + 'StreetLines' => array($customer_address['address1'],$customer_address['address2']), // Destination details + 'City' => $customer_address['city'], + 'StateOrProvinceCode' => $customer_address['state'], + 'PostalCode' => $customer_address['zip'], + 'CountryCode' => $customer_address['country_code'], + 'Residential'=> true)); $request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' => 'SENDER', - 'Payor' => array('AccountNumber' => $billAccount, - 'CountryCode' => $customer_address['country_code'])); + 'Payor' => array('AccountNumber' => $billAccount, + 'CountryCode' => $customer_address['country_code'])); $request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; $request['RequestedShipment']['RateRequestTypes'] = 'LIST'; $request['RequestedShipment']['PackageCount'] = '1'; $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; $request['RequestedShipment']['PackagingType'] = $package; $request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => $weight, - 'Units' => $this->config->item('weight_unit')), - 'Dimensions' => array('Length' => $pkg_length, - 'Width' => $pkg_width, - 'Height' => $pkg_height, - 'Units' => $this->config->item('dimension_unit')))); - + 'Units' => $this->config->item('weight_unit')), + 'Dimensions' => array('Length' => $pkg_length, + 'Width' => $pkg_width, + 'Height' => $pkg_height, + 'Units' => $this->config->item('dimension_unit')))); + // send request $response = $client ->getRates($request); - + if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR' ) { - + if(!isset($response->RateReplyDetails) || ! is_array($response->RateReplyDetails)) { return array(); // No Results } - + foreach ($response->RateReplyDetails as $rateReply) { if(in_array($rateReply->ServiceType, $service)) { - + $amount = $rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount; - + if(is_numeric($handling_amount)) // valid entry? { if($handling_method=='$') @@ -168,24 +169,24 @@ function rates() $amount += $amount * ($handling_amount/100); } } - + $rates[$this->service_list[$rateReply->ServiceType]] = number_format($amount,2,".",","); } } - + return $rates; } else { return array(); // fail } - - - //======== Fedex Code End - - + + + //======== Fedex Code End + + } - + function install() { $default_settings = array( @@ -201,20 +202,20 @@ function install() 'height' => 3, 'package'=>'YOUR_PACKAGING', 'service' => implode(',', array_keys($this->service_list)) - ); + ); //set a default blank setting for flatrate shipping $this->CI->Settings_model->save_settings('fedex', $default_settings); } - + function uninstall() { $this->CI->Settings_model->delete_settings('fedex'); } - + function form($post = false) { $this->CI->load->helper('form'); - + //this same function processes the form if(!$post) { @@ -248,79 +249,77 @@ function form($post = false) $enabled = $post['enabled']; } - - $form = ' - - - '; - - $form .= ''; - - $form .= '
              '.lang('fedex_key').': '.form_input('key', $key, 'class="gc_tf1"') .'
              '.lang('fedex_account').': '.form_input('shipaccount', $shipaccount, 'class="gc_tf1"') .'
              '.lang('fedex_meter').': '.form_input('meter', $meter, 'class="gc_tf1"') .'
              '.lang('password').': '.form_input('password', $password, 'class="gc_tf1"') .'
              '.lang('fedex_services').': '; - - - foreach($this->service_list as $id=>$opt) - { - $form .= "'; - - $opts = $this->package_types; - - $form .= form_dropdown('package', $opts, $package); - - $form .= '
              '.lang('dimensions').' ('. $this->CI->config->item('dimension_unit'). '):
              '.lang('height').': '; - - $form .= ' '. form_input('height', $height, 'class="gc_tf1"'); - - $form .= '
              '.lang('width').': '; - - $form .= ' '. form_input('width', $width, 'class="gc_tf1"'); - - $form .= '
              '.lang('length').': '; - - $form .= ' '. form_input('length', $length, 'class="gc_tf1"'); - - $form .= '
              '.lang('fee').': '; - - $form .= form_dropdown('handling_method', array('$'=>'$', '%'=>'%'), $handling_method); - - $form .= ' '. form_input('handling_amount', $handling_amount, 'class="gc_tf1"'); - - $form .= '
              '.lang('enabled').': '; - - $opts = array(lang('disabled'), lang('enabled')); - - $form .= form_dropdown('enabled', $opts, $enabled); - - $form .= '
              '; - - return $form; + + ob_start(); + ?> + + + + + + + + + + + + + + + + service_list as $id=>$opt):?> + + + + + package_types, $package, 'class="span3"');?> + +

              (CI->config->item('dimension_unit');?>)

              + + + + + + + + + + + '$', '%'=>'%'), $handling_method, 'class="span3"');?> + + + + + CI->Settings_model->save_settings('fedex', $save); - - return false; - } + else + { + + $save = $_POST; + $save['service'] = implode(',', $save['service']); + + //we save the settings if it gets here + $this->CI->Settings_model->save_settings('fedex', $save); + + return false; } } +} diff --git a/gocart/packages/shipping/flatrate/libraries/flatrate.php b/gocart/packages/shipping/flatrate/libraries/flatrate.php index d64498e6..5f0e1321 100644 --- a/gocart/packages/shipping/flatrate/libraries/flatrate.php +++ b/gocart/packages/shipping/flatrate/libraries/flatrate.php @@ -42,6 +42,8 @@ function uninstall() function form($post = false) { + $this->CI->load->helper('form'); + //this same function processes the form if(!$post) { @@ -52,23 +54,20 @@ function form($post = false) { $rate = $post['rate']; } + ob_start(); + ?> + + 'rate', 'value'=>$rate, 'class'=>'span3'));?> - $form = ' - -
              '.lang('rate').':
              '.lang('enabled').':
              '; + + + Note: Fields that are left blank or contain non-numeric will be removed.'; + +$lang['add_tbl'] = 'Add New Table'; + +$lang['btn_tbl_remove'] = 'Remove Table'; +$lang['btn_rename'] = 'Rename Table'; +$lang['btn_remove'] = 'Remove'; +$lang['btn_above'] = 'Add Above'; +$lang['btn_below'] = 'Add Below'; + +$lang['by_country'] = 'By Country'; + +$lang['rates'] = 'Rates'; +$lang['rate'] = 'Rate'; +$lang['from'] = 'From'; + +$lang['na'] = 'N/A'; + +$lang['tbl_err'] = 'You must leave at least one table.'; + +$lang['method'] = 'Method'; + + +// form check +$lang['empty_post'] = 'Nothing was sent.'; +$lang['post_err'] = 'You must enter at least 1 rate per table in order to proceed.'; \ No newline at end of file diff --git a/gocart/packages/shipping/table_rate/libraries/table_rate.php b/gocart/packages/shipping/table_rate/libraries/table_rate.php new file mode 100644 index 00000000..294cb128 --- /dev/null +++ b/gocart/packages/shipping/table_rate/libraries/table_rate.php @@ -0,0 +1,216 @@ +CI =& get_instance(); + $this->CI->lang->load('table_rate'); + } + + function rates() + { + //$method either equals weight or price + //this can be set either from some sort of admin panel, or directly here. + $this->CI->load->library('session'); + + // get customer info + $customer = $this->CI->go_cart->customer(); + + //if there is no address set then return blank + if(empty($customer['ship_address'])) + { + return array(); + } + + $settings = $this->CI->Settings_model->get_settings('table_rate'); + + if(!(bool)$settings['enabled']) + { + return array(); + } + + $rates = unserialize($settings['rates']); + + $order_weight = $this->get_order_weight(); + $order_price = $this->get_order_price(); + + $countries = $this->CI->Location_model->get_countries(); + + $return = array(); + foreach($rates as $rate) + { + if((bool)$rate['country'] && ($rate['country'] != $customer['ship_address']['country_id'])) + { + // if the customer is not in the country specified by this table, then skip it + continue; + } + + //sort rates highest "From" to lowest + krsort($rate['rates']); + + if ($rate['method'] == 'weight') + { + foreach ($rate['rates'] as $key => $val) + { + $return[$rate['name']] = $val; + if($key <= $order_weight) + { + break; + } + } + } + elseif ($rate['method'] == 'price') + { + foreach ($rate['rates'] as $key => $val) + { + + $return[$rate['name']] = $val; + if($key <= $order_price) + { + break; + } + } + } + } + + return $return; + } + + function install() + { + + $install = array(); + $install['enabled'] = false; + + $rate = array(); + $rate[0] = array(); + $rate[0]['name'] = 'Example'; + $rate[0]['method'] = 'price'; + $rate[0]['country'] = 0; + + // install some example data + $rate[0]['rates'] = array( + '80' => '85.00' + ,'70' => '65.00' + ,'60' => '55.00' + ,'50' => '55.00' + ,'40' => '45.00' + ,'30' => '35.00' + ,'20' => '25.00' + ,'10' => '15.00' + ,'0' => '5.00'); + + $install['rates'] = serialize($rate); + + $this->CI->Settings_model->save_settings('table_rate', $install); + } + + function uninstall() + { + $this->CI->Settings_model->delete_settings('table_rate'); + } + + function form($_POST = false) + { + $this->CI->load->helper('form'); + //this same function processes the form + if(!$_POST) + { + $settings = $this->CI->Settings_model->get_settings('table_rate'); + $settings['rates'] = unserialize($settings['rates']); + } + else + { + $settings['enabled'] = $_POST['enabled']; + $settings['rates'] = $_POST['rates']; + } + + $countries = $this->CI->Location_model->get_countries_menu(); + + $data = $settings; + $data['countries'] = array(0=>lang('all_countries')) + $countries; + + return $this->CI->load->view('table_rate_form', $data, true); + + } + + function check() + { + if(empty($_POST)) + { + return '
              '.lang('empty_post').'
              '; + } + + $save['enabled'] = $_POST['enabled']; + + $rates = array(); + foreach($_POST['rate'] as $rate) + { + if(isset($rate['rates'])) + { + $rate['rates'] = $this->organize_rates($rate['rates']); + } + else + { + $rate['rates'] = array(); + } + + $rates[] = $rate; + } + $save['rates'] = serialize($rates); + + //we save the settings if it gets here + $this->CI->Settings_model->save_settings('table_rate', $save); + + return false; + + } + + function organize_rates($rates) + { + $new_rates = array(); + foreach($rates as $r) + { + if(is_numeric($r['from']) && is_numeric($r['rate'])) + { + $new_rates[$r['from']] = $r['rate']; + } + ksort($new_rates); + } + return $new_rates; + } + + + function organize_post_rates($_POST) + { + $rates = array(); + + foreach($_POST['from'] as $table=>$list) + { + foreach($list as $key=>$value) + { + $rates[$table][$value] = $_POST['rate'][$table][$key]; + } + + // sort the list + krsort($rates[$table]); + } + + + return $rates; + } + + function get_order_weight() + { + return $this->CI->go_cart->order_weight(); + } + + function get_order_price() + { + return $this->CI->go_cart->subtotal(); + } +} diff --git a/gocart/packages/shipping/table_rate/views/table_rate_form.php b/gocart/packages/shipping/table_rate/views/table_rate_form.php new file mode 100644 index 00000000..0bdfc49b --- /dev/null +++ b/gocart/packages/shipping/table_rate/views/table_rate_form.php @@ -0,0 +1,169 @@ +
              +
              + +
              +
              +
              + +
              +
              +
              +
              +
              + + + + + + + + +
              + + + + + + + + + + + + + +
              + + + +
              +
              \ No newline at end of file diff --git a/gocart/packages/shipping/tablerate/views/admin_form.php b/gocart/packages/shipping/tablerate/views/admin_form.php index 038430c5..e5886bfb 100644 --- a/gocart/packages/shipping/tablerate/views/admin_form.php +++ b/gocart/packages/shipping/tablerate/views/admin_form.php @@ -1,4 +1,5 @@
              +

              This is a legacy shipping method and is no longer being updated. table_rate is now the standard table rate shipping module and if you are using this method you should migrate to the new one.

              +
              go_cart->total()==0) { ?> style="display:none" > + + + $info):?> + + + + $info):?> +
              + +
              +

              + +
              +
              +
              + + + + +
              + + +
              + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/shipping_form.php b/gocart/themes/bootstrap/views/checkout/shipping_form.php new file mode 100644 index 00000000..8e768d79 --- /dev/null +++ b/gocart/themes/bootstrap/views/checkout/shipping_form.php @@ -0,0 +1,40 @@ +
              +
              +
              +
              +

              + 0):?> + + go_cart->requires_shipping()):?> + + $val):?> + + + + + + +
              + + + + +

              + +
              + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/summary.php b/gocart/themes/bootstrap/views/checkout/summary.php new file mode 100644 index 00000000..926cd344 --- /dev/null +++ b/gocart/themes/bootstrap/views/checkout/summary.php @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + go_cart->group_discount() > 0) : ?> + + + + + + + + + + + + go_cart->coupon_discount() > 0) {?> + + + + + go_cart->order_tax() != 0) { // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from)?> + + + + + go_cart->get_custom_charges(); + if(!empty($charges)) + { + foreach($charges as $name=>$price) : ?> + + + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + go_cart->order_tax() > 0) : ?> + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + + + go_cart->gift_card_discount() > 0) : ?> + + + + + + + + + + + + + + + go_cart->contents() as $cartkey=>$product):?> + + + + + + + + + + + +
              go_cart->group_discount()); ?>
              go_cart->subtotal()); ?>
              -go_cart->coupon_discount());?>
              go_cart->discounted_subtotal());?>
              go_cart->shipping_cost()); ?>
              go_cart->order_tax());?>
              go_cart->shipping_cost()); ?>
              -go_cart->gift_card_discount()); ?>
              go_cart->total()); ?>
              + $value) + { + if(is_array($value)) + { + echo '
              '.$name.':
              '; + foreach($value as $item) + echo '- '.$item.'
              '; + echo '
              '; + } + else + { + echo '
              '.$name.': '.$value.'
              '; + } + } + } + ?> +
              + +
              \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/footer.php b/gocart/themes/bootstrap/views/footer.php new file mode 100644 index 00000000..15ed44a7 --- /dev/null +++ b/gocart/themes/bootstrap/views/footer.php @@ -0,0 +1,11 @@ +
              +

              + Clear Sky Designs +

              +

              © Clear Sky Designs • All Rights Reserved

              +
              +
              + + + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/forgot_password.php b/gocart/themes/bootstrap/views/forgot_password.php new file mode 100644 index 00000000..51336485 --- /dev/null +++ b/gocart/themes/bootstrap/views/forgot_password.php @@ -0,0 +1,32 @@ + + +
              +
              + + +
              + +
              + +
              + +
              +
              +
              + +
              + + +
              +
              +
              + +
              + +
              +
              +
              + + diff --git a/gocart/themes/bootstrap/views/giftcards.php b/gocart/themes/bootstrap/views/giftcards.php new file mode 100644 index 00000000..973b3d06 --- /dev/null +++ b/gocart/themes/bootstrap/views/giftcards.php @@ -0,0 +1,111 @@ + + + +
              +
              +
              + Giftcard +
              +
              +
              +
              +
              +

              +
              +
              + + +
              +
              +
              +
              + +
              +
              + + +
              +
              + + + +
              +
              +
              +
              + +
              +
              + +
              +
              + +
              +
              + + + + + + + + + + + + 'message', + 'rows' => '5', + 'cols' => '30' + ); + + echo form_textarea($data,set_value('message')); ?> +
              +
              +
              +
              + +
              +
              +
              +
              + + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/header.php b/gocart/themes/bootstrap/views/header.php new file mode 100644 index 00000000..d961b728 --- /dev/null +++ b/gocart/themes/bootstrap/views/header.php @@ -0,0 +1,165 @@ + + + + +<?php echo (isset($seo_title))?$seo_title:$this->config->item('company_name'); ?> + + + + + + + + + + + + + + + + + + + + + + + + + +
              + +
              +
              + +
              +
              + + + session->flashdata('message')):?> +
              + × + session->flashdata('message');?> +
              + + + session->flashdata('error')):?> +
              + × + session->flashdata('error');?> +
              + + + +
              + × + +
              + + + + + + +
              +
              + +
              +
              + + + + +
              + +
              + image).'" />'; + if($box->link != '') + { + $target = false; + if($box->new_window) + { + $target = 'target="_blank"'; + } + echo ''.$box_image.''; + } + else + { + echo $box_image; + } + ?> +
              + +
              + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/index.html b/gocart/themes/bootstrap/views/index.html new file mode 100644 index 00000000..c942a79c --- /dev/null +++ b/gocart/themes/bootstrap/views/index.html @@ -0,0 +1,10 @@ + + + 403 Forbidden + + + +

              Directory access is forbidden.

              + + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/login.php b/gocart/themes/bootstrap/views/login.php new file mode 100644 index 00000000..3d694135 --- /dev/null +++ b/gocart/themes/bootstrap/views/login.php @@ -0,0 +1,52 @@ + + +
              +
              + + +
              + +
              + +
              + +
              +
              + +
              + +
              + +
              +
              + +
              + +
              + +
              +
              +
              + +
              + +
              +
              +
              + + + + + + +
              + | +
              +
              +
              + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/my_account.php b/gocart/themes/bootstrap/views/my_account.php new file mode 100644 index 00000000..380da60c --- /dev/null +++ b/gocart/themes/bootstrap/views/my_account.php @@ -0,0 +1,228 @@ + + + +
              + × + +
              + + + + +'company', 'class'=>'span4', 'name'=>'company', 'value'=> set_value('company', $customer['company'])); +$first = array('id'=>'firstname', 'class'=>'span2', 'name'=>'firstname', 'value'=> set_value('firstname', $customer['firstname'])); +$last = array('id'=>'lastname', 'class'=>'span2', 'name'=>'lastname', 'value'=> set_value('lastname', $customer['lastname'])); +$email = array('id'=>'email', 'class'=>'span2', 'name'=>'email', 'value'=> set_value('email', $customer['email'])); +$phone = array('id'=>'phone', 'class'=>'span2', 'name'=>'phone', 'value'=> set_value('phone', $customer['phone'])); + +$password = array('id'=>'password', 'class'=>'span2', 'name'=>'password', 'value'=>''); +$confirm = array('id'=>'confirm', 'class'=>'span2', 'name'=>'confirm', 'value'=>''); +?> +
              + +
              + +
              +
              +
              +

              +
              +
              + +
              +
              +
              +
              + 0):?> + + + + + + + +
              + + +
              +
              +
              + + +
              +
              +
              +
              +
              +
              + /> +       /> +
              +
              +
              +
              + +
              +
              +
              + +
              +
              + + + + + + + + + + + + + + + + + + + + + +
              + ordered_on); + + $d = explode(' ', $d); + echo $d[0].' '.$d[1].', '.$d[3]; + + ?> + order_number; ?>status;?>
              + + + +
              +
              + +
              +
              + + + + $val) : ?> +

              + + + + + + + + + + + + + + + + + + max_downloads==0) + { + echo ''; + } else if($file->max_downloads <= $file->downloads) { + $max_exc = true; + echo ''; + } else { + echo ''; + } + ?> + + + + + + +
              filename; ?>title; ?>size; ?>'.lang('no_max').''.lang('max_exceeded').''; + echo $file->max_downloads - $file->downloads; + echo ' + +
              + + +
              + +
              + + + + + diff --git a/gocart/themes/bootstrap/views/order_email.php b/gocart/themes/bootstrap/views/order_email.php new file mode 100644 index 00000000..5fbfc130 --- /dev/null +++ b/gocart/themes/bootstrap/views/order_email.php @@ -0,0 +1,170 @@ + +

              :

              + +{download_section} + +
              +'.$customer['company'].'
              '; +} +?> + | + | + +

              + + + + + + +
              +
              + '; + echo $bill['firstname'].' '.$bill['lastname'].' <'.$bill['email'].'>
              '; + echo $bill['phone'].'
              '; + echo $bill['address1'].'
              '; + if(!empty($bill['address2'])) echo $bill['address2'].'
              '; + echo $bill['city'].', '.$bill['zone'].' '.$bill['zip']; + ?>
              +
              +
              + '; + echo $ship['firstname'].' '.$ship['lastname'].' <'.$ship['email'].'>
              '; + echo $ship['phone'].'
              '; + echo $ship['address1'].'
              '; + if(!empty($ship['address2'])) echo $ship['address2'].'
              '; + echo $ship['city'].', '.$ship['zone'].' '.$ship['zip']; + ?>
              +
              +
              + +
              +
              +
              + + + + + + + + + + + + + + + + + + + go_cart->coupon_discount() > 0) :?> + + + + + go_cart->order_tax() != 0) :// Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> + + + + + + + go_cart->order_tax() != 0) : ?> + + + + + + + + go_cart->gift_card_discount() != 0) : ?> + + + + + + + + + + + + + go_cart->contents() as $cartkey=>$product):?> + > + + + '; + if(is_array($value)) + { + echo ''; + } + else + { + echo ''; + } + echo ''; + } + echo '
                
              + go_cart->subtotal()); ?> +
              :
              go_cart->coupon_discount()); ?>
              go_cart->discounted_subtotal(), 2, '.', ','); ?>
              go_cart->order_tax()); ?>
              go_cart->gift_card_discount()); ?>
              +
              + +
              +
              + go_cart->total()); ?> +
                +
              + Sku: +
              + + '; + foreach ($product['options'] as $name=>$value) + { + echo '
              '.$name.':'; + foreach($value as $item) + { + echo '
              '.$item.'
              '; + } + echo '
              '.$name.': '.$value.'
              '; + } + ?> + +
              +  x  +  
              +
\ No newline at end of file diff --git a/gocart/themes/bootstrap/views/order_placed.php b/gocart/themes/bootstrap/views/order_placed.php new file mode 100644 index 00000000..808aa6e2 --- /dev/null +++ b/gocart/themes/bootstrap/views/order_placed.php @@ -0,0 +1,178 @@ + + + + + + +
+
+

+ ':'';?> +
+
+ +
+ +
+

+ ':'';?> +
+
+ ':'';?> +
+ +
+ +
+ +
+

+ ':'';?> +
+
+ ':'';?> +
+ +
+ +
+ +
+ +
+
+

+
+
+
+ +
+

+ +
+ +
+

+ +
+ +
+ + + + + + + + + + + + + + + go_cart->group_discount() > 0) : ?> + + + + + + + + + + + + go_cart->coupon_discount() > 0) : ?> + + + + + + go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> + + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + + + go_cart->order_tax() != 0) : ?> + + + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + + + go_cart->gift_card_discount() != 0) : ?> + + + + + + + + + + + + + go_cart->contents() as $cartkey=>$product):?> + + + + + + + + + + + +
go_cart->group_discount()); ?>
go_cart->subtotal()); ?>
go_cart->coupon_discount()); ?>
go_cart->discounted_subtotal()); ?>
go_cart->shipping_cost()); ?>
go_cart->order_tax()); ?>
go_cart->shipping_cost()); ?>
go_cart->gift_card_discount()); ?>
go_cart->total()); ?>
$value) + { + if(is_array($value)) + { + echo '
'.$name.':
'; + foreach($value as $item) + echo '- '.$item.'
'; + echo '
'; + } + else + { + echo '
'.$name.': '.$value.'
'; + } + } + } + ?>
+ +content); ?> + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/payment.php b/gocart/themes/bootstrap/views/payment.php new file mode 100644 index 00000000..8f21b5ca --- /dev/null +++ b/gocart/themes/bootstrap/views/payment.php @@ -0,0 +1,60 @@ + + +
+ + +
+ + + + +
+

+ + + $info):?> + +

value="" onchange="set_payment(this.value)">

+ +
+
+ $info):?> + + +
> +

+ + + +
+ + + + + + +
+
+ +
+
+ '; + $product->images = array_values($product->images); + + if(!empty($product->images[0])) + { + $primary = $product->images[0]; + foreach($product->images as $photo) + { + if(isset($photo->primary)) + { + $primary = $photo; + } + } + + $photo = ''.$product->seo_title.''; + } + echo $photo + ?> +
+
+ caption)):?> +
+
+ caption;?> +
+
+ + images) > 1):?> +
+
+ images as $image):?> + + +
+
+ + + related_products)):?> + + +
+
+ +
+
+ +
+
+ +
+
+ excerpt;?> +
+
+ +
+
+ sku)):?>
: sku; ?>
  +
+ track_stock && $product->quantity < 1):?> +
+
Out of Stock
+
+ +
+ +
+
+
+ + + +
+ 0): ?> + required) + { + $required = '

Required

'; + } + ?> +
+ + type == 'checklist') + { + $value = array(); + if($posted_options && isset($posted_options[$option->id])) + { + $value = $posted_options[$option->id]; + } + } + else + { + $value = $option->values[0]->value; + if($posted_options && isset($posted_options[$option->id])) + { + $value = $posted_options[$option->id]; + } + } + + if($option->type == 'textfield'):?> +
+ + +
+ type == 'textarea'):?> +
+ + +
+ type == 'droplist'):?> +
+ + +
+ type == 'radiolist'):?> +
+ values as $values): + + $checked = ''; + if($value == $values->id) + { + $checked = ' checked="checked"'; + }?> + + + +
+ type == 'checklist'): + foreach ($option->values as $values): + + $checked = ''; + if(in_array($values->id, $value)) + { + $checked = ' checked="checked"'; + }?> + + + + +
+ + + +
+ +
+ config->item('allow_os_purchase') || !(bool)$product->track_stock || $product->quantity > 0) : ?> + fixed_quantity) : ?> +        + + + +
+
+ +
+ +
+ +
+
+ +
+
+ description; ?> +
+
+ +
+
+ + + + +
+ + + + + +
+
    +
  • + related)):?>
  • +
+ + + related)):?> + + +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/register.php b/gocart/themes/bootstrap/views/register.php new file mode 100644 index 00000000..f3b8893e --- /dev/null +++ b/gocart/themes/bootstrap/views/register.php @@ -0,0 +1,80 @@ +#gc_page_title {text-align:center;}'; +include('header.php'); ?> +'bill_company', 'class'=>'span6', 'name'=>'company', 'value'=> set_value('company')); +$first = array('id'=>'bill_firstname', 'class'=>'span3', 'name'=>'firstname', 'value'=> set_value('firstname')); +$last = array('id'=>'bill_lastname', 'class'=>'span3', 'name'=>'lastname', 'value'=> set_value('lastname')); +$email = array('id'=>'bill_email', 'class'=>'span3', 'name'=>'email', 'value'=>set_value('email')); +$phone = array('id'=>'bill_phone', 'class'=>'span3', 'name'=>'phone', 'value'=> set_value('phone')); +?> +
+
+ + + + + +
+
+
+ + +
+
+
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+ + +
+ +
+
+
+ + +go_cart->total_items()==0):?> +
+ × + +
+ + + + 'update_cart_form'));?> + + + + + + + + + + + + + + + + go_cart->group_discount() > 0) : ?> + + + + + + + + + + + + go_cart->coupon_discount() > 0) : ?> + + + + + + go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> + + + + + + go_cart->get_custom_charges(); + if(!empty($charges)): + foreach($charges as $name=>$price) : ?> + + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + + go_cart->order_tax() != 0) : ?> + + + + + + + config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + + + + + + + go_cart->gift_card_discount() != 0) : ?> + + + + + + + + + + + + + + go_cart->contents() as $cartkey=>$product):?> + + + + + + + + + + + +
go_cart->group_discount()); ?>
go_cart->subtotal()); ?>
go_cart->coupon_discount()); ?>
go_cart->discounted_subtotal()); ?>
go_cart->shipping_cost()); ?>
go_cart->order_tax()); ?>
go_cart->shipping_cost()); ?>
go_cart->gift_card_discount()); ?>
go_cart->total()); ?>
$value) + { + if(is_array($value)) + { + echo '
'.$name.':
'; + foreach($value as $item) + echo '- '.$item.'
'; + echo '
'; + } + else + { + echo '
'.$name.':'.$value.'
'; + } + } + } + ?>
+ +
+
+
+ +
+
+
+ + + + + +
+ + +
+
+ + + + + + + + + +
+ +
+ + + Customer_model->is_logged_in(false,false)): ?> + + + + + + Customer_model->is_logged_in(false,false) || !$this->config->item('require_login')): ?> + + + +
+
+ + + + + \ No newline at end of file diff --git a/gocart/themes/default/views/checkout/checkout.php b/gocart/themes/default/views/checkout/checkout.php index ac9d1df7..21cce850 100644 --- a/gocart/themes/default/views/checkout/checkout.php +++ b/gocart/themes/default/views/checkout/checkout.php @@ -254,13 +254,13 @@ function update_summary()
- +
config->item('theme').'/views/footer.php'); ?> \ No newline at end of file diff --git a/gocart/themes/default/views/checkout/summary.php b/gocart/themes/default/views/checkout/summary.php index 89e97b05..f7270b81 100644 --- a/gocart/themes/default/views/checkout/summary.php +++ b/gocart/themes/default/views/checkout/summary.php @@ -80,7 +80,8 @@ Order Taxes **************************************************************/ // Show shipping cost if added before taxes - if($this->config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + echo $this->go_cart->shipping_cost(); + if($this->config->item('tax_shipping') && $this->go_cart->shipping_cost() !== false) : ?> go_cart->shipping_cost()); ?> @@ -93,7 +94,7 @@ config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> + if(!$this->config->item('tax_shipping') && $this->go_cart->shipping_cost() !== false) : ?> go_cart->shipping_cost()); ?> diff --git a/gocart/themes/default/views/header.php b/gocart/themes/default/views/header.php index e18956f5..6641cf0e 100644 --- a/gocart/themes/default/views/header.php +++ b/gocart/themes/default/views/header.php @@ -2,10 +2,10 @@ -<?php echo (!empty($seo_title))?$seo_title:$this->config->item('company_name'); ?> +<?php echo (isset($seo_title))?$seo_title:$this->config->item('company_name'); ?> - + diff --git a/gocart/views/admin/admin_form.php b/gocart/views/admin/admin_form.php index 284725fc..2205d3b2 100644 --- a/gocart/views/admin/admin_form.php +++ b/gocart/views/admin/admin_form.php @@ -1,42 +1,24 @@ config->item('admin_folder').'/admin/form/'.$id); ?> - -
- -
- -
- -
    -
  • -
-
-
'firstname', 'name'=>'firstname', 'value'=>set_value('firstname', $firstname), 'class'=>'gc_tf1'); + $data = array('name'=>'firstname', 'value'=>set_value('firstname', $firstname)); echo form_input($data); ?> -
-
'lastname', 'name'=>'lastname', 'value'=>set_value('lastname', $lastname), 'class'=>'gc_tf1'); + $data = array('name'=>'lastname', 'value'=>set_value('lastname', $lastname)); echo form_input($data); ?> -
-
'email', 'name'=>'email', 'value'=>set_value('email', $email), 'class'=>'gc_tf1'); + $data = array('name'=>'email', 'value'=>set_value('email', $email)); echo form_input($data); ?> -
-
'Admin', @@ -44,27 +26,30 @@ ); echo form_dropdown('access', $options, set_value('phone', $access)); ?> -
-
'password', 'name'=>'password', 'class'=>'gc_tf1'); + $data = array('name'=>'password'); echo form_password($data); ?> -
-
'confirm', 'name'=>'confirm', 'class'=>'gc_tf1'); + $data = array('name'=>'confirm'); echo form_password($data); ?> + +
+
-
-
+ -
- +
+
- +
- + - + @@ -27,14 +27,16 @@ function areyousure() - diff --git a/gocart/views/admin/banner_form.php b/gocart/views/admin/banner_form.php index 6a56668c..ddeee9b4 100644 --- a/gocart/views/admin/banner_form.php +++ b/gocart/views/admin/banner_form.php @@ -1,66 +1,51 @@ 'title', 'value' => set_value('title', $title)); -$enable_on_alt = array('id'=>'enable_on_alt', 'value' => set_value('enable_on_alt', reverse_format($enable_on))); -$disable_on_alt = array('id'=>'disable_on_alt', 'value' => set_value('disable_on_alt', reverse_format($disable_on))); +$enable_on = array('name'=>'enable_on', 'id'=>'enable_on', 'value'=>set_value('enable_on', set_value('enable_on', $enable_on))); +$disable_on = array('name'=>'disable_on', 'id'=>'disable_on', 'value'=>set_value('disable_on', set_value('disable_on', $disable_on))); $f_image = array('name'=>'image', 'id'=>'image'); $link = array('name'=>'link', 'value' => set_value('link', $link)); -$new_window = array('name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window));?> +$new_window = array('name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window)); +?> config->item('admin_folder').'/banners/form/'.$id); ?> + + -
- -
- -
-
    -
  • -
-
-
- - -
+ + -
- - -
+ + -
- - - -
+ + -
- - - -
+ -
- -
+ + -
- - + +
current
+ - -
current
- -
- +
+
-
\ No newline at end of file diff --git a/gocart/views/admin/banners.php b/gocart/views/admin/banners.php index cae9166f..21b16118 100644 --- a/gocart/views/admin/banners.php +++ b/gocart/views/admin/banners.php @@ -17,6 +17,7 @@ function create_sortable() scroll: true, helper: fixHelper, axis: 'y', + handle:'.handle', update: function(){ save_sortable(); } @@ -43,18 +44,19 @@ function areyousure() -
- -
+ -
lastname; ?> email; ?> access; ?> - session->userdata('admin'); - $margin = 30; - if ($current_admin['id'] != $admin->id): ?> - - - + +
+ + session->userdata('admin'); + $margin = 30; + if ($current_admin['id'] != $admin->id): ?> + + +
+ + +
- + + - + ':''?> @@ -99,12 +101,15 @@ function areyousure() } ?> + - diff --git a/gocart/views/admin/box_form.php b/gocart/views/admin/box_form.php index f6b42814..ab6c72fd 100644 --- a/gocart/views/admin/box_form.php +++ b/gocart/views/admin/box_form.php @@ -2,67 +2,50 @@ 'gc_tf1', 'name'=>'title', 'id'=>'title', 'value' => set_value('title', $title)); -$enable_on_alt = array('class'=>'gc_tf1', 'id'=>'enable_on_alt', 'value' => set_value('enable_on', reverse_format($enable_on))); -$disable_on_alt = array('class'=>'gc_tf1', 'id'=>'disable_on_alt', 'value' => set_value('disable_on', reverse_format($disable_on))); -$f_image = array('style'=>'pboxding:5px','name'=>'image', 'id'=>'image'); -$link = array('class'=>'gc_tf1', 'name'=>'link', 'id'=>'link', 'value' => set_value('link', $link)); -$new_window = array('id'=>'new_window', 'name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window)); +$title = array('name'=>'title', 'id'=>'title', 'value' => set_value('title', $title)); +$enable_on = array('name'=>'enable_on', 'id'=>'enable_on', 'value'=>set_value('enable_on', set_value('enable_on', $enable_on))); +$disable_on = array('name'=>'disable_on', 'id'=>'disable_on', 'value'=>set_value('disable_on', set_value('disable_on', $disable_on))); +$f_image = array('name'=>'image', 'id'=>'image'); +$link = array('name'=>'link', 'value' => set_value('link', $link)); +$new_window = array('name'=>'new_window', 'value'=>1, 'checked'=>set_checkbox('new_window', 1, $new_window)); ?> config->item('admin_folder').'/boxes/form/'.$id); ?> - -
- -
- -
-
    -
  • -
-
-
- - -
- -
- - -
- -
- - - -
- -
- - - -
- -
- -
- -
- - - - -
current
- -
- + + + + + + + + + + + + + + + + + + +
current
+ + +
+
-
\ No newline at end of file diff --git a/gocart/views/admin/boxes.php b/gocart/views/admin/boxes.php index bdd4aaab..8afa5a03 100644 --- a/gocart/views/admin/boxes.php +++ b/gocart/views/admin/boxes.php @@ -17,6 +17,7 @@ function create_sortable() scroll: true, helper: fixHelper, axis: 'y', + handle:'.handle', update: function(){ save_sortable(); } @@ -43,17 +44,18 @@ function areyousure() -
- -
+ -
'.lang('no_banners').'
title;?> - - + +
+ + +
+ + +
- + + - + ':''?> @@ -98,12 +100,15 @@ function areyousure() } ?> + - diff --git a/gocart/views/admin/canned_message_form.php b/gocart/views/admin/canned_message_form.php index 54f9fa1e..6ad5bf9a 100644 --- a/gocart/views/admin/canned_message_form.php +++ b/gocart/views/admin/canned_message_form.php @@ -2,37 +2,35 @@ config->item('admin_folder').'/settings/canned_message_form/'.$id); ?> -
- -
+ + 'name', 'class'=>'input-xlarge', 'value'=>set_value('name', $name)); -
-
    -
  • -
-
-
- - style=" background-color:#f2f2f2;" readonly="readonly" /> -
- -
- - -
-
- 'description', 'name'=>'content', 'class'=>'tinyMCE', 'value'=>set_value('content', $content)); - echo form_textarea($data); - ?> -
+ if(!$deletable) { + $name_array['class'] = "input-xlarge disabled"; + $name_array['readonly'] = "readonly"; + } + echo form_input($name_array);?> + + + + 'subject', 'class'=>'input-xlarge', 'value'=>set_value('subject', $subject)));?> + + + 'description', 'name'=>'content', 'class'=>'tinyMCE', 'value'=>set_value('content', $content)); + echo form_textarea($data); + ?> + +
+
-
+ -
- +
+
-
'.lang('no_boxes').'
title;?> - - + +
+ + +
+
- + - + @@ -25,15 +25,18 @@ function areyousure() function list_categories($cats, $sub='') { foreach ($cats as $cat):?> - - + + - config->item('admin_folder').'/categories/form/'.$id); ?> -
- -
-
-
    -
  • -
  • -
  • +
    + + - -
    -
    - 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    - -
    - 'description', 'name'=>'description', 'class'=>'tinyMCE', 'value'=>set_value('description', $description)); - echo form_textarea($data); - ?> -
    -
    - -
    -
    -
    - -
    - - 'slug', 'name'=>'slug', 'value'=>set_value('slug', $slug), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    -
    - - 'sequence', 'name'=>'sequence', 'value'=>set_value('sequence', $sequence), 'class'=>'gc_tf1'); - echo form_input($data); - ?> + +
    +
    + +
    + + 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span12'); + echo form_input($data); + ?> + + + 'description', 'name'=>'description', 'class'=>'span12 tinyMCE', 'value'=>set_value('description', $description)); + echo form_textarea($data); + ?> + + +
    - -
    - - 'Top Level Category'); - foreach($categories as $parent) - { - if($parent->id != $id) + +
    + +
    + + 'slug', 'value'=>set_value('slug', $slug)); + echo form_input($data); + ?> + + + 'sequence', 'value'=>set_value('sequence', $sequence)); + echo form_input($data); + ?> + + + 'Top Level Category'); + foreach($categories as $parent) { - $data[$parent->id] = $parent->name; + if($parent->id != $id) + { + $data[$parent->id] = $parent->name; + } } - } - echo form_dropdown('parent_id', $data, $parent_id); - ?> -
    -
    - - 'excerpt', 'name'=>'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> -
    -
    - - config->item('size_limit')/1024; ?>kb - 'image', 'id'=>'image'));?>
    - -
    current
    - - -
    -
    - -
    -
    - - 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); - echo form_input($data); - ?> + echo form_dropdown('parent_id', $data, $parent_id); + ?> + + + 'excerpt', 'name'=>'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'span12', 'rows'=>3); + echo form_textarea($data); + ?> + + +
    + 'image', 'class'=>'btn'));?> config->item('size_limit')/1024; ?>kb +
    + + + +
    current
    + + + + +
    -
    - - 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> +
    +
    + + 'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'span12'); + echo form_input($data); + ?> + + + 3, 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'span12'); + echo form_textarea($data); + ?> +

    +
    + +
    + +
    +
    + + -
    - - - +
    + +
    -
    -
id; ?>
id; ?> name; ?> - + +
- + - + + + +
+ + + + +
- + + - + + - diff --git a/gocart/views/admin/country_form.php b/gocart/views/admin/country_form.php index d2f138ae..ddd2593c 100644 --- a/gocart/views/admin/country_form.php +++ b/gocart/views/admin/country_form.php @@ -2,70 +2,55 @@ config->item('admin_folder').'/locations/country_form/'.$id); ?> -
- -
- -
-
    -
  • -
+
-
-
- - 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
+ + 'name', 'value'=>set_value('name', $name), 'class'=>'span12'); + echo form_input($data); + ?> -
- + + 'iso_code_2', 'maxlength'=>'2', 'value'=>set_value('iso_code_2', $iso_code_2), 'class'=>'span1'); + echo form_input($data); + ?> + 'iso_code_3', 'maxlength'=>'3', 'value'=>set_value('iso_code_3', $iso_code_3), 'class'=>'span1'); + echo form_input($data); + ?> + + + + 'address_format', 'value'=>set_value('address_format', $address_format), 'rows'=>6, 'class'=>'span12'); + echo form_textarea($data); + ?> + + 'postcode_required', 'value'=>1, 'checked'=>set_checkbox('postcode_required', 1, (bool)$postcode_required));?> + + + +
'iso_code_2', 'maxlength'=>'2', 'value'=>set_value('iso_code_2', $iso_code_2), 'class'=>'gc_tf1'); + $data = array('name'=>'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax)); echo form_input($data); ?> + %
-
- - 'iso_code_3', 'maxlength'=>'3', 'value'=>set_value('iso_code_3', $iso_code_3), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
-
- 'address_format', 'value'=>set_value('address_format', $address_format), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> -
-
- 'postcode_required', 'value'=>1, 'checked'=>set_checkbox('postcode_required', 1, (bool)$postcode_required));?> - -
-
- - 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- 'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status));?> - -
-
+ + 'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status));?> + +
+
- - +config->item('admin_folder').'/locations/zone_area_form/'.$zone_id.'/'.$id); ?> -
- -
- -
-
    -
  • -
+ + 'code', 'value'=>set_value('code', $code), 'class'=>'span12'); + echo form_input($data); + ?> -
-
- - 'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- - 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
+ +
+ 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax)); + echo form_input($data); + ?> + %
-
+
+ +
+ - + -
- - - +
+ + +
-
-
name; ?> iso_code_2;?> iso_code_3;?> tax+0;?>% status)?'enabled':'disabled';?> - - - + +
+ + + +
+ +
- + - + - - + + - diff --git a/gocart/views/admin/country_zone_form.php b/gocart/views/admin/country_zone_form.php index eb23c91d..2b60fec0 100644 --- a/gocart/views/admin/country_zone_form.php +++ b/gocart/views/admin/country_zone_form.php @@ -2,66 +2,52 @@ config->item('admin_folder').'/locations/zone_form/'.$id); ?> -
- -
+ + id] = $c->name; + } + + ?> + -
-
    -
  • -
+ + 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span12'); + echo form_input($data); + ?> -
-
-
- - id] = $c->name; - } - - ?> - -
-
- - 'name', 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
- -
- - 'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- - 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- 'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status), 'class="gc_tf1"');?> - -
+ + 'code', 'value'=>set_value('code', $code)); + echo form_input($data); + ?> + + +
+ 'tax', 'maxlength'=>'10', 'value'=>set_value('tax', $tax)); + echo form_input($data); + ?> + %
-
+ 'status', 'value'=>1, 'checked'=>set_checkbox('status', 1, (bool)$status));?> + + + +
+ +
- - + -
- - +
+ +
-
-
code; ?>
code; ?> tax+0;?>% - - + +
+ + +
+ +
- + @@ -23,15 +23,17 @@ function areyousure() - + - diff --git a/gocart/views/admin/coupon_form.php b/gocart/views/admin/coupon_form.php index eab438ec..af0e0991 100644 --- a/gocart/views/admin/coupon_form.php +++ b/gocart/views/admin/coupon_form.php @@ -8,86 +8,72 @@ config->item('admin_folder').'/coupons/form/'.$id); ?> -
- + +
+
-
-
    -
  • -
  • -
- -
-
- +
+
+
+ 'code', 'name'=>'code', 'value'=>set_value('code', $code), 'class'=>'gc_tf1'); + $data = array('name'=>'code', 'value'=>set_value('code', $code), 'class'=>'span3'); echo form_input($data); ?> -
- -
- - -
-
+ 'max_uses', 'name'=>'max_uses', 'value'=>set_value('max_uses', $max_uses), 'class'=>'gc_tf1'); + $data = array('name'=>'max_uses', 'value'=>set_value('max_uses', $max_uses), 'class'=>'span3'); echo form_input($data); ?> -
-
+ 'max_product_instances', 'value'=>set_value('max_product_instances', $max_product_instances), 'class'=>'gc_tf1'); - echo form_input($data); + $data = array('name'=>'max_product_instances', 'value'=>set_value('max_product_instances', $max_product_instances), 'class'=>'span3'); + echo form_input($data); ?> -
-
+ 'datepicker1', 'value'=>set_value('start_date', reverse_format($start_date)), 'class'=>'gc_tf1'); - echo form_input($data); + $data = array('id'=>'datepicker1', 'value'=>set_value('start_date', reverse_format($start_date)), 'class'=>'span3'); + echo form_input($data); ?> -
-
+ 'datepicker2', 'value'=>set_value('end_date', reverse_format($end_date)), 'class'=>'gc_tf1'); - echo form_input($data); + $data = array('id'=>'datepicker2', 'value'=>set_value('end_date', reverse_format($end_date)), 'class'=>'span3'); + echo form_input($data); ?> -
-
+ lang('price_discount'), - 'shipping' => lang('free_shipping') + 'price' => lang('price_discount'), + 'shipping' => lang('free_shipping') ); - echo form_dropdown('reduction_target', $options, $reduction_target, 'id="gc_coupon_type"'); + echo form_dropdown('reduction_target', $options, $reduction_target, 'id="gc_coupon_type" class="span3"'); ?> -
-
- 'reduction_amount', 'name'=>'reduction_amount', 'value'=>set_value('reduction_amount', $reduction_amount), 'class'=>'gc_tf1'); - echo form_input($data); - - $options = array( - 'percent' => '%', - 'fixed' => $this->config->item('currency_symbol') - ); - echo ' '.form_dropdown('reduction_type', $options, $reduction_type); - ?> -
+
+
+ '%', + 'fixed' => $this->config->item('currency_symbol') + ); + echo ' '.form_dropdown('reduction_type', $options, $reduction_type, 'class="span1"'); + ?> +
+
+ 'reduction_amount', 'name'=>'reduction_amount', 'value'=>set_value('reduction_amount', $reduction_amount), 'class'=>'span2'); + echo form_input($data);?> +
+
+
- -
+
lang('apply_to_whole_order'), @@ -102,9 +88,17 @@
+ +
+ +
-
- -
-
name; ?> code;?> tax+0;?>% status)?'enabled':'disabled';?> - - - + +
+ + + +
+ + + +
- + - + @@ -25,9 +25,11 @@ function areyousure() - diff --git a/gocart/views/admin/customer_address_form.php b/gocart/views/admin/customer_address_form.php index 42681a79..1b3e967e 100644 --- a/gocart/views/admin/customer_address_form.php +++ b/gocart/views/admin/customer_address_form.php @@ -1,81 +1,83 @@ 'f_company', 'name'=>'company','class'=>'gc_tf1', 'value'=> set_value('company',$company)); -$f_address1 = array('id'=>'f_address1', 'name'=>'address1', 'class'=>'gc_tf1 address','value'=>set_value('address1',$address1)); -$f_address2 = array('id'=>'f_address2', 'name'=>'address2', 'class'=>'gc_tf1 address','value'=> set_value('address2',$address2)); -$f_first = array('id'=>'f_firstname', 'name'=>'firstname', 'class'=>'gc_tf1','value'=> set_value('firstname',$firstname)); -$f_last = array('id'=>'f_lastname', 'name'=>'lastname', 'class'=>'gc_tf1','value'=> set_value('lastname',$lastname)); -$f_email = array('id'=>'f_email', 'name'=>'email', 'class'=>'gc_tf1','value'=>set_value('email',$email)); -$f_phone = array('id'=>'f_phone', 'name'=>'phone', 'class'=>'gc_tf1','value'=> set_value('phone',$phone)); -$f_city = array('id'=>'f_city', 'name'=>'city','class'=>'gc_tf1', 'value'=>set_value('city',$city)); -$f_zip = array('id'=>'f_zip', 'maxlength'=>'10', 'class'=>'bill input','class'=>'gc_tf1', 'name'=>'zip', 'value'=> set_value('zip',$zip)); +$f_company = array('name'=>'company','class'=>'span3', 'value'=> set_value('company',$company)); +$f_address1 = array('name'=>'address1', 'class'=>'span6','value'=>set_value('address1',$address1)); +$f_address2 = array('name'=>'address2', 'class'=>'span6','value'=> set_value('address2',$address2)); +$f_first = array('name'=>'firstname', 'class'=>'span3','value'=> set_value('firstname',$firstname)); +$f_last = array('name'=>'lastname', 'class'=>'span3','value'=> set_value('lastname',$lastname)); +$f_email = array('name'=>'email', 'class'=>'span3','value'=>set_value('email',$email)); +$f_phone = array('name'=>'phone', 'class'=>'span3','value'=> set_value('phone',$phone)); +$f_city = array('name'=>'city','class'=>'span2', 'value'=>set_value('city',$city)); +$f_zip = array('maxlength'=>'10', 'class'=>'span1', 'name'=>'zip', 'value'=> set_value('zip',$zip)); ?> -config->item('admin_folder').'/customers/address_form/'.$customer_id.'/'.$id);?> +config->item('admin_folder').'/customers/address_form/'.$customer_id.'/'.$id);?> -
- -
- -
-
    -
  • -
-
-
-
-
+
+
+
-
-
+
+ +
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
- '.form_input($f_address2);?> +
+
+ + +
-
-
-
- -
-
-
- +
+
+ +
-
-
-
- +
+
+
-
-
-
- +
+
+ + +
+
+ + +
+
+ +
+
+ +
-
'); } -
- -
-
num_uses ." / ". $coupon->max_uses; ?> - - + +
+ + +
+ + +
- + - + @@ -46,9 +45,13 @@ function areyousure() - diff --git a/gocart/views/admin/customer_form.php b/gocart/views/admin/customer_form.php index 50352f19..07c6f07f 100644 --- a/gocart/views/admin/customer_form.php +++ b/gocart/views/admin/customer_form.php @@ -1,108 +1,90 @@ config->item('admin_folder').'/customers/form/'.$id); ?> -
- -
-
-
    -
  • -
-
-
-
/
- - + +
+ + + + +
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 'company', 'name'=>'company', 'value'=>set_value('company', $company), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
'firstname', 'name'=>'firstname', 'value'=>set_value('firstname', $firstname), 'class'=>'gc_tf1'); - echo form_input($data); - ?>
- 'lastname', 'name'=>'lastname', 'value'=>set_value('lastname', $lastname), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
- 'email', 'name'=>'email', 'value'=>set_value('email', $email), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
- 'phone', 'name'=>'phone', 'value'=>set_value('phone', $phone), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
- 'password', 'name'=>'password', 'class'=>'gc_tf1'); - echo form_password($data); - ?> -
- 'confirm', 'name'=>'confirm', 'class'=>'gc_tf1'); - echo form_password($data); - ?> -
checked="checked" />
- 'active', 'name'=>'active', 'value'=>1, 'checked'=>$active); - echo form_checkbox($data); - ?> -
-
-
+
+
+ + 'company', 'value'=>set_value('company', $company), 'class'=>'span3'); + echo form_input($data); ?> +
+
-
+
+
+ + 'firstname', 'value'=>set_value('firstname', $firstname), 'class'=>'span3'); + echo form_input($data); ?> +
+
+ + 'lastname', 'value'=>set_value('lastname', $lastname), 'class'=>'span3'); + echo form_input($data); ?> +
+
+
+
+ + 'email', 'value'=>set_value('email', $email), 'class'=>'span3'); + echo form_input($data); ?> +
+
+ + 'phone', 'value'=>set_value('phone', $phone), 'class'=>'span3'); + echo form_input($data); ?> +
+
+ +
+
+ + 'password', 'class'=>'span3'); + echo form_password($data); ?> +
+
+ + 'confirm', 'class'=>'span3'); + echo form_password($data); ?> +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+ +
'percent','fixed'=>'fixed'), set_value('discount_type', $discount_type)); +$f_name = form_input('name', set_value('name', $name), 'class="span3"'); +$f_discount = form_input('discount', set_value('discount', $discount), 'class="span3"'); +$f_discount_type = form_dropdown('discount_type', array('percent'=>'percent','fixed'=>'fixed'), set_value('discount_type', $discount_type), 'class="span3"'); echo form_open($this->config->item('admin_folder').'/customers/edit_group/'.$id); ?> - -
- -
+ + -
-
    -
  • -
-
-

- - - - - - - - - - - - - -
- -
- -
- -
-
-
+ + + + + + +
+
- - + \ No newline at end of file diff --git a/gocart/views/admin/customer_groups.php b/gocart/views/admin/customer_groups.php index 4f2d5774..2a3d838b 100644 --- a/gocart/views/admin/customer_groups.php +++ b/gocart/views/admin/customer_groups.php @@ -8,45 +8,37 @@ function areyousure() -
- -
- + - +
- + - - - - - - - - - - -
name;?>discount ?>discount_type ?> - id != 1) : ?> - - - -
- - -
- - - \ No newline at end of file + + + name;?> + discount ?> + discount_type ?> + +
+ + + + id != 1) : ?> + + +
+ + + + + + +'); } -
- - - +
+ + +
- +
- ID uncomment this if you want it*/ ?> - - - + + + + + - + @@ -44,7 +48,7 @@ function areyousure() ':''?> - + id; ?>*/?> @@ -60,10 +64,14 @@ function areyousure() } ?> - -
-

- :

-
+ +
+ × + : +
+ -
-

- :

-
+
+ × + : +
+ -

-
+ ':'';} ?> + ':'';} ?> + ':'';} ?>
'.lang('no_customers').'
lastname; ?> firstname; ?> - - - + +
+ + + + + +
+

+
@@ -43,11 +46,16 @@
-

+ +
+
+ +
+
-

- +

+
ID uncomment this if you want it*/ ?> @@ -81,4 +89,10 @@
- + +
+
+ +
+
+config->item('admin_folder').'/digital_products/form/'.$id, 'id="product_form"'); ?> -
- -
+echo form_open_multipart($this->config->item('admin_folder').'/digital_products/form/'.$id); ?> -
-
    -
  • -
-
- - -
- - 'file', 'name'=>'userfile'); - echo form_upload($data); - ?> -
- -
- - -
- - -
- - 'title', 'name'=>'title', 'value'=>set_value('title', $title), 'class'=>'gc_tf1'); - echo form_input($data); + + + 'file', 'name'=>'userfile'); + echo form_upload($data); ?> -
- -
- - 'max_downloads', 'name'=>'max_downloads', 'value'=>set_value('max_downloads', $max_downloads), 'class'=>'gc_tf1'); - echo form_input($data); - ?> - -
- -
-
\ No newline at end of file + + + + + + + 'title', 'name'=>'title', 'value'=>set_value('title', $title), 'class'=>'gc_tf1'); + echo form_input($data); + ?> + + + 'max_downloads', 'name'=>'max_downloads', 'value'=>set_value('max_downloads', $max_downloads), 'class'=>'gc_tf1'); + echo form_input($data); + ?> + + +
+ +
+ + + +'); } -
- -
- + + + +
- + - - + + - ':''?> + ':''?> - - - - + + + diff --git a/gocart/views/admin/footer.php b/gocart/views/admin/footer.php index c785c3fe..7974ad8f 100644 --- a/gocart/views/admin/footer.php +++ b/gocart/views/admin/footer.php @@ -1,5 +1,8 @@ - - +
+
+

© Clear Sky Designs • Driven by GoCart

+
+ diff --git a/gocart/views/admin/giftcard_form.php b/gocart/views/admin/giftcard_form.php index d14228be..c4027206 100644 --- a/gocart/views/admin/giftcard_form.php +++ b/gocart/views/admin/giftcard_form.php @@ -1,62 +1,48 @@ config->item('admin_folder').'/giftcards/form/'); ?> -
- -
- -
-
    -
  • -
+ + + 'to_name', 'value'=>set_value('code'), 'class'=>'span3'); + echo form_input($data); + ?> + + + 'to_email', 'value'=>set_value('to_email'), 'class'=>'span3'); + echo form_input($data); + ?> + + + + + 'from', 'value'=>set_value('from'), 'class'=>'span3'); + echo form_input($data); + ?> + + + 'personal_message', 'value'=>set_value('personal_message'), 'class'=>'span3'); + echo form_textarea($data); + ?> + + + 'beginning_amount', 'value'=>set_value('beginning_amount'), 'class'=>'span3'); + echo form_input($data); + ?> -
-
- - 'to_name', 'name'=>'to_name', 'value'=>set_value('code'), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- - 'to_email', 'name'=>'to_email', 'value'=>set_value('to_email'), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- - 'send_notification', 'value'=>'true', 'class'=>'gc_tf1'); - echo form_checkbox($data); - ?> -
-
- - 'from', 'name'=>'from', 'value'=>set_value('from'), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
-
- - 'personal_message', 'value'=>set_value('personal_message'), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> -
- -
- - 'beginning_amount', 'name'=>'beginning_amount', 'value'=>set_value('beginning_amount'), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
+
+
-
- + - + -
+
+ - + - + - + - +
-
'.lang('no_files').'
'.lang('no_files').'
filename ?>title ?>size ?> - - + filename; ?>title; ?>size; ?> kb +
+ + + +
+
- + - + @@ -41,8 +42,8 @@ function areyousure() - diff --git a/gocart/views/admin/giftcards_settings.php b/gocart/views/admin/giftcards_settings.php index 7512b9b8..d5274805 100644 --- a/gocart/views/admin/giftcards_settings.php +++ b/gocart/views/admin/giftcards_settings.php @@ -2,31 +2,24 @@ config->item('admin_folder').'/giftcards/settings'); ?> -
- -
-
-
    -
  • -
-
-
- + + 'predefined_card_amounts', 'value'=>set_value('predefined_card_amounts', $predefined_card_amounts), 'class'=>'gc_tf1'); echo form_input($data); - echo form_error('predefined_card_amounts'); ?> - -
-
- + + +
+ $data = array('name'=>'allow_custom_amount', 'value'=>'1', 'checked'=>(bool)$allow_custom_amount); + echo form_checkbox($data); + ?> + + +
+
-
+ -Go Cart :: <?php echo $page_title; ?> +Go Cart<?php echo (isset($page_title))?' :: '.$page_title:''; ?> - + + + + +auth->is_logged_in(false, false)):?> + - - - - - - - - + + + - + -
- -
-
- + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - +$(window).ready(function(){ + $('#iframe_uploader', window.parent.document).height($('body').height()); +}); + + parent.add_product_image(''); - - parent.set_error(''); - - -config->item('admin_folder').'/products/product_image_upload');?> -'userfile', 'id'=>'userfile'));?> - + +
+ × + +
+ + +
+
+ config->item('admin_folder').'/products/product_image_upload', 'class="form-inline"');?> + 'userfile', 'id'=>'userfile', 'class'=>'input-file'));?> + +
+
config->item('admin_folder').'/pages/link_form/'.$id); ?> -
- -
+ + 'title', 'name'=>'title', 'value'=>set_value('title', $title), 'class'=>'span3'); + echo form_input($data); + ?> -
-
    -
  • -
+ + 'url', 'name'=>'url', 'value'=>set_value('url', $url), 'class'=>'span3'); + echo form_input($data); + ?> + - + \ No newline at end of file diff --git a/gocart/views/admin/login.php b/gocart/views/admin/login.php index 2241ba49..834cf3e7 100644 --- a/gocart/views/admin/login.php +++ b/gocart/views/admin/login.php @@ -1,107 +1,38 @@ - - - - -<?php echo lang('gocart_login');?> + - - - - - - - - - - session->flashdata('error')) - { - echo '
'.$this->session->flashdata('error').'
'; + body { + margin-top:50px; } - ?> + + +
+ +
+
+ +
config->item('admin_folder').'/login') ?> -
- - 'email', 'name'=>'email', 'class'=>'form_input')); ?> - - - - 'password', 'name'=>'password', 'class'=>'form_input')); ?> +
+ + 'email', 'class'=>'span4')); ?> + + + 'password', 'class'=>'span4')); ?> + +
- - + + + + + + + + + \ No newline at end of file diff --git a/gocart/views/admin/order.php b/gocart/views/admin/order.php index 7b3de871..36741d48 100644 --- a/gocart/views/admin/order.php +++ b/gocart/views/admin/order.php @@ -1,118 +1,201 @@ +
+
+
+ + +
+
+
+ + + + -config->item('admin_folder').'/orders/view/'.$order->id);?> - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+
+

+

+ company))?$order->company.'
':'';?> + firstname;?> lastname;?>
+ email;?>
+ phone;?> +

+
+
+

+ bill_company))?$order->bill_company.'
':'';?> + bill_firstname.' '.$order->bill_lastname;?>
+ bill_address1;?>
+ bill_address2))?$order->bill_address2.'
':'';?> + bill_city.', '.$order->bill_zone.' '.$order->bill_zip;?>
+ bill_country;?>
+ bill_email;?>
+ bill_phone;?> +
+
+

+ ship_company))?$order->ship_company.'
':'';?> + ship_firstname.' '.$order->ship_lastname;?>
+ ship_address1;?>
+ ship_address2))?$order->ship_address2.'
':'';?> + ship_city.', '.$order->ship_zone.' '.$order->ship_zip;?>
+ ship_country;?>
-
- - - - - - - - - + ship_email;?>
+ ship_phone;?> + + + +
+
+

+

+ referral)):?> + : referral;?>
+ + is_gift)):?> + + -

- company))?$order->company.'
':'';?> - firstname;?> lastname;?>
- email;?>
- phone;?> -
- bill_company))?$order->bill_company.'
':'';?> - bill_firstname.' '.$order->bill_lastname;?>
- bill_address1;?>
- bill_address2))?$order->bill_address2.'
':'';?> - bill_city.', '.$order->bill_zone.' '.$order->bill_zip;?>
- bill_country;?>
- - bill_email;?>
- bill_phone;?> -
- ship_company))?$order->ship_company.'
':'';?> - ship_firstname.' '.$order->ship_lastname;?>
- ship_address1;?>
- ship_address2))?$order->ship_address2.'
':'';?> - ship_city.', '.$order->ship_zone.' '.$order->ship_zip;?>
- ship_country;?>
- - ship_email;?>
- ship_phone;?> -
- - referral)):?> - - - - - - is_gift)):?> - - - - - gift_message)):?> - - - - - -
referral;?>
gift_message;?>
- -
- payment_info; ?> - -
shipping_method; ?>
- shipping_notes)):?>
shipping_notes;?>
-
- - - config->item('order_statuses'), $order->status); - ?>
- -
+ gift_message)):?> +
+ gift_message;?> + +

+
+
+

+

payment_info; ?>

+
+
+

+ shipping_method; ?> + shipping_notes)):?>
shipping_notes;?>
+
+
+ +config->item('admin_folder').'/orders/view/'.$order->id, 'class="form-inline"');?> +
+
+
+

+ +
+ + +
+

+ config->item('order_statuses'), $order->status, 'class="span4"'); + ?> + +
+
+ +
+ +
+
- +
- + - - + + @@ -154,12 +237,12 @@ ?> - + - - + + coupon_discount > 0):?> @@ -208,18 +291,11 @@ - + - +

total); ?>
- '; } else { $sort = 'asc'; + $icon = ' '; } } else { $sort = 'asc'; + $icon = ''; } - $return = site_url($admin_folder.'/orders/index/'.$by.'/'.$sort.'/'.$code); - return $return; - } - $pagination = '
'; - - $pagination .= ''; - - $pagination .= $pages; - - - $pagination .= $pages; - $pagination .= ''; - $pagination .= '
'; - - -if ($term) -{ - echo '

'.sprintf(lang('search_returned'), intval($total)).'

'; + $return = site_url($admin_folder.'/orders/index/'.$by.'/'.$sort.'/'.$code); + + echo ''.lang($lang).$icon.''; + + } -} -?> -config->item('admin_folder').'/orders', array('id'=>'search_form')); ?> - - - - +if ($term):?> -config->item('admin_folder').'/orders/export', array('id'=>'export_form')); ?> - - - - +
+ +
+ -config->item('admin_folder').'/orders/bulk_delete', array('id'=>'delete_form')); ?> + +
+
+
+
+ pagination->create_links();?> +
+
+ config->item('admin_folder').'/orders/index', 'class="form-inline" style="float:right"');?> +
+ + + + + + - + + + + + + + + + +config->item('admin_folder').'/orders/bulk_delete', array('id'=>'delete_form', 'onsubmit'=>'return submit_form();', 'class="form-inline"')); ?> + +
- - - - - - - - + + + + + + + + - - - - + - - - ':''?> @@ -106,42 +100,16 @@ function sort_url($by, $sort, $sorder, $code, $admin_folder) - - - + - - -
config->item('admin_folder')); ?>config->item('admin_folder')); ?>config->item('admin_folder')); ?>config->item('admin_folder')); ?>config->item('admin_folder')); ?>config->item('admin_folder')); ?>
-
- -
- -
'.lang('no_orders') .'
bill_lastname.', '.$order->bill_firstname; ?> ship_lastname.', '.$order->ship_firstname; ?> ordered_on)); ?> -
- status; ?> - edit -
- +
+ config->item('order_statuses'), $order->status, 'id="status_form_'.$order->id.'" class="span2" style="float:left;"'); ?> +
notes; ?>
- +
total); ?>
+
-
- -
- -
@@ -186,33 +154,38 @@ function submit_form() { if($(".gc_check:checked").length > 0) { - if(confirm('')) - { - $('#delete_form').submit(); - } + return confirm(''); } else { alert(''); + return false; } } -function edit_status(id) -{ - $('#status_container_'+id).hide(); - $('#edit_status_'+id).show(); -} - function save_status(id) { + show_animation(); $.post("config->item('admin_folder').'/orders/edit_status'); ?>", { id: id, status: $('#status_form_'+id).val()}, function(data){ - $('#status_'+id).html(''+$('#status_form_'+id).val()+''); + setTimeout('hide_animation()', 500); }); - - $('#status_container_'+id).show(); - $('#edit_status_'+id).hide(); } - +function show_animation() +{ + $('#saving_container').css('display', 'block'); + $('#saving').css('opacity', '.8'); +} + +function hide_animation() +{ + $('#saving_container').fadeOut(); +} + + \ No newline at end of file diff --git a/gocart/views/admin/organize_category.php b/gocart/views/admin/organize_category.php index c61c2924..26697d0c 100644 --- a/gocart/views/admin/organize_category.php +++ b/gocart/views/admin/organize_category.php @@ -40,24 +40,26 @@ function save_sortable() //]]> -

+
+ +
- +
- + - - + + - - + + - - + + diff --git a/gocart/views/admin/page_form.php b/gocart/views/admin/page_form.php index fcccab2b..e62c562a 100644 --- a/gocart/views/admin/page_form.php +++ b/gocart/views/admin/page_form.php @@ -2,102 +2,101 @@ config->item('admin_folder').'/pages/form/'.$id); ?> -
- -
-
-
    -
  • -
  • -
  • +
    + + -
    -
    - 'title', 'name'=>'title', 'value'=>set_value('title', $title), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    + +
    +
    +
    + + 'title', 'value'=>set_value('title', $title), 'class'=>'span12'); + echo form_input($data); + ?> + + + 'content', 'name'=>'content', 'class'=>'span12 tinyMCE', 'value'=>set_value('content', $content)); + echo form_textarea($data); + ?> + + + +
    +
    -
    - 'description', 'name'=>'content', 'class'=>'tinyMCE', 'value'=>set_value('content', $content)); - echo form_textarea($data); - ?> -
    +
    +
    + + 'menu_title', 'value'=>set_value('menu_title', $menu_title), 'class'=>'span3'); + echo form_input($data); + ?> -
    - -
    -
    -
    -
    - - 'menu_title', 'name'=>'menu_title', 'value'=>set_value('menu_title', $menu_title), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    -
    - - 'slug', 'name'=>'slug', 'value'=>set_value('slug', $slug), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    -
    - - - id) + + 'slug', 'value'=>set_value('slug', $slug), 'class'=>'span3'); + echo form_input($data); + ?> + + + id] = $dash.' '.$page->title; - $options = $options + page_loop($page->children, $dash.'-', $id); + $options = array(); + foreach($pages as $page) + { + //this is to stop the whole tree of a particular link from showing up while editing it + if($id != $page->id) + { + $options[$page->id] = $dash.' '.$page->title; + $options = $options + page_loop($page->children, $dash.'-', $id); + } + } + return $options; } - } - return $options; - } - $options = $options + page_loop($pages, '', $id); - echo form_dropdown('parent_id', $options, set_value('parent_id', $parent_id)); - ?> -
    -
    - - 'sequence', 'name'=>'sequence', 'value'=>set_value('sequence', $sequence), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    -
    -
    -
    - - 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); - echo form_input($data); - ?> + $options = $options + page_loop($pages, '', $id); + echo form_dropdown('parent_id', $options, set_value('parent_id', $parent_id)); + ?> + + + 'sequence', 'value'=>set_value('sequence', $sequence), 'class'=>'span3'); + echo form_input($data); + ?> +
    - -
    - - 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> + +
    +
    + + 'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'span12'); + echo form_input($data); + ?> + + + '3', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'span12'); + echo form_textarea($data); + ?> + +

    +
    -
    +
    - +
    + +
    + \ No newline at end of file diff --git a/gocart/views/admin/pages.php b/gocart/views/admin/pages.php index 5373ecca..86001a08 100644 --- a/gocart/views/admin/pages.php +++ b/gocart/views/admin/pages.php @@ -6,17 +6,16 @@ function areyousure() return confirm(''); } -
    - - +
    + +
    -
sku;?>
sku;?> name;?>price;?>saleprice;?>price);?>saleprice);?>
+
- - - + + @@ -31,20 +30,20 @@ function page_loop($pages, $dash = '') foreach($pages as $page) {?> - - - -
- -
- -
-
    -
  • -
- -
+
+
+ config->item('admin_folder').'/payment/settings/'. $module);?> +
+ + + -
+
+ +
+ +
- - +
+ + + + +config->item('admin_folder').'/products/form/'.$id ); ?> +
+
+
+ +
+
+
+
+
+
+ lang('name'), 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span8'); + echo form_input($data); + ?> +
+
+
+
+ 'description', 'name'=>'description', 'class'=>'span8 tinyMCE', 'value'=>set_value('description', $description)); + echo form_textarea($data); + ?> + + +
+
+ +
+
+ + 'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'span8', 'rows'=>5); + echo form_textarea($data); + ?> +
+
+ +
+
+ + lang('yes') + ,'0' => lang('no') + ); + echo form_dropdown('track_stock', $options, set_value('track_stock',$track_stock), 'class="span3"'); + ?> +
+
+ + lang('no') + ,'1' => lang('yes') + ); + echo form_dropdown('fixed_quantity', $options, set_value('fixed_quantity',$fixed_quantity), 'class="span3"'); + ?> +
+
+ + 'quantity', 'value'=>set_value('quantity', $quantity), 'class'=>'span2'); + echo form_input($data); + ?> +
+ + + + + + + +
+
+
+ +
+
+ +
+
+
+ title; ?> - - - content)): ?> - - - - - - - + +
+ url)): ?> + + + + + + + +
+ + + + + + + + + + ':''?> + + + + + + + + + +
'.lang('no_files').'
filename ?>title ?>size ?>id, in_array($file->id, $product_files)); ?>
+
+
+ +
+ +
+
+ + + + + + +
+
+ +
+
+ + +
+ required)) + { + $option->required = false; + } + ?> +
+

type.' > '.$option->name; ?>

+ +
+ + + + + + + + required)?'checked="checked"':'';?>/> + + type!='textarea' && $option->type!='textfield') { ?> + + + + +
+ type!='textarea' && $option->type!='textfield') { ?>
    + values)) + $valcount = 0; + foreach($option->values as $value) : + $value = (object)$value;?> + + type!='textarea' && $option->type!='textfield') { ?>
  • +
    + + + + + type == 'textfield'):?> + + + + + type!='textarea' && $option->type!='textfield') { ?> + + +
    + type!='textarea' && $option->type!='textfield') { ?> +
  • + + + + + type!='textarea' && $option->type!='textfield') { ?>
+
+ + +
+
+ + + +
+ + +
+
+
+
+
+
+ lang('enabled') + ,'0' => lang('disabled') + ); + echo form_dropdown('enabled', $options, set_value('enabled',$enabled), 'class="span4"'); + ?> + + lang('shippable') + ,'0' => lang('not_shippable') + ); + echo form_dropdown('shippable', $options, set_value('shippable',$shippable), 'class="span4"'); + ?> + + lang('taxable') + ,'0' => lang('not_taxable') + ); + echo form_dropdown('taxable', $options, set_value('taxable',$taxable), 'class="span4"'); + ?> + + + 'slug', 'value'=>set_value('slug', $slug), 'class'=>'span4'); + echo form_input($data);?> + + + 'sku', 'value'=>set_value('sku', $sku), 'class'=>'span4'); + echo form_input($data);?> + + + 'weight', 'value'=>set_value('weight', $weight), 'class'=>'span4'); + echo form_input($data);?> + + + 'price', 'value'=>set_value('price', $price), 'class'=>'span4'); + echo form_input($data);?> + + + 'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'span4'); + echo form_input($data);?> +
+
+ +
+ + + +



















+
+ + + + + + + + + + + + + + 0) + { + $sub2 = str_replace('→ ', ' ', $sub); + $sub2 .= '   → '; + list_categories($cat['children'], $product_categories, $sub2); + } + endforeach; + } + + list_categories($categories, $product_categories); + ?> + +
name; ?> + id, $product_categories))?'checked="checked"':'';?>/> +
+
+ + +
+
+ + 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); + echo form_input($data); + ?> +
+ +
+ + 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); + echo form_textarea($data); + ?> +
+
+ +
+ + + +
+ +
+
+ +
+ $photo_obj) + { + if(!empty($photo_obj)) + { + $photo = (array)$photo_obj; + add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); + } + + } + ?> +
+
+
+
+ +
+ +
+ + + +
+ + + + + + + + +
+ + + + /> + + +
+ + + + + + + + + +
+
+
+ +
+

'.$name; ?>

+
+ + + + + + + + + + + +
+
    + +
+
+
+
+ + + + + + + + '.$name.' + + '.lang('remove').' + + + '; + } ?> + \ No newline at end of file diff --git a/gocart/views/admin/product_form backup2.php b/gocart/views/admin/product_form backup2.php new file mode 100644 index 00000000..3a34c5f2 --- /dev/null +++ b/gocart/views/admin/product_form backup2.php @@ -0,0 +1,780 @@ + + + + + +config->item('admin_folder').'/products/form/'.$id ); ?> +
+
+
+ +
+
+
+
+
+ lang('name'), 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span8'); + echo form_input($data); + ?> +
+
+
+
+ 'description', 'name'=>'description', 'class'=>'span8 tinyMCE', 'value'=>set_value('description', $description)); + echo form_textarea($data); + ?> + + +
+
+ +
+
+ + 'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'span8', 'rows'=>5); + echo form_textarea($data); + ?> +
+
+ +
+
+
+ Inventory +
+
+ + lang('yes') + ,'0' => lang('no') + ); + echo form_dropdown('track_stock', $options, set_value('track_stock',$track_stock), 'class="span3"'); + ?> +
+
+ + lang('no') + ,'1' => lang('yes') + ); + echo form_dropdown('fixed_quantity', $options, set_value('fixed_quantity',$fixed_quantity), 'class="span3"'); + ?> +
+
+ + 'quantity', 'value'=>set_value('quantity', $quantity), 'class'=>'span2'); + echo form_input($data); + ?> +
+
+
+
+
+
+
+
+ +
+
+ + + 'slug', 'value'=>set_value('slug', $slug), 'class'=>'span8'); + echo form_input($data);?> + + + 'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'span8'); + echo form_input($data); + ?> + + + 'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'span8'); + echo form_textarea($data); + ?> +
+
+
+
+
+
+ +
+
+ +
+
+ + + + + + + + + + + ':''?> + + + + + + + + + +
'.lang('no_files').'
filename ?>title ?>size ?>id, in_array($file->id, $product_files)); ?>
+
+
+ +
+
+
+ + + + + + + + 0) + { + $sub2 = str_replace('→ ', ' ', $sub); + $sub2 .= '   → '; + list_categories($cat['children'], $product_categories, $sub2); + } + endforeach; + } + + list_categories($categories, $product_categories); + ?> + +
name; ?> + id, $product_categories))?'checked="checked"':'';?>/> +
+ +
+
+
+ +
+
+
+
+ required)) + { + $option->required = false; + } + ?> + +
+ +
+
+ +
+
+ +
+
+ required)?'checked="checked"':'';?>/> +
+
+ type!='textarea' && $option->type!='textfield'):?> +
+
+ +
+
+ + + + + + + + + + + + + values)): + $valcount = 0; + foreach($option->values as $value) : + $value = (object)$value;?> + + + + + + + + + + +
+ + + + + + + +
+ + + + + + + + + type == 'textfield'):?> + + + + values)): + $valcount = 0; + foreach($option->values as $value) : + $value = (object)$value;?> + + + + + + + type == 'textfield'):?> + + + + + +
+ + + + + + + + + + + +
+ +
+
+
+ + +
+
+
+ +
+
+
+ + +
+
+
+
+ + + +
+
+
+
+ +
+ $photo_obj) + { + if(!empty($photo_obj)) + { + $photo = (array)$photo_obj; + add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); + } + + } + ?> +
+
+
+
+
+
+
+
+ lang('disabled') + ,'1' => lang('enabled') + ); + echo form_dropdown('enabled', $options, set_value('enabled',$enabled), 'class="span4"'); + ?> + + lang('shippable') + ,'0' => lang('not_shippable') + ); + echo form_dropdown('shippable', $options, set_value('shippable',$shippable), 'class="span4"'); + ?> + + lang('taxable') + ,'0' => lang('not_taxable') + ); + echo form_dropdown('taxable', $options, set_value('taxable',$taxable), 'class="span4"'); + ?> + + + 'sku', 'value'=>set_value('sku', $sku), 'class'=>'span4'); + echo form_input($data);?> + + + 'weight', 'value'=>set_value('weight', $weight), 'class'=>'span4'); + echo form_input($data);?> + + + 'price', 'value'=>set_value('price', $price), 'class'=>'span4'); + echo form_input($data);?> + + + 'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'span4'); + echo form_input($data);?> +
+
+ +
+ +
+ + + +
+
+ + +
+
+
+
+ +
+
+ /> +
+
+ +
+
+
+
+ + +
+
+
+
+ + + +
+
+ + + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + + + '.$name.' + + '.lang('remove').' + + + '; + } ?> + \ No newline at end of file diff --git a/gocart/views/admin/product_form.php b/gocart/views/admin/product_form.php index ac8d2488..73c4fb31 100644 --- a/gocart/views/admin/product_form.php +++ b/gocart/views/admin/product_form.php @@ -1,4 +1,7 @@ - + +
+
+ + required)){$po->required = false;} + add_option($po, $counter); + $counter++; + }?> -
- type!='textarea' && $option->type!='textfield') { ?>
    - values)) - $valcount = 0; - foreach($option->values as $value) : - $value = (object)$value;?> - - type!='textarea' && $option->type!='textfield') { ?>
  • -
    +
+
+
+ + + + +
+
+ +
+
+
+ +
+ - + foreach($images as $photo_id=>$photo_obj) + { + if(!empty($photo_obj)) + { + $photo = (array)$photo_obj; + add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); + } + + } + ?> +
+
+
- -
-
- -
- $photo_obj) - { - if(!empty($photo_obj)) - { - $photo = (array)$photo_obj; - add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); - } - - } - ?> -
-
+ + + 'sku', 'value'=>set_value('sku', $sku), 'class'=>'span4'); + echo form_input($data);?> + + + 'weight', 'value'=>set_value('weight', $weight), 'class'=>'span4'); + echo form_input($data);?> + + + 'price', 'value'=>set_value('price', $price), 'class'=>'span4'); + echo form_input($data);?> + + + 'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'span4'); + echo form_input($data);?>
+
+ +
-
- - - - - - - - -
- - - +
+
+ + +
+
+
+
+ +
+
/> - - -
- - - - - - - - - -
-
+
+
+ +
+ +
+
+ + +
+
+ + -
-

'.$name; ?>

-
- - - - - - - - - - - -
- +
+ +
+ +
+ required)?'checked="checked"':'';?>/> +
+
+ type!='textarea' && $po->type!='textfield'):?> +
+
+ +
+
+ +
+ +
+ type!='textarea' && $po->type!='textfield'):?> +
 
+ +
  
+
 
+
 
+
 
+
 type=='textfield')?lang('limit'):'';?>
+
+
+ values):?> + values as $value) + { + $value = (object)$value; + add_option_value($po, $count, $GLOBALS['option_value_count'], $value); + $GLOBALS['option_value_count']++; + }?> + +
+
+
+ + + + +
+
+ type!='textarea' && $po->type!='textfield'):?>
+
+
+
+
+
+ type=='textfield'):?> + type!='textarea' && $po->type!='textfield'):?> + +
@@ -637,31 +683,28 @@ function add_option($name, $option_id, $type) $stuff = ob_get_contents(); ob_end_clean(); - + echo replace_newline($stuff); } //this makes it easy to use the same code for initial generation of the form as well as javascript additions function replace_newline($string) { - return (string)str_replace(array("\r", "\r\n", "\n", "\t"), ' ', $string); + return trim((string)str_replace(array("\r", "\r\n", "\n", "\t"), ' ', $string)); } ?> @@ -701,14 +769,28 @@ function photos_sortable() - + + '.$name.' - - '.lang('remove').' + + '.lang('remove').' '; - } ?> - \ No newline at end of file +} + +function category($id, $name) { + return ' + + + + '.$name.' + + '.lang('remove').' + + + '; +} + +include('footer.php'); ?> \ No newline at end of file diff --git a/gocart/views/admin/products.php b/gocart/views/admin/products.php index 0440d972..177714a0 100644 --- a/gocart/views/admin/products.php +++ b/gocart/views/admin/products.php @@ -1,37 +1,136 @@ - +'; + } + else + { + $sort = 'asc'; + $icon = ' '; + } + } + else + { + $sort = 'asc'; + $icon = ''; + } + + + $return = site_url($admin_folder.'/products/index/'.$by.'/'.$sort.'/'.$code); + + echo ''.lang($lang).$icon.''; + +} + +if(!empty($term)): + $term = json_decode($term); + if(!empty($term->term) || !empty($term->category_id)):?> +
+ +
+ + + -
- - + +
+
+
+
+ pagination->create_links();?>   +
+
+ config->item('admin_folder').'/products/index', 'class="form-inline" style="float:right"');?> +
+ + + 0) + { + $sub2 = str_replace('→ ', ' ', $sub); + $sub2 .= '   → '; + list_categories($cat['children'], $product_categories, $sub2); + } + endforeach; + } + + if(!empty($categories)) + { + echo ''; + + }?> + + + + Reset +
+ +
+
+
+
+
config->item('admin_folder').'/products/bulk_save', array('id'=>'bulk_form'));?> - +
- - - - - - - + + + + + + + ':''?> - - - - - - + + + + + + -
config->item('admin_folder'));?>config->item('admin_folder'));?>config->item('admin_folder'));?>config->item('admin_folder'));?>config->item('admin_folder'));?>config->item('admin_folder'));?> + + + + +
'.lang('no_products').'
'product['.$product->id.'][sku]','value'=>form_decode($product->sku), 'class'=>'gc_tf3'));?>'product['.$product->id.'][name]','value'=>form_decode($product->name), 'class'=>'gc_tf3'));?>'product['.$product->id.'][price]', 'value'=>set_value('price', $product->price), 'class'=>'gc_tf3'));?>'product['.$product->id.'][saleprice]', 'value'=>set_value('saleprice', $product->saleprice), 'class'=>'gc_tf3'));?>track_stock)?form_input(array('name'=>'product['.$product->id.'][quantity]', 'value'=>set_value('quantity', $product->quantity), 'class'=>'gc_tf3')):'N/A';?>
'product['.$product->id.'][sku]','value'=>form_decode($product->sku), 'class'=>'span1'));?>'product['.$product->id.'][name]','value'=>form_decode($product->name), 'class'=>'span2'));?>'product['.$product->id.'][price]', 'value'=>set_value('price', $product->price), 'class'=>'span1'));?>'product['.$product->id.'][saleprice]', 'value'=>set_value('saleprice', $product->saleprice), 'class'=>'span1'));?>track_stock)?form_input(array('name'=>'product['.$product->id.'][quantity]', 'value'=>set_value('quantity', $product->quantity), 'class'=>'span1')):'N/A';?> lang('disabled') ); - echo form_dropdown('product['.$product->id.'][enabled]', $options, set_value('enabled',$product->enabled)); + echo form_dropdown('product['.$product->id.'][enabled]', $options, set_value('enabled',$product->enabled), 'class="span2"'); ?> - - - + + + + + +
-
- - -
\ No newline at end of file diff --git a/gocart/views/admin/reports.php b/gocart/views/admin/reports.php index d5a0f179..6b81068d 100644 --- a/gocart/views/admin/reports.php +++ b/gocart/views/admin/reports.php @@ -1,20 +1,45 @@ -

-
- - - - - + +
+
+

+
+
+
+ + + + + + +
+
-
- + +
+
-

-
- + +
+
+

+
+
+
+ + +
+
+
+ +
+
@@ -22,7 +47,7 @@ $(document).ready(function(){ get_best_sellers(); - get_sales(); + get_monthly_sales(); $('input:button').button(); $('#best_sellers_start').datepicker({ dateFormat: 'mm-dd-yy', altField: '#best_sellers_start_alt', altFormat: 'yy-mm-dd' }); $('#best_sellers_end').datepicker({ dateFormat: 'mm-dd-yy', altField: '#best_sellers_end_alt', altFormat: 'yy-mm-dd' }); @@ -30,16 +55,38 @@ function get_best_sellers() { + show_animation(); $.post('config->item('admin_folder').'/reports/best_sellers');?>',{start:$('#best_sellers_start').val(), end:$('#best_sellers_end').val()}, function(data){ $('#best_sellers').html(data); + setTimeout('hide_animation()', 500); }); } -function get_sales() +function get_monthly_sales() { - $.post('config->item('admin_folder').'/reports/sales');?>',{bah:Math.floor(Math.random( )*9999999999)}, function(data){ + show_animation(); + $.post('config->item('admin_folder').'/reports/sales');?>',{year:$('#sales_year').val()}, function(data){ $('#sales_container').html(data); + setTimeout('hide_animation()', 500); }); } + +function show_animation() +{ + $('#saving_container').css('display', 'block'); + $('#saving').css('opacity', '.8'); +} + +function hide_animation() +{ + $('#saving_container').fadeOut(); +} + + + \ No newline at end of file diff --git a/gocart/views/admin/reports/best_sellers.php b/gocart/views/admin/reports/best_sellers.php index 870c274a..60589f48 100644 --- a/gocart/views/admin/reports/best_sellers.php +++ b/gocart/views/admin/reports/best_sellers.php @@ -1,19 +1,19 @@ - +
ID uncomment this if you want it*/ ?> - + - + - + id; ?>*/?> - + - + diff --git a/gocart/views/admin/reports/sales.php b/gocart/views/admin/reports/sales.php index 2af692e8..61fe56dc 100644 --- a/gocart/views/admin/reports/sales.php +++ b/gocart/views/admin/reports/sales.php @@ -14,35 +14,33 @@ ,lang('november') ,lang('december') ); +?> -foreach($orders as $year=>$months):?> - -
sku; ?>sku; ?> name; ?>quantity_sold; ?>quantity_sold; ?>
+
ID uncomment this if you want it*/ ?> - + - + - + - $totals):?> - - - - - - - - + + + + + + + + + - +
month)-1].' '.$month->year;?>coupon_discounts);?>gift_card_discounts);?>product_totals);?>shipping);?>tax);?>total);?>
- \ No newline at end of file diff --git a/gocart/views/admin/settings.php b/gocart/views/admin/settings.php index 4fca8419..5085aa08 100644 --- a/gocart/views/admin/settings.php +++ b/gocart/views/admin/settings.php @@ -1,78 +1,87 @@ + 0): ?> - - - - - - - - - $enabled): ?> - - - - - - -
- - - - - - -
+
+
+ + + + $enabled): ?> + + + + + + +
+ + + + + + + + +
+
+
0): ?> - - - - - - - - - $enabled): ?> - - - - - - -
- - - - - - -
+
+
+ + + + $enabled): ?> + + + + + + +
+ + + + + + + + +
+
+
-
- -
+ +
+
+ 0): ?> - - - - - - - +
- diff --git a/gocart/views/admin/shipping_module_settings.php b/gocart/views/admin/shipping_module_settings.php index 0b8181d9..bbe6f4f9 100644 --- a/gocart/views/admin/shipping_module_settings.php +++ b/gocart/views/admin/shipping_module_settings.php @@ -1,21 +1,17 @@ - -
- -
- -
-
    -
  • -
- -
+
+
+ config->item('admin_folder').'/shipping/settings/'. $module);?> +
-
+
+ +
+ +
- - +
// GoCart Theme -$config['theme'] = 'default'; +$config['theme'] = 'bootstrap'; // SSL support $config['ssl_support'] = ; diff --git a/install/application/views/templates/sql.php b/install/application/views/templates/sql.php index 81a82626..6f188c4f 100644 --- a/install/application/views/templates/sql.php +++ b/install/application/views/templates/sql.php @@ -130,7 +130,7 @@ -- new query -INSERT INTO `prefix_country_zones` VALUES ('2537', '167', 'IC', 'Ica', '1', '0.00000'), ('2538', '167', 'JU', 'Junin', '1', '0.00000'), ('2539', '167', 'LD', 'La Libertad', '1', '0.00000'), ('2540', '167', 'LY', 'Lambayeque', '1', '0.00000'), ('2541', '167', 'LI', 'Lima', '1', '0.00000'), ('2542', '167', 'LO', 'Loreto', '1', '0.00000'), ('2543', '167', 'MD', 'Madre de Dios', '1', '0.00000'), ('2544', '167', 'MO', 'Moquegua', '1', '0.00000'), ('2545', '167', 'PA', 'Pasco', '1', '0.00000'), ('2546', '167', 'PI', 'Piura', '1', '0.00000'), ('2547', '167', 'PU', 'Puno', '1', '0.00000'), ('2548', '167', 'SM', 'San Martin', '1', '0.00000'), ('2549', '167', 'TA', 'Tacna', '1', '0.00000'), ('2550', '167', 'TU', 'Tumbes', '1', '0.00000'), ('2551', '167', 'UC', 'Ucayali', '1', '0.00000'), ('2552', '168', 'ABR', 'Abra', '1', '0.00000'), ('2553', '168', 'ANO', 'Agusan del Norte', '1', '0.00000'), ('2554', '168', 'ASU', 'Agusan del Sur', '1', '0.00000'), ('2555', '168', 'AKL', 'Aklan', '1', '0.00000'), ('2556', '168', 'ALB', 'Albay', '1', '0.00000'), ('2557', '168', 'ANT', 'Antique', '1', '0.00000'), ('2558', '168', 'APY', 'Apayao', '1', '0.00000'), ('2559', '168', 'AUR', 'Aurora', '1', '0.00000'), ('2560', '168', 'BAS', 'Basilan', '1', '0.00000'), ('2561', '168', 'BTA', 'Bataan', '1', '0.00000'), ('2562', '168', 'BTE', 'Batanes', '1', '0.00000'), ('2563', '168', 'BTG', 'Batangas', '1', '0.00000'), ('2564', '168', 'BLR', 'Biliran', '1', '0.00000'), ('2565', '168', 'BEN', 'Benguet', '1', '0.00000'), ('2566', '168', 'BOL', 'Bohol', '1', '0.00000'), ('2567', '168', 'BUK', 'Bukidnon', '1', '0.00000'), ('2568', '168', 'BUL', 'Bulacan', '1', '0.00000'), ('2569', '168', 'CAG', 'Cagayan', '1', '0.00000'), ('2570', '168', 'CNO', 'Camarines Norte', '1', '0.00000'), ('2571', '168', 'CSU', 'Camarines Sur', '1', '0.00000'), ('2572', '168', 'CAM', 'Camiguin', '1', '0.00000'), ('2573', '168', 'CAP', 'Capiz', '1', '0.00000'), ('2574', '168', 'CAT', 'Catanduanes', '1', '0.00000'), ('2575', '168', 'CAV', 'Cavite', '1', '0.00000'), ('2576', '168', 'CEB', 'Cebu', '1', '0.00000'), ('2577', '168', 'CMP', 'Compostela', '1', '0.00000'), ('2578', '168', 'DNO', 'Davao del Norte', '1', '0.00000'), ('2579', '168', 'DSU', 'Davao del Sur', '1', '0.00000'), ('2580', '168', 'DOR', 'Davao Oriental', '1', '0.00000'), ('2581', '168', 'ESA', 'Eastern Samar', '1', '0.00000'), ('2582', '168', 'GUI', 'Guimaras', '1', '0.00000'), ('2583', '168', 'IFU', 'Ifugao', '1', '0.00000'), ('2584', '168', 'INO', 'Ilocos Norte', '1', '0.00000'), ('2585', '168', 'ISU', 'Ilocos Sur', '1', '0.00000'), ('2586', '168', 'ILO', 'Iloilo', '1', '0.00000'), ('2587', '168', 'ISA', 'Isabela', '1', '0.00000'), ('2588', '168', 'KAL', 'Kalinga', '1', '0.00000'), ('2589', '168', 'LAG', 'Laguna', '1', '0.00000'), ('2590', '168', 'LNO', 'Lanao del Norte', '1', '0.00000'), ('2591', '168', 'LSU', 'Lanao del Sur', '1', '0.00000'), ('2592', '168', 'UNI', 'La Union', '1', '0.00000'), ('2593', '168', 'LEY', 'Leyte', '1', '0.00000'), ('2594', '168', 'MAG', 'Maguindanao', '1', '0.00000'), ('2595', '168', 'MRN', 'Marinduque', '1', '0.00000'), ('2596', '168', 'MSB', 'Masbate', '1', '0.00000'), ('2597', '168', 'MIC', 'Mindoro Occidental', '1', '0.00000'), ('2598', '168', 'MIR', 'Mindoro Oriental', '1', '0.00000'), ('2599', '168', 'MSC', 'Misamis Occidental', '1', '0.00000'), ('2600', '168', 'MOR', 'Misamis Oriental', '1', '0.00000'), ('2601', '168', 'MOP', 'Mountain', '1', '0.00000'), ('2602', '168', 'NOC', 'Negros Occidental', '1', '0.00000'), ('2603', '168', 'NOR', 'Negros Oriental', '1', '0.00000'), ('2604', '168', 'NCT', 'North Cotabato', '1', '0.00000'), ('2605', '168', 'NSM', 'Northern Samar', '1', '0.00000'), ('2606', '168', 'NEC', 'Nueva Ecija', '1', '0.00000'), ('2607', '168', 'NVZ', 'Nueva Vizcaya', '1', '0.00000'), ('2608', '168', 'PLW', 'Palawan', '1', '0.00000'), ('2609', '168', 'PMP', 'Pampanga', '1', '0.00000'), ('2610', '168', 'PNG', 'Pangasinan', '1', '0.00000'), ('2611', '168', 'QZN', 'Quezon', '1', '0.00000'), ('2612', '168', 'QRN', 'Quirino', '1', '0.00000'), ('2613', '168', 'RIZ', 'Rizal', '1', '0.00000'), ('2614', '168', 'ROM', 'Romblon', '1', '0.00000'), ('2615', '168', 'SMR', 'Samar', '1', '0.00000'), ('2616', '168', 'SRG', 'Sarangani', '1', '0.00000'), ('2617', '168', 'SQJ', 'Siquijor', '1', '0.00000'), ('2618', '168', 'SRS', 'Sorsogon', '1', '0.00000'), ('2619', '168', 'SCO', 'South Cotabato', '1', '0.00000'), ('2620', '168', 'SLE', 'Southern Leyte', '1', '0.00000'), ('2621', '168', 'SKU', 'Sultan Kudarat', '1', '0.00000'), ('2622', '168', 'SLU', 'Sulu', '1', '0.00000'), ('2623', '168', 'SNO', 'Surigao del Norte', '1', '0.00000'), ('2624', '168', 'SSU', 'Surigao del Sur', '1', '0.00000'), ('2625', '168', 'TAR', 'Tarlac', '1', '0.00000'), ('2626', '168', 'TAW', 'Tawi-Tawi', '1', '0.00000'), ('2627', '168', 'ZBL', 'Zambales', '1', '0.00000'), ('2628', '168', 'ZNO', 'Zamboanga del Norte', '1', '0.00000'), ('2629', '168', 'ZSU', 'Zamboanga del Sur', '1', '0.00000'), ('2630', '168', 'ZSI', 'Zamboanga Sibugay', '1', '0.00000'), ('2631', '170', 'DO', 'Dolnoslaskie', '1', '0.00000'), ('2632', '170', 'KP', 'Kujawsko-Pomorskie', '1', '0.00000'), ('2633', '170', 'LO', 'Lodzkie', '1', '0.00000'), ('2634', '170', 'LL', 'Lubelskie', '1', '0.00000'), ('2635', '170', 'LU', 'Lubuskie', '1', '0.00000'), ('2636', '170', 'ML', 'Malopolskie', '1', '0.00000'), ('2637', '170', 'MZ', 'Mazowieckie', '1', '0.00000'), ('2638', '170', 'OP', 'Opolskie', '1', '0.00000'), ('2639', '170', 'PP', 'Podkarpackie', '1', '0.00000'), ('2640', '170', 'PL', 'Podlaskie', '1', '0.00000'), ('2641', '170', 'PM', 'Pomorskie', '1', '0.00000'), ('2642', '170', 'SL', 'Slaskie', '1', '0.00000'), ('2643', '170', 'SW', 'Swietokrzyskie', '1', '0.00000'), ('2644', '170', 'WM', 'Warminsko-Mazurskie', '1', '0.00000'), ('2645', '170', 'WP', 'Wielkopolskie', '1', '0.00000'), ('2646', '170', 'ZA', 'Zachodniopomorskie', '1', '0.00000'), ('2647', '198', 'P', 'Saint Pierre', '1', '0.00000'), ('2648', '198', 'M', 'Miquelon', '1', '0.00000'), ('2649', '171', 'AC', 'Açores', '1', '0.00000'), ('2650', '171', 'AV', 'Aveiro', '1', '0.00000'), ('2651', '171', 'BE', 'Beja', '1', '0.00000'), ('2652', '171', 'BR', 'Braga', '1', '0.00000'), ('2653', '171', 'BA', 'Bragança', '1', '0.00000'), ('2654', '171', 'CB', 'Castelo Branco', '1', '0.00000'), ('2655', '171', 'CO', 'Coimbra', '1', '0.00000'), ('2656', '171', 'EV', 'Évora', '1', '0.00000'), ('2657', '171', 'FA', 'Faro', '1', '0.00000'), ('2658', '171', 'GU', 'Guarda', '1', '0.00000'), ('2659', '171', 'LE', 'Leiria', '1', '0.00000'), ('2660', '171', 'LI', 'Lisboa', '1', '0.00000'), ('2661', '171', 'ME', 'Madeira', '1', '0.00000'), ('2662', '171', 'PO', 'Portalegre', '1', '0.00000'), ('2663', '171', 'PR', 'Porto', '1', '0.00000'), ('2664', '171', 'SA', 'Santarém', '1', '0.00000'), ('2665', '171', 'SE', 'Setúbal', '1', '0.00000'), ('2666', '171', 'VC', 'Viana do Castelo', '1', '0.00000'), ('2667', '171', 'VR', 'Vila Real', '1', '0.00000'), ('2668', '171', 'VI', 'Viseu', '1', '0.00000'), ('2669', '173', 'DW', 'Ad Dawhah', '1', '0.00000'), ('2670', '173', 'GW', 'Al Ghuwayriyah', '1', '0.00000'), ('2671', '173', 'JM', 'Al Jumayliyah', '1', '0.00000'), ('2672', '173', 'KR', 'Al Khawr', '1', '0.00000'), ('2673', '173', 'WK', 'Al Wakrah', '1', '0.00000'), ('2674', '173', 'RN', 'Ar Rayyan', '1', '0.00000'), ('2675', '173', 'JB', 'Jarayan al Batinah', '1', '0.00000'), ('2676', '173', 'MS', 'Madinat ash Shamal', '1', '0.00000'), ('2677', '173', 'UD', 'Umm Sa\'id', '1', '0.00000'), ('2678', '173', 'UL', 'Umm Salal', '1', '0.00000'), ('2679', '175', 'AB', 'Alba', '1', '0.00000'), ('2680', '175', 'AR', 'Arad', '1', '0.00000'), ('2681', '175', 'AG', 'Arges', '1', '0.00000'), ('2682', '175', 'BC', 'Bacau', '1', '0.00000'), ('2683', '175', 'BH', 'Bihor', '1', '0.00000'), ('2684', '175', 'BN', 'Bistrita-Nasaud', '1', '0.00000'), ('2685', '175', 'BT', 'Botosani', '1', '0.00000'), ('2686', '175', 'BV', 'Brasov', '1', '0.00000'), ('2687', '175', 'BR', 'Braila', '1', '0.00000'), ('2688', '175', 'B', 'Bucuresti', '1', '0.00000'), ('2689', '175', 'BZ', 'Buzau', '1', '0.00000'), ('2690', '175', 'CS', 'Caras-Severin', '1', '0.00000'), ('2691', '175', 'CL', 'Calarasi', '1', '0.00000'), ('2692', '175', 'CJ', 'Cluj', '1', '0.00000'), ('2693', '175', 'CT', 'Constanta', '1', '0.00000'), ('2694', '175', 'CV', 'Covasna', '1', '0.00000'), ('2695', '175', 'DB', 'Dimbovita', '1', '0.00000'), ('2696', '175', 'DJ', 'Dolj', '1', '0.00000'), ('2697', '175', 'GL', 'Galati', '1', '0.00000'), ('2698', '175', 'GR', 'Giurgiu', '1', '0.00000'), ('2699', '175', 'GJ', 'Gorj', '1', '0.00000'), ('2700', '175', 'HR', 'Harghita', '1', '0.00000'), ('2701', '175', 'HD', 'Hunedoara', '1', '0.00000'), ('2702', '175', 'IL', 'Ialomita', '1', '0.00000'), ('2703', '175', 'IS', 'Iasi', '1', '0.00000'), ('2704', '175', 'IF', 'Ilfov', '1', '0.00000'), ('2705', '175', 'MM', 'Maramures', '1', '0.00000'), ('2706', '175', 'MH', 'Mehedinti', '1', '0.00000'), ('2707', '175', 'MS', 'Mures', '1', '0.00000'), ('2708', '175', 'NT', 'Neamt', '1', '0.00000'), ('2709', '175', 'OT', 'Olt', '1', '0.00000'), ('2710', '175', 'PH', 'Prahova', '1', '0.00000'), ('2711', '175', 'SM', 'Satu-Mare', '1', '0.00000'), ('2712', '175', 'SJ', 'Salaj', '1', '0.00000'), ('2713', '175', 'SB', 'Sibiu', '1', '0.00000'), ('2714', '175', 'SV', 'Suceava', '1', '0.00000'), ('2715', '175', 'TR', 'Teleorman', '1', '0.00000'), ('2716', '175', 'TM', 'Timis', '1', '0.00000'), ('2717', '175', 'TL', 'Tulcea', '1', '0.00000'), ('2718', '175', 'VS', 'Vaslui', '1', '0.00000'), ('2719', '175', 'VL', 'Valcea', '1', '0.00000'), ('2720', '175', 'VN', 'Vrancea', '1', '0.00000'), ('2721', '176', 'AB', 'Abakan', '1', '0.00000'), ('2722', '176', 'AG', 'Aginskoye', '1', '0.00000'), ('2723', '176', 'AN', 'Anadyr', '1', '0.00000'), ('2724', '176', 'AR', 'Arkahangelsk', '1', '0.00000'), ('2725', '176', 'AS', 'Astrakhan', '1', '0.00000'), ('2726', '176', 'BA', 'Barnaul', '1', '0.00000'), ('2727', '176', 'BE', 'Belgorod', '1', '0.00000'), ('2728', '176', 'BI', 'Birobidzhan', '1', '0.00000'), ('2729', '176', 'BL', 'Blagoveshchensk', '1', '0.00000'), ('2730', '176', 'BR', 'Bryansk', '1', '0.00000'), ('2731', '176', 'CH', 'Cheboksary', '1', '0.00000'), ('2732', '176', 'CL', 'Chelyabinsk', '1', '0.00000'), ('2733', '176', 'CR', 'Cherkessk', '1', '0.00000'), ('2734', '176', 'CI', 'Chita', '1', '0.00000'), ('2735', '176', 'DU', 'Dudinka', '1', '0.00000'), ('2736', '176', 'EL', 'Elista', '1', '0.00000'), ('2737', '176', 'GO', 'Gomo-Altaysk', '1', '0.00000'), ('2738', '176', 'GA', 'Gorno-Altaysk', '1', '0.00000'), ('2739', '176', 'GR', 'Groznyy', '1', '0.00000'), ('2740', '176', 'IR', 'Irkutsk', '1', '0.00000'), ('2741', '176', 'IV', 'Ivanovo', '1', '0.00000'), ('2742', '176', 'IZ', 'Izhevsk', '1', '0.00000'), ('2743', '176', 'KA', 'Kalinigrad', '1', '0.00000'), ('2744', '176', 'KL', 'Kaluga', '1', '0.00000'), ('2745', '176', 'KS', 'Kasnodar', '1', '0.00000'), ('2746', '176', 'KZ', 'Kazan', '1', '0.00000'), ('2747', '176', 'KE', 'Kemerovo', '1', '0.00000'), ('2748', '176', 'KH', 'Khabarovsk', '1', '0.00000'), ('2749', '176', 'KM', 'Khanty-Mansiysk', '1', '0.00000'), ('2750', '176', 'KO', 'Kostroma', '1', '0.00000'), ('2751', '176', 'KR', 'Krasnodar', '1', '0.00000'), ('2752', '176', 'KN', 'Krasnoyarsk', '1', '0.00000'), ('2753', '176', 'KU', 'Kudymkar', '1', '0.00000'), ('2754', '176', 'KG', 'Kurgan', '1', '0.00000'), ('2755', '176', 'KK', 'Kursk', '1', '0.00000'), ('2756', '176', 'KY', 'Kyzyl', '1', '0.00000'), ('2757', '176', 'LI', 'Lipetsk', '1', '0.00000'), ('2758', '176', 'MA', 'Magadan', '1', '0.00000'), ('2759', '176', 'MK', 'Makhachkala', '1', '0.00000'), ('2760', '176', 'MY', 'Maykop', '1', '0.00000'), ('2761', '176', 'MO', 'Moscow', '1', '0.00000'), ('2762', '176', 'MU', 'Murmansk', '1', '0.00000'), ('2763', '176', 'NA', 'Nalchik', '1', '0.00000'), ('2764', '176', 'NR', 'Naryan Mar', '1', '0.00000'), ('2765', '176', 'NZ', 'Nazran', '1', '0.00000'), ('2766', '176', 'NI', 'Nizhniy Novgorod', '1', '0.00000'), ('2767', '176', 'NO', 'Novgorod', '1', '0.00000'), ('2768', '176', 'NV', 'Novosibirsk', '1', '0.00000'), ('2769', '176', 'OM', 'Omsk', '1', '0.00000'), ('2770', '176', 'OR', 'Orel', '1', '0.00000'), ('2771', '176', 'OE', 'Orenburg', '1', '0.00000'), ('2772', '176', 'PA', 'Palana', '1', '0.00000'), ('2773', '176', 'PE', 'Penza', '1', '0.00000'), ('2774', '176', 'PR', 'Perm', '1', '0.00000'), ('2775', '176', 'PK', 'Petropavlovsk-Kamchatskiy', '1', '0.00000'), ('2776', '176', 'PT', 'Petrozavodsk', '1', '0.00000'), ('2777', '176', 'PS', 'Pskov', '1', '0.00000'), ('2778', '176', 'RO', 'Rostov-na-Donu', '1', '0.00000'), ('2779', '176', 'RY', 'Ryazan', '1', '0.00000'), ('2780', '176', 'SL', 'Salekhard', '1', '0.00000'), ('2781', '176', 'SA', 'Samara', '1', '0.00000'), ('2782', '176', 'SR', 'Saransk', '1', '0.00000'), ('2783', '176', 'SV', 'Saratov', '1', '0.00000'), ('2784', '176', 'SM', 'Smolensk', '1', '0.00000'), ('2785', '176', 'SP', 'St. Petersburg', '1', '0.00000'), ('2786', '176', 'ST', 'Stavropol', '1', '0.00000'), ('2787', '176', 'SY', 'Syktyvkar', '1', '0.00000'), ('2788', '176', 'TA', 'Tambov', '1', '0.00000'), ('2789', '176', 'TO', 'Tomsk', '1', '0.00000'), ('2790', '176', 'TU', 'Tula', '1', '0.00000'), ('2791', '176', 'TR', 'Tura', '1', '0.00000'), ('2792', '176', 'TV', 'Tver', '1', '0.00000'), ('2793', '176', 'TY', 'Tyumen', '1', '0.00000'), ('2794', '176', 'UF', 'Ufa', '1', '0.00000'), ('2795', '176', 'UL', 'Ul\'yanovsk', '1', '0.00000'), ('2796', '176', 'UU', 'Ulan-Ude', '1', '0.00000'), ('2797', '176', 'US', 'Ust\'-Ordynskiy', '1', '0.00000'), ('2798', '176', 'VL', 'Vladikavkaz', '1', '0.00000'), ('2799', '176', 'VA', 'Vladimir', '1', '0.00000'), ('2800', '176', 'VV', 'Vladivostok', '1', '0.00000'), ('2801', '176', 'VG', 'Volgograd', '1', '0.00000'), ('2802', '176', 'VD', 'Vologda', '1', '0.00000'), ('2803', '176', 'VO', 'Voronezh', '1', '0.00000'), ('2804', '176', 'VY', 'Vyatka', '1', '0.00000'), ('2805', '176', 'YA', 'Yakutsk', '1', '0.00000'), ('2806', '176', 'YR', 'Yaroslavl', '1', '0.00000'), ('2807', '176', 'YE', 'Yekaterinburg', '1', '0.00000'), ('2808', '176', 'YO', 'Yoshkar-Ola', '1', '0.00000'), ('2809', '177', 'BU', 'Butare', '1', '0.00000'), ('2810', '177', 'BY', 'Byumba', '1', '0.00000'), ('2811', '177', 'CY', 'Cyangugu', '1', '0.00000'), ('2812', '177', 'GK', 'Gikongoro', '1', '0.00000'), ('2813', '177', 'GS', 'Gisenyi', '1', '0.00000'), ('2814', '177', 'GT', 'Gitarama', '1', '0.00000'), ('2815', '177', 'KG', 'Kibungo', '1', '0.00000'), ('2816', '177', 'KY', 'Kibuye', '1', '0.00000'), ('2817', '177', 'KR', 'Kigali Rurale', '1', '0.00000'), ('2818', '177', 'KV', 'Kigali-ville', '1', '0.00000'), ('2819', '177', 'RU', 'Ruhengeri', '1', '0.00000'), ('2820', '177', 'UM', 'Umutara', '1', '0.00000'), ('2821', '178', 'CCN', 'Christ Church Nichola Town', '1', '0.00000'), ('2822', '178', 'SAS', 'Saint Anne Sandy Point', '1', '0.00000'), ('2823', '178', 'SGB', 'Saint George Basseterre', '1', '0.00000'), ('2824', '178', 'SGG', 'Saint George Gingerland', '1', '0.00000'), ('2825', '178', 'SJW', 'Saint James Windward', '1', '0.00000'), ('2826', '178', 'SJC', 'Saint John Capesterre', '1', '0.00000'), ('2827', '178', 'SJF', 'Saint John Figtree', '1', '0.00000'), ('2828', '178', 'SMC', 'Saint Mary Cayon', '1', '0.00000'), ('2829', '178', 'CAP', 'Saint Paul Capesterre', '1', '0.00000'), ('2830', '178', 'CHA', 'Saint Paul Charlestown', '1', '0.00000'), ('2831', '178', 'SPB', 'Saint Peter Basseterre', '1', '0.00000'), ('2832', '178', 'STL', 'Saint Thomas Lowland', '1', '0.00000'), ('2833', '178', 'STM', 'Saint Thomas Middle Island', '1', '0.00000'), ('2834', '178', 'TPP', 'Trinity Palmetto Point', '1', '0.00000'), ('2835', '179', 'AR', 'Anse-la-Raye', '1', '0.00000'), ('2836', '179', 'CA', 'Castries', '1', '0.00000'), ('2837', '179', 'CH', 'Choiseul', '1', '0.00000'), ('2838', '179', 'DA', 'Dauphin', '1', '0.00000'), ('2839', '179', 'DE', 'Dennery', '1', '0.00000'), ('2840', '179', 'GI', 'Gros-Islet', '1', '0.00000'), ('2841', '179', 'LA', 'Laborie', '1', '0.00000'), ('2842', '179', 'MI', 'Micoud', '1', '0.00000'), ('2843', '179', 'PR', 'Praslin', '1', '0.00000'), ('2844', '179', 'SO', 'Soufriere', '1', '0.00000'), ('2845', '179', 'VF', 'Vieux-Fort', '1', '0.00000'), ('2846', '180', 'C', 'Charlotte', '1', '0.00000'), ('2847', '180', 'R', 'Grenadines', '1', '0.00000'), ('2848', '180', 'A', 'Saint Andrew', '1', '0.00000'), ('2849', '180', 'D', 'Saint David', '1', '0.00000'), ('2850', '180', 'G', 'Saint George', '1', '0.00000'), ('2851', '180', 'P', 'Saint Patrick', '1', '0.00000'), ('2852', '181', 'AN', 'A\'ana', '1', '0.00000'), ('2853', '181', 'AI', 'Aiga-i-le-Tai', '1', '0.00000'), ('2854', '181', 'AT', 'Atua', '1', '0.00000'), ('2855', '181', 'FA', 'Fa\'asaleleaga', '1', '0.00000'), ('2856', '181', 'GE', 'Gaga\'emauga', '1', '0.00000'), ('2857', '181', 'GF', 'Gagaifomauga', '1', '0.00000'), ('2858', '181', 'PA', 'Palauli', '1', '0.00000'), ('2859', '181', 'SA', 'Satupa\'itea', '1', '0.00000'), ('2860', '181', 'TU', 'Tuamasaga', '1', '0.00000'), ('2861', '181', 'VF', 'Va\'a-o-Fonoti', '1', '0.00000'), ('2862', '181', 'VS', 'Vaisigano', '1', '0.00000'), ('2863', '182', 'AC', 'Acquaviva', '1', '0.00000'), ('2864', '182', 'BM', 'Borgo Maggiore', '1', '0.00000'), ('2865', '182', 'CH', 'Chiesanuova', '1', '0.00000'), ('2866', '182', 'DO', 'Domagnano', '1', '0.00000'), ('2867', '182', 'FA', 'Faetano', '1', '0.00000'), ('2868', '182', 'FI', 'Fiorentino', '1', '0.00000'), ('2869', '182', 'MO', 'Montegiardino', '1', '0.00000'), ('2870', '182', 'SM', 'Citta di San Marino', '1', '0.00000'), ('2871', '182', 'SE', 'Serravalle', '1', '0.00000'), ('2872', '183', 'S', 'Sao Tome', '1', '0.00000'), ('2873', '183', 'P', 'Principe', '1', '0.00000'), ('2874', '184', 'BH', 'Al Bahah', '1', '0.00000'), ('2875', '184', 'HS', 'Al Hudud ash Shamaliyah', '1', '0.00000'), ('2876', '184', 'JF', 'Al Jawf', '1', '0.00000'), ('2877', '184', 'MD', 'Al Madinah', '1', '0.00000'), ('2878', '184', 'QS', 'Al Qasim', '1', '0.00000'), ('2879', '184', 'RD', 'Ar Riyad', '1', '0.00000'), ('2880', '184', 'AQ', 'Ash Sharqiyah (Eastern)', '1', '0.00000'), ('2881', '184', 'AS', '\'Asir', '1', '0.00000'), ('2882', '184', 'HL', 'Ha\'il', '1', '0.00000'), ('2883', '184', 'JZ', 'Jizan', '1', '0.00000'), ('2884', '184', 'ML', 'Makkah', '1', '0.00000'), ('2885', '184', 'NR', 'Najran', '1', '0.00000'), ('2886', '184', 'TB', 'Tabuk', '1', '0.00000'), ('2887', '185', 'DA', 'Dakar', '1', '0.00000'), ('2888', '185', 'DI', 'Diourbel', '1', '0.00000'), ('2889', '185', 'FA', 'Fatick', '1', '0.00000'), ('2890', '185', 'KA', 'Kaolack', '1', '0.00000'), ('2891', '185', 'KO', 'Kolda', '1', '0.00000'), ('2892', '185', 'LO', 'Louga', '1', '0.00000'), ('2893', '185', 'MA', 'Matam', '1', '0.00000'), ('2894', '185', 'SL', 'Saint-Louis', '1', '0.00000'), ('2895', '185', 'TA', 'Tambacounda', '1', '0.00000'), ('2896', '185', 'TH', 'Thies', '1', '0.00000'), ('2897', '185', 'ZI', 'Ziguinchor', '1', '0.00000'), ('2898', '186', 'AP', 'Anse aux Pins', '1', '0.00000'), ('2899', '186', 'AB', 'Anse Boileau', '1', '0.00000'), ('2900', '186', 'AE', 'Anse Etoile', '1', '0.00000'), ('2901', '186', 'AL', 'Anse Louis', '1', '0.00000'), ('2902', '186', 'AR', 'Anse Royale', '1', '0.00000'), ('2903', '186', 'BL', 'Baie Lazare', '1', '0.00000'), ('2904', '186', 'BS', 'Baie Sainte Anne', '1', '0.00000'), ('2905', '186', 'BV', 'Beau Vallon', '1', '0.00000'), ('2906', '186', 'BA', 'Bel Air', '1', '0.00000'), ('2907', '186', 'BO', 'Bel Ombre', '1', '0.00000'), ('2908', '186', 'CA', 'Cascade', '1', '0.00000'), ('2909', '186', 'GL', 'Glacis', '1', '0.00000'), ('2910', '186', 'GM', 'Grand\' Anse (on Mahe)', '1', '0.00000'), ('2911', '186', 'GP', 'Grand\' Anse (on Praslin)', '1', '0.00000'), ('2912', '186', 'DG', 'La Digue', '1', '0.00000'), ('2913', '186', 'RA', 'La Riviere Anglaise', '1', '0.00000'), ('2914', '186', 'MB', 'Mont Buxton', '1', '0.00000'), ('2915', '186', 'MF', 'Mont Fleuri', '1', '0.00000'), ('2916', '186', 'PL', 'Plaisance', '1', '0.00000'), ('2917', '186', 'PR', 'Pointe La Rue', '1', '0.00000'), ('2918', '186', 'PG', 'Port Glaud', '1', '0.00000'), ('2919', '186', 'SL', 'Saint Louis', '1', '0.00000'), ('2920', '186', 'TA', 'Takamaka', '1', '0.00000'), ('2921', '187', 'E', 'Eastern', '1', '0.00000'), ('2922', '187', 'N', 'Northern', '1', '0.00000'), ('2923', '187', 'S', 'Southern', '1', '0.00000'), ('2924', '187', 'W', 'Western', '1', '0.00000'), ('2925', '189', 'BA', 'Banskobystrick√Ω', '1', '0.00000'), ('2926', '189', 'BR', 'Bratislavsk√Ω', '1', '0.00000'), ('2927', '189', 'KO', 'Košick√Ω', '1', '0.00000'), ('2928', '189', 'NI', 'Nitriansky', '1', '0.00000'), ('2929', '189', 'PR', 'Prešovsk√Ω', '1', '0.00000'), ('2930', '189', 'TC', 'Trenčiansky', '1', '0.00000'), ('2931', '189', 'TV', 'Trnavsk√Ω', '1', '0.00000'), ('2932', '189', 'ZI', '≈Ωilinsk√Ω', '1', '0.00000'), ('2933', '191', 'CE', 'Central', '1', '0.00000'), ('2934', '191', 'CH', 'Choiseul', '1', '0.00000'), ('2935', '191', 'GC', 'Guadalcanal', '1', '0.00000'), ('2936', '191', 'HO', 'Honiara', '1', '0.00000'), ('2937', '191', 'IS', 'Isabel', '1', '0.00000'), ('2938', '191', 'MK', 'Makira', '1', '0.00000'), ('2939', '191', 'ML', 'Malaita', '1', '0.00000'), ('2940', '191', 'RB', 'Rennell and Bellona', '1', '0.00000'), ('2941', '191', 'TM', 'Temotu', '1', '0.00000'), ('2942', '191', 'WE', 'Western', '1', '0.00000'), ('2943', '192', 'AW', 'Awdal', '1', '0.00000'), ('2944', '192', 'BK', 'Bakool', '1', '0.00000'), ('2945', '192', 'BN', 'Banaadir', '1', '0.00000'), ('2946', '192', 'BR', 'Bari', '1', '0.00000'), ('2947', '192', 'BY', 'Bay', '1', '0.00000'), ('2948', '192', 'GA', 'Galguduud', '1', '0.00000'), ('2949', '192', 'GE', 'Gedo', '1', '0.00000'), ('2950', '192', 'HI', 'Hiiraan', '1', '0.00000'), ('2951', '192', 'JD', 'Jubbada Dhexe', '1', '0.00000'), ('2952', '192', 'JH', 'Jubbada Hoose', '1', '0.00000'), ('2953', '192', 'MU', 'Mudug', '1', '0.00000'), ('2954', '192', 'NU', 'Nugaal', '1', '0.00000'), ('2955', '192', 'SA', 'Sanaag', '1', '0.00000'), ('2956', '192', 'SD', 'Shabeellaha Dhexe', '1', '0.00000'), ('2957', '192', 'SH', 'Shabeellaha Hoose', '1', '0.00000'), ('2958', '192', 'SL', 'Sool', '1', '0.00000'), ('2959', '192', 'TO', 'Togdheer', '1', '0.00000'), ('2960', '192', 'WG', 'Woqooyi Galbeed', '1', '0.00000'), ('2961', '193', 'EC', 'Eastern Cape', '1', '0.00000'), ('2962', '193', 'FS', 'Free State', '1', '0.00000'), ('2963', '193', 'GT', 'Gauteng', '1', '0.00000'), ('2964', '193', 'KN', 'KwaZulu-Natal', '1', '0.00000'), ('2965', '193', 'LP', 'Limpopo', '1', '0.00000'), ('2966', '193', 'MP', 'Mpumalanga', '1', '0.00000'), ('2967', '193', 'NW', 'North West', '1', '0.00000'), ('2968', '193', 'NC', 'Northern Cape', '1', '0.00000'), ('2969', '193', 'WC', 'Western Cape', '1', '0.00000'), ('2970', '195', 'CA', 'La Coruña', '1', '0.00000'), ('2971', '195', 'AL', 'Álava', '1', '0.00000'), ('2972', '195', 'AB', 'Albacete', '1', '0.00000'), ('2973', '195', 'AC', 'Alicante', '1', '0.00000'), ('2974', '195', 'AM', 'Almeria', '1', '0.00000'), ('2975', '195', 'AS', 'Asturias', '1', '0.00000'), ('2976', '195', 'AV', 'Ávila', '1', '0.00000'), ('2977', '195', 'BJ', 'Badajoz', '1', '0.00000'), ('2978', '195', 'IB', 'Baleares', '1', '0.00000'), ('2979', '195', 'BA', 'Barcelona', '1', '0.00000'), ('2980', '195', 'BU', 'Burgos', '1', '0.00000'), ('2981', '195', 'CC', 'Cáceres', '1', '0.00000'), ('2982', '195', 'CZ', 'Cádiz', '1', '0.00000'), ('2983', '195', 'CT', 'Cantabria', '1', '0.00000'), ('2984', '195', 'CL', 'Castellón', '1', '0.00000'), ('2985', '195', 'CE', 'Ceuta', '1', '0.00000'), ('2986', '195', 'CR', 'Ciudad Real', '1', '0.00000'), ('2987', '195', 'CD', 'Córdoba', '1', '0.00000'), ('2988', '195', 'CU', 'Cuenca', '1', '0.00000'), ('2989', '195', 'GI', 'Girona', '1', '0.00000'), ('2990', '195', 'GD', 'Granada', '1', '0.00000'), ('2991', '195', 'GJ', 'Guadalajara', '1', '0.00000'), ('2992', '195', 'GP', 'Guipúzcoa', '1', '0.00000'), ('2993', '195', 'HL', 'Huelva', '1', '0.00000'), ('2994', '195', 'HS', 'Huesca', '1', '0.00000'), ('2995', '195', 'JN', 'Jaén', '1', '0.00000'), ('2996', '195', 'RJ', 'La Rioja', '1', '0.00000'), ('2997', '195', 'PM', 'Las Palmas', '1', '0.00000'), ('2998', '195', 'LE', 'Leon', '1', '0.00000'), ('2999', '195', 'LL', 'Lleida', '1', '0.00000'), ('3000', '195', 'LG', 'Lugo', '1', '0.00000'), ('3001', '195', 'MD', 'Madrid', '1', '0.00000'), ('3002', '195', 'MA', 'Malaga', '1', '0.00000'), ('3003', '195', 'ML', 'Melilla', '1', '0.00000'), ('3004', '195', 'MU', 'Murcia', '1', '0.00000'), ('3005', '195', 'NV', 'Navarra', '1', '0.00000'), ('3006', '195', 'OU', 'Ourense', '1', '0.00000'), ('3007', '195', 'PL', 'Palencia', '1', '0.00000'), ('3008', '195', 'PO', 'Pontevedra', '1', '0.00000'), ('3009', '195', 'SL', 'Salamanca', '1', '0.00000'), ('3010', '195', 'SC', 'Santa Cruz de Tenerife', '1', '0.00000'), ('3011', '195', 'SG', 'Segovia', '1', '0.00000'), ('3012', '195', 'SV', 'Sevilla', '1', '0.00000'), ('3013', '195', 'SO', 'Soria', '1', '0.00000'), ('3014', '195', 'TA', 'Tarragona', '1', '0.00000'), ('3015', '195', 'TE', 'Teruel', '1', '0.00000'), ('3016', '195', 'TO', 'Toledo', '1', '0.00000'), ('3017', '195', 'VC', 'Valencia', '1', '0.00000'), ('3018', '195', 'VD', 'Valladolid', '1', '0.00000'), ('3019', '195', 'VZ', 'Vizcaya', '1', '0.00000'), ('3020', '195', 'ZM', 'Zamora', '1', '0.00000'), ('3021', '195', 'ZR', 'Zaragoza', '1', '0.00000'), ('3022', '196', 'CE', 'Central', '1', '0.00000'), ('3023', '196', 'EA', 'Eastern', '1', '0.00000'), ('3024', '196', 'NC', 'North Central', '1', '0.00000'), ('3025', '196', 'NO', 'Northern', '1', '0.00000'), ('3026', '196', 'NW', 'North Western', '1', '0.00000'), ('3027', '196', 'SA', 'Sabaragamuwa', '1', '0.00000'), ('3028', '196', 'SO', 'Southern', '1', '0.00000'), ('3029', '196', 'UV', 'Uva', '1', '0.00000'), ('3030', '196', 'WE', 'Western', '1', '0.00000'), ('3031', '197', 'A', 'Ascension', '1', '0.00000'), ('3032', '197', 'S', 'Saint Helena', '1', '0.00000'), ('3033', '197', 'T', 'Tristan da Cunha', '1', '0.00000'), ('3034', '199', 'ANL', 'A\'ali an Nil', '1', '0.00000'), ('3035', '199', 'BAM', 'Al Bahr al Ahmar', '1', '0.00000'), ('3036', '199', 'BRT', 'Al Buhayrat', '1', '0.00000'), ('3037', '199', 'JZR', 'Al Jazirah', '1', '0.00000'), ('3038', '199', 'KRT', 'Al Khartum', '1', '0.00000'), ('3039', '199', 'QDR', 'Al Qadarif', '1', '0.00000'), ('3040', '199', 'WDH', 'Al Wahdah', '1', '0.00000'), ('3041', '199', 'ANB', 'An Nil al Abyad', '1', '0.00000'), ('3042', '199', 'ANZ', 'An Nil al Azraq', '1', '0.00000'), ('3043', '199', 'ASH', 'Ash Shamaliyah', '1', '0.00000'), ('3044', '199', 'BJA', 'Bahr al Jabal', '1', '0.00000'), ('3045', '199', 'GIS', 'Gharb al Istiwa\'iyah', '1', '0.00000'), ('3046', '199', 'GBG', 'Gharb Bahr al Ghazal', '1', '0.00000'), ('3047', '199', 'GDA', 'Gharb Darfur', '1', '0.00000'), ('3048', '199', 'GKU', 'Gharb Kurdufan', '1', '0.00000'), ('3049', '199', 'JDA', 'Janub Darfur', '1', '0.00000'), ('3050', '199', 'JKU', 'Janub Kurdufan', '1', '0.00000'), ('3051', '199', 'JQL', 'Junqali', '1', '0.00000'), ('3052', '199', 'KSL', 'Kassala', '1', '0.00000'), ('3053', '199', 'NNL', 'Nahr an Nil', '1', '0.00000'), ('3054', '199', 'SBG', 'Shamal Bahr al Ghazal', '1', '0.00000'), ('3055', '199', 'SDA', 'Shamal Darfur', '1', '0.00000'), ('3056', '199', 'SKU', 'Shamal Kurdufan', '1', '0.00000'), ('3057', '199', 'SIS', 'Sharq al Istiwa\'iyah', '1', '0.00000'), ('3058', '199', 'SNR', 'Sinnar', '1', '0.00000'), ('3059', '199', 'WRB', 'Warab', '1', '0.00000'), ('3060', '200', 'BR', 'Brokopondo', '1', '0.00000'), ('3061', '200', 'CM', 'Commewijne', '1', '0.00000'), ('3062', '200', 'CR', 'Coronie', '1', '0.00000'), ('3063', '200', 'MA', 'Marowijne', '1', '0.00000'), ('3064', '200', 'NI', 'Nickerie', '1', '0.00000'), ('3065', '200', 'PA', 'Para', '1', '0.00000'), ('3066', '200', 'PM', 'Paramaribo', '1', '0.00000'), ('3067', '200', 'SA', 'Saramacca', '1', '0.00000'), ('3068', '200', 'SI', 'Sipaliwini', '1', '0.00000'), ('3069', '200', 'WA', 'Wanica', '1', '0.00000'), ('3070', '202', 'H', 'Hhohho', '1', '0.00000'), ('3071', '202', 'L', 'Lubombo', '1', '0.00000'), ('3072', '202', 'M', 'Manzini', '1', '0.00000'), ('3073', '202', 'S', 'Shishelweni', '1', '0.00000'), ('3074', '203', 'K', 'Blekinge', '1', '0.00000'), ('3075', '203', 'W', 'Dalama', '1', '0.00000'), ('3076', '203', 'X', 'Gävleborg', '1', '0.00000'), ('3077', '203', 'I', 'Gotland', '1', '0.00000'), ('3078', '203', 'N', 'Halland', '1', '0.00000'), ('3079', '203', 'Z', 'Jämtland', '1', '0.00000'), ('3080', '203', 'F', 'Jönköping', '1', '0.00000'), ('3081', '203', 'H', 'Kalmar', '1', '0.00000'), ('3082', '203', 'G', 'Kronoberg', '1', '0.00000'), ('3083', '203', 'BD', 'Norrbotten', '1', '0.00000'), ('3084', '203', 'T', 'Örebro', '1', '0.00000'), ('3085', '203', 'E', 'Östergötland', '1', '0.00000'), ('3086', '203', 'M', 'Skåne', '1', '0.00000'), ('3087', '203', 'D', 'Södermanland', '1', '0.00000'), ('3088', '203', 'AB', 'Stockholm', '1', '0.00000'), ('3089', '203', 'C', 'Uppsala', '1', '0.00000'), ('3090', '203', 'S', 'Värmland', '1', '0.00000'), ('3091', '203', 'AC', 'Västerbotten', '1', '0.00000'), ('3092', '203', 'Y', 'Västernorrland', '1', '0.00000'), ('3093', '203', 'U', 'Västmanland', '1', '0.00000'), ('3094', '203', 'O', 'Västra Götaland', '1', '0.00000'), ('3095', '204', 'AG', 'Aargau', '1', '0.00000'), ('3096', '204', 'AR', 'Appenzell Ausserrhoden', '1', '0.00000'), ('3097', '204', 'AI', 'Appenzell Innerrhoden', '1', '0.00000'), ('3098', '204', 'BS', 'Basel-Stadt', '1', '0.00000'), ('3099', '204', 'BL', 'Basel-Landschaft', '1', '0.00000'), ('3100', '204', 'BE', 'Bern', '1', '0.00000'), ('3101', '204', 'FR', 'Fribourg', '1', '0.00000'), ('3102', '204', 'GE', 'Genève', '1', '0.00000'), ('3103', '204', 'GL', 'Glarus', '1', '0.00000'), ('3104', '204', 'GR', 'Graubünden', '1', '0.00000'), ('3105', '204', 'JU', 'Jura', '1', '0.00000'), ('3106', '204', 'LU', 'Luzern', '1', '0.00000'), ('3107', '204', 'NE', 'Neuchâtel', '1', '0.00000'), ('3108', '204', 'NW', 'Nidwald', '1', '0.00000'), ('3109', '204', 'OW', 'Obwald', '1', '0.00000'), ('3110', '204', 'SG', 'St. Gallen', '1', '0.00000'), ('3111', '204', 'SH', 'Schaffhausen', '1', '0.00000'), ('3112', '204', 'SZ', 'Schwyz', '1', '0.00000'), ('3113', '204', 'SO', 'Solothurn', '1', '0.00000'), ('3114', '204', 'TG', 'Thurgau', '1', '0.00000'), ('3115', '204', 'TI', 'Ticino', '1', '0.00000'), ('3116', '204', 'UR', 'Uri', '1', '0.00000'), ('3117', '204', 'VS', 'Valais', '1', '0.00000'), ('3118', '204', 'VD', 'Vaud', '1', '0.00000'), ('3119', '204', 'ZG', 'Zug', '1', '0.00000'), ('3120', '204', 'ZH', 'Zürich', '1', '0.00000'), ('3121', '205', 'HA', 'Al Hasakah', '1', '0.00000'), ('3122', '205', 'LA', 'Al Ladhiqiyah', '1', '0.00000'), ('3123', '205', 'QU', 'Al Qunaytirah', '1', '0.00000'), ('3124', '205', 'RQ', 'Ar Raqqah', '1', '0.00000'), ('3125', '205', 'SU', 'As Suwayda', '1', '0.00000'), ('3126', '205', 'DA', 'Dara', '1', '0.00000'), ('3127', '205', 'DZ', 'Dayr az Zawr', '1', '0.00000'), ('3128', '205', 'DI', 'Dimashq', '1', '0.00000'), ('3129', '205', 'HL', 'Halab', '1', '0.00000'), ('3130', '205', 'HM', 'Hamah', '1', '0.00000'), ('3131', '205', 'HI', 'Hims', '1', '0.00000'), ('3132', '205', 'ID', 'Idlib', '1', '0.00000'), ('3133', '205', 'RD', 'Rif Dimashq', '1', '0.00000'), ('3134', '205', 'TA', 'Tartus', '1', '0.00000'), ('3135', '206', 'CH', 'Chang-hua', '1', '0.00000'), ('3136', '206', 'CI', 'Chia-i', '1', '0.00000'), ('3137', '206', 'HS', 'Hsin-chu', '1', '0.00000'), ('3138', '206', 'HL', 'Hua-lien', '1', '0.00000'), ('3139', '206', 'IL', 'I-lan', '1', '0.00000'), ('3140', '206', 'KH', 'Kao-hsiung county', '1', '0.00000'), ('3141', '206', 'KM', 'Kin-men', '1', '0.00000'), ('3142', '206', 'LC', 'Lien-chiang', '1', '0.00000'), ('3143', '206', 'ML', 'Miao-li', '1', '0.00000'), ('3144', '206', 'NT', 'Nan-t\'ou', '1', '0.00000'), ('3145', '206', 'PH', 'P\'eng-hu', '1', '0.00000'), ('3146', '206', 'PT', 'P\'ing-tung', '1', '0.00000'), ('3147', '206', 'TG', 'T\'ai-chung', '1', '0.00000'), ('3148', '206', 'TA', 'T\'ai-nan', '1', '0.00000'), ('3149', '206', 'TP', 'T\'ai-pei county', '1', '0.00000'), ('3150', '206', 'TT', 'T\'ai-tung', '1', '0.00000'), ('3151', '206', 'TY', 'T\'ao-yuan', '1', '0.00000'), ('3152', '206', 'YL', 'Yun-lin', '1', '0.00000'), ('3153', '206', 'CC', 'Chia-i city', '1', '0.00000'), ('3154', '206', 'CL', 'Chi-lung', '1', '0.00000'), ('3155', '206', 'HC', 'Hsin-chu', '1', '0.00000'), ('3156', '206', 'TH', 'T\'ai-chung', '1', '0.00000'), ('3157', '206', 'TN', 'T\'ai-nan', '1', '0.00000'), ('3158', '206', 'KC', 'Kao-hsiung city', '1', '0.00000'), ('3159', '206', 'TC', 'T\'ai-pei city', '1', '0.00000'), ('3160', '207', 'GB', 'Gorno-Badakhstan', '1', '0.00000'), ('3161', '207', 'KT', 'Khatlon', '1', '0.00000'), ('3162', '207', 'SU', 'Sughd', '1', '0.00000'), ('3163', '208', 'AR', 'Arusha', '1', '0.00000'), ('3164', '208', 'DS', 'Dar es Salaam', '1', '0.00000'), ('3165', '208', 'DO', 'Dodoma', '1', '0.00000'), ('3166', '208', 'IR', 'Iringa', '1', '0.00000'), ('3167', '208', 'KA', 'Kagera', '1', '0.00000'), ('3168', '208', 'KI', 'Kigoma', '1', '0.00000'), ('3169', '208', 'KJ', 'Kilimanjaro', '1', '0.00000'), ('3170', '208', 'LN', 'Lindi', '1', '0.00000'), ('3171', '208', 'MY', 'Manyara', '1', '0.00000'), ('3172', '208', 'MR', 'Mara', '1', '0.00000'), ('3173', '208', 'MB', 'Mbeya', '1', '0.00000'), ('3174', '208', 'MO', 'Morogoro', '1', '0.00000'), ('3175', '208', 'MT', 'Mtwara', '1', '0.00000'), ('3176', '208', 'MW', 'Mwanza', '1', '0.00000'), ('3177', '208', 'PN', 'Pemba North', '1', '0.00000'), ('3178', '208', 'PS', 'Pemba South', '1', '0.00000'), ('3179', '208', 'PW', 'Pwani', '1', '0.00000'), ('3180', '208', 'RK', 'Rukwa', '1', '0.00000'), ('3181', '208', 'RV', 'Ruvuma', '1', '0.00000'), ('3182', '208', 'SH', 'Shinyanga', '1', '0.00000'), ('3183', '208', 'SI', 'Singida', '1', '0.00000'), ('3184', '208', 'TB', 'Tabora', '1', '0.00000'), ('3185', '208', 'TN', 'Tanga', '1', '0.00000'), ('3186', '208', 'ZC', 'Zanzibar Central/South', '1', '0.00000'), ('3187', '208', 'ZN', 'Zanzibar North', '1', '0.00000'), ('3188', '208', 'ZU', 'Zanzibar Urban/West', '1', '0.00000'), ('3189', '209', 'Amnat Charoen', 'Amnat Charoen', '1', '0.00000'), ('3190', '209', 'Ang Thong', 'Ang Thong', '1', '0.00000'), ('3191', '209', 'Ayutthaya', 'Ayutthaya', '1', '0.00000'), ('3192', '209', 'Bangkok', 'Bangkok', '1', '0.00000'), ('3193', '209', 'Buriram', 'Buriram', '1', '0.00000'), ('3194', '209', 'Chachoengsao', 'Chachoengsao', '1', '0.00000'), ('3195', '209', 'Chai Nat', 'Chai Nat', '1', '0.00000'), ('3196', '209', 'Chaiyaphum', 'Chaiyaphum', '1', '0.00000'), ('3197', '209', 'Chanthaburi', 'Chanthaburi', '1', '0.00000'), ('3198', '209', 'Chiang Mai', 'Chiang Mai', '1', '0.00000'), ('3199', '209', 'Chiang Rai', 'Chiang Rai', '1', '0.00000'), ('3200', '209', 'Chon Buri', 'Chon Buri', '1', '0.00000'), ('3201', '209', 'Chumphon', 'Chumphon', '1', '0.00000'), ('3202', '209', 'Kalasin', 'Kalasin', '1', '0.00000'), ('3203', '209', 'Kamphaeng Phet', 'Kamphaeng Phet', '1', '0.00000'), ('3204', '209', 'Kanchanaburi', 'Kanchanaburi', '1', '0.00000'), ('3205', '209', 'Khon Kaen', 'Khon Kaen', '1', '0.00000'), ('3206', '209', 'Krabi', 'Krabi', '1', '0.00000'), ('3207', '209', 'Lampang', 'Lampang', '1', '0.00000'), ('3208', '209', 'Lamphun', 'Lamphun', '1', '0.00000'), ('3209', '209', 'Loei', 'Loei', '1', '0.00000'), ('3210', '209', 'Lop Buri', 'Lop Buri', '1', '0.00000'), ('3211', '209', 'Mae Hong Son', 'Mae Hong Son', '1', '0.00000'), ('3212', '209', 'Maha Sarakham', 'Maha Sarakham', '1', '0.00000'), ('3213', '209', 'Mukdahan', 'Mukdahan', '1', '0.00000'), ('3214', '209', 'Nakhon Nayok', 'Nakhon Nayok', '1', '0.00000'), ('3215', '209', 'Nakhon Pathom', 'Nakhon Pathom', '1', '0.00000'), ('3216', '209', 'Nakhon Phanom', 'Nakhon Phanom', '1', '0.00000'), ('3217', '209', 'Nakhon Ratchasima', 'Nakhon Ratchasima', '1', '0.00000'), ('3218', '209', 'Nakhon Sawan', 'Nakhon Sawan', '1', '0.00000'), ('3219', '209', 'Nakhon Si Thammarat', 'Nakhon Si Thammarat', '1', '0.00000'), ('3220', '209', 'Nan', 'Nan', '1', '0.00000'), ('3221', '209', 'Narathiwat', 'Narathiwat', '1', '0.00000'), ('3222', '209', 'Nong Bua Lamphu', 'Nong Bua Lamphu', '1', '0.00000'), ('3223', '209', 'Nong Khai', 'Nong Khai', '1', '0.00000'), ('3224', '209', 'Nonthaburi', 'Nonthaburi', '1', '0.00000'), ('3225', '209', 'Pathum Thani', 'Pathum Thani', '1', '0.00000'), ('3226', '209', 'Pattani', 'Pattani', '1', '0.00000'), ('3227', '209', 'Phangnga', 'Phangnga', '1', '0.00000'), ('3228', '209', 'Phatthalung', 'Phatthalung', '1', '0.00000'), ('3229', '209', 'Phayao', 'Phayao', '1', '0.00000'), ('3230', '209', 'Phetchabun', 'Phetchabun', '1', '0.00000'), ('3231', '209', 'Phetchaburi', 'Phetchaburi', '1', '0.00000'), ('3232', '209', 'Phichit', 'Phichit', '1', '0.00000'), ('3233', '209', 'Phitsanulok', 'Phitsanulok', '1', '0.00000'), ('3234', '209', 'Phrae', 'Phrae', '1', '0.00000'), ('3235', '209', 'Phuket', 'Phuket', '1', '0.00000'), ('3236', '209', 'Prachin Buri', 'Prachin Buri', '1', '0.00000'), ('3237', '209', 'Prachuap Khiri Khan', 'Prachuap Khiri Khan', '1', '0.00000'), ('3238', '209', 'Ranong', 'Ranong', '1', '0.00000'), ('3239', '209', 'Ratchaburi', 'Ratchaburi', '1', '0.00000'), ('3240', '209', 'Rayong', 'Rayong', '1', '0.00000'), ('3241', '209', 'Roi Et', 'Roi Et', '1', '0.00000'), ('3242', '209', 'Sa Kaeo', 'Sa Kaeo', '1', '0.00000'), ('3243', '209', 'Sakon Nakhon', 'Sakon Nakhon', '1', '0.00000'), ('3244', '209', 'Samut Prakan', 'Samut Prakan', '1', '0.00000'), ('3245', '209', 'Samut Sakhon', 'Samut Sakhon', '1', '0.00000'), ('3246', '209', 'Samut Songkhram', 'Samut Songkhram', '1', '0.00000'), ('3247', '209', 'Sara Buri', 'Sara Buri', '1', '0.00000'), ('3248', '209', 'Satun', 'Satun', '1', '0.00000'), ('3249', '209', 'Sing Buri', 'Sing Buri', '1', '0.00000'), ('3250', '209', 'Sisaket', 'Sisaket', '1', '0.00000'), ('3251', '209', 'Songkhla', 'Songkhla', '1', '0.00000'), ('3252', '209', 'Sukhothai', 'Sukhothai', '1', '0.00000'), ('3253', '209', 'Suphan Buri', 'Suphan Buri', '1', '0.00000'), ('3254', '209', 'Surat Thani', 'Surat Thani', '1', '0.00000'), ('3255', '209', 'Surin', 'Surin', '1', '0.00000'), ('3256', '209', 'Tak', 'Tak', '1', '0.00000'), ('3257', '209', 'Trang', 'Trang', '1', '0.00000'), ('3258', '209', 'Trat', 'Trat', '1', '0.00000'), ('3259', '209', 'Ubon Ratchathani', 'Ubon Ratchathani', '1', '0.00000'), ('3260', '209', 'Udon Thani', 'Udon Thani', '1', '0.00000'), ('3261', '209', 'Uthai Thani', 'Uthai Thani', '1', '0.00000'), ('3262', '209', 'Uttaradit', 'Uttaradit', '1', '0.00000'), ('3263', '209', 'Yala', 'Yala', '1', '0.00000'), ('3264', '209', 'Yasothon', 'Yasothon', '1', '0.00000'), ('3265', '210', 'K', 'Kara', '1', '0.00000'), ('3266', '210', 'P', 'Plateaux', '1', '0.00000'), ('3267', '210', 'S', 'Savanes', '1', '0.00000'), ('3268', '210', 'C', 'Centrale', '1', '0.00000'), ('3269', '210', 'M', 'Maritime', '1', '0.00000'), ('3270', '211', 'A', 'Atafu', '1', '0.00000'), ('3271', '211', 'F', 'Fakaofo', '1', '0.00000'), ('3272', '211', 'N', 'Nukunonu', '1', '0.00000'), ('3273', '212', 'H', 'Ha\'apai', '1', '0.00000'), ('3274', '212', 'T', 'Tongatapu', '1', '0.00000'), ('3275', '212', 'V', 'Vava\'u', '1', '0.00000'), ('3276', '213', 'CT', 'Couva/Tabaquite/Talparo', '1', '0.00000'), ('3277', '213', 'DM', 'Diego Martin', '1', '0.00000'), ('3278', '213', 'MR', 'Mayaro/Rio Claro', '1', '0.00000'), ('3279', '213', 'PD', 'Penal/Debe', '1', '0.00000'), ('3280', '213', 'PT', 'Princes Town', '1', '0.00000'), ('3281', '213', 'SG', 'Sangre Grande', '1', '0.00000'), ('3282', '213', 'SL', 'San Juan/Laventille', '1', '0.00000'), ('3283', '213', 'SI', 'Siparia', '1', '0.00000'), ('3284', '213', 'TP', 'Tunapuna/Piarco', '1', '0.00000'), ('3285', '213', 'PS', 'Port of Spain', '1', '0.00000'), ('3286', '213', 'SF', 'San Fernando', '1', '0.00000'), ('3287', '213', 'AR', 'Arima', '1', '0.00000'), ('3288', '213', 'PF', 'Point Fortin', '1', '0.00000'), ('3289', '213', 'CH', 'Chaguanas', '1', '0.00000'), ('3290', '213', 'TO', 'Tobago', '1', '0.00000'), ('3291', '214', 'AR', 'Ariana', '1', '0.00000'), ('3292', '214', 'BJ', 'Beja', '1', '0.00000'), ('3293', '214', 'BA', 'Ben Arous', '1', '0.00000'), ('3294', '214', 'BI', 'Bizerte', '1', '0.00000'), ('3295', '214', 'GB', 'Gabes', '1', '0.00000'), ('3296', '214', 'GF', 'Gafsa', '1', '0.00000'), ('3297', '214', 'JE', 'Jendouba', '1', '0.00000'), ('3298', '214', 'KR', 'Kairouan', '1', '0.00000'), ('3299', '214', 'KS', 'Kasserine', '1', '0.00000'), ('3300', '214', 'KB', 'Kebili', '1', '0.00000'), ('3301', '214', 'KF', 'Kef', '1', '0.00000'), ('3302', '214', 'MH', 'Mahdia', '1', '0.00000'), ('3303', '214', 'MN', 'Manouba', '1', '0.00000'), ('3304', '214', 'ME', 'Medenine', '1', '0.00000'), ('3305', '214', 'MO', 'Monastir', '1', '0.00000'), ('3306', '214', 'NA', 'Nabeul', '1', '0.00000'), ('3307', '214', 'SF', 'Sfax', '1', '0.00000'), ('3308', '214', 'SD', 'Sidi', '1', '0.00000'), ('3309', '214', 'SL', 'Siliana', '1', '0.00000'), ('3310', '214', 'SO', 'Sousse', '1', '0.00000'), ('3311', '214', 'TA', 'Tataouine', '1', '0.00000'), ('3312', '214', 'TO', 'Tozeur', '1', '0.00000'), ('3313', '214', 'TU', 'Tunis', '1', '0.00000'), ('3314', '214', 'ZA', 'Zaghouan', '1', '0.00000'), ('3315', '215', 'ADA', 'Adana', '1', '0.00000'), ('3316', '215', 'ADI', 'Adiyaman', '1', '0.00000'), ('3317', '215', 'AFY', 'Afyonkarahisar', '1', '0.00000'), ('3318', '215', 'AGR', 'Agri', '1', '0.00000'), ('3319', '215', 'AKS', 'Aksaray', '1', '0.00000'), ('3320', '215', 'AMA', 'Amasya', '1', '0.00000'), ('3321', '215', 'ANK', 'Ankara', '1', '0.00000'), ('3322', '215', 'ANT', 'Antalya', '1', '0.00000'), ('3323', '215', 'ARD', 'Ardahan', '1', '0.00000'), ('3324', '215', 'ART', 'Artvin', '1', '0.00000'), ('3325', '215', 'AYI', 'Aydin', '1', '0.00000'), ('3326', '215', 'BAL', 'Balikesir', '1', '0.00000'), ('3327', '215', 'BAR', 'Bartin', '1', '0.00000'), ('3328', '215', 'BAT', 'Batman', '1', '0.00000'), ('3329', '215', 'BAY', 'Bayburt', '1', '0.00000'), ('3330', '215', 'BIL', 'Bilecik', '1', '0.00000'), ('3331', '215', 'BIN', 'Bingol', '1', '0.00000'), ('3332', '215', 'BIT', 'Bitlis', '1', '0.00000'), ('3333', '215', 'BOL', 'Bolu', '1', '0.00000'), ('3334', '215', 'BRD', 'Burdur', '1', '0.00000'), ('3335', '215', 'BRS', 'Bursa', '1', '0.00000'), ('3336', '215', 'CKL', 'Canakkale', '1', '0.00000'), ('3337', '215', 'CKR', 'Cankiri', '1', '0.00000'), ('3338', '215', 'COR', 'Corum', '1', '0.00000'), ('3339', '215', 'DEN', 'Denizli', '1', '0.00000'), ('3340', '215', 'DIY', 'Diyarbakir', '1', '0.00000'), ('3341', '215', 'DUZ', 'Duzce', '1', '0.00000'), ('3342', '215', 'EDI', 'Edirne', '1', '0.00000'), ('3343', '215', 'ELA', 'Elazig', '1', '0.00000'), ('3344', '215', 'EZC', 'Erzincan', '1', '0.00000'), ('3345', '215', 'EZR', 'Erzurum', '1', '0.00000'), ('3346', '215', 'ESK', 'Eskisehir', '1', '0.00000'), ('3347', '215', 'GAZ', 'Gaziantep', '1', '0.00000'), ('3348', '215', 'GIR', 'Giresun', '1', '0.00000'), ('3349', '215', 'GMS', 'Gumushane', '1', '0.00000'), ('3350', '215', 'HKR', 'Hakkari', '1', '0.00000'), ('3351', '215', 'HTY', 'Hatay', '1', '0.00000'), ('3352', '215', 'IGD', 'Igdir', '1', '0.00000'), ('3353', '215', 'ISP', 'Isparta', '1', '0.00000'), ('3354', '215', 'IST', 'Istanbul', '1', '0.00000'), ('3355', '215', 'IZM', 'Izmir', '1', '0.00000'), ('3356', '215', 'KAH', 'Kahramanmaras', '1', '0.00000'), ('3357', '215', 'KRB', 'Karabuk', '1', '0.00000'), ('3358', '215', 'KRM', 'Karaman', '1', '0.00000'), ('3359', '215', 'KRS', 'Kars', '1', '0.00000'), ('3360', '215', 'KAS', 'Kastamonu', '1', '0.00000'), ('3361', '215', 'KAY', 'Kayseri', '1', '0.00000'), ('3362', '215', 'KLS', 'Kilis', '1', '0.00000'), ('3363', '215', 'KRK', 'Kirikkale', '1', '0.00000'), ('3364', '215', 'KLR', 'Kirklareli', '1', '0.00000'), ('3365', '215', 'KRH', 'Kirsehir', '1', '0.00000'), ('3366', '215', 'KOC', 'Kocaeli', '1', '0.00000'), ('3367', '215', 'KON', 'Konya', '1', '0.00000'), ('3368', '215', 'KUT', 'Kutahya', '1', '0.00000'), ('3369', '215', 'MAL', 'Malatya', '1', '0.00000'), ('3370', '215', 'MAN', 'Manisa', '1', '0.00000'), ('3371', '215', 'MAR', 'Mardin', '1', '0.00000'), ('3372', '215', 'MER', 'Mersin', '1', '0.00000'), ('3373', '215', 'MUG', 'Mugla', '1', '0.00000'), ('3374', '215', 'MUS', 'Mus', '1', '0.00000'), ('3375', '215', 'NEV', 'Nevsehir', '1', '0.00000'), ('3376', '215', 'NIG', 'Nigde', '1', '0.00000'), ('3377', '215', 'ORD', 'Ordu', '1', '0.00000'), ('3378', '215', 'OSM', 'Osmaniye', '1', '0.00000'), ('3379', '215', 'RIZ', 'Rize', '1', '0.00000'), ('3380', '215', 'SAK', 'Sakarya', '1', '0.00000'), ('3381', '215', 'SAM', 'Samsun', '1', '0.00000'), ('3382', '215', 'SAN', 'Sanliurfa', '1', '0.00000'), ('3383', '215', 'SII', 'Siirt', '1', '0.00000'), ('3384', '215', 'SIN', 'Sinop', '1', '0.00000'), ('3385', '215', 'SIR', 'Sirnak', '1', '0.00000'), ('3386', '215', 'SIV', 'Sivas', '1', '0.00000'), ('3387', '215', 'TEL', 'Tekirdag', '1', '0.00000'), ('3388', '215', 'TOK', 'Tokat', '1', '0.00000'), ('3389', '215', 'TRA', 'Trabzon', '1', '0.00000'), ('3390', '215', 'TUN', 'Tunceli', '1', '0.00000'), ('3391', '215', 'USK', 'Usak', '1', '0.00000'), ('3392', '215', 'VAN', 'Van', '1', '0.00000'), ('3393', '215', 'YAL', 'Yalova', '1', '0.00000'), ('3394', '215', 'YOZ', 'Yozgat', '1', '0.00000'), ('3395', '215', 'ZON', 'Zonguldak', '1', '0.00000'), ('3396', '216', 'A', 'Ahal Welayaty', '1', '0.00000'), ('3397', '216', 'B', 'Balkan Welayaty', '1', '0.00000'), ('3398', '216', 'D', 'Dashhowuz Welayaty', '1', '0.00000'), ('3399', '216', 'L', 'Lebap Welayaty', '1', '0.00000'), ('3400', '216', 'M', 'Mary Welayaty', '1', '0.00000'), ('3401', '217', 'AC', 'Ambergris Cays', '1', '0.00000'), ('3402', '217', 'DC', 'Dellis Cay', '1', '0.00000'), ('3403', '217', 'FC', 'French Cay', '1', '0.00000'), ('3404', '217', 'LW', 'Little Water Cay', '1', '0.00000'), ('3405', '217', 'RC', 'Parrot Cay', '1', '0.00000'), ('3406', '217', 'PN', 'Pine Cay', '1', '0.00000'), ('3407', '217', 'SL', 'Salt Cay', '1', '0.00000'), ('3408', '217', 'GT', 'Grand Turk', '1', '0.00000'), ('3409', '217', 'SC', 'South Caicos', '1', '0.00000'), ('3410', '217', 'EC', 'East Caicos', '1', '0.00000'), ('3411', '217', 'MC', 'Middle Caicos', '1', '0.00000'), ('3412', '217', 'NC', 'North Caicos', '1', '0.00000'), ('3413', '217', 'PR', 'Providenciales', '1', '0.00000'), ('3414', '217', 'WC', 'West Caicos', '1', '0.00000'), ('3415', '218', 'NMG', 'Nanumanga', '1', '0.00000'), ('3416', '218', 'NLK', 'Niulakita', '1', '0.00000'), ('3417', '218', 'NTO', 'Niutao', '1', '0.00000'), ('3418', '218', 'FUN', 'Funafuti', '1', '0.00000'), ('3419', '218', 'NME', 'Nanumea', '1', '0.00000'), ('3420', '218', 'NUI', 'Nui', '1', '0.00000'), ('3421', '218', 'NFT', 'Nukufetau', '1', '0.00000'), ('3422', '218', 'NLL', 'Nukulaelae', '1', '0.00000'), ('3423', '218', 'VAI', 'Vaitupu', '1', '0.00000'), ('3424', '219', 'KAL', 'Kalangala', '1', '0.00000'), ('3425', '219', 'KMP', 'Kampala', '1', '0.00000'), ('3426', '219', 'KAY', 'Kayunga', '1', '0.00000'), ('3427', '219', 'KIB', 'Kiboga', '1', '0.00000'), ('3428', '219', 'LUW', 'Luwero', '1', '0.00000'), ('3429', '219', 'MAS', 'Masaka', '1', '0.00000'), ('3430', '219', 'MPI', 'Mpigi', '1', '0.00000'), ('3431', '219', 'MUB', 'Mubende', '1', '0.00000'), ('3432', '219', 'MUK', 'Mukono', '1', '0.00000'), ('3433', '219', 'NKS', 'Nakasongola', '1', '0.00000'), ('3434', '219', 'RAK', 'Rakai', '1', '0.00000'), ('3435', '219', 'SEM', 'Sembabule', '1', '0.00000'), ('3436', '219', 'WAK', 'Wakiso', '1', '0.00000'), ('3437', '219', 'BUG', 'Bugiri', '1', '0.00000'), ('3438', '219', 'BUS', 'Busia', '1', '0.00000'), ('3439', '219', 'IGA', 'Iganga', '1', '0.00000'), ('3440', '219', 'JIN', 'Jinja', '1', '0.00000'), ('3441', '219', 'KAB', 'Kaberamaido', '1', '0.00000'), ('3442', '219', 'KML', 'Kamuli', '1', '0.00000'), ('3443', '219', 'KPC', 'Kapchorwa', '1', '0.00000'), ('3444', '219', 'KTK', 'Katakwi', '1', '0.00000'), ('3445', '219', 'KUM', 'Kumi', '1', '0.00000'), ('3446', '219', 'MAY', 'Mayuge', '1', '0.00000'), ('3447', '219', 'MBA', 'Mbale', '1', '0.00000'), ('3448', '219', 'PAL', 'Pallisa', '1', '0.00000'), ('3449', '219', 'SIR', 'Sironko', '1', '0.00000'), ('3450', '219', 'SOR', 'Soroti', '1', '0.00000'), ('3451', '219', 'TOR', 'Tororo', '1', '0.00000'), ('3452', '219', 'ADJ', 'Adjumani', '1', '0.00000'), ('3453', '219', 'APC', 'Apac', '1', '0.00000'), ('3454', '219', 'ARU', 'Arua', '1', '0.00000'), ('3455', '219', 'GUL', 'Gulu', '1', '0.00000'), ('3456', '219', 'KIT', 'Kitgum', '1', '0.00000'), ('3457', '219', 'KOT', 'Kotido', '1', '0.00000'), ('3458', '219', 'LIR', 'Lira', '1', '0.00000'), ('3459', '219', 'MRT', 'Moroto', '1', '0.00000'), ('3460', '219', 'MOY', 'Moyo', '1', '0.00000'), ('3461', '219', 'NAK', 'Nakapiripirit', '1', '0.00000'), ('3462', '219', 'NEB', 'Nebbi', '1', '0.00000'), ('3463', '219', 'PAD', 'Pader', '1', '0.00000'), ('3464', '219', 'YUM', 'Yumbe', '1', '0.00000'), ('3465', '219', 'BUN', 'Bundibugyo', '1', '0.00000'), ('3466', '219', 'BSH', 'Bushenyi', '1', '0.00000'), ('3467', '219', 'HOI', 'Hoima', '1', '0.00000'), ('3468', '219', 'KBL', 'Kabale', '1', '0.00000'), ('3469', '219', 'KAR', 'Kabarole', '1', '0.00000'), ('3470', '219', 'KAM', 'Kamwenge', '1', '0.00000'), ('3471', '219', 'KAN', 'Kanungu', '1', '0.00000'), ('3472', '219', 'KAS', 'Kasese', '1', '0.00000'), ('3473', '219', 'KBA', 'Kibaale', '1', '0.00000'), ('3474', '219', 'KIS', 'Kisoro', '1', '0.00000'), ('3475', '219', 'KYE', 'Kyenjojo', '1', '0.00000'), ('3476', '219', 'MSN', 'Masindi', '1', '0.00000'), ('3477', '219', 'MBR', 'Mbarara', '1', '0.00000'), ('3478', '219', 'NTU', 'Ntungamo', '1', '0.00000'), ('3479', '219', 'RUK', 'Rukungiri', '1', '0.00000'), ('3480', '220', 'CK', 'Cherkasy', '1', '0.00000'), ('3481', '220', 'CH', 'Chernihiv', '1', '0.00000'), ('3482', '220', 'CV', 'Chernivtsi', '1', '0.00000'), ('3483', '220', 'CR', 'Crimea', '1', '0.00000'), ('3484', '220', 'DN', 'Dnipropetrovs\'k', '1', '0.00000'), ('3485', '220', 'DO', 'Donets\'k', '1', '0.00000'), ('3486', '220', 'IV', 'Ivano-Frankivs\'k', '1', '0.00000'), ('3487', '220', 'KL', 'Kharkiv Kherson', '1', '0.00000'), ('3488', '220', 'KM', 'Khmel\'nyts\'kyy', '1', '0.00000'), ('3489', '220', 'KR', 'Kirovohrad', '1', '0.00000'), ('3490', '220', 'KV', 'Kiev', '1', '0.00000'), ('3491', '220', 'KY', 'Kyyiv', '1', '0.00000'), ('3492', '220', 'LU', 'Luhans\'k', '1', '0.00000'), ('3493', '220', 'LV', 'L\'viv', '1', '0.00000'), ('3494', '220', 'MY', 'Mykolayiv', '1', '0.00000'), ('3495', '220', 'OD', 'Odesa', '1', '0.00000'), ('3496', '220', 'PO', 'Poltava', '1', '0.00000'), ('3497', '220', 'RI', 'Rivne', '1', '0.00000'), ('3498', '220', 'SE', 'Sevastopol', '1', '0.00000'), ('3499', '220', 'SU', 'Sumy', '1', '0.00000'), ('3500', '220', 'TE', 'Ternopil\'', '1', '0.00000'), ('3501', '220', 'VI', 'Vinnytsya', '1', '0.00000'), ('3502', '220', 'VO', 'Volyn\'', '1', '0.00000'), ('3503', '220', 'ZK', 'Zakarpattya', '1', '0.00000'), ('3504', '220', 'ZA', 'Zaporizhzhya', '1', '0.00000'), ('3505', '220', 'ZH', 'Zhytomyr', '1', '0.00000'), ('3506', '221', 'AZ', 'Abu Zaby', '1', '0.00000'), ('3507', '221', 'AJ', '\'Ajman', '1', '0.00000'), ('3508', '221', 'FU', 'Al Fujayrah', '1', '0.00000'), ('3509', '221', 'SH', 'Ash Shariqah', '1', '0.00000'), ('3510', '221', 'DU', 'Dubayy', '1', '0.00000'), ('3511', '221', 'RK', 'R\'as al Khaymah', '1', '0.00000'), ('3512', '221', 'UQ', 'Umm al Qaywayn', '1', '0.00000'), ('3513', '222', 'ABN', 'Aberdeen', '1', '0.00000'), ('3514', '222', 'ABNS', 'Aberdeenshire', '1', '0.00000'), ('3515', '222', 'ANG', 'Anglesey', '1', '0.00000'), ('3516', '222', 'AGS', 'Angus', '1', '0.00000'), ('3517', '222', 'ARY', 'Argyll and Bute', '1', '0.00000'), ('3518', '222', 'BEDS', 'Bedfordshire', '1', '0.00000'), ('3519', '222', 'BERKS', 'Berkshire', '1', '0.00000'), ('3520', '222', 'BLA', 'Blaenau Gwent', '1', '0.00000'), ('3521', '222', 'BRI', 'Bridgend', '1', '0.00000'), ('3522', '222', 'BSTL', 'Bristol', '1', '0.00000'), ('3523', '222', 'BUCKS', 'Buckinghamshire', '1', '0.00000'), ('3524', '222', 'CAE', 'Caerphilly', '1', '0.00000'), ('3525', '222', 'CAMBS', 'Cambridgeshire', '1', '0.00000'), ('3526', '222', 'CDF', 'Cardiff', '1', '0.00000'), ('3527', '222', 'CARM', 'Carmarthenshire', '1', '0.00000'), ('3528', '222', 'CDGN', 'Ceredigion', '1', '0.00000'), ('3529', '222', 'CHES', 'Cheshire', '1', '0.00000'), ('3530', '222', 'CLACK', 'Clackmannanshire', '1', '0.00000'), ('3531', '222', 'CON', 'Conwy', '1', '0.00000'), ('3532', '222', 'CORN', 'Cornwall', '1', '0.00000'), ('3533', '222', 'DNBG', 'Denbighshire', '1', '0.00000'), ('3534', '222', 'DERBY', 'Derbyshire', '1', '0.00000'), ('3535', '222', 'DVN', 'Devon', '1', '0.00000'), ('3536', '222', 'DOR', 'Dorset', '1', '0.00000'), ('3537', '222', 'DGL', 'Dumfries and Galloway', '1', '0.00000'), ('3538', '222', 'DUND', 'Dundee', '1', '0.00000'), ('3539', '222', 'DHM', 'Durham', '1', '0.00000'), ('3540', '222', 'ARYE', 'East Ayrshire', '1', '0.00000'), ('3541', '222', 'DUNBE', 'East Dunbartonshire', '1', '0.00000'), ('3542', '222', 'LOTE', 'East Lothian', '1', '0.00000'), ('3543', '222', 'RENE', 'East Renfrewshire', '1', '0.00000'), ('3544', '222', 'ERYS', 'East Riding of Yorkshire', '1', '0.00000'), ('3545', '222', 'SXE', 'East Sussex', '1', '0.00000'), ('3546', '222', 'EDIN', 'Edinburgh', '1', '0.00000'), ('3547', '222', 'ESX', 'Essex', '1', '0.00000'), ('3548', '222', 'FALK', 'Falkirk', '1', '0.00000'), ('3549', '222', 'FFE', 'Fife', '1', '0.00000'), ('3550', '222', 'FLINT', 'Flintshire', '1', '0.00000'), ('3551', '222', 'GLAS', 'Glasgow', '1', '0.00000'), ('3552', '222', 'GLOS', 'Gloucestershire', '1', '0.00000'), ('3553', '222', 'LDN', 'Greater London', '1', '0.00000'), ('3554', '222', 'MCH', 'Greater Manchester', '1', '0.00000'), ('3555', '222', 'GDD', 'Gwynedd', '1', '0.00000'), ('3556', '222', 'HANTS', 'Hampshire', '1', '0.00000'), ('3557', '222', 'HWR', 'Herefordshire', '1', '0.00000'), ('3558', '222', 'HERTS', 'Hertfordshire', '1', '0.00000'), ('3559', '222', 'HLD', 'Highlands', '1', '0.00000'), ('3560', '222', 'IVER', 'Inverclyde', '1', '0.00000'), ('3561', '222', 'IOW', 'Isle of Wight', '1', '0.00000'), ('3562', '222', 'KNT', 'Kent', '1', '0.00000'), ('3563', '222', 'LANCS', 'Lancashire', '1', '0.00000'), ('3564', '222', 'LEICS', 'Leicestershire', '1', '0.00000'), ('3565', '222', 'LINCS', 'Lincolnshire', '1', '0.00000'), ('3566', '222', 'MSY', 'Merseyside', '1', '0.00000'), ('3567', '222', 'MERT', 'Merthyr Tydfil', '1', '0.00000'), ('3568', '222', 'MLOT', 'Midlothian', '1', '0.00000'), ('3569', '222', 'MMOUTH', 'Monmouthshire', '1', '0.00000'), ('3570', '222', 'MORAY', 'Moray', '1', '0.00000'), ('3571', '222', 'NPRTAL', 'Neath Port Talbot', '1', '0.00000'), ('3572', '222', 'NEWPT', 'Newport', '1', '0.00000'), ('3573', '222', 'NOR', 'Norfolk', '1', '0.00000'), ('3574', '222', 'ARYN', 'North Ayrshire', '1', '0.00000'), ('3575', '222', 'LANN', 'North Lanarkshire', '1', '0.00000'), ('3576', '222', 'YSN', 'North Yorkshire', '1', '0.00000'), ('3577', '222', 'NHM', 'Northamptonshire', '1', '0.00000'), ('3578', '222', 'NLD', 'Northumberland', '1', '0.00000'), ('3579', '222', 'NOT', 'Nottinghamshire', '1', '0.00000'), ('3580', '222', 'ORK', 'Orkney Islands', '1', '0.00000'), ('3581', '222', 'OFE', 'Oxfordshire', '1', '0.00000'), ('3582', '222', 'PEM', 'Pembrokeshire', '1', '0.00000'), ('3583', '222', 'PERTH', 'Perth and Kinross', '1', '0.00000'), ('3584', '222', 'PWS', 'Powys', '1', '0.00000'), ('3585', '222', 'REN', 'Renfrewshire', '1', '0.00000'), ('3586', '222', 'RHON', 'Rhondda Cynon Taff', '1', '0.00000'), ('3587', '222', 'RUT', 'Rutland', '1', '0.00000'), ('3588', '222', 'BOR', 'Scottish Borders', '1', '0.00000'), ('3589', '222', 'SHET', 'Shetland Islands', '1', '0.00000'), ('3590', '222', 'SPE', 'Shropshire', '1', '0.00000'), ('3591', '222', 'SOM', 'Somerset', '1', '0.00000'), ('3592', '222', 'ARYS', 'South Ayrshire', '1', '0.00000'), ('3593', '222', 'LANS', 'South Lanarkshire', '1', '0.00000'), ('3594', '222', 'YSS', 'South Yorkshire', '1', '0.00000'), ('3595', '222', 'SFD', 'Staffordshire', '1', '0.00000'), ('3596', '222', 'STIR', 'Stirling', '1', '0.00000'), ('3597', '222', 'SFK', 'Suffolk', '1', '0.00000'), ('3598', '222', 'SRY', 'Surrey', '1', '0.00000'), ('3599', '222', 'SWAN', 'Swansea', '1', '0.00000'), ('3600', '222', 'TORF', 'Torfaen', '1', '0.00000'), ('3601', '222', 'TWR', 'Tyne and Wear', '1', '0.00000'), ('3602', '222', 'VGLAM', 'Vale of Glamorgan', '1', '0.00000'), ('3603', '222', 'WARKS', 'Warwickshire', '1', '0.00000'), ('3604', '222', 'WDUN', 'West Dunbartonshire', '1', '0.00000'), ('3605', '222', 'WLOT', 'West Lothian', '1', '0.00000'), ('3606', '222', 'WMD', 'West Midlands', '1', '0.00000'), ('3607', '222', 'SXW', 'West Sussex', '1', '0.00000'), ('3608', '222', 'YSW', 'West Yorkshire', '1', '0.00000'), ('3609', '222', 'WIL', 'Western Isles', '1', '0.00000'), ('3610', '222', 'WLT', 'Wiltshire', '1', '0.00000'), ('3611', '222', 'WORCS', 'Worcestershire', '1', '0.00000'), ('3612', '222', 'WRX', 'Wrexham', '1', '0.00000'), ('3613', '223', 'AL', 'Alabama', '1', '0.00000'), ('3614', '223', 'AK', 'Alaska', '1', '0.00000'), ('3615', '223', 'AS', 'American Samoa', '1', '0.00000'), ('3616', '223', 'AZ', 'Arizona', '1', '0.00000'), ('3617', '223', 'AR', 'Arkansas', '1', '0.00000'), ('3618', '223', 'AF', 'Armed Forces Africa', '1', '0.00000'), ('3619', '223', 'AA', 'Armed Forces Americas', '1', '0.00000'), ('3620', '223', 'AC', 'Armed Forces Canada', '1', '0.00000'), ('3621', '223', 'AE', 'Armed Forces Europe', '1', '0.00000'), ('3622', '223', 'AM', 'Armed Forces Middle East', '1', '0.00000'), ('3623', '223', 'AP', 'Armed Forces Pacific', '1', '0.00000'), ('3624', '223', 'CA', 'California', '1', '0.00000'), ('3625', '223', 'CO', 'Colorado', '1', '0.00000'), ('3626', '223', 'CT', 'Connecticut', '1', '0.00000'), ('3627', '223', 'DE', 'Delaware', '1', '0.00000'), ('3628', '223', 'DC', 'District of Columbia', '1', '0.00000'), ('3629', '223', 'FM', 'Federated States Of Micronesia', '1', '0.00000'), ('3630', '223', 'FL', 'Florida', '1', '0.00000'), ('3631', '223', 'GA', 'Georgia', '1', '0.00000'), ('3632', '223', 'GU', 'Guam', '1', '0.00000'), ('3633', '223', 'HI', 'Hawaii', '1', '0.00000'), ('3634', '223', 'ID', 'Idaho', '1', '0.00000'), ('3635', '223', 'IL', 'Illinois', '1', '0.00000'), ('3636', '223', 'IN', 'Indiana', '1', '0.00000'), ('3637', '223', 'IA', 'Iowa', '1', '0.00000'), ('3638', '223', 'KS', 'Kansas', '1', '0.00000'), ('3639', '223', 'KY', 'Kentucky', '1', '0.00000'), ('3640', '223', 'LA', 'Louisiana', '1', '0.00000'), ('3641', '223', 'ME', 'Maine', '1', '0.00000'), ('3642', '223', 'MH', 'Marshall Islands', '1', '0.00000'), ('3643', '223', 'MD', 'Maryland', '1', '0.00000'), ('3644', '223', 'MA', 'Massachusetts', '1', '0.00000'), ('3645', '223', 'MI', 'Michigan', '1', '0.00000'), ('3646', '223', 'MN', 'Minnesota', '1', '0.00000'), ('3647', '223', 'MS', 'Mississippi', '1', '0.00000'), ('3648', '223', 'MO', 'Missouri', '1', '0.00000'), ('3649', '223', 'MT', 'Montana', '1', '0.00000'), ('3650', '223', 'NE', 'Nebraska', '1', '0.00000'), ('3651', '223', 'NV', 'Nevada', '1', '0.00000'), ('3652', '223', 'NH', 'New Hampshire', '1', '0.00000'), ('3653', '223', 'NJ', 'New Jersey', '1', '0.00000'), ('3654', '223', 'NM', 'New Mexico', '1', '0.00000'), ('3655', '223', 'NY', 'New York', '1', '0.00000'), ('3656', '223', 'NC', 'North Carolina', '1', '0.00000'), ('3657', '223', 'ND', 'North Dakota', '1', '0.00000'), ('3658', '223', 'MP', 'Northern Mariana Islands', '1', '0.00000'), ('3659', '223', 'OH', 'Ohio', '1', '0.00000'), ('3660', '223', 'OK', 'Oklahoma', '1', '0.00000'), ('3661', '223', 'OR', 'Oregon', '1', '0.00000'), ('3662', '223', 'PW', 'Palau', '1', '0.00000'), ('3663', '223', 'PA', 'Pennsylvania', '1', '0.00000'), ('3664', '223', 'PR', 'Puerto Rico', '1', '0.00000'), ('3665', '223', 'RI', 'Rhode Island', '1', '0.00000'), ('3666', '223', 'SC', 'South Carolina', '1', '0.00000'), ('3667', '223', 'SD', 'South Dakota', '1', '0.00000'), ('3668', '223', 'TN', 'Tennessee', '1', '0.00000'), ('3669', '223', 'TX', 'Texas', '1', '0.00000'), ('3670', '223', 'UT', 'Utah', '1', '0.00000'), ('3671', '223', 'VT', 'Vermont', '1', '0.00000'), ('3672', '223', 'VI', 'Virgin Islands', '1', '0.00000'), ('3673', '223', 'VA', 'Virginia', '1', '0.00000'), ('3674', '223', 'WA', 'Washington', '1', '0.00000'), ('3675', '223', 'WV', 'West Virginia', '1', '0.00000'), ('3676', '223', 'WI', 'Wisconsin', '1', '0.00000'), ('3677', '223', 'WY', 'Wyoming', '1', '0.00000'), ('3678', '224', 'BI', 'Baker Island', '1', '0.00000'), ('3679', '224', 'HI', 'Howland Island', '1', '0.00000'), ('3680', '224', 'JI', 'Jarvis Island', '1', '0.00000'), ('3681', '224', 'JA', 'Johnston Atoll', '1', '0.00000'), ('3682', '224', 'KR', 'Kingman Reef', '1', '0.00000'), ('3683', '224', 'MA', 'Midway Atoll', '1', '0.00000'), ('3684', '224', 'NI', 'Navassa Island', '1', '0.00000'), ('3685', '224', 'PA', 'Palmyra Atoll', '1', '0.00000'), ('3686', '224', 'WI', 'Wake Island', '1', '0.00000'), ('3687', '225', 'AR', 'Artigas', '1', '0.00000'), ('3688', '225', 'CA', 'Canelones', '1', '0.00000'), ('3689', '225', 'CL', 'Cerro Largo', '1', '0.00000'), ('3690', '225', 'CO', 'Colonia', '1', '0.00000'), ('3691', '225', 'DU', 'Durazno', '1', '0.00000'), ('3692', '225', 'FS', 'Flores', '1', '0.00000'), ('3693', '225', 'FA', 'Florida', '1', '0.00000'), ('3694', '225', 'LA', 'Lavalleja', '1', '0.00000'), ('3695', '225', 'MA', 'Maldonado', '1', '0.00000'), ('3696', '225', 'MO', 'Montevideo', '1', '0.00000'), ('3697', '225', 'PA', 'Paysandu', '1', '0.00000'), ('3698', '225', 'RN', 'Rio Negro', '1', '0.00000'), ('3699', '225', 'RV', 'Rivera', '1', '0.00000'), ('3700', '225', 'RO', 'Rocha', '1', '0.00000'), ('3701', '225', 'SL', 'Salto', '1', '0.00000'), ('3702', '225', 'SJ', 'San Jose', '1', '0.00000'), ('3703', '225', 'SO', 'Soriano', '1', '0.00000'), ('3704', '225', 'TA', 'Tacuarembo', '1', '0.00000'), ('3705', '225', 'TT', 'Treinta y Tres', '1', '0.00000'), ('3706', '226', 'AN', 'Andijon', '1', '0.00000'), ('3707', '226', 'BU', 'Buxoro', '1', '0.00000'), ('3708', '226', 'FA', 'Farg\'ona', '1', '0.00000'), ('3709', '226', 'JI', 'Jizzax', '1', '0.00000'), ('3710', '226', 'NG', 'Namangan', '1', '0.00000'), ('3711', '226', 'NW', 'Navoiy', '1', '0.00000'), ('3712', '226', 'QA', 'Qashqadaryo', '1', '0.00000'), ('3713', '226', 'QR', 'Qoraqalpog\'iston Republikasi', '1', '0.00000'), ('3714', '226', 'SA', 'Samarqand', '1', '0.00000'), ('3715', '226', 'SI', 'Sirdaryo', '1', '0.00000'), ('3716', '226', 'SU', 'Surxondaryo', '1', '0.00000'), ('3717', '226', 'TK', 'Toshkent City', '1', '0.00000'), ('3718', '226', 'TO', 'Toshkent Region', '1', '0.00000'), ('3719', '226', 'XO', 'Xorazm', '1', '0.00000'), ('3720', '227', 'MA', 'Malampa', '1', '0.00000'), ('3721', '227', 'PE', 'Penama', '1', '0.00000'), ('3722', '227', 'SA', 'Sanma', '1', '0.00000'), ('3723', '227', 'SH', 'Shefa', '1', '0.00000'), ('3724', '227', 'TA', 'Tafea', '1', '0.00000'), ('3725', '227', 'TO', 'Torba', '1', '0.00000'), ('3726', '229', 'AM', 'Amazonas', '1', '0.00000'), ('3727', '229', 'AN', 'Anzoategui', '1', '0.00000'), ('3728', '229', 'AP', 'Apure', '1', '0.00000'), ('3729', '229', 'AR', 'Aragua', '1', '0.00000'), ('3730', '229', 'BA', 'Barinas', '1', '0.00000'), ('3731', '229', 'BO', 'Bolivar', '1', '0.00000'), ('3732', '229', 'CA', 'Carabobo', '1', '0.00000'), ('3733', '229', 'CO', 'Cojedes', '1', '0.00000'), ('3734', '229', 'DA', 'Delta Amacuro', '1', '0.00000'), ('3735', '229', 'DF', 'Dependencias Federales', '1', '0.00000'), ('3736', '229', 'DI', 'Distrito Federal', '1', '0.00000'), ('3737', '229', 'FA', 'Falcon', '1', '0.00000'), ('3738', '229', 'GU', 'Guarico', '1', '0.00000'), ('3739', '229', 'LA', 'Lara', '1', '0.00000'), ('3740', '229', 'ME', 'Merida', '1', '0.00000'), ('3741', '229', 'MI', 'Miranda', '1', '0.00000'), ('3742', '229', 'MO', 'Monagas', '1', '0.00000'), ('3743', '229', 'NE', 'Nueva Esparta', '1', '0.00000'), ('3744', '229', 'PO', 'Portuguesa', '1', '0.00000'), ('3745', '229', 'SU', 'Sucre', '1', '0.00000'), ('3746', '229', 'TA', 'Tachira', '1', '0.00000'), ('3747', '229', 'TR', 'Trujillo', '1', '0.00000'), ('3748', '229', 'VA', 'Vargas', '1', '0.00000'), ('3749', '229', 'YA', 'Yaracuy', '1', '0.00000'), ('3750', '229', 'ZU', 'Zulia', '1', '0.00000'), ('3751', '230', 'AG', 'An Giang', '1', '0.00000'), ('3752', '230', 'BG', 'Bac Giang', '1', '0.00000'), ('3753', '230', 'BK', 'Bac Kan', '1', '0.00000'), ('3754', '230', 'BL', 'Bac Lieu', '1', '0.00000'), ('3755', '230', 'BC', 'Bac Ninh', '1', '0.00000'), ('3756', '230', 'BR', 'Ba Ria-Vung Tau', '1', '0.00000'), ('3757', '230', 'BN', 'Ben Tre', '1', '0.00000'), ('3758', '230', 'BH', 'Binh Dinh', '1', '0.00000'), ('3759', '230', 'BU', 'Binh Duong', '1', '0.00000'), ('3760', '230', 'BP', 'Binh Phuoc', '1', '0.00000'), ('3761', '230', 'BT', 'Binh Thuan', '1', '0.00000'), ('3762', '230', 'CM', 'Ca Mau', '1', '0.00000'), ('3763', '230', 'CT', 'Can Tho', '1', '0.00000'), ('3764', '230', 'CB', 'Cao Bang', '1', '0.00000'), ('3765', '230', 'DL', 'Dak Lak', '1', '0.00000'), ('3766', '230', 'DG', 'Dak Nong', '1', '0.00000'), ('3767', '230', 'DN', 'Da Nang', '1', '0.00000'), ('3768', '230', 'DB', 'Dien Bien', '1', '0.00000'), ('3769', '230', 'DI', 'Dong Nai', '1', '0.00000'), ('3770', '230', 'DT', 'Dong Thap', '1', '0.00000'), ('3771', '230', 'GL', 'Gia Lai', '1', '0.00000'); +INSERT INTO `prefix_country_zones` VALUES ('2537', '167', 'IC', 'Ica', '1', '0.00000'), ('2538', '167', 'JU', 'Junin', '1', '0.00000'), ('2539', '167', 'LD', 'La Libertad', '1', '0.00000'), ('2540', '167', 'LY', 'Lambayeque', '1', '0.00000'), ('2541', '167', 'LI', 'Lima', '1', '0.00000'), ('2542', '167', 'LO', 'Loreto', '1', '0.00000'), ('2543', '167', 'MD', 'Madre de Dios', '1', '0.00000'), ('2544', '167', 'MO', 'Moquegua', '1', '0.00000'), ('2545', '167', 'PA', 'Pasco', '1', '0.00000'), ('2546', '167', 'PI', 'Piura', '1', '0.00000'), ('2547', '167', 'PU', 'Puno', '1', '0.00000'), ('2548', '167', 'SM', 'San Martin', '1', '0.00000'), ('2549', '167', 'TA', 'Tacna', '1', '0.00000'), ('2550', '167', 'TU', 'Tumbes', '1', '0.00000'), ('2551', '167', 'UC', 'Ucayali', '1', '0.00000'), ('2552', '168', 'ABR', 'Abra', '1', '0.00000'), ('2553', '168', 'ANO', 'Agusan del Norte', '1', '0.00000'), ('2554', '168', 'ASU', 'Agusan del Sur', '1', '0.00000'), ('2555', '168', 'AKL', 'Aklan', '1', '0.00000'), ('2556', '168', 'ALB', 'Albay', '1', '0.00000'), ('2557', '168', 'ANT', 'Antique', '1', '0.00000'), ('2558', '168', 'APY', 'Apayao', '1', '0.00000'), ('2559', '168', 'AUR', 'Aurora', '1', '0.00000'), ('2560', '168', 'BAS', 'Basilan', '1', '0.00000'), ('2561', '168', 'BTA', 'Bataan', '1', '0.00000'), ('2562', '168', 'BTE', 'Batanes', '1', '0.00000'), ('2563', '168', 'BTG', 'Batangas', '1', '0.00000'), ('2564', '168', 'BLR', 'Biliran', '1', '0.00000'), ('2565', '168', 'BEN', 'Benguet', '1', '0.00000'), ('2566', '168', 'BOL', 'Bohol', '1', '0.00000'), ('2567', '168', 'BUK', 'Bukidnon', '1', '0.00000'), ('2568', '168', 'BUL', 'Bulacan', '1', '0.00000'), ('2569', '168', 'CAG', 'Cagayan', '1', '0.00000'), ('2570', '168', 'CNO', 'Camarines Norte', '1', '0.00000'), ('2571', '168', 'CSU', 'Camarines Sur', '1', '0.00000'), ('2572', '168', 'CAM', 'Camiguin', '1', '0.00000'), ('2573', '168', 'CAP', 'Capiz', '1', '0.00000'), ('2574', '168', 'CAT', 'Catanduanes', '1', '0.00000'), ('2575', '168', 'CAV', 'Cavite', '1', '0.00000'), ('2576', '168', 'CEB', 'Cebu', '1', '0.00000'), ('2577', '168', 'CMP', 'Compostela', '1', '0.00000'), ('2578', '168', 'DNO', 'Davao del Norte', '1', '0.00000'), ('2579', '168', 'DSU', 'Davao del Sur', '1', '0.00000'), ('2580', '168', 'DOR', 'Davao Oriental', '1', '0.00000'), ('2581', '168', 'ESA', 'Eastern Samar', '1', '0.00000'), ('2582', '168', 'GUI', 'Guimaras', '1', '0.00000'), ('2583', '168', 'IFU', 'Ifugao', '1', '0.00000'), ('2584', '168', 'INO', 'Ilocos Norte', '1', '0.00000'), ('2585', '168', 'ISU', 'Ilocos Sur', '1', '0.00000'), ('2586', '168', 'ILO', 'Iloilo', '1', '0.00000'), ('2587', '168', 'ISA', 'Isabela', '1', '0.00000'), ('2588', '168', 'KAL', 'Kalinga', '1', '0.00000'), ('2589', '168', 'LAG', 'Laguna', '1', '0.00000'), ('2590', '168', 'LNO', 'Lanao del Norte', '1', '0.00000'), ('2591', '168', 'LSU', 'Lanao del Sur', '1', '0.00000'), ('2592', '168', 'UNI', 'La Union', '1', '0.00000'), ('2593', '168', 'LEY', 'Leyte', '1', '0.00000'), ('2594', '168', 'MAG', 'Maguindanao', '1', '0.00000'), ('2595', '168', 'MRN', 'Marinduque', '1', '0.00000'), ('2596', '168', 'MSB', 'Masbate', '1', '0.00000'), ('2597', '168', 'MIC', 'Mindoro Occidental', '1', '0.00000'), ('2598', '168', 'MIR', 'Mindoro Oriental', '1', '0.00000'), ('2599', '168', 'MSC', 'Misamis Occidental', '1', '0.00000'), ('2600', '168', 'MOR', 'Misamis Oriental', '1', '0.00000'), ('2601', '168', 'MOP', 'Mountain', '1', '0.00000'), ('2602', '168', 'NOC', 'Negros Occidental', '1', '0.00000'), ('2603', '168', 'NOR', 'Negros Oriental', '1', '0.00000'), ('2604', '168', 'NCT', 'North Cotabato', '1', '0.00000'), ('2605', '168', 'NSM', 'Northern Samar', '1', '0.00000'), ('2606', '168', 'NEC', 'Nueva Ecija', '1', '0.00000'), ('2607', '168', 'NVZ', 'Nueva Vizcaya', '1', '0.00000'), ('2608', '168', 'PLW', 'Palawan', '1', '0.00000'), ('2609', '168', 'PMP', 'Pampanga', '1', '0.00000'), ('2610', '168', 'PNG', 'Pangasinan', '1', '0.00000'), ('2611', '168', 'QZN', 'Quezon', '1', '0.00000'), ('2612', '168', 'QRN', 'Quirino', '1', '0.00000'), ('2613', '168', 'RIZ', 'Rizal', '1', '0.00000'), ('2614', '168', 'ROM', 'Romblon', '1', '0.00000'), ('2615', '168', 'SMR', 'Samar', '1', '0.00000'), ('2616', '168', 'SRG', 'Sarangani', '1', '0.00000'), ('2617', '168', 'SQJ', 'Siquijor', '1', '0.00000'), ('2618', '168', 'SRS', 'Sorsogon', '1', '0.00000'), ('2619', '168', 'SCO', 'South Cotabato', '1', '0.00000'), ('2620', '168', 'SLE', 'Southern Leyte', '1', '0.00000'), ('2621', '168', 'SKU', 'Sultan Kudarat', '1', '0.00000'), ('2622', '168', 'SLU', 'Sulu', '1', '0.00000'), ('2623', '168', 'SNO', 'Surigao del Norte', '1', '0.00000'), ('2624', '168', 'SSU', 'Surigao del Sur', '1', '0.00000'), ('2625', '168', 'TAR', 'Tarlac', '1', '0.00000'), ('2626', '168', 'TAW', 'Tawi-Tawi', '1', '0.00000'), ('2627', '168', 'ZBL', 'Zambales', '1', '0.00000'), ('2628', '168', 'ZNO', 'Zamboanga del Norte', '1', '0.00000'), ('2629', '168', 'ZSU', 'Zamboanga del Sur', '1', '0.00000'), ('2630', '168', 'ZSI', 'Zamboanga Sibugay', '1', '0.00000'), ('2631', '170', 'DO', 'Dolnoslaskie', '1', '0.00000'), ('2632', '170', 'KP', 'Kujawsko-Pomorskie', '1', '0.00000'), ('2633', '170', 'LO', 'Lodzkie', '1', '0.00000'), ('2634', '170', 'LL', 'Lubelskie', '1', '0.00000'), ('2635', '170', 'LU', 'Lubuskie', '1', '0.00000'), ('2636', '170', 'ML', 'Malopolskie', '1', '0.00000'), ('2637', '170', 'MZ', 'Mazowieckie', '1', '0.00000'), ('2638', '170', 'OP', 'Opolskie', '1', '0.00000'), ('2639', '170', 'PP', 'Podkarpackie', '1', '0.00000'), ('2640', '170', 'PL', 'Podlaskie', '1', '0.00000'), ('2641', '170', 'PM', 'Pomorskie', '1', '0.00000'), ('2642', '170', 'SL', 'Slaskie', '1', '0.00000'), ('2643', '170', 'SW', 'Swietokrzyskie', '1', '0.00000'), ('2644', '170', 'WM', 'Warminsko-Mazurskie', '1', '0.00000'), ('2645', '170', 'WP', 'Wielkopolskie', '1', '0.00000'), ('2646', '170', 'ZA', 'Zachodniopomorskie', '1', '0.00000'), ('2647', '198', 'P', 'Saint Pierre', '1', '0.00000'), ('2648', '198', 'M', 'Miquelon', '1', '0.00000'), ('2649', '171', 'AC', 'Açores', '1', '0.00000'), ('2650', '171', 'AV', 'Aveiro', '1', '0.00000'), ('2651', '171', 'BE', 'Beja', '1', '0.00000'), ('2652', '171', 'BR', 'Braga', '1', '0.00000'), ('2653', '171', 'BA', 'Bragança', '1', '0.00000'), ('2654', '171', 'CB', 'Castelo Branco', '1', '0.00000'), ('2655', '171', 'CO', 'Coimbra', '1', '0.00000'), ('2656', '171', 'EV', 'Évora', '1', '0.00000'), ('2657', '171', 'FA', 'Faro', '1', '0.00000'), ('2658', '171', 'GU', 'Guarda', '1', '0.00000'), ('2659', '171', 'LE', 'Leiria', '1', '0.00000'), ('2660', '171', 'LI', 'Lisboa', '1', '0.00000'), ('2661', '171', 'ME', 'Madeira', '1', '0.00000'), ('2662', '171', 'PO', 'Portalegre', '1', '0.00000'), ('2663', '171', 'PR', 'Porto', '1', '0.00000'), ('2664', '171', 'SA', 'Santarém', '1', '0.00000'), ('2665', '171', 'SE', 'Setúbal', '1', '0.00000'), ('2666', '171', 'VC', 'Viana do Castelo', '1', '0.00000'), ('2667', '171', 'VR', 'Vila Real', '1', '0.00000'), ('2668', '171', 'VI', 'Viseu', '1', '0.00000'), ('2669', '173', 'DW', 'Ad Dawhah', '1', '0.00000'), ('2670', '173', 'GW', 'Al Ghuwayriyah', '1', '0.00000'), ('2671', '173', 'JM', 'Al Jumayliyah', '1', '0.00000'), ('2672', '173', 'KR', 'Al Khawr', '1', '0.00000'), ('2673', '173', 'WK', 'Al Wakrah', '1', '0.00000'), ('2674', '173', 'RN', 'Ar Rayyan', '1', '0.00000'), ('2675', '173', 'JB', 'Jarayan al Batinah', '1', '0.00000'), ('2676', '173', 'MS', 'Madinat ash Shamal', '1', '0.00000'), ('2677', '173', 'UD', 'Umm Sa\'id', '1', '0.00000'), ('2678', '173', 'UL', 'Umm Salal', '1', '0.00000'), ('2679', '175', 'AB', 'Alba', '1', '0.00000'), ('2680', '175', 'AR', 'Arad', '1', '0.00000'), ('2681', '175', 'AG', 'Arges', '1', '0.00000'), ('2682', '175', 'BC', 'Bacau', '1', '0.00000'), ('2683', '175', 'BH', 'Bihor', '1', '0.00000'), ('2684', '175', 'BN', 'Bistrita-Nasaud', '1', '0.00000'), ('2685', '175', 'BT', 'Botosani', '1', '0.00000'), ('2686', '175', 'BV', 'Brasov', '1', '0.00000'), ('2687', '175', 'BR', 'Braila', '1', '0.00000'), ('2688', '175', 'B', 'Bucuresti', '1', '0.00000'), ('2689', '175', 'BZ', 'Buzau', '1', '0.00000'), ('2690', '175', 'CS', 'Caras-Severin', '1', '0.00000'), ('2691', '175', 'CL', 'Calarasi', '1', '0.00000'), ('2692', '175', 'CJ', 'Cluj', '1', '0.00000'), ('2693', '175', 'CT', 'Constanta', '1', '0.00000'), ('2694', '175', 'CV', 'Covasna', '1', '0.00000'), ('2695', '175', 'DB', 'Dimbovita', '1', '0.00000'), ('2696', '175', 'DJ', 'Dolj', '1', '0.00000'), ('2697', '175', 'GL', 'Galati', '1', '0.00000'), ('2698', '175', 'GR', 'Giurgiu', '1', '0.00000'), ('2699', '175', 'GJ', 'Gorj', '1', '0.00000'), ('2700', '175', 'HR', 'Harghita', '1', '0.00000'), ('2701', '175', 'HD', 'Hunedoara', '1', '0.00000'), ('2702', '175', 'IL', 'Ialomita', '1', '0.00000'), ('2703', '175', 'IS', 'Iasi', '1', '0.00000'), ('2704', '175', 'IF', 'Ilfov', '1', '0.00000'), ('2705', '175', 'MM', 'Maramures', '1', '0.00000'), ('2706', '175', 'MH', 'Mehedinti', '1', '0.00000'), ('2707', '175', 'MS', 'Mures', '1', '0.00000'), ('2708', '175', 'NT', 'Neamt', '1', '0.00000'), ('2709', '175', 'OT', 'Olt', '1', '0.00000'), ('2710', '175', 'PH', 'Prahova', '1', '0.00000'), ('2711', '175', 'SM', 'Satu-Mare', '1', '0.00000'), ('2712', '175', 'SJ', 'Salaj', '1', '0.00000'), ('2713', '175', 'SB', 'Sibiu', '1', '0.00000'), ('2714', '175', 'SV', 'Suceava', '1', '0.00000'), ('2715', '175', 'TR', 'Teleorman', '1', '0.00000'), ('2716', '175', 'TM', 'Timis', '1', '0.00000'), ('2717', '175', 'TL', 'Tulcea', '1', '0.00000'), ('2718', '175', 'VS', 'Vaslui', '1', '0.00000'), ('2719', '175', 'VL', 'Valcea', '1', '0.00000'), ('2720', '175', 'VN', 'Vrancea', '1', '0.00000'), ('2721', '176', 'AB', 'Abakan', '1', '0.00000'), ('2722', '176', 'AG', 'Aginskoye', '1', '0.00000'), ('2723', '176', 'AN', 'Anadyr', '1', '0.00000'), ('2724', '176', 'AR', 'Arkahangelsk', '1', '0.00000'), ('2725', '176', 'AS', 'Astrakhan', '1', '0.00000'), ('2726', '176', 'BA', 'Barnaul', '1', '0.00000'), ('2727', '176', 'BE', 'Belgorod', '1', '0.00000'), ('2728', '176', 'BI', 'Birobidzhan', '1', '0.00000'), ('2729', '176', 'BL', 'Blagoveshchensk', '1', '0.00000'), ('2730', '176', 'BR', 'Bryansk', '1', '0.00000'), ('2731', '176', 'CH', 'Cheboksary', '1', '0.00000'), ('2732', '176', 'CL', 'Chelyabinsk', '1', '0.00000'), ('2733', '176', 'CR', 'Cherkessk', '1', '0.00000'), ('2734', '176', 'CI', 'Chita', '1', '0.00000'), ('2735', '176', 'DU', 'Dudinka', '1', '0.00000'), ('2736', '176', 'EL', 'Elista', '1', '0.00000'), ('2737', '176', 'GO', 'Gomo-Altaysk', '1', '0.00000'), ('2738', '176', 'GA', 'Gorno-Altaysk', '1', '0.00000'), ('2739', '176', 'GR', 'Groznyy', '1', '0.00000'), ('2740', '176', 'IR', 'Irkutsk', '1', '0.00000'), ('2741', '176', 'IV', 'Ivanovo', '1', '0.00000'), ('2742', '176', 'IZ', 'Izhevsk', '1', '0.00000'), ('2743', '176', 'KA', 'Kalinigrad', '1', '0.00000'), ('2744', '176', 'KL', 'Kaluga', '1', '0.00000'), ('2745', '176', 'KS', 'Kasnodar', '1', '0.00000'), ('2746', '176', 'KZ', 'Kazan', '1', '0.00000'), ('2747', '176', 'KE', 'Kemerovo', '1', '0.00000'), ('2748', '176', 'KH', 'Khabarovsk', '1', '0.00000'), ('2749', '176', 'KM', 'Khanty-Mansiysk', '1', '0.00000'), ('2750', '176', 'KO', 'Kostroma', '1', '0.00000'), ('2751', '176', 'KR', 'Krasnodar', '1', '0.00000'), ('2752', '176', 'KN', 'Krasnoyarsk', '1', '0.00000'), ('2753', '176', 'KU', 'Kudymkar', '1', '0.00000'), ('2754', '176', 'KG', 'Kurgan', '1', '0.00000'), ('2755', '176', 'KK', 'Kursk', '1', '0.00000'), ('2756', '176', 'KY', 'Kyzyl', '1', '0.00000'), ('2757', '176', 'LI', 'Lipetsk', '1', '0.00000'), ('2758', '176', 'MA', 'Magadan', '1', '0.00000'), ('2759', '176', 'MK', 'Makhachkala', '1', '0.00000'), ('2760', '176', 'MY', 'Maykop', '1', '0.00000'), ('2761', '176', 'MO', 'Moscow', '1', '0.00000'), ('2762', '176', 'MU', 'Murmansk', '1', '0.00000'), ('2763', '176', 'NA', 'Nalchik', '1', '0.00000'), ('2764', '176', 'NR', 'Naryan Mar', '1', '0.00000'), ('2765', '176', 'NZ', 'Nazran', '1', '0.00000'), ('2766', '176', 'NI', 'Nizhniy Novgorod', '1', '0.00000'), ('2767', '176', 'NO', 'Novgorod', '1', '0.00000'), ('2768', '176', 'NV', 'Novosibirsk', '1', '0.00000'), ('2769', '176', 'OM', 'Omsk', '1', '0.00000'), ('2770', '176', 'OR', 'Orel', '1', '0.00000'), ('2771', '176', 'OE', 'Orenburg', '1', '0.00000'), ('2772', '176', 'PA', 'Palana', '1', '0.00000'), ('2773', '176', 'PE', 'Penza', '1', '0.00000'), ('2774', '176', 'PR', 'Perm', '1', '0.00000'), ('2775', '176', 'PK', 'Petropavlovsk-Kamchatskiy', '1', '0.00000'), ('2776', '176', 'PT', 'Petrozavodsk', '1', '0.00000'), ('2777', '176', 'PS', 'Pskov', '1', '0.00000'), ('2778', '176', 'RO', 'Rostov-na-Donu', '1', '0.00000'), ('2779', '176', 'RY', 'Ryazan', '1', '0.00000'), ('2780', '176', 'SL', 'Salekhard', '1', '0.00000'), ('2781', '176', 'SA', 'Samara', '1', '0.00000'), ('2782', '176', 'SR', 'Saransk', '1', '0.00000'), ('2783', '176', 'SV', 'Saratov', '1', '0.00000'), ('2784', '176', 'SM', 'Smolensk', '1', '0.00000'), ('2785', '176', 'SP', 'St. Petersburg', '1', '0.00000'), ('2786', '176', 'ST', 'Stavropol', '1', '0.00000'), ('2787', '176', 'SY', 'Syktyvkar', '1', '0.00000'), ('2788', '176', 'TA', 'Tambov', '1', '0.00000'), ('2789', '176', 'TO', 'Tomsk', '1', '0.00000'), ('2790', '176', 'TU', 'Tula', '1', '0.00000'), ('2791', '176', 'TR', 'Tura', '1', '0.00000'), ('2792', '176', 'TV', 'Tver', '1', '0.00000'), ('2793', '176', 'TY', 'Tyumen', '1', '0.00000'), ('2794', '176', 'UF', 'Ufa', '1', '0.00000'), ('2795', '176', 'UL', 'Ul\'yanovsk', '1', '0.00000'), ('2796', '176', 'UU', 'Ulan-Ude', '1', '0.00000'), ('2797', '176', 'US', 'Ust\'-Ordynskiy', '1', '0.00000'), ('2798', '176', 'VL', 'Vladikavkaz', '1', '0.00000'), ('2799', '176', 'VA', 'Vladimir', '1', '0.00000'), ('2800', '176', 'VV', 'Vladivostok', '1', '0.00000'), ('2801', '176', 'VG', 'Volgograd', '1', '0.00000'), ('2802', '176', 'VD', 'Vologda', '1', '0.00000'), ('2803', '176', 'VO', 'Voronezh', '1', '0.00000'), ('2804', '176', 'VY', 'Vyatka', '1', '0.00000'), ('2805', '176', 'YA', 'Yakutsk', '1', '0.00000'), ('2806', '176', 'YR', 'Yaroslavl', '1', '0.00000'), ('2807', '176', 'YE', 'Yekaterinburg', '1', '0.00000'), ('2808', '176', 'YO', 'Yoshkar-Ola', '1', '0.00000'), ('2809', '177', 'BU', 'Butare', '1', '0.00000'), ('2810', '177', 'BY', 'Byumba', '1', '0.00000'), ('2811', '177', 'CY', 'Cyangugu', '1', '0.00000'), ('2812', '177', 'GK', 'Gikongoro', '1', '0.00000'), ('2813', '177', 'GS', 'Gisenyi', '1', '0.00000'), ('2814', '177', 'GT', 'Gitarama', '1', '0.00000'), ('2815', '177', 'KG', 'Kibungo', '1', '0.00000'), ('2816', '177', 'KY', 'Kibuye', '1', '0.00000'), ('2817', '177', 'KR', 'Kigali Rurale', '1', '0.00000'), ('2818', '177', 'KV', 'Kigali-ville', '1', '0.00000'), ('2819', '177', 'RU', 'Ruhengeri', '1', '0.00000'), ('2820', '177', 'UM', 'Umutara', '1', '0.00000'), ('2821', '178', 'CCN', 'Christ Church Nichola Town', '1', '0.00000'), ('2822', '178', 'SAS', 'Saint Anne Sandy Point', '1', '0.00000'), ('2823', '178', 'SGB', 'Saint George Basseterre', '1', '0.00000'), ('2824', '178', 'SGG', 'Saint George Gingerland', '1', '0.00000'), ('2825', '178', 'SJW', 'Saint James Windward', '1', '0.00000'), ('2826', '178', 'SJC', 'Saint John Capesterre', '1', '0.00000'), ('2827', '178', 'SJF', 'Saint John Figtree', '1', '0.00000'), ('2828', '178', 'SMC', 'Saint Mary Cayon', '1', '0.00000'), ('2829', '178', 'CAP', 'Saint Paul Capesterre', '1', '0.00000'), ('2830', '178', 'CHA', 'Saint Paul Charlestown', '1', '0.00000'), ('2831', '178', 'SPB', 'Saint Peter Basseterre', '1', '0.00000'), ('2832', '178', 'STL', 'Saint Thomas Lowland', '1', '0.00000'), ('2833', '178', 'STM', 'Saint Thomas Middle Island', '1', '0.00000'), ('2834', '178', 'TPP', 'Trinity Palmetto Point', '1', '0.00000'), ('2835', '179', 'AR', 'Anse-la-Raye', '1', '0.00000'), ('2836', '179', 'CA', 'Castries', '1', '0.00000'), ('2837', '179', 'CH', 'Choiseul', '1', '0.00000'), ('2838', '179', 'DA', 'Dauphin', '1', '0.00000'), ('2839', '179', 'DE', 'Dennery', '1', '0.00000'), ('2840', '179', 'GI', 'Gros-Islet', '1', '0.00000'), ('2841', '179', 'LA', 'Laborie', '1', '0.00000'), ('2842', '179', 'MI', 'Micoud', '1', '0.00000'), ('2843', '179', 'PR', 'Praslin', '1', '0.00000'), ('2844', '179', 'SO', 'Soufriere', '1', '0.00000'), ('2845', '179', 'VF', 'Vieux-Fort', '1', '0.00000'), ('2846', '180', 'C', 'Charlotte', '1', '0.00000'), ('2847', '180', 'R', 'Grenadines', '1', '0.00000'), ('2848', '180', 'A', 'Saint Andrew', '1', '0.00000'), ('2849', '180', 'D', 'Saint David', '1', '0.00000'), ('2850', '180', 'G', 'Saint George', '1', '0.00000'), ('2851', '180', 'P', 'Saint Patrick', '1', '0.00000'), ('2852', '181', 'AN', 'A\'ana', '1', '0.00000'), ('2853', '181', 'AI', 'Aiga-i-le-Tai', '1', '0.00000'), ('2854', '181', 'AT', 'Atua', '1', '0.00000'), ('2855', '181', 'FA', 'Fa\'asaleleaga', '1', '0.00000'), ('2856', '181', 'GE', 'Gaga\'emauga', '1', '0.00000'), ('2857', '181', 'GF', 'Gagaifomauga', '1', '0.00000'), ('2858', '181', 'PA', 'Palauli', '1', '0.00000'), ('2859', '181', 'SA', 'Satupa\'itea', '1', '0.00000'), ('2860', '181', 'TU', 'Tuamasaga', '1', '0.00000'), ('2861', '181', 'VF', 'Va\'a-o-Fonoti', '1', '0.00000'), ('2862', '181', 'VS', 'Vaisigano', '1', '0.00000'), ('2863', '182', 'AC', 'Acquaviva', '1', '0.00000'), ('2864', '182', 'BM', 'Borgo Maggiore', '1', '0.00000'), ('2865', '182', 'CH', 'Chiesanuova', '1', '0.00000'), ('2866', '182', 'DO', 'Domagnano', '1', '0.00000'), ('2867', '182', 'FA', 'Faetano', '1', '0.00000'), ('2868', '182', 'FI', 'Fiorentino', '1', '0.00000'), ('2869', '182', 'MO', 'Montegiardino', '1', '0.00000'), ('2870', '182', 'SM', 'Citta di San Marino', '1', '0.00000'), ('2871', '182', 'SE', 'Serravalle', '1', '0.00000'), ('2872', '183', 'S', 'Sao Tome', '1', '0.00000'), ('2873', '183', 'P', 'Principe', '1', '0.00000'), ('2874', '184', 'BH', 'Al Bahah', '1', '0.00000'), ('2875', '184', 'HS', 'Al Hudud ash Shamaliyah', '1', '0.00000'), ('2876', '184', 'JF', 'Al Jawf', '1', '0.00000'), ('2877', '184', 'MD', 'Al Madinah', '1', '0.00000'), ('2878', '184', 'QS', 'Al Qasim', '1', '0.00000'), ('2879', '184', 'RD', 'Ar Riyad', '1', '0.00000'), ('2880', '184', 'AQ', 'Ash Sharqiyah (Eastern)', '1', '0.00000'), ('2881', '184', 'AS', '\'Asir', '1', '0.00000'), ('2882', '184', 'HL', 'Ha\'il', '1', '0.00000'), ('2883', '184', 'JZ', 'Jizan', '1', '0.00000'), ('2884', '184', 'ML', 'Makkah', '1', '0.00000'), ('2885', '184', 'NR', 'Najran', '1', '0.00000'), ('2886', '184', 'TB', 'Tabuk', '1', '0.00000'), ('2887', '185', 'DA', 'Dakar', '1', '0.00000'), ('2888', '185', 'DI', 'Diourbel', '1', '0.00000'), ('2889', '185', 'FA', 'Fatick', '1', '0.00000'), ('2890', '185', 'KA', 'Kaolack', '1', '0.00000'), ('2891', '185', 'KO', 'Kolda', '1', '0.00000'), ('2892', '185', 'LO', 'Louga', '1', '0.00000'), ('2893', '185', 'MA', 'Matam', '1', '0.00000'), ('2894', '185', 'SL', 'Saint-Louis', '1', '0.00000'), ('2895', '185', 'TA', 'Tambacounda', '1', '0.00000'), ('2896', '185', 'TH', 'Thies', '1', '0.00000'), ('2897', '185', 'ZI', 'Ziguinchor', '1', '0.00000'), ('2898', '186', 'AP', 'Anse aux Pins', '1', '0.00000'), ('2899', '186', 'AB', 'Anse Boileau', '1', '0.00000'), ('2900', '186', 'AE', 'Anse Etoile', '1', '0.00000'), ('2901', '186', 'AL', 'Anse Louis', '1', '0.00000'), ('2902', '186', 'AR', 'Anse Royale', '1', '0.00000'), ('2903', '186', 'BL', 'Baie Lazare', '1', '0.00000'), ('2904', '186', 'BS', 'Baie Sainte Anne', '1', '0.00000'), ('2905', '186', 'BV', 'Beau Vallon', '1', '0.00000'), ('2906', '186', 'BA', 'Bel Air', '1', '0.00000'), ('2907', '186', 'BO', 'Bel Ombre', '1', '0.00000'), ('2908', '186', 'CA', 'Cascade', '1', '0.00000'), ('2909', '186', 'GL', 'Glacis', '1', '0.00000'), ('2910', '186', 'GM', 'Grand\' Anse (on Mahe)', '1', '0.00000'), ('2911', '186', 'GP', 'Grand\' Anse (on Praslin)', '1', '0.00000'), ('2912', '186', 'DG', 'La Digue', '1', '0.00000'), ('2913', '186', 'RA', 'La Riviere Anglaise', '1', '0.00000'), ('2914', '186', 'MB', 'Mont Buxton', '1', '0.00000'), ('2915', '186', 'MF', 'Mont Fleuri', '1', '0.00000'), ('2916', '186', 'PL', 'Plaisance', '1', '0.00000'), ('2917', '186', 'PR', 'Pointe La Rue', '1', '0.00000'), ('2918', '186', 'PG', 'Port Glaud', '1', '0.00000'), ('2919', '186', 'SL', 'Saint Louis', '1', '0.00000'), ('2920', '186', 'TA', 'Takamaka', '1', '0.00000'), ('2921', '187', 'E', 'Eastern', '1', '0.00000'), ('2922', '187', 'N', 'Northern', '1', '0.00000'), ('2923', '187', 'S', 'Southern', '1', '0.00000'), ('2924', '187', 'W', 'Western', '1', '0.00000'), ('2925', '189', 'BA', 'Banskobystrick√Ω', '1', '0.00000'), ('2926', '189', 'BR', 'Bratislavsk√Ω', '1', '0.00000'), ('2927', '189', 'KO', 'Košick√Ω', '1', '0.00000'), ('2928', '189', 'NI', 'Nitriansky', '1', '0.00000'), ('2929', '189', 'PR', 'Prešovsk√Ω', '1', '0.00000'), ('2930', '189', 'TC', 'Trenčiansky', '1', '0.00000'), ('2931', '189', 'TV', 'Trnavsk√Ω', '1', '0.00000'), ('2932', '189', 'ZI', '≈Ωilinsk√Ω', '1', '0.00000'), ('2933', '191', 'CE', 'Central', '1', '0.00000'), ('2934', '191', 'CH', 'Choiseul', '1', '0.00000'), ('2935', '191', 'GC', 'Guadalcanal', '1', '0.00000'), ('2936', '191', 'HO', 'Honiara', '1', '0.00000'), ('2937', '191', 'IS', 'Isabel', '1', '0.00000'), ('2938', '191', 'MK', 'Makira', '1', '0.00000'), ('2939', '191', 'ML', 'Malaita', '1', '0.00000'), ('2940', '191', 'RB', 'Rennell and Bellona', '1', '0.00000'), ('2941', '191', 'TM', 'Temotu', '1', '0.00000'), ('2942', '191', 'WE', 'Western', '1', '0.00000'), ('2943', '192', 'AW', 'Awdal', '1', '0.00000'), ('2944', '192', 'BK', 'Bakool', '1', '0.00000'), ('2945', '192', 'BN', 'Banaadir', '1', '0.00000'), ('2946', '192', 'BR', 'Bari', '1', '0.00000'), ('2947', '192', 'BY', 'Bay', '1', '0.00000'), ('2948', '192', 'GA', 'Galguduud', '1', '0.00000'), ('2949', '192', 'GE', 'Gedo', '1', '0.00000'), ('2950', '192', 'HI', 'Hiiraan', '1', '0.00000'), ('2951', '192', 'JD', 'Jubbada Dhexe', '1', '0.00000'), ('2952', '192', 'JH', 'Jubbada Hoose', '1', '0.00000'), ('2953', '192', 'MU', 'Mudug', '1', '0.00000'), ('2954', '192', 'NU', 'Nugaal', '1', '0.00000'), ('2955', '192', 'SA', 'Sanaag', '1', '0.00000'), ('2956', '192', 'SD', 'Shabeellaha Dhexe', '1', '0.00000'), ('2957', '192', 'SH', 'Shabeellaha Hoose', '1', '0.00000'), ('2958', '192', 'SL', 'Sool', '1', '0.00000'), ('2959', '192', 'TO', 'Togdheer', '1', '0.00000'), ('2960', '192', 'WG', 'Woqooyi Galbeed', '1', '0.00000'), ('2961', '193', 'EC', 'Eastern Cape', '1', '0.00000'), ('2962', '193', 'FS', 'Free State', '1', '0.00000'), ('2963', '193', 'GT', 'Gauteng', '1', '0.00000'), ('2964', '193', 'KN', 'KwaZulu-Natal', '1', '0.00000'), ('2965', '193', 'LP', 'Limpopo', '1', '0.00000'), ('2966', '193', 'MP', 'Mpumalanga', '1', '0.00000'), ('2967', '193', 'NW', 'North West', '1', '0.00000'), ('2968', '193', 'NC', 'Northern Cape', '1', '0.00000'), ('2969', '193', 'WC', 'Western Cape', '1', '0.00000'), ('2970', '195', 'CA', 'La Coruña', '1', '0.00000'), ('2971', '195', 'AL', 'Álava', '1', '0.00000'), ('2972', '195', 'AB', 'Albacete', '1', '0.00000'), ('2973', '195', 'AC', 'Alicante', '1', '0.00000'), ('2974', '195', 'AM', 'Almeria', '1', '0.00000'), ('2975', '195', 'AS', 'Asturias', '1', '0.00000'), ('2976', '195', 'AV', 'Ávila', '1', '0.00000'), ('2977', '195', 'BJ', 'Badajoz', '1', '0.00000'), ('2978', '195', 'IB', 'Baleares', '1', '0.00000'), ('2979', '195', 'BA', 'Barcelona', '1', '0.00000'), ('2980', '195', 'BU', 'Burgos', '1', '0.00000'), ('2981', '195', 'CC', 'Cáceres', '1', '0.00000'), ('2982', '195', 'CZ', 'Cádiz', '1', '0.00000'), ('2983', '195', 'CT', 'Cantabria', '1', '0.00000'), ('2984', '195', 'CL', 'Castellón', '1', '0.00000'), ('2985', '195', 'CE', 'Ceuta', '1', '0.00000'), ('2986', '195', 'CR', 'Ciudad Real', '1', '0.00000'), ('2987', '195', 'CD', 'Córdoba', '1', '0.00000'), ('2988', '195', 'CU', 'Cuenca', '1', '0.00000'), ('2989', '195', 'GI', 'Girona', '1', '0.00000'), ('2990', '195', 'GD', 'Granada', '1', '0.00000'), ('2991', '195', 'GJ', 'Guadalajara', '1', '0.00000'), ('2992', '195', 'GP', 'Guipúzcoa', '1', '0.00000'), ('2993', '195', 'HL', 'Huelva', '1', '0.00000'), ('2994', '195', 'HS', 'Huesca', '1', '0.00000'), ('2995', '195', 'JN', 'Jaén', '1', '0.00000'), ('2996', '195', 'RJ', 'La Rioja', '1', '0.00000'), ('2997', '195', 'PM', 'Las Palmas', '1', '0.00000'), ('2998', '195', 'LE', 'Leon', '1', '0.00000'), ('2999', '195', 'LL', 'Lleida', '1', '0.00000'), ('3000', '195', 'LG', 'Lugo', '1', '0.00000'), ('3001', '195', 'MD', 'Madrid', '1', '0.00000'), ('3002', '195', 'MA', 'Malaga', '1', '0.00000'), ('3003', '195', 'ML', 'Melilla', '1', '0.00000'), ('3004', '195', 'MU', 'Murcia', '1', '0.00000'), ('3005', '195', 'NV', 'Navarra', '1', '0.00000'), ('3006', '195', 'OU', 'Ourense', '1', '0.00000'), ('3007', '195', 'PL', 'Palencia', '1', '0.00000'), ('3008', '195', 'PO', 'Pontevedra', '1', '0.00000'), ('3009', '195', 'SL', 'Salamanca', '1', '0.00000'), ('3010', '195', 'SC', 'Santa Cruz de Tenerife', '1', '0.00000'), ('3011', '195', 'SG', 'Segovia', '1', '0.00000'), ('3012', '195', 'SV', 'Sevilla', '1', '0.00000'), ('3013', '195', 'SO', 'Soria', '1', '0.00000'), ('3014', '195', 'TA', 'Tarragona', '1', '0.00000'), ('3015', '195', 'TE', 'Teruel', '1', '0.00000'), ('3016', '195', 'TO', 'Toledo', '1', '0.00000'), ('3017', '195', 'VC', 'Valencia', '1', '0.00000'), ('3018', '195', 'VD', 'Valladolid', '1', '0.00000'), ('3019', '195', 'VZ', 'Vizcaya', '1', '0.00000'), ('3020', '195', 'ZM', 'Zamora', '1', '0.00000'), ('3021', '195', 'ZR', 'Zaragoza', '1', '0.00000'), ('3022', '196', 'CE', 'Central', '1', '0.00000'), ('3023', '196', 'EA', 'Eastern', '1', '0.00000'), ('3024', '196', 'NC', 'North Central', '1', '0.00000'), ('3025', '196', 'NO', 'Northern', '1', '0.00000'), ('3026', '196', 'NW', 'North Western', '1', '0.00000'), ('3027', '196', 'SA', 'Sabaragamuwa', '1', '0.00000'), ('3028', '196', 'SO', 'Southern', '1', '0.00000'), ('3029', '196', 'UV', 'Uva', '1', '0.00000'), ('3030', '196', 'WE', 'Western', '1', '0.00000'), ('3031', '197', 'A', 'Ascension', '1', '0.00000'), ('3032', '197', 'S', 'Saint Helena', '1', '0.00000'), ('3033', '197', 'T', 'Tristan da Cunha', '1', '0.00000'), ('3034', '199', 'ANL', 'A\'ali an Nil', '1', '0.00000'), ('3035', '199', 'BAM', 'Al Bahr al Ahmar', '1', '0.00000'), ('3036', '199', 'BRT', 'Al Buhayrat', '1', '0.00000'), ('3037', '199', 'JZR', 'Al Jazirah', '1', '0.00000'), ('3038', '199', 'KRT', 'Al Khartum', '1', '0.00000'), ('3039', '199', 'QDR', 'Al Qadarif', '1', '0.00000'), ('3040', '199', 'WDH', 'Al Wahdah', '1', '0.00000'), ('3041', '199', 'ANB', 'An Nil al Abyad', '1', '0.00000'), ('3042', '199', 'ANZ', 'An Nil al Azraq', '1', '0.00000'), ('3043', '199', 'ASH', 'Ash Shamaliyah', '1', '0.00000'), ('3044', '199', 'BJA', 'Bahr al Jabal', '1', '0.00000'), ('3045', '199', 'GIS', 'Gharb al Istiwa\'iyah', '1', '0.00000'), ('3046', '199', 'GBG', 'Gharb Bahr al Ghazal', '1', '0.00000'), ('3047', '199', 'GDA', 'Gharb Darfur', '1', '0.00000'), ('3048', '199', 'GKU', 'Gharb Kurdufan', '1', '0.00000'), ('3049', '199', 'JDA', 'Janub Darfur', '1', '0.00000'), ('3050', '199', 'JKU', 'Janub Kurdufan', '1', '0.00000'), ('3051', '199', 'JQL', 'Junqali', '1', '0.00000'), ('3052', '199', 'KSL', 'Kassala', '1', '0.00000'), ('3053', '199', 'NNL', 'Nahr an Nil', '1', '0.00000'), ('3054', '199', 'SBG', 'Shamal Bahr al Ghazal', '1', '0.00000'), ('3055', '199', 'SDA', 'Shamal Darfur', '1', '0.00000'), ('3056', '199', 'SKU', 'Shamal Kurdufan', '1', '0.00000'), ('3057', '199', 'SIS', 'Sharq al Istiwa\'iyah', '1', '0.00000'), ('3058', '199', 'SNR', 'Sinnar', '1', '0.00000'), ('3059', '199', 'WRB', 'Warab', '1', '0.00000'), ('3060', '200', 'BR', 'Brokopondo', '1', '0.00000'), ('3061', '200', 'CM', 'Commewijne', '1', '0.00000'), ('3062', '200', 'CR', 'Coronie', '1', '0.00000'), ('3063', '200', 'MA', 'Marowijne', '1', '0.00000'), ('3064', '200', 'NI', 'Nickerie', '1', '0.00000'), ('3065', '200', 'PA', 'Para', '1', '0.00000'), ('3066', '200', 'PM', 'Paramaribo', '1', '0.00000'), ('3067', '200', 'SA', 'Saramacca', '1', '0.00000'), ('3068', '200', 'SI', 'Sipaliwini', '1', '0.00000'), ('3069', '200', 'WA', 'Wanica', '1', '0.00000'), ('3070', '202', 'H', 'Hhohho', '1', '0.00000'), ('3071', '202', 'L', 'Lubombo', '1', '0.00000'), ('3072', '202', 'M', 'Manzini', '1', '0.00000'), ('3073', '202', 'S', 'Shishelweni', '1', '0.00000'), ('3074', '203', 'K', 'Blekinge', '1', '0.00000'), ('3075', '203', 'W', 'Dalama', '1', '0.00000'), ('3076', '203', 'X', 'Gävleborg', '1', '0.00000'), ('3077', '203', 'I', 'Gotland', '1', '0.00000'), ('3078', '203', 'N', 'Halland', '1', '0.00000'), ('3079', '203', 'Z', 'Jämtland', '1', '0.00000'), ('3080', '203', 'F', 'Jönköping', '1', '0.00000'), ('3081', '203', 'H', 'Kalmar', '1', '0.00000'), ('3082', '203', 'G', 'Kronoberg', '1', '0.00000'), ('3083', '203', 'BD', 'Norrbotten', '1', '0.00000'), ('3084', '203', 'T', 'Örebro', '1', '0.00000'), ('3085', '203', 'E', 'Östergötland', '1', '0.00000'), ('3086', '203', 'M', 'Skåne', '1', '0.00000'), ('3087', '203', 'D', 'Södermanland', '1', '0.00000'), ('3088', '203', 'AB', 'Stockholm', '1', '0.00000'), ('3089', '203', 'C', 'Uppsala', '1', '0.00000'), ('3090', '203', 'S', 'Värmland', '1', '0.00000'), ('3091', '203', 'AC', 'Västerbotten', '1', '0.00000'), ('3092', '203', 'Y', 'Västernorrland', '1', '0.00000'), ('3093', '203', 'U', 'Västmanland', '1', '0.00000'), ('3094', '203', 'O', 'Västra Götaland', '1', '0.00000'), ('3095', '204', 'AG', 'Aargau', '1', '0.00000'), ('3096', '204', 'AR', 'Appenzell Ausserrhoden', '1', '0.00000'), ('3097', '204', 'AI', 'Appenzell Innerrhoden', '1', '0.00000'), ('3098', '204', 'BS', 'Basel-Stadt', '1', '0.00000'), ('3099', '204', 'BL', 'Basel-Landschaft', '1', '0.00000'), ('3100', '204', 'BE', 'Bern', '1', '0.00000'), ('3101', '204', 'FR', 'Fribourg', '1', '0.00000'), ('3102', '204', 'GE', 'Genève', '1', '0.00000'), ('3103', '204', 'GL', 'Glarus', '1', '0.00000'), ('3104', '204', 'GR', 'Graubünden', '1', '0.00000'), ('3105', '204', 'JU', 'Jura', '1', '0.00000'), ('3106', '204', 'LU', 'Luzern', '1', '0.00000'), ('3107', '204', 'NE', 'Neuchâtel', '1', '0.00000'), ('3108', '204', 'NW', 'Nidwald', '1', '0.00000'), ('3109', '204', 'OW', 'Obwald', '1', '0.00000'), ('3110', '204', 'SG', 'St. Gallen', '1', '0.00000'), ('3111', '204', 'SH', 'Schaffhausen', '1', '0.00000'), ('3112', '204', 'SZ', 'Schwyz', '1', '0.00000'), ('3113', '204', 'SO', 'Solothurn', '1', '0.00000'), ('3114', '204', 'TG', 'Thurgau', '1', '0.00000'), ('3115', '204', 'TI', 'Ticino', '1', '0.00000'), ('3116', '204', 'UR', 'Uri', '1', '0.00000'), ('3117', '204', 'VS', 'Valais', '1', '0.00000'), ('3118', '204', 'VD', 'Vaud', '1', '0.00000'), ('3119', '204', 'ZG', 'Zug', '1', '0.00000'), ('3120', '204', 'ZH', 'Zürich', '1', '0.00000'), ('3121', '205', 'HA', 'Al Hasakah', '1', '0.00000'), ('3122', '205', 'LA', 'Al Ladhiqiyah', '1', '0.00000'), ('3123', '205', 'QU', 'Al Qunaytirah', '1', '0.00000'), ('3124', '205', 'RQ', 'Ar Raqqah', '1', '0.00000'), ('3125', '205', 'SU', 'As Suwayda', '1', '0.00000'), ('3126', '205', 'DA', 'Dara', '1', '0.00000'), ('3127', '205', 'DZ', 'Dayr az Zawr', '1', '0.00000'), ('3128', '205', 'DI', 'Dimashq', '1', '0.00000'), ('3129', '205', 'HL', 'Halab', '1', '0.00000'), ('3130', '205', 'HM', 'Hamah', '1', '0.00000'), ('3131', '205', 'HI', 'Hims', '1', '0.00000'), ('3132', '205', 'ID', 'Idlib', '1', '0.00000'), ('3133', '205', 'RD', 'Rif Dimashq', '1', '0.00000'), ('3134', '205', 'TA', 'Tartus', '1', '0.00000'), ('3135', '206', 'CH', 'Chang-hua', '1', '0.00000'), ('3136', '206', 'CI', 'Chia-i', '1', '0.00000'), ('3137', '206', 'HS', 'Hsin-chu', '1', '0.00000'), ('3138', '206', 'HL', 'Hua-lien', '1', '0.00000'), ('3139', '206', 'IL', 'I-lan', '1', '0.00000'), ('3140', '206', 'KH', 'Kao-hsiung county', '1', '0.00000'), ('3141', '206', 'KM', 'Kin-men', '1', '0.00000'), ('3142', '206', 'LC', 'Lien-chiang', '1', '0.00000'), ('3143', '206', 'ML', 'Miao-li', '1', '0.00000'), ('3144', '206', 'NT', 'Nan-t\'ou', '1', '0.00000'), ('3145', '206', 'PH', 'P\'eng-hu', '1', '0.00000'), ('3146', '206', 'PT', 'P\'ing-tung', '1', '0.00000'), ('3147', '206', 'TG', 'T\'ai-chung', '1', '0.00000'), ('3148', '206', 'TA', 'T\'ai-nan', '1', '0.00000'), ('3149', '206', 'TP', 'T\'ai-pei county', '1', '0.00000'), ('3150', '206', 'TT', 'T\'ai-tung', '1', '0.00000'), ('3151', '206', 'TY', 'T\'ao-yuan', '1', '0.00000'), ('3152', '206', 'YL', 'Yun-lin', '1', '0.00000'), ('3153', '206', 'CC', 'Chia-i city', '1', '0.00000'), ('3154', '206', 'CL', 'Chi-lung', '1', '0.00000'), ('3155', '206', 'HC', 'Hsin-chu', '1', '0.00000'), ('3156', '206', 'TH', 'T\'ai-chung', '1', '0.00000'), ('3157', '206', 'TN', 'T\'ai-nan', '1', '0.00000'), ('3158', '206', 'KC', 'Kao-hsiung city', '1', '0.00000'), ('3159', '206', 'TC', 'T\'ai-pei city', '1', '0.00000'), ('3160', '207', 'GB', 'Gorno-Badakhstan', '1', '0.00000'), ('3161', '207', 'KT', 'Khatlon', '1', '0.00000'), ('3162', '207', 'SU', 'Sughd', '1', '0.00000'), ('3163', '208', 'AR', 'Arusha', '1', '0.00000'), ('3164', '208', 'DS', 'Dar es Salaam', '1', '0.00000'), ('3165', '208', 'DO', 'Dodoma', '1', '0.00000'), ('3166', '208', 'IR', 'Iringa', '1', '0.00000'), ('3167', '208', 'KA', 'Kagera', '1', '0.00000'), ('3168', '208', 'KI', 'Kigoma', '1', '0.00000'), ('3169', '208', 'KJ', 'Kilimanjaro', '1', '0.00000'), ('3170', '208', 'LN', 'Lindi', '1', '0.00000'), ('3171', '208', 'MY', 'Manyara', '1', '0.00000'), ('3172', '208', 'MR', 'Mara', '1', '0.00000'), ('3173', '208', 'MB', 'Mbeya', '1', '0.00000'), ('3174', '208', 'MO', 'Morogoro', '1', '0.00000'), ('3175', '208', 'MT', 'Mtwara', '1', '0.00000'), ('3176', '208', 'MW', 'Mwanza', '1', '0.00000'), ('3177', '208', 'PN', 'Pemba North', '1', '0.00000'), ('3178', '208', 'PS', 'Pemba South', '1', '0.00000'), ('3179', '208', 'PW', 'Pwani', '1', '0.00000'), ('3180', '208', 'RK', 'Rukwa', '1', '0.00000'), ('3181', '208', 'RV', 'Ruvuma', '1', '0.00000'), ('3182', '208', 'SH', 'Shinyanga', '1', '0.00000'), ('3183', '208', 'SI', 'Singida', '1', '0.00000'), ('3184', '208', 'TB', 'Tabora', '1', '0.00000'), ('3185', '208', 'TN', 'Tanga', '1', '0.00000'), ('3186', '208', 'ZC', 'Zanzibar Central/South', '1', '0.00000'), ('3187', '208', 'ZN', 'Zanzibar North', '1', '0.00000'), ('3188', '208', 'ZU', 'Zanzibar Urban/West', '1', '0.00000'), ('3189', '209', 'Amnat Charoen', 'Amnat Charoen', '1', '0.00000'), ('3190', '209', 'Ang Thong', 'Ang Thong', '1', '0.00000'), ('3191', '209', 'Ayutthaya', 'Ayutthaya', '1', '0.00000'), ('3192', '209', 'Bangkok', 'Bangkok', '1', '0.00000'), ('3193', '209', 'Buriram', 'Buriram', '1', '0.00000'), ('3194', '209', 'Chachoengsao', 'Chachoengsao', '1', '0.00000'), ('3195', '209', 'Chai Nat', 'Chai Nat', '1', '0.00000'), ('3196', '209', 'Chaiyaphum', 'Chaiyaphum', '1', '0.00000'), ('3197', '209', 'Chanthaburi', 'Chanthaburi', '1', '0.00000'), ('3198', '209', 'Chiang Mai', 'Chiang Mai', '1', '0.00000'), ('3199', '209', 'Chiang Rai', 'Chiang Rai', '1', '0.00000'), ('3200', '209', 'Chon Buri', 'Chon Buri', '1', '0.00000'), ('3201', '209', 'Chumphon', 'Chumphon', '1', '0.00000'), ('3202', '209', 'Kalasin', 'Kalasin', '1', '0.00000'), ('3203', '209', 'Kamphaeng Phet', 'Kamphaeng Phet', '1', '0.00000'), ('3204', '209', 'Kanchanaburi', 'Kanchanaburi', '1', '0.00000'), ('3205', '209', 'Khon Kaen', 'Khon Kaen', '1', '0.00000'), ('3206', '209', 'Krabi', 'Krabi', '1', '0.00000'), ('3207', '209', 'Lampang', 'Lampang', '1', '0.00000'), ('3208', '209', 'Lamphun', 'Lamphun', '1', '0.00000'), ('3209', '209', 'Loei', 'Loei', '1', '0.00000'), ('3210', '209', 'Lop Buri', 'Lop Buri', '1', '0.00000'), ('3211', '209', 'Mae Hong Son', 'Mae Hong Son', '1', '0.00000'), ('3212', '209', 'Maha Sarakham', 'Maha Sarakham', '1', '0.00000'), ('3213', '209', 'Mukdahan', 'Mukdahan', '1', '0.00000'), ('3214', '209', 'Nakhon Nayok', 'Nakhon Nayok', '1', '0.00000'), ('3215', '209', 'Nakhon Pathom', 'Nakhon Pathom', '1', '0.00000'), ('3216', '209', 'Nakhon Phanom', 'Nakhon Phanom', '1', '0.00000'), ('3217', '209', 'Nakhon Ratchasima', 'Nakhon Ratchasima', '1', '0.00000'), ('3218', '209', 'Nakhon Sawan', 'Nakhon Sawan', '1', '0.00000'), ('3219', '209', 'Nakhon Si Thammarat', 'Nakhon Si Thammarat', '1', '0.00000'), ('3220', '209', 'Nan', 'Nan', '1', '0.00000'), ('3221', '209', 'Narathiwat', 'Narathiwat', '1', '0.00000'), ('3222', '209', 'Nong Bua Lamphu', 'Nong Bua Lamphu', '1', '0.00000'), ('3223', '209', 'Nong Khai', 'Nong Khai', '1', '0.00000'), ('3224', '209', 'Nonthaburi', 'Nonthaburi', '1', '0.00000'), ('3225', '209', 'Pathum Thani', 'Pathum Thani', '1', '0.00000'), ('3226', '209', 'Pattani', 'Pattani', '1', '0.00000'), ('3227', '209', 'Phangnga', 'Phangnga', '1', '0.00000'), ('3228', '209', 'Phatthalung', 'Phatthalung', '1', '0.00000'), ('3229', '209', 'Phayao', 'Phayao', '1', '0.00000'), ('3230', '209', 'Phetchabun', 'Phetchabun', '1', '0.00000'), ('3231', '209', 'Phetchaburi', 'Phetchaburi', '1', '0.00000'), ('3232', '209', 'Phichit', 'Phichit', '1', '0.00000'), ('3233', '209', 'Phitsanulok', 'Phitsanulok', '1', '0.00000'), ('3234', '209', 'Phrae', 'Phrae', '1', '0.00000'), ('3235', '209', 'Phuket', 'Phuket', '1', '0.00000'), ('3236', '209', 'Prachin Buri', 'Prachin Buri', '1', '0.00000'), ('3237', '209', 'Prachuap Khiri Khan', 'Prachuap Khiri Khan', '1', '0.00000'), ('3238', '209', 'Ranong', 'Ranong', '1', '0.00000'), ('3239', '209', 'Ratchaburi', 'Ratchaburi', '1', '0.00000'), ('3240', '209', 'Rayong', 'Rayong', '1', '0.00000'), ('3241', '209', 'Roi Et', 'Roi Et', '1', '0.00000'), ('3242', '209', 'Sa Kaeo', 'Sa Kaeo', '1', '0.00000'), ('3243', '209', 'Sakon Nakhon', 'Sakon Nakhon', '1', '0.00000'), ('3244', '209', 'Samut Prakan', 'Samut Prakan', '1', '0.00000'), ('3245', '209', 'Samut Sakhon', 'Samut Sakhon', '1', '0.00000'), ('3246', '209', 'Samut Songkhram', 'Samut Songkhram', '1', '0.00000'), ('3247', '209', 'Sara Buri', 'Sara Buri', '1', '0.00000'), ('3248', '209', 'Satun', 'Satun', '1', '0.00000'), ('3249', '209', 'Sing Buri', 'Sing Buri', '1', '0.00000'), ('3250', '209', 'Sisaket', 'Sisaket', '1', '0.00000'), ('3251', '209', 'Songkhla', 'Songkhla', '1', '0.00000'), ('3252', '209', 'Sukhothai', 'Sukhothai', '1', '0.00000'), ('3253', '209', 'Suphan Buri', 'Suphan Buri', '1', '0.00000'), ('3254', '209', 'Surat Thani', 'Surat Thani', '1', '0.00000'), ('3255', '209', 'Surin', 'Surin', '1', '0.00000'), ('3256', '209', 'Tak', 'Tak', '1', '0.00000'), ('3257', '209', 'Trang', 'Trang', '1', '0.00000'), ('3258', '209', 'Trat', 'Trat', '1', '0.00000'), ('3259', '209', 'Ubon Ratchathani', 'Ubon Ratchathani', '1', '0.00000'), ('3260', '209', 'Udon Thani', 'Udon Thani', '1', '0.00000'), ('3261', '209', 'Uthai Thani', 'Uthai Thani', '1', '0.00000'), ('3262', '209', 'Uttaradit', 'Uttaradit', '1', '0.00000'), ('3263', '209', 'Yala', 'Yala', '1', '0.00000'), ('3264', '209', 'Yasothon', 'Yasothon', '1', '0.00000'), ('3265', '210', 'K', 'Kara', '1', '0.00000'), ('3266', '210', 'P', 'Plateaux', '1', '0.00000'), ('3267', '210', 'S', 'Savanes', '1', '0.00000'), ('3268', '210', 'C', 'Centrale', '1', '0.00000'), ('3269', '210', 'M', 'Maritime', '1', '0.00000'), ('3270', '211', 'A', 'Atafu', '1', '0.00000'), ('3271', '211', 'F', 'Fakaofo', '1', '0.00000'), ('3272', '211', 'N', 'Nukunonu', '1', '0.00000'), ('3273', '212', 'H', 'Ha\'apai', '1', '0.00000'), ('3274', '212', 'T', 'Tongatapu', '1', '0.00000'), ('3275', '212', 'V', 'Vava\'u', '1', '0.00000'), ('3276', '213', 'CT', 'Couva/Tabaquite/Talparo', '1', '0.00000'), ('3277', '213', 'DM', 'Diego Martin', '1', '0.00000'), ('3278', '213', 'MR', 'Mayaro/Rio Claro', '1', '0.00000'), ('3279', '213', 'PD', 'Penal/Debe', '1', '0.00000'), ('3280', '213', 'PT', 'Princes Town', '1', '0.00000'), ('3281', '213', 'SG', 'Sangre Grande', '1', '0.00000'), ('3282', '213', 'SL', 'San Juan/Laventille', '1', '0.00000'), ('3283', '213', 'SI', 'Siparia', '1', '0.00000'), ('3284', '213', 'TP', 'Tunapuna/Piarco', '1', '0.00000'), ('3285', '213', 'PS', 'Port of Spain', '1', '0.00000'), ('3286', '213', 'SF', 'San Fernando', '1', '0.00000'), ('3287', '213', 'AR', 'Arima', '1', '0.00000'), ('3288', '213', 'PF', 'Point Fortin', '1', '0.00000'), ('3289', '213', 'CH', 'Chaguanas', '1', '0.00000'), ('3290', '213', 'TO', 'Tobago', '1', '0.00000'), ('3291', '214', 'AR', 'Ariana', '1', '0.00000'), ('3292', '214', 'BJ', 'Beja', '1', '0.00000'), ('3293', '214', 'BA', 'Ben Arous', '1', '0.00000'), ('3294', '214', 'BI', 'Bizerte', '1', '0.00000'), ('3295', '214', 'GB', 'Gabes', '1', '0.00000'), ('3296', '214', 'GF', 'Gafsa', '1', '0.00000'), ('3297', '214', 'JE', 'Jendouba', '1', '0.00000'), ('3298', '214', 'KR', 'Kairouan', '1', '0.00000'), ('3299', '214', 'KS', 'Kasserine', '1', '0.00000'), ('3300', '214', 'KB', 'Kebili', '1', '0.00000'), ('3301', '214', 'KF', 'Kef', '1', '0.00000'), ('3302', '214', 'MH', 'Mahdia', '1', '0.00000'), ('3303', '214', 'MN', 'Manouba', '1', '0.00000'), ('3304', '214', 'ME', 'Medenine', '1', '0.00000'), ('3305', '214', 'MO', 'Monastir', '1', '0.00000'), ('3306', '214', 'NA', 'Nabeul', '1', '0.00000'), ('3307', '214', 'SF', 'Sfax', '1', '0.00000'), ('3308', '214', 'SD', 'Sidi', '1', '0.00000'), ('3309', '214', 'SL', 'Siliana', '1', '0.00000'), ('3310', '214', 'SO', 'Sousse', '1', '0.00000'), ('3311', '214', 'TA', 'Tataouine', '1', '0.00000'), ('3312', '214', 'TO', 'Tozeur', '1', '0.00000'), ('3313', '214', 'TU', 'Tunis', '1', '0.00000'), ('3314', '214', 'ZA', 'Zaghouan', '1', '0.00000'), ('3315', '215', 'ADA', 'Adana', '1', '0.00000'), ('3316', '215', 'ADI', 'Adiyaman', '1', '0.00000'), ('3317', '215', 'AFY', 'Afyonkarahisar', '1', '0.00000'), ('3318', '215', 'AGR', 'Agri', '1', '0.00000'), ('3319', '215', 'AKS', 'Aksaray', '1', '0.00000'), ('3320', '215', 'AMA', 'Amasya', '1', '0.00000'), ('3321', '215', 'ANK', 'Ankara', '1', '0.00000'), ('3322', '215', 'ANT', 'Antalya', '1', '0.00000'), ('3323', '215', 'ARD', 'Ardahan', '1', '0.00000'), ('3324', '215', 'ART', 'Artvin', '1', '0.00000'), ('3325', '215', 'AYI', 'Aydin', '1', '0.00000'), ('3326', '215', 'BAL', 'Balikesir', '1', '0.00000'), ('3327', '215', 'BAR', 'Bartin', '1', '0.00000'), ('3328', '215', 'BAT', 'Batman', '1', '0.00000'), ('3329', '215', 'BAY', 'Bayburt', '1', '0.00000'), ('3330', '215', 'BIL', 'Bilecik', '1', '0.00000'), ('3331', '215', 'BIN', 'Bingol', '1', '0.00000'), ('3332', '215', 'BIT', 'Bitlis', '1', '0.00000'), ('3333', '215', 'BOL', 'Bolu', '1', '0.00000'), ('3334', '215', 'BRD', 'Burdur', '1', '0.00000'), ('3335', '215', 'BRS', 'Bursa', '1', '0.00000'), ('3336', '215', 'CKL', 'Canakkale', '1', '0.00000'), ('3337', '215', 'CKR', 'Cankiri', '1', '0.00000'), ('3338', '215', 'COR', 'Corum', '1', '0.00000'), ('3339', '215', 'DEN', 'Denizli', '1', '0.00000'), ('3340', '215', 'DIY', 'Diyarbakir', '1', '0.00000'), ('3341', '215', 'DUZ', 'Duzce', '1', '0.00000'), ('3342', '215', 'EDI', 'Edirne', '1', '0.00000'), ('3343', '215', 'ELA', 'Elazig', '1', '0.00000'), ('3344', '215', 'EZC', 'Erzincan', '1', '0.00000'), ('3345', '215', 'EZR', 'Erzurum', '1', '0.00000'), ('3346', '215', 'ESK', 'Eskisehir', '1', '0.00000'), ('3347', '215', 'GAZ', 'Gaziantep', '1', '0.00000'), ('3348', '215', 'GIR', 'Giresun', '1', '0.00000'), ('3349', '215', 'GMS', 'Gumushane', '1', '0.00000'), ('3350', '215', 'HKR', 'Hakkari', '1', '0.00000'), ('3351', '215', 'HTY', 'Hatay', '1', '0.00000'), ('3352', '215', 'IGD', 'Igdir', '1', '0.00000'), ('3353', '215', 'ISP', 'Isparta', '1', '0.00000'), ('3354', '215', 'IST', 'Istanbul', '1', '0.00000'), ('3355', '215', 'IZM', 'Izmir', '1', '0.00000'), ('3356', '215', 'KAH', 'Kahramanmaras', '1', '0.00000'), ('3357', '215', 'KRB', 'Karabuk', '1', '0.00000'), ('3358', '215', 'KRM', 'Karaman', '1', '0.00000'), ('3359', '215', 'KRS', 'Kars', '1', '0.00000'), ('3360', '215', 'KAS', 'Kastamonu', '1', '0.00000'), ('3361', '215', 'KAY', 'Kayseri', '1', '0.00000'), ('3362', '215', 'KLS', 'Kilis', '1', '0.00000'), ('3363', '215', 'KRK', 'Kirikkale', '1', '0.00000'), ('3364', '215', 'KLR', 'Kirklareli', '1', '0.00000'), ('3365', '215', 'KRH', 'Kirsehir', '1', '0.00000'), ('3366', '215', 'KOC', 'Kocaeli', '1', '0.00000'), ('3367', '215', 'KON', 'Konya', '1', '0.00000'), ('3368', '215', 'KUT', 'Kutahya', '1', '0.00000'), ('3369', '215', 'MAL', 'Malatya', '1', '0.00000'), ('3370', '215', 'MAN', 'Manisa', '1', '0.00000'), ('3371', '215', 'MAR', 'Mardin', '1', '0.00000'), ('3372', '215', 'MER', 'Mersin', '1', '0.00000'), ('3373', '215', 'MUG', 'Mugla', '1', '0.00000'), ('3374', '215', 'MUS', 'Mus', '1', '0.00000'), ('3375', '215', 'NEV', 'Nevsehir', '1', '0.00000'), ('3376', '215', 'NIG', 'Nigde', '1', '0.00000'), ('3377', '215', 'ORD', 'Ordu', '1', '0.00000'), ('3378', '215', 'OSM', 'Osmaniye', '1', '0.00000'), ('3379', '215', 'RIZ', 'Rize', '1', '0.00000'), ('3380', '215', 'SAK', 'Sakarya', '1', '0.00000'), ('3381', '215', 'SAM', 'Samsun', '1', '0.00000'), ('3382', '215', 'SAN', 'Sanliurfa', '1', '0.00000'), ('3383', '215', 'SII', 'Siirt', '1', '0.00000'), ('3384', '215', 'SIN', 'Sinop', '1', '0.00000'), ('3385', '215', 'SIR', 'Sirnak', '1', '0.00000'), ('3386', '215', 'SIV', 'Sivas', '1', '0.00000'), ('3387', '215', 'TEL', 'Tekirdag', '1', '0.00000'), ('3388', '215', 'TOK', 'Tokat', '1', '0.00000'), ('3389', '215', 'TRA', 'Trabzon', '1', '0.00000'), ('3390', '215', 'TUN', 'Tunceli', '1', '0.00000'), ('3391', '215', 'USK', 'Usak', '1', '0.00000'), ('3392', '215', 'VAN', 'Van', '1', '0.00000'), ('3393', '215', 'YAL', 'Yalova', '1', '0.00000'), ('3394', '215', 'YOZ', 'Yozgat', '1', '0.00000'), ('3395', '215', 'ZON', 'Zonguldak', '1', '0.00000'), ('3396', '216', 'A', 'Ahal Welayaty', '1', '0.00000'), ('3397', '216', 'B', 'Balkan Welayaty', '1', '0.00000'), ('3398', '216', 'D', 'Dashhowuz Welayaty', '1', '0.00000'), ('3399', '216', 'L', 'Lebap Welayaty', '1', '0.00000'), ('3400', '216', 'M', 'Mary Welayaty', '1', '0.00000'), ('3401', '217', 'AC', 'Ambergris Cays', '1', '0.00000'), ('3402', '217', 'DC', 'Dellis Cay', '1', '0.00000'), ('3403', '217', 'FC', 'French Cay', '1', '0.00000'), ('3404', '217', 'LW', 'Little Water Cay', '1', '0.00000'), ('3405', '217', 'RC', 'Parrot Cay', '1', '0.00000'), ('3406', '217', 'PN', 'Pine Cay', '1', '0.00000'), ('3407', '217', 'SL', 'Salt Cay', '1', '0.00000'), ('3408', '217', 'GT', 'Grand Turk', '1', '0.00000'), ('3409', '217', 'SC', 'South Caicos', '1', '0.00000'), ('3410', '217', 'EC', 'East Caicos', '1', '0.00000'), ('3411', '217', 'MC', 'Middle Caicos', '1', '0.00000'), ('3412', '217', 'NC', 'North Caicos', '1', '0.00000'), ('3413', '217', 'PR', 'Providenciales', '1', '0.00000'), ('3414', '217', 'WC', 'West Caicos', '1', '0.00000'), ('3415', '218', 'NMG', 'Nanumanga', '1', '0.00000'), ('3416', '218', 'NLK', 'Niulakita', '1', '0.00000'), ('3417', '218', 'NTO', 'Niutao', '1', '0.00000'), ('3418', '218', 'FUN', 'Funafuti', '1', '0.00000'), ('3419', '218', 'NME', 'Nanumea', '1', '0.00000'), ('3420', '218', 'NUI', 'Nui', '1', '0.00000'), ('3421', '218', 'NFT', 'Nukufetau', '1', '0.00000'), ('3422', '218', 'NLL', 'Nukulaelae', '1', '0.00000'), ('3423', '218', 'VAI', 'Vaitupu', '1', '0.00000'), ('3424', '219', 'KAL', 'Kalangala', '1', '0.00000'), ('3425', '219', 'KMP', 'Kampala', '1', '0.00000'), ('3426', '219', 'KAY', 'Kayunga', '1', '0.00000'), ('3427', '219', 'KIB', 'Kiboga', '1', '0.00000'), ('3428', '219', 'LUW', 'Luwero', '1', '0.00000'), ('3429', '219', 'MAS', 'Masaka', '1', '0.00000'), ('3430', '219', 'MPI', 'Mpigi', '1', '0.00000'), ('3431', '219', 'MUB', 'Mubende', '1', '0.00000'), ('3432', '219', 'MUK', 'Mukono', '1', '0.00000'), ('3433', '219', 'NKS', 'Nakasongola', '1', '0.00000'), ('3434', '219', 'RAK', 'Rakai', '1', '0.00000'), ('3435', '219', 'SEM', 'Sembabule', '1', '0.00000'), ('3436', '219', 'WAK', 'Wakiso', '1', '0.00000'), ('3437', '219', 'BUG', 'Bugiri', '1', '0.00000'), ('3438', '219', 'BUS', 'Busia', '1', '0.00000'), ('3439', '219', 'IGA', 'Iganga', '1', '0.00000'), ('3440', '219', 'JIN', 'Jinja', '1', '0.00000'), ('3441', '219', 'KAB', 'Kaberamaido', '1', '0.00000'), ('3442', '219', 'KML', 'Kamuli', '1', '0.00000'), ('3443', '219', 'KPC', 'Kapchorwa', '1', '0.00000'), ('3444', '219', 'KTK', 'Katakwi', '1', '0.00000'), ('3445', '219', 'KUM', 'Kumi', '1', '0.00000'), ('3446', '219', 'MAY', 'Mayuge', '1', '0.00000'), ('3447', '219', 'MBA', 'Mbale', '1', '0.00000'), ('3448', '219', 'PAL', 'Pallisa', '1', '0.00000'), ('3449', '219', 'SIR', 'Sironko', '1', '0.00000'), ('3450', '219', 'SOR', 'Soroti', '1', '0.00000'), ('3451', '219', 'TOR', 'Tororo', '1', '0.00000'), ('3452', '219', 'ADJ', 'Adjumani', '1', '0.00000'), ('3453', '219', 'APC', 'Apac', '1', '0.00000'), ('3454', '219', 'ARU', 'Arua', '1', '0.00000'), ('3455', '219', 'GUL', 'Gulu', '1', '0.00000'), ('3456', '219', 'KIT', 'Kitgum', '1', '0.00000'), ('3457', '219', 'KOT', 'Kotido', '1', '0.00000'), ('3458', '219', 'LIR', 'Lira', '1', '0.00000'), ('3459', '219', 'MRT', 'Moroto', '1', '0.00000'), ('3460', '219', 'MOY', 'Moyo', '1', '0.00000'), ('3461', '219', 'NAK', 'Nakapiripirit', '1', '0.00000'), ('3462', '219', 'NEB', 'Nebbi', '1', '0.00000'), ('3463', '219', 'PAD', 'Pader', '1', '0.00000'), ('3464', '219', 'YUM', 'Yumbe', '1', '0.00000'), ('3465', '219', 'BUN', 'Bundibugyo', '1', '0.00000'), ('3466', '219', 'BSH', 'Bushenyi', '1', '0.00000'), ('3467', '219', 'HOI', 'Hoima', '1', '0.00000'), ('3468', '219', 'KBL', 'Kabale', '1', '0.00000'), ('3469', '219', 'KAR', 'Kabarole', '1', '0.00000'), ('3470', '219', 'KAM', 'Kamwenge', '1', '0.00000'), ('3471', '219', 'KAN', 'Kanungu', '1', '0.00000'), ('3472', '219', 'KAS', 'Kasese', '1', '0.00000'), ('3473', '219', 'KBA', 'Kibaale', '1', '0.00000'), ('3474', '219', 'KIS', 'Kisoro', '1', '0.00000'), ('3475', '219', 'KYE', 'Kyenjojo', '1', '0.00000'), ('3476', '219', 'MSN', 'Masindi', '1', '0.00000'), ('3477', '219', 'MBR', 'Mbarara', '1', '0.00000'), ('3478', '219', 'NTU', 'Ntungamo', '1', '0.00000'), ('3479', '219', 'RUK', 'Rukungiri', '1', '0.00000'), ('3480', '220', 'CK', 'Cherkasy', '1', '0.00000'), ('3481', '220', 'CH', 'Chernihiv', '1', '0.00000'), ('3482', '220', 'CV', 'Chernivtsi', '1', '0.00000'), ('3483', '220', 'CR', 'Crimea', '1', '0.00000'), ('3484', '220', 'DN', 'Dnipropetrovs\'k', '1', '0.00000'), ('3485', '220', 'DO', 'Donets\'k', '1', '0.00000'), ('3486', '220', 'IV', 'Ivano-Frankivs\'k', '1', '0.00000'), ('3487', '220', 'KL', 'Kharkiv Kherson', '1', '0.00000'), ('3488', '220', 'KM', 'Khmel\'nyts\'kyy', '1', '0.00000'), ('3489', '220', 'KR', 'Kirovohrad', '1', '0.00000'), ('3490', '220', 'KV', 'Kiev', '1', '0.00000'), ('3491', '220', 'KY', 'Kyyiv', '1', '0.00000'), ('3492', '220', 'LU', 'Luhans\'k', '1', '0.00000'), ('3493', '220', 'LV', 'L\'viv', '1', '0.00000'), ('3494', '220', 'MY', 'Mykolayiv', '1', '0.00000'), ('3495', '220', 'OD', 'Odesa', '1', '0.00000'), ('3496', '220', 'PO', 'Poltava', '1', '0.00000'), ('3497', '220', 'RI', 'Rivne', '1', '0.00000'), ('3498', '220', 'SE', 'Sevastopol', '1', '0.00000'), ('3499', '220', 'SU', 'Sumy', '1', '0.00000'), ('3500', '220', 'TE', 'Ternopil\'', '1', '0.00000'), ('3501', '220', 'VI', 'Vinnytsya', '1', '0.00000'), ('3502', '220', 'VO', 'Volyn\'', '1', '0.00000'), ('3503', '220', 'ZK', 'Zakarpattya', '1', '0.00000'), ('3504', '220', 'ZA', 'Zaporizhzhya', '1', '0.00000'), ('3505', '220', 'ZH', 'Zhytomyr', '1', '0.00000'), ('3506', '221', 'AZ', 'Abu Zaby', '1', '0.00000'), ('3507', '221', 'AJ', '\'Ajman', '1', '0.00000'), ('3508', '221', 'FU', 'Al Fujayrah', '1', '0.00000'), ('3509', '221', 'SH', 'Ash Shariqah', '1', '0.00000'), ('3510', '221', 'DU', 'Dubayy', '1', '0.00000'), ('3511', '221', 'RK', 'R\'as al Khaymah', '1', '0.00000'), ('3512', '221', 'UQ', 'Umm al Qaywayn', '1', '0.00000'), ('3513', '222', 'ABN', 'Aberdeen', '1', '0.00000'), ('3514', '222', 'ABNS', 'Aberdeenshire', '1', '0.00000'), ('3515', '222', 'ANG', 'Anglesey', '1', '0.00000'), ('3516', '222', 'AGS', 'Angus', '1', '0.00000'), ('3517', '222', 'ARY', 'Argyll and Bute', '1', '0.00000'), ('3518', '222', 'BEDS', 'Bedfordshire', '1', '0.00000'), ('3519', '222', 'BERKS', 'Berkshire', '1', '0.00000'), ('3520', '222', 'BLA', 'Blaenau Gwent', '1', '0.00000'), ('3521', '222', 'BRI', 'Bridgend', '1', '0.00000'), ('3522', '222', 'BSTL', 'Bristol', '1', '0.00000'), ('3523', '222', 'BUCKS', 'Buckinghamshire', '1', '0.00000'), ('3524', '222', 'CAE', 'Caerphilly', '1', '0.00000'), ('3525', '222', 'CAMBS', 'Cambridgeshire', '1', '0.00000'), ('3526', '222', 'CDF', 'Cardiff', '1', '0.00000'), ('3527', '222', 'CARM', 'Carmarthenshire', '1', '0.00000'), ('3528', '222', 'CDGN', 'Ceredigion', '1', '0.00000'), ('3529', '222', 'CHES', 'Cheshire', '1', '0.00000'), ('3530', '222', 'CLACK', 'Clackmannanshire', '1', '0.00000'), ('3531', '222', 'CON', 'Conwy', '1', '0.00000'), ('3532', '222', 'CORN', 'Cornwall', '1', '0.00000'), ('3533', '222', 'DNBG', 'Denbighshire', '1', '0.00000'), ('3534', '222', 'DERBY', 'Derbyshire', '1', '0.00000'), ('3535', '222', 'DVN', 'Devon', '1', '0.00000'), ('3536', '222', 'DOR', 'Dorset', '1', '0.00000'), ('3537', '222', 'DGL', 'Dumfries and Galloway', '1', '0.00000'), ('3538', '222', 'DUND', 'Dundee', '1', '0.00000'), ('3539', '222', 'DHM', 'Durham', '1', '0.00000'), ('3540', '222', 'ARYE', 'East Ayrshire', '1', '0.00000'), ('3541', '222', 'DUNBE', 'East Dunbartonshire', '1', '0.00000'), ('3542', '222', 'LOTE', 'East Lothian', '1', '0.00000'), ('3543', '222', 'RENE', 'East Renfrewshire', '1', '0.00000'), ('3544', '222', 'ERYS', 'East Riding of Yorkshire', '1', '0.00000'), ('3545', '222', 'SXE', 'East Sussex', '1', '0.00000'), ('3546', '222', 'EDIN', 'Edinburgh', '1', '0.00000'), ('3547', '222', 'ESX', 'Essex', '1', '0.00000'), ('3548', '222', 'FALK', 'Falkirk', '1', '0.00000'), ('3549', '222', 'FFE', 'Fife', '1', '0.00000'), ('3550', '222', 'FLINT', 'Flintshire', '1', '0.00000'), ('3551', '222', 'GLAS', 'Glasgow', '1', '0.00000'), ('3552', '222', 'GLOS', 'Gloucestershire', '1', '0.00000'), ('3553', '222', 'LDN', 'Greater London', '1', '0.00000'), ('3554', '222', 'MCH', 'Greater Manchester', '1', '0.00000'), ('3555', '222', 'GDD', 'Gwynedd', '1', '0.00000'), ('3556', '222', 'HANTS', 'Hampshire', '1', '0.00000'), ('3557', '222', 'HWR', 'Herefordshire', '1', '0.00000'), ('3558', '222', 'HERTS', 'Hertfordshire', '1', '0.00000'), ('3559', '222', 'HLD', 'Highlands', '1', '0.00000'), ('3560', '222', 'IVER', 'Inverclyde', '1', '0.00000'), ('3561', '222', 'IOW', 'Isle of Wight', '1', '0.00000'), ('3562', '222', 'KNT', 'Kent', '1', '0.00000'), ('3563', '222', 'LANCS', 'Lancashire', '1', '0.00000'), ('3564', '222', 'LEICS', 'Leicestershire', '1', '0.00000'), ('3565', '222', 'LINCS', 'Lincolnshire', '1', '0.00000'), ('3566', '222', 'MSY', 'Merseyside', '1', '0.00000'), ('3567', '222', 'MERT', 'Merthyr Tydfil', '1', '0.00000'), ('3568', '222', 'MLOT', 'Midlothian', '1', '0.00000'), ('3569', '222', 'MMOUTH', 'Monmouthshire', '1', '0.00000'), ('3570', '222', 'MORAY', 'Moray', '1', '0.00000'), ('3571', '222', 'NPRTAL', 'Neath Port Talbot', '1', '0.00000'), ('3572', '222', 'NEWPT', 'Newport', '1', '0.00000'), ('3573', '222', 'NOR', 'Norfolk', '1', '0.00000'), ('3574', '222', 'ARYN', 'North Ayrshire', '1', '0.00000'), ('3575', '222', 'LANN', 'North Lanarkshire', '1', '0.00000'), ('3576', '222', 'YSN', 'North Yorkshire', '1', '0.00000'), ('3577', '222', 'NHM', 'Northamptonshire', '1', '0.00000'), ('3578', '222', 'NLD', 'Northumberland', '1', '0.00000'), ('3579', '222', 'NOT', 'Nottinghamshire', '1', '0.00000'), ('3580', '222', 'ORK', 'Orkney Islands', '1', '0.00000'), ('3581', '222', 'OFE', 'Oxfordshire', '1', '0.00000'), ('3582', '222', 'PEM', 'Pembrokeshire', '1', '0.00000'), ('3583', '222', 'PERTH', 'Perth and Kinross', '1', '0.00000'), ('3584', '222', 'PWS', 'Powys', '1', '0.00000'), ('3585', '222', 'REN', 'Renfrewshire', '1', '0.00000'), ('3586', '222', 'RHON', 'Rhondda Cynon Taff', '1', '0.00000'), ('3587', '222', 'RUT', 'Rutland', '1', '0.00000'), ('3588', '222', 'BOR', 'Scottish Borders', '1', '0.00000'), ('3589', '222', 'SHET', 'Shetland Islands', '1', '0.00000'), ('3590', '222', 'SPE', 'Shropshire', '1', '0.00000'), ('3591', '222', 'SOM', 'Somerset', '1', '0.00000'), ('3592', '222', 'ARYS', 'South Ayrshire', '1', '0.00000'), ('3593', '222', 'LANS', 'South Lanarkshire', '1', '0.00000'), ('3594', '222', 'YSS', 'South Yorkshire', '1', '0.00000'), ('3595', '222', 'SFD', 'Staffordshire', '1', '0.00000'), ('3596', '222', 'STIR', 'Stirling', '1', '0.00000'), ('3597', '222', 'SFK', 'Suffolk', '1', '0.00000'), ('3598', '222', 'SRY', 'Surrey', '1', '0.00000'), ('3599', '222', 'SWAN', 'Swansea', '1', '0.00000'), ('3600', '222', 'TORF', 'Torfaen', '1', '0.00000'), ('3601', '222', 'TWR', 'Tyne and Wear', '1', '0.00000'), ('3602', '222', 'VGLAM', 'Vale of Glamorgan', '1', '0.00000'), ('3603', '222', 'WARKS', 'Warwickshire', '1', '0.00000'), ('3604', '222', 'WDUN', 'West Dunbartonshire', '1', '0.00000'), ('3605', '222', 'WLOT', 'West Lothian', '1', '0.00000'), ('3606', '222', 'WMD', 'West Midlands', '1', '0.00000'), ('3607', '222', 'SXW', 'West Sussex', '1', '0.00000'), ('3608', '222', 'YSW', 'West Yorkshire', '1', '0.00000'), ('3609', '222', 'WIL', 'Western Isles', '1', '0.00000'), ('3610', '222', 'WLT', 'Wiltshire', '1', '0.00000'), ('3611', '222', 'WORCS', 'Worcestershire', '1', '0.00000'), ('3612', '222', 'WRX', 'Wrexham', '1', '0.00000'), ('3613', '223', 'AL', 'Alabama', '1', '0.00000'), ('3614', '223', 'AK', 'Alaska', '1', '0.00000'), ('3615', '223', 'AS', 'American Samoa', '1', '0.00000'), ('3616', '223', 'AZ', 'Arizona', '1', '0.00000'), ('3617', '223', 'AR', 'Arkansas', '1', '0.00000'), ('3618', '223', 'AF', 'Armed Forces Africa', '1', '0.00000'), ('3619', '223', 'AA', 'Armed Forces Americas', '1', '0.00000'), ('3620', '223', 'AC', 'Armed Forces Canada', '1', '0.00000'), ('3621', '223', 'AE', 'Armed Forces Europe', '1', '0.00000'), ('3622', '223', 'AM', 'Armed Forces Middle East', '1', '0.00000'), ('3623', '223', 'AP', 'Armed Forces Pacific', '1', '0.00000'), ('3624', '223', 'CA', 'California', '1', '0.00000'), ('3625', '223', 'CO', 'Colorado', '1', '0.00000'), ('3626', '223', 'CT', 'Connecticut', '1', '0.00000'), ('3627', '223', 'DE', 'Delaware', '1', '0.00000'), ('3628', '223', 'DC', 'District of Columbia', '1', '0.00000'), ('3629', '223', 'FM', 'Federated States Of Micronesia', '1', '0.00000'), ('3630', '223', 'FL', 'Florida', '1', '0.00000'), ('3631', '223', 'GA', 'Georgia', '1', '0.00000'), ('3632', '223', 'GU', 'Guam', '1', '0.00000'), ('3633', '223', 'HI', 'Hawaii', '1', '0.00000'), ('3634', '223', 'ID', 'Idaho', '1', '0.00000'), ('3635', '223', 'IL', 'Illinois', '1', '0.00000'), ('3636', '223', 'IN', 'Indiana', '1', '0.00000'), ('3637', '223', 'IA', 'Iowa', '1', '0.00000'), ('3638', '223', 'KS', 'Kansas', '1', '0.00000'), ('3639', '223', 'KY', 'Kentucky', '1', '0.00000'), ('3640', '223', 'LA', 'Louisiana', '1', '4.00000'), ('3641', '223', 'ME', 'Maine', '1', '0.00000'), ('3642', '223', 'MH', 'Marshall Islands', '1', '0.00000'), ('3643', '223', 'MD', 'Maryland', '1', '0.00000'), ('3644', '223', 'MA', 'Massachusetts', '1', '0.00000'), ('3645', '223', 'MI', 'Michigan', '1', '0.00000'), ('3646', '223', 'MN', 'Minnesota', '1', '0.00000'), ('3647', '223', 'MS', 'Mississippi', '1', '0.00000'), ('3648', '223', 'MO', 'Missouri', '1', '0.00000'), ('3649', '223', 'MT', 'Montana', '1', '0.00000'), ('3650', '223', 'NE', 'Nebraska', '1', '0.00000'), ('3651', '223', 'NV', 'Nevada', '1', '0.00000'), ('3652', '223', 'NH', 'New Hampshire', '1', '0.00000'), ('3653', '223', 'NJ', 'New Jersey', '1', '0.00000'), ('3654', '223', 'NM', 'New Mexico', '1', '0.00000'), ('3655', '223', 'NY', 'New York', '1', '0.00000'), ('3656', '223', 'NC', 'North Carolina', '1', '0.00000'), ('3657', '223', 'ND', 'North Dakota', '1', '0.00000'), ('3658', '223', 'MP', 'Northern Mariana Islands', '1', '0.00000'), ('3659', '223', 'OH', 'Ohio', '1', '0.00000'), ('3660', '223', 'OK', 'Oklahoma', '1', '0.00000'), ('3661', '223', 'OR', 'Oregon', '1', '0.00000'), ('3662', '223', 'PW', 'Palau', '1', '0.00000'), ('3663', '223', 'PA', 'Pennsylvania', '1', '0.00000'), ('3664', '223', 'PR', 'Puerto Rico', '1', '0.00000'), ('3665', '223', 'RI', 'Rhode Island', '1', '0.00000'), ('3666', '223', 'SC', 'South Carolina', '1', '0.00000'), ('3667', '223', 'SD', 'South Dakota', '1', '0.00000'), ('3668', '223', 'TN', 'Tennessee', '1', '0.00000'), ('3669', '223', 'TX', 'Texas', '1', '0.00000'), ('3670', '223', 'UT', 'Utah', '1', '0.00000'), ('3671', '223', 'VT', 'Vermont', '1', '0.00000'), ('3672', '223', 'VI', 'Virgin Islands', '1', '0.00000'), ('3673', '223', 'VA', 'Virginia', '1', '0.00000'), ('3674', '223', 'WA', 'Washington', '1', '0.00000'), ('3675', '223', 'WV', 'West Virginia', '1', '0.00000'), ('3676', '223', 'WI', 'Wisconsin', '1', '0.00000'), ('3677', '223', 'WY', 'Wyoming', '1', '0.00000'), ('3678', '224', 'BI', 'Baker Island', '1', '0.00000'), ('3679', '224', 'HI', 'Howland Island', '1', '0.00000'), ('3680', '224', 'JI', 'Jarvis Island', '1', '0.00000'), ('3681', '224', 'JA', 'Johnston Atoll', '1', '0.00000'), ('3682', '224', 'KR', 'Kingman Reef', '1', '0.00000'), ('3683', '224', 'MA', 'Midway Atoll', '1', '0.00000'), ('3684', '224', 'NI', 'Navassa Island', '1', '0.00000'), ('3685', '224', 'PA', 'Palmyra Atoll', '1', '0.00000'), ('3686', '224', 'WI', 'Wake Island', '1', '0.00000'), ('3687', '225', 'AR', 'Artigas', '1', '0.00000'), ('3688', '225', 'CA', 'Canelones', '1', '0.00000'), ('3689', '225', 'CL', 'Cerro Largo', '1', '0.00000'), ('3690', '225', 'CO', 'Colonia', '1', '0.00000'), ('3691', '225', 'DU', 'Durazno', '1', '0.00000'), ('3692', '225', 'FS', 'Flores', '1', '0.00000'), ('3693', '225', 'FA', 'Florida', '1', '0.00000'), ('3694', '225', 'LA', 'Lavalleja', '1', '0.00000'), ('3695', '225', 'MA', 'Maldonado', '1', '0.00000'), ('3696', '225', 'MO', 'Montevideo', '1', '0.00000'), ('3697', '225', 'PA', 'Paysandu', '1', '0.00000'), ('3698', '225', 'RN', 'Rio Negro', '1', '0.00000'), ('3699', '225', 'RV', 'Rivera', '1', '0.00000'), ('3700', '225', 'RO', 'Rocha', '1', '0.00000'), ('3701', '225', 'SL', 'Salto', '1', '0.00000'), ('3702', '225', 'SJ', 'San Jose', '1', '0.00000'), ('3703', '225', 'SO', 'Soriano', '1', '0.00000'), ('3704', '225', 'TA', 'Tacuarembo', '1', '0.00000'), ('3705', '225', 'TT', 'Treinta y Tres', '1', '0.00000'), ('3706', '226', 'AN', 'Andijon', '1', '0.00000'), ('3707', '226', 'BU', 'Buxoro', '1', '0.00000'), ('3708', '226', 'FA', 'Farg\'ona', '1', '0.00000'), ('3709', '226', 'JI', 'Jizzax', '1', '0.00000'), ('3710', '226', 'NG', 'Namangan', '1', '0.00000'), ('3711', '226', 'NW', 'Navoiy', '1', '0.00000'), ('3712', '226', 'QA', 'Qashqadaryo', '1', '0.00000'), ('3713', '226', 'QR', 'Qoraqalpog\'iston Republikasi', '1', '0.00000'), ('3714', '226', 'SA', 'Samarqand', '1', '0.00000'), ('3715', '226', 'SI', 'Sirdaryo', '1', '0.00000'), ('3716', '226', 'SU', 'Surxondaryo', '1', '0.00000'), ('3717', '226', 'TK', 'Toshkent City', '1', '0.00000'), ('3718', '226', 'TO', 'Toshkent Region', '1', '0.00000'), ('3719', '226', 'XO', 'Xorazm', '1', '0.00000'), ('3720', '227', 'MA', 'Malampa', '1', '0.00000'), ('3721', '227', 'PE', 'Penama', '1', '0.00000'), ('3722', '227', 'SA', 'Sanma', '1', '0.00000'), ('3723', '227', 'SH', 'Shefa', '1', '0.00000'), ('3724', '227', 'TA', 'Tafea', '1', '0.00000'), ('3725', '227', 'TO', 'Torba', '1', '0.00000'), ('3726', '229', 'AM', 'Amazonas', '1', '0.00000'), ('3727', '229', 'AN', 'Anzoategui', '1', '0.00000'), ('3728', '229', 'AP', 'Apure', '1', '0.00000'), ('3729', '229', 'AR', 'Aragua', '1', '0.00000'), ('3730', '229', 'BA', 'Barinas', '1', '0.00000'), ('3731', '229', 'BO', 'Bolivar', '1', '0.00000'), ('3732', '229', 'CA', 'Carabobo', '1', '0.00000'), ('3733', '229', 'CO', 'Cojedes', '1', '0.00000'), ('3734', '229', 'DA', 'Delta Amacuro', '1', '0.00000'), ('3735', '229', 'DF', 'Dependencias Federales', '1', '0.00000'), ('3736', '229', 'DI', 'Distrito Federal', '1', '0.00000'), ('3737', '229', 'FA', 'Falcon', '1', '0.00000'), ('3738', '229', 'GU', 'Guarico', '1', '0.00000'), ('3739', '229', 'LA', 'Lara', '1', '0.00000'), ('3740', '229', 'ME', 'Merida', '1', '0.00000'), ('3741', '229', 'MI', 'Miranda', '1', '0.00000'), ('3742', '229', 'MO', 'Monagas', '1', '0.00000'), ('3743', '229', 'NE', 'Nueva Esparta', '1', '0.00000'), ('3744', '229', 'PO', 'Portuguesa', '1', '0.00000'), ('3745', '229', 'SU', 'Sucre', '1', '0.00000'), ('3746', '229', 'TA', 'Tachira', '1', '0.00000'), ('3747', '229', 'TR', 'Trujillo', '1', '0.00000'), ('3748', '229', 'VA', 'Vargas', '1', '0.00000'), ('3749', '229', 'YA', 'Yaracuy', '1', '0.00000'), ('3750', '229', 'ZU', 'Zulia', '1', '0.00000'), ('3751', '230', 'AG', 'An Giang', '1', '0.00000'), ('3752', '230', 'BG', 'Bac Giang', '1', '0.00000'), ('3753', '230', 'BK', 'Bac Kan', '1', '0.00000'), ('3754', '230', 'BL', 'Bac Lieu', '1', '0.00000'), ('3755', '230', 'BC', 'Bac Ninh', '1', '0.00000'), ('3756', '230', 'BR', 'Ba Ria-Vung Tau', '1', '0.00000'), ('3757', '230', 'BN', 'Ben Tre', '1', '0.00000'), ('3758', '230', 'BH', 'Binh Dinh', '1', '0.00000'), ('3759', '230', 'BU', 'Binh Duong', '1', '0.00000'), ('3760', '230', 'BP', 'Binh Phuoc', '1', '0.00000'), ('3761', '230', 'BT', 'Binh Thuan', '1', '0.00000'), ('3762', '230', 'CM', 'Ca Mau', '1', '0.00000'), ('3763', '230', 'CT', 'Can Tho', '1', '0.00000'), ('3764', '230', 'CB', 'Cao Bang', '1', '0.00000'), ('3765', '230', 'DL', 'Dak Lak', '1', '0.00000'), ('3766', '230', 'DG', 'Dak Nong', '1', '0.00000'), ('3767', '230', 'DN', 'Da Nang', '1', '0.00000'), ('3768', '230', 'DB', 'Dien Bien', '1', '0.00000'), ('3769', '230', 'DI', 'Dong Nai', '1', '0.00000'), ('3770', '230', 'DT', 'Dong Thap', '1', '0.00000'), ('3771', '230', 'GL', 'Gia Lai', '1', '0.00000'); -- new query diff --git a/js/jquery/jquery-1.7.2.min.js b/js/jquery/jquery-1.7.2.min.js new file mode 100644 index 00000000..16ad06c5 --- /dev/null +++ b/js/jquery/jquery-1.7.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
- - - - + + + + + + +
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/js/jquery/jquery-ui-1.8.16.custom.min.js b/js/jquery/jquery-ui-1.8.16.custom.min.js old mode 100755 new mode 100644 diff --git a/js/jquery/jquery-ui-1.8.19.custom.min.js b/js/jquery/jquery-ui-1.8.19.custom.min.js new file mode 100644 index 00000000..5716f395 --- /dev/null +++ b/js/jquery/jquery-ui-1.8.19.custom.min.js @@ -0,0 +1,105 @@ +/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.19",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.position.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.draggable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.19"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.selectable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper").html(" ")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.19",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.tabs.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.19"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.19"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
    ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
    '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
    ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
    '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
    '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
    "+(j?"
    "+(g[0]>0&&N==g[1]-1?'
    ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
    ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
    ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="@VERSION",window["DP_jQuery_"+dpuuid]=$})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=a.curCSS(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.19",save:function(a,b){for(var c=0;c
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return b==0?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h
    ").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.fade.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.fold.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.highlight.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.pulsate.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i
    ').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery); \ No newline at end of file diff --git a/js/jquery/theme/gocart/images/ui-bg_flat_0_aaaaaa_40x100.png b/js/jquery/theme/gocart/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_flat_65_f2f2f2_40x100.png b/js/jquery/theme/gocart/images/ui-bg_flat_65_f2f2f2_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..468a4f2751c8e4d1628afe43b19bdf0930bd0ecc GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv z%RE4(bP0l+XkK Dcvdik literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_flat_75_eeeeee_40x100.png b/js/jquery/theme/gocart/images/ui-bg_flat_75_eeeeee_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB} D#5ytf literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_flat_75_f2f2f2_40x100.png b/js/jquery/theme/gocart/images/ui-bg_flat_75_f2f2f2_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..468a4f2751c8e4d1628afe43b19bdf0930bd0ecc GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv z%RE4(bP0l+XkK Dcvdik literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_flat_75_ffffff_40x100.png b/js/jquery/theme/gocart/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_glass_55_fbf9ee_1x400.png b/js/jquery/theme/gocart/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/js/jquery/theme/gocart/images/ui-bg_inset-soft_95_fef1ec_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0e05810fffe0b6b8ac320e55d1eb4ba259b89d92 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#{26V~E7myXUR>S{Ou}E*`%9 zKPdOkfrN+ZlHSt7(uY{3{#;wiJb&Ugx1>W4qtrSDm(4hFaaY-$3p3x|sIU3`%J?Qj YcLn#R=pC)AfTl5cy85}Sb4q9e0MP_2(*OVf literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-icons_2e83ff_256x240.png b/js/jquery/theme/gocart/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616 GIT binary patch literal 4369 zcmd^?`8O2)_s3@pGmLE*`#M>&Z`mr_kcu#tBo!IbqU=l7VaSrbQrTh%5m}S08Obh0 zGL{*mi8RK}U~J#s@6Y%1S9~7lb?$xLU+y{go_o*h`AW1wUF3v{Kmh;%r@5J_9RL9Q zdj+hqg8o{9`K7(TZrR4t{=9O`!T-(~c=yEWZ{eswJJe->5bP8)t4;f(Y*i_HU*sLM z2=7-8guZ}@*(HhVC)Mqgr$3T8?#a(hu& z?Kzuw!O%PM>AicSW`_U(cbvJYv3{HfpIP~Q>@$^c588E$vv)V2c|Mr% zuFO$+I~Hg@u}wPm17n%}j1Y+Pbu!bt?iPkjGAo7>9eRN0FZz3X2_QZj+V!}+*8oBQ z_=iI^_TCA;Ea2tPmRNOeX3+VM>KL;o1(h`c@`6Ah`vdH<&+$yTg)jGWW72T}6J`kUAv?2CgyV zrs0y@Fpvpj@kWVE0TzL@Cy#qHn~kgensb{hIm6J&I8hkoNHOz6o1QQ3QM4NZyu?;= zLd>`wPT*uGr+6vAxYv3k8{gMDR>tO}UavDKzzyi6hvbuP=XQ4Y|A)r4#B$U(q7{1Z z0iLeSjo3;T*diS*me%4|!s23l@>R}rn@#Zc{<%CFt;?gd5S<)b=8Yz32U zBBLprntW3RE3f|uNX5Aw|I(IlJjW-Byd?QFFRk%hLU}O*YyYQel}WcXilLMJp9cB4 z)E?D+*Y4zai&XY!>niMfTW-2pp-^KFT93%Leig@uoQGPYRCva-`w#orm`is`p8b4s zxD462;f*^XO$=3by=VzN9i@xxr<1w=pcxl!$!fjWt|fYmq1@@badT?v`d zIi$|e$Ji}FXsiVYf)?pN1R0LBw;+)B5aUJj2fP+=m;=_Eho84g%Jq#@MLPSQEX*@T z6sZb)m?)zby>{j1)(;rRML|gKSs+9jorf-XhQJ2Jyt5Cqc*`S3iX@A5C3jvgAns|4 z*|)YQ%Kmsj+YZ53;nMqh|AFvehUV-9R;1ZZ;w5r9l}8hjSw@#k;>)$P*r%)=Extyu zB!$Kd-F?*50aJ2;TNTR-fc8B{KAq3!vW{g$LlGPfGW+%#CXU zJDcMsvyT2`x~v>>w8@yssoA`KuIZ98CLU{Ia%*nW3G4t}@ApsbC@o^WCqL>OXx>Y^ zSuVWEQ;3=A=@RxCnt0>G@#(VWBQ`0$qTwA#e>SX{_N~JWGsBxFHCw|5|?CzDi>92F-^=b*8sMXnhUJdb!>yGD2nhN@{582 zRPcxuDzs&;8De)>_J19z{0xppXQop#T_5ejGCKv@l>$O#DA-@X{y_1B-AsiU)H}DR z3xDZ8G`amV_WmA&8!W=@jgm|%bnwH%qkg(@J$hLaSV zC-rXIFMM%y<|Gb)o?j zpe-`dJ*N5tC-iH)d0CgLdBsw*C!ST9hY1EkI|Y(&=p&dH&q;a&7HXa5#_wtMsenQL zcpyhwx)Ppw@XmVz?P)DI#^ee1oC!i`>>Jq1ESk-OuQ(Pbv=s{A0AjM@rw#FaU;RUh z*At0{U*NtGVY_-JcuG$?zuuf%ZBTWxKU2yf?iN#-MRWs>A*2;p0G1Tp3d29u5RbnY zDOON-G|PidOOGeybnbzu7UVv71l!b=w7eU5l*{EdKuoKu`#LZ}|fnUr-+lSST9(MTT`0tqOG z#+Q_=lXe-=;rE4u8s~;%i~~ z8v&&+VPeXG=2zw9B5sR$e?R(n%nf?p-(BCZ8}x!_-9T+LT;2=Zu?Wv)j3#>35$6dR z4*7xmI)#06qjh#sXvX(%`#D1mD8fn1G~I;l%Dk{pw)}>_{+3^Fv_q)>2#de5qGCId zPz?ix-3954nM&u@vaw{o%-#HU%_bLJMO#@enR^&B{3ihWdoU6%pBJ`o>im+b-c6r-;c{vd0Z_)`75$jApy2?!9G4_FGa)iZ~9`6VELiYM+n!-mUfvfm{jt zC?!1=%pxJhF>vyQ47Q}R;O48pxgMs)rz$SbM&jkp<6X$r4DHWg>ZnGB-$r2o1*nL# zW0^*itcRY_^Uv^XgQP>W#>KQgM~l{;S(GkVW@&vld^AhWzG^m|9#0#USbM>^en{k2 za8~DTL`(Q~=ofsL&Fc`!L6r~qTnnGo8r98<(aG*<0%aNEr!!BIyY>VV82kxhR%d>V(lN&#BId#urK_i~Pe6?>C~J!pU_lRon#&S_cXoQv;poG8FK4atc

    N)npz1~X%p6x{M(Gw!!H=!}lmO0Xr*8ewyH(Q+>oy`fxQkxJ zzzB$)%*xM4s_2(O>)T-QXhwP|&DZam#{O+47q|WKfz_ZL-MypRN~o{fE*I#6@eM?I zs%f-6{Lz6j7rB#U$%O$~TIT!j?|Ip1CpSmb=JA9qCY3-mQf|fVCxswPjok|VofUEP zW5^pTd5B;wRkyW%1a;nYHB$ef6Pv8^);`m0jv6p72iNJl+sVBqZugsq6cq_pyNREi z>GN!h6ZQ6`aOMr_2KI@j=XR@$aJj(2jcpY?>f=2kMV@di5W7Swj?ug10zRe}F1nR* ztMm6+T^)LJe^SzGgSxahQajq0h7#|8oMV0>D~*N}jl?9_X`ka42R4@rryDc3o(c$R?1*!1O9zleSOczw zYPS3~xbJ$~C(3+D7Zkrfjs_lneY^zv^kHmxt)aqZ!aeGABHZ`gvA&K`72z}ihI$Ht z9V&)wQy0g@R9irwbf!{uE&_J2l9jXz^Vj#=qA77*3Pd9OjrE_tKDHADd!AjFQv(ji zct-BMUt9()1Ox!dsI_h1(^F_U)_QJrx|%+y`zWWlD4=Nd?JQ=URh0*{fb1!o4tS(H z^r_T(8t1SAHf1oduG+X^*EC_kL(!QnXL6Hp);449yO&1xE>MXGqT)t10lzvALllX;;Q)RiJX$dm zlR8ep5-GdHmRm9?N#QCjNUA);vC03Gw6yds6^?c4;(MH>;O5xmQ2nGK3Dmk8i*v5t z-{jJsQq30%z}0`g7SN-yN`l-`@6rkJ|V|>18`MV zwUeH}DxWw&h+A+Dn|4|YNr&EfKS`Hz_NkeW3*sI5Rq-J&FzG=!{-K`n65#7O%^&f> z`PkqxyC_K)>781~7H${^Nj{`>XEa&OPqqQhySR5%w2{5+sEakXXHazJp6~LP2QKDx zpkvZrkDOa+A4BbqqX6ls&O)5-Q7`qkZ_?6~c-wQ9tseNtET;nhEOL^`*naKwcMX;R zbto&a;oTR0s;vjfj3wigUg)Sj)!OHQfZoJwAsWYI1A4ntz>X=W4s|y?tUk1r=>#Ct zf+?hq^>rQ3$KNboG$UhCdEmp{qAR13DK$f0ES7kAG~7q+g!jfVq`1b5+c62N^0%~o zKw91o@Wv;0EW*7fINAX3O~L-V{`;xB0q()#^HKZOlLrXVL*Dtw-$SUp8*_J{r( zW`6r`cz0yZQ#f0#*y+m64{bs7GP|2V$phf42rswJB?s@9qf;Bfc^pm-ZS#^5dkG{u zzv;l&B$NYcegSqAnjnPN1?17VUQbPummcWry((85IFB(pFQNGN{hhN$Fv?~l_fr?| z9=%dK(+;kZ(8=mwptjwC-ikBD$Z{l2++~*8wq5ynF<+PNlZI7ba5V#fg~L}kE;UH5 zJ;{P(`G{tNl&z5rUiH~e{I>GT8~9&*(J;Myx9z5P!db!F8RTII^I7c)HU=ss*bYB` zgwiIMZ_q>KEC$4lFm+Afvu6^$X1jm1rB*4H)-EIO5Rvz_p24?OkJ zovD4{-1KA6*oL?a;3qR7GZRB!cE5oAdA#M@{w+fGgsJ-lSmQ^-?8E&Q%tbmjd=@gZ z(}Mg*jsDf6Z)|7s%@9pc-tuw5W&zqUXjv2bVkC%-X?O3F72W4EsIl#1e>Mdz=X4k*_>VxCu_2?jjg16N*5fwC-36OW&;Sz}@jMn}hgJdEd pO;bST+>R{W-aENZYk%(=^(_R5N$LmL{Qc?!%+I4tt4z=_{|902Wu5>4 literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-icons_333333_256x240.png b/js/jquery/theme/gocart/images/ui-icons_333333_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..fe079a59506b5df3307dc763b574c492ce81ce9c GIT binary patch literal 4369 zcmd^?`8O2)_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~GmPmYTG^FX}c% zlGE{DS1Q;~I7-6ze&TN@+F-xsI6sd%SwK#*O5K|pDRZqEy< zJg0Nd8F@!OxqElm`~U#piM22@u@8B<moyKE%ct`B(jysxK+1m?G)UyIFs1t0}L zemGR&?jGaM1YQblj?v&@0iXS#fi-VbR9zLEnHLP?xQ|=%Ihrc7^yPWR!tW$yH!zrw z#I2}_!JnT^(qk)VgJr`NGdPtT^dmQIZc%=6nTAyJDXk+^3}wUOilJuwq>s=T_!9V) zr1)DT6VQ2~rgd@!Jlrte3}}m~j}juCS`J4(d-5+e-3@EzzTJNCE2z)w(kJ90z*QE) zBtnV@4mM>jTrZZ*$01SnGov0&=A-JrX5Ge%Pce1Vj}=5YQqBD^W@n4KmFxxpFK`uH zP;(xKV+6VJ2|g+?_Lct7`uElL<&jzGS8Gfva2+=8A@#V+xsAj9|Dkg)vL5yhX@~B= zN2KZSAUD%QH`x>H+@Ou(D1~Pyv#0nc&$!1kI?IO01yw3jD0@80qvc?T*Nr8?-%rC8 z@5$|WY?Hqp`ixmEkzeJTz_`_wsSRi1%Zivd`#+T{Aib6-rf$}M8sz6v zb6ERbr-SniO2wbOv!M4)nb}6UVzoVZEh5kQWh_5x4rYy3c!871NeaM(_p=4(kbS6U#x<*k8Wg^KHs2ttCz<+pBxQ$Z zQMv;kVm5_fF_vH`Mzrq$Y&6u?j6~ftIV0Yg)Nw7JysIN_ z-_n*K_v1c&D}-1{NbBwS2h#m1y0a5RiEcYil+58$8IDh49bPnzE7R8In6P%V{2IZU z7#clr=V4yyrRe@oXNqbqo^^LvlLE?%8XaI&N(Np90-psU}7kqmbWk zZ;YBwJNnNs$~d!mx9oMGyT( znaBoj0d}gpQ^aRr?6nW)$4god*`@Uh2e+YpS@0(Mw{|z|6ko3NbTvDiCu3YO+)egL z>uW(^ahKFj>iJ-JF!^KhKQyPTznJa;xyHYwxJgr16&Wid_9)-%*mEwo{B_|M9t@S1 zf@T@q?b2Qgl!~_(Roe;fdK)y|XG0;ls;ZbT)w-aOVttk#daQcY7$cpY496H*`m@+L zeP#$&yRbBjFWv}B)|5-1v=(66M_;V1SWv6MHnO}}1=vby&9l+gaP?|pXwp0AFDe#L z&MRJ^*qX6wgxhA_`*o=LGZ>G_NTX%AKHPz4bO^R72ZYK}ale3lffDgM8H!Wrw{B7A z{?c_|dh2J*y8b04c37OmqUw;#;G<* z@nz@dV`;7&^$)e!B}cd5tl0{g(Q>5_7H^@bEJi7;fQ4B$NGZerH#Ae1#8WDTH`iB&) zC6Et3BYY#mcJxh&)b2C^{aLq~psFN)Q1SucCaBaBUr%5PYX{~-q{KGEh)*;n;?75k z=hq%i^I}rd;z-#YyI`8-OfMpWz5kgJE3I!3ean6=UZi!BxG7i(YBk? z02HM7wS0)Wni{dWbQMRtd-A)_Az!t>F;IwWf~!*)-Az4}yryNkz&9)w>ElA80Oc`6 zHo#9H!Y3*Qx9n@Jn)!w6G^hb;e_n8zpIyXCN`JFkPc)^Q?2MsLNFhMgrcZI-<#1ne zjH;KFf?4eAT9mQZ}ZfHLGA#d%s;SZK4p0FwZT2S^{ zQ2BG1xJsbK6?yrHTjJi|5C0u=!|r!?*4FL%y%3q#(d+e>b_2I9!*iI!30}42Ia0bq zUf`Z?LGSEvtz8s``Tg5o_CP(FbR0X$FlE0yCnB7suDPmI2=yOg^*2#cY9o`X z;NY-3VBHZjnVcGS){GZ98{e+lq~O$u6pEcgd0CrnIsWffN1MbCZDH<7c^hv+Z0Ucf0{w zSzi^qKuUHD9Dgp0EAGg@@$zr32dQx>N=ws`MESEsmzgT2&L;?MSTo&ky&!-JR3g~1 zPGTt515X)wr+Bx(G9lWd;@Y3^Vl}50Wb&6-Tiy;HPS0drF`rC}qYq22K4)G#AoD0X zYw$E+Bz@Zr^50MAwu@$?%f9$r4WHH?*2|67&FXFhXBrVFGmg)6?h3^-1?t;UzH0*I zNVf9wQLNLnG2@q>6CGm>&y|lC`iCFfYd}9i%+xkl^5oBJ?<;aneCfcHqJh7Yl5uLS z9Fx-(kMdcNyZejXh22N{mCw_rX1O!cOE&3>e(ZH81PR95wQC37En4O{w;{3q9n1t&;p)D%&Z%Nw$gSPa!nz8Slh7=ko2am)XARwOWw zpsz0~K!s{(dM$NB=(A=kkp>T(*yU6<_dwIx>cH4+LWl282hXa6-EUq>R3t?G2623< z*RwTN%-fgBmD{fu*ejNn)1@KG?Sg*8z3hYtkQJQjB6 zQ|x>wA=o$=O)+nLmgTXW3_6diA;b4EY{*i*R%6dO2EMg z@6g?M3rpbnfB@hOdUeb96=~I?OIA3@BWAGmTwiQ{x5Cqq<8c10L!P zd@Qk^BseTX%$Q7^s}5n%HB|)gKx}H$d8Sb$bBnq9-AglT2dGR2(+I;_fL|R4p$odJ zllfb0NqI)7=^z~qAm1V{(PkpxXsQ#4*NH9yYZ`Vf@)?#ueGgtCmGGY|9U#v|hRdg- zQ%0#cGIfXCd{Y)JB~qykO;KPvHu|5Ck&(Hn%DF~cct@}j+87xhs2ew;fLm5#2+mb| z8{9e*YI(u|gt|{x1G+U=DA3y)9s2w7@cvQ($ZJIA)x$e~5_3LKFV~ASci8W}jF&VeJoPDUy(BB>ExJpck;%;!`0AAo zAcHgcnT8%OX&UW_n|%{2B|<6Wp2MMGvd5`T2KKv;ltt_~H+w00x6+SlAD`{K4!9zx z*1?EpQ%Lwiik){3n{-+YNrT;fH_niD_Ng9|58@m8RsKFVF!6pk@qxa{BH-&8tsim0 zdAQ(GyC^9ane7_KW*#^vMIoeQdpJqmPp%%px3GIftbwESu#+vPyI*YTuJ6+4`z{s? zpkv~0x4c_PFH`-tqafw5)>4AuQ78SkZ!$8}INLK;Egr;2tS18hEO5=t;QDmZ-qu?I zG+=DN`nR72Xto{{bJp||`k}-2G;5#xg8E~xgz22)^_Z;=K|4@(E&5J)SY2of=olcw z5)@L)_Ntcm!*5nEy0M9v0`S33;pO4TN;>4(Z+19p_0>u#e-vE zXCU(6gAvu~I7Cw(xd%0e59MNLw^U37ZDbsBrj%eDCexw8a3G`nTcXVNL6{B7Hj@i& zbVB{;ApEtHk76q08DJ48dSxd$C(;$K6=FpU<~l9pVoT9arW^Vu{%Bcn4`eIpkOVC| z$)AKYG_`ypM{0@BUb3^9lqi_c?ONH|4UJMJWDowMVjacycX7}9g={O7swOB+{;+?; zjBo!9?+nd)ie#x5IbFW-zBOo0c4q@9wGVt5;pNt`=-~Zgcw#*`m($6ibxtZ`H=e=} zF#GZ~5$%AUn};8U#tRem0J(JTR}d4vR(dgK2ML~lZsPhayJ2h1%sD4FVst| zKF)+@`iNzLRjg4=K8@**0=5cE>%?FDc({I^+g9USk<8$&^qD~@%W0i4b|yMG*p4`N zh}I!ltTRI8Ex$+@V{02Br%xq#O?UlhO{r8WsaZnZCZq0MK9%AXU%MDLT;3=0A9(BV z9VxxxJd7jo$hw3q;3o?yBLmA=azBUrd9>-<_ANs0n3?-Ic*6&ytb@H~?0E(*d>T5n z-HiH2jsDf6uWhID%#n>SzOqrFCPDfUcu5QPd?<(=w6pv1BE#nsxS{n!UnC9qAha1< z;3cpZ9A-e$+Y)%b;w@!!YRA9p%Kf9IHGGg^{+p`mh;q8i7}&e@V3EQaMsItEMS&=X plT@$;k0WcB_jb;cn%_Idz4HO$QU*abf4}+wi?e96N>fbq{{gZk5h?%x literal 0 HcmV?d00001 diff --git a/js/jquery/theme/gocart/images/ui-icons_cd0a0a_256x240.png b/js/jquery/theme/gocart/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d GIT binary patch literal 4369 zcmd^?`8O2)_s3@pGmLE*`#M>&Z`mr_kcwz5Nh&gy7G+@45H9p05OJ)J0CH2owMSaGIN$+5!N; z<11j56?ANg=9hMl-IBGX-T8hf$N$b*H?$f4Xt&I`oABt1nR=k%#z{{*a!Axm|t}hCz zJg0Ln7;M4Zjx{$mwhMW+kWN;|j>qTx_-zNX!GzqEZRa}QF8_0yk6+=w}$QD^&hM4%OkT=uh$q9;5u~NL-I+NQyaVc|3l+iWI5~|(hA-G z08i8AMr@{uY_cWTxo^y|Qyb33mlZLvc7H2Zm~>mB7&=-1X^@|D z&0*~i?GBE&NM(Pv&Vt^zWu_bD3e|R?wTL{cSFwD^Ij9v%g=aLY@1U2Bxn#Te*{>%D zOOW-O-bfnJ7T8jd<*>8`Z2DsFQi~S$%^npJwXam5>>p zMd}QEjM)@~##n$LXpz1Hkl|2UGXi-JFFePXBWL+-5f%!S>L#KL3>Vl0w#d^21Jn<~_7q zWx^Xg1(>PsPGO&cu{S;(pRQ;=Vw2J<9NdQVWx<+g-`ia=Q@puS)75M+?u>DTa95e9 zt#1T?#a)uWC>Mia!K6>g|InPW{&Kp9$tC_3*;R_Xsz6^Eu|xW1$6j#0?XLs7^l+%O zlxddE)h^|=K(2UqS*0ECuDe0ic|H_^t*VOoTCKx0Qmn_^LyJ|b8l$Jvl3{2=3x8&7 z$1ik&YG>w#@x@y~$r`fhlUDo;yXecc6$`30m`3K8s{k8G&3RVp8n#|l6h(Xw`Axw9 z%6Y^J6k0P@4YAuSd%q7=eg)&u8EMoEmq$CWj1GY|rGQWw3ida!FHk&wCqrQh_0Bcw z!ZBS3CbxgZ+}~wzgGIQ#QId%T_TE~_qdUqxjqS#8#jPxdwO@(@-5_nSP&uT?aGYYD z6km36K9=gjUjImwO=5Hl#u85VF?r0HbW)#h^SR|s_L47Tl$&Z&Rz*ksl!t*(2O2;D z+8`6$qpLn}LchhCmv*X}moGMX5?F@juGeHQAddAn}0~r zS_0|d3*0v%Y)8+8K{ zGyoYPb|W9Grm9M4E?vb^@16ePbI4omZv+(NoZ##fLUmKlB(G_jEbtDCM*27t$v`JovAZa+%*Q5dDXF*Ftt*n!O>#ohCM4lZ)h5rdKV-3A za}2AO6@!`W>ROk5FN*>2Zza^Z%}8KT%*jBGH|rml2X1LR{wZhWx8V4>|5i}; zMnLIHn3!^)`87GYh}&Y`KMwyLbA#^pch}Z!`@P_qH&N^LS9SxpEy8mc!wFusq&Z@` zeO}<6PC@VNaII|=n(^cNUiLseig*$;NjG7;IwvfYCBN>kzv@v-V2eBQZ@oIs^)NLqMR935k|1}U;5<{s(Ebdj4r`?QtrrAPfQooq zmPs_(YTy|??+nitNIFDoR7~qLPPFFCf^_~8OUt{#!|9o*3Q{!@9ZAI$7O~piD!;WX8#v&RxNH27i59$`1{o zEYU_zE{bKEI%f3BbE0Fc;f2!4LjUlC`wgh4@R{1?O78r5t$hWKiLV{#QWWq{QZiPx zm3?x$;&DDRVt0SByRiFczw$-e)GSvpCRbzk^=E zz=(+LjEc{Ps_2(OYg=G(93!oS=IeJ|WA8STv+LgI*Oj1c-QC06N~mvJ&KKx{arGp5 zswvJ6{%BvBYo>#2$%O$~TITuh?Rr^jCpAUXh)}m74`O|aOU>w2KI`k<#efwa5=-l4Xx!o>Z9Evg`RLN5W7SQp3$@D3_hY4EV!0( ztMm6>zBcgY{RvHZ{9Ey&&)jr2B4s0qDPBUh1ITaAp&>rj3ng*B=VGXz* zs@eR<;J(XkpD6Q1U3}#FR)wlafiFMU(-=&e9(eQ`isrS-9aNwJ)7frS8RiXM4*SbC zL|4*c?h^jfYvSOpn%Z$W?C|TuZ;uy2pFWHXuGW`ZkGV&kPJsKqJJQ!NswAE!!cb2k zumi=AE$YIkm})cVlg>nn&PBjBRI*@mfhhRMsa5U8k#A!ztfiw)d7I_UyAif8$5sJ9a7WUv5!o%fL z(J7-8EQzv1YIc)BNeWkLK~m%y4vqe&q@|_ZR5;eC3-9rkf*T{_19jtuWKhdW4Bn|~ zZ-YyFLN!k)0AKg{dO)|v3K?=oy+dzb4%T1F4}JsByncB1Z(`2p@O0!E!JQelouN^* z%Q^YfQUh66D$Zx-RDZvLctsr9`_+1p#tz&4SMd@i_-8()tyg3OyhU~?Gt#-a{NKFN z0VGf+AH%@o6;-_*?$$T4QX-f_>Ny-5CV8Ccq+@>gNSeovbFr0@b}RiTcJbLx>ws&r zsvY!rR{4al#MpVKut~?&kTmF>_v3UaC!gvuxgg%5-{l{20}~&F6CUarF9N=u)BG71 zoQDlAwT+T=mfo&$Xy%4-kmW;4wuh6{{ABClybHV6L>t&k4?9_Ny8A_^?)ff#dEjhL z2RbC~cFVbz^fJ`$I0%prYc0g-9(7X3eUp}^#Mzv)Z1EsGW;qr3cY$+e2HU5d_O9L% zpbljP*1!A0PqpzNo3W&y(hD87qgweq5YQWYEkxrOuSain2-q@Z*P`x*ht-9)Fr5Ho zSTKduvc9h6`S^#$i)LgjDi3_PQ+RbaGP!!di^Y;4kB0lGo$y{if)rJIaXTbpRgO#B z1El6|18;s}$0FRjgK-7~ZwmI`_1{a`32+Y>&O_iTpm%vz6hNkjGR(#*! zpfJ2>OAQbTFba9S3j9BlRHXaG{)Zt(J<3ppA?}j+7F#{bV{M7zU)5e@~R&J_xf$+GKK~ z3{R;Y9fZGe^ifEqKL;!VMXv26=R~^TG(#*2!JKCWoo&c^$utAs#Gfq-?t!c&9TH5- zj&i5L4NWbdNs*djvsY}bC&ddUbh=iyc0;3-@Y#d^s8|Ql{ax(yenFcG#i|K%lRxy| zFys4w!@EPXp2AsbMUGc*eP|7uliAq-O6~(+MR>V(EZTd&9G+MY&gF2lZ=I8j*o`OC z`AxrmOGMeD=H_9Cq47clT|h34>-EI=%;E!my;o&wU(aKV&PymBzrV9q2uA62XS@JrjKYANZAU>;8mag#BU?Nv`+ZVhlAPV`HF_gKY_O zhbV2L`8qvR&f=@M5vH~geD+L&*L2s<)|5)clA0yt9TM{X)iWtx@wJO_!{vR#|AD6t z*OAg2&P_i8jjW5y0DdtOGcqvrCHD*1Uq_q1ZQmngPnf!2fHizH%sSX>#$2Rh!>1ur z+s(*-)abDuePc6~XNG8m@|KMXHVM#G4?~+V z1z!An!D0GD-7WqXE8ddUXLkI%u01$fTEhhy Date: Fri, 22 Jun 2012 15:34:32 -0500 Subject: [PATCH 192/343] updated --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index e2cac26c..6c3b72c8 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.2.3 \ No newline at end of file +2.0 beta \ No newline at end of file From 9ee104f073daa1a630118d47c30986a50799da8b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Wed, 27 Jun 2012 08:43:08 -0500 Subject: [PATCH 193/343] Fix no search term error --- gocart/controllers/cart.php | 8 +++++++- gocart/language/english/common_lang.php | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gocart/controllers/cart.php b/gocart/controllers/cart.php index 34b95e35..fc71cd0a 100644 --- a/gocart/controllers/cart.php +++ b/gocart/controllers/cart.php @@ -97,7 +97,13 @@ function search($code=false, $page = 0) $term = $this->Search_model->get_term($code); } - + if(empty($term)) + { + //if there is still no search term throw an error + //if there is still no search term throw an error + $this->session->set_flashdata('error', lang('search_error')); + redirect('cart'); + } $data['page_title'] = lang('search'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; diff --git a/gocart/language/english/common_lang.php b/gocart/language/english/common_lang.php index bc6553e0..33f42004 100644 --- a/gocart/language/english/common_lang.php +++ b/gocart/language/english/common_lang.php @@ -58,6 +58,7 @@ $lang['form_to'] = 'to'; $lang['search'] = 'Search'; +$lang['search_error'] = 'Your did not supply a search term!'; $lang['amount'] = 'Amount'; $lang['custom_amount'] = 'Custom Amount'; $lang['preset_amount'] = 'Preset Amount'; From 1de6985a3e77bb8f6a02ce6070253560cbf55d89 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 12 Jul 2012 16:43:47 -0500 Subject: [PATCH 194/343] updated customer pagination config. --- gocart/controllers/admin/customers.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gocart/controllers/admin/customers.php b/gocart/controllers/admin/customers.php index ae3aa17a..272c748c 100644 --- a/gocart/controllers/admin/customers.php +++ b/gocart/controllers/admin/customers.php @@ -28,7 +28,29 @@ function index($field='lastname', $by='ASC', $page=0) $config['total_rows'] = $this->Customer_model->count_customers(); $config['per_page'] = 50; $config['uri_segment'] = 6; + $config['first_link'] = 'First'; + $config['first_tag_open'] = '

  • '; + $config['first_tag_close'] = '
  • '; + $config['last_link'] = 'Last'; + $config['last_tag_open'] = '
  • '; + $config['last_tag_close'] = '
  • '; + $config['full_tag_open'] = ''; + $config['cur_tag_open'] = '
  • '; + $config['cur_tag_close'] = '
  • '; + + $config['num_tag_open'] = '
  • '; + $config['num_tag_close'] = '
  • '; + + $config['prev_link'] = '«'; + $config['prev_tag_open'] = '
  • '; + $config['prev_tag_close'] = '
  • '; + + $config['next_link'] = '»'; + $config['next_tag_open'] = '
  • '; + $config['next_tag_close'] = '
  • '; + $this->pagination->initialize($config); From 82398add8884729975314bbbc6e366927748e44b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 23 Jul 2012 13:02:11 -0500 Subject: [PATCH 195/343] Removed unused constructor --- gocart/models/box_model.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gocart/models/box_model.php b/gocart/models/box_model.php index 464d2c9f..05897139 100644 --- a/gocart/models/box_model.php +++ b/gocart/models/box_model.php @@ -1,11 +1,6 @@ Date: Mon, 23 Jul 2012 13:02:21 -0500 Subject: [PATCH 196/343] Removed unused constructor --- gocart/models/page_model.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gocart/models/page_model.php b/gocart/models/page_model.php index 0a4ca44f..2d95f77f 100644 --- a/gocart/models/page_model.php +++ b/gocart/models/page_model.php @@ -1,11 +1,7 @@ Date: Mon, 23 Jul 2012 13:02:41 -0500 Subject: [PATCH 197/343] Eliminated some functions that were used from testing and uncommented cart destroy and email code --- gocart/controllers/checkout.php | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index 5810f31d..d7667a53 100644 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -460,12 +460,6 @@ function place_order() //// save the order $order_id = $this->go_cart->save_order(); - //save loop - for($i=0; $i<100; $i++) - { - $this->go_cart->save_order(); - } - $data['order_id'] = $order_id; $data['shipping'] = $this->go_cart->shipping_method(); $data['payment'] = $this->go_cart->payment_method(); @@ -550,7 +544,7 @@ function place_order() $this->email->subject($row['subject']); $this->email->message($row['content']); - // $this->email->send(); + $this->email->send(); $data['page_title'] = 'Thanks for shopping with '.$this->config->item('company_name'); $data['gift_cards_enabled'] = $this->gift_cards_enabled; @@ -560,6 +554,6 @@ function place_order() $this->load->view('order_placed', $data); //remove the cart from the session - // $this->go_cart->destroy(); + $this->go_cart->destroy(); } } \ No newline at end of file From 3ef9f03401a8f0f64bde8479e785ca3b5474df36 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 23 Jul 2012 15:26:46 -0500 Subject: [PATCH 198/343] Fixed error class for the bootstrap theme. --- gocart/themes/bootstrap/views/checkout/payment_form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/themes/bootstrap/views/checkout/payment_form.php b/gocart/themes/bootstrap/views/checkout/payment_form.php index 228f2efc..1f39ddd8 100644 --- a/gocart/themes/bootstrap/views/checkout/payment_form.php +++ b/gocart/themes/bootstrap/views/checkout/payment_form.php @@ -11,7 +11,7 @@ if(count($payment_methods) > 1): ?>
    go_cart->total()==0) { ?> style="display:none" > - + - - - '; - } ?> - \ No newline at end of file diff --git a/gocart/views/admin/product_form backup2.php b/gocart/views/admin/product_form backup2.php deleted file mode 100644 index 3a34c5f2..00000000 --- a/gocart/views/admin/product_form backup2.php +++ /dev/null @@ -1,780 +0,0 @@ - - - - - -config->item('admin_folder').'/products/form/'.$id ); ?> -
    -
    -
    - -
    -
    -
    -
    -
    - lang('name'), 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span8'); - echo form_input($data); - ?> -
    -
    -
    -
    - 'description', 'name'=>'description', 'class'=>'span8 tinyMCE', 'value'=>set_value('description', $description)); - echo form_textarea($data); - ?> - - -
    -
    - -
    -
    - - 'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'span8', 'rows'=>5); - echo form_textarea($data); - ?> -
    -
    - -
    -
    -
    - Inventory -
    -
    - - lang('yes') - ,'0' => lang('no') - ); - echo form_dropdown('track_stock', $options, set_value('track_stock',$track_stock), 'class="span3"'); - ?> -
    -
    - - lang('no') - ,'1' => lang('yes') - ); - echo form_dropdown('fixed_quantity', $options, set_value('fixed_quantity',$fixed_quantity), 'class="span3"'); - ?> -
    -
    - - 'quantity', 'value'=>set_value('quantity', $quantity), 'class'=>'span2'); - echo form_input($data); - ?> -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - - - 'slug', 'value'=>set_value('slug', $slug), 'class'=>'span8'); - echo form_input($data);?> - - - 'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'span8'); - echo form_input($data); - ?> - - - 'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'span8'); - echo form_textarea($data); - ?> -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    From 0c92f0c7dbc5c160816a6b26026384697835e064 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 23 Jul 2012 15:40:40 -0500 Subject: [PATCH 199/343] When viewing a page that does not exist by direct url we throw a 404 --- gocart/controllers/cart.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gocart/controllers/cart.php b/gocart/controllers/cart.php index fc71cd0a..ce780af4 100644 --- a/gocart/controllers/cart.php +++ b/gocart/controllers/cart.php @@ -59,11 +59,17 @@ function index() $this->load->view('homepage', $data); } - function page($id) + function page($id = false) { + //if there is no page id provided redirect to the homepage. + $data['page'] = $this->Page_model->get_page($id); + if(!$data['page']) + { + show_404(); + } $this->load->model('Page_model'); $data['base_url'] = $this->uri->segment_array(); - $data['page'] = $this->Page_model->get_page($id); + $data['fb_like'] = true; $data['page_title'] = $data['page']->title; From e33b37c3d212c806c3efe9a2031e63db68c7288b Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 23 Jul 2012 15:40:58 -0500 Subject: [PATCH 200/343] Fixed option errors in product_form.php view --- gocart/views/admin/product_form backup.php | 717 ------------------ gocart/views/admin/product_form backup2.php | 780 -------------------- gocart/views/admin/product_form.php | 31 +- 3 files changed, 19 insertions(+), 1509 deletions(-) delete mode 100644 gocart/views/admin/product_form backup.php delete mode 100644 gocart/views/admin/product_form backup2.php diff --git a/gocart/views/admin/product_form backup.php b/gocart/views/admin/product_form backup.php deleted file mode 100644 index 9a04114d..00000000 --- a/gocart/views/admin/product_form backup.php +++ /dev/null @@ -1,717 +0,0 @@ - - - - - -config->item('admin_folder').'/products/form/'.$id ); ?> -
    -
    -
    - -
    -
    -
    -
    -
    -
    - lang('name'), 'name'=>'name', 'value'=>set_value('name', $name), 'class'=>'span8'); - echo form_input($data); - ?> -
    -
    -
    -
    - 'description', 'name'=>'description', 'class'=>'span8 tinyMCE', 'value'=>set_value('description', $description)); - echo form_textarea($data); - ?> - - -
    -
    - -
    -
    - - 'excerpt', 'value'=>set_value('excerpt', $excerpt), 'class'=>'span8', 'rows'=>5); - echo form_textarea($data); - ?> -
    -
    - -
    -
    - - lang('yes') - ,'0' => lang('no') - ); - echo form_dropdown('track_stock', $options, set_value('track_stock',$track_stock), 'class="span3"'); - ?> -
    -
    - - lang('no') - ,'1' => lang('yes') - ); - echo form_dropdown('fixed_quantity', $options, set_value('fixed_quantity',$fixed_quantity), 'class="span3"'); - ?> -
    -
    - - 'quantity', 'value'=>set_value('quantity', $quantity), 'class'=>'span2'); - echo form_input($data); - ?> -
    - - - - - - - -
    -
    -
    - -
    -
    - -
    -
    - - - - - - - - - - - ':''?> - - - - - - - - - -
    '.lang('no_files').'
    filename ?>title ?>size ?>id, in_array($file->id, $product_files)); ?>
    -
    -
    - -
    - -
    -
    - - - - - - -
    -
    - -
    -
    - - -
    - required)) - { - $option->required = false; - } - ?> -
    -

    type.' > '.$option->name; ?>

    - -
    - - - - - - - - required)?'checked="checked"':'';?>/> - - type!='textarea' && $option->type!='textfield') { ?> - - - - -
    - type!='textarea' && $option->type!='textfield') { ?>
      - values)) - $valcount = 0; - foreach($option->values as $value) : - $value = (object)$value;?> - - type!='textarea' && $option->type!='textfield') { ?>
    • -
      - - - - - type == 'textfield'):?> - - - - - type!='textarea' && $option->type!='textfield') { ?> - - -
      - type!='textarea' && $option->type!='textfield') { ?> -
    • - - - - - type!='textarea' && $option->type!='textfield') { ?>
    -
    - - -
    -
    - - - -
    - - -
    -
    -
    -
    -
    -
    - lang('enabled') - ,'0' => lang('disabled') - ); - echo form_dropdown('enabled', $options, set_value('enabled',$enabled), 'class="span4"'); - ?> - - lang('shippable') - ,'0' => lang('not_shippable') - ); - echo form_dropdown('shippable', $options, set_value('shippable',$shippable), 'class="span4"'); - ?> - - lang('taxable') - ,'0' => lang('not_taxable') - ); - echo form_dropdown('taxable', $options, set_value('taxable',$taxable), 'class="span4"'); - ?> - - - 'slug', 'value'=>set_value('slug', $slug), 'class'=>'span4'); - echo form_input($data);?> - - - 'sku', 'value'=>set_value('sku', $sku), 'class'=>'span4'); - echo form_input($data);?> - - - 'weight', 'value'=>set_value('weight', $weight), 'class'=>'span4'); - echo form_input($data);?> - - - 'price', 'value'=>set_value('price', $price), 'class'=>'span4'); - echo form_input($data);?> - - - 'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'span4'); - echo form_input($data);?> -
    -
    - -
    - - - -



















    -
    - - - - - - - - - - - - - - 0) - { - $sub2 = str_replace('→ ', ' ', $sub); - $sub2 .= '   → '; - list_categories($cat['children'], $product_categories, $sub2); - } - endforeach; - } - - list_categories($categories, $product_categories); - ?> - -
    name; ?> - id, $product_categories))?'checked="checked"':'';?>/> -
    -
    - - -
    -
    - - 'seo_title', 'name'=>'seo_title', 'value'=>set_value('seo_title', $seo_title), 'class'=>'gc_tf1'); - echo form_input($data); - ?> -
    - -
    - - 'meta', 'name'=>'meta', 'value'=>set_value('meta', html_entity_decode($meta)), 'class'=>'gc_tf1'); - echo form_textarea($data); - ?> -
    -
    - -
    - - - -
    - -
    -
    - -
    - $photo_obj) - { - if(!empty($photo_obj)) - { - $photo = (array)$photo_obj; - add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); - } - - } - ?> -
    -
    -
    - - -
    - -
    - - - -
    - - - - - - - - -
    - - - - /> - - -
    - - - - - - - - - -
    -
    -
    - -
    -

    '.$name; ?>

    -
    - - - - - - - - - - - -
    -
      - -
    -
    -
    -
    - - - - - -
    - - '.$name.' - '.lang('remove').' -
    - - - - - - - - - - ':''?> - - - - - - - - - -
    '.lang('no_files').'
    filename ?>title ?>size ?>id, in_array($file->id, $product_files)); ?>
    - -
    - -
    -
    -
    - - - - - - - - 0) - { - $sub2 = str_replace('→ ', ' ', $sub); - $sub2 .= '   → '; - list_categories($cat['children'], $product_categories, $sub2); - } - endforeach; - } - - list_categories($categories, $product_categories); - ?> - -
    name; ?> - id, $product_categories))?'checked="checked"':'';?>/> -
    - -
    -
    -
    - -
    -
    -
    -
    - required)) - { - $option->required = false; - } - ?> - -
    - -
    -
    - -
    -
    - -
    -
    - required)?'checked="checked"':'';?>/> -
    -
    - type!='textarea' && $option->type!='textfield'):?> -
    -
    - -
    -
    - - - - - - - - - - - - - values)): - $valcount = 0; - foreach($option->values as $value) : - $value = (object)$value;?> - - - - - - - - - - -
    - - - - - - - -
    - - - - - - - - - type == 'textfield'):?> - - - - values)): - $valcount = 0; - foreach($option->values as $value) : - $value = (object)$value;?> - - - - - - - type == 'textfield'):?> - - - - - -
    - - - - - - - - - - - -
    - -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    - - -
    -
    -
    -
    - - - -
    -
    -
    -
    - -
    - $photo_obj) - { - if(!empty($photo_obj)) - { - $photo = (array)$photo_obj; - add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); - } - - } - ?> -
    -
    -
    -
    -
    -
    -
    -
    - lang('disabled') - ,'1' => lang('enabled') - ); - echo form_dropdown('enabled', $options, set_value('enabled',$enabled), 'class="span4"'); - ?> - - lang('shippable') - ,'0' => lang('not_shippable') - ); - echo form_dropdown('shippable', $options, set_value('shippable',$shippable), 'class="span4"'); - ?> - - lang('taxable') - ,'0' => lang('not_taxable') - ); - echo form_dropdown('taxable', $options, set_value('taxable',$taxable), 'class="span4"'); - ?> - - - 'sku', 'value'=>set_value('sku', $sku), 'class'=>'span4'); - echo form_input($data);?> - - - 'weight', 'value'=>set_value('weight', $weight), 'class'=>'span4'); - echo form_input($data);?> - - - 'price', 'value'=>set_value('price', $price), 'class'=>'span4'); - echo form_input($data);?> - - - 'saleprice', 'value'=>set_value('saleprice', $saleprice), 'class'=>'span4'); - echo form_input($data);?> -
    -
    - -
    - -
    - - - -
    -
    - - -
    -
    -
    -
    - -
    -
    - /> -
    -
    - -
    -
    -
    -
    - - -
    -
    -
    -
    - - - -
    -
    - - - -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    - -
    -
    -
    - - - - - - - - - '.$name.' - - '.lang('remove').' - - - '; - } ?> - \ No newline at end of file diff --git a/gocart/views/admin/product_form.php b/gocart/views/admin/product_form.php index 73c4fb31..b87eaf9c 100644 --- a/gocart/views/admin/product_form.php +++ b/gocart/views/admin/product_form.php @@ -33,7 +33,7 @@ function add_product_image(data) { p = data.split('.'); - var photo = ''; + var photo = 's3_url);?>'; $('#gc_photos').append(photo); $('#gc_photos').sortable('destroy'); photos_sortable(); @@ -96,6 +96,7 @@ function remove_option(id) ?> +
    required)){$po->required = false;} - - add_option($po, $counter); - $counter++; + foreach($product_options as $po) + { + $po = (object)$po; + if(empty($po->required)){$po->required = false;} + + add_option($po, $counter); + $counter++; + } }?> @@ -490,14 +495,14 @@ function(data) {
    + $photo_obj) { if(!empty($photo_obj)) { $photo = (array)$photo_obj; - add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); + add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary']), $this->s3_url); } } @@ -558,13 +563,15 @@ function(data) {
    - +
    From 69a256cb97923fd1a464814e3d7ed1cbf6ffded5 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 24 Jul 2012 10:45:01 -0500 Subject: [PATCH 201/343] Fixed bad return if the row does not exist --- gocart/models/gift_card_model.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gocart/models/gift_card_model.php b/gocart/models/gift_card_model.php index d3edb19a..6611cbdf 100644 --- a/gocart/models/gift_card_model.php +++ b/gocart/models/gift_card_model.php @@ -119,7 +119,15 @@ function is_active($code) $this->db->where('code', $code); $res = $this->db->get('gift_cards'); $row = $res->row(); - return (bool) $row->activated; + if($row) + { + return (bool) $row->activated; + } + else + { + return false; + } + } From d50f63429ba2a20c6d55e849cb771769c776729c Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Tue, 24 Jul 2012 11:09:56 -0500 Subject: [PATCH 202/343] Fixed taxable shipping. --- gocart/libraries/Go_cart.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gocart/libraries/Go_cart.php b/gocart/libraries/Go_cart.php index d6ffd6da..dfb160cd 100644 --- a/gocart/libraries/Go_cart.php +++ b/gocart/libraries/Go_cart.php @@ -751,8 +751,11 @@ private function _save_cart($recalculate=true) // Shipping costs if($this->_cart_contents['requires_shipping']) { - $this->_cart_contents['cart_total'] += $this->_cart_contents['shipping']['price']; - } else { + $this->_cart_contents['cart_total'] += $this->_cart_contents['shipping']['price']; + $this->_cart_contents['taxable_total'] += $this->_cart_contents['shipping']['price']; + } + else + { // placeholders $this->_cart_contents['shipping']['method'] = false; // defaults $this->_cart_contents['shipping']['price'] = false; From 6572ebc0733abaecfe287fee082e1591919a36dc Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 26 Jul 2012 11:14:18 -0500 Subject: [PATCH 203/343] Fixed bug where taxes break when totalling more than 999 --- gocart/models/tax_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/models/tax_model.php b/gocart/models/tax_model.php index 9b792327..f31c1eac 100644 --- a/gocart/models/tax_model.php +++ b/gocart/models/tax_model.php @@ -75,7 +75,7 @@ function get_tax_total() $tax_total = 0; $tax_total = $tax_total + $this->get_taxes(); - return number_format($tax_total, 2, '.', ','); + return number_format($tax_total, 2, '.', ''); } function get_tax_rate() From e87b953c1e06e42d4bc4031d517760eb5c2109b6 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 26 Jul 2012 11:29:11 -0500 Subject: [PATCH 204/343] Force checkout to see if a post code is required before automatically requiring it for a country. --- gocart/controllers/checkout.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/gocart/controllers/checkout.php b/gocart/controllers/checkout.php index d7667a53..ceacb7a6 100644 --- a/gocart/controllers/checkout.php +++ b/gocart/controllers/checkout.php @@ -221,7 +221,19 @@ function save_customer() $this->form_validation->set_rules('bill_city', 'Billing City', 'trim|required|max_length[128]'); $this->form_validation->set_rules('bill_country_id', 'Billing Country', 'trim|required|numeric'); $this->form_validation->set_rules('bill_zone_id', 'Billing State', 'trim|required|numeric'); - $this->form_validation->set_rules('bill_zip', 'Billing Zip', 'trim|required|max_length[10]'); + //if there is post data, get the country info and see if the zip code is required + if($this->input->post('bill_country_id')) + { + $country = $this->Location_model->get_country($this->input->post('bill_country_id')); + if((bool)$country->postcode_required) + { + $this->form_validation->set_rules('bill_zip', 'Billing Zip', 'trim|required|max_length[10]'); + } + } + else + { + $this->form_validation->set_rules('bill_zip', 'Billing Zip', 'trim|max_length[10]'); + } } $this->form_validation->set_rules('ship_address_id', 'Shipping Address ID', 'numeric'); @@ -235,7 +247,20 @@ function save_customer() $this->form_validation->set_rules('ship_city', 'Shipping City', 'trim|required|max_length[128]'); $this->form_validation->set_rules('ship_country_id', 'Shipping Country', 'trim|required|numeric'); $this->form_validation->set_rules('ship_zone_id', 'Shipping State', 'trim|required|numeric'); - $this->form_validation->set_rules('ship_zip', 'Shipping Zip', 'trim|required|max_length[10]'); + + //if there is post data, get the country info and see if the zip code is required + if($this->input->post('ship_country_id')) + { + $country = $this->Location_model->get_country($this->input->post('ship_country_id')); + if((bool)$country->postcode_required) + { + $this->form_validation->set_rules('ship_zip', 'Shipping Zip', 'trim|required|max_length[10]'); + } + } + else + { + $this->form_validation->set_rules('ship_zip', 'Shipping Zip', 'trim|max_length[10]'); + } From b168e43651a9e4149fdc74e8a33860b263210680 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 26 Jul 2012 11:38:35 -0500 Subject: [PATCH 205/343] Fixer typo that caused PHP errors in the admin form. --- .../libraries/united_parcel_service.php | 285 +++++++++--------- 1 file changed, 141 insertions(+), 144 deletions(-) diff --git a/gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php b/gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php index 86d52371..c2e89b8f 100644 --- a/gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php +++ b/gocart/packages/shipping/united_parcel_service/libraries/united_parcel_service.php @@ -2,38 +2,38 @@ class United_parcel_service { - + var $CI; var $ups_services; - + function United_parcel_service() { $this->CI =& get_instance(); $this->CI->lang->load('ups'); - + // standard services $this->ups_services = array( - '01' => 'UPS Next Day Air', - '02' => 'UPS Second Day Air', - '03' => 'UPS Ground', - '07' => 'UPS Worldwide Express', - '08' => 'UPS Worldwide Expedited', - '11' => 'UPS Standard', - '12' => 'UPS Three-Day Select', - '13' => 'UPS Next Day Air Saver', - '14' => 'UPS Next Day Air Early AM', - '54' => 'UPS Worldwide Express Plus', - '59' => 'UPS Second Day Air AM', - '65' => 'UPS Saver' - ); - + '01' => 'UPS Next Day Air', + '02' => 'UPS Second Day Air', + '03' => 'UPS Ground', + '07' => 'UPS Worldwide Express', + '08' => 'UPS Worldwide Expedited', + '11' => 'UPS Standard', + '12' => 'UPS Three-Day Select', + '13' => 'UPS Next Day Air Saver', + '14' => 'UPS Next Day Air Early AM', + '54' => 'UPS Worldwide Express Plus', + '59' => 'UPS Second Day Air AM', + '65' => 'UPS Saver' + ); + } - function rates( ) - { - - // load settings + function rates( ) + { + + // load settings if($settings = $this->CI->Settings_model->get_settings('united_parcel_service')) { $access_key = $settings['access_key']; $ups_account_username = $settings['ups_account_username']; @@ -45,122 +45,122 @@ function rates( ) } else { return array(); // no settings, no compute } - + $zip_code = $this->CI->config->item('zip'); - $customer = $this->CI->go_cart->customer(); + $customer = $this->CI->go_cart->customer(); $weight = $this->CI->go_cart->order_weight(); $currency = $this->CI->config->item('currency'); $insured_value = $this->CI->go_cart->order_insurable_value(); - + // shipping address will always be there $destination_zip = $customer['ship_address']['zip']; - - + + $data =" - - $access_key - $ups_account_username - $ups_account_password - - - - - - Rating and Service - 1.0001 - - Rate - shop - - - 01 - - - -
    - $zip_code -
    -
    - -
    - $destination_zip -
    -
    - - - 02 - Package - - Rate Shopping - - $weight - - - $currency - $insured_value - - - -
    -
    "; - - - $ch = curl_init("https://www.ups.com/ups.app/xml/Rate"); - curl_setopt($ch, CURLOPT_HEADER, 1); - curl_setopt($ch,CURLOPT_POST,1); - curl_setopt($ch,CURLOPT_TIMEOUT, 60); - curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); - curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); - curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); - curl_setopt($ch,CURLOPT_POSTFIELDS,$data); - $result=curl_exec ($ch); - - //die(print_r($result)); // uncomment to debug - - $data = strstr($result, 'Response->ResponseStatusCode == '1') - { - foreach($xml->RatedShipment as $shipping_choice) - { - // only display the ones the admin has chosen to show - if(in_array($shipping_choice->Service->Code, $services)) - { - $k = $this->ups_services[(string)$shipping_choice->Service->Code]; - $amount = (string)$shipping_choice->TotalCharges->MonetaryValue; - - if(is_numeric($handling_amount)) // valid entry? - { - if($handling_method=='$') - { - $amount += $handling_amount; - } - elseif($handling_method=='%') - { - $amount += $amount * ($handling_amount/100); - } - } - - $shipping_choices[$k] = $amount; - } - } - return $shipping_choices; - } - else - { - //send back empty array on fail - return array(); - } - } - - + + $access_key + $ups_account_username + $ups_account_password + + + + + + Rating and Service + 1.0001 + + Rate + shop + + + 01 + + + +
    + $zip_code +
    +
    + +
    + $destination_zip +
    +
    + + + 02 + Package + + Rate Shopping + + $weight + + + $currency + $insured_value + + + +
    +
    "; + + + $ch = curl_init("https://www.ups.com/ups.app/xml/Rate"); + curl_setopt($ch, CURLOPT_HEADER, 1); + curl_setopt($ch,CURLOPT_POST,1); + curl_setopt($ch,CURLOPT_TIMEOUT, 60); + curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); + curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); + curl_setopt($ch,CURLOPT_POSTFIELDS,$data); + $result=curl_exec ($ch); + + //die(print_r($result)); // uncomment to debug + + $data = strstr($result, 'Response->ResponseStatusCode == '1') + { + foreach($xml->RatedShipment as $shipping_choice) + { + // only display the ones the admin has chosen to show + if(in_array($shipping_choice->Service->Code, $services)) + { + $k = $this->ups_services[(string)$shipping_choice->Service->Code]; + $amount = (string)$shipping_choice->TotalCharges->MonetaryValue; + + if(is_numeric($handling_amount)) // valid entry? + { + if($handling_method=='$') + { + $amount += $handling_amount; + } + elseif($handling_method=='%') + { + $amount += $amount * ($handling_amount/100); + } + } + + $shipping_choices[$k] = $amount; + } + } + return $shipping_choices; + } + else + { + //send back empty array on fail + return array(); + } + } + + function install() { $default_settings = array( 'access_key' => '', - 'ups_account_username' => '', - 'ups_account_password' => '', + 'ups_account_username' => '', + 'ups_account_password' => '', 'services' => '11', 'handling_method' => '$', 'handling_amount' => '5', @@ -169,18 +169,17 @@ function install() //set a default blank setting for flatrate shipping $this->CI->Settings_model->save_settings('united_parcel_service', $default_settings); } - + function uninstall() { - $this->CI->Settings_model->delete_settings('united_parcel_service'); } - + function form($post = false) { - + $this->CI->load->helper('form'); - + //this same function processes the form if(!$post) { @@ -203,7 +202,7 @@ function form($post = false) $handling_amount = $post['handling_amount']; $enabled = $post['enabled']; } - + ob_start(); ?> @@ -220,10 +219,10 @@ function form($post = false) ups_services as $id=>$opt):?> - + @@ -239,13 +238,11 @@ function form($post = false) return $form; } - + function check() { $error = false; - - // no checking yet - + //count the errors if($error) { @@ -253,14 +250,14 @@ function check() } else { - $settings = $_POST; + $settings = $this->CI->input->post(); $settings['services'] = implode(',', $settings['services']); - + //we save the settings if it gets here $this->CI->Settings_model->save_settings('united_parcel_service', $settings); - + return false; } } - + } \ No newline at end of file From 69db754d91d75867fe26910dc22be1bac9849d4c Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 26 Jul 2012 15:53:18 -0500 Subject: [PATCH 206/343] Updated to CodeIgniter 2.1.2 --- changelog.txt | 2 +- system/core/Benchmark.php | 0 system/core/CodeIgniter.php | 2 +- system/core/Config.php | 0 system/core/Exceptions.php | 0 system/core/Hooks.php | 0 system/core/Input.php | 0 system/core/Lang.php | 0 system/core/Model.php | 0 system/core/Output.php | 0 system/core/Router.php | 0 system/core/Security.php | 151 +++++++++++--------- system/core/URI.php | 0 system/database/DB.php | 0 system/database/drivers/pdo/pdo_driver.php | 2 +- system/database/drivers/pdo/pdo_forge.php | 2 +- system/database/drivers/pdo/pdo_result.php | 2 +- system/database/drivers/pdo/pdo_utility.php | 2 +- 18 files changed, 87 insertions(+), 76 deletions(-) mode change 100644 => 100755 system/core/Benchmark.php mode change 100644 => 100755 system/core/CodeIgniter.php mode change 100644 => 100755 system/core/Config.php mode change 100644 => 100755 system/core/Exceptions.php mode change 100644 => 100755 system/core/Hooks.php mode change 100644 => 100755 system/core/Input.php mode change 100644 => 100755 system/core/Lang.php mode change 100644 => 100755 system/core/Model.php mode change 100644 => 100755 system/core/Output.php mode change 100644 => 100755 system/core/Router.php mode change 100644 => 100755 system/core/Security.php mode change 100644 => 100755 system/core/URI.php mode change 100644 => 100755 system/database/DB.php diff --git a/changelog.txt b/changelog.txt index 10862558..bbe1307d 100755 --- a/changelog.txt +++ b/changelog.txt @@ -4,7 +4,7 @@ Version 2.0 Features - - Upgraded to CodeIgnier 2.1.1 + - Upgraded to CodeIgniter 2.1.2 - Updated SQL install script to support ipv6 ip address length - New default theme based on Twitter bootstrap 2.0 - Admin interface now based on twitter bootstrap diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php old mode 100644 new mode 100755 diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php old mode 100644 new mode 100755 index ec729410..cd333333 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -33,7 +33,7 @@ * @var string * */ - define('CI_VERSION', '2.1.1'); + define('CI_VERSION', '2.1.2'); /** * CodeIgniter Branch (Core = TRUE, Reactor = FALSE) diff --git a/system/core/Config.php b/system/core/Config.php old mode 100644 new mode 100755 diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php old mode 100644 new mode 100755 diff --git a/system/core/Hooks.php b/system/core/Hooks.php old mode 100644 new mode 100755 diff --git a/system/core/Input.php b/system/core/Input.php old mode 100644 new mode 100755 diff --git a/system/core/Lang.php b/system/core/Lang.php old mode 100644 new mode 100755 diff --git a/system/core/Model.php b/system/core/Model.php old mode 100644 new mode 100755 diff --git a/system/core/Output.php b/system/core/Output.php old mode 100644 new mode 100755 diff --git a/system/core/Router.php b/system/core/Router.php old mode 100644 new mode 100755 diff --git a/system/core/Security.php b/system/core/Security.php old mode 100644 new mode 100755 index 6f5ac1ed..7af240de --- a/system/core/Security.php +++ b/system/core/Security.php @@ -1,4 +1,4 @@ - '[removed]', - 'document.write' => '[removed]', - '.parentNode' => '[removed]', - '.innerHTML' => '[removed]', - 'window.location' => '[removed]', - '-moz-binding' => '[removed]', - '' => '-->', - ' '<![CDATA[', - '' => '<comment>' + 'document.cookie' => '[removed]', + 'document.write' => '[removed]', + '.parentNode' => '[removed]', + '.innerHTML' => '[removed]', + 'window.location' => '[removed]', + '-moz-binding' => '[removed]', + '' => '-->', + ' '<![CDATA[', + '' => '<comment>' ); /* never allowed, regex replacement */ @@ -89,10 +89,11 @@ class CI_Security { * @access protected */ protected $_never_allowed_regex = array( - "javascript\s*:" => '[removed]', - "expression\s*(\(|&\#40;)" => '[removed]', // CSS and IE - "vbscript\s*:" => '[removed]', // IE, surprise! - "Redirect\s+302" => '[removed]' + 'javascript\s*:', + 'expression\s*(\(|&\#40;)', // CSS and IE + 'vbscript\s*:', // IE, surprise! + 'Redirect\s+302', + "([\"'])?data\s*:[^\\1]*?base64[^\\1]*?,[^\\1]*?\\1?" ); /** @@ -364,9 +365,9 @@ public function xss_clean($str, $is_image = FALSE) * These words are compacted back to their correct state. */ $words = array( - 'javascript', 'expression', 'vbscript', 'script', - 'applet', 'alert', 'document', 'write', 'cookie', 'window' - ); + 'javascript', 'expression', 'vbscript', 'script', 'base64', + 'applet', 'alert', 'document', 'write', 'cookie', 'window' + ); foreach ($words as $word) { @@ -524,38 +525,38 @@ public function entity_decode($str, $charset='UTF-8') public function sanitize_filename($str, $relative_path = FALSE) { $bad = array( - "../", - "", - "<", - ">", - "'", - '"', - '&', - '$', - '#', - '{', - '}', - '[', - ']', - '=', - ';', - '?', - "%20", - "%22", - "%3c", // < - "%253c", // < - "%3e", // > - "%0e", // > - "%28", // ( - "%29", // ) - "%2528", // ( - "%26", // & - "%24", // $ - "%3f", // ? - "%3b", // ; - "%3d" // = - ); + "../", + "", + "<", + ">", + "'", + '"', + '&', + '$', + '#', + '{', + '}', + '[', + ']', + '=', + ';', + '?', + "%20", + "%22", + "%3c", // < + "%253c", // < + "%3e", // > + "%0e", // > + "%28", // ( + "%29", // ) + "%2528", // ( + "%26", // & + "%24", // $ + "%3f", // ? + "%3b", // ; + "%3d" // = + ); if ( ! $relative_path) { @@ -613,19 +614,20 @@ protected function _remove_evil_attributes($str, $is_image) */ unset($evil_attributes[array_search('xmlns', $evil_attributes)]); } - + do { $count = 0; $attribs = array(); - + // find occurrences of illegal attribute strings without quotes - preg_match_all("/(".implode('|', $evil_attributes).")\s*=\s*([^\s]*)/is", $str, $matches, PREG_SET_ORDER); - + preg_match_all('/('.implode('|', $evil_attributes).')\s*=\s*([^\s>]*)/is', $str, $matches, PREG_SET_ORDER); + foreach ($matches as $attr) { + $attribs[] = preg_quote($attr[0], '/'); } - + // find occurrences of illegal attribute strings with quotes (042 and 047 are octal quotes) preg_match_all("/(".implode('|', $evil_attributes).")\s*=\s*(\042|\047)([^\\2]*?)(\\2)/is", $str, $matches, PREG_SET_ORDER); @@ -637,11 +639,11 @@ protected function _remove_evil_attributes($str, $is_image) // replace illegal attribute strings that are inside an html tag if (count($attribs) > 0) { - $str = preg_replace("/<(\/?[^><]+?)([^A-Za-z\-])(".implode('|', $attribs).")([\s><])([><]*)/i", '<$1$2$4$5', $str, -1, $count); + $str = preg_replace("/<(\/?[^><]+?)([^A-Za-z<>\-])(.*?)(".implode('|', $attribs).")(.*?)([\s><])([><]*)/i", '<$1 $3$5$6$7', $str, -1, $count); } - + } while ($count); - + return $str; } @@ -682,9 +684,15 @@ protected function _sanitize_naughty_html($matches) */ protected function _js_link_removal($match) { - $attributes = $this->_filter_attributes(str_replace(array('<', '>'), '', $match[1])); - - return str_replace($match[1], preg_replace("#href=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|_filter_attributes(str_replace(array('<', '>'), '', $match[1])) + ), + $match[0] + ); } // -------------------------------------------------------------------- @@ -702,9 +710,15 @@ protected function _js_link_removal($match) */ protected function _js_img_removal($match) { - $attributes = $this->_filter_attributes(str_replace(array('<', '>'), '', $match[1])); - - return str_replace($match[1], preg_replace("#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|_filter_attributes(str_replace(array('<', '>'), '', $match[1])) + ), + $match[0] + ); } // -------------------------------------------------------------------- @@ -819,14 +833,11 @@ protected function _validate_entities($str) */ protected function _do_never_allowed($str) { - foreach ($this->_never_allowed_str as $key => $val) - { - $str = str_replace($key, $val, $str); - } + $str = str_replace(array_keys($this->_never_allowed_str), $this->_never_allowed_str, $str); - foreach ($this->_never_allowed_regex as $key => $val) + foreach ($this->_never_allowed_regex as $regex) { - $str = preg_replace("#".$key."#i", $val, $str); + $str = preg_replace('#'.$regex.'#is', '[removed]', $str); } return $str; diff --git a/system/core/URI.php b/system/core/URI.php old mode 100644 new mode 100755 diff --git a/system/database/DB.php b/system/database/DB.php old mode 100644 new mode 100755 diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index 654074cd..1ecc90a8 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -9,7 +9,7 @@ * @license http://codeigniter.com/user_guide/license.html * @author EllisLab Dev Team * @link http://codeigniter.com - * @since Version 2.1.1 + * @since Version 2.1.2 * @filesource */ diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php index 1a076d4a..9a782208 100644 --- a/system/database/drivers/pdo/pdo_forge.php +++ b/system/database/drivers/pdo/pdo_forge.php @@ -9,7 +9,7 @@ * @license http://codeigniter.com/user_guide/license.html * @author EllisLab Dev Team * @link http://codeigniter.com - * @since Version 2.1.1 + * @since Version 2.1.2 * @filesource */ diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index 650b5f98..a366a5f1 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -9,7 +9,7 @@ * @license http://codeigniter.com/user_guide/license.html * @author EllisLab Dev Team * @link http://codeigniter.com - * @since Version 2.1.1 + * @since Version 2.1.2 * @filesource */ diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php index fec27645..88ce033a 100644 --- a/system/database/drivers/pdo/pdo_utility.php +++ b/system/database/drivers/pdo/pdo_utility.php @@ -9,7 +9,7 @@ * @license http://codeigniter.com/user_guide/license.html * @author EllisLab Dev Team * @link http://codeigniter.com - * @since Version 2.1.1 + * @since Version 2.1.2 * @filesource */ From 1785874c6fd7a298a732c4e0294902cf4c486eb3 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 6 Aug 2012 12:30:16 -0500 Subject: [PATCH 207/343] Remove erroneously included code and replaced with appropriate paths --- gocart/views/admin/product_form.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gocart/views/admin/product_form.php b/gocart/views/admin/product_form.php index b87eaf9c..aa84f50b 100644 --- a/gocart/views/admin/product_form.php +++ b/gocart/views/admin/product_form.php @@ -33,7 +33,7 @@ function add_product_image(data) { p = data.split('.'); - var photo = 's3_url);?>'; + var photo = ''; $('#gc_photos').append(photo); $('#gc_photos').sortable('destroy'); photos_sortable(); @@ -502,7 +502,7 @@ function(data) { if(!empty($photo_obj)) { $photo = (array)$photo_obj; - add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary']), $this->s3_url); + add_image($photo_id, $photo['filename'], $photo['alt'], $photo['caption'], isset($photo['primary'])); } } @@ -563,7 +563,7 @@ function(data) { " style="background-color:#fff; border-bottom:1px solid #ddd; padding-bottom:20px; margin-bottom:20px;">
    - +
    From 53cdd1b03fa4ec4ced71b3d91bec769669fd37f5 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 9 Aug 2012 10:04:44 -0500 Subject: [PATCH 208/343] Fix the ability to completely remove a product from all categories --- gocart/controllers/admin/products.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gocart/controllers/admin/products.php b/gocart/controllers/admin/products.php index 0ea57572..46d28206 100644 --- a/gocart/controllers/admin/products.php +++ b/gocart/controllers/admin/products.php @@ -362,6 +362,10 @@ function form($id = false, $duplicate = false) //save categories $categories = $this->input->post('categories'); + if(!$categories) + { + $categories = array(); + } // format options $options = array(); From 39d368887e4e4e3de1a140e93ecd618780e35de7 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Thu, 9 Aug 2012 12:36:03 -0500 Subject: [PATCH 209/343] Update gocart/themes/bootstrap/views/checkout/payment_form.php Update to classname on line 64 (thanks briangelhaus) --- gocart/themes/bootstrap/views/checkout/payment_form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/themes/bootstrap/views/checkout/payment_form.php b/gocart/themes/bootstrap/views/checkout/payment_form.php index 1f39ddd8..1c4df6e7 100644 --- a/gocart/themes/bootstrap/views/checkout/payment_form.php +++ b/gocart/themes/bootstrap/views/checkout/payment_form.php @@ -61,7 +61,7 @@ function set_payment(value) { }
    go_cart->total()==0) { ?> style="display:none" > - + $info):?> From d2c5e1b7272b947a8877116afdd7dd5d959f89b8 Mon Sep 17 00:00:00 2001 From: mangia84 Date: Fri, 10 Aug 2012 23:48:21 +0300 Subject: [PATCH 210/343] Update gocart/models/category_model.php --- gocart/models/category_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/models/category_model.php b/gocart/models/category_model.php index 06e364bc..121c7100 100644 --- a/gocart/models/category_model.php +++ b/gocart/models/category_model.php @@ -6,7 +6,7 @@ function get_categories($parent = false) { if ($parent !== false) { - $this->db->where("parent_id = $parent"); + $this->db->where('parent_id', $parent); } $this->db->select('id'); $this->db->order_by('categories.sequence', 'ASC'); From 23969ff6e41adc41b9080060f45165d869411aa1 Mon Sep 17 00:00:00 2001 From: mangia84 Date: Fri, 10 Aug 2012 23:54:06 +0300 Subject: [PATCH 211/343] Update gocart/views/admin/category_form.php removed class from image upload field --- gocart/views/admin/category_form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/views/admin/category_form.php b/gocart/views/admin/category_form.php index d16e0815..f852fe35 100644 --- a/gocart/views/admin/category_form.php +++ b/gocart/views/admin/category_form.php @@ -66,7 +66,7 @@
    - 'image', 'class'=>'btn'));?> config->item('size_limit')/1024; ?>kb + 'image'));?> config->item('size_limit')/1024; ?>kb
    From 75b549f98ab0db35e869888fc2efea0f3f85a539 Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Fri, 10 Aug 2012 20:28:22 -0500 Subject: [PATCH 212/343] Escape slug in mysql statement when looking for a route This could probably have been used as a sql injection directly from the routing. --- gocart/core/MY_Router.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/core/MY_Router.php b/gocart/core/MY_Router.php index 26a1c998..e9ea910c 100644 --- a/gocart/core/MY_Router.php +++ b/gocart/core/MY_Router.php @@ -113,7 +113,7 @@ function _parse_routes() function _get_db_route($prefix, $slug) { - $query = 'SELECT * FROM '.$prefix.'routes WHERE slug=\''.$slug.'\' LIMIT 1'; + $$query = 'SELECT * FROM '.$prefix.'routes WHERE slug=\''.mysql_escape_string($slug).'\' LIMIT 1'; $query = mysql_query($query); return mysql_fetch_assoc($query); From ccdd613c187b54c51efca8fbc8f8b2a37c113cea Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Sat, 11 Aug 2012 09:02:49 -0500 Subject: [PATCH 213/343] Fixed $$ (thanks mangia84) --- gocart/core/MY_Router.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gocart/core/MY_Router.php b/gocart/core/MY_Router.php index e9ea910c..121c6392 100644 --- a/gocart/core/MY_Router.php +++ b/gocart/core/MY_Router.php @@ -113,7 +113,7 @@ function _parse_routes() function _get_db_route($prefix, $slug) { - $$query = 'SELECT * FROM '.$prefix.'routes WHERE slug=\''.mysql_escape_string($slug).'\' LIMIT 1'; + $query = 'SELECT * FROM '.$prefix.'routes WHERE slug=\''.mysql_escape_string($slug).'\' LIMIT 1'; $query = mysql_query($query); return mysql_fetch_assoc($query); From 8b059be56872b58398a71e312adeef2c252e1add Mon Sep 17 00:00:00 2001 From: Noah Mormino Date: Mon, 13 Aug 2012 15:24:43 -0500 Subject: [PATCH 214/343] Remonde old default theme and renamed bootstrap theme to default --- gocart/themes/bootstrap/images/body_bg.gif | Bin 1174 -> 0 bytes gocart/themes/bootstrap/images/delete.png | Bin 336 -> 0 bytes gocart/themes/bootstrap/images/footer_bg.png | Bin 2550 -> 0 bytes gocart/themes/bootstrap/images/footer_lid.gif | Bin 1309 -> 0 bytes gocart/themes/bootstrap/images/input_bg.png | Bin 1443 -> 0 bytes .../themes/bootstrap/views/address_form.php | 122 -- gocart/themes/bootstrap/views/category.php | 109 -- .../checkout/additional_details_form.php | 30 - .../bootstrap/views/checkout/checkout.php | 260 ---- .../views/checkout/customer_details.php | 450 ------ .../checkout/customer_details_static.php | 57 - .../bootstrap/views/checkout/payment_form.php | 89 -- .../views/checkout/shipping_form.php | 40 - .../bootstrap/views/checkout/summary.php | 161 --- gocart/themes/bootstrap/views/footer.php | 11 - .../bootstrap/views/forgot_password.php | 32 - gocart/themes/bootstrap/views/giftcards.php | 111 -- gocart/themes/bootstrap/views/header.php | 165 --- gocart/themes/bootstrap/views/homepage.php | 73 - gocart/themes/bootstrap/views/index.html | 10 - gocart/themes/bootstrap/views/login.php | 52 - gocart/themes/bootstrap/views/my_account.php | 228 --- .../themes/bootstrap/views/my_downloads.php | 82 -- gocart/themes/bootstrap/views/order_email.php | 170 --- .../themes/bootstrap/views/order_placed.php | 178 --- gocart/themes/bootstrap/views/page.php | 3 - gocart/themes/bootstrap/views/payment.php | 60 - gocart/themes/bootstrap/views/product.php | 377 ----- gocart/themes/bootstrap/views/register.php | 80 -- gocart/themes/bootstrap/views/view_cart.php | 183 --- .../assets/css/bootstrap-responsive.css | 0 .../assets/css/bootstrap-responsive.min.css | 0 .../assets/css/bootstrap.css | 0 .../assets/css/bootstrap.min.css | 0 .../assets/css/jquery-ui-1.8.19.custom.css | 0 .../assets/css/styles.css | 0 .../assets/img/ajax-loader.gif | Bin .../assets/img/glyphicons-halflings-white.png | Bin .../assets/img/glyphicons-halflings.png | Bin .../assets/img/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../img/ui-bg_flat_65_f2f2f2_40x100.png | Bin .../img/ui-bg_flat_75_eeeeee_40x100.png | Bin .../img/ui-bg_flat_75_f2f2f2_40x100.png | Bin .../img/ui-bg_flat_75_ffffff_40x100.png | Bin .../img/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../img/ui-bg_inset-soft_95_fef1ec_1x100.png | Bin .../assets/img/ui-icons_2e83ff_256x240.png | Bin .../assets/img/ui-icons_333333_256x240.png | Bin .../assets/img/ui-icons_cd0a0a_256x240.png | Bin .../assets/js/bootstrap.js | 0 .../assets/js/bootstrap.min.js | 0 .../assets/js/equal_heights.js | 0 .../assets/js/jquery-1.7.2.min.js | 0 .../assets/js/jquery-ui-1.8.19.custom.min.js | 0 .../assets/js/squard.js | 0 gocart/themes/default/css/styles.css | 1222 ----------------- gocart/themes/default/views/address_form.php | 134 +- gocart/themes/default/views/category.php | 218 ++- .../checkout/additional_details_form.php | 50 +- .../default/views/checkout/checkout.php | 68 +- .../views/checkout/customer_details.php | 384 +++--- .../checkout/customer_details_static.php | 64 +- .../default/views/checkout/payment_form.php | 4 +- .../default/views/checkout/shipping_form.php | 64 +- .../themes/default/views/checkout/summary.php | 54 +- gocart/themes/default/views/footer.php | 32 +- .../themes/default/views/forgot_password.php | 41 +- gocart/themes/default/views/giftcards.php | 198 +-- gocart/themes/default/views/header.php | 318 ++--- gocart/themes/default/views/homepage.php | 137 +- gocart/themes/default/views/login.php | 70 +- gocart/themes/default/views/my_account.php | 270 ++-- gocart/themes/default/views/my_downloads.php | 29 +- gocart/themes/default/views/order_placed.php | 216 +-- gocart/themes/default/views/product.php | 454 +++--- gocart/themes/default/views/register.php | 125 +- gocart/themes/default/views/view_cart.php | 211 ++- .../application/views/templates/gocart.php | 2 +- 78 files changed, 1590 insertions(+), 5908 deletions(-) delete mode 100644 gocart/themes/bootstrap/images/body_bg.gif delete mode 100644 gocart/themes/bootstrap/images/delete.png delete mode 100644 gocart/themes/bootstrap/images/footer_bg.png delete mode 100644 gocart/themes/bootstrap/images/footer_lid.gif delete mode 100644 gocart/themes/bootstrap/images/input_bg.png delete mode 100644 gocart/themes/bootstrap/views/address_form.php delete mode 100644 gocart/themes/bootstrap/views/category.php delete mode 100644 gocart/themes/bootstrap/views/checkout/additional_details_form.php delete mode 100644 gocart/themes/bootstrap/views/checkout/checkout.php delete mode 100644 gocart/themes/bootstrap/views/checkout/customer_details.php delete mode 100644 gocart/themes/bootstrap/views/checkout/customer_details_static.php delete mode 100644 gocart/themes/bootstrap/views/checkout/payment_form.php delete mode 100644 gocart/themes/bootstrap/views/checkout/shipping_form.php delete mode 100644 gocart/themes/bootstrap/views/checkout/summary.php delete mode 100644 gocart/themes/bootstrap/views/footer.php delete mode 100644 gocart/themes/bootstrap/views/forgot_password.php delete mode 100644 gocart/themes/bootstrap/views/giftcards.php delete mode 100644 gocart/themes/bootstrap/views/header.php delete mode 100644 gocart/themes/bootstrap/views/homepage.php delete mode 100644 gocart/themes/bootstrap/views/index.html delete mode 100644 gocart/themes/bootstrap/views/login.php delete mode 100644 gocart/themes/bootstrap/views/my_account.php delete mode 100644 gocart/themes/bootstrap/views/my_downloads.php delete mode 100644 gocart/themes/bootstrap/views/order_email.php delete mode 100644 gocart/themes/bootstrap/views/order_placed.php delete mode 100644 gocart/themes/bootstrap/views/page.php delete mode 100644 gocart/themes/bootstrap/views/payment.php delete mode 100644 gocart/themes/bootstrap/views/product.php delete mode 100644 gocart/themes/bootstrap/views/register.php delete mode 100644 gocart/themes/bootstrap/views/view_cart.php rename gocart/themes/{bootstrap => default}/assets/css/bootstrap-responsive.css (100%) rename gocart/themes/{bootstrap => default}/assets/css/bootstrap-responsive.min.css (100%) rename gocart/themes/{bootstrap => default}/assets/css/bootstrap.css (100%) rename gocart/themes/{bootstrap => default}/assets/css/bootstrap.min.css (100%) rename gocart/themes/{bootstrap => default}/assets/css/jquery-ui-1.8.19.custom.css (100%) rename gocart/themes/{bootstrap => default}/assets/css/styles.css (100%) rename gocart/themes/{bootstrap => default}/assets/img/ajax-loader.gif (100%) rename gocart/themes/{bootstrap => default}/assets/img/glyphicons-halflings-white.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/glyphicons-halflings.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_flat_65_f2f2f2_40x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_flat_75_eeeeee_40x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_flat_75_f2f2f2_40x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_flat_75_ffffff_40x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-icons_2e83ff_256x240.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-icons_333333_256x240.png (100%) rename gocart/themes/{bootstrap => default}/assets/img/ui-icons_cd0a0a_256x240.png (100%) rename gocart/themes/{bootstrap => default}/assets/js/bootstrap.js (100%) rename gocart/themes/{bootstrap => default}/assets/js/bootstrap.min.js (100%) rename gocart/themes/{bootstrap => default}/assets/js/equal_heights.js (100%) rename gocart/themes/{bootstrap => default}/assets/js/jquery-1.7.2.min.js (100%) rename gocart/themes/{bootstrap => default}/assets/js/jquery-ui-1.8.19.custom.min.js (100%) rename gocart/themes/{bootstrap => default}/assets/js/squard.js (100%) delete mode 100644 gocart/themes/default/css/styles.css diff --git a/gocart/themes/bootstrap/images/body_bg.gif b/gocart/themes/bootstrap/images/body_bg.gif deleted file mode 100644 index 714bd27688ad123e137b459868852ab073588824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1174 zcmZ?wbhEHbI4yi0i)elN7 z&Mz%WP6aAghG_np+{nPp!qCvt)X~M#$kExt+1Sz9&CMKU1~$Exjz&h#2F|8VCg#qDhOPz{E(V59 z=EjDWPL9Ur&Mq!6y`Fi+C5d^-sW5vpf%Zc6n&8!IBbLH-(%q(+4_6 zACx$d5(`WSm;ymec+v-Q;F%{i513<$fLVj_|G&R~e*gOUo>*T>t-)5G1()y3J#(ZSx%*2db((!$)#)Wp~bm@V~mb+olKHPqEq zRg{$!73Ae)Wu&DfCB(%@#t!p%EN%(Vv- zHn@YXVp1d?@>Wa9f3j+pShE_>AOH-YQK-tYJ4^8I{XuV2DJ%Kp__ z`dSbOWVNFM$rT(0;2W%=4t}?9E-?lNJ)WH>&yDTRi==S?h^-&n7l1l4X#s#MK=X?Z zYX+<#5OseB)syGx?1ZDUnWnTwjA;}z6l6mn);3Y0GF?XTP21;8Gd+} zhlMlBIg|(lG8|$!fLjcON{@q;R-?*4R<>H7OfW~8UsBCt~ zQUx3gWb@eEKz1mU=w<osJF&wZpTK6iifo&x{=tQ+sC=@L%Ee~sJ zTU%S_=H?n7Kko1Emv?s$4Gl@9($Ue;r%#^_4-fbB^z`=jN?Te61_mZ3CK~GN2L}hA zJb9v2D%;!IMn*Cc%KY!lW*C&_DpFMjvK0Yp!$=cf5W@ctuWwIW* zTq2Qlb#uX}9UVEA>8{-*OMfxt ze@J*BI7dd_IRA!R;Z2UNan0At-l~z!582K)-_B3Id_Pl|pYO2(2$)|(3CB64Ay1+T zVjdawn%KYnLn)DqxmwgXUCwNwm|=S-(ak^IiET6_zH7MYIGT(-+=fuKR-~5j_N{6yur|&oz&~ErAgd@Eg2IIB)^R`<39CauUJjXbm1C4jxOh6=Lckli9Dv)-vH7iH)Q6u}x$*dFS zH!-*K&#xnIFO(Y+mkGQVs?Qit-g}(Kf1pA3(ira$^ZCm?&rou#Kb*QoQhCDQ>g%&S zNAzHD=k*U9^R%+36Xp~dbdBp*Dny^iH4M$`yD8}5M)!QYdmK>JA}PAN6WpKuHT8I2 z<}vq}@f+9xfk#kwo1}1Sq)X}V+uX1-SIZ18WLIaNQKJjoB~!WKG0Fv3$;_}@uaBsK z45K(j2(3tYk)jE`gq3i|_c`NPDdjgg?Ut33n_uK?4Sqex=zQ(9y*QC09oj}Szg1f2 zn_0qcyH+P;6cY>u75WFqWgGBxg1t8s#>Kdtn0c5D!LLW!O&F9}=wZuL;yFB@0B^QaaaomIQt zCj20;8E0+4EO@8M-&)O7-aOf9!Z^b+6IS1Q$J8sqk?+4k}l`LKUu zc&MGp;RjE5yxEIL>Z{c`glNnx)hsSqpPn-LTIo}2uq*YwE#hPS@a20Q;>SJu#-Ycq z@ef&-Ampdj=4y|^E-V{`7sX0^bjiP%Ne_5Z9)u7?pVrK|Jv@Ec%Rt{mR7AlQueg`g zsfn>3QyqVuE%>}20B(7^g;$<63sAFJ7Z;1CI)$_Y;io3$m7i{`3WhMtl511DBlng< zK1{FnaoU4bHE0!`CG}_UFjwg!_t6G=qGU_rk@FK5^LLWBE=v_RmWd0Eel~xeVdQIg zdROtRFlkU-(JO^5z>N2Bkr5Z*?$R$qVl&wxr<{^}!f785dUX3y@oysiGywNf+f)a*nflu2FEVqaccZ3d0RlPwD^$1>Vl1W3cp=!pHxik*iF|4t&O2dzB*ljwc&!{)LL_i9>XN&Pp- zLL?^?5t-7f$ucL}q4nZEWWD=*x4v%e#)01qH`e&;BnAFWcBUMiOs^+jWFi?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0T;&&%T$P<{nWAKG zr(jcIRgqhen_7~nP?4LHS8P>btCX0MpOk6^WP^nDl@!2AO0sR096=HaAUmD&i&7O# z^$c{A4a^J_%nbDmjZMtW&2GK4GRy>*)Z*l# z%z~24{5%DaiHS-1r6smXK$k+ikXzvE3pY5gSP$$Wz2y8{{ffi_eM3D1{oGuTzrd=C zOM+4n&cLd=IHa;5RX-@TIKQ+gITff}8KxN+cK9siXfnK&978oC--xEL5ZnHw8gIyoAfJG;2R^m^tMmn7yTr^4*b1lkMLYk*g;m2**Q zVo82cNPd0}ECmE)g9{)&z?Sc{OI9>`}gkNxqa*AjqBI0Ub%ef;)V0)&Yn4a z>g0*z$BrI3eCXhT{rmRr*}ZG$j_upFZrQwPBVyain>K6qoVoMnFEC)@ HWUvMR;UeeG diff --git a/gocart/themes/bootstrap/images/input_bg.png b/gocart/themes/bootstrap/images/input_bg.png deleted file mode 100644 index b29cc4eb8c4f4dc8d2386856623bb12e4dfa1b9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmeAS@N?(olHy`uVBq!ia0y~yV1B{Cz!bs33=}zbz(yQMNtU=qlmzFem6RtIr7}3C z2o@x|e~$NYGpiFB@19 zG#4W%=@vy2u}l~a9t}%SyraiGMjQ?Q'f_id', 'style'=>'display:none;', 'name'=>'id', 'value'=> set_value('id',$id)); -$f_company = array('id'=>'f_company', 'class'=>'span12', 'name'=>'company', 'value'=> set_value('company',$company)); -$f_address1 = array('id'=>'f_address1', 'class'=>'span12', 'name'=>'address1', 'value'=>set_value('address1',$address1)); -$f_address2 = array('id'=>'f_address2', 'class'=>'span12', 'name'=>'address2', 'value'=> set_value('address2',$address2)); -$f_first = array('id'=>'f_firstname', 'class'=>'span12', 'name'=>'firstname', 'value'=> set_value('firstname',$firstname)); -$f_last = array('id'=>'f_lastname', 'class'=>'span12', 'name'=>'lastname', 'value'=> set_value('lastname',$lastname)); -$f_email = array('id'=>'f_email', 'class'=>'span12', 'name'=>'email', 'value'=>set_value('email',$email)); -$f_phone = array('id'=>'f_phone', 'class'=>'span12', 'name'=>'phone', 'value'=> set_value('phone',$phone)); -$f_city = array('id'=>'f_city', 'class'=>'span12', 'name'=>'city', 'value'=>set_value('city',$city)); -$f_zip = array('id'=>'f_zip', 'maxlength'=>'10', 'class'=>'span12', 'name'=>'zip', 'value'=> set_value('zip',$zip)); - -echo form_input($f_id); - -?> - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/category.php b/gocart/themes/bootstrap/views/category.php deleted file mode 100644 index 950f1802..00000000 --- a/gocart/themes/bootstrap/views/category.php +++ /dev/null @@ -1,109 +0,0 @@ - - - - - description)): ?> -
    -
    description; ?>
    -
    - - - - -
    - × - -
    - - - -
    - 0): ?> -
    - -
    - -
    - - -
    - - - 0):?> - -
    - -
    -
    pagination->create_links();?>
    -
    -
      - -
    • - '; - $product->images = array_values($product->images); - - if(!empty($product->images[0])) - { - $primary = $product->images[0]; - foreach($product->images as $photo) - { - if(isset($photo->primary)) - { - $primary = $photo; - } - } - - $photo = ''.$product->seo_title.''; - } - ?> - - - -
      name;?>
      - excerpt != ''): ?> -
      excerpt; ?>
      - -
      -
      - saleprice > 0):?> - price); ?> - saleprice); ?> - - price); ?> - -
      - track_stock && $product->quantity < 1) { ?> -
      - -
      - -
    • - -
    - -
    -
    - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/additional_details_form.php b/gocart/themes/bootstrap/views/checkout/additional_details_form.php deleted file mode 100644 index d2ce9d0b..00000000 --- a/gocart/themes/bootstrap/views/checkout/additional_details_form.php +++ /dev/null @@ -1,30 +0,0 @@ -
    -

    - session->flashdata('additional_details_message')):?> -
    - session->flashdata('additional_details_message');?> -
    - - - -
    -
    -
    -
    - - 'referral', 'class'=>'span6', 'value'=>$referral));?> -
    -
    - -
    -
    - - 'shipping_notes', 'class'=>'span6', 'rows'=>'4', 'value'=>$shipping_notes))?> -
    -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/checkout.php b/gocart/themes/bootstrap/views/checkout/checkout.php deleted file mode 100644 index 2eb8735f..00000000 --- a/gocart/themes/bootstrap/views/checkout/checkout.php +++ /dev/null @@ -1,260 +0,0 @@ -config->item('theme').'/views/header.php'); ?> - - -
    -
    -
    - Customer_model->is_logged_in(false, false)) : ?> - - - - -
    -
    -
    - -
    -
    - loading -
    -
    - - - -
    - -
    - - - - -config->item('theme').'/views/footer.php'); ?> \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/customer_details.php b/gocart/themes/bootstrap/views/checkout/customer_details.php deleted file mode 100644 index 083199a7..00000000 --- a/gocart/themes/bootstrap/views/checkout/customer_details.php +++ /dev/null @@ -1,450 +0,0 @@ - - -Customer_model->is_logged_in(false, false)) : ?> - - - -Location_model->get_countries_menu(); - -if(!empty($customer['ship_address']['country_id'])) -{ - $ship_zone_menu = $this->Location_model->get_zones_menu($customer['ship_address']['country_id']); -} -else -{ - // if this is set, it means we've got a blank address. Set the state field to an empty initial value - $ship_zone_menu = array(''=>'')+$this->Location_model->get_zones_menu(array_shift(array_keys($countries))); -} - -if(!empty($customer['bill_address']['country_id'])) -{ - $bill_zone_menu = $this->Location_model->get_zones_menu($customer['bill_address']['country_id']); -} -else -{ - $bill_zone_menu = array(''=>'')+$this->Location_model->get_zones_menu(array_shift(array_keys($countries))); -} - -//form elements - -$b_company = array('id'=>'bill_company', 'class'=>'bill span6', 'name'=>'bill_company', 'value'=> @$customer['bill_address']['company']); -$b_address1 = array('id'=>'bill_address1', 'class'=>'bill span3 bill_req', 'name'=>'bill_address1', 'value'=>@$customer['bill_address']['address1']); -$b_address2 = array('id'=>'bill_address2', 'class'=>'bill span3', 'name'=>'bill_address2', 'value'=> @$customer['bill_address']['address2']); -$b_first = array('id'=>'bill_firstname', 'class'=>'bill span3 bill_req', 'name'=>'bill_firstname', 'value'=> @$customer['bill_address']['firstname']); -$b_last = array('id'=>'bill_lastname', 'class'=>'bill span3 bill_req', 'name'=>'bill_lastname', 'value'=> @$customer['bill_address']['lastname']); -$b_email = array('id'=>'bill_email', 'class'=>'bill span3 bill_req', 'name'=>'bill_email', 'value'=>@$customer['bill_address']['email']); -$b_phone = array('id'=>'bill_phone', 'class'=>'bill span3 bill_req', 'name'=>'bill_phone', 'value'=> @$customer['bill_address']['phone']); -$b_city = array('id'=>'bill_city', 'class'=>'bill span2 bill_req', 'name'=>'bill_city', 'value'=>@$customer['bill_address']['city']); -$b_zip = array('id'=>'bill_zip', 'maxlength'=>'10', 'class'=>'bill span1 bill_req', 'name'=>'bill_zip', 'value'=> @$customer['bill_address']['zip']); - - -$s_company = array('id'=>'ship_company', 'class'=>'ship span6', 'name'=>'ship_company', 'value'=> @$customer['ship_address']['company']); -$s_address1 = array('id'=>'ship_address1', 'class'=>'ship span3 ship_req', 'name'=>'ship_address1', 'value'=>@$customer['ship_address']['address1']); -$s_address2 = array('id'=>'ship_address2', 'class'=>'ship span3 ', 'name'=>'ship_address2', 'value'=> @$customer['ship_address']['address2']); -$s_first = array('id'=>'ship_firstname', 'class'=>'ship span3 ship_req', 'name'=>'ship_firstname', 'value'=> @$customer['ship_address']['firstname']); -$s_last = array('id'=>'ship_lastname', 'class'=>'ship span3 ship_req', 'name'=>'ship_lastname', 'value'=> @$customer['ship_address']['lastname']); -$s_email = array('id'=>'ship_email', 'class'=>'ship span3 ship_req', 'name'=>'ship_email', 'value'=>@$customer['ship_address']['email']); -$s_phone = array('id'=>'ship_phone', 'class'=>'ship span3 ship_req', 'name'=>'ship_phone', 'value'=> @$customer['ship_address']['phone']); -$s_city = array('id'=>'ship_city', 'class'=>'ship span2 ship_req', 'name'=>'ship_city', 'value'=>@$customer['ship_address']['city']); -$s_zip = array('id'=>'ship_zip', 'maxlength'=>'10', 'class'=>'ship span1 ship_req', 'name'=>'ship_zip', 'value'=> @$customer['ship_address']['zip']); - -?> - -
    -
    -
    -

    - Customer_model->is_logged_in(false, false)) : ?> - - -

    -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - -
    - -
    - - -
    -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    -
    - -
    -
    - -
    - -
    -

    - - Customer_model->is_logged_in(false, false)) : ?> - - -

    -
    - -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    - - -
    - -
    - - -
    -
    -
    -
    -
    -
    - - -
    -
    - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    - -Customer_model->is_logged_in(false, false)) : ?> - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/customer_details_static.php b/gocart/themes/bootstrap/views/checkout/customer_details_static.php deleted file mode 100644 index 0e81335f..00000000 --- a/gocart/themes/bootstrap/views/checkout/customer_details_static.php +++ /dev/null @@ -1,57 +0,0 @@ - - - -
    -
    - -
    -
    -

    - -

    - ':'';?> -
    -
    - ':'';?> -
    - -

    - -

    -
    - -

    -
    - - - -
    -

    - -

    - ':'';?> -
    -
    - ':'';?> -
    - -

    - -

    -
    - -

    -
    - -
    \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/payment_form.php b/gocart/themes/bootstrap/views/checkout/payment_form.php deleted file mode 100644 index 1c4df6e7..00000000 --- a/gocart/themes/bootstrap/views/checkout/payment_form.php +++ /dev/null @@ -1,89 +0,0 @@ -
    - -
    go_cart->total()!=0) { ?> style="display:none" > - - - -
    - - - 1): - ?> -
    go_cart->total()==0) { ?> style="display:none" > - - - - - - -
    -
    -

    - $info):?> -
    - -
    -
    - - $info):?> -
    - -
    -

    - -
    -
    -
    - - -
    - - - - -
    - - - - -
    go_cart->total()==0) { ?> style="display:none" > - - - $info):?> - - - - $info):?> -
    - -
    -

    - -
    -
    -
    - - - - -
    - - -
    -
    \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/shipping_form.php b/gocart/themes/bootstrap/views/checkout/shipping_form.php deleted file mode 100644 index 8e768d79..00000000 --- a/gocart/themes/bootstrap/views/checkout/shipping_form.php +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -
    -
    -

    - 0):?> - - go_cart->requires_shipping()):?> - - $val):?> - - - - - - -
    - - - - -

    - -
    - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/checkout/summary.php b/gocart/themes/bootstrap/views/checkout/summary.php deleted file mode 100644 index 926cd344..00000000 --- a/gocart/themes/bootstrap/views/checkout/summary.php +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - go_cart->group_discount() > 0) : ?> - - - - - - - - - - - - go_cart->coupon_discount() > 0) {?> - - - - - go_cart->order_tax() != 0) { // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from)?> - - - - - go_cart->get_custom_charges(); - if(!empty($charges)) - { - foreach($charges as $name=>$price) : ?> - - - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - go_cart->order_tax() > 0) : ?> - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - - - go_cart->gift_card_discount() > 0) : ?> - - - - - - - - - - - - - - - go_cart->contents() as $cartkey=>$product):?> - - - - - - - - - - - -
    go_cart->group_discount()); ?>
    go_cart->subtotal()); ?>
    -go_cart->coupon_discount());?>
    go_cart->discounted_subtotal());?>
    go_cart->shipping_cost()); ?>
    go_cart->order_tax());?>
    go_cart->shipping_cost()); ?>
    -go_cart->gift_card_discount()); ?>
    go_cart->total()); ?>
    - $value) - { - if(is_array($value)) - { - echo '
    '.$name.':
    '; - foreach($value as $item) - echo '- '.$item.'
    '; - echo '
    '; - } - else - { - echo '
    '.$name.': '.$value.'
    '; - } - } - } - ?> -
    - -
    \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/footer.php b/gocart/themes/bootstrap/views/footer.php deleted file mode 100644 index 15ed44a7..00000000 --- a/gocart/themes/bootstrap/views/footer.php +++ /dev/null @@ -1,11 +0,0 @@ -
    -

    - Clear Sky Designs -

    -

    © Clear Sky Designs • All Rights Reserved

    -
    -
    - - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/forgot_password.php b/gocart/themes/bootstrap/views/forgot_password.php deleted file mode 100644 index 51336485..00000000 --- a/gocart/themes/bootstrap/views/forgot_password.php +++ /dev/null @@ -1,32 +0,0 @@ - - -
    -
    - - -
    - -
    - -
    - -
    -
    -
    - -
    - - -
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/gocart/themes/bootstrap/views/giftcards.php b/gocart/themes/bootstrap/views/giftcards.php deleted file mode 100644 index 973b3d06..00000000 --- a/gocart/themes/bootstrap/views/giftcards.php +++ /dev/null @@ -1,111 +0,0 @@ - - - -
    -
    -
    - Giftcard -
    -
    -
    -
    -
    -

    -
    -
    - - -
    -
    -
    -
    - -
    -
    - - -
    -
    - - - -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - - - - - - - - 'message', - 'rows' => '5', - 'cols' => '30' - ); - - echo form_textarea($data,set_value('message')); ?> -
    -
    -
    -
    - -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/header.php b/gocart/themes/bootstrap/views/header.php deleted file mode 100644 index d961b728..00000000 --- a/gocart/themes/bootstrap/views/header.php +++ /dev/null @@ -1,165 +0,0 @@ - - - - -<?php echo (isset($seo_title))?$seo_title:$this->config->item('company_name'); ?> - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    - - - session->flashdata('message')):?> -
    - × - session->flashdata('message');?> -
    - - - session->flashdata('error')):?> -
    - × - session->flashdata('error');?> -
    - - - -
    - × - -
    - - - - - - -
    -
    - -
    -
    - - - - -
    - -
    - image).'" />'; - if($box->link != '') - { - $target = false; - if($box->new_window) - { - $target = 'target="_blank"'; - } - echo ''.$box_image.''; - } - else - { - echo $box_image; - } - ?> -
    - -
    - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/index.html b/gocart/themes/bootstrap/views/index.html deleted file mode 100644 index c942a79c..00000000 --- a/gocart/themes/bootstrap/views/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

    Directory access is forbidden.

    - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/login.php b/gocart/themes/bootstrap/views/login.php deleted file mode 100644 index 3d694135..00000000 --- a/gocart/themes/bootstrap/views/login.php +++ /dev/null @@ -1,52 +0,0 @@ - - -
    -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - - - - - - -
    - | -
    -
    -
    - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/my_account.php b/gocart/themes/bootstrap/views/my_account.php deleted file mode 100644 index 380da60c..00000000 --- a/gocart/themes/bootstrap/views/my_account.php +++ /dev/null @@ -1,228 +0,0 @@ - - - -
    - × - -
    - - - - -'company', 'class'=>'span4', 'name'=>'company', 'value'=> set_value('company', $customer['company'])); -$first = array('id'=>'firstname', 'class'=>'span2', 'name'=>'firstname', 'value'=> set_value('firstname', $customer['firstname'])); -$last = array('id'=>'lastname', 'class'=>'span2', 'name'=>'lastname', 'value'=> set_value('lastname', $customer['lastname'])); -$email = array('id'=>'email', 'class'=>'span2', 'name'=>'email', 'value'=> set_value('email', $customer['email'])); -$phone = array('id'=>'phone', 'class'=>'span2', 'name'=>'phone', 'value'=> set_value('phone', $customer['phone'])); - -$password = array('id'=>'password', 'class'=>'span2', 'name'=>'password', 'value'=>''); -$confirm = array('id'=>'confirm', 'class'=>'span2', 'name'=>'confirm', 'value'=>''); -?> -
    - -
    - -
    -
    -
    -

    -
    -
    - -
    -
    -
    -
    - 0):?> - - - - - - - -
    - - -
    -
    -
    - - -
    -
    -
    -
    -
    -
    - /> -       /> -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - ordered_on); - - $d = explode(' ', $d); - echo $d[0].' '.$d[1].', '.$d[3]; - - ?> - order_number; ?>status;?>
    - - - -
    -
    - -
    -
    - - - - $val) : ?> -

    - - - - - - - - - - - - - - - - - - max_downloads==0) - { - echo ''; - } else if($file->max_downloads <= $file->downloads) { - $max_exc = true; - echo ''; - } else { - echo ''; - } - ?> - - - - - - -
    filename; ?>title; ?>size; ?>'.lang('no_max').''.lang('max_exceeded').''; - echo $file->max_downloads - $file->downloads; - echo ' - -
    - - -
    - -
    - - - - - diff --git a/gocart/themes/bootstrap/views/order_email.php b/gocart/themes/bootstrap/views/order_email.php deleted file mode 100644 index 5fbfc130..00000000 --- a/gocart/themes/bootstrap/views/order_email.php +++ /dev/null @@ -1,170 +0,0 @@ - -

    :

    - -{download_section} - -
    -'.$customer['company'].'
    '; -} -?> - | - | - -

    - - - - - - -
    -
    - '; - echo $bill['firstname'].' '.$bill['lastname'].' <'.$bill['email'].'>
    '; - echo $bill['phone'].'
    '; - echo $bill['address1'].'
    '; - if(!empty($bill['address2'])) echo $bill['address2'].'
    '; - echo $bill['city'].', '.$bill['zone'].' '.$bill['zip']; - ?>
    -
    -
    - '; - echo $ship['firstname'].' '.$ship['lastname'].' <'.$ship['email'].'>
    '; - echo $ship['phone'].'
    '; - echo $ship['address1'].'
    '; - if(!empty($ship['address2'])) echo $ship['address2'].'
    '; - echo $ship['city'].', '.$ship['zone'].' '.$ship['zip']; - ?>
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - go_cart->coupon_discount() > 0) :?> - - - - - go_cart->order_tax() != 0) :// Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> - - - - - - - go_cart->order_tax() != 0) : ?> - - - - - - - - go_cart->gift_card_discount() != 0) : ?> - - - - - - - - - - - - - go_cart->contents() as $cartkey=>$product):?> - > - - - '; - if(is_array($value)) - { - echo ''; - } - else - { - echo ''; - } - echo ''; - } - echo '
      
    - go_cart->subtotal()); ?> -
    :
    go_cart->coupon_discount()); ?>
    go_cart->discounted_subtotal(), 2, '.', ','); ?>
    go_cart->order_tax()); ?>
    go_cart->gift_card_discount()); ?>
    -
    - -
    -
    - go_cart->total()); ?> -
      -
    - Sku: -
    - - '; - foreach ($product['options'] as $name=>$value) - { - echo '
    '.$name.':'; - foreach($value as $item) - { - echo '
    '.$item.'
    '; - } - echo '
    '.$name.': '.$value.'
    '; - } - ?> - - - -  x  - - -   - - - - - -
    \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/order_placed.php b/gocart/themes/bootstrap/views/order_placed.php deleted file mode 100644 index 808aa6e2..00000000 --- a/gocart/themes/bootstrap/views/order_placed.php +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - -
    -
    -

    - ':'';?> -
    -
    - -
    - -
    -

    - ':'';?> -
    -
    - ':'';?> -
    - -
    - -
    - -
    -

    - ':'';?> -
    -
    - ':'';?> -
    - -
    - -
    - -
    - -
    -
    -

    -
    -
    -
    - -
    -

    - -
    - -
    -

    - -
    - -
    - - - - - - - - - - - - - - - go_cart->group_discount() > 0) : ?> - - - - - - - - - - - - go_cart->coupon_discount() > 0) : ?> - - - - - - go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> - - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - - - go_cart->order_tax() != 0) : ?> - - - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - - - go_cart->gift_card_discount() != 0) : ?> - - - - - - - - - - - - - go_cart->contents() as $cartkey=>$product):?> - - - - - - - - - - - -
    go_cart->group_discount()); ?>
    go_cart->subtotal()); ?>
    go_cart->coupon_discount()); ?>
    go_cart->discounted_subtotal()); ?>
    go_cart->shipping_cost()); ?>
    go_cart->order_tax()); ?>
    go_cart->shipping_cost()); ?>
    go_cart->gift_card_discount()); ?>
    go_cart->total()); ?>
    $value) - { - if(is_array($value)) - { - echo '
    '.$name.':
    '; - foreach($value as $item) - echo '- '.$item.'
    '; - echo '
    '; - } - else - { - echo '
    '.$name.': '.$value.'
    '; - } - } - } - ?>
    - -content); ?> - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/payment.php b/gocart/themes/bootstrap/views/payment.php deleted file mode 100644 index 8f21b5ca..00000000 --- a/gocart/themes/bootstrap/views/payment.php +++ /dev/null @@ -1,60 +0,0 @@ - - -
    - - -
    - - - - -
    -

    - - - $info):?> - -

    value="" onchange="set_payment(this.value)">

    - -
    -
    - $info):?> - - -
    > -

    - - - -
    - - - - - - -
    -
    - -
    -
    - '; - $product->images = array_values($product->images); - - if(!empty($product->images[0])) - { - $primary = $product->images[0]; - foreach($product->images as $photo) - { - if(isset($photo->primary)) - { - $primary = $photo; - } - } - - $photo = ''.$product->seo_title.''; - } - echo $photo - ?> -
    -
    - caption)):?> -
    -
    - caption;?> -
    -
    - - images) > 1):?> -
    -
    - images as $image):?> - - -
    -
    - - - related_products)):?> - - -
    -
    - -
    -
    - -
    -
    - -
    -
    - excerpt;?> -
    -
    - -
    -
    - sku)):?>
    : sku; ?>
      -
    - track_stock && $product->quantity < 1):?> -
    -
    Out of Stock
    -
    - -
    - -
    -
    -
    - - - -
    - 0): ?> - required) - { - $required = '

    Required

    '; - } - ?> -
    - - type == 'checklist') - { - $value = array(); - if($posted_options && isset($posted_options[$option->id])) - { - $value = $posted_options[$option->id]; - } - } - else - { - $value = $option->values[0]->value; - if($posted_options && isset($posted_options[$option->id])) - { - $value = $posted_options[$option->id]; - } - } - - if($option->type == 'textfield'):?> -
    - - -
    - type == 'textarea'):?> -
    - - -
    - type == 'droplist'):?> -
    - - -
    - type == 'radiolist'):?> -
    - values as $values): - - $checked = ''; - if($value == $values->id) - { - $checked = ' checked="checked"'; - }?> - - - -
    - type == 'checklist'): - foreach ($option->values as $values): - - $checked = ''; - if(in_array($values->id, $value)) - { - $checked = ' checked="checked"'; - }?> - - - - -
    - - - -
    - -
    - config->item('allow_os_purchase') || !(bool)$product->track_stock || $product->quantity > 0) : ?> - fixed_quantity) : ?> -        - - - -
    -
    - -
    - -
    - -
    -
    - -
    -
    - description; ?> -
    -
    - -
    -
    - - - - -
    - - - - - -
    -
      -
    • - related)):?>
    • -
    - - - related)):?> - - -
    - -
    - -
    - - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/views/register.php b/gocart/themes/bootstrap/views/register.php deleted file mode 100644 index f3b8893e..00000000 --- a/gocart/themes/bootstrap/views/register.php +++ /dev/null @@ -1,80 +0,0 @@ -#gc_page_title {text-align:center;}'; -include('header.php'); ?> -'bill_company', 'class'=>'span6', 'name'=>'company', 'value'=> set_value('company')); -$first = array('id'=>'bill_firstname', 'class'=>'span3', 'name'=>'firstname', 'value'=> set_value('firstname')); -$last = array('id'=>'bill_lastname', 'class'=>'span3', 'name'=>'lastname', 'value'=> set_value('lastname')); -$email = array('id'=>'bill_email', 'class'=>'span3', 'name'=>'email', 'value'=>set_value('email')); -$phone = array('id'=>'bill_phone', 'class'=>'span3', 'name'=>'phone', 'value'=> set_value('phone')); -?> -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - -
    - -
    - - -
    -
    - - -
    - - -
    - -
    -
    -
    - - -go_cart->total_items()==0):?> -
    - × - -
    - - - - 'update_cart_form'));?> - - - - - - - - - - - - - - - - go_cart->group_discount() > 0) : ?> - - - - - - - - - - - - go_cart->coupon_discount() > 0) : ?> - - - - - - go_cart->order_tax() != 0) : // Only show a discount subtotal if we still have taxes to add (to show what the tax is calculated from) ?> - - - - - - go_cart->get_custom_charges(); - if(!empty($charges)): - foreach($charges as $name=>$price) : ?> - - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - - go_cart->order_tax() != 0) : ?> - - - - - - - config->item('tax_shipping') && $this->go_cart->shipping_cost()>0) : ?> - - - - - - - go_cart->gift_card_discount() != 0) : ?> - - - - - - - - - - - - - - go_cart->contents() as $cartkey=>$product):?> - - - - - - - - - - - -
    go_cart->group_discount()); ?>
    go_cart->subtotal()); ?>
    go_cart->coupon_discount()); ?>
    go_cart->discounted_subtotal()); ?>
    go_cart->shipping_cost()); ?>
    go_cart->order_tax()); ?>
    go_cart->shipping_cost()); ?>
    go_cart->gift_card_discount()); ?>
    go_cart->total()); ?>
    $value) - { - if(is_array($value)) - { - echo '
    '.$name.':
    '; - foreach($value as $item) - echo '- '.$item.'
    '; - echo '
    '; - } - else - { - echo '
    '.$name.':'.$value.'
    '; - } - } - } - ?>
    - -
    -
    -
    - -
    -
    -
    - - - - - -
    - - -
    -
    - - - - - - - - - -
    - -
    - - - Customer_model->is_logged_in(false,false)): ?> - - - - - - Customer_model->is_logged_in(false,false) || !$this->config->item('require_login')): ?> - - - -
    -
    - - - - - \ No newline at end of file diff --git a/gocart/themes/bootstrap/assets/css/bootstrap-responsive.css b/gocart/themes/default/assets/css/bootstrap-responsive.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/bootstrap-responsive.css rename to gocart/themes/default/assets/css/bootstrap-responsive.css diff --git a/gocart/themes/bootstrap/assets/css/bootstrap-responsive.min.css b/gocart/themes/default/assets/css/bootstrap-responsive.min.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/bootstrap-responsive.min.css rename to gocart/themes/default/assets/css/bootstrap-responsive.min.css diff --git a/gocart/themes/bootstrap/assets/css/bootstrap.css b/gocart/themes/default/assets/css/bootstrap.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/bootstrap.css rename to gocart/themes/default/assets/css/bootstrap.css diff --git a/gocart/themes/bootstrap/assets/css/bootstrap.min.css b/gocart/themes/default/assets/css/bootstrap.min.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/bootstrap.min.css rename to gocart/themes/default/assets/css/bootstrap.min.css diff --git a/gocart/themes/bootstrap/assets/css/jquery-ui-1.8.19.custom.css b/gocart/themes/default/assets/css/jquery-ui-1.8.19.custom.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/jquery-ui-1.8.19.custom.css rename to gocart/themes/default/assets/css/jquery-ui-1.8.19.custom.css diff --git a/gocart/themes/bootstrap/assets/css/styles.css b/gocart/themes/default/assets/css/styles.css similarity index 100% rename from gocart/themes/bootstrap/assets/css/styles.css rename to gocart/themes/default/assets/css/styles.css diff --git a/gocart/themes/bootstrap/assets/img/ajax-loader.gif b/gocart/themes/default/assets/img/ajax-loader.gif similarity index 100% rename from gocart/themes/bootstrap/assets/img/ajax-loader.gif rename to gocart/themes/default/assets/img/ajax-loader.gif diff --git a/gocart/themes/bootstrap/assets/img/glyphicons-halflings-white.png b/gocart/themes/default/assets/img/glyphicons-halflings-white.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/glyphicons-halflings-white.png rename to gocart/themes/default/assets/img/glyphicons-halflings-white.png diff --git a/gocart/themes/bootstrap/assets/img/glyphicons-halflings.png b/gocart/themes/default/assets/img/glyphicons-halflings.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/glyphicons-halflings.png rename to gocart/themes/default/assets/img/glyphicons-halflings.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_flat_0_aaaaaa_40x100.png b/gocart/themes/default/assets/img/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_flat_0_aaaaaa_40x100.png rename to gocart/themes/default/assets/img/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_flat_65_f2f2f2_40x100.png b/gocart/themes/default/assets/img/ui-bg_flat_65_f2f2f2_40x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_flat_65_f2f2f2_40x100.png rename to gocart/themes/default/assets/img/ui-bg_flat_65_f2f2f2_40x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_flat_75_eeeeee_40x100.png b/gocart/themes/default/assets/img/ui-bg_flat_75_eeeeee_40x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_flat_75_eeeeee_40x100.png rename to gocart/themes/default/assets/img/ui-bg_flat_75_eeeeee_40x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_flat_75_f2f2f2_40x100.png b/gocart/themes/default/assets/img/ui-bg_flat_75_f2f2f2_40x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_flat_75_f2f2f2_40x100.png rename to gocart/themes/default/assets/img/ui-bg_flat_75_f2f2f2_40x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_flat_75_ffffff_40x100.png b/gocart/themes/default/assets/img/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_flat_75_ffffff_40x100.png rename to gocart/themes/default/assets/img/ui-bg_flat_75_ffffff_40x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_glass_55_fbf9ee_1x400.png b/gocart/themes/default/assets/img/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_glass_55_fbf9ee_1x400.png rename to gocart/themes/default/assets/img/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/gocart/themes/bootstrap/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png b/gocart/themes/default/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png rename to gocart/themes/default/assets/img/ui-bg_inset-soft_95_fef1ec_1x100.png diff --git a/gocart/themes/bootstrap/assets/img/ui-icons_2e83ff_256x240.png b/gocart/themes/default/assets/img/ui-icons_2e83ff_256x240.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-icons_2e83ff_256x240.png rename to gocart/themes/default/assets/img/ui-icons_2e83ff_256x240.png diff --git a/gocart/themes/bootstrap/assets/img/ui-icons_333333_256x240.png b/gocart/themes/default/assets/img/ui-icons_333333_256x240.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-icons_333333_256x240.png rename to gocart/themes/default/assets/img/ui-icons_333333_256x240.png diff --git a/gocart/themes/bootstrap/assets/img/ui-icons_cd0a0a_256x240.png b/gocart/themes/default/assets/img/ui-icons_cd0a0a_256x240.png similarity index 100% rename from gocart/themes/bootstrap/assets/img/ui-icons_cd0a0a_256x240.png rename to gocart/themes/default/assets/img/ui-icons_cd0a0a_256x240.png diff --git a/gocart/themes/bootstrap/assets/js/bootstrap.js b/gocart/themes/default/assets/js/bootstrap.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/bootstrap.js rename to gocart/themes/default/assets/js/bootstrap.js diff --git a/gocart/themes/bootstrap/assets/js/bootstrap.min.js b/gocart/themes/default/assets/js/bootstrap.min.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/bootstrap.min.js rename to gocart/themes/default/assets/js/bootstrap.min.js diff --git a/gocart/themes/bootstrap/assets/js/equal_heights.js b/gocart/themes/default/assets/js/equal_heights.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/equal_heights.js rename to gocart/themes/default/assets/js/equal_heights.js diff --git a/gocart/themes/bootstrap/assets/js/jquery-1.7.2.min.js b/gocart/themes/default/assets/js/jquery-1.7.2.min.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/jquery-1.7.2.min.js rename to gocart/themes/default/assets/js/jquery-1.7.2.min.js diff --git a/gocart/themes/bootstrap/assets/js/jquery-ui-1.8.19.custom.min.js b/gocart/themes/default/assets/js/jquery-ui-1.8.19.custom.min.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/jquery-ui-1.8.19.custom.min.js rename to gocart/themes/default/assets/js/jquery-ui-1.8.19.custom.min.js diff --git a/gocart/themes/bootstrap/assets/js/squard.js b/gocart/themes/default/assets/js/squard.js similarity index 100% rename from gocart/themes/bootstrap/assets/js/squard.js rename to gocart/themes/default/assets/js/squard.js diff --git a/gocart/themes/default/css/styles.css b/gocart/themes/default/css/styles.css deleted file mode 100644 index a5098c1d..00000000 --- a/gocart/themes/default/css/styles.css +++ /dev/null @@ -1,1222 +0,0 @@ -/************************************************************** -Version: 1.0 -Template: Default -Author: Noah Mormino -Company: Clear Sky Designs -Notes: Default template for Gocart 1.0 -**************************************************************/ - -/* get some basics out the way */ -html{overflow-y:scroll} -* {outline:none} -img{border:0px} -form{margin:0px;padding:0px} -p {margin:0px 0px 10px 0px} -iframe {border:0px} - -/* base tables */ -th { - padding:5px; - background:#ccc; - font-size:14px; - color:#525252; -} - -/* base link styles */ -a, a:visited {color:#0c96e5;text-decoration:underline} -a:hover {color:#046094} - -/*basic classes*/ -.left{ float:left} -.right{float:right} -.center{margin:auto; text-align:center} -.clear{clear:both} -.bold {font-weight:bold} -.none {display:none} -.red {color:#ff0000} - -/* structural wrappers */ -body { - margin:0px; - padding:0px; - font-family: Arial, Verdana, sans-serif; - font-size:12px; - color:#333333; - background-image:url('../images/body_bg.gif'); -} - -.full_wrap { - width:100%; - clear:both; -} - -.wide_wrap { - width:980px; - margin:auto; - position:relative; -} - -.content_wrap { - width:950px; - padding:5px; - margin:auto; - border:5px solid #ddd; - border-top:0px; - background-color:#fff; -} - -/* Javascript in the header automatically styles our type="text" for us */ -.input, textarea { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - border-top:1px solid #6d6d6d; - border-left:1px solid #6d6d6d; - border-right:1px solid #d5d5d5; - border-bottom:1px solid #d5d5d5; - padding:4px; - font-size:12px; - background-image:url('../images/input_bg.png'); - color:#555; - font-family: Arial, Verdana, Sans-Serif; -} - -.disabled { - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; - filter: alpha(opacity=60); - -moz-opacity: 0.6; - -khtml-opacity: 0.6; - opacity: 0.6; -} - -#header { - padding:15px 0px; -} - -/* Search form */ -#search_form { - float:right; - margin-top:5px; - background-color:#fff; - padding:5px 7px; - border:1px solid #ddd; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -#search_form input { - width:150px; - font-size:14px; -} - -#search_form button { - font-size:12px; -} - - -/* Menus */ -#top_menu_container { - background-color:#ddd; - border-bottom:1px solid #c7c7c7; -} - -#top_menu { - float:right; - margin:0px; - padding:0px; - font-size:12px; -} - -#top_menu li { - float:left; - list-style-type:none; - position:relative; - cursor:pointer; -} - -#top_menu li ul.first { - position:absolute; - top:2.1em; - white-space:nowrap; - left:0px; - background-color:#ddd; - padding:0px; - margin:0px; - text-align:left; - z-index:9999; - border-bottom:1px solid #c7c7c7; -} - -#top_menu li ul.nav { - position:absolute; - top:0px; - left:100%; - margin-left:-1px; - text-align:left; - padding:0px; - background-color:#ddd; - z-index:9999; - border-bottom:1px solid #c7c7c7; -} - -#top_menu li a { - padding:6px 15px; - color:#585858; - border:0px; - display:block; - text-decoration:none; - text-shadow: rgba(255,255,255,.4) 0 1px 0; -} - -#top_menu li ul li a { - border:1px solid #c7c7c7; - border-top:0px; - border-bottom:0px; -} - -#top_menu li:hover { - background-color:#f2f2f2; -} - -#top_menu li a:hover { - color:#000; - text-shadow:none; -} - -#top_menu .nav li { - display:block; - clear:both; - position:relative; - width:200px; -} - -#top_menu .first li{ - float:left; - clear:left; - width:100%; -} - -#top_menu .first li { - display:block; - position:relative; -} - -/* Main category menu*/ -#main_menu { - background-color:#555; - margin:0px; - padding:0px; -} - -.main_menu_left_wrap { - position:absolute; - left:0px; - top:100%; -} - -.main_menu_right_wrap { - position:absolute; - right:0px; - top:100%; -} - -#nav { - float:left; - margin:0px; - padding:6px; - font-size:12px; - text-transform:uppercase; -} - -#nav li { - float:left; - list-style-type:none; - position:relative; - cursor:pointer; -} - -#nav li ul.nav { - position:absolute; - top:-10px; - left:100%; - text-align:left; - padding:10px 10px 10px 0px; - background-color:#555; - z-index:9999; -} - -#nav li ul.first { - position:absolute; - top:2.0em; - white-space:nowrap; - left:5px; - background-color:#555; - padding:10px 10px 10px 0px; - margin:0px; - text-align:left; - z-index:9999; -} - -#nav li a{ - padding:5px 10px; - margin-left:10px; - color:#f2f2f2; - display:block; - text-decoration:none; - text-shadow: rgba(0,0,0,.4) 0 1px 0; - border:0px; -} - -#nav li a:hover { - color:#333; - background-color:#f2f2f2; - text-shadow: rgb(255,255,255) 0 1px 0; -} - -#nav .nav li { - display:block; - clear:both; - position:relative; - width:200px; -} - -#nav .first li{ - float:left; - clear:left; - width:100%; -} - -#nav .first li { - display:block; - position:relative; -} - -ul.first { - display:none; -} - -ul.nav { - display:none; - -} - -li:hover > .nav { display:block;} -li:hover > .first { display:block;} - -h1 { - font-size:22px; - font-weight:normal; - margin:7px 5px; - font-family:'Lucida Grand', Arial, Verdana, Sans-Serif; -} - -h2 { - font-size:19px; - font-weight:normal; - margin:7px 5px; - font-family:'Lucida Grand', Arial, Verdana, Sans-Serif; -} - -.error { - color:#c94f4f; - padding:5px 12px; - background-color:#f5dcdc; - border:1px solid #d5a9a9; - margin-bottom:10px; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.message { - color:#aaa; - padding:5px 12px; - background-color:#f2f2f2; - border:1px solid #cccccc; - margin-bottom:10px; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} -/* Homepage Banners */ -#banners { - width:950px; - height:250px; - margin:auto; - position:relative; -} - -.banner_container { - position:absolute; - top:0px; - left:0px; -} - -.banner_container img { - width:950px; - height:250px; -} - -#homepage_boxes { - margin:5px -5px -5px -5px; -} - -.box_container{ - height:230px; - width:230px; - margin:5px; - float:left; -} - -.category_description { - color:#555; - padding:10px 5px; -} - -.category_container { - overflow:hidden; - clear:both; -} - -.category_box -{ - width:136px; - padding:5px; - border:1px dotted #ccc; - float:left; - margin:5px; - display:inline; - text-align:center; -} -.category_box .thumbnail -{ - height:75px; -} -.category_box .thumbnail, .category_box .thumbnail img { - max-width:75px; - max-height:75px; - margin:auto; -} - -.product_box -{ - width:215px; - padding:10px 5px; - border:1px dotted #ccc; - float:left; - margin:5px; - display:inline; - text-align:center; -} - -.product_box .thumbnail -{ - height:150px; -} -.product_box .thumbnail, .product_box .thumbnail img { - max-width:150px; - max-height:150px; - margin:auto; -} - -.excerpt { - margin-top:5px; -} - -.pagination { - text-align:center; -} - - - -/* Homepage Content */ -#homepage_content -{ - width:970px; - margin:auto; - padding-top:15px; -} - -/* Login paage */ -#login_container_wrap -{ - float: left; - position: relative; - left: 50%; -} -#login_container { - float: left; - position: relative; - left: -50%; - padding:10px; - border:1px dotted #ccc; - margin:10px auto; -} - -#login_container td { - padding-right:10px; - padding-bottom:5px; -} - -#login_form_links { - padding-top:10px; - text-align:center; - font-size:11px; -} - - -/* Profile page (some shared elements) */ -.form_wrap { - clear:both; - position:relative; -} - -.form_wrap div { - float:left; - font-weight:bold; - padding:10px; -} - -#my_information { - width:360px; -} - -#my_information h2 { - margin:0px; - padding:0px; - margin-bottom:10px; -} - -#address_manager { - float:right; - width:550px; - padding:7px; -} - -#address_manager h2{ - margin:3px 0px; -} - -.my_account_address -{ - padding:10px; - background-color:#f2f2f2; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; - margin-bottom:10px; - border:1px solid #f2f2f2; -} - -.my_account_address:hover { - background-color:#eee; - border:1px solid #ddd; -} - -.address_toolbar { - font-size:10px; - float:right; -} - -/* View cart page, with shared elements */ - -.cart_table { - width:100%; -} - -.cart_table thead tr th { - background-color:#ccc; - color:#333; - font-size:12px; - text-align:left; - padding:5px 10px; -} - -.cart_table thead tr th:first-child, .cart_item td:first-child { - -webkit-border-top-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-bottomleft: 5px; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; -} - -.cart_table thead tr th:last-child, .cart_item td:last-child { - -webkit-border-top-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-topright: 5px; - -moz-border-radius-bottomright: 5px; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; -} - -.cart_spacer td { - height:5px; - overflow:hidden; -} - -.cart_item td { - background-color:#f2f2f2; - color:#555; - padding:5px 10px; -} - -.cart_table tfoot tr td { - background-color:#ccc; - padding:5px 10px; - color:#333; - font-size:12px; - font-weight:bold; -} - -.cart_table tfoot tr.cart_total td { - background-color:#555; - color:#f2f2f2; - padding-top:10px; - font-size:14px; -} - -.tfoot_top td { - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - height:0px; - padding:5px 0px 0px 0px; -} - -.cart_table tfoot tr.tfoot_bottom td { - -webkit-border-bottom-right-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomright: 5px; - -moz-border-radius-bottomleft: 5px; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; - height:0px; - padding:0px 0px 5px 0px; - background-color:#555; -} - -/* View Cart Page */ -.view_cart_additions { - margin-top:10px; - border:1px dashed #ccc; - background-color:#f2f2f2; - text-align:center; - padding:20px; - float:left; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; -} - -#gc_view_cart_buttons { - float:right; - clear:none; - margin-top:10px; -} - -/* Checkout */ -.continue_shopping { - float:right; - margin-top:-35px; - text-align:right; -} - -.form_wrap div.shorter input{ - width:100px; -} - -.form_wrap div.longer input{ - width:300px; -} - -#shipping_address{ - float:left; - width:47.5%; -} - -#billing_address{ - float:right; - width:50%; -} - -.checkout_block { - background-color:#f2f2f2; - padding:8px; - margin-bottom:20px; - height:auto; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; - position:relative; -} - -.checkout_textarea -{ - display:block; - height:50px; - resize:none; -} - -/* Place Order Page */ -.customer_info_box { - margin:10px 10px 10px 0px; - border:1px dashed #ccc; - background-color:#f2f2f2; - padding:10px; - float:left; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; -} - -.customer_info_box h3 { - font-weight:normal; - color:#777777; - font-size:16px; - margin:0px 0px 10px 0px; - padding:0px; -} - -#gc_breadcrumb { - font-size:10px; - font-family: Verdana, Arial, sans-serif; - border-bottom:1px solid #ccc; - margin-bottom:10px; - padding-bottom:5px; - font-weight:bold; -} - -#gc_breadcrumb a { - font-weight:normal; -} - -/* Category Page */ -.gc_product_list { - width:100%; -} - -.gc_product_row { - text-align:left; - width:100%; -} - - -.product_name { - font-weight:bold; - font-size:14px; -} - -.product_sku { - font-size:11px; - font-family:verdana, arial, sans-serif; - height:20px; -} - -.price_container { - padding:5px 0px; -} - -.price_slash { - text-decoration:line-through; - font-size:12px; -} - -.price_sale { - font-weight:bold; - color:#ff0000; - font-size:14px; -} - -.price_reg { - font-weight:bold; - font-size:14px; -} - -.out_of_stock { - color:#FF0000; -} - - - -/* Product Page */ -.add_to_cart_btn { - padding:10px; - font-size:20px; -} - -.product_quantity { - width:50px; -} - -#product_caption { - background-color:#ccc; - margin:0px -5px -5px -5px; - padding:5px; - text-align:center; - color:#555; -} - -#product_left { - width:247px; - float:left; -} - -#product_right { - width:690px; - float:right; - overflow:hidden; - -} - -#product_image { - padding:5px; - border:1px solid #ccc; - width:235px; -} - -#product_image a img { - margin:auto; -} - -#product_thumbnails -{ - padding-top:15px; - width:245px; -} - -.product_thumbnail -{ - width:75px; - margin:10px 10px 10px 0px; - float:left; -} - -.product_thumbnail a img -{ - width:75px; -} - -#product_price { - float:right; -} - -.product_section { - padding:10px; - border-top:1px solid #ddd; -} - -.option_container { - margin-bottom:15px; -} - -.option_name { - font-weight:bold; - font-size:12px; -} - -#social_sharing { - float:right; - margin-top:-30px; - width:150px; - text-align:right; -} - -.tabs { - margin-top:10px; - overflow:hidden; - width:680px; -} - -#product_form { - float:right; -} - -#gc_product_form { - margin-top:10px; - width:100%; -} - - - -.gc_option { - padding-bottom:10px; -} - -#gc_options_note { - text-align:center; - font-weight:bold; - font-size:11px; - font-family:verdana, arial, sans-serif; - color:#a70000; -} - - -/* Customer Details */ -.gc_customer_details, .gc_customer_details table{ - width:100%; -} -.gc_customer_details td { - vertical-align:top; - padding-right:10px; -} -#gc_copy_billing { - margin:auto; - display:block; -} - -#logged_in_address_container{ - width:100%; - overflow: auto; - margin-bottom: 15px; -} - -#checkout_billing_address { - padding: 5px; - border:1px solid #C0C0C0; - float:left; - width:225px; - height: 125px; -} - -#bill_address_display, #ship_address_display { - padding: 5px; -} - -#checkout_shipping_address { - padding: 5px; - border:1px solid #C0C0C0; - margin-left:250px; - width:225px; - height:125px; -} - -/* scheckout */ -#payment_section_container table tr td { - vertical-align:top; -} - -#shipping_section { - float:left; - width:400px; -} - - - -.checkout_block h2 { - font-weight:normal; - margin:0px 0px 10px 0px; - padding:0px; - font-size:19px; -} - -.checkout_block h3 { - font-weight:normal; - color:#777777; - font-size:16px; - margin:0px 0px 10px 0px; - padding:0px; -} - -#tab_detail { - font-size:13px; - font-family:arial, verdana, sans-serif; -} - -#static_address_content { - position: relative; - margin-bottom: 10px; - height: 150px -} - -#static_bill_address { - padding: 5px; - border:1px solid #C0C0C0; - float:left; - width:225px; -} - -#static_ship_address { - padding: 5px; - border:1px solid #C0C0C0; - margin-left:250px; - width:225px; - height:125px; -} - - - -/* Customer Details */ - -.disabled { - border 1px solid #AAAAAA; - background-color: #CCCCCC; -} -.register_field { - text-align:right; -} -#gc_customer_details, #gc_customer_details table{ - width:100%; -} -#gc_customer_details td { - vertical-align:top; - padding-right:10px; -} -#gc_copy_billing { - float:right; -} - -.gc_reg_input { - width:550px; -} - -/* Confirmation page*/ -.confirm_customer -{ - font-size:12px; - padding:10px; - margin-bottom:10px; - border:1px solid #b2d799; - background-color:#ffffff; -} -.confirm_customer table tr td { - vertical-align:top; -} -.company_name { - font-size:16px; - font-weight:bold; - padding:0px 0px 3px 0px; - text-transform:uppercase; -} - -.order_number { - font-size:20px; - font-weight:bold; - padding:0px 0px 3px 0px; - text-transform:uppercase; -} - - - - -/* My Account Page */ -.delete_address { - cursor:pointer; -} - -#my_information { - background-color:#f2f2f2; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; - padding:10px; - float:left; -} -#my_account_info h2 { - font-weight:normal; - margin-bottom:10px; - font-size:19px; -} -#my_account_container { - overflow: auto; -} - -#customer_details { - - float:left; - margin:5px; - width:360px; -} - -#customer_details_form { - -} - -#confirmation_box { - margin-bottom: 10px; - border-color: white; - border-width: 1px; - border-style: solid; - background-color: #34a1ff; - color: black; - padding:5px; - -} - -.my_account_header { - background-color:#000000; - color:#FFFFFF; - font-weight:bold; - padding:5px; -} - -#address_container { - float:right; - width:300px; - margin: 5px; -} - -.my_address { - height: 120px; - margin: 15px; - padding: 5px; - border: 1px solid #c0c0c0; -} - - - - - -/* Payment Page */ -.gc_payment_form { - display:none; -} - -/* address manager */ - -#address_mgr_title { - font-weight: bold; - margin-bottom: 10px; -} - -#address_mgr_header { - width: 775px; - background-color: black; - color: white; - font-weight: bold; - padding: 5px; -} - -#address_mgr_container { - padding: 5px; - width: 773px; - height:300px; - border-right: 1px solid gray; - border-left: 1px solid gray; - border-bottom: 1px solid gray; - position: relative; -} - -#address_list_container{ - float: left; - width: 450px; - height: 300px; - overflow:auto; - - -} - -.required { - border-left: 1px solid red; -} - -.require_fail { - border: 1px solid red; -} - -.address_entry { - width:95%; - padding: 5px; - margin: 1px; - border: 1px solid #8d8d8d; -} - -.odd { - background-color: #cfcfcf; -} - -.even { - background-color: white; -} - -#address_form_placeholder { - clear:both; - position:absolute; - right:5px; - top:10px; - width:300px; -} - -#address_bullets { - margin:10px; -} - -#address_mgr_form_container { - clear:both; - position:absolute; - right:5px; - top:10px; - width:300px; -} - -/* customize stuff */ -#left_content { - width: 635px; - float: left; -} - -#right_content { - width:335px; - float:right; -} - -#file_upload_status -{ - width:0%; - overflow:visible; - text-align:center; - padding-top:7px; - background-color:#000099; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - border:1px solid #910000; - background-image:url('..../images/status_bg.gif'); - background-repeat:repeat-x; - height:28px; - overflow:hidden; - margin:5px 0px; - -moz-box-shadow: 1px 2px 2px rgba(0,0,0,.3); - -webkit-box-shadow: 1px 2px 2px rgba(0,0,0,.3); - box-shadow: 1px 2px 2px rgba(0,0,0,.3); -} - -#hide_upload_status { - display:none; -} - -#footer_lid { - width:970px; - height:8px; - background-image:url("../images/footer_lid.gif"); - overflow:hidden; - margin:auto; -} -.footer { - position:relative; - width:960px; - padding:5px; - margin:auto; - min-height:150px; - background-image:url('../images/footer_bg.png'); - background-repeat:no-repeat; - background-color:#ddd; -} - -#footer_social { - position:absolute; - top:115px; - left:5px; - width:250px; -} - -#footer_props { - text-align:center; - color:#555; - font-size:10px; - margin-top:130px; -} \ No newline at end of file diff --git a/gocart/themes/default/views/address_form.php b/gocart/themes/default/views/address_form.php index a2f3e56d..e64bf9f8 100644 --- a/gocart/themes/default/views/address_form.php +++ b/gocart/themes/default/views/address_form.php @@ -1,80 +1,90 @@ 'f_id', 'style'=>'display:none;', 'name'=>'id', 'value'=> set_value('id',$id)); -$f_company = array('id'=>'f_company', 'class'=>'input', 'name'=>'company', 'value'=> set_value('company',$company)); -$f_address1 = array('id'=>'f_address1', 'class'=>'input', 'name'=>'address1', 'value'=>set_value('address1',$address1)); -$f_address2 = array('id'=>'f_address2', 'class'=>'input', 'name'=>'address2', 'value'=> set_value('address2',$address2)); -$f_first = array('id'=>'f_firstname', 'class'=>'input', 'name'=>'firstname', 'value'=> set_value('firstname',$firstname)); -$f_last = array('id'=>'f_lastname', 'class'=>'input', 'name'=>'lastname', 'value'=> set_value('lastname',$lastname)); -$f_email = array('id'=>'f_email', 'class'=>'input', 'name'=>'email', 'value'=>set_value('email',$email)); -$f_phone = array('id'=>'f_phone', 'class'=>'input', 'name'=>'phone', 'value'=> set_value('phone',$phone)); -$f_city = array('id'=>'f_city', 'class'=>'input', 'name'=>'city', 'value'=>set_value('city',$city)); -$f_zip = array('id'=>'f_zip', 'maxlength'=>'10', 'class'=>'bill input', 'name'=>'zip', 'value'=> set_value('zip',$zip)); +$f_company = array('id'=>'f_company', 'class'=>'span12', 'name'=>'company', 'value'=> set_value('company',$company)); +$f_address1 = array('id'=>'f_address1', 'class'=>'span12', 'name'=>'address1', 'value'=>set_value('address1',$address1)); +$f_address2 = array('id'=>'f_address2', 'class'=>'span12', 'name'=>'address2', 'value'=> set_value('address2',$address2)); +$f_first = array('id'=>'f_firstname', 'class'=>'span12', 'name'=>'firstname', 'value'=> set_value('firstname',$firstname)); +$f_last = array('id'=>'f_lastname', 'class'=>'span12', 'name'=>'lastname', 'value'=> set_value('lastname',$lastname)); +$f_email = array('id'=>'f_email', 'class'=>'span12', 'name'=>'email', 'value'=>set_value('email',$email)); +$f_phone = array('id'=>'f_phone', 'class'=>'span12', 'name'=>'phone', 'value'=> set_value('phone',$phone)); +$f_city = array('id'=>'f_city', 'class'=>'span12', 'name'=>'city', 'value'=>set_value('city',$city)); +$f_zip = array('id'=>'f_zip', 'maxlength'=>'10', 'class'=>'span12', 'name'=>'zip', 'value'=> set_value('zip',$zip)); echo form_input($f_id); ?> - - -
    -
    -
    - -
    -
    - *
    - -
    -
    - *
    - -
    +