Page MenuHomeIn-Portal Phabricator

modern-store
No OneTemporary

File Metadata

Created
Sun, Mar 9, 6:28 PM

modern-store

This file is larger than 256 KB, so syntax highlighting was skipped.
Index: branches/1.0.x/.smsignore
===================================================================
Index: branches/1.0.x/_install/theme.xml
===================================================================
--- branches/1.0.x/_install/theme.xml (nonexistent)
+++ branches/1.0.x/_install/theme.xml (revision 14600)
@@ -0,0 +1,6 @@
+<theme>
+ <default_design>designs/general</default_design>
+ <section_design>designs/section</section_design>
+ <form_design>designs/form</form_design>
+ <form_thankyou>thankyou</form_thankyou>
+</theme>
\ No newline at end of file
Index: branches/1.0.x/_install/english.lang
===================================================================
--- branches/1.0.x/_install/english.lang (nonexistent)
+++ branches/1.0.x/_install/english.lang (revision 14600)
@@ -0,0 +1,25 @@
+<LANGUAGES>
+ <LANGUAGE PackName="English" Encoding="base64"><DATEFORMAT>m/d/Y</DATEFORMAT><TIMEFORMAT>g:i A</TIMEFORMAT><INPUTDATEFORMAT>m/d/Y</INPUTDATEFORMAT><INPUTTIMEFORMAT>g:i:s A</INPUTTIMEFORMAT><DECIMAL>.</DECIMAL><THOUSANDS>,</THOUSANDS><CHARSET>utf-8</CHARSET><UNITSYSTEM>2</UNITSYSTEM>
+ <PHRASES>
+ <PHRASE Label="lu_AProblemInForm" Module="Core" Type="0">T25lIG9yIG1vcmUgZmllbGRzIG9uIHRoaXMgZm9ybSBoYXMgYW4gZXJyb3IuPGJyLz4NCg0KUGxlYXNlIHJldmlldyB0aGUgZmllbGRzIG1hcmtlZCB3aXRoIHJlZCBjYXJlZnVsbHkgYW5kIHN1Ym1pdCB0aGUgZm9ybSBhZ2Fpbi4=</PHRASE>
+ <PHRASE Label="lu_btn_Clear" Module="Core" Type="0">Q2xlYXI=</PHRASE>
+ <PHRASE Label="lu_btn_Send" Module="Core" Type="0">U2VuZA==</PHRASE>
+ <PHRASE Label="lu_captcha_error" Module="Core" Type="0">VGV4dCBlbnRlcmVkIGluY29ycmVjdGx5LCBwbGVhc2UgdHJ5IGFnYWlu</PHRASE>
+ <PHRASE Label="lu_fld_Captcha" Module="Core" Type="0">RW50ZXIgdGV4dCBvbiB0aGUgcGljdHVyZQ==</PHRASE>
+ <PHRASE Label="lu_fld_Company" Module="Core" Type="0">Q29tcGFueQ==</PHRASE>
+ <PHRASE Label="lu_fld_Email" Module="Core" Type="0">RS1tYWls</PHRASE>
+ <PHRASE Label="lu_fld_Message" Module="Core" Type="0">TWVzc2FnZQ==</PHRASE>
+ <PHRASE Label="lu_fld_Name" Module="Core" Type="0">TmFtZQ==</PHRASE>
+ <PHRASE Label="lu_fld_Phone" Module="Core" Type="0">UGhvbmU=</PHRASE>
+ <PHRASE Label="lu_fld_Subject" Module="Core" Type="0">U3ViamVjdA==</PHRASE>
+ <PHRASE Label="lu_rootcategory_name" Module="Core" Type="0">SG9tZQ==</PHRASE>
+ <PHRASE Label="lu_text_PromoHeader1" Module="Core" Type="0">RWZmZWN0aXZlPHNwYW4+YnVzaW5lc3Mgc29sdXRpb25zPC9zcGFuPg==</PHRASE>
+ <PHRASE Label="lu_text_Redirect" Module="Core" Type="0">WW91IHNob3VsZCBiZSByZWRpcmVjdGVkIHRvIHRoZSBuZXh0IHBhZ2Ugd2l0aGluIDEwIHNlY29uZHMuIFBsZWFzZSBjbGljayBvbiB0aGUgbGluayBiZWxvdyBpZiByZWRpcmVjdCBkaWRuJ3QgaGFwcGVuZWQu</PHRASE>
+ <PHRASE Label="lu_text_RedirectLink" Module="Core" Type="0">UGxlYXNlIGNsaWNrIG9uIHRoaXMgbGluayE=</PHRASE>
+ <PHRASE Label="lu_text_Thankyou" Module="Core" Type="0">VGhhbmsgeW91IGZvciBjb250YWN0aW5nIHdpdGggdXMh</PHRASE>
+ <PHRASE Label="lu_title_Address" Module="Core" Type="0">QWRkcmVzcw==</PHRASE>
+ <PHRASE Label="lu_title_RequestInformation" Module="Core" Type="0">SW5mb3JtYXRpb24gUmVxdWVzdCBGb3Jt</PHRASE>
+ <PHRASE Label="lu_title_SiteName" Module="Core" Type="0">U21hcnQgQml6</PHRASE>
+ </PHRASES>
+ </LANGUAGE>
+</LANGUAGES>
\ No newline at end of file
Index: branches/1.0.x/_install/install_data.sql
===================================================================
--- branches/1.0.x/_install/install_data.sql (nonexistent)
+++ branches/1.0.x/_install/install_data.sql (revision 14600)
@@ -0,0 +1,18 @@
+INSERT INTO Forms VALUES(1, 'Contact Form', 'Contact Form', 0, 1, 0, 0, '', '', '', '', '', '', '110', '', '', '', '', '110', '', '');
+
+INSERT INTO FormFields VALUES(1, 1, 0, 'Name', 'lu_fld_Name', NULL, 'la_fld_Name', 'text', NULL, 5, 0, 1, 1, NULL, 0, 1, 1);
+INSERT INTO FormFields VALUES(2, 1, 0, 'Company', 'lu_fld_Company', NULL, 'la_fld_Company', 'text', NULL, 4, 0, 0, 1, NULL, 0, 1, 0);
+INSERT INTO FormFields VALUES(3, 1, 0, 'Email', 'lu_fld_Email', NULL, 'la_fld_Email', 'text', NULL, 3, 0, 0, 1, NULL, 1, 1, 2);
+INSERT INTO FormFields VALUES(4, 1, 0, 'Phone', 'lu_fld_Phone', NULL, 'la_fld_Phone', 'text', NULL, 2, 0, 0, 1, NULL, 0, 1, 0);
+INSERT INTO FormFields VALUES(5, 1, 0, 'Subject', 'lu_fld_Subject', NULL, 'la_fld_Subject', 'select', '=+-- Please select --||0=+Sales questions||1=+General questions||2=+Billing questions||3=+Support questions', 1, 0, 1, 0, NULL, 0, 1, 3);
+INSERT INTO FormFields VALUES(6, 1, 0, 'Message', 'lu_fld_Message', NULL, 'la_fld_Message', 'textarea', NULL, 0, 0, 1, 0, NULL, 0, 1, 4);
+
+ALTER TABLE FormSubmissions
+ ADD COLUMN fld_1 text,
+ ADD COLUMN fld_2 text,
+ ADD COLUMN fld_3 text,
+ ADD COLUMN fld_4 text,
+ ADD COLUMN fld_5 text,
+ ADD COLUMN fld_6 text;
+
+UPDATE ConfigurationValues SET VariableValue = 'In-Portal Shopping Cart' WHERE VariableName = 'Site_Name';
\ No newline at end of file
Index: branches/1.0.x/inc/cart.css
===================================================================
--- branches/1.0.x/inc/cart.css (nonexistent)
+++ branches/1.0.x/inc/cart.css (revision 14600)
@@ -0,0 +1,448 @@
+@charset "UTF-8";
+
+/* Cart Blocks
+*******************************************************************************/
+.steps {
+ margin: 0 auto;
+ width: 535px;
+}
+.steps li {
+ background: url(/i/icon-step.png) no-repeat 100% 40%;
+ color: #bdbdbd;
+ float: left;
+ font-size: 9pt;
+ font-weight: bold;
+ padding: 0 85px 0 38px;
+ text-transform: uppercase;
+}
+.steps li:first-child {
+ padding-left: 0;
+}
+.steps li:last-child {
+ background: none;
+ padding-right: 0;
+}
+.steps li i {
+ display: block;
+ height: 36px;
+ margin: 0 auto 5px;
+ width: 40px;
+}
+.steps li.step1 i { background: url(/i/cart-steps.png) no-repeat 0 0; }
+.steps li.step2 i { background: url(/i/cart-steps.png) no-repeat 0 -36px; }
+.steps li.step3 i { background: url(/i/cart-steps.png) no-repeat 0 -72px; }
+.steps li a {
+ color: #bdbdbd;
+ text-decoration: none;
+}
+.steps li.step1.active i { background: url(/i/cart-steps.png) no-repeat -40px 0; }
+.steps li.step2.active i { background: url(/i/cart-steps.png) no-repeat -40px -36px; }
+.steps li.step3.active i { background: url(/i/cart-steps.png) no-repeat -40px -72px; }
+.steps li.active a { color: #878787; }
+
+
+.cart-detail {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ margin-top: 10px;
+ padding: 15px 30px 50px 30px;
+ width: 100%;
+}
+.cart-detail h1 {
+ color: #525252;
+ font: 1.538em Verdana,Arial,Tahoma,Sans-Serif;
+ padding: 0 0 20px 0;
+}
+.cart-detail .halfcol {
+ border-right: 1px dotted #aeaeae;
+ float: left;
+ margin: 0 14px 0 0;
+ padding: 0 14px 0 0;
+ width: 465px;
+}
+.cart-detail .halfcol-last {
+ border-right: none;
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.cart-detail .halfcol-last .badge-optional {
+ background: url(/i/badge-optional.png) no-repeat 0 0;
+ height: 40px;
+ position: absolute;
+ top: -44px; left: -20px;
+ width: 102px;
+}
+.cart-detail .fieldset {
+ background: url(/i/bg-form-fieldset.jpg) repeat-x 0 0;
+ color: #000;
+ font-weight: bold;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 0 10px 50px;
+ position: relative;
+}
+.cart-detail.receipt .fieldset { padding-left: 16px; }
+.cart-detail .fieldset .link {
+ font-weight: normal;
+ position: absolute;
+ right: 15px;
+}
+
+fieldset { padding: 0 0 15px; }
+
+.firstline { min-height: 140px; padding: 20px 0 0; position: relative; }
+.firstline .login-alt {
+ color: #66c133;
+ font-size: 1.154em;
+ font-weight: bold;
+ padding: 5px 0 20px 50px;
+}
+.firstline .login-alt .plashka {
+ right: 194px;
+}
+.firstline .login-alt .plashka-sel {
+ margin: -6px 0 0 5px;
+}
+
+.checkout-form label {
+ display: block;
+ font-weight: bold;
+ padding-bottom: 3px;
+}
+.checkout-form p {
+ clear: both !important;
+ float: left;
+ padding: 5px 0 5px 50px;
+}
+.checkout-form p.alt1 {
+ clear: none !important;
+ padding: 5px 10px 5px 50px;
+ width: 170px;
+}
+.checkout-form p.alt2 {
+ clear: none !important;
+ padding: 5px 0;
+ width: 120px;
+}
+.checkout-form .field { width: 300px; }
+.checkout-form select.field { width: 311px; }
+.field.statusSuccess {
+ background: url(/i/bg-field-success.jpg) repeat-x 0 0;
+ border: 1px solid #80d04d;
+}
+.field.statusError {
+ background: url(/i/bg-field-error.jpg) repeat-x 0 0;
+ border: 1px solid #d80000;
+}
+
+.checkout-form p.alt1 .field,
+.checkout-form p.alt2 .field,
+.checkout-form p.pasfield1 .field,
+.checkout-form p.pasfield2 .field {
+ width: 100%;
+}
+
+.checkout-form .creditcard .field { width: 250px; }
+.checkout-form .creditcard p.alt1.expdate .field { width: 78px; }
+.checkout-form .creditcard p.alt2 .field { width: 70px; }
+
+.creditcards { padding: 0 0 0 50px; }
+.creditcards span {
+ display: inline-block;
+ height: 45px;
+}
+.creditcards span:first-child {
+ border-right: 1px solid #d3d3d3;
+ margin-right: 10px;
+ padding-right: 15px;
+}
+
+.password-block {
+ border: 1px solid #e3e3e3;
+ float: right;
+ padding: 12px 20px;
+ width: 390px;
+}
+.password-block p {
+ clear: none !important;
+ padding: 0 30px 0 0;
+}
+.password-block p.pasfield1 {
+ width: 150px;
+}
+
+#result-password { display: none; font-weight: bold; }
+.colorbar {
+ display: inline-block;
+ height: 8px;
+ width: 29px;
+}
+
+#result-password .meterDefault { color: #aaa; }
+#result-password .meterFail { color: #daa; }
+#result-password .meterWarn { color: #fd6; }
+#result-password .meterGood { color: #ada; }
+#result-password .meterExcel { color: #66c133; }
+#result-password .colorbar.meterDefault { background-color: #ddd; }
+#result-password .colorbar.meterFail { background-color: #fdd; }
+#result-password .colorbar.meterWarn { background-color: #feb; }
+#result-password .colorbar.meterGood { background-color: #dfd; }
+#result-password .colorbar.meterExcel { background-color: #66c133; }
+
+.checkout-form .safe-shop {
+ background: url(/i/safe-shop.jpg) no-repeat 0 40px;
+ min-height: 160px;
+ margin: 115px 0 115px 50px;
+}
+.checkout-form .safe-shop .title {
+ color: #389901;
+ font: bold 1.462em Verdana,Arial,Tahoma,Sans-Serif;
+ padding-left: 18px;
+}
+.checkout-form .safe-shop ul.list {
+ float: left;
+ padding: 10px 0 0 130px;
+}
+.checkout-form .safe-shop ul.list li {
+ background: url(/i/icon-galka.png) no-repeat 0 50%;
+ color: #313030;
+ font-weight: bold;
+ padding: 6px 0 6px 25px;
+}
+
+dl.total { padding: 20px 0 0; width: 240px; }
+dl.total dt,
+dl.total dd {
+ float: left;
+ font-weight: bold;
+ padding: 0 0 10px;
+ text-align: right;
+ width: 120px;
+}
+dl.total dt.discount { color: #bf0000; }
+dl.total dd { font-size: 1.385em; }
+dl.total dd span { font-size: 15px; }
+dl.total dd.price1 { color: #333; font-size: 1.538em; }
+dl.total dd.price2 { color: #bf0000; }
+dl.total dd.price3 { font-weight: normal; }
+dl.total dd.price4 { color: #3f911f; font-size: 1.538em; }
+
+.cart-detail .terms {
+ text-align: right;
+ width: 240px;
+}
+
+.place-button,
+.place-grey-button,
+.checkout-button,
+.checkout-grey-button {
+ background: url(/i/order-left.jpg) no-repeat 0 0;
+ color: #faffed;
+ display: inline-block;
+ font-size: 1.385em;
+ font-weight: bold;
+ text-shadow: #000 0px 1px 1px;
+ text-decoration: none;
+}
+.place-button span,
+.place-grey-button span,
+.checkout-button span,
+.checkout-grey-button span {
+ background: url(/i/order-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ height: 37px;
+ line-height: 37px;
+ padding: 0 50px 0 30px;
+}
+.place-button:hover,
+.place-grey-button:hover,
+.checkout-button:hover,
+.checkout-grey-button:hover { color: #faffed; }
+
+.checkout-button span {
+ background: url(/i/checkout-right.jpg) no-repeat 100% 0;
+ padding: 0 30px 0 20px;
+}
+.place-grey-button {
+ background: url(/i/checkout-grey-left.jpg) no-repeat 0 0;
+}
+.place-grey-button span {
+ background: url(/i/order-grey-right.jpg) no-repeat 100% 0;
+}
+.checkout-grey-button {
+ background: url(/i/checkout-grey-left.jpg) no-repeat 0 0;
+ margin-top: 20px;
+}
+.checkout-grey-button span {
+ background: url(/i/checkout-grey-right.jpg) no-repeat 100% 0;
+ padding: 0 30px 0 20px;
+}
+
+.continue-button {
+ background: url(/i/bg-button-continue-right.jpg) no-repeat 100% 0;
+ color: #3c3c3c;
+ display: inline-block;
+ font-weight: bold;
+ margin-right: 20px;
+ text-decoration: none;
+}
+.continue-button span {
+ background: url(/i/bg-button-continue-left.jpg) no-repeat 0 0;
+ display: inline-block;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 20px 0 25px;
+}
+.continue-button:hover {
+ color: #3c3c3c;
+}
+
+.cart-detail.receipt .success-order {
+ background: url(/i/success.png) no-repeat 30px 30px;
+ border-bottom: 1px solid #d0d0d0;
+ margin-bottom: 25px;
+ padding: 0 0 25px 130px;
+}
+.cart-detail.receipt .success-order .links {
+ float: right;
+ padding: 0;
+}
+.cart-detail.receipt .success-order .links a.link-print {
+ background: url(/i/icon-print.jpg) no-repeat 0 0;
+ display: inline-block;
+ font-weight: bold;
+ height: 32px;
+ line-height: 32px;
+ padding: 0 20px 0 40px;
+}
+.cart-detail.receipt .success-order .links a.link-download {
+ background: url(/i/icon-download.jpg) no-repeat 0 0;
+ display: inline-block;
+ font-weight: bold;
+ height: 32px;
+ line-height: 32px;
+ padding: 0 0 0 40px;
+}
+.cart-detail.receipt .success-order .green {
+ color: #009f00;
+ font: 1.538em Tahoma,Verdana,Arial,Sans-Serif;
+}
+.cart-detail.receipt .success-order p {
+ padding: 5px 0;
+}
+
+.cart-detail.receipt p { padding-left: 16px; }
+.cart-detail.receipt dl.info {
+ padding-left: 16px;
+}
+.cart-detail.receipt dl.info dt {
+ clear: both !important;
+ float: left;
+ font-weight: bold;
+ padding: 5px 15px 5px 0;
+ width: 90px;
+}
+.cart-detail.receipt dl.info dd {
+ float: left;
+ padding: 5px 15px 5px 0;
+}
+
+.cart-detail.receipt .items {
+ border-bottom: 1px solid #d1d1d1;
+ margin-top: 30px;
+ width: 100%;
+}
+.cart-detail.shoppingcart .items {
+ margin-top: 0;
+}
+.cart-detail.receipt .items thead {
+ background: url(/i/bg-form-fieldset.jpg) repeat-x 0 0;
+ border: 1px solid #adadad;
+}
+.cart-detail.receipt .items th {
+ color: #000;
+ font-weight: bold;
+ padding: 5px 10px;
+}
+.cart-detail.receipt .items td {
+ border-top: 1px solid #d1d1d1;
+ color: #000;
+ padding: 10px;
+ text-align: center;
+ vertical-align: middle;
+}
+.cart-detail.receipt .items tr:first-child td {
+ border-top: none;
+}
+.cart-detail.receipt .items td.options-td {
+ background-color: #f7f7f7;
+ border-top: none;
+ color: #686767;
+ text-align: left;
+}
+.cart-detail.receipt .items td.options-td .sel-options { float: left; padding: 0 20px 0 0; }
+.cart-detail.receipt .items .item-img { width: 70px; }
+.cart-detail.receipt .items .item-total { font-weight: bold; }
+.cart-detail.receipt .items .item-title {
+ color: #333;
+ font-weight: bold;
+ text-align: left;
+}
+.cart-detail.receipt .items .item-quantity { position: relative; }
+.cart-detail.receipt .items .item-quantity .field { text-align: center; width: 30px; }
+.formStatus {
+ position: absolute;
+ top: 37px;
+ left: 15px;
+ display: block;
+ z-index: 5000;
+ cursor: pointer;
+}
+.formStatus .formContent {
+ width: 100%;
+ position:relative;
+ z-index:5001;
+ color: #fff;
+ white-space: nowrap;
+ font-family: Arial;
+ font-size: 12px;
+ box-shadow: 0 0 3px #444;
+ -moz-box-shadow: 0 0 3px #444;
+ -webkit-box-shadow: 0 0 3px #444;
+ padding: 4px 10px 4px 10px;
+ border-radius: 3px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+.formStatus .formArrow {
+ height: 11px;
+ margin: -34px 0 0 22px;
+ position: relative;
+ width: 21px;
+ z-index: 5006;
+}
+.formStatus.formSuccess .formContent { background: #398d1d url(/i/validate/con-success.png) repeat-x 0 0; }
+.formStatus.formSuccess .formArrow { background: url(/i/validate/con-success-arrow.png) no-repeat 0 0; }
+.formStatus.formError .formContent { background: #990000 url(/i/validate/con-error.png) repeat-x 0 0; }
+.formStatus.formError .formArrow { background: url(/i/validate/con-error-arrow.png) no-repeat 0 0; }
+
+.cart-detail.receipt dl.total { float: right; padding-right: 30px; }
+
+.cart-detail.receipt .discount-block {
+ float: left;
+ padding: 20px 0 0;
+ width: 300px;
+}
+.cart-detail.receipt .discount-block p { padding: 5px 0; }
+.cart-detail.receipt .discount-block .field { width: 170px; }
+.cart-detail.receipt .discount-block .num-discount { position: relative; }
+.cart-detail.receipt .discount-block .formStatus { left: -15px; }
+
+.cart-detail.shoppingcart h1 { float: left; }
+
+.cart-detail.shoppingcart .buttons-right { float: right; text-align: right; }
+.cart-detail.shoppingcart .buttons-right dl.total { float: none; padding-right: 0; }
Index: branches/1.0.x/inc/modal.css
===================================================================
--- branches/1.0.x/inc/modal.css (nonexistent)
+++ branches/1.0.x/inc/modal.css (revision 14600)
@@ -0,0 +1,7 @@
+@charset "UTF-8";
+
+.tbox {position:absolute; display:none; padding:14px 17px; z-index:900}
+.tinner {padding:15px; -moz-border-radius:3px; border-radius:3px; background:#fff url(/i/modal/preload.gif) no-repeat 50% 50%; border:1px solid #404040;}
+.tmask {position:absolute; display:none; top:0px; left:0px; height:100%; width:100%; background:#000; z-index:800}
+.tclose {position:absolute; top:45px; right:50px; width:100px; height:15px; cursor:pointer; background:url(/i/modal/close.png) no-repeat 100% 0; color: #5a5a5a; font: bold 11px Arial; text-align: right; padding-right: 20px;}
+.tcontent {border: 9px solid #e6e6e6; padding: 40px 50px;}
\ No newline at end of file
Index: branches/1.0.x/inc/validationEngine.jquery.css
===================================================================
--- branches/1.0.x/inc/validationEngine.jquery.css (nonexistent)
+++ branches/1.0.x/inc/validationEngine.jquery.css (revision 14600)
@@ -0,0 +1,145 @@
+.inputContainer {
+ position: relative;
+ float: left;
+}
+
+.formError {
+ position: absolute;
+ top: 300px;
+ left: 300px;
+ display: block;
+ z-index: 5000;
+ cursor: pointer;
+}
+
+.ajaxSubmit {
+ padding: 20px;
+ background: #55ea55;
+ border: 1px solid #999;
+ display: none
+}
+
+.formError .formErrorContent {
+ width: 100%;
+ background: #990000 url(/i/validate/con-error.png) repeat-x 0 0;
+ position:relative;
+ z-index:5001;
+ color: #fff;
+ width: 200px;
+ font-family: Arial;
+ font-size: 12px;
+ box-shadow: 0 0 3px #444;
+ -moz-box-shadow: 0 0 3px #444;
+ -webkit-box-shadow: 0 0 3px #444;
+ padding: 4px 10px 4px 10px;
+ border-radius: 3px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+
+.greenPopup .formErrorContent {
+ background: #33be40;
+}
+
+.blackPopup .formErrorContent {
+ background: #393939;
+ color: #FFF;
+}
+
+.formError .formErrorArrow {
+ background: url(/i/validate/con-arrow.png) no-repeat 0 0;
+ height: 17px;
+ margin: -21px 0 0 -8px;
+ position: relative;
+ width: 8px;
+ z-index: 5006;
+}
+
+.formError .formErrorArrowBottom {
+ box-shadow: none;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ margin: 0px 0 0 12px;
+ top:2px;
+}
+
+.formError .formErrorArrow div {
+ display: none;
+/* border-left: 2px solid #ddd;
+ border-right: 2px solid #ddd;
+ box-shadow: 0 2px 3px #444;
+ -moz-box-shadow: 0 2px 3px #444;
+ -webkit-box-shadow: 0 2px 3px #444;
+ font-size: 0px;
+ height: 1px;
+ background: #ee0101;
+ margin: 0 auto;
+ line-height: 0;
+ font-size: 0;
+ display: block;*/
+}
+/*
+.formError .formErrorArrowBottom div {
+ box-shadow: none;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+}
+
+.greenPopup .formErrorArrow div {
+ background: #33be40;
+}
+
+.blackPopup .formErrorArrow div {
+ background: #393939;
+ color: #FFF;
+}
+
+.formError .formErrorArrow .line10 {
+ width: 15px;
+ border: none;
+}
+
+.formError .formErrorArrow .line9 {
+ width: 13px;
+ border: none;
+}
+
+.formError .formErrorArrow .line8 {
+ width: 11px;
+}
+
+.formError .formErrorArrow .line7 {
+ width: 9px;
+}
+
+.formError .formErrorArrow .line6 {
+ width: 7px;
+}
+
+.formError .formErrorArrow .line5 {
+ width: 5px;
+}
+
+.formError .formErrorArrow .line4 {
+ width: 3px;
+}
+
+.formError .formErrorArrow .line3 {
+ width: 1px;
+ border-left: 2px solid #ddd;
+ border-right: 2px solid #ddd;
+ border-bottom: 0 solid #ddd;
+}
+
+.formError .formErrorArrow .line2 {
+ width: 3px;
+ border: none;
+ background: #ddd;
+}
+
+.formError .formErrorArrow .line1 {
+ width: 1px;
+ border: none;
+ background: #ddd;
+}
+*/
\ No newline at end of file
Index: branches/1.0.x/inc/profile.css
===================================================================
--- branches/1.0.x/inc/profile.css (nonexistent)
+++ branches/1.0.x/inc/profile.css (revision 14600)
@@ -0,0 +1,111 @@
+@charset "UTF-8";
+
+/* Profile Blocks
+*******************************************************************************/
+.profile {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ padding: 20px 30px;
+ width: auto;
+}
+.profile.registerpage {
+ border: none;
+ padding: 0 30px;
+ width: 680px;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.profile-title {
+ border-bottom: 1px solid #d0d0d0;
+ margin-bottom: 15px;
+ padding-bottom: 15px;
+}
+.profile h1 {
+ color: #525252;
+ float: left;
+ font: 1.538em Verdana,Arial,Tahoma,Sans-Serif;
+}
+.profile p.req {
+ color: #3e85d2;
+ float: right;
+ font-size: 1em;
+ font-weight: bold;
+ padding-top: 10px;
+}
+.profile .halfcol {
+ float: left;
+ padding: 0 15px 0 0;
+ width: 315px;
+}
+.profile .halfcol-last {
+ padding: 0;
+ position: relative;
+}
+
+.profile-form label {
+ display: block;
+ font-weight: bold;
+ padding-bottom: 3px;
+}
+.red {
+ color: #cd0000;
+ font-weight: normal;
+ padding: 0 0 0 5px;
+}
+.profile-form p {
+ clear: both !important;
+ float: left;
+ padding: 5px 0;
+}
+.profile-form .field { width: 270px; }
+.profile-form .alt2 .field { width: 150px; }
+.field.statusSuccess {
+ background: url(/i/bg-field-success.jpg) repeat-x 0 0;
+ border: 1px solid #80d04d;
+}
+.field.statusError {
+ background: url(/i/bg-field-error.jpg) repeat-x 0 0;
+ border: 1px solid #d80000;
+}
+
+.terms {
+ text-align: center;
+ width: 100%;
+}
+
+.password-block {
+ display: none;
+ float: left;
+ padding: 5px 0;
+ position: relative;
+ width: 100%;
+}
+.registerpage .password-block { display: block; }
+.password-block p {
+ clear: none !important;
+ padding: 0 15px 0 0;
+}
+.password-block p.pasfield2 { padding: 0; }
+.password-block .field { width: 121px; }
+#change-password { color: #267bd1; }
+#result-password { display: none; font-weight: bold; }
+.colorbar {
+ display: inline-block;
+ height: 8px;
+ width: 29px;
+}
+
+#result-password .meterDefault { color: #aaa; }
+#result-password .meterFail { color: #daa; }
+#result-password .meterWarn { color: #fd6; }
+#result-password .meterGood { color: #ada; }
+#result-password .meterExcel { color: #66c133; }
+#result-password .colorbar.meterDefault { background-color: #ddd; }
+#result-password .colorbar.meterFail { background-color: #fdd; }
+#result-password .colorbar.meterWarn { background-color: #feb; }
+#result-password .colorbar.meterGood { background-color: #dfd; }
+#result-password .colorbar.meterExcel { background-color: #66c133; }
Index: branches/1.0.x/inc/flexslider.css
===================================================================
--- branches/1.0.x/inc/flexslider.css (nonexistent)
+++ branches/1.0.x/inc/flexslider.css (revision 14600)
@@ -0,0 +1,35 @@
+/* FlexSlider Necessary Styles
+*********************************/
+#slider {width: 100%; margin: 0 0 20px; padding: 0;}
+#slider .slides li {display: none;} /* Hide the slides before the JS is loaded. Avoids image jumping */
+#slider .slides img {max-width: 100%; display: block;}
+
+/* FlexSlider Default Theme
+*********************************/
+#slider {position: relative; -webkit-border-radius: 5px; -moz-border-radius: 5px; -o-border-radius: 5px; border-radius: 5px;}
+#slider .slides li {position: relative;}
+
+/* Control Nav */
+#slider .flex-control-nav {position: absolute; bottom: 7px; right: 0; width: 180px;}
+#slider .flex-control-nav li {margin: 0 0 0 5px; float: left;}
+#slider .flex-control-nav li:first-child {margin: 0;}
+#slider .flex-control-nav li a {
+ width: 19px;
+ height: 20px;
+ display: block;
+ background: url(/i/buttons-slider.png) no-repeat 0 0;
+ cursor: pointer;
+ color: #222;
+ text-shadow: 0px 2px 1px #ccc;
+ text-decoration: none;
+ font-size: 1.385em;
+ font-weight: bold;
+ padding: 18px 0 0 11px;
+}
+#slider .flex-control-nav li a:hover {background-position: -30px 0;}
+#slider .flex-control-nav li a.active {
+ background-position: -60px 0;
+ cursor: default;
+ color: #fff;
+ text-shadow: 0px 2px 1px #000;
+}
\ No newline at end of file
Index: branches/1.0.x/inc/review.css
===================================================================
--- branches/1.0.x/inc/review.css (nonexistent)
+++ branches/1.0.x/inc/review.css (revision 14600)
@@ -0,0 +1,59 @@
+@charset "UTF-8";
+
+/* Review Blocks
+*******************************************************************************/
+.review {
+ background-color: #fff;
+ width: 500px;
+}
+.review h1 {
+ color: #525252;
+ font: 1.538em Verdana,Arial,Tahoma,Sans-Serif;
+ padding: 0 0 20px;
+}
+
+.profile-form label {
+ float: left;
+ font-weight: bold;
+ padding-top: 3px;
+ width: 90px;
+}
+.red {
+ color: #cd0000;
+ font-weight: normal;
+ padding: 0 0 0 5px;
+}
+.profile-form p {
+ clear: both !important;
+ float: left;
+ padding: 5px 0;
+}
+.profile-form .field { float: left; width: 380px; }
+.profile-form textarea.field {
+ height: 70px;
+}
+.profile-form p span { float: left; width: 380px; }
+.profile-form p.buttons { padding: 0 0 0 90px; width: 380px; }
+.profile-form p.buttons em { float: right; text-align: right; width: 170px; }
+.field.statusSuccess {
+ background: url(/i/bg-field-success.jpg) repeat-x 0 0;
+ border: 1px solid #80d04d;
+}
+.field.statusError {
+ background: url(/i/bg-field-error.jpg) repeat-x 0 0;
+ border: 1px solid #d80000;
+}
+
+.review .success {
+ color: #0b9f00;
+ font-size: 1.385em;
+ padding: 80px 0 20px;
+ text-align: center;
+}
+.review .warning {
+ padding-bottom: 30px;
+ text-align: center;
+}
+.review .button {
+ text-align: center;
+}
Index: branches/1.0.x/inc/jquery.gzoom.css
===================================================================
--- branches/1.0.x/inc/jquery.gzoom.css (nonexistent)
+++ branches/1.0.x/inc/jquery.gzoom.css (revision 14600)
@@ -0,0 +1,120 @@
+/* miniZoomPan styles */
+.gzoomwrap {
+ float:left;
+ margin:0 10px 0 0;
+}
+.minizoompan {
+ background: #fff;
+ position: relative; /* always set to relative or offset() won't work */
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.minizoompan span.loader { /* the loader label*/
+ position:absolute;
+ left:0;
+ top:0;
+ z-index: 1;
+ display: none;
+ color: #000;
+ background: #fff;
+ font: normal 9px Arial, Verdana;
+ padding: 3px;
+}
+.minizoompan .zoomIcon { /* the zoom icon */
+ position:absolute;
+ cursor:pointer;
+ left:0;
+ top:0;
+ z-index: 1;
+ display: none;
+}
+
+.gzoombutton {
+ float:left;
+ cursor:pointer;
+ margin-top: 25px;
+}
+.gzoomSlider {
+ background: url(/i/zoom/bg-line.png) repeat-x 0 6px;
+ float:left;
+ margin: 25px 9px 0 5px;
+}
+.gzoomSlider a {
+ background: url(/i/zoom/slider.png) no-repeat 0 0;
+ height: 15px;
+ width: 9px;
+}
+.ui-slider-horizontal .ui-slider-handle {
+ margin-left: -3px;
+ top: 1px;
+}
+
+.ui-icon-circle-minus {
+ background: url(/i/zoom/zoom-minus.png) no-repeat 0 0;
+ height: 14px;
+ width: 14px;
+}
+.ui-icon-circle-plus {
+ background: url(/i/zoom/zoom-plus.png) no-repeat 0 0;
+ height: 14px;
+ width: 14px;
+}
+
+#gzoomoverlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 90;
+ width: 100%;
+ height: 500px;
+}
+#gzoomlbox {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 100;
+ text-align: center;
+ line-height: 0;
+}
+#gzoomlbox a img {
+ border: none;
+}
+#imagebox {
+ position: relative;
+ background-color: #fff;
+ width: 250px;
+ height: 250px;
+ margin: 0 auto;
+}
+#gzoom-cont-img { padding: 10px; }
+
+#lboximgdatacontainer {
+ font: 10px Verdana, Helvetica, sans-serif;
+ background-color: #fff;
+ margin: 0 auto;
+ line-height: 1.4em;
+ overflow: auto;
+ width: 100%;
+ padding: 0 10px 0;
+ padding: 0 10px 10px 10px;
+ color:#666;
+}
+#gzoomloading {
+ position: absolute;
+ top: 40%;
+ left: 0%;
+ height: 25%;
+ width: 100%;
+ text-align: center;
+ line-height: 0;
+}
+
+#lboximgdatacontainer #gzoomlbox-image-details {
+ width: 70%;
+ float: left;
+ text-align: left;
+}
+#gzoom-image-caption { font-weight: bold; }
Index: branches/1.0.x/inc/category.css
===================================================================
--- branches/1.0.x/inc/category.css (nonexistent)
+++ branches/1.0.x/inc/category.css (revision 14600)
@@ -0,0 +1,217 @@
+@charset "UTF-8";
+
+/* Category Page
+*******************************************************************************/
+.goods {
+ margin: 5px 0;
+ padding: 20px 20px 10px 20px;
+}
+.goods .good-item {
+ float: left;
+ height: 200px;
+ margin-bottom: 10px;
+ width: 165px;
+}
+.goods .good-item.borbottom {
+ border-bottom: 1px dotted #d0d0d0;
+ padding-bottom: 10px;
+}
+.goods .good-item dl {
+ border-right: 1px dotted #d0d0d0;
+ padding: 5px;
+}
+.goods .good-item dl.no-border-right { border-right: none; }
+
+/*** Filter block ***/
+.filter-block { float: left; padding: 10px 0; width: 100%; }
+.filter-block div { float: left; }
+.filter-block .paginate {
+ font-weight: bold;
+ padding: 0 40px 0 0;
+}
+.filter-block .sortby { font-weight: bold; }
+.filter-block .sortby a { font-weight: normal; }
+.filter-block .display_switch { float: right; text-align: right; }
+.filter-block .display_switch a.switch_thumb {
+ width: 48px;
+ height: 21px;
+ display: block;
+ background: url(/i/display-view.png) no-repeat 0 0;
+ outline: none;
+ text-indent: -9999px;
+}
+.filter-block .display_switch a.swap { background-position: 0 100%; }
+
+.items { padding: 20px; }
+.items.items-alt { padding: 0; }
+.items .item {
+ border-top: 1px solid #d0d0d0;
+ float: left;
+ padding: 15px 10px;
+ position: relative;
+ width: auto;
+}
+.items .ribbon {
+ background: url(/i/ribbon.png) no-repeat 0 0;
+ height: 40px;
+ position: absolute;
+ top: -3px; right: -26px;
+ width: 102px;
+ z-index: 100;
+}
+.items .ribbon.sale { background-position: 0 0; }
+.items .ribbon.top { background-position: 0 -40px; }
+.items .ribbon.new { background-position: 0 -80px; }
+.items .item .img {
+ float: left;
+ padding-right: 15px;
+ width: 70px;
+}
+.items .item .descr {
+ float: left;
+ padding-right: 15px;
+ width: 360px;
+}
+.items .item .descr h3 {
+ font-size: 1.077em;
+ font-weight: bold;
+ padding-bottom: 5px;
+}
+.items .item .descr .optional { padding: 5px 0; }
+.items .item .descr .optional .stars { padding: 0 20px 0 0; }
+.items .item .descr .optional .comp label em {
+ font-style: normal;
+ text-decoration: underline;
+}
+.items .item .descr .optional .comp label input {
+ bottom: -2px;
+ margin: 0 5px 0 0;
+ position: relative;
+}
+.items .item .price-block {
+ float: left;
+ width: 185px;
+}
+.items .item .price-block s.under {
+ display: block;
+ font-size: 1.308em;
+ font-weight: bold;
+ padding-right: 10px;
+}
+.items .item .price-block s.under span { font-size: 0.706em; }
+.items .item .price-block .redprice { padding: 10px 0; }
+.items .item .price-block em.price {
+ color: #C2120A;
+ font-size: 1.846em;
+ font-weight: bold;
+ font-style: normal;
+}
+.items .item .price-block em.price span { font-size: 0.708em; }
+.items .item .price-block .addtocart {
+ background: url(/i/addtocart-left.jpg) no-repeat 0 0;
+ color: #faffed;
+ display: inline-block;
+ font-size: 1.077em;
+ font-weight: bold;
+ text-shadow: #000 0px 1px 1px;
+ text-decoration: none;
+}
+.items .item .price-block .addtocart span {
+ background: url(/i/addtocart-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ height: 33px;
+ line-height: 33px;
+ padding: 0 20px;
+}
+
+ul.display { border-bottom: 1px solid #d0d0d0; float: left; width: 100%; }
+ul.display li { float: left; width: 100%; }
+
+ul.thumb_view { border-bottom: none; }
+ul.thumb_view li {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ height: 180px;
+ margin: 0 5px 5px 0;
+ width: 348px;
+}
+ul.thumb_view li .item {
+ border-top: none;
+ padding: 15px;
+ width: 319px;
+}
+ul.thumb_view li .item .img {
+ position: absolute;
+ top: 38px;
+ width: 133px;
+}
+ul.thumb_view li .item .img img { height: 133px; width: 133px; }
+ul.thumb_view li .item .ribbon { right: -4px; }
+ul.thumb_view li .item .descr {
+ position: absolute;
+ width: auto;
+}
+ul.thumb_view li .item .descr .optional {
+ left: 158px;
+ position: absolute;
+ top: 132px;
+ width: 165px;
+}
+ul.thumb_view li .item .descr .optional .stars { padding: 0 10px 0 0; }
+ul.thumb_view li .item .descr p,
+ul.thumb_view li .item .descr .optional .reviews { display: none; }
+ul.thumb_view li .item .price-block {
+ float: none;
+ left: 170px;
+ position: absolute;
+ top: 50px;
+}
+
+/*** Pagination ***/
+.pagination { padding-top: 20px; text-align: center; }
+.pagination span,
+.pagination a {
+ background: url(/i/paginate.png) no-repeat -28px 0;
+ color: #fff;
+ display: inline-block;
+ font-size: 1.308em;
+ font-weight: bold;
+ height: 28px;
+ line-height: 28px;
+ text-align: center;
+ text-decoration: none;
+ width: 28px;
+}
+.pagination span.prev {
+ background-position: 0 100%;
+ margin-right: 20px;
+}
+.pagination a.prev {
+ background-position: 0 0;
+ margin-right: 20px;
+}
+.pagination span.next {
+ background-position: -56px 100%;
+ margin-left: 20px;
+}
+.pagination a.next {
+ background-position: -56px 0;
+ margin-left: 20px;
+}
+.pagination a.active {
+ background-position: -28px 100%;
+}
+
+/*** Searchbox ***/
+.form { padding: 10px 0; }
+.form input[type="text"] {
+ border: none;
+ background: #fff url(/i/bg-searchfield.jpg) no-repeat 0 0;
+ height: 23px;
+ padding: 2px 5px 2px 35px;
+ width: 162px;
+}
Index: branches/1.0.x/inc/layout.css
===================================================================
--- branches/1.0.x/inc/layout.css (nonexistent)
+++ branches/1.0.x/inc/layout.css (revision 14600)
@@ -0,0 +1,33 @@
+.col1,.col2,.col3,.cols {
+ float:left;
+}
+.col1 {
+ width:500px;
+}
+.col2 {
+ width:290px;
+}
+.cols {
+ width:225px;
+}
+
+/* index.html */
+#page1 {
+ background:url('@templates_base@/img/bg_top.gif');
+}
+#page1 .text {
+ background:url('@templates_base@/img/bg_img1.jpg') 0 0 no-repeat;
+ padding:71px 0 0 535px;
+ margin-top:17px;
+ height:339px;
+}
+#page1 .text1 span {
+ padding-bottom:40px;
+}
+
+/* index-1.html */
+/* index-2.html */
+/* index-3.html */
+#page4 .cols {
+ width:85px;
+}
\ No newline at end of file
Index: branches/1.0.x/inc/qtip.css
===================================================================
--- branches/1.0.x/inc/qtip.css (nonexistent)
+++ branches/1.0.x/inc/qtip.css (revision 14600)
@@ -0,0 +1,525 @@
+/* Core qTip styles */
+.ui-tooltip, .qtip{
+ position: absolute;
+ left: -28000px;
+ top: -28000px;
+ display: none;
+
+ max-width: 180px;
+ min-width: 50px;
+
+ font-size: 10.5px;
+ line-height: 12px;
+
+ z-index: 15000;
+}
+
+ /* Fluid class for determining actual width in IE */
+ .ui-tooltip-fluid{
+ display: block;
+ visibility: hidden;
+ position: static !important;
+ float: left !important;
+ }
+
+ .ui-tooltip-content{
+ position: relative;
+ padding: 5px 9px;
+ overflow: hidden;
+
+ border-width: 1px;
+ border-style: solid;
+
+ text-align: left;
+ word-wrap: break-word;
+ overflow: hidden;
+ }
+
+ .ui-tooltip-titlebar{
+ position: relative;
+ min-height: 14px;
+ padding: 5px 35px 5px 10px;
+ overflow: hidden;
+
+ border-width: 1px 1px 0;
+ border-style: solid;
+
+ font-weight: bold;
+ }
+
+ .ui-tooltip-titlebar + .ui-tooltip-content{ border-top-width: 0px !important; }
+
+ /*! Default close button class */
+ .ui-tooltip-titlebar .ui-state-default{
+ position: absolute;
+ right: 4px;
+ top: 50%;
+ margin-top: -9px;
+
+ cursor: pointer;
+ outline: medium none;
+
+ border-width: 1px;
+ border-style: solid;
+ }
+
+ * html .ui-tooltip-titlebar .ui-state-default{ top: 16px; } /* IE fix */
+
+ .ui-tooltip-titlebar .ui-icon,
+ .ui-tooltip-icon .ui-icon{
+ display: block;
+ text-indent: -1000em;
+ }
+
+ .ui-tooltip-icon, .ui-tooltip-icon .ui-icon{
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ }
+
+ .ui-tooltip-icon .ui-icon{
+ width: 18px;
+ height: 14px;
+
+ text-align: center;
+ text-indent: 0;
+ font: normal bold 10px/13px Tahoma,sans-serif;
+
+ color: inherit;
+ background: transparent none no-repeat -100em -100em;
+ }
+
+
+/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
+.ui-tooltip-focus{
+
+}
+
+/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */
+.ui-tooltip-hover{
+
+}
+
+
+/*! Default tooltip style */
+.ui-tooltip-default .ui-tooltip-titlebar,
+.ui-tooltip-default .ui-tooltip-content{
+ border-color: #F1D031;
+ background-color: #FFFFA3;
+ color: #555;
+}
+
+ .ui-tooltip-default .ui-tooltip-titlebar{
+ background-color: #FFEF93;
+ }
+
+ .ui-tooltip-default .ui-tooltip-icon{
+ border-color: #CCC;
+ background: #F1F1F1;
+ color: #777;
+ }
+
+ .ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #AAA;
+ color: #111;
+ }
+
+/* Tips plugin */
+.ui-tooltip .ui-tooltip-tip{
+ margin: 0 auto;
+ overflow: hidden;
+
+ background: transparent !important;
+ border: 0px dashed transparent !important;
+ z-index: 10;
+}
+
+ .ui-tooltip .ui-tooltip-tip,
+ .ui-tooltip .ui-tooltip-tip *{
+ position: absolute;
+
+ line-height: 0.1px !important;
+ font-size: 0.1px !important;
+ color: #123456;
+
+ background: transparent;
+ border: 0px dashed transparent;
+ }
+
+ .ui-tooltip .ui-tooltip-tip canvas{ top: 0; left: 0; }
+
+
+/*! Light tooltip style */
+.ui-tooltip-light .ui-tooltip-titlebar,
+.ui-tooltip-light .ui-tooltip-content{
+ border-color: #E2E2E2;
+ color: #454545;
+}
+
+ .ui-tooltip-light .ui-tooltip-content{
+ background-color: white;
+ }
+
+ .ui-tooltip-light .ui-tooltip-titlebar{
+ background-color: #f1f1f1;
+ }
+
+
+/*! Dark tooltip style */
+.ui-tooltip-dark .ui-tooltip-titlebar,
+.ui-tooltip-dark .ui-tooltip-content{
+ border-color: #303030;
+ color: #f3f3f3;
+}
+
+ .ui-tooltip-dark .ui-tooltip-content{
+ background-color: #505050;
+ }
+
+ .ui-tooltip-dark .ui-tooltip-titlebar{
+ background-color: #404040;
+ }
+
+ .ui-tooltip-dark .ui-tooltip-icon{
+ border-color: #444;
+ }
+
+ .ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #303030;
+ }
+
+
+/*! Cream tooltip style */
+.ui-tooltip-cream .ui-tooltip-titlebar,
+.ui-tooltip-cream .ui-tooltip-content{
+ border-color: #F9E98E;
+ color: #A27D35;
+}
+
+ .ui-tooltip-cream .ui-tooltip-content{
+ background-color: #FBF7AA;
+ }
+
+ .ui-tooltip-cream .ui-tooltip-titlebar{
+ background-color: #F0DE7D;
+ }
+
+ .ui-tooltip-cream .ui-state-default .ui-tooltip-icon{
+ background-position: -82px 0;
+ }
+
+
+/*! Red tooltip style */
+.ui-tooltip-red .ui-tooltip-titlebar,
+.ui-tooltip-red .ui-tooltip-content{
+ border-color: #D95252;
+ color: #912323;
+}
+
+ .ui-tooltip-red .ui-tooltip-content{
+ background-color: #F78B83;
+ }
+
+ .ui-tooltip-red .ui-tooltip-titlebar{
+ background-color: #F06D65;
+ }
+
+ .ui-tooltip-red .ui-state-default .ui-tooltip-icon{
+ background-position: -102px 0;
+ }
+
+ .ui-tooltip-red .ui-tooltip-icon{
+ border-color: #D95252;
+ }
+
+ .ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #D95252;
+ }
+
+
+/*! Green tooltip style */
+.ui-tooltip-green .ui-tooltip-titlebar,
+.ui-tooltip-green .ui-tooltip-content{
+ border-color: #90D93F;
+ color: #3F6219;
+}
+
+ .ui-tooltip-green .ui-tooltip-content{
+ background-color: #CAED9E;
+ }
+
+ .ui-tooltip-green .ui-tooltip-titlebar{
+ background-color: #B0DE78;
+ }
+
+ .ui-tooltip-green .ui-state-default .ui-tooltip-icon{
+ background-position: -42px 0;
+ }
+
+
+/*! Blue tooltip style */
+.ui-tooltip-blue .ui-tooltip-titlebar,
+.ui-tooltip-blue .ui-tooltip-content{
+ border-color: #ADD9ED;
+ color: #5E99BD;
+}
+
+ .ui-tooltip-blue .ui-tooltip-content{
+ background-color: #E5F6FE;
+ }
+
+ .ui-tooltip-blue .ui-tooltip-titlebar{
+ background-color: #D0E9F5;
+ }
+
+ .ui-tooltip-blue .ui-state-default .ui-tooltip-icon{
+ background-position: -2px 0;
+ }
+
+/*! Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE6+, Safari 2+ */
+.ui-tooltip-shadow{
+ -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
+ -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
+}
+
+ .ui-tooltip-shadow .ui-tooltip-titlebar,
+ .ui-tooltip-shadow .ui-tooltip-content{
+ filter: progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3);
+ -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3)";
+
+ _margin-bottom: -3px; /* IE6 */
+ .margin-bottom: -3px; /* IE7 */
+ }
+
+
+/*! Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
+.ui-tooltip-rounded,
+.ui-tooltip-rounded .ui-tooltip-content,
+.ui-tooltip-tipsy,
+.ui-tooltip-tipsy .ui-tooltip-content,
+.ui-tooltip-youtube,
+.ui-tooltip-youtube .ui-tooltip-content{
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.ui-tooltip-rounded .ui-tooltip-titlebar,
+.ui-tooltip-tipsy .ui-tooltip-titlebar,
+.ui-tooltip-youtube .ui-tooltip-titlebar{
+ -moz-border-radius: 5px 5px 0 0;
+ -webkit-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+}
+
+.ui-tooltip-rounded .ui-tooltip-titlebar + .ui-tooltip-content,
+.ui-tooltip-tipsy .ui-tooltip-titlebar + .ui-tooltip-content,
+.ui-tooltip-youtube .ui-tooltip-titlebar + .ui-tooltip-content{
+ -moz-border-radius: 0 0 5px 5px;
+ -webkit-border-radius: 0 0 5px 5px;
+ border-radius: 0 0 5px 5px;
+}
+
+
+/*! Youtube tooltip style */
+.ui-tooltip-youtube{
+ -webkit-box-shadow: 0 0 3px #333;
+ -moz-box-shadow: 0 0 3px #333;
+ box-shadow: 0 0 3px #333;
+}
+
+ .ui-tooltip-youtube .ui-tooltip-titlebar,
+ .ui-tooltip-youtube .ui-tooltip-content{
+ _margin-bottom: 0; /* IE6 */
+ .margin-bottom: 0; /* IE7 */
+
+ background: transparent;
+ background: rgba(0, 0, 0, 0.85);
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";
+
+ color: white;
+ border-color: #CCCCCC;
+ }
+
+ .ui-tooltip-youtube .ui-tooltip-icon{
+ border-color: #222;
+ }
+
+ .ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #303030;
+ }
+
+
+/* jQuery TOOLS Tooltip style */
+.ui-tooltip-jtools{
+ background: #232323;
+ background: rgba(0, 0, 0, 0.7);
+ background-image: -moz-linear-gradient(top, #717171, #232323);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
+
+ border: 2px solid #ddd;
+ border: 2px solid rgba(241,241,241,1);
+
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+
+ -webkit-box-shadow: 0 0 12px #333;
+ -moz-box-shadow: 0 0 12px #333;
+ box-shadow: 0 0 12px #333;
+}
+
+ /* IE Specific */
+ .ui-tooltip-jtools .ui-tooltip-titlebar{
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";
+ }
+ .ui-tooltip-jtools .ui-tooltip-content{
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";
+ }
+
+ .ui-tooltip-jtools .ui-tooltip-titlebar,
+ .ui-tooltip-jtools .ui-tooltip-content{
+ background: transparent;
+ color: white;
+ border: 0 dashed transparent;
+ }
+
+ .ui-tooltip-jtools .ui-tooltip-icon{
+ border-color: #555;
+ }
+
+ .ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #333;
+ }
+
+
+/* Cluetip style */
+.ui-tooltip-cluetip{
+ -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+ -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+ box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
+}
+
+ .ui-tooltip-cluetip .ui-tooltip-titlebar{
+ background-color: #87876A;
+ color: white;
+ border: 0 dashed transparent;
+ }
+
+ .ui-tooltip-cluetip .ui-tooltip-content{
+ background-color: #D9D9C2;
+ color: #111;
+ border: 0 dashed transparent;
+ }
+
+ .ui-tooltip-cluetip .ui-tooltip-icon{
+ border-color: #808064;
+ }
+
+ .ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #696952;
+ color: #696952;
+ }
+
+
+/* Tipsy style */
+.ui-tooltip-tipsy{
+ border: 0;
+}
+
+ .ui-tooltip-tipsy .ui-tooltip-titlebar,
+ .ui-tooltip-tipsy .ui-tooltip-content{
+ _margin-bottom: 0; /* IE6 */
+ .margin-bottom: 0; /* IE7 */
+
+ background: transparent;
+ background: rgba(0, 0, 0, .87);
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";
+
+ color: white;
+ border: 0px transparent;
+
+ font-size: 11px;
+ font-family: 'Lucida Grande', sans-serif;
+ font-weight: bold;
+ line-height: 16px;
+ text-shadow: 0 1px black;
+ }
+
+ .ui-tooltip-tipsy .ui-tooltip-titlebar{
+ padding: 6px 35px 0 10;
+ }
+
+ .ui-tooltip-tipsy .ui-tooltip-content{
+ padding: 6px 10;
+ }
+
+ .ui-tooltip-tipsy .ui-tooltip-icon{
+ border-color: #222;
+ text-shadow: none;
+ }
+
+ .ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{
+ border-color: #303030;
+ }
+
+
+/* Tipped style */
+.ui-tooltip-tipped{
+
+}
+
+ .ui-tooltip-tipped .ui-tooltip-titlebar,
+ .ui-tooltip-tipped .ui-tooltip-content{
+ border: 3px solid #959FA9;
+
+ filter: none; -ms-filter: none;
+ }
+
+ .ui-tooltip-tipped .ui-tooltip-titlebar{
+ background: #3A79B8;
+ background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";
+
+ color: white;
+ font-weight: normal;
+ font-family: serif;
+
+ border-bottom-width: 0;
+ -moz-border-radius: 3px 3px 0 0;
+ -webkit-border-radius: 3px 3px 0 0;
+ border-radius: 3px 3px 0 0;
+ }
+
+ .ui-tooltip-tipped .ui-tooltip-content{
+ background-color: #F9F9F9;
+ color: #454545;
+
+ -moz-border-radius: 0 0 3px 3px;
+ -webkit-border-radius: 0 0 3px 3px;
+ border-radius: 0 0 3px 3px;
+ }
+
+ .ui-tooltip-tipped .ui-tooltip-icon{
+ border: 2px solid #285589;
+ background: #285589;
+ }
+
+ .ui-tooltip-tipped .ui-tooltip-icon .ui-icon{
+ background-color: #FBFBFB;
+ color: #555;
+ }
+
+/* IE9 fix - removes all filters */
+.ui-tooltip:not(.ie9haxors) div.ui-tooltip-content,
+.ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{
+ filter: none;
+ -ms-filter: none;
+}
\ No newline at end of file
Index: branches/1.0.x/inc/reset.css
===================================================================
--- branches/1.0.x/inc/reset.css (nonexistent)
+++ branches/1.0.x/inc/reset.css (revision 14600)
@@ -0,0 +1,48 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, sub, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
\ No newline at end of file
Index: branches/1.0.x/inc/styles.css
===================================================================
--- branches/1.0.x/inc/styles.css (nonexistent)
+++ branches/1.0.x/inc/styles.css (revision 14600)
@@ -0,0 +1,1091 @@
+@charset "UTF-8";
+
+/* Basic Blocks
+*******************************************************************************/
+html {
+ min-width: 1000px;
+}
+body {
+ background: #fff url(/i/bg-header.jpg) repeat-y 0 0;
+ color: #3c3c3c;
+ font: 0.813em/1.231em Arial,Verdana,Tahoma,Sans-Serif;
+}
+
+img { border: 0; }
+table { border-collapse: collapse; border-spacing: 0; }
+td { padding: 0; vertical-align: top; }
+
+a, a:hover, a:focus { color: #333; outline: none; text-decoration: underline; }
+a:hover, a:focus { text-decoration: none; }
+
+.clear { clear: both !important; }
+.fix { border: 1px solid #f00; }
+
+/* Header
+*******************************************************************************/
+#header {
+ margin: 0 auto;
+ width: 960px;
+}
+#header .logo {
+ float: left;
+ padding: 18px 0;
+}
+
+#header .infoblock {
+ float: right;
+ position: relative;
+ width: 550px;
+}
+
+#header .infoblock .welcome {
+ color: #343338;
+ float: right;
+ padding: 9px 0;
+ position: relative;
+}
+#header .infoblock .welcome div { float: left; }
+#header .infoblock .welcome .txt { padding: 0 0 0 20px; }
+#header .infoblock .welcome .logged { padding-top: 5px; }
+#header .infoblock .welcome .txt a { font-weight: bold; }
+#header .infoblock .welcome .lang .eng {
+ background: url(/i/lang/eng.gif) no-repeat 10px 7px;
+ padding: 5px 10px 10px 35px;
+}
+#header .infoblock .welcome .txt,
+#header .infoblock .welcome .lang,
+#header .infoblock .welcome .currency,
+#header .infoblock .welcome .profile {
+ position: relative;
+}
+#header .infoblock .welcome .profile { margin-left: 10px; margin-right: 10px; }
+#header .infoblock .welcome .txt .login,
+#header .infoblock .welcome .currency .cur,
+#header .infoblock .welcome .profile .link {
+ padding: 5px 10px 10px;
+}
+#header .infoblock .welcome .currency { margin-left: 5px; }
+#header .infoblock .welcome .currency .cur.plashka-sel { margin-left: -1px; }
+
+a#lang,
+a#currency,
+a#profile {
+ background: url(/i/icon-select.gif) no-repeat 100% 6px;
+ display: block;
+ padding: 0 12px 0 0;
+ text-decoration: none;
+}
+#header .infoblock .cart {
+ background: url(/i/bg-cart.jpg) no-repeat 100% 0;
+ float: right;
+ font-size: 1.154em;
+ font-weight: bold;
+ padding: 15px 0;
+}
+#header .infoblock .cart span,
+#header .infoblock .cart a { float: left; }
+#header .infoblock .cart a {
+ background: url(/i/icon-checkout.gif) no-repeat 100% 12px;
+ color: #75b833;
+ line-height: 33px;
+ padding: 0 12px 0 0;
+ text-decoration: none;
+}
+#header .infoblock .cart i {
+ font-size: 0.733em;
+}
+#header .infoblock .cart .items {
+ background: url(/i/icon-cart.png) no-repeat 0 0;
+ line-height: 33px;
+ padding: 0 0 0 50px;
+}
+#header .infoblock .cart .delim {
+ color: #b5b5b5;
+ font-weight: normal;
+ line-height: 33px;
+ padding: 0 15px;
+}
+#header .infoblock .cart .phone {
+ color: #535353;
+ font: bold 1.385em Tahoma,Arial,Verdana,Sans-Serif;
+ line-height: 33px;
+ padding-right: 50px;
+}
+
+#header .infoblock .welcome .lang #lang-sel a {
+ text-decoration: underline;
+}
+#header .infoblock .welcome .lang #lang-sel .eng {
+ background: url(/i/lang/eng.gif) no-repeat 0 0;
+ padding: 0 0 0 25px;
+}
+#header .infoblock .welcome .lang #lang-sel .deutch {
+ background: url(/i/lang/deutch.gif) no-repeat 0 0;
+ padding: 0 0 0 25px;
+}
+#header .infoblock .welcome .lang #lang-sel .rus {
+ background: url(/i/lang/rus.gif) no-repeat 0 0;
+ padding: 0 0 0 25px;
+}
+
+.plashka {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ display: none;
+ padding: 10px 20px 5px;
+ position: absolute;
+ top: 31px;
+ right: -1px;
+ z-index: 100;
+ -webkit-border-radius: 5px;
+ -webkit-border-top-right-radius: 0;
+ -moz-border-radius: 5px;
+ -moz-border-radius-topright: 0;
+ border-radius: 5px;
+ border-top-right-radius: 0;
+
+ -moz-box-shadow: 0 0 8px #ccc;
+ -webkit-box-shadow: 0 0 8px #ccc;
+ box-shadow: 0 0 8px #ccc;
+}
+.plashka-sel {
+ background-color: #fff !important;
+ border: 1px solid #d0d0d0;
+ border-bottom: 1px solid #fff;
+ margin: -1px -1px 0 0;
+ position: relative;
+ z-index: 150;
+ -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;
+
+ -moz-box-shadow: #ccc 0 -3px 8px -1px;
+ -webkit-box-shadow: #ccc 0 -3px 8px -1px;
+ box-shadow: #ccc 0 -3px 8px -1px;
+}
+
+#header .infoblock .welcome .plashka li {
+ padding: 0 0 5px;
+ white-space: nowrap;
+}
+#header .infoblock .welcome .plashka .active { color: #2d85d6; }
+#header .infoblock .welcome .txt .plashka,
+#header .infoblock .welcome .profile .plashka { right: 0; }
+.plashka-sel a#lang,
+.plashka-sel a#currency,
+.plashka-sel a#profile {
+ background: url(/i/icon-close.gif) no-repeat 100% 6px;
+}
+
+#header .infoblock .welcome .login,
+.login-alt .login {
+ display: inline-block;
+ float: none;
+}
+.login-alt .login { font-size: 0.867em; padding-left: 5px; }
+#header .infoblock .welcome .login a,
+.login-alt .login a {
+ background: url(/i/bg-button-login.jpg) no-repeat 0 0;
+ display: block;
+ height: 18px;
+ text-align: center;
+ text-decoration: none;
+ width: 61px;
+}
+#header .infoblock .welcome .txt .login.plashka-sel,
+.login-alt .login.plashka-sel {
+ margin-left: 4px;
+ margin-bottom: 1px;
+ padding: 5px 18px 10px;
+}
+.login-alt .login.plashka-sel { padding: 5px 10px 10px; }
+#header .infoblock .welcome .login.plashka-sel a,
+.login-alt .login.plashka-sel a {
+ background: none;
+ height: auto;
+ width: auto;
+}
+
+.icon-close { right: 10px; position: absolute; }
+
+/*** Menu ***/
+.menu {
+ background: #3e3e3e url(/i/bg-menu.jpg) repeat-x 0 0;
+ height: 46px;
+ position: relative;
+ width: 100%;
+}
+.menu .padding {
+ margin: 0 auto;
+ width: 960px;
+}
+.menu ul {
+ float: left;
+ width: 740px;
+}
+.menu ul li {
+ color: #fff;
+ float: left;
+ font-size: 1.154em;
+ font-weight: bold;
+}
+.menu ul li a {
+ color: #fff;
+ display: block;
+ line-height: 46px;
+ padding: 0 18px;
+ text-decoration: none;
+}
+.menu ul li a:hover,
+.menu ul li a:focus {
+ background: #4b4b4b url(/i/bg-menu.jpg) repeat-x 0 -46px;
+}
+.menu ul li a.active {
+ background: #2d85d6 url(/i/bg-menu.jpg) repeat-x 0 -92px;
+}
+.menu .searchbox {
+ background: url(/i/bg-searchbox-l.jpg) no-repeat 0 0;
+ float: right;
+ margin-top: 10px;
+ text-align: right;
+ width: 210px;
+}
+.menu .searchbox input[type="text"] {
+ border: none;
+ background: #fff url(/i/bg-searchbox-r.jpg) no-repeat 100% 0;
+ height: 23px;
+ line-height: 23px;
+ padding-top: 2px;
+ width: 180px;
+}
+
+.level2 {
+ background-color: #fff;
+ left: 273px;
+ position: absolute;
+ z-index: 4000;
+}
+.level2-bg {
+ border: 1px solid #3e3e3e;
+ float: left;
+ width: auto;
+ -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;
+ box-shadow: 0 0 3px #444;
+ -moz-box-shadow: 0 0 3px #444;
+ -webkit-box-shadow: 0 0 3px #444;
+}
+#level2-menu {
+ background-color: #3e3e3e;
+ float: left;
+ padding: 8px 0;
+ width: 200px;
+}
+#level2-menu h3 {
+ background-color: #3e3e3e;
+ padding: 7px 12px;
+ white-space: nowrap;
+}
+#level2-menu h3 a {
+ color: #fff;
+ font-weight: bold;
+ text-decoration: none;
+}
+#level2-menu h3 a:hover {
+ text-decoration: underline;
+}
+#level2-menu ul {
+ width: 100%;
+}
+#level2-menu ul li {
+ background-color: #eaeaea;
+ font-size: 0.923em;
+ font-weight: normal;
+ width: 100%;
+}
+#level2-menu ul li a {
+ color: #3e3e3e;
+ line-height: 20px;
+ padding: 3px 13px 5px;
+ text-decoration: none;
+}
+#level2-menu ul li a:hover,
+#level2-menu ul li a:focus {
+ background: none;
+ text-decoration: underline;
+}
+#level2-menu ul li a.active {
+ background: none;
+}
+#level2-menu ul li i {
+ background: url(/i/bullet-l3menu.png) no-repeat 22px 9px;
+ display: block;
+ padding: 0 0 0 20px;
+ white-space: nowrap;
+}
+#level2-menu ul li.level3-menu h4 {
+ padding-left: 20px;
+ white-space: nowrap;
+}
+#level2-menu ul li.level3-menu ul {
+ background-color: #fff;
+}
+#level2-menu ul li.level3-menu ul li {
+ background-color: #fff;
+ font-size: 0.917em;
+}
+#level2-menu ul li.level3-menu ul li a {
+ background: url(/i/bullet-l3menu.png) no-repeat 35px 4px;
+ line-height: 18px;
+ padding: 0 0 0 45px;
+}
+#level2-menu ul li.level3-menu ul li a.active { color: #2f7916; }
+
+#level2-menu.ui-accordion .ui-accordion-content { overflow: hidden; }
+#level2-menu.ui-accordion .ui-accordion-content-active { background-color: #eaeaea; }
+
+#level2-menu .ui-icon-circle-arrow-l2e {
+ background: url(/i/bullet-l2menu.png) no-repeat 0 0;
+ height: 7px;
+ width: 4px;
+}
+#level2-menu .ui-icon-circle-arrow-l2s {
+ background: url(/i/bullet-l2menu.png) no-repeat 0 -7px;
+ height: 4px;
+ width: 7px;
+}
+#level2-menu .ui-icon-circle-arrow-l3e {
+ background: url(/i/bullet-l2menu.png) no-repeat 0 -11px;
+ height: 7px;
+ width: 4px;
+}
+#level2-menu .ui-icon-circle-arrow-l3s {
+ background: url(/i/bullet-l2menu.png) no-repeat 0 -18px;
+ height: 4px;
+ width: 7px;
+}
+
+#level-content {
+ background-color: #fff;
+ float: left;
+ padding: 15px;
+ width: 400px;
+}
+#level-content ul {
+ width: auto;
+}
+#level-content ul li {
+ background: url(/i/bullet-level5.png) no-repeat 0 7px;
+ float: left;
+ font-size: 1em;
+ font-weight: normal;
+ padding: 0 10px 7px 10px;
+ width: 180px;
+}
+#level-content ul li a {
+ color: #3c3c3c;
+ line-height: 20px;
+ padding: 0;
+ text-decoration: underline;
+}
+#level-content ul li a:hover,
+#level-content ul li a:focus {
+ background: none;
+ color: #2a80d3;
+}
+
+#level-good {
+ background-color: #fff;
+ float: left;
+ padding: 15px;
+ text-align: center;
+ width: 120px;
+}
+#level-good .price { padding: 10px 0; }
+
+/* Content
+*******************************************************************************/
+#content {
+ background-color: #f7f7f7;
+ padding: 32px 0;
+ width: 100%;
+}
+#content .padding {
+ margin: 0 auto;
+ position: relative;
+ width: 960px;
+}
+#content .block-fixed {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ padding: 13px 11px 0 11px;
+ position: absolute;
+ margin: 40px 0 0 -100px;
+}
+#content .block-fixed div { padding-bottom: 13px; }
+
+.button-addtocart {
+ background: url(/i/button-addtocart-left.jpg) no-repeat 0 0;
+ color: #faffed;
+ display: inline-block;
+ font-size: 0.846em;
+ text-shadow: #000 0px 1px 1px;
+ text-decoration: none;
+}
+.button-addtocart span {
+ background: url(/i/button-addtocart-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ height: 40px;
+ padding: 5px 6px 0;
+ text-align: center;
+}
+.button-addtocart span i { display: block; margin-top: -4px; }
+.button-addtocart:hover { color: #faffed; text-shadow: #000 0px 1px 1px; }
+
+#content .leftcol {
+ float: left;
+ padding: 0 20px 0 0;
+ width: 230px;
+}
+#content .rightcol {
+ float: left;
+ padding: 0 0 0 20px;
+ width: 230px;
+}
+#content .contentcol {
+ float: left;
+ width: 710px;
+}
+
+.subscribe-block {
+ background: url(/i/subs.png) no-repeat 0 100%;
+ padding: 0 16px 11px 0;
+ width: 214px;
+}
+.subscribe-block h4 {
+ background: url(/i/subs-top.png) no-repeat 0 0;
+ font-size: 1.077em;
+ font-weight: bold;
+ padding: 14px 0 0 16px;
+ width: 214px;
+}
+.subscribe-block fieldset {
+ padding: 10px 0 0 16px;
+ text-align: left;
+ width: 214px;
+}
+input.field,
+textarea.field,
+select.field,
+select.field-alt {
+ background: url(/i/bg-field.jpg) repeat-x 0 0;
+ border: 1px solid #828282;
+ height: 24px;
+ line-height: 24px;
+ margin-bottom: 5px;
+ padding: 0 5px;
+}
+select.field { padding: 0 0 0 5px; }
+select.field-alt { margin: 0; padding: 0 0 0 5px; }
+input.field:focus,
+textarea.field:focus,
+select.field-alt:focus,
+select.field:focus { border: 1px solid #000; }
+
+.form select.field { width: 360px; }
+
+.form input.subsfield { width: 190px; }
+
+/*** Block ***/
+.block {
+ background: url(/i/bg-block-bottom.jpg) no-repeat 0 100%;
+ margin: 0 0 10px;
+ padding: 0 0 8px;
+}
+.block .block-top {
+ background: url(/i/bg-block-top.jpg) no-repeat 0 100%;
+ height: 8px;
+ width: 100%;
+}
+.block.no-border-bottom {
+ background: none;
+ padding: 0;
+}
+.block.block-margin { margin: 0 0 20px; }
+.block h2 {
+ background: url(/i/h1-left.png) no-repeat 0 0;
+ height: 36px;
+ line-height: 36px;
+ padding-left: 14px;
+ position: relative;
+ z-index: 10;
+}
+.block h2 em,
+.block h2 a {
+ color: #fefefe;
+ font-size: 1.154em;
+ font-weight: bold;
+ font-style: normal;
+ position: relative;
+ z-index: 150;
+}
+.block h2 a { text-decoration: underline; }
+.block h2 i {
+ background: url(/i/bc-step.png) no-repeat 50% 50%;
+ padding: 0 15px;
+}
+.block h2 span {
+ background: url(/i/h1-right.png) no-repeat 100% 0;
+ height: 53px;
+ position: absolute;
+ top: -3px; right: -6px;
+ width: 136px;
+ z-index: 50;
+}
+.block h2 span.new { background: url(/i/h1-right-new.png) no-repeat 100% 0; }
+.block h2 span.pick { background: url(/i/h1-right-pick.png) no-repeat 100% 0; }
+.block h2 span.sale { background: url(/i/h1-right-sale.png) no-repeat 100% 0; }
+.block h2 span.bullet { background: url(/i/h1-right-bullet.png) no-repeat 100% 0; }
+
+.block.alt-block {
+ background: none;
+}
+.block.alt-block h2 {
+ background: url(/i/bg-block.png) no-repeat 0 0;
+ padding-left: 0;
+}
+.block.alt-block h2.active {
+ background-position: 0 100%;
+}
+.block.alt-block h2 a {
+ display: block;
+ height: 36px;
+ line-height: 36px;
+ padding-left: 14px;
+ text-decoration: none;
+}
+
+.block .block-content {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ border-top: none;
+ padding: 15px;
+ -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;
+}
+
+.block .block-content.noactive { display: none; }
+
+.manufacturer dt {
+ float: left;
+ width: 155px;
+}
+.manufacturer dd {
+ float: left;
+ text-align: right;
+ width: 40px;
+}
+.manufacturer .active {
+ color: #0171e4;
+}
+.manufacturer label { text-decoration: underline; }
+
+#slider-vertical {
+ background: url(/i/bg-vertslider-full.png) no-repeat 0 0;
+ float: left;
+ padding: 5px 0 0;
+}
+#slider-vertical .ui-slider-range {
+ background: url(/i/bg-vertslider-a.png) repeat-y 0 0;
+ margin: 0 0 0 7px;
+}
+
+#slider-vertical .ui-slider-handle {
+ background: url(/i/point-vertslider.png) no-repeat 0 0;
+ height: 9px;
+ margin: 0;
+ width: 16px;
+}
+
+.range-block {
+ margin: 0 auto;
+ padding: 10px 0 0;
+ width: 120px;
+}
+.range-block ul.range {
+ color: #333;
+ float: left;
+ margin-right: 10px;
+ position: relative;
+ top: -7px;
+ width: 50px;
+}
+.range-block ul.range li {
+ padding: 0 0 10px;
+ text-align: right;
+}
+.range-block ul.range li:last-child { padding: 0; }
+
+.range-block ul.range2 {
+ color: #a0a0a0;
+ float: left;
+ margin-left: 10px;
+ position: relative;
+ top: 4px;
+ width: 20px;
+}
+.range-block ul.range2 li {
+ font-size: 0.846em;
+ padding: 0 0 10px;
+ text-align: left;
+}
+.range-block ul.range2 li:last-child { padding: 0; }
+
+
+/*** Accordion menu ***/
+#accordion-menu {
+ border-left: 1px solid #d0d0d0;
+ border-right: 1px solid #d0d0d0;
+}
+#accordion-menu h3 {
+ background: #fff url(/i/bg-point-menu.jpg) repeat-x 0 100%;
+ border-bottom: 1px solid #d0d0d0;
+ color: #666;
+ cursor: pointer;
+ font-size: 1.077em;
+ font-weight: bold;
+ padding: 10px 14px;
+ position: relative;
+}
+#accordion-menu h3.active {
+ background: #1b6bc7 url(/i/bg-point-menu-active.jpg) repeat-x 0 0;
+ color: #fff;
+}
+#accordion-menu a { padding-left: 20px; text-decoration: none; }
+#accordion-menu a:hover, #accordion-menu a:focus { text-decoration: underline; }
+#accordion-menu h3.active a { color: #fff; }
+#accordion-menu .ui-icon-circle-arrow-e {
+ background: url(/i/bullet-menu.png) no-repeat 0 0;
+ height: 6px;
+ width: 10px;
+}
+#accordion-menu.alt-menu .ui-icon-circle-arrow-e {
+ margin-top: -4px;
+ position: absolute;
+ top: 50%;
+}
+#accordion-menu .ui-icon-circle-arrow-s {
+ background: url(/i/bullet-menu.png) no-repeat 0 -6px;
+ height: 6px;
+ width: 10px;
+}
+#accordion-menu .ui-icon-circle-arrow-a {
+ background: url(/i/bullet-menu.png) no-repeat 0 -12px;
+ height: 10px;
+ margin-top: -5px;
+ position: absolute;
+ top: 50%;
+ width: 8px;
+}
+#accordion-menu div {
+ background-color: #fff;
+ border-bottom: 1px solid #d0d0d0;
+}
+#accordion-menu div ul { padding: 10px 0 10px 7px; }
+#accordion-menu div ul li { padding: 3px 0 5px 7px; }
+#accordion-menu div ul li.active {
+ background: url(/i/bg-subcategory.png) repeat-x 0 0;
+}
+#accordion-menu div ul a { color: #333; padding-left: 0; }
+#accordion-menu div ul li.active a { color: #fff; }
+
+#accordion-menu div ul li ul { padding: 10px 0 0 25px; }
+#accordion-menu div ul li ul li {
+ background: url(/i/point-subcategory.png) no-repeat 0 7px;
+ font-size: 0.923em;
+ padding: 2px 0 2px 10px;
+}
+#accordion-menu div ul li.active ul a { color: #333; }
+
+/*** Good item ***/
+.good-item {
+ background-color: #fff;
+ width: auto;
+}
+.good-item.good-item-narrow {
+ margin: 5px 5px 0 0;
+ width: 171px;
+}
+.good-item.good-item-narrow-last {
+ margin-right: 0;
+}
+.good-item.good-item-float {
+ float: left;
+ height: 290px;
+}
+.good-item.border-radius-bottom {
+ border: 1px solid #d0d0d0;
+ border-top: none;
+ -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;
+}
+.good-item.border-radius {
+ border: 1px solid #d0d0d0;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.good-item dl {
+ padding: 14px 16px;
+ text-align: center;
+}
+.good-item.comparing-items dl {
+ border-bottom: 1px dotted #b5b5b5;
+ padding: 14px 0;
+ margin: 0 16px;
+}
+.good-item.comparing-items dl.last {
+ border-bottom: none;
+}
+.good-item.comparing-items .buttons {
+ padding: 15px 0;
+ text-align: center;
+ width: 210px;
+}
+.good-item dl dt { padding-bottom: 15px; }
+.good-item dl dt a {
+ font-size: 1.077em;
+ font-weight: bold;
+}
+.good-item .img { height: 140px; }
+.good-item .price {
+ font-size: 1.846em;
+ font-weight: bold;
+ font-style: normal;
+ padding: 10px 0;
+}
+.good-item .price span {
+ font-size: 0.708em;
+}
+.good-item .addtocart {
+ background: url(/i/addtocart-left.jpg) no-repeat 0 0;
+ color: #faffed;
+ display: inline-block;
+ font-size: 1.077em;
+ font-weight: bold;
+ text-shadow: #000 0px 1px 1px;
+ text-decoration: none;
+}
+.good-item .addtocart span {
+ background: url(/i/addtocart-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ height: 33px;
+ line-height: 33px;
+ padding: 0 20px;
+}
+
+.good-item .addedtocart {
+ color: #3d901f;
+ font-size: 1.154em;
+}
+
+/*** Scrollable ***/
+#scrollable {
+ position:relative;
+ overflow: hidden;
+ width: 710px;
+ height: 309px;
+ background-color: #fff;
+ margin: 5px 0
+}
+#scrollable .items {
+ border-top: 1px solid #d0d0d0;
+ border-bottom: 1px solid #d0d0d0;
+ height: 307px;
+ margin: 0 30px;
+ position: relative;
+ width: 650px;
+}
+#scrollable .good-item {
+ background: url(/i/delimiter-special.gif) repeat-y 100% 0;
+ position:relative;
+ width:222px;
+ height: 280px;
+ margin: 16px 0;
+}
+#scrollable .good-item dl { padding: 0 16px; }
+#scrollable .good-item dl dt { height: 35px; }
+#scrollable .good-item dl dd .price { color: #c2120a; }
+
+#scrollable .good-item dl dd .price-deal {
+ padding: 10px 0;
+}
+#scrollable .good-item dl dd .price-deal s.under {
+ font-size: 1.308em;
+ font-weight: bold;
+ padding-right: 10px;
+}
+#scrollable .good-item dl dd .price-deal s.under span {
+ font-size: 0.706em;
+}
+#scrollable .ca-nav span {
+ width:30px;
+ height:309px;
+ background:transparent url(/i/special-navi.png) no-repeat 0 0;
+ position:absolute;
+ top:0;
+ left:0;
+ text-indent:-9000px;
+ cursor:pointer;
+ z-index:8;
+}
+#scrollable .ca-nav span.ca-nav-prev:hover {
+ background-position:-30px 0;
+}
+#scrollable .ca-nav span.ca-nav-next {
+ background-position:-60px 0;
+ left:auto;
+ right:0;
+}
+#scrollable .ca-nav span.ca-nav-next:hover {
+ background-position:-90px 0;
+}
+
+#content .content,
+#content .compare {
+ margin: 5px 0 0;
+ padding: 20px 30px;
+}
+#content .content.border-radius,
+#content .goods.border-radius,
+#content .items.border-radius,
+#content .compare.border-radius {
+ background-color: #fff;
+ border: 1px solid #d0d0d0;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ width: auto;
+}
+#content .content p {
+ font-size: 1.077em;
+ line-height: 1.5em;
+}
+
+#feedback {
+ background: url(/i/con-contact.jpg) no-repeat 100% 0;
+ font-size: 0.929em;
+ padding: 20px 330px 0 0;
+}
+#feedback p.req {
+ border-bottom: 1px solid #d0d0d0;
+ color: #3e85d2;
+ font-size: 1em;
+ font-weight: bold;
+ margin-bottom: 15px;
+ padding: 0 0 5px;
+}
+span.star {
+ color: #3e85d2;
+ font-weight: bold;
+}
+#feedback p {
+ clear: both !important;
+ padding: 5px 0;
+}
+#feedback label {
+ float: left;
+ font-weight: bold;
+ padding: 5px 0;
+ white-space: nowrap;
+ width: 110px;
+}
+.form .field {
+ border: 1px solid #b4b4b4;
+ width: 350px;
+}
+#feedback input.field,
+#feedback span.radios,
+#feedback textarea {
+ float: left;
+}
+#feedback textarea {
+ background: url(/i/bg-textarera.jpg) repeat-x 0 0;
+ border: 1px solid #b4b4b4;
+ height: 120px;
+ width: 450px;
+}
+#feedback .radio label { width: 240px; }
+#feedback span.radios { padding: 5px 0; }
+
+#feedback .buttons {
+ padding: 10px 0 0 110px;
+}
+
+.form .green-button {
+ background: url(/i/bg-buttons.jpg) no-repeat 0 0;
+ border: none;
+ color: #fff;
+ font-weight: bold;
+ height: 26px;
+ padding-bottom: 1px;
+ width: 90px;
+}
+.form .grey-button {
+ background: url(/i/bg-buttons.jpg) no-repeat 0 100%;
+ border: none;
+ color: #000;
+ font-weight: bold;
+ height: 26px;
+ padding-bottom: 1px;
+ width: 90px;
+}
+
+.green-but {
+ background: url(/i/bg-button-left.png) no-repeat 0 0;
+ color: #fff;
+ display: inline-block;
+ font-weight: bold;
+ height: 26px;
+ line-height: 26px;
+ margin: 0 20px 0 0;
+ padding: 0 0 0 20px;
+ text-decoration: none;
+}
+.green-but:hover { color: #fff; text-decoration: none; }
+.green-but span {
+ background: url(/i/bg-button-right.png) no-repeat 100% 0;
+ display: inline-block;
+ height: 26px;
+ margin: 0 -19px 0 0;
+ padding: 0 20px 0 0;
+}
+.grey-but {
+ background: url(/i/bg-button-left.png) no-repeat 0 100%;
+ color: #3c3c3c;
+ display: inline-block;
+ font-weight: bold;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 0 0 20px;
+ text-decoration: none;
+}
+.grey-but:hover { color: #3c3c3c; text-decoration: none; }
+.grey-but span {
+ background: url(/i/bg-button-right.png) no-repeat 100% 100%;
+ display: inline-block;
+ height: 26px;
+ margin: 0 -19px 0 0;
+ padding: 0 20px 0 0;
+}
+
+/*** Login form ***/
+.login-form {
+ padding: 0;
+}
+.login-form p {
+ padding: 5px 0;
+}
+.login-form label {
+ display: block;
+ font-weight: bold;
+ padding-bottom: 5px;
+}
+.login-form .field {
+ width: 230px;
+}
+
+/* Footer
+*******************************************************************************/
+#footer {
+ margin: 0 auto;
+ width: 960px;
+}
+#footer .copy {
+ float: left;
+ font-family: Tahoma,Arial,Verdana,Sans-Serif;
+ padding-top: 18px;
+ width: 580px;
+}
+#footer .copy .doplinks {
+ color: #a8a8a8;
+ padding-top: 15px;
+}
+#footer .copy .doplinks a { padding: 0 15px; }
+#footer .copy .doplinks a:first-child { padding-left: 0; }
+#footer .links {
+ background: url(/i/bg-blinks.jpg) no-repeat 0 0;
+ float: left;
+ padding: 18px 0 36px 16px;
+ width: 124px;
+}
+#footer .links ul li {
+ background: url(/i/li-blinks.gif) no-repeat 0 6px;
+ padding: 0 0 0 11px;
+}
+#footer .payment {
+ float: left;
+ font-weight: bold;
+ padding: 18px 0 36px;
+ text-align: right;
+ width: 230px;
+}
+#footer .payment .logos {
+ padding: 0 0 20px;
+}
+#footer .payment a {
+ padding: 0 3px;
+}
+
+
+.basketStatus {
+ position: absolute;
+ top: 153px;
+ left: 247px;
+ display: block;
+ z-index: 5000;
+}
+.basketStatus .basketContent {
+ background-color: #fff;
+ width: 230px;
+ font-weight: bold;
+ position:relative;
+ z-index:5001;
+ color: #333;
+ padding: 12px 25px;
+ box-shadow: 0 0 3px #444;
+ -moz-box-shadow: 0 0 3px #444;
+ -webkit-box-shadow: 0 0 3px #444;
+ border-radius: 3px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+.basketStatus .basketArrow {
+ background: url(/i/con-basket-arrow.png) no-repeat 0 0;
+ height: 15px;
+ margin: -55px 0 0 22px;
+ position: relative;
+ width: 26px;
+ z-index: 5006;
+}
+.basketStatus .basketContent .subtitle { color: #62aa2c; padding-bottom: 15px; }
+.basketStatus .basketContent .img {
+ float: left;
+ padding-right: 15px;
+}
+.basketStatus .basketContent .info { color: #333; }
Index: branches/1.0.x/inc/details.css
===================================================================
--- branches/1.0.x/inc/details.css (nonexistent)
+++ branches/1.0.x/inc/details.css (revision 14600)
@@ -0,0 +1,343 @@
+@charset "UTF-8";
+
+/* Category Page
+*******************************************************************************/
+.goods {
+ margin: 5px 0;
+ padding: 20px 20px 10px 20px;
+}
+
+.block h2 a.product-prev {
+ background: url(/i/product-nav.png) no-repeat 0 0;
+ height: 21px;
+ position: absolute;
+ right: 40px;
+ top: 9px;
+ width: 21px;
+}
+.block h2 a.product-next {
+ background: url(/i/product-nav.png) no-repeat 100% 0;
+ height: 21px;
+ position: absolute;
+ right: 15px;
+ top: 9px;
+ width: 21px;
+}
+.block h2 a.product-prev:hover { background-position: 0 100%; }
+.block h2 a.product-next:hover { background-position: 100% 100%; }
+
+.product-detail { position: relative; }
+.product-detail .ribbon {
+ background: url(/i/ribbon-big.png) no-repeat 0 0;
+ height: 53px;
+ position: absolute;
+ top: -3px; right: -7px;
+ width: 136px;
+ z-index: 100;
+}
+.product-detail .ribbon.sale { background-position: 0 0; }
+.product-detail .ribbon.top { background-position: 0 -53px; }
+.product-detail .ribbon.new { background-position: 0 -106px; }
+
+.product-detail h1 {
+ color: #000;
+ float: left;
+ font: 1.846em Tahoma,Verdana,Arial,Sans-Serif;
+ padding: 0 0 20px;
+}
+.product-detail .rating {
+ float: left;
+ padding: 6px 0 0 10px;
+}
+.product-detail .h1-reviews {
+ float: left;
+ padding: 8px 0 0 10px;
+}
+
+.product .info {
+ float: left;
+ padding: 0 20px 0 0;
+ width: 260px;
+}
+.product .info .img {
+ position: relative;
+}
+.product .viewlarger {
+ position: absolute;
+ text-align: center;
+ top: 265px;
+ width: 260px;
+}
+.product .viewlarger a {
+ background: url(/i/icon-zoom-small.png) no-repeat 0 2px;
+ padding: 0 0 0 20px;
+}
+.product .info .img .signsmall {
+ color: #000;
+ font-size: 0.846em;
+ position: absolute;
+ top: 320px;
+ text-align: center;
+ width: 260px;
+}
+.product .info .img .showmore {
+ color: #686767;
+ margin-top: 490px;
+ position: absolute;
+}
+
+.product .info .doplinks {
+ background: url(/i/bg-doplinks.jpg) no-repeat 0 0;
+ float: left;
+ height: 152px;
+ margin-top: 220px;
+ padding: 40px 0 0 25px;
+ width: 225px;
+}
+.product .doplinks a.link-print {
+ background: url(/i/icon-print.jpg) no-repeat 0 0;
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ padding: 0 20px 13px 40px;
+}
+.product .doplinks a.link-compare {
+ background: url(/i/icon-compare.png) no-repeat 3px 5px;
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ padding: 0 20px 10px 40px;
+}
+.product .doplinks a.link-wishlist {
+ background: url(/i/icon-wishlist.jpg) no-repeat 0 0;
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ padding: 0 20px 0 40px;
+}
+
+.product .description {
+ float: left;
+ width: 380px;
+}
+.product .description .text {
+ padding: 15px 0;
+}
+
+.product .description .options-har {
+ background-color: #f0f0f0;
+ margin-bottom: 15px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.product .description .options-har .sel-options {
+ color: #686767;
+ float: left;
+ padding: 8px 0 8px 20px;
+}
+.product .description .har { border-top: 1px solid #d0d0d0; float: left; margin-top: 10px; padding-top: 10px; text-align: left; width: 50%; }
+.product .description .har dt { float: left; font-weight: bold; padding: 0 10px 3px 0; width: 100px; }
+.product .description .har dd { float: left; width: 80px; }
+
+.product .description .price-block {
+ float: left;
+ width: 150px;
+}
+.product .description .price-block s.under {
+ display: block;
+ font-size: 1.308em;
+ font-weight: bold;
+ padding-right: 10px;
+}
+.product .description .price-block s.under span { font-size: 0.706em; }
+.product .description .price-block .redprice { padding: 10px 0; }
+.product .description .price-block em.price {
+ color: #C2120A;
+ font-size: 1.846em;
+ font-weight: bold;
+ font-style: normal;
+}
+.product .description .price-block em.price span { font-size: 0.708em; }
+.product .description .order-block {
+ float: right;
+ width: 230px;
+}
+.product .description .order-block .qty {
+ color: #686767;
+ float: left;
+ padding-top: 5px;
+}
+.product .description .order-block .qty .field {
+ text-align: center;
+ width: 25px;
+}
+.product .description .order-block .avail {
+ color: #686767;
+ float: right;
+ font-weight: bold;
+ padding-top: 10px;
+}
+.product .description .order-block .avail em {
+ color: #00b309;
+}
+.product .description .order-block .but {
+ float: right;
+}
+.product .description .order-block .addtocart {
+ background: url(/i/addtocart-left.jpg) no-repeat 0 0;
+ color: #faffed;
+ display: inline-block;
+ font-size: 1.077em;
+ font-weight: bold;
+ text-shadow: #000 0px 1px 1px;
+ text-decoration: none;
+}
+.product .description .order-block .addtocart span {
+ background: url(/i/addtocart-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ padding: 0 20px 0 10px;
+}
+.product .description .order-block .addtocart span i {
+ background: url(/i/bg-button-cart-add.png) no-repeat 0 3px;
+ line-height: 33px;
+ padding: 7px 0 7px 30px;
+}
+
+/*** Tabs ***/
+.ui-tabs .ui-tabs-nav {
+ padding: 0;
+}
+.ui-widget-header {
+ background: none;
+ border: none;
+ color: #000;
+}
+.ui-tabs .ui-tabs-nav li {
+ border: 1px solid #949494;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
+ background: #fff url(/i/bg-tab.png) repeat-x 0 0;
+ border-bottom: none;
+ position: relative;
+ z-index: 100;
+ bottom: -1px;
+}
+
+.ui-tabs .ui-tabs-panel {
+ border: 1px solid #949494;
+ height: 350px;
+ overflow-x: hidden;
+}
+.ui-tabs .ui-tabs-panel p { padding-bottom: 15px; }
+
+/*** Reviews ***/
+.reviews {
+ border-bottom: 1px solid #d0d0d0;
+ float: left;
+ padding-top: 30px;
+ width: 100%;
+}
+.reviews .info-review {
+ float: left;
+ padding: 0 0 20px;
+ width: 350px;
+}
+.reviews .info-review .title {
+ color: #2b2b2b;
+ font-size: 1.385em;
+ line-height: 1.2em;
+}
+.reviews .info-review .but-review {
+ float: left;
+ padding: 20px 0 0;
+}
+.reviews .info-review .addreview {
+ background: url(/i/icon-addreview.jpg) no-repeat 0 0;
+ display: block;
+ height: 22px;
+ line-height: 22px;
+ padding: 0 0 0 30px;
+}
+.reviews .info-review .sortby {
+ color: #585858;
+ float: left;
+ font-weight: bold;
+ padding: 20px 0 0 20px;
+}
+.reviews .overall-review {
+ float: right;
+ width: 215px;
+}
+.reviews .overall-review p {
+ color: #585858;
+ float: left;
+ font-weight: bold;
+ padding: 0 10px 0 0;
+}
+.reviews .overall-review .overall-detail {
+ float: left;
+}
+.reviews .overall-review .overall-detail i {
+ float: left;
+ width: 35px;
+}
+.reviews .overall-review .overall-detail span {
+ float: left;
+ width: 75px;
+}
+
+.reviews .row-review {
+ border-top: 1px solid #d0d0d0;
+ clear: both !important;
+ float: left;
+ padding: 15px 0;
+}
+.reviews .row-review .user { color: #2275cd; font-weight: bold; padding: 0 0 10px; }
+.reviews .row-review .text-review { color: #000; padding: 0 0 10px; }
+.reviews .row-review .optional-review { color: #000; font-size: 0.846em; }
+.reviews .row-review .optional-review p {
+ float: left;
+ padding: 0 20px 0 0;
+}
+.reviews .row-review .optional-review em { color: #8b8b8b; }
+.reviews .row-review .optional-review p.rat img { margin-bottom: -2px; }
+.reviews .row-review .optional-review p.date { float: right; padding: 0; text-align: right; }
+.reviews .row-review .optional-review a { color: #000; }
+.reviews .row-review .optional-review a.yes { color: #009000; font-weight: bold; }
+.reviews .row-review .optional-review a.no { color: #ae0000; font-weight: bold; }
+
+/*** Pagination ***/
+.pagination { padding: 20px 0 10px; text-align: center; }
+.pagination span,
+.pagination a {
+ background: url(/i/paginate.png) no-repeat -28px 0;
+ color: #fff;
+ display: inline-block;
+ font-size: 1.308em;
+ font-weight: bold;
+ height: 28px;
+ line-height: 28px;
+ text-align: center;
+ text-decoration: none;
+ width: 28px;
+}
+.pagination span.prev {
+ background-position: 0 100%;
+ margin-right: 20px;
+}
+.pagination a.prev {
+ background-position: 0 0;
+ margin-right: 20px;
+}
+.pagination span.next {
+ background-position: -56px 100%;
+ margin-left: 20px;
+}
+.pagination a.next {
+ background-position: -56px 0;
+ margin-left: 20px;
+}
+.pagination a.active {
+ background-position: -28px 100%;
+}
Index: branches/1.0.x/inc/js/jquery.easing.1.3.js
===================================================================
--- branches/1.0.x/inc/js/jquery.easing.1.3.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.easing.1.3.js (revision 14600)
@@ -0,0 +1,205 @@
+/*
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
+ *
+ * Uses the built in easing capabilities added In jQuery 1.1
+ * to offer multiple easing options
+ *
+ * TERMS OF USE - jQuery Easing
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright © 2008 George McGinley Smith
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * Neither the name of the author nor the names of contributors may be used to endorse
+ * or promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+// t: current time, b: begInnIng value, c: change In value, d: duration
+jQuery.easing['jswing'] = jQuery.easing['swing'];
+
+jQuery.extend( jQuery.easing,
+{
+ def: 'easeOutQuad',
+ swing: function (x, t, b, c, d) {
+ //alert(jQuery.easing.default);
+ return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
+ },
+ easeInQuad: function (x, t, b, c, d) {
+ return c*(t/=d)*t + b;
+ },
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+ easeInOutQuad: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t + b;
+ return -c/2 * ((--t)*(t-2) - 1) + b;
+ },
+ easeInCubic: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t + b;
+ },
+ easeOutCubic: function (x, t, b, c, d) {
+ return c*((t=t/d-1)*t*t + 1) + b;
+ },
+ easeInOutCubic: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t + b;
+ return c/2*((t-=2)*t*t + 2) + b;
+ },
+ easeInQuart: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t*t + b;
+ },
+ easeOutQuart: function (x, t, b, c, d) {
+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
+ },
+ easeInOutQuart: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
+ },
+ easeInQuint: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t*t*t + b;
+ },
+ easeOutQuint: function (x, t, b, c, d) {
+ return c*((t=t/d-1)*t*t*t*t + 1) + b;
+ },
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ },
+ easeInSine: function (x, t, b, c, d) {
+ return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
+ },
+ easeOutSine: function (x, t, b, c, d) {
+ return c * Math.sin(t/d * (Math.PI/2)) + b;
+ },
+ easeInOutSine: function (x, t, b, c, d) {
+ return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
+ },
+ easeInExpo: function (x, t, b, c, d) {
+ return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
+ },
+ easeOutExpo: function (x, t, b, c, d) {
+ return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
+ },
+ easeInOutExpo: function (x, t, b, c, d) {
+ if (t==0) return b;
+ if (t==d) return b+c;
+ if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
+ return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
+ },
+ easeInCirc: function (x, t, b, c, d) {
+ return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
+ },
+ easeOutCirc: function (x, t, b, c, d) {
+ return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
+ },
+ easeInOutCirc: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
+ return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
+ },
+ easeInElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ },
+ easeOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ },
+ easeInOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
+ },
+ easeInBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ return c*(t/=d)*t*((s+1)*t - s) + b;
+ },
+ easeOutBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
+ },
+ easeInOutBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
+ },
+ easeInBounce: function (x, t, b, c, d) {
+ return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
+ },
+ easeOutBounce: function (x, t, b, c, d) {
+ if ((t/=d) < (1/2.75)) {
+ return c*(7.5625*t*t) + b;
+ } else if (t < (2/2.75)) {
+ return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
+ } else {
+ return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
+ }
+ },
+ easeInOutBounce: function (x, t, b, c, d) {
+ if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
+ return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
+ }
+});
+
+/*
+ *
+ * TERMS OF USE - EASING EQUATIONS
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright © 2001 Robert Penner
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * Neither the name of the author nor the names of contributors may be used to endorse
+ * or promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.pikachoose.full.js
===================================================================
--- branches/1.0.x/inc/js/jquery.pikachoose.full.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.pikachoose.full.js (revision 14600)
@@ -0,0 +1,599 @@
+/*
+ * jCarousel - Riding carousels with jQuery
+ * http://sorgalla.com/jcarousel/
+ *
+ * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Built on top of the jQuery library
+ * http://jquery.com
+ *
+ * Inspired by the "Carousel Component" by Bill Scott
+ * http://billwscott.com/carousel/
+ */
+
+(function(g){var q={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"<div></div>",buttonPrevHTML:"<div></div>",buttonNextEvent:"click",buttonPrevEvent:"click", buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},m=!1;g(window).bind("load.jcarousel",function(){m=!0});g.jcarousel=function(a,c){this.options=g.extend({},q,c||{});this.autoStopped=this.locked=!1;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===void 0)this.options.rtl=(g(a).attr("dir")||g("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical? this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f<d.length;f++)if(d[f].indexOf("jcarousel-skin")!=-1){g(a).removeClass(d[f]);b=d[f];break}a.nodeName.toUpperCase()=="UL"||a.nodeName.toUpperCase()=="OL"?(this.list=g(a),this.clip=this.list.parents(".jcarousel-clip"),this.container=this.list.parents(".jcarousel-container")):(this.container=g(a),this.list=this.container.find("ul,ol").eq(0),this.clip=this.container.find(".jcarousel-clip"));if(this.clip.size()===0)this.clip= this.list.wrap("<div></div>").parent();if(this.container.size()===0)this.container=this.clip.wrap("<div></div>").parent();b!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+b+'"></div>');this.buttonPrev=g(".jcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=g(this.options.buttonPrevHTML).appendTo(this.container);this.buttonPrev.addClass(this.className("jcarousel-prev"));this.buttonNext= g(".jcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext=g(this.options.buttonNextHTML).appendTo(this.container);this.buttonNext.addClass(this.className("jcarousel-next"));this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"}); !this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,b=this.list.children("li"),e=this;if(b.size()>0){var h=0,i=this.options.offset;b.each(function(){e.format(this,i++);h+=e.dimension(this,j)});this.list.css(this.wh,h+100+"px");if(!c||c.size===void 0)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display", "block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.resizeTimer&&clearTimeout(e.resizeTimer);e.resizeTimer=setTimeout(function(){e.reload()},100)};this.options.initCallback!==null&&this.options.initCallback(this,"init");!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):this.setup()};var f=g.jcarousel;f.fn=f.prototype={jcarousel:"0.2.8"};f.fn.extend=f.extend=g.extend;f.fn.extend({setup:function(){this.prevLast= this.prevFirst=this.last=this.first=null;this.animating=!1;this.tail=this.resizeTimer=this.timer=null;this.inTail=!1;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null;this.animate(a,!1);g(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize);this.options.setupCallback!==null&&this.options.setupCallback(this)}},reset:function(){this.list.empty();this.list.css(this.lt, "0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=!1;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(f){b+=a.dimension(this, c);f+1<a.first&&(d=b)});this.list.css(this.wh,b+"px");this.list.css(this.lt,-d+"px")}this.scroll(this.first,!1)},lock:function(){this.locked=!0;this.buttons()},unlock:function(){this.locked=!1;this.buttons()},size:function(a){if(a!==void 0)this.options.size=a,this.locked||this.buttons();return this.options.size},has:function(a,c){if(c===void 0||!c)c=a;if(this.options.size!==null&&c>this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0}, get:function(a){return g(">.jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,p=g(c);if(b.length===0)for(var j,e=f.intval(a),b=this.create(a);;){if(j=this.get(--e),e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}else d=this.dimension(b);p.get(0).nodeName.toUpperCase()=="LI"?(b.replaceWith(p),b=p):b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);p=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible): null;d=this.dimension(b,p)-d;a>0&&a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))-d+"px");this.list.css(this.wh,f.intval(this.list.css(this.wh))+d+"px");return b},remove:function(a){var c=this.get(a);if(c.length&&!(a>=this.first&&a<=this.last)){var b=this.dimension(c);a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+b+"px");c.remove();this.list.css(this.wh,f.intval(this.list.css(this.wh))-b+"px")}},next:function(){this.tail!==null&&!this.inTail?this.scrollTail(!1): this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!==null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.tail!==null&&this.inTail?this.scrollTail(!0):this.scroll((this.options.wrap=="both"||this.options.wrap=="first")&&this.options.size!==null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(!this.locked&&!this.animating&&this.tail){this.pauseAuto();var c=f.intval(this.list.css(this.lt)), c=!a?c-this.tail:c+this.tail;this.inTail=!a;this.prevFirst=this.first;this.prevLast=this.last;this.animate(c)}},scroll:function(a,c){!this.locked&&!this.animating&&(this.pauseAuto(),this.animate(this.pos(a),c))},pos:function(a,c){var b=f.intval(this.list.css(this.lt));if(this.locked||this.animating)return b;this.options.wrap!="circular"&&(a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a);for(var d=this.first>a,g=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(g): this.get(this.last),e=d?g:g-1,h=null,i=0,k=!1,l=0;d?--e>=a:++e<a;){h=this.get(e);k=!h.length;if(h.length===0&&(h=this.create(e).addClass(this.className("jcarousel-item-placeholder")),j[d?"before":"after"](h),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size)))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)));j=h;l=this.dimension(h);k&&(i+=l);if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<= this.options.size)))b=d?b+l:b-l}for(var g=this.clipping(),m=[],o=0,n=0,j=this.get(a-1),e=a;++o;){h=this.get(e);k=!h.length;if(h.length===0){h=this.create(e).addClass(this.className("jcarousel-item-placeholder"));if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))}j=h;l=this.dimension(h);if(l===0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting..."); this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size?m.push(h):k&&(i+=l);n+=l;if(n>=g)break;e++}for(h=0;h<m.length;h++)m[h].remove();i>0&&(this.list.css(this.wh,this.dimension(this.list)+i+"px"),d&&(b-=i,this.list.css(this.lt,f.intval(this.list.css(this.lt))-i+"px")));i=a+o-1;if(this.options.wrap!="circular"&&this.options.size&&i>this.options.size)i=this.options.size;if(e>i){o=0;e=i;for(n=0;++o;){h=this.get(e--);if(!h.length)break;n+=this.dimension(h);if(n>=g)break}}e=i-o+ 1;this.options.wrap!="circular"&&e<1&&(e=1);if(this.inTail&&d)b+=this.tail,this.inTail=!1;this.tail=null;if(this.options.wrap!="circular"&&i==this.options.size&&i-o+1>=1&&(d=f.intval(this.get(i).css(!this.options.vertical?"marginRight":"marginBottom")),n-d>g))this.tail=n-g-d;if(c&&a===this.options.size&&this.tail)b-=this.tail,this.inTail=!0;for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=i;return b},animate:function(a,c){if(!this.locked&& !this.animating){this.animating=!0;var b=this,d=function(){b.animating=!1;a===0&&b.list.css(b.lt,0);!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last<b.options.size||b.last==b.options.size&&b.tail!==null&&!b.inTail)&&b.startAuto();b.buttons();b.notify("onAfterAnimation");if(b.options.wrap=="circular"&&b.options.size!==null)for(var c=b.prevFirst;c<=b.prevLast;c++)c!==null&&!(c>=b.first&&c<=b.last)&&(c<1||c>b.options.size)&&b.remove(c)}; this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,a+"px"),d();else{var f=!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},d={duration:this.options.animation,easing:this.options.easing,complete:d};if(g.isFunction(this.options.animationStepCallback))d.step=this.options.animationStepCallback;this.list.animate(f,d)}}},startAuto:function(a){if(a!==void 0)this.options.auto=a;if(this.options.auto===0)return this.stopAuto();if(this.timer===null){this.autoStopped= !1;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=!0},pauseAuto:function(){if(this.timer!==null)window.clearTimeout(this.timer),this.timer=null},buttons:function(a,c){if(a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last<this.options.size),!this.locked&&(!this.options.wrap||this.options.wrap=="first")&&this.options.size!==null&& this.last>=this.options.size))a=this.tail!==null&&!this.inTail;if(c==null&&(c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1))c=this.tail!==null&&this.inTail;var b=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext), this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev), c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[c?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b,null,c);this.buttonNextState= a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst<this.first?"next":"prev";this.callback("itemLoadCallback",a,c);this.prevFirst!==this.first&&(this.callback("itemFirstInCallback",a,c,this.first),this.callback("itemFirstOutCallback",a,c,this.prevFirst));this.prevLast!==this.last&&(this.callback("itemLastInCallback",a,c,this.last),this.callback("itemLastOutCallback",a,c,this.prevLast));this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst, this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(a,c,b,d,f,j,e){if(!(this.options[a]==null||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var h=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(g.isFunction(h)){var i=this;if(d===void 0)h(i,b,c);else if(f===void 0)this.get(d).each(function(){h(i,this,d,b,c)});else for(var a=function(a){i.get(a).each(function(){h(i,this,a,b,c)})},k=d;k<=f;k++)k!== null&&!(k>=j&&k<=e)&&a(k)}}},create:function(a){return this.format("<li></li>",a)},format:function(a,c){for(var a=g(a),b=a.get(0).className.split(" "),d=0;d<b.length;d++)b[d].indexOf("jcarousel-")!=-1&&a.removeClass(b[d]);a.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")}, dimension:function(a,c){var b=g(a);if(c==null)return!this.options.vertical?b.outerWidth(!0)||f.intval(this.options.itemFallbackDimension):b.outerHeight(!0)||f.intval(this.options.itemFallbackDimension);else{var d=!this.options.vertical?c-f.intval(b.css("marginLeft"))-f.intval(b.css("marginRight")):c-f.intval(b.css("marginTop"))-f.intval(b.css("marginBottom"));g(b).css(this.wh,d+"px");return this.dimension(b)}},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-f.intval(this.clip.css("borderLeftWidth"))- f.intval(this.clip.css("borderRightWidth")):this.clip[0].offsetHeight-f.intval(this.clip.css("borderTopWidth"))-f.intval(this.clip.css("borderBottomWidth"))},index:function(a,c){if(c==null)c=this.options.size;return Math.round(((a-1)/c-Math.floor((a-1)/c))*c)+1}});f.extend({defaults:function(a){return g.extend(q,a||{})},intval:function(a){a=parseInt(a,10);return isNaN(a)?0:a},windowLoaded:function(){m=!0}});g.fn.jcarousel=function(a){if(typeof a=="string"){var c=g(this).data("jcarousel"),b=Array.prototype.slice.call(arguments, 1);return c[a].apply(c,b)}else return this.each(function(){var b=g(this).data("jcarousel");b?(a&&g.extend(b.options,a),b.reload()):g(this).data("jcarousel",new f(this,a))})}})(jQuery);
+
+
+/* 9/2/2011
+ PikaChoose
+ Jquery plugin for photo galleries
+ Copyright (C) 2011 Jeremy Fry
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+(function($) {
+ /**
+ * Creates a slideshow for all matched elements.
+ *
+ * @example $("#pikame").PikaChoose();
+ * @input needed <ul id="pikame"><li><img src="first.jpg"><span>Caption</span></li><li><img src="second.jpg"><span>Caption</span></li></ul>
+ *
+ * @method PikaChoose
+ * @return $
+ * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance.
+ */
+ var defaults = {
+ autoPlay: true,
+ speed: 5000,
+ text: { play: "", stop: "", previous: "Previous", next: "Next" },
+ transition:[1],
+ showCaption: true,
+ IESafe: false,
+ showTooltips: false,
+ carousel: false,
+ carouselVertical: false,
+ animationFinished: null,
+ buildFinished: null,
+ bindFinished: null,
+ startOn: 0,
+ thumbOpacity: 0.4,
+ hoverPause: false,
+ animationSpeed: 600
+ };
+
+ $.fn.PikaChoose = function(o) {
+ return this.each(function() {
+ $(this).data('pikachoose', new $pc(this, o));
+ });
+ };
+
+ /**
+ * The PikaChoose object.
+ *
+ * @constructor
+ * @class pikachoose
+ * @param e {HTMLElement} The element to create the carousel for.
+ * @param o {Object} A set of key/value pairs to set as configuration properties.
+ * @cat Plugins/PikaChoose
+ */
+ $.PikaChoose = function(e, o) {
+ this.options = $.extend({}, defaults, o || {});
+ this.list = null;
+ this.image = null;
+ this.anchor = null;
+ this.caption = null;
+ this.imgNav = null;
+ this.imgPlay = null;
+ this.imgPrev = null;
+ this.imgNext = null;
+ this.textNext = null;
+ this.textPrev = null;
+ this.previous = null;
+ this.next = null;
+ this.aniWrap = null;
+ this.aniDiv = null;
+ this.aniImg = null;
+ this.thumbs = null;
+ this.transition = null;
+ this.active = null;
+ this.tooltip = null;
+ this.animating = false;
+ this.stillOut = null;
+ this.counter = null;
+ this.timeOut = null;
+ if(typeof(this.options.data) != "undefined"){
+ //user passed a data source
+ e = $("<ul></ul>").appendTo(e);
+ $.each(this.options.data,function(){
+ if(typeof(this.link) != "undefined"){
+ var tmp = $("<li><a href='"+this.link+"'><img></a></li>").appendTo(e);
+ if(typeof(this.title) != "undefined"){ tmp.find('a').attr('title',this.title); }
+ }else{
+ var tmp = $("<li><img></li>").appendTo(e);
+ }
+ if(typeof(this.caption) != "undefined"){ tmp.append("<span>"+this.caption+"</span>"); }
+ if(typeof(this.thumbnail) != "undefined"){
+ tmp.find('img').attr('ref',this.image);
+ tmp.find('img').attr('src',this.thumbnail);
+ }else{
+ tmp.find('img').attr('src',this.image);
+ }
+ });
+ }
+ if(e.nodeName == 'UL' || e.nodeName == 'OL' || e instanceof jQuery) {
+ this.list = $(e);
+ this.build();
+ this.bindEvents();
+ }else{
+ return;
+ }
+
+ var y = 0;
+ var x = 0;
+ for(var t = 0; t<25;t++){
+ var a = '<div col="'+y+'" row="'+x+'"></div>';
+ this.aniDiv.append(a);
+ y++;
+ if(y == 5){
+ x++;
+ y=0;
+ }
+ }
+
+ };//end PikaChoose function(e, o)
+
+ var $pc = $.PikaChoose;
+ $pc.fn = $pc.prototype = {
+ pikachoose: '4.3.3'
+ };
+
+ $.fn.pikachoose = $.fn.PikaChoose;
+
+ $pc.fn.extend = $pc.extend = $.extend;
+
+ $pc.fn.extend({
+ /**
+ * Builds the gallery structure.
+ *
+ * @method build
+ * @return undefined
+ */
+ build: function() {
+ this.step = 0; //transition step count
+ //create the structure for pikachoose
+ this.wrap = $("<div id='zoom' class='pika-stage'></div>").insertBefore(this.list);
+ this.image = $("<img>").appendTo(this.wrap);
+ this.imgNav = $("<div class='pika-imgnav'></div>").insertAfter(this.image);
+ this.imgPlay = $("<a></a>").appendTo(this.imgNav);
+ this.counter = $("<span class='pika-counter'></span>").appendTo(this.imgNav);
+ if(this.options.autoPlay){ this.imgPlay.addClass('pause'); }else{ this.imgPlay.addClass('play'); }
+ this.imgPrev = $("<a class='previous'></a>").insertAfter(this.imgPlay);
+ this.imgNext = $("<a class='next'></a>").insertAfter(this.imgPrev);
+ this.caption = $("<div class='caption'></div>").insertAfter(this.imgNav).hide();
+ this.tooltip = $("<div class='pika-tooltip'></div>").insertAfter(this.list).hide();
+ this.aniWrap = $("<div class='pika-aniwrap'></div>").insertAfter(this.caption);
+ this.aniImg = $("<img>").appendTo(this.aniWrap).hide();
+ this.aniDiv = $("<div class='pika-ani'></div>").appendTo(this.aniWrap);
+ this.textNav = $("<div class='pika-textnav'></div>").insertAfter(this.aniWrap);
+ this.textPrev = $("<a class='previous'>"+this.options.text.previous+"</a>").appendTo(this.textNav);
+ this.textNext = $("<a class='next'>"+this.options.text.next+"</a>").appendTo(this.textNav);
+ this.list.addClass('pika-thumbs');
+ this.list.children('li').wrapInner("<div class='clip' />");
+ this.thumbs = this.list.find('img');
+ this.active = this.thumbs.eq(this.options.startOn);
+ //fill in info for first image
+ this.finishAnimating({'source':this.active.attr('ref') || this.active.attr('src'),'caption':this.active.parents('li:first').find('span:first').html(), 'clickThrough':this.active.parent().attr('href') || "", 'clickThroughTitle':this.active.parent().attr('title') || ""});
+
+ //process all the thumbnails
+ var self = this;
+ this.thumbs.each(function(){
+ self.createThumb($(this),self);
+ });
+
+ if(this.options.carousel){
+ this.list.jcarousel({vertical:this.options.carouselVertical, initCallback: function(carousel){
+ jQuery(carousel.list).find('img').click(function(e,x) {
+ if(typeof(x) !== 'undefined' && x.how == "auto"){
+ if(self.options.autoPlay == false){
+ return false;
+ }
+ }
+ var clicked = parseInt(jQuery(this).parents('.jcarousel-item').attr('jcarouselindex'));
+ var last = (jQuery(this).parents('ul').find('li:last').index() == clicked-1) ? true : false;
+ if(!last){
+ clicked = (clicked-2<=0) ? 0 : clicked-2;
+ }
+ clicked++;
+ carousel.scroll(clicked);
+ });
+ }});
+ }
+
+ if(typeof(this.options.buildFinished) == 'function'){
+ this.options.buildFinished(this);
+ }
+ }, //end setup
+ /**
+ * proccesses thumbnails
+ *
+ * @method createThumb
+ * @return undefined
+ */
+ createThumb: function(ele) {
+ var self = ele;
+ var that = this;
+ self.hide();
+
+ //store all the data with the image
+ $.data(ele[0],'clickThrough',self.parent('a').attr('href') || "");
+ $.data(ele[0],'clickThroughTitle',self.parent('a').attr('title') || "");
+ if(self.parent('a').length > 0){ self.unwrap(); }
+ $.data(ele[0],'caption',self.next('span').html() || "");
+ self.next('span').remove();
+ $.data(ele[0],'source',self.attr('ref') || self.attr('src'));
+
+ //gets each items index to iterate through them. Thanks to Tushar for the fix.
+ $.data(ele[0],'order',self.closest('ul').find('li').index(self.parents('li')));
+ //pass data so it can enter the load scope
+ var data = $.data(ele[0]);
+ $('<img />').bind('load',{data:data},function(){
+ if(typeof(that.options.buildThumbStart) == 'function'){
+ that.options.buildThumbStart(that);
+ }
+ //in this scope self refers to the image
+ var img = $(this);
+ var w = this.width;
+ var h = this.height;
+ if(w===0){w = img.attr("width");}
+ if(h===0){h = img.attr("height");}
+ //grab a ratio for image to user defined settings
+ var rw = parseInt(self.parents('.clip').css('width').slice(0,-2))/w;
+ var rh = parseInt(self.parents('.clip').css('height').slice(0,-2))/h;
+ //determine which has the smallest ratio (thus needing
+ //to be the side we use to scale so our whole thumb is filled)
+ var ratio;
+ if(rw<rh){
+ //we'll use ratio later to scale and not distort
+ ratio = rh;
+ var left = ((w*ratio- parseInt(self.parents('.clip').css('width').slice(0,-2)))/2)*-1;
+ left = Math.round(left);
+ self.css({left:left});
+ }else{
+ ratio = rw;
+ self.css({top:0});
+ }
+ //use those ratios to calculate scale
+ var width = Math.round(w*ratio);
+ var height = Math.round(h*ratio);
+ self.css("position","relative");
+ var imgcss={
+ width: width+"px",
+ height: height+"px"
+ };
+ self.css(imgcss);
+ self.hover(
+ function(e){
+ clearTimeout(that.stillOut);
+ $(this).stop(true,true).fadeTo(250,1);
+ if(!that.options.showTooltips){ return; }
+ that.tooltip.show().stop(true,true).html(data.caption).animate({top:$(this).parent().position().top, left:$(this).parent().position().left, opacity: 1.0},'fast');
+ },
+ function(e){
+ if(!$(this).hasClass("active")){$(this).stop(true,true).fadeTo(250,that.options.thumbOpacity);
+ that.stillOut = setTimeout(that.hideTooltip,700);
+ }}
+ );
+
+
+ if(data.order == that.options.startOn){
+ self.fadeTo(250,1);
+ self.addClass('active');
+ self.parents('li').eq(0).addClass('active');
+ }else{
+ self.fadeTo(250,that.options.thumbOpacity);
+ }
+ if(typeof(that.options.buildThumbFinish) == 'function'){
+ that.options.buildThumbFinish(that);
+ }
+ }).attr('src',self.attr('src'));
+ },//end createThumb
+ /**
+ * proccesses thumbnails
+ *
+ * @method bindEvents
+ * @return undefined
+ */
+ bindEvents: function() {
+ this.thumbs.bind('click',{self:this},this.imgClick);
+ this.imgNext.bind('click',{self:this},this.nextClick);
+ this.textNext.bind('click',{self:this},this.nextClick);
+ this.imgPrev.bind('click',{self:this},this.prevClick);
+ this.textPrev.bind('click',{self:this},this.prevClick);
+ this.imgPlay.bind('click',{self:this},this.playClick);
+ this.wrap.bind('mouseenter',{self:this},function(e){
+ e.data.self.imgNav.stop(true,true).fadeIn('slow');
+ if(e.data.self.options.hoverPause == true){
+ clearTimeout(e.data.self.timeOut);
+ }
+ });
+ this.wrap.bind('mouseleave',{self:this},function(e){
+ e.data.self.imgNav.stop(true,true).fadeOut('slow');
+ if(e.data.self.options.autoPlay == true && e.data.self.options.hoverPause){
+ e.data.self.timeOut = setTimeout((function(self){
+ return function(){ self.nextClick(); };
+ })(e.data.self), e.data.self.options.speed);
+ }
+ });
+ this.tooltip.bind('mouseenter',{self:this},function(e){
+ clearTimeout(e.data.self.stillOut);
+ });
+ this.tooltip.bind('mouseleave',{self:this},function(e){
+ e.data.self.stillOut = setTimeout(e.data.self.hideTooltip,700);
+ });
+ if(typeof(this.options.bindsFinished) == 'function'){
+ this.options.bindsFinished(this);
+ }
+ },//end bind event
+ /**
+ * hides tooltip
+ *
+ * @method hideTooltip
+ * @return undefined
+ */
+ hideTooltip: function (e){
+ $(".pika-tooltip").animate({opacity:0.01});
+ },
+ /**
+ * handles gallery after aclick occurs. and sets active classes
+ *
+ * @method imgClick
+ * @return undefined
+ */
+ imgClick: function(e,x) {
+ var self = e.data.self;
+ var data = $.data(this);
+ if(self.animating){return;}
+ if(typeof(x) == 'undefined' || x.how != "auto"){
+ //arrive here if natural click
+ if(self.options.autoPlay){
+ self.imgPlay.trigger('click');
+ }
+ }else{
+ if(self.options.autoPlay == false){
+ return false;
+ }
+ }
+ self.caption.fadeOut('slow');
+ self.animating = true;
+ self.active.fadeTo(300,self.options.thumbOpacity).removeClass('active');
+ self.active.parents('.active').eq(0).removeClass('active');
+ self.active = $(this);
+ self.active.addClass('active').fadeTo(200,1);
+ self.active.parents('li').eq(0).addClass('active');
+ $('<img />').bind('load', {self:self,data:data}, function(){
+ //in this scope self referes to the PikaChoose object
+ self.aniDiv.css({height:self.image.height(),width:self.image.width()}).fadeIn('fast');
+ self.aniDiv.children('div').css({'width':'20%','height':'20%','float':'left'});
+
+ //decide our transition
+ var n = 0;
+ if(self.options.transition[0] == -1){
+ //random
+ n = Math.floor(Math.random()*7)+1;
+ }else{
+ n = self.options.transition[self.step];
+ self.step++;
+ if(self.step >= self.options.transition.length){self.step=0;}
+ }
+ if(self.options.IESafe && $.browser.msie){ n = 1; }
+ self.doAnimation(n,data);
+
+ }).attr('src',$.data(this).source);//end image preload
+ },//end bindEvents
+ doAnimation: function(n,data){
+ var self = this; //self in this scope refers to PikaChoose object. Needed for callbacks on animations
+ self.image.stop(true,false);
+ self.caption.stop().fadeOut();
+ var aWidth = self.aniDiv.children('div').eq(0).width();
+ var aHeight = self.aniDiv.children('div').eq(0).height();
+ var img = new Image();
+ $(img).attr('src',data.source);
+ if(img.height != self.image.height() || img.width != self.image.width()){
+ //Your images are not the same height? Well you get limited on transitions
+ if(n != 0 && n != 1 && n != 7){
+ n = 1;
+ }
+ }
+ self.aniDiv.css({height:img.height,width:img.width});
+ self.aniDiv.children().each(function(){
+ //position myself absolutely
+ var div = $(this);
+ var xOffset = Math.floor(div.parent().width()/5)*div.attr('col');
+ var yOffset = Math.floor(div.parent().height()/5)*div.attr('row');
+ div.css({
+ 'background':'url('+data.source+') -'+xOffset+'px -'+yOffset+'px',
+ 'width':'0px',
+ 'height':'0px',
+ 'position':'absolute',
+ 'top':yOffset+'px',
+ 'left':xOffset+'px',
+ 'float':'none'
+ });
+ });//end ani_divs.children.each
+ self.aniDiv.hide();
+ self.aniImg.hide();
+
+ switch(n){
+ case 0:
+ //fade out then in
+ self.image.stop(true,true).fadeOut(self.options.animationSpeed,function(){
+ self.image.attr('src',data.source).fadeIn(self.options.animationSpeed,function(){
+ self.finishAnimating(data);
+ });
+ });
+
+ break;
+ case 1:
+ //full frame fade
+ self.aniDiv.hide();
+ self.aniImg.height(self.image.height()).hide().attr('src',data.source);
+ $.when(
+ self.image.fadeOut(self.options.animationSpeed),
+ self.aniImg.eq(0).fadeIn(self.options.animationSpeed)).done(function(){
+ self.finishAnimating(data);
+ });
+
+ break;
+ case 2:
+ self.aniDiv.show().children().hide().each(function(index){
+ //animate out as blocks
+ var delay = index*30;
+ $(this).css({opacity: 0.1}).show().delay(delay).animate({opacity: 1,"width":aWidth,"height":aHeight},200,'linear',function(){
+ if(self.aniDiv.find("div").index(this) == 24){
+ self.finishAnimating(data);
+ }
+ });
+ });
+ break;
+ case 3:
+ self.aniDiv.show().children("div:lt(5)").hide().each(function(index){
+ var delay = $(this).attr('col')*100;
+ $(this).css({opacity:0.1,"width":aWidth}).show().delay(delay).animate({opacity:1,"height":self.image.height()},self.options.animationSpeed,'linear',function(){
+ if(self.aniDiv.find(" div").index(this) == 4){
+ self.finishAnimating(data);
+ }
+ });
+ });
+ break;
+ case 4:
+ self.aniDiv.show().children().hide().each(function(index){
+ if(index>4){ return; }
+ var delay = $(this).attr('col')*10;
+ aHeight = self.gapper($(this), aHeight);
+ $(this).css({opacity:0.1,"height":"100%"}).show().animate({opacity:1,"width":aWidth},self.options.animationSpeed,'linear',function(){
+ if(self.aniDiv.find(" div").index(this) == 4){
+ self.finishAnimating(data);
+ }
+ });
+ });
+ break;
+ case 5:
+ self.aniDiv.show().children().show().each(function(index){
+ var delay = index*Math.floor(Math.random()*5)*7;
+ aHeight = self.gapper($(this), aHeight);
+
+ if($(".animation div").index(this) == 24){
+ delay = 600;
+ }
+ $(this).css({"height":aHeight,"width":aWidth,"opacity":.01}).delay(delay).animate({"opacity":1},self.options.animationSpeed,function(){
+ if(self.aniDiv.find(" div").index(this) == 24){
+ self.finishAnimating(data);
+ }
+ });
+ });
+ break;
+ case 6:
+ //full frame slide
+ self.aniDiv.height(self.image.height()).hide().css({'background':'url('+data.source+') top left no-repeat'});
+ self.aniDiv.children('div').hide();
+ self.aniDiv.css({width:0}).show().animate({width:self.image.width()},self.options.animationSpeed,function(){
+ self.finishAnimating(data);
+ self.aniDiv.css({'background':'transparent'});
+ });
+ break;
+ case 7:
+ //side in slide
+ self.wrap.css({overflow:'hidden'});
+ self.aniImg.height(self.image.height()).hide().attr('src',data.source);
+ self.aniDiv.hide();
+ self.image.css({position:'relative'}).animate({left:"-"+self.wrap.outerWidth()+"px"});
+ self.aniImg.show();
+ self.aniWrap.css({left:self.wrap.outerWidth()}).show().animate({left:"0px"},self.options.animationSpeed,function(){
+ self.finishAnimating(data);
+ });
+ break;
+ }
+
+ },//end doAnimation
+ finishAnimating: function(data){
+ this.animating = false;
+ this.image.attr('src',data.source);
+ this.image.css({left:"0"});
+ this.image.show();
+ var self = this;
+ $('<img />').bind('load',function(){
+ self.aniImg.hide();
+ self.aniDiv.hide();
+ }).attr('src',data.source);
+ var cur = this.list.find('img').index(this.active);
+ cur++;
+ var total = this.list.find('img').length;
+ this.counter.html(cur+"/"+total);
+ if(data.clickThrough != ""){
+ if(this.anchor == null){
+ this.anchor = this.image.wrap("<a>").parent();
+ }
+ this.anchor.attr('href',data.clickThrough);
+ this.anchor.attr('title',data.clickThroughTitle);
+ }else{
+ if(this.image.parent('a').length > 0){ this.image.unwrap(); }
+ this.anchor = null;
+ }
+ if(this.options.showCaption && data.caption != "" && data.caption != null){
+ this.caption.html(data.caption).fadeTo('slow',1);
+ }
+ if(this.options.autoPlay == true){
+ var self = this;
+ this.timeOut = setTimeout((function(self){
+ return function(){ self.nextClick(); };
+ })(this), this.options.speed, this.timeOut);
+ }
+
+ if(typeof(this.options.animationFinished) == 'function'){
+ this.options.animationFinished(this);
+ }
+ },//end finishedAnimating
+ gapper: function(ele, aHeight){
+ if(ele.attr('row') == 9 && ele.attr('col') == 0){
+ //last row, check the gap and fix it!
+ var gap = ani_divs.height()-(aHeight*9);
+ return gap;
+ }
+ return aHeight;
+ },
+ nextClick : function(e){
+ var how = "natural";
+ try{
+ var self = e.data.self;
+ if(typeof(e.data.self.options.next) == 'function'){
+ e.data.self.options.next(this);
+ }
+ }catch(err){
+ var self = this;
+ how = "auto";
+ }
+ var next = self.active.parents('li:first').next().find('img');
+ if(next.length == 0){next = self.list.find('img').eq(0);};
+ next.trigger('click',{how:how});
+ },
+ prevClick : function(e){
+ if(typeof(e.data.self.options.previous) == 'function'){
+ e.data.self.options.previous(this);
+ }
+ var self = e.data.self;
+ var prev = self.active.parents('li:first').prev().find('img');
+ if(prev.length == 0){prev = self.list.find('img:last');};
+ prev.trigger('click');
+ },
+ playClick: function(e){
+ var self = e.data.self;
+ self.options.autoPlay = !self.options.autoPlay;
+ self.imgPlay.toggleClass('play').toggleClass('pause');
+ if(self.options.autoPlay){ self.nextClick(); }
+ }
+ }); //end extend
+
+})(jQuery);
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.scripts.js
===================================================================
--- branches/1.0.x/inc/js/jquery.scripts.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.scripts.js (revision 14600)
@@ -0,0 +1,71 @@
+$(document).ready(function()
+{
+ $('#change-password').bind('click', function() {
+ $("#password-show").hide();
+ $("#password-block").fadeIn();
+ return false;
+ });
+
+ $('#password').keyup(function(){
+ $('#result-password').html(passwordStrength($('#password').val())).show() ;
+ })
+
+ $("#lang").click(function() {
+ if ( $(this).parent().is(".plashka-sel") ) {
+ $(this).parent().removeClass("plashka-sel");
+ $("#lang-sel").fadeOut();
+ }
+ else
+ {
+ $(this).parent().addClass("plashka-sel");
+ $("#lang-sel").fadeIn();
+ }
+ return false;
+ });
+
+ $("#currency").click(function() {
+ if ( $(this).parent().is(".plashka-sel") ) {
+ $(this).parent().removeClass("plashka-sel");
+ $("#currency-sel").fadeOut();
+ }
+ else
+ {
+ $(this).parent().addClass("plashka-sel");
+ $("#currency-sel").fadeIn();
+ }
+ return false;
+ });
+
+ $("#login").click(function() {
+ if ( $(this).parent().is(".plashka-sel") ) {
+ $(this).parent().removeClass("plashka-sel");
+ $("#login-sel").fadeOut();
+ }
+ else
+ {
+ $(this).parent().addClass("plashka-sel");
+ $("#login-sel").fadeIn();
+ }
+ return false;
+ });
+
+ $("#login-alt").click(function() {
+ if ( $(this).parent().is(".plashka-sel") ) {
+ $(this).parent().removeClass("plashka-sel");
+ $("#login-alt-sel").fadeOut();
+ }
+ else
+ {
+ $(this).parent().addClass("plashka-sel");
+ $("#login-alt-sel").fadeIn();
+ }
+ return false;
+ });
+
+ $(".icon-close").click(function() {
+ $("#login,#login-alt").parent().removeClass("plashka-sel");
+ $("#login-sel,#login-alt-sel").fadeOut();
+ return false;
+ });
+
+});
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.contentcarousel.js
===================================================================
--- branches/1.0.x/inc/js/jquery.contentcarousel.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.contentcarousel.js (revision 14600)
@@ -0,0 +1,155 @@
+(function($) {
+ var cache = {},
+ aux = {
+ // navigates left / right
+ navigate : function( dir, $el, $wrapper, opts ) {
+ var scroll = opts.scroll,
+ factor = 1,
+ idxClicked = 0;
+
+ if( cache.expanded ) {
+ scroll = 1; // scroll is always 1 in full mode
+ factor = 3; // the width of the expanded item will be 3 times bigger than 1 collapsed item
+ idxClicked = cache.idxClicked; // the index of the clicked item
+ }
+
+ // clone the elements on the right / left and append / prepend them according to dir and scroll
+ if( dir === 1 ) {
+ $wrapper.find('div.good-item:lt(' + scroll + ')').each(function(i) {
+ $(this).clone(true).css( 'left', ( cache.totalItems - idxClicked + i ) * cache.itemW * factor + 'px' ).appendTo( $wrapper );
+ });
+ }
+ else {
+ var $first = $wrapper.children().eq(0);
+
+ $wrapper.find('div.good-item:gt(' + ( cache.totalItems - 1 - scroll ) + ')').each(function(i) {
+ // insert before $first so they stay in the right order
+ $(this).clone(true).css( 'left', - ( scroll - i + idxClicked ) * cache.itemW * factor + 'px' ).insertBefore( $first );
+ });
+ }
+
+ // animate the left of each item
+ // the calculations are dependent on dir and on the cache.expanded value
+ $wrapper.find('div.good-item').each(function(i) {
+ var $item = $(this);
+ $item.stop().animate({
+ left : ( dir === 1 ) ? '-=' + ( cache.itemW * factor * scroll ) + 'px' : '+=' + ( cache.itemW * factor * scroll ) + 'px'
+ }, opts.sliderSpeed, opts.sliderEasing, function() {
+ if( ( dir === 1 && $item.position().left < - idxClicked * cache.itemW * factor ) || ( dir === -1 && $item.position().left > ( ( cache.totalItems - 1 - idxClicked ) * cache.itemW * factor ) ) ) {
+ // remove the item that was cloned
+ $item.remove();
+ }
+ cache.isAnimating = false;
+ });
+ });
+
+ },
+ // gets the item's position (1, 2, or 3) on the viewport (the visible items)
+ // val is the left of the item
+ getWinPos : function( val ) {
+ switch( val ) {
+ case 0 : return 1; break;
+ case cache.itemW : return 2; break;
+ case cache.itemW * 2 : return 3; break;
+ }
+ }
+ },
+ methods = {
+ init : function( options ) {
+
+ if( this.length ) {
+
+ var settings = {
+ sliderSpeed : 500, // speed for the sliding animation
+ sliderEasing : 'easeOutExpo',// easing for the sliding animation
+ itemSpeed : 500, // speed for the item animation (open / close)
+ itemEasing : 'easeOutExpo',// easing for the item animation (open / close)
+ scroll : 1 // number of items to scroll at a time
+ };
+
+ return this.each(function() {
+
+ // if options exist, lets merge them with our default settings
+ if ( options ) {
+ $.extend( settings, options );
+ }
+
+ var $el = $(this),
+ $wrapper = $el.find('div.items'),
+ $items = $wrapper.children('div.good-item');
+
+ // save the with of one item
+ cache.itemW = $items.width();
+ // save the number of total items
+ cache.totalItems = $items.length;
+
+ // add navigation buttons
+ if( cache.totalItems > 3 )
+ $el.prepend('<div class="ca-nav"><span class="ca-nav-prev">Предыдущий</span><span class="ca-nav-next">Следующий</span></div>')
+
+ // control the scroll value
+ if( settings.scroll < 1 )
+ settings.scroll = 1;
+ else if( settings.scroll > 3 )
+ settings.scroll = 3;
+
+ var $navPrev = $el.find('span.ca-nav-prev'),
+ $navNext = $el.find('span.ca-nav-next');
+
+ // hide the items except the first 3
+ $wrapper.css( 'overflow', 'hidden' );
+
+ // the items will have position absolute
+ // calculate the left of each item
+ $items.each(function(i) {
+ $(this).css({
+ position : 'absolute',
+ left : i * cache.itemW + 'px'
+ });
+ });
+
+ // navigate left
+ $navPrev.bind('click.contentcarousel', function( event ) {
+ if( cache.isAnimating ) return false;
+ cache.isAnimating = true;
+ aux.navigate( -1, $el, $wrapper, settings );
+ });
+
+ // navigate right
+ $navNext.bind('click.contentcarousel', function( event ) {
+ if( cache.isAnimating ) return false;
+ cache.isAnimating = true;
+ aux.navigate( 1, $el, $wrapper, settings );
+ });
+
+ // adds events to the mouse
+ $el.bind('mousewheel.contentcarousel', function(e, delta) {
+ if(delta > 0) {
+ if( cache.isAnimating ) return false;
+ cache.isAnimating = true;
+ aux.navigate( -1, $el, $wrapper, settings );
+ }
+ else {
+ if( cache.isAnimating ) return false;
+ cache.isAnimating = true;
+ aux.navigate( 1, $el, $wrapper, settings );
+ }
+ return false;
+ });
+
+ });
+ }
+ }
+ };
+
+ $.fn.contentcarousel = function(method) {
+ if ( methods[method] ) {
+ return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
+ } else if ( typeof method === 'object' || ! method ) {
+ return methods.init.apply( this, arguments );
+ } else {
+ $.error( 'Method ' + method + ' does not exist on jQuery.contentcarousel' );
+ }
+ };
+
+})(jQuery);
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.gzoom.js
===================================================================
--- branches/1.0.x/inc/js/jquery.gzoom.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.gzoom.js (revision 14600)
@@ -0,0 +1,301 @@
+/*!
+ * jQuery gzoom 0.1
+ * 2009 Giovanni Battista Lenoci <gianiaz@gianiaz.net>
+ *
+ * Based on minizoomPan plugin of Gian Carlo Mingati Version: 1.0 (18-JUNE-2009) http://www.gcmingati.net/wordpress/wp-content/lab/jquery/minizoompan/
+ * Inspiration from jquery lightbox plugin http://leandrovieira.com/projects/jquery/lightbox/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * Requires:
+ * jQuery v1.3.2 or later
+ * jQuery ui.core.js v.1.7.1
+ * jQuery ui.slider.js v.1.7.1
+ *
+ */
+jQuery.fn.gzoom = function(settings) {
+ settings = jQuery.extend({
+ sW: 10, // small image width
+ sH: 10, // small image height
+ lW: 20, // large image width
+ lH: 20, // large image height
+ step : 5,
+ frameColor: "#cecece",
+ frameWidth: 1,
+ re : /thumbs\//,
+ replace : '',
+ debug : false,
+ overlayBgColor : '#000',
+ overlayOpacity:0.8,
+ containerBorderSize: 10,
+ containerResizeSpeed : 400,
+ loaderContent: "loading...", // plain text or an image tag eg.: "<img src='yoursite.com/spinner.gif' />"
+ lightbox: false,
+ zoomIcon : "" // icon url, if not empty shown on the right-top corner of the image
+ }, settings);
+
+ return this.each(function(){
+
+ var swapped = false;
+
+ var $div = jQuery(this).css({width: settings.sW, height: settings.sH, overflow:'hidden'}).addClass("minizoompan");
+ $div.wrap('<div class="gzoomwrap"></div>').css({ width:settings.sW });
+ var ig = $div.children().css({position: "relative"});
+
+ jQuery(window).bind("load", function() {
+ ig.width(settings.sW);
+ ig.height(settings.sH);
+ });
+
+
+ jQuery("<span class='loader'>"+settings.loaderContent+"<\/span>").insertBefore(ig);
+ if(settings.zoomIcon != '' && settings.lightbox) {
+ var $zoom = jQuery('<img class="zoomIcon" src="'+settings.zoomIcon+'" alt="view larger" />').insertBefore(ig);
+ $zoom.load(function() {
+ $zoom.css({'left':(settings.sW - $zoom.width())+'px'}).show();
+ });
+ $zoom.click(function() {
+ drawIface();
+ });
+ } else if(settings.lightbox) {
+ $div.click(function() {
+ drawIface();
+ });
+ $div.css({'cursor':'pointer'});
+ }
+
+ var $plus = jQuery('<div class="ui-icon ui-icon-circle-plus gzoombutton">&nbsp;</div>').insertAfter($div);
+ var $slider = jQuery('<div class="gzoomSlider"></div>').insertAfter($div).css({ width:(settings.sW-42)+'px'});
+ var $minus = jQuery('<div class="ui-icon ui-icon-circle-minus gzoombutton">&nbsp;</div>').insertAfter($div);
+
+ $plus.click(function() {
+ valore = parseInt($slider.slider('value')) + settings.step;
+ $slider.slider('value', valore);
+ });
+
+ $minus.click(function() {
+ valore = parseInt($slider.slider('value')) - settings.step;
+ $slider.slider('value', valore);
+ });
+
+ $slider.slider({value:0,
+ min: 0,
+ max: 100,
+ step: settings.step,
+ change: function(event, ui) {
+
+ if(!swapped) {
+ var hiSrc = ig.attr("src").replace(settings.re, settings.replace);
+ swapImage(ig, hiSrc);
+ $div.children("span.loader").fadeIn(250);
+ swapped = true;
+ }
+
+ val = ui.value;
+
+ newWidth = settings.sW+((settings.lW-settings.sW)*val)/100;
+ newHeight = settings.sH+((settings.lH-settings.sH)*val)/100;
+ ig_pos = ig.position();
+
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('new dimensions:'+newWidth+'x'+newHeight);
+ }
+
+ deltaWidth = ig.width()-settings.sW;
+ leftPos = Math.abs(ig_pos.left);
+ leftFactor = leftPos/deltaWidth;
+ newDeltaWidth = newWidth-settings.sW;
+ newLeft = (leftFactor*newDeltaWidth)*-1;
+
+ deltaHeight = ig.height()-settings.sH;
+ topPos = Math.abs(ig_pos.top);
+ topFactor = topPos/deltaHeight;
+ newDeltaHeight = newHeight-settings.sH;
+ newTop = (topFactor*newDeltaHeight)*-1;
+ ig.css({ width: newWidth, height: newHeight, left:newLeft, top:newTop});
+ }
+ });
+ $('<br style="clear:both" />').insertAfter($plus);
+
+ function swapImage(param, uri){
+ param.load(function () {
+ $div.children("span.loader").fadeOut(250);
+ }).error(function (){
+ alert("Image does not exist or its SRC is not correct.");
+ }).attr('src', uri);
+ }
+
+ $div.mousemove(function(e){
+ var divWidth = $div.width();
+ var divHeight = $div.height();
+ var igW = ig.width();
+ var igH = ig.height();
+ var dOs = $div.offset();
+ var leftPan = (e.pageX - dOs.left) * (divWidth - igW) / (divWidth+settings.frameWidth*2);
+ var topPan = (e.pageY - dOs.top) * (divHeight - igH) / (divHeight+settings.frameWidth*2);
+
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('left:'+leftPan+'|Top:'+topPan);
+ }
+
+ ig.css({left: leftPan, top: topPan});
+ });
+
+ if(typeof($.event.special.mousewheel) != 'undefined') {
+ ig.mousewheel(function(event, delta) {
+ if (delta > 0) {
+ valore = parseInt($slider.slider('value')) + settings.step;
+ $slider.slider('value', valore);
+ } else if (delta < 0) {
+ valore = parseInt($slider.slider('value')) - settings.step;
+ $slider.slider('value', valore);
+ }
+ return false; // prevent default
+ });
+ }
+
+ function resize_fx(intImageWidth,intImageHeight) {
+
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('resize_fx('+intImageWidth+','+intImageHeight+')');
+ }
+
+ if(intImageWidth > ($(window).width()*80/100)) {
+ imgWidth = $(window).width()*80/100;
+ intImageHeight = (imgWidth/intImageWidth)*intImageHeight;
+ $('#zoomedimage').css({'width': imgWidth+'px', 'height':intImageHeight});
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('Img dimensions 80% horizontal:'+imgWidth+'x'+intImageHeight);
+ }
+ } else {
+ imgWidth = intImageWidth;
+ }
+
+ if(intImageHeight > $(window).height()*80/100) {
+ imgHeight = $(window).height()*80/100;
+ imgWidth = (imgHeight/intImageHeight)*imgWidth;
+ $('#zoomedimage').css({'width': imgWidth+'px', 'height':imgHeight});
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('Img dimensions 80% vertical:'+imgWidth+'x'+imgHeight);
+ }
+ } else {
+ imgHeight = intImageHeight;
+ }
+
+ if(settings.debug && typeof(console) != 'undefined') {
+ console.log('Img dimensions:'+imgWidth+'x'+imgHeight);
+ }
+
+ // Get current width and height
+ var intCurrentWidth = $('#imagebox').width();
+ var intCurrentHeight = $('#imagebox').height();
+ // Get the width and height of the selected image plus the padding
+ var intWidth = (imgWidth + (settings.containerBorderSize * 2)); // Plus the imageŽs width and the left and right padding value
+ var intHeight = (imgHeight + (settings.containerBorderSize * 2)); // Plus the imageŽs height and the left and right padding value
+
+
+
+ // Diferences
+ var intDiffW = intCurrentWidth - intWidth;
+ var intDiffH = intCurrentHeight - intHeight;
+ // Perfomance the effect
+ $('#imagebox').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
+ if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
+ if ( $.browser.msie ) {
+ ___pause(250);
+ } else {
+ ___pause(100);
+ }
+ }
+ $('#lboximgdatacontainer').css({ width: imgWidth });
+ };
+
+ function drawIface() {
+
+ $('body').append('<div id="gzoomoverlay"></div><div id="gzoomlbox"><div id="imagebox"><div id="gzoom-cont-img"><img id="zoomedimage"><div id="gzoomloading"><a href="#" id="gzoomloadinglink"><img src="images/loading.gif"></a></div></div></div><div id="gzoomlbox-con-imgdata"><div id="lboximgdatacontainer"><div id="gzoomlbox-image-details"><span id="gzoom-image-caption"></span></div></div></div></div>');
+
+ $('#gzoomoverlay').css({
+ backgroundColor: settings.overlayBgColor,
+ opacity: settings.overlayOpacity,
+ width: $(window).width(),
+ height: $(document).height()
+ }).fadeIn();
+
+ // Calculate top and left offset for the gzoomlbox div object and show it
+ $('#gzoomlbox').css({
+ top: $(window).scrollTop() + ($(window).height() / 10),
+ left: $(window).scrollLeft()
+ }).show();
+
+ $('#gzoomoverlay,#gzoomlbox').click(function() {
+ close();
+ });
+ // If window was resized, calculate the new overlay dimensions
+ $(window).resize(function() {
+ $('#gzoomoverlay').css({
+ width: $(window).width(),
+ height: $(window).height()
+ });
+ // Calculate top and left offset for the jquery-lightbox div object and show it
+ $('#gzoomlbox').css({
+ top: $(window).scrollTop() + ($(window).height() / 10),
+ left: $(window).scrollLeft()
+ });
+ });
+
+ _set_image_to_view();
+ }
+
+ function _set_image_to_view() { // show the loading
+ // Show the loading
+ $('#gzoomlbox-con-imgdata').hide();
+ $('#zoomedimage').hide();
+ $('#gzoomloading').show();
+ // Image preload process
+ var objImagePreloader = new Image();
+ if(!swapped) {
+ var hiSrc = ig.attr("src").replace(settings.re, settings.replace);
+ } else {
+ var hiSrc = ig.attr("src").replace(settings.re, settings.replace);
+ }
+ objImagePreloader.onload = function() {
+ $('#zoomedimage').attr('src',hiSrc);
+ resize_fx(objImagePreloader.width,objImagePreloader.height);
+ };
+ objImagePreloader.src = hiSrc;
+ };
+
+ function _show_image() {
+ $('#gzoomloading').hide();
+ $('#zoomedimage').fadeIn(function() {
+ _show_image_data();
+ });
+ };
+
+ /**
+ * Show the image information
+ *
+ */
+ function _show_image_data() {
+ $('#lightbox-loading').hide();
+ $('#gzoom-image-caption').html(ig.attr('title'));
+ $('#gzoomlbox-con-imgdata').slideDown('fast');
+ }
+
+ function close() {
+ $('#gzoomlbox').remove();
+ $('#gzoomoverlay').fadeOut(function() { $('#gzoomoverlay').remove(); });
+ $('embed, object, select').css({ 'visibility' : 'visible' });
+ }
+
+ function ___pause(ms) {
+ var date = new Date();
+ curDate = null;
+ do { var curDate = new Date(); }
+ while ( curDate - date < ms);
+ };
+
+ });
+
+};
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.mousewheel.js
===================================================================
--- branches/1.0.x/inc/js/jquery.mousewheel.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.mousewheel.js (revision 14600)
@@ -0,0 +1,78 @@
+/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
+ * Licensed under the MIT License (LICENSE.txt).
+ *
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
+ *
+ * Version: 3.0.4
+ *
+ * Requires: 1.2.2+
+ */
+
+(function($) {
+
+var types = ['DOMMouseScroll', 'mousewheel'];
+
+$.event.special.mousewheel = {
+ setup: function() {
+ if ( this.addEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.addEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = handler;
+ }
+ },
+
+ teardown: function() {
+ if ( this.removeEventListener ) {
+ for ( var i=types.length; i; ) {
+ this.removeEventListener( types[--i], handler, false );
+ }
+ } else {
+ this.onmousewheel = null;
+ }
+ }
+};
+
+$.fn.extend({
+ mousewheel: function(fn) {
+ return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
+ },
+
+ unmousewheel: function(fn) {
+ return this.unbind("mousewheel", fn);
+ }
+});
+
+
+function handler(event) {
+ var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
+ event = $.event.fix(orgEvent);
+ event.type = "mousewheel";
+
+ // Old school scrollwheel delta
+ if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
+ if ( event.detail ) { delta = -event.detail/3; }
+
+ // New school multidimensional scroll (touchpads) deltas
+ deltaY = delta;
+
+ // Gecko
+ if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
+ deltaY = 0;
+ deltaX = -1*delta;
+ }
+
+ // Webkit
+ if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
+ if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
+
+ // Add event and delta to the front of the arguments
+ args.unshift(event, delta, deltaX, deltaY);
+
+ return $.event.handle.apply(this, args);
+}
+
+})(jQuery);
\ No newline at end of file
Index: branches/1.0.x/inc/js/tinybox.js
===================================================================
--- branches/1.0.x/inc/js/tinybox.js (nonexistent)
+++ branches/1.0.x/inc/js/tinybox.js (revision 14600)
@@ -0,0 +1,134 @@
+TINY={};
+
+TINY.box=function(){
+ var j,m,b,g,v,p=0;
+ return{
+ show:function(o){
+ v={opacity:70,close:1,animate:1,fixed:1,mask:1,maskid:'',boxid:'',topsplit:2,url:0,post:0,height:0,width:0,html:0,iframe:0};
+ for(s in o){v[s]=o[s]}
+ if(!p){
+ j=document.createElement('div'); j.className='tbox';
+ p=document.createElement('div'); p.className='tinner';
+ b=document.createElement('div'); b.className='tcontent';
+ m=document.createElement('div'); m.className='tmask';
+ g=document.createElement('div'); g.className='tclose'; g.innerHTML="Close [Esc]"; g.v=0;
+ document.body.appendChild(m); document.body.appendChild(j); j.appendChild(p); p.appendChild(b);
+ m.onclick=g.onclick=TINY.box.hide; window.onresize=TINY.box.resize
+ }else{
+ j.style.display='none'; clearTimeout(p.ah); if(g.v){p.removeChild(g); g.v=0}
+ }
+ p.id=v.boxid; m.id=v.maskid; j.style.position=v.fixed?'fixed':'absolute';
+ if(v.html&&!v.animate){
+ p.style.backgroundImage='none'; b.innerHTML=v.html; b.style.display='';
+ p.style.width=v.width?v.width+'px':'auto'; p.style.height=v.height?v.height+'px':'auto'
+ }else{
+ b.style.display='none';
+ if(!v.animate&&v.width&&v.height){
+ p.style.width=v.width+'px'; p.style.height=v.height+'px'
+ }else{
+ p.style.width=p.style.height='100px'
+ }
+ }
+ if(v.mask){this.mask(); this.alpha(m,1,v.opacity)}else{this.alpha(j,1,100)}
+ if(v.autohide){p.ah=setTimeout(TINY.box.hide,1000*v.autohide)}else{document.onkeyup=TINY.box.esc}
+ },
+ fill:function(c,u,k,a,w,h){
+ if(u){
+ if(v.image){
+ var i=new Image(); i.onload=function(){w=w||i.width+100; h=h||i.height+100; TINY.box.psh(i,a,w,h)}; i.src=v.image
+ }else if(v.iframe){
+ this.psh('<iframe src="'+v.iframe+'" width="'+(v.width-100)+'" frameborder="0" height="'+(v.height-100)+'" scrolling="no"></iframe>',a,w,h)
+ }else{
+ var x=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
+ x.onreadystatechange=function(){
+ if(x.readyState==4&&x.status==200){p.style.backgroundImage=''; TINY.box.psh(x.responseText,a,w,h)}
+ };
+ if(k){
+ x.open('POST',c,true); x.setRequestHeader('Content-type','application/x-www-form-urlencoded'); x.send(k)
+ }else{
+ x.open('GET',c,true); x.send(null)
+ }
+ }
+ }else{
+ this.psh(c,a,w,h)
+ }
+ },
+ psh:function(c,a,w,h){
+ if(typeof c=='object'){b.appendChild(c)}else{b.innerHTML=c}
+ var x=p.style.width+100, y=p.style.height+100;
+ if(!w||!h){
+ p.style.width=w?w+100+'px':''; p.style.height=h?h+100+'px':''; b.style.display='';
+ if(!h){h=parseInt(b.offsetHeight)}
+ if(!w){w=parseInt(b.offsetWidth)}
+ b.style.display='none'
+ }
+ p.style.width=x; p.style.height=y;
+ this.size(w,h,a)
+ },
+ esc:function(e){e=e||window.event; if(e.keyCode==27){TINY.box.hide()}},
+ hide:function(){TINY.box.alpha(j,-1,0,3); document.onkeypress=null; if(v.closejs){v.closejs()}},
+ resize:function(){TINY.box.pos(); TINY.box.mask()},
+ mask:function(){m.style.height=this.total(1)+'px'; m.style.width=this.total(0)+'px'},
+ pos:function(){
+ var t;
+ if(typeof v.top!='undefined'){t=v.top}else{t=(this.height()/v.topsplit)-(j.offsetHeight/2); t=t<20?20:t}
+ if(!v.fixed&&!v.top){t+=this.top()}
+ j.style.top=t+'px';
+ j.style.left=typeof v.left!='undefined'?v.left+'px':(this.width()/2)-(j.offsetWidth/2)+'px'
+ },
+ alpha:function(e,d,a){
+ clearInterval(e.ai);
+ if(d){e.style.opacity=0; e.style.filter='alpha(opacity=0)'; e.style.display='block'; TINY.box.pos()}
+ e.ai=setInterval(function(){TINY.box.ta(e,a,d)},20)
+ },
+ ta:function(e,a,d){
+ var o=Math.round(e.style.opacity*100);
+ if(o==a){
+ clearInterval(e.ai);
+ if(d==-1){
+ e.style.display='none';
+ e==j?TINY.box.alpha(m,-1,0,2):b.innerHTML=p.style.backgroundImage=''
+ }else{
+ if(e==m){
+ this.alpha(j,1,100)
+ }else{
+ j.style.filter='';
+ TINY.box.fill(v.html||v.url,v.url||v.iframe||v.image,v.post,v.animate,v.width,v.height)
+ }
+ }
+ }else{
+ var n=a-Math.floor(Math.abs(a-o)*.5)*d;
+ e.style.opacity=n/100; e.style.filter='alpha(opacity='+n+')'
+ }
+ },
+ size:function(w,h,a){
+ if(a){
+ clearInterval(p.si); var wd=parseInt(p.style.width)>w?-1:1, hd=parseInt(p.style.height)>h?-1:1;
+ p.si=setInterval(function(){TINY.box.ts(w,wd,h,hd)},20)
+ }else{
+ p.style.backgroundImage='none'; if(v.close){p.appendChild(g); g.v=1}
+ p.style.width=w+'px'; p.style.height=h+'px'; b.style.display=''; this.pos();
+ if(v.openjs){v.openjs()}
+ }
+ },
+ ts:function(w,wd,h,hd){
+ var cw=parseInt(p.style.width), ch=parseInt(p.style.height);
+ if(cw==w&&ch==h){
+ clearInterval(p.si); p.style.backgroundImage='none'; b.style.display='block'; if(v.close){p.appendChild(g); g.v=1}
+ if(v.openjs){v.openjs()}
+ }else{
+ if(cw!=w){p.style.width=(w-Math.floor(Math.abs(w-cw)*.6)*wd)+'px'}
+ if(ch!=h){p.style.height=(h-Math.floor(Math.abs(h-ch)*.6)*hd)+'px'}
+ this.pos()
+ }
+ },
+ top:function(){return document.documentElement.scrollTop||document.body.scrollTop},
+ width:function(){return self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},
+ height:function(){return self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},
+ total:function(d){
+ var b=document.body, e=document.documentElement;
+ return d?Math.max(Math.max(b.scrollHeight,e.scrollHeight),Math.max(b.clientHeight,e.clientHeight)):
+ Math.max(Math.max(b.scrollWidth,e.scrollWidth),Math.max(b.clientWidth,e.clientWidth))
+ }
+ }
+}();
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.qtip.min.js
===================================================================
--- branches/1.0.x/inc/js/jquery.qtip.min.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.qtip.min.js (revision 14600)
@@ -0,0 +1,13 @@
+/*
+* qTip2 - Pretty powerful tooltips
+* http://craigsworks.com/projects/qtip2/
+*
+* Version: nightly
+* Copyright 2009-2010 Craig Michael Thompson - http://craigsworks.com
+*
+* Dual licensed under MIT or GPLv2 licenses
+* http://en.wikipedia.org/wiki/MIT_License
+* http://en.wikipedia.org/wiki/GNU_General_Public_License
+*
+* Date: Tue Aug 30 03:39:38.0000000000 2011
+*//*jslint browser: true, onevar: true, undef: true, nomen: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true *//*global window: false, jQuery: false, console: false */(function(a,b,c){function B(b,g){function w(a){var b=a.precedance==="y",c=n[b?"width":"height"],d=n[b?"height":"width"],e=a.string().indexOf("center")>-1,f=c*(e?.5:1),g=Math.pow,h=Math.round,i,j,k,l=Math.sqrt(g(f,2)+g(d,2)),m=[p/f*l,p/d*l];m[2]=Math.sqrt(g(m[0],2)-g(p,2)),m[3]=Math.sqrt(g(m[1],2)-g(p,2)),i=l+m[2]+m[3]+(e?0:m[0]),j=i/l,k=[h(j*d),h(j*c)];return{height:k[b?0:1],width:k[b?1:0]}}function v(b){var c=k.titlebar&&b.y==="top",d=c?k.titlebar:k.content,e=a.browser.mozilla,f=e?"-moz-":a.browser.webkit?"-webkit-":"",g=b.y+(e?"":"-")+b.x,h=f+(e?"border-radius-"+g:"border-"+g+"-radius");return parseInt(d.css(h),10)||parseInt(l.css(h),10)||0}function u(a,b,c){b=b?b:a[a.precedance];var d=l.hasClass(r),e=k.titlebar&&a.y==="top",f=e?k.titlebar:k.content,g="border-"+b+"-width",h;l.addClass(r),h=parseInt(f.css(g),10),h=(c?h||parseInt(l.css(g),10):h)||0,l.toggleClass(r,d);return h}function t(f,g,h,l){if(k.tip){var n=a.extend({},i.corner),o=h.adjusted,p=b.options.position.adjust.method.split(" "),q=p[0],r=p[1]||p[0],s={left:e,top:e,x:0,y:0},t,u={},v;i.corner.fixed!==d&&(q==="shift"&&n.precedance==="x"&&o.left&&n.y!=="center"?n.precedance=n.precedance==="x"?"y":"x":q==="flip"&&o.left&&(n.x=n.x==="center"?o.left>0?"left":"right":n.x==="left"?"right":"left"),r==="shift"&&n.precedance==="y"&&o.top&&n.x!=="center"?n.precedance=n.precedance==="y"?"x":"y":r==="flip"&&o.top&&(n.y=n.y==="center"?o.top>0?"top":"bottom":n.y==="top"?"bottom":"top"),n.string()!==m.corner&&(m.top!==o.top||m.left!==o.left)&&i.update(n,e)),t=i.position(n,o),t.right!==c&&(t.left=-t.right),t.bottom!==c&&(t.top=-t.bottom),t.user=Math.max(0,j.offset);if(s.left=q==="shift"&&!!o.left)n.x==="center"?u["margin-left"]=s.x=t["margin-left"]-o.left:(v=t.right!==c?[o.left,-t.left]:[-o.left,t.left],(s.x=Math.max(v[0],v[1]))>v[0]&&(h.left-=o.left,s.left=e),u[t.right!==c?"right":"left"]=s.x);if(s.top=r==="shift"&&!!o.top)n.y==="center"?u["margin-top"]=s.y=t["margin-top"]-o.top:(v=t.bottom!==c?[o.top,-t.top]:[-o.top,t.top],(s.y=Math.max(v[0],v[1]))>v[0]&&(h.top-=o.top,s.top=e),u[t.bottom!==c?"bottom":"top"]=s.y);k.tip.css(u).toggle(!(s.x&&s.y||n.x==="center"&&s.y||n.y==="center"&&s.x)),h.left-=t.left.charAt?t.user:q!=="shift"||s.top||!s.left&&!s.top?t.left:0,h.top-=t.top.charAt?t.user:r!=="shift"||s.left||!s.left&&!s.top?t.top:0,m.left=o.left,m.top=o.top,m.corner=n.string()}}var i=this,j=b.options.style.tip,k=b.elements,l=k.tooltip,m={top:0,left:0,corner:""},n={width:j.width,height:j.height},o={},p=j.border||0,q=".qtip-tip",s=!!(a("<canvas />")[0]||{}).getContext;i.mimic=i.corner=f,i.border=p,i.offset=j.offset,i.size=n,b.checks.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){i.init()||i.destroy(),b.reposition()},"^style.tip.(height|width)$":function(){n={width:j.width,height:j.height},i.create(),i.update(),b.reposition()},"^content.title.text|style.(classes|widget)$":function(){k.tip&&i.update()}},a.extend(i,{init:function(){var b=i.detectCorner()&&(s||a.browser.msie);b&&(i.create(),i.update(),l.unbind(q).bind("tooltipmove"+q,t));return b},detectCorner:function(){var a=j.corner,c=b.options.position,f=c.at,g=c.my.string?c.my.string():c.my;if(a===e||g===e&&f===e)return e;a===d?i.corner=new h.Corner(g):a.string||(i.corner=new h.Corner(a),i.corner.fixed=d);return i.corner.string()!=="centercenter"},detectColours:function(){var c,d,e,f=k.tip.css({backgroundColor:"",border:""}),g=i.corner,h=g[g.precedance],m="border-"+h+"-color",p="border"+h.charAt(0)+h.substr(1)+"Color",q=/rgba?\(0, 0, 0(, 0)?\)|transparent/i,s="background-color",t="transparent",u=a(document.body).css("color"),v=b.elements.content.css("color"),w=k.titlebar&&(g.y==="top"||g.y==="center"&&f.position().top+n.height/2+j.offset<k.titlebar.outerHeight(1)),x=w?k.titlebar:k.content;l.addClass(r),o.fill=d=f.css(s),o.border=e=f[0].style[p]||f.css(m)||l.css(m);if(!d||q.test(d))o.fill=x.css(s)||t,q.test(o.fill)&&(o.fill=l.css(s)||d);if(!e||q.test(e)||e===u){o.border=x.css(m)||t;if(q.test(o.border)||o.border===v)o.border=e}a("*",f).add(f).css(s,t).css("border",""),l.removeClass(r)},create:function(){var b=n.width,c=n.height,d;k.tip&&k.tip.remove(),k.tip=a("<div />",{"class":"ui-tooltip-tip"}).css({width:b,height:c}).prependTo(l),s?a("<canvas />").appendTo(k.tip)[0].getContext("2d").save():(d='<vml:shape coordorigin="0,0" style="display:inline-block; position:absolute; behavior:url(#default#VML);"></vml:shape>',k.tip.html(d+d))},update:function(b,c){var g=k.tip,l=g.children(),m=n.width,q=n.height,r="px solid ",t="px dashed transparent",v=j.mimic,x=Math.round,y,z,B,C,D;b||(b=i.corner),v===e?v=b:(v=new h.Corner(v),v.precedance=b.precedance,v.x==="inherit"?v.x=b.x:v.y==="inherit"?v.y=b.y:v.x===v.y&&(v[b.precedance]=b[b.precedance])),y=v.precedance,i.detectColours(),o.border!=="transparent"&&o.border!=="#123456"?(p=u(b,f,d),j.border===0&&p>0&&(o.fill=o.border),i.border=p=j.border!==d?j.border:p):i.border=p=0,B=A(v,m,q),i.size=D=w(b),g.css(D),b.precedance==="y"?C=[x(v.x==="left"?p:v.x==="right"?D.width-m-p:(D.width-m)/2),x(v.y==="top"?D.height-q:0)]:C=[x(v.x==="left"?D.width-m:0),x(v.y==="top"?p:v.y==="bottom"?D.height-q-p:(D.height-q)/2)],s?(l.attr(D),z=l[0].getContext("2d"),z.restore(),z.save(),z.clearRect(0,0,3e3,3e3),z.translate(C[0],C[1]),z.beginPath(),z.moveTo(B[0][0],B[0][1]),z.lineTo(B[1][0],B[1][1]),z.lineTo(B[2][0],B[2][1]),z.closePath(),z.fillStyle=o.fill,z.strokeStyle=o.border,z.lineWidth=p*2,z.lineJoin="miter",z.miterLimit=100,p&&z.stroke(),z.fill()):(B="m"+B[0][0]+","+B[0][1]+" l"+B[1][0]+","+B[1][1]+" "+B[2][0]+","+B[2][1]+" xe",C[2]=p&&/^(r|b)/i.test(b.string())?parseFloat(a.browser.version,10)===8?2:1:0,l.css({antialias:""+(v.string().indexOf("center")>-1),left:C[0]-C[2]*Number(y==="x"),top:C[1]-C[2]*Number(y==="y"),width:m+p,height:q+p}).each(function(b){var c=a(this);c[c.prop?"prop":"attr"]({coordsize:m+p+" "+(q+p),path:B,fillcolor:o.fill,filled:!!b,stroked:!b}).css({display:p||b?"block":"none"}),!b&&c.html()===""&&c.html('<vml:stroke weight="'+p*2+'px" color="'+o.border+'" miterlimit="1000" joinstyle="miter" style="behavior:url(#default#VML); display:inline-block;" />')})),c!==e&&i.position(b)},position:function(b){var c=k.tip,f={},g=Math.max(0,j.offset),h,l,m;if(j.corner===e||!c)return e;b=b||i.corner,h=b.precedance,l=w(b),m=[b.x,b.y],h==="x"&&m.reverse(),a.each(m,function(a,c){var e,i;c==="center"?(e=h==="y"?"left":"top",f[e]="50%",f["margin-"+e]=-Math.round(l[h==="y"?"width":"height"]/2)+g):(e=u(b,c,d),i=v(b),f[c]=a?p?u(b,c):0:g+(i>e?i:0))}),f[b[h]]-=l[h==="x"?"width":"height"],c.css({top:"",bottom:"",left:"",right:"",margin:""}).css(f);return f},destroy:function(){k.tip&&k.tip.remove(),l.unbind(q)}}),i.init()}function A(a,b,c){var d=Math.ceil(b/2),e=Math.ceil(c/2),f={bottomright:[[0,0],[b,c],[b,0]],bottomleft:[[0,0],[b,0],[0,c]],topright:[[0,c],[b,0],[b,c]],topleft:[[0,0],[0,c],[b,c]],topcenter:[[0,c],[d,0],[b,c]],bottomcenter:[[0,0],[b,0],[d,c]],rightcenter:[[0,0],[b,e],[0,c]],leftcenter:[[b,0],[b,c],[0,e]]};f.lefttop=f.bottomright,f.righttop=f.bottomleft,f.leftbottom=f.topright,f.rightbottom=f.topleft;return f[a.string()]}function z(b,c){var i,j,k,l,m,n=a(this),o=a(document.body),p=this===document?o:n,q=n.metadata?n.metadata(c.metadata):f,r=c.metadata.type==="html5"&&q?q[c.metadata.name]:f,s=n.data(c.metadata.name||"qtipopts");try{s=typeof s==="string"?(new Function("return "+s))():s}catch(t){w("Unable to parse HTML5 attribute data: "+s)}l=a.extend(d,{},g.defaults,c,typeof s==="object"?x(s):f,x(r||q)),j=l.position,l.id=b;if("boolean"===typeof l.content.text){k=n.attr(l.content.attr);if(l.content.attr!==e&&k)l.content.text=k;else{w("Unable to locate content for tooltip! Aborting render of tooltip on element: ",n);return e}}j.container===e&&(j.container=o),j.target===e&&(j.target=p),l.show.target===e&&(l.show.target=p),l.show.solo===d&&(l.show.solo=o),l.hide.target===e&&(l.hide.target=p),l.position.viewport===d&&(l.position.viewport=j.container),j.at=new h.Corner(j.at),j.my=new h.Corner(j.my);if(a.data(this,"qtip"))if(l.overwrite)n.qtip("destroy");else if(l.overwrite===e)return e;l.suppress&&(m=a.attr(this,"title"))&&a(this).removeAttr("title").attr(u,m),i=new y(n,l,b,!!k),a.data(this,"qtip",i),n.bind("remove.qtip",function(){i.destroy()});return i}function y(s,t,w,y){function R(){var c=[t.show.target[0],t.hide.target[0],z.rendered&&G.tooltip[0],t.position.container[0],t.position.viewport[0],b,document];z.rendered?a([]).pushStack(a.grep(c,function(a){return typeof a==="object"})).unbind(F):t.show.target.unbind(F+"-create")}function Q(){function p(a){E.is(":visible")&&z.reposition(a)}function o(a){if(E.hasClass(m))return e;clearTimeout(z.timers.inactive),z.timers.inactive=setTimeout(function(){z.hide(a)},t.hide.inactive)}function l(b){if(E.hasClass(m)||C||D)return e;var d=a(b.relatedTarget||b.target),g=d.closest(n)[0]===E[0],h=d[0]===f.show[0];clearTimeout(z.timers.show),clearTimeout(z.timers.hide);c.target==="mouse"&&g||t.hide.fixed&&(/mouse(out|leave|move)/.test(b.type)&&(g||h))?(b.preventDefault(),b.stopImmediatePropagation()):t.hide.delay>0?z.timers.hide=setTimeout(function(){z.hide(b)},t.hide.delay):z.hide(b)}function k(a){if(E.hasClass(m))return e;f.show.trigger("qtip-"+w+"-inactive"),clearTimeout(z.timers.show),clearTimeout(z.timers.hide);var b=function(){z.toggle(d,a)};t.show.delay>0?z.timers.show=setTimeout(b,t.show.delay):b()}var c=t.position,f={show:t.show.target,hide:t.hide.target,viewport:a(c.viewport),document:a(document),window:a(b)},h={show:a.trim(""+t.show.event).split(" "),hide:a.trim(""+t.hide.event).split(" ")},j=a.browser.msie&&parseInt(a.browser.version,10)===6;E.bind("mouseenter"+F+" mouseleave"+F,function(a){var b=a.type==="mouseenter";b&&z.focus(a),E.toggleClass(q,b)}),t.hide.fixed&&(f.hide=f.hide.add(E),E.bind("mouseover"+F,function(){E.hasClass(m)||clearTimeout(z.timers.hide)})),/mouse(out|leave)/i.test(t.hide.event)?t.hide.leave==="window"&&f.window.bind("mouseout"+F,function(a){/select|option/.test(a.target)&&!a.relatedTarget&&z.hide(a)}):/mouse(over|enter)/i.test(t.show.event)&&f.hide.bind("mouseleave"+F,function(a){clearTimeout(z.timers.show)}),(""+t.hide.event).indexOf("unfocus")>-1&&f.document.bind("mousedown"+F,function(b){var c=a(b.target),d=!E.hasClass(m)&&E.is(":visible");c[0]!==E[0]&&c.parents(n).length===0&&c.add(s).length>1&&z.hide(b)}),"number"===typeof t.hide.inactive&&(f.show.bind("qtip-"+w+"-inactive",o),a.each(g.inactiveEvents,function(a,b){f.hide.add(G.tooltip).bind(b+F+"-inactive",o)})),a.each(h.hide,function(b,c){var d=a.inArray(c,h.show),e=a(f.hide);d>-1&&e.add(f.show).length===e.length||c==="unfocus"?(f.show.bind(c+F,function(a){E.is(":visible")?l(a):k(a)}),delete h.show[d]):f.hide.bind(c+F,l)}),a.each(h.show,function(a,b){f.show.bind(b+F,k)}),"number"===typeof t.hide.distance&&f.show.add(E).bind("mousemove"+F,function(a){var b=H.origin||{},c=t.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&z.hide(a)}),c.target==="mouse"&&(f.show.bind("mousemove"+F,function(a){i={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),c.adjust.mouse&&(t.hide.event&&E.bind("mouseleave"+F,function(a){(a.relatedTarget||a.target)!==f.show[0]&&z.hide(a)}),f.document.bind("mousemove"+F,function(a){!E.hasClass(m)&&E.is(":visible")&&z.reposition(a||i)}))),(c.adjust.resize||f.viewport.length)&&(a.event.special.resize?f.viewport:f.window).bind("resize"+F,p),(f.viewport.length||j&&E.css("position")==="fixed")&&f.viewport.bind("scroll"+F,p)}function P(b,d){function g(b){function i(c){c&&(delete h[c.src],clearTimeout(z.timers.img[c.src]),a(c).unbind(F)),a.isEmptyObject(h)&&(z.redraw(),d!==e&&z.reposition(H.event),b())}var g,h={};if((g=f.find("img:not([height]):not([width])")).length===0)return i();g.each(function(b,d){h[d.src]===c&&(function e(){if(d.height||d.width)return i(d);z.timers.img[d.src]=setTimeout(e,700)}(),a(d).bind("error"+F+" load"+F,function(){i(this)}),h[d.src]=d)})}var f=G.content;if(!z.rendered||!b)return e;a.isFunction(b)&&(b=b.call(s,H.event,z)||""),b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),z.rendered<0?E.queue("fx",g):(D=0,g(a.noop));return z}function O(b,c){var d=G.title;if(!z.rendered||!b)return e;a.isFunction(b)&&(b=b.call(s,H.event,z));if(b===e)return K(e);b.jquery&&b.length>0?d.empty().append(b.css({display:"block"})):d.html(b),z.redraw(),c!==e&&z.rendered&&E.is(":visible")&&z.reposition(H.event)}function N(a){var b=G.button,c=G.title;if(!z.rendered)return e;a?(c||M(),L()):b.remove()}function M(){var b=B+"-title";G.titlebar&&K(),G.titlebar=a("<div />",{"class":k+"-titlebar "+(t.style.widget?"ui-widget-header":"")}).append(G.title=a("<div />",{id:b,"class":k+"-title","aria-atomic":d})).insertBefore(G.content),t.content.title.button?L():z.rendered&&z.redraw()}function L(){var b=t.content.title.button,c=typeof b==="string",d=c?b:"Close tooltip";G.button&&G.button.remove(),b.jquery?G.button=b:G.button=a("<a />",{"class":"ui-state-default "+(t.style.widget?"":k+"-icon"),title:d,"aria-label":d}).prepend(a("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),G.button.appendTo(G.titlebar).attr("role","button").hover(function(b){a(this).toggleClass("ui-state-hover",b.type==="mouseenter")}).click(function(a){E.hasClass(m)||z.hide(a);return e}).bind("mousedown keydown mouseup keyup mouseout",function(b){a(this).toggleClass("ui-state-active ui-state-focus",b.type.substr(-4)==="down")}),z.redraw()}function K(a){G.title&&(G.titlebar.remove(),G.titlebar=G.title=G.button=f,a!==e&&z.reposition())}function J(){var a=t.style.widget;E.toggleClass(l,a).toggleClass(o,!a),G.content.toggleClass(l+"-content",a),G.titlebar&&G.titlebar.toggleClass(l+"-header",a),G.button&&G.button.toggleClass(k+"-icon",!a)}function I(a){var b=0,c,d=t,e=a.split(".");while(d=d[e[b++]])b<e.length&&(c=d);return[c||t,e.pop()]}var z=this,A=document.body,B=k+"-"+w,C=0,D=0,E=a(),F=".qtip-"+w,G,H;z.id=w,z.rendered=e,z.elements=G={target:s},z.timers={img:{}},z.options=t,z.checks={},z.plugins={},z.cache=H={event:{},target:a(),disabled:e,attr:y},z.checks.builtin={"^id$":function(b,c,f){var h=f===d?g.nextid:f,i=k+"-"+h;h!==e&&h.length>0&&!a("#"+i).length&&(E[0].id=i,G.content[0].id=i+"-content",G.title[0].id=i+"-title")},"^content.text$":function(a,b,c){P(c)},"^content.title.text$":function(a,b,c){if(!c)return K();!G.title&&c&&M(),O(c)},"^content.title.button$":function(a,b,c){N(c)},"^position.(my|at)$":function(a,b,c){"string"===typeof c&&(a[b]=new h.Corner(c))},"^position.container$":function(a,b,c){z.rendered&&E.appendTo(c)},"^show.ready$":function(){z.rendered?z.toggle(d):z.render(1)},"^style.classes$":function(a,b,c){E.attr("class",k+" qtip ui-helper-reset "+c)},"^style.widget|content.title":J,"^events.(render|show|move|hide|focus|blur)$":function(b,c,d){E[(a.isFunction(d)?"":"un")+"bind"]("tooltip"+c,d)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){var a=t.position;E.attr("tracking",a.target==="mouse"&&a.adjust.mouse),R(),Q()}},a.extend(z,{render:function(b){if(z.rendered)return z;var c=t.content.title.text,f=t.position,g=a.Event("tooltiprender");a.attr(s[0],"aria-describedby",B),E=G.tooltip=a("<div/>",{id:B,"class":k+" qtip ui-helper-reset "+o+" "+t.style.classes+" "+k+"-pos-"+t.position.my.abbreviation(),width:t.style.width||"",height:t.style.height||"",tracking:f.target==="mouse"&&f.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":e,"aria-describedby":B+"-content","aria-hidden":d}).toggleClass(m,H.disabled).data("qtip",z).appendTo(t.position.container).append(G.content=a("<div />",{"class":k+"-content",id:B+"-content","aria-atomic":d})),z.rendered=-1,C=D=1,c&&(M(),O(c,e)),P(t.content.text,e),z.rendered=d,J(),a.each(t.events,function(b,c){a.isFunction(c)&&E.bind(b==="toggle"?"tooltipshow tooltiphide":"tooltip"+b,c)}),a.each(h,function(){this.initialize==="render"&&this(z)}),Q(),E.queue("fx",function(a){g.originalEvent=H.event,E.trigger(g,[z]),C=D=0,z.redraw(),(t.show.ready||b)&&z.toggle(d,H.event),a()});return z},get:function(a){var b,c;switch(a.toLowerCase()){case"dimensions":b={height:E.outerHeight(),width:E.outerWidth()};break;case"offset":b=h.offset(E,t.position.container);break;default:c=I(a.toLowerCase()),b=c[0][c[1]],b=b.precedance?b.string():b}return b},set:function(b,c){function m(a,b){var c,d,e;for(c in k)for(d in k[c])if(e=(new RegExp(d,"i")).exec(a))b.push(e),k[c][d].apply(z,b)}var g=/^position\.(my|at|adjust|target|container)|style|content|show\.ready/i,h=/^content\.(title|attr)|style/i,i=e,j=e,k=z.checks,l;"string"===typeof b?(l=b,b={},b[l]=c):b=a.extend(d,{},b),a.each(b,function(c,d){var e=I(c.toLowerCase()),f;f=e[0][e[1]],e[0][e[1]]="object"===typeof d&&d.nodeType?a(d):d,b[c]=[e[0],e[1],d,f],i=g.test(c)||i,j=h.test(c)||j}),x(t),C=D=1,a.each(b,m),C=D=0,E.is(":visible")&&z.rendered&&(i&&z.reposition(t.position.target==="mouse"?f:H.event),j&&z.redraw());return z},toggle:function(b,c){function q(){b?(a.browser.msie&&E[0].style.removeAttribute("filter"),E.css("overflow",""),"string"===typeof h.autofocus&&a(h.autofocus,E).focus(),p=a.Event("tooltipvisible"),p.originalEvent=c?H.event:f,E.trigger(p,[z])):E.css({display:"",visibility:"",opacity:"",left:"",top:""})}if(!z.rendered)if(b)z.render(1);else return z;var g=b?"show":"hide",h=t[g],j=E.is(":visible"),k=!c||t[g].target.length<2||H.target[0]===c.target,l=t.position,m=t.content,o,p;(typeof b).search("boolean|number")&&(b=!j);if(!E.is(":animated")&&j===b&&k)return z;if(c){if(/over|enter/.test(c.type)&&/out|leave/.test(H.event.type)&&c.target===t.show.target[0]&&E.has(c.relatedTarget).length)return z;H.event=a.extend({},c)}p=a.Event("tooltip"+g),p.originalEvent=c?H.event:f,E.trigger(p,[z,90]);if(p.isDefaultPrevented())return z;a.attr(E[0],"aria-hidden",!b),b?(H.origin=a.extend({},i),z.focus(c),a.isFunction(m.text)&&P(m.text,e),a.isFunction(m.title.text)&&O(m.title.text,e),!v&&l.target==="mouse"&&l.adjust.mouse&&(a(document).bind("mousemove.qtip",function(a){i={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),v=d),z.reposition(c),h.solo&&a(n,h.solo).not(E).qtip("hide",p)):(clearTimeout(z.timers.show),delete H.origin,v&&!a(n+'[tracking="true"]:visible',h.solo).not(E).length&&(a(document).unbind("mousemove.qtip"),v=e),z.blur(c)),k&&E.stop(0,1),h.effect===e?(E[g](),q.call(E)):a.isFunction(h.effect)?(h.effect.call(E,z),E.queue("fx",function(a){q(),a()})):E.fadeTo(90,b?1:0,q),b&&h.target.trigger("qtip-"+w+"-inactive");return z},show:function(a){return z.toggle(d,a)},hide:function(a){return z.toggle(e,a)},focus:function(b){if(!z.rendered)return z;var c=a(n),d=parseInt(E[0].style.zIndex,10),e=g.zindex+c.length,f=a.extend({},b),h,i;E.hasClass(p)||(i=a.Event("tooltipfocus"),i.originalEvent=f,E.trigger(i,[z,e]),i.isDefaultPrevented()||(d!==e&&(c.each(function(){this.style.zIndex>d&&(this.style.zIndex=this.style.zIndex-1)}),c.filter("."+p).qtip("blur",f)),E.addClass(p)[0].style.zIndex=e));return z},blur:function(b){var c=a.extend({},b),d;E.removeClass(p),d=a.Event("tooltipblur"),d.originalEvent=c,E.trigger(d,[z]);return z},reposition:function(c,d){if(!z.rendered||C)return z;C=1;var f=t.position.target,g=t.position,j=g.my,l=g.at,m=g.adjust,n=m.method.split(" "),o=E.outerWidth(),p=E.outerHeight(),q=0,r=0,s=a.Event("tooltipmove"),u=E.css("position")==="fixed",v=g.viewport,w={left:0,top:0},x=e,y=z.plugins.tip,B={horizontal:n[0],vertical:n[1]=n[1]||n[0],enabled:v.jquery&&f[0]!==b&&f[0]!==A&&m.method!=="none",left:function(a){var b=B.horizontal==="shift",c=v.offset.left+v.scrollLeft,d=j.x==="left"?o:j.x==="right"?-o:-o/2,e=l.x==="left"?q:l.x==="right"?-q:-q/2,f=y&&y.size?y.size.width||0:0,g=y&&y.corner&&y.corner.precedance==="x"&&!b?f:0,h=c-a+g,i=a+o-v.width-c+g,k=d-(j.precedance==="x"||j.x===j.y?e:0),n=j.x==="center";b?(g=y&&y.corner&&y.corner.precedance==="y"?f:0,k=(j.x==="left"?1:-1)*d-g,w.left+=h>0?h:i>0?-i:0,w.left=Math.max(v.offset.left+(g&&y.corner.x==="center"?y.offset:0),a-k,Math.min(Math.max(v.offset.left+v.width,a+k),w.left))):(h>0&&(j.x!=="left"||i>0)?w.left-=k:i>0&&(j.x!=="right"||h>0)&&(w.left-=n?-k:k),w.left!==a&&n&&(w.left-=m.x),w.left<c&&-w.left>i&&(w.left=a));return w.left-a},top:function(a){var b=B.vertical==="shift",c=v.offset.top+v.scrollTop,d=j.y==="top"?p:j.y==="bottom"?-p:-p/2,e=l.y==="top"?r:l.y==="bottom"?-r:-r/2,f=y&&y.size?y.size.height||0:0,g=y&&y.corner&&y.corner.precedance==="y"&&!b?f:0,h=c-a+g,i=a+p-v.height-c+g,k=d-(j.precedance==="y"||j.x===j.y?e:0),n=j.y==="center";b?(g=y&&y.corner&&y.corner.precedance==="x"?f:0,k=(j.y==="top"?1:-1)*d-g,w.top+=h>0?h:i>0?-i:0,w.top=Math.max(v.offset.top+(g&&y.corner.x==="center"?y.offset:0),a-k,Math.min(Math.max(v.offset.top+v.height,a+k),w.top))):(h>0&&(j.y!=="top"||i>0)?w.top-=k:i>0&&(j.y!=="bottom"||h>0)&&(w.top-=n?-k:k),w.top!==a&&n&&(w.top-=m.y),w.top<0&&-w.top>i&&(w.top=a));return w.top-a}};if(a.isArray(f)&&f.length===2)l={x:"left",y:"top"},w={left:f[0],top:f[1]};else if(f==="mouse"&&(c&&c.pageX||H.event.pageX))l={x:"left",y:"top"},c=(c&&(c.type==="resize"||c.type==="scroll")?H.event:c&&c.pageX&&c.type==="mousemove"?c:i&&i.pageX&&(m.mouse||!c||!c.pageX)?{pageX:i.pageX,pageY:i.pageY}:!m.mouse&&H.origin&&H.origin.pageX?H.origin:c)||c||H.event||i||{},w={top:c.pageY,left:c.pageX};else{f==="event"?c&&c.target&&c.type!=="scroll"&&c.type!=="resize"?f=H.target=a(c.target):f=H.target:H.target=a(f),f=a(f).eq(0);if(f.length===0)return z;f[0]===document||f[0]===b?(q=h.iOS?b.innerWidth:f.width(),r=h.iOS?b.innerHeight:f.height(),f[0]===b&&(w={top:!u||h.iOS?(v||f).scrollTop():0,left:!u||h.iOS?(v||f).scrollLeft():0})):f.is("area")&&h.imagemap?w=h.imagemap(f,l,B.enabled?n:e):f[0].namespaceURI==="http://www.w3.org/2000/svg"&&h.svg?w=h.svg(f,l):(q=f.outerWidth(),r=f.outerHeight(),w=h.offset(f,g.container,u)),w.offset&&(q=w.width,r=w.height,x=w.flipoffset,w=w.offset),w.left+=l.x==="right"?q:l.x==="center"?q/2:0,w.top+=l.y==="bottom"?r:l.y==="center"?r/2:0}w.left+=m.x+(j.x==="right"?-o:j.x==="center"?-o/2:0),w.top+=m.y+(j.y==="bottom"?-p:j.y==="center"?-p/2:0),B.enabled?(v={elem:v,height:v[(v[0]===b?"h":"outerH")+"eight"](),width:v[(v[0]===b?"w":"outerW")+"idth"](),scrollLeft:u?0:v.scrollLeft(),scrollTop:u?0:v.scrollTop(),offset:v.offset()||{left:0,top:0}},w.adjusted={left:B.horizontal!=="none"?B.left(w.left):0,top:B.vertical!=="none"?B.top(w.top):0},w.adjusted.left+w.adjusted.top&&E.attr("class",function(a,b){return b.replace(/ui-tooltip-pos-\w+/i,k+"-pos-"+j.abbreviation())}),x&&w.adjusted.left&&(w.left+=x.left),x&&w.adjusted.top&&(w.top+=x.top)):w.adjusted={left:0,top:0},s.originalEvent=a.extend({},c),E.trigger(s,[z,w,v.elem||v]);if(s.isDefaultPrevented())return z;delete w.adjusted,d===e||isNaN(w.left)||isNaN(w.top)||f==="mouse"||!a.isFunction(g.effect)?E.css(w):a.isFunction(g.effect)&&(g.effect.call(E,z,a.extend({},w)),E.queue(function(b){a(this).css({opacity:"",height:""}),a.browser.msie&&this.style.removeAttribute("filter"),b()})),C=0;return z},redraw:function(){if(z.rendered<1||D)return z;var a=t.position.container,b,c,d,e;D=1,t.style.height&&E.css("height",t.style.height),t.style.width?E.css("width",t.style.width):(E.css("width","").addClass(r),c=E.width()+1,d=E.css("max-width")||"",e=E.css("min-width")||"",b=(d+e).indexOf("%")>-1?a.width()/100:0,d=(d.indexOf("%")>-1?b:1)*parseInt(d,10)||c,e=(e.indexOf("%")>-1?b:1)*parseInt(e,10)||0,c=d+e?Math.min(Math.max(c,e),d):c,E.css("width",Math.round(c)).removeClass(r)),D=0;return z},disable:function(b){"boolean"!==typeof b&&(b=!E.hasClass(m)&&!H.disabled),z.rendered?(E.toggleClass(m,b),a.attr(E[0],"aria-disabled",b)):H.disabled=!!b;return z},enable:function(){return z.disable(e)},destroy:function(){var b=s[0],c=a.attr(b,u);z.rendered&&(E.remove(),a.each(z.plugins,function(){this.destroy&&this.destroy()})),clearTimeout(z.timers.show),clearTimeout(z.timers.hide),R(),a.removeData(b,"qtip"),t.suppress&&c&&(a.attr(b,"title",c),s.removeAttr(u)),s.removeAttr("aria-describedby").unbind(".qtip"),delete j[z.id];return s}})}function x(b){var c;if(!b||"object"!==typeof b)return e;"object"!==typeof b.metadata&&(b.metadata={type:b.metadata});if("content"in b){if("object"!==typeof b.content||b.content.jquery)b.content={text:b.content};c=b.content.text||e,!a.isFunction(c)&&(!c&&!c.attr||c.length<1||"object"===typeof c&&!c.jquery)&&(b.content.text=e),"title"in b.content&&("object"!==typeof b.content.title&&(b.content.title={text:b.content.title}),c=b.content.title.text||e,!a.isFunction(c)&&(!c&&!c.attr||c.length<1||"object"===typeof c&&!c.jquery)&&(b.content.title.text=e))}"position"in b&&("object"!==typeof b.position&&(b.position={my:b.position,at:b.position})),"show"in b&&("object"!==typeof b.show&&(b.show.jquery?b.show={target:b.show}:b.show={event:b.show})),"hide"in b&&("object"!==typeof b.hide&&(b.hide.jquery?b.hide={target:b.hide}:b.hide={event:b.hide})),"style"in b&&("object"!==typeof b.style&&(b.style={classes:b.style})),a.each(h,function(){this.sanitize&&this.sanitize(b)});return b}function w(){w.history=w.history||[],w.history.push(arguments);if("object"===typeof console){var a=console[console.warn?"warn":"log"],b=Array.prototype.slice.call(arguments),c;typeof arguments[0]==="string"&&(b[0]="qTip2: "+b[0]),c=a.apply?a.apply(console,b):a(b)}}"use strict";var d=!0,e=!1,f=null,g,h,i,j={},k="ui-tooltip",l="ui-widget",m="ui-state-disabled",n="div.qtip."+k,o=k+"-default",p=k+"-focus",q=k+"-hover",r=k+"-fluid",s="-31000px",t="_replacedByqTip",u="oldtitle",v;g=a.fn.qtip=function(b,h,i){var j=(""+b).toLowerCase(),k=f,l=j==="disable"?[d]:a.makeArray(arguments).slice(1),m=l[l.length-1],n=this[0]?a.data(this[0],"qtip"):f;if(!arguments.length&&n||j==="api")return n;if("string"===typeof b){this.each(function(){var b=a.data(this,"qtip");if(!b)return d;m&&m.timeStamp&&(b.cache.event=m);if(j!=="option"&&j!=="options"||!h)b[j]&&b[j].apply(b[j],l);else if(a.isPlainObject(h)||i!==c)b.set(h,i);else{k=b.get(h);return e}});return k!==f?k:this}if("object"===typeof b||!arguments.length){n=x(a.extend(d,{},b));return g.bind.call(this,n,m)}},g.bind=function(b,f){return this.each(function(k){function r(b){function d(){p.render(typeof b==="object"||l.show.ready),m.show.add(m.hide).unbind(o)}if(p.cache.disabled)return e;p.cache.event=a.extend({},b),p.cache.target=b?a(b.target):[c],l.show.delay>0?(clearTimeout(p.timers.show),p.timers.show=setTimeout(d,l.show.delay),n.show!==n.hide&&m.hide.bind(n.hide,function(){clearTimeout(p.timers.show)})):d()}var l,m,n,o,p,q;q=a.isArray(b.id)?b.id[k]:b.id,q=!q||q===e||q.length<1||j[q]?g.nextid++:j[q]=q,o=".qtip-"+q+"-create",p=z.call(this,q,b);if(p===e)return d;l=p.options,a.each(h,function(){this.initialize==="initialize"&&this(p)}),m={show:l.show.target,hide:l.hide.target},n={show:a.trim(""+l.show.event).replace(/ /g,o+" ")+o,hide:a.trim(""+l.hide.event).replace(/ /g,o+" ")+o},/mouse(over|enter)/i.test(n.show)&&!/mouse(out|leave)/i.test(n.hide)&&(n.hide+=" mouseleave"+o),m.show.bind("mousemove"+o,function(a){i={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),m.show.bind(n.show,r),(l.show.ready||l.prerender)&&r(f)})},h=g.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,"center").toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.precedance=a.charAt(0).search(/^(t|b)/)>-1?"y":"x",this.string=function(){return this.precedance==="y"?this.y+this.x:this.x+this.y},this.abbreviation=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:a==="c"||a!=="c"&&b!=="c"?b+a:a+b}},offset:function(c,d,e){function l(a,b){f.left+=b*a.scrollLeft(),f.top+=b*a.scrollTop()}var f=c.offset(),g=d,i=0,j=document.body,k;if(g){do{g.css("position")!=="static"&&(k=g[0]===j?{left:parseInt(g.css("left"),10)||0,top:parseInt(g.css("top"),10)||0}:g.position(),f.left-=k.left+(parseInt(g.css("borderLeftWidth"),10)||0)+(parseInt(g.css("marginLeft"),10)||0),f.top-=k.top+(parseInt(g.css("borderTopWidth"),10)||0),++i);if(g[0]===j)break}while(g=g.offsetParent());d[0]!==j&&i>1&&l(d,1),(h.iOS<4.1&&h.iOS>3.1||!h.iOS&&e)&&l(a(b),-1)}return f},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,3})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_","."))||e,fn:{attr:function(b,c){if(this.length){var d=this[0],e="title",f=a.data(d,"qtip");if(b===e&&f&&"object"===typeof f&&f.options.suppress){if(arguments.length<2)return a.attr(d,u);f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",c);return this.attr(u,c)}}return a.fn["attr"+t].apply(this,arguments)},clone:function(b){var c=a([]),d="title",e=a.fn["clone"+t].apply(this,arguments);b||e.filter("["+u+"]").attr("title",function(){return a.attr(this,u)}).removeAttr(u);return e},remove:a.ui?f:function(b,c){a(this).each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add(this).each(function(){a(this).triggerHandler("remove")})})}}},a.each(h.fn,function(b,c){if(!c||a.fn[b+t])return d;var e=a.fn[b+t]=a.fn[b];a.fn[b]=function(){return c.apply(this,arguments)||e.apply(this,arguments)}}),g.version="nightly",g.nextid=0,g.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),g.zindex=15e3,g.defaults={prerender:e,id:e,overwrite:d,suppress:d,content:{text:d,attr:"title",title:{text:e,button:e}},position:{my:"top left",at:"bottom right",target:e,container:e,viewport:e,adjust:{x:0,y:0,mouse:d,resize:d,method:"flip flip"},effect:function(b,c,d){a(this).animate(c,{duration:200,queue:e})}},show:{target:e,event:"mouseenter",effect:d,delay:90,solo:e,ready:e,autofocus:e},hide:{target:e,event:"mouseleave",effect:d,delay:0,fixed:e,inactive:e,leave:"window",distance:e},style:{classes:"",widget:e,width:e,height:e},events:{render:f,move:f,show:f,hide:f,toggle:f,visible:f,focus:f,blur:f}},h.tip=function(a){var b=a.plugins.tip;return"object"===typeof b?b:a.plugins.tip=new B(a)},h.tip.initialize="render",h.tip.sanitize=function(a){var b=a.style,c;b&&"tip"in b&&(c=a.style.tip,typeof c!=="object"&&(a.style.tip={corner:c}),/string|boolean/i.test(typeof c.corner)||(c.corner=d),typeof c.width!=="number"&&delete c.width,typeof c.height!=="number"&&delete c.height,typeof c.border!=="number"&&c.border!==d&&delete c.border,typeof c.offset!=="number"&&delete c.offset)},a.extend(d,g.defaults,{style:{tip:{corner:d,mimic:e,width:6,height:6,border:d,offset:0}}})})(jQuery,window)
\ No newline at end of file
Index: branches/1.0.x/inc/js/passwordStrengthMeter.js
===================================================================
--- branches/1.0.x/inc/js/passwordStrengthMeter.js (nonexistent)
+++ branches/1.0.x/inc/js/passwordStrengthMeter.js (revision 14600)
@@ -0,0 +1,70 @@
+var shortPass = '<span class="colorbar meterFail"></span> <span class="meterFail">Too Short Password</span>'
+var badPass = '<span class="colorbar meterWarn"></span> <span class="meterWarn">Week; Use letters & numbers</span>'
+var goodPass = '<span class="colorbar meterGood"></span> <span class="meterGood">Medium; Use special charecters</span>'
+var strongPass = '<span class="colorbar meterExcel"></span> <span class="meterExcel">Strong Password</span>'
+
+function passwordStrength(password)
+{
+ score = 0
+
+ //password < 4
+ if (password.length < 4 ) { return shortPass }
+
+ //password length
+ score += password.length * 4
+ score += ( checkRepetition(1,password).length - password.length ) * 1
+ score += ( checkRepetition(2,password).length - password.length ) * 1
+ score += ( checkRepetition(3,password).length - password.length ) * 1
+ score += ( checkRepetition(4,password).length - password.length ) * 1
+
+ //password has 3 numbers
+ if (password.match(/(.*[0-9].*[0-9].*[0-9])/)) score += 5
+
+ //password has 2 sybols
+ if (password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) score += 5
+
+ //password has Upper and Lower chars
+ if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) score += 10
+
+ //password has number and chars
+ if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) score += 15
+ //
+ //password has number and symbol
+ if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/)) score += 15
+
+ //password has char and symbol
+ if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/)) score += 15
+
+ //password is just a nubers or chars
+ if (password.match(/^\w+$/) || password.match(/^\d+$/) ) score -= 10
+
+ //verifing 0 < score < 100
+ if ( score < 0 ) score = 0
+ if ( score > 100 ) score = 100
+
+ if (score < 34 ) return badPass
+ if (score < 68 ) return goodPass
+ return strongPass
+}
+
+// checkRepetition(1,'aaaaaaabcbc') = 'abcbc'
+// checkRepetition(2,'aaaaaaabcbc') = 'aabc'
+// checkRepetition(2,'aaaaaaabcdbcd') = 'aabcd'
+
+function checkRepetition(pLen,str) {
+ res = ""
+ for ( i=0; i<str.length ; i++ ) {
+ repeated=true
+ for (j=0;j < pLen && (j+i+pLen) < str.length;j++)
+ repeated=repeated && (str.charAt(j+i)==str.charAt(j+i+pLen))
+ if (j<pLen) repeated=false
+ if (repeated) {
+ i+=pLen-1
+ repeated=false
+ }
+ else {
+ res+=str.charAt(i)
+ }
+ }
+ return res
+}
\ No newline at end of file
Index: branches/1.0.x/inc/js/validate/jquery.validationEngine-en.js
===================================================================
--- branches/1.0.x/inc/js/validate/jquery.validationEngine-en.js (nonexistent)
+++ branches/1.0.x/inc/js/validate/jquery.validationEngine-en.js (revision 14600)
@@ -0,0 +1,167 @@
+(function($){
+ $.fn.validationEngineLanguage = function(){
+ };
+ $.validationEngineLanguage = {
+ newLang: function(){
+ $.validationEngineLanguage.allRules = {
+ "required": { // Add your regex rules here, you can take telephone as an example
+ "regex": "none",
+ "alertText": "* This field is required",
+ "alertTextCheckboxMultiple": "* Please select an option",
+ "alertTextCheckboxe": "* This checkbox is required",
+ "alertTextDateRange": "* Both date range fields are required"
+ },
+ "dateRange": {
+ "regex": "none",
+ "alertText": "* Invalid ",
+ "alertText2": "Date Range"
+ },
+ "dateTimeRange": {
+ "regex": "none",
+ "alertText": "* Invalid ",
+ "alertText2": "Date Time Range"
+ },
+ "minSize": {
+ "regex": "none",
+ "alertText": "* Minimum ",
+ "alertText2": " characters allowed"
+ },
+ "maxSize": {
+ "regex": "none",
+ "alertText": "* Maximum ",
+ "alertText2": " characters allowed"
+ },
+ "groupRequired": {
+ "regex": "none",
+ "alertText": "* You must fill one of the following fields"
+ },
+ "min": {
+ "regex": "none",
+ "alertText": "* Minimum value is "
+ },
+ "max": {
+ "regex": "none",
+ "alertText": "* Maximum value is "
+ },
+ "past": {
+ "regex": "none",
+ "alertText": "* Date prior to "
+ },
+ "future": {
+ "regex": "none",
+ "alertText": "* Date past "
+ },
+ "maxCheckbox": {
+ "regex": "none",
+ "alertText": "* Maximum ",
+ "alertText2": " options allowed"
+ },
+ "minCheckbox": {
+ "regex": "none",
+ "alertText": "* Please select ",
+ "alertText2": " options"
+ },
+ "equals": {
+ "regex": "none",
+ "alertText": "* Fields do not match"
+ },
+ "phone": {
+ // credit: jquery.h5validate.js / orefalo
+ "regex": /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,
+ "alertText": "* Invalid phone number"
+ },
+ "email": {
+ // Shamelessly lifted from Scott Gonzalez via the Bassistance Validation plugin http://projects.scottsplayground.com/email_address_validation/
+ "regex": /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,
+ "alertText": "* Invalid email address"
+ },
+ "integer": {
+ "regex": /^[\-\+]?\d+$/,
+ "alertText": "* Not a valid integer"
+ },
+ "number": {
+ // Number, including positive, negative, and floating decimal. credit: orefalo
+ "regex": /^[\-\+]?(([0-9]+)([\.,]([0-9]+))?|([\.,]([0-9]+))?)$/,
+ "alertText": "* Invalid floating decimal number"
+ },
+ "date": {
+ "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
+ "alertText": "* Invalid date, must be in YYYY-MM-DD format"
+ },
+ "ipv4": {
+ "regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
+ "alertText": "* Invalid IP address"
+ },
+ "url": {
+ "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
+ "alertText": "* Invalid URL"
+ },
+ "onlyNumberSp": {
+ "regex": /^[0-9\ ]+$/,
+ "alertText": "* Numbers only"
+ },
+ "onlyLetterSp": {
+ "regex": /^[a-zA-Z\ \']+$/,
+ "alertText": "* Letters only"
+ },
+ "onlyLetterNumber": {
+ "regex": /^[0-9a-zA-Z]+$/,
+ "alertText": "* No special characters allowed"
+ },
+ // --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings
+ "ajaxUserCall": {
+ "url": "ajaxValidateFieldUser",
+ // you may want to pass extra data on the ajax call
+ "extraData": "name=eric",
+ "alertText": "* This user is already taken",
+ "alertTextLoad": "* Validating, please wait"
+ },
+ "ajaxUserCallPhp": {
+ "url": "phpajax/ajaxValidateFieldUser.php",
+ // you may want to pass extra data on the ajax call
+ "extraData": "name=eric",
+ // if you provide an "alertTextOk", it will show as a green prompt when the field validates
+ "alertTextOk": "* This username is available",
+ "alertText": "* This user is already taken",
+ "alertTextLoad": "* Validating, please wait"
+ },
+ "ajaxNameCall": {
+ // remote json service location
+ "url": "ajaxValidateFieldName",
+ // error
+ "alertText": "* This name is already taken",
+ // if you provide an "alertTextOk", it will show as a green prompt when the field validates
+ "alertTextOk": "* This name is available",
+ // speaks by itself
+ "alertTextLoad": "* Validating, please wait"
+ },
+ "ajaxNameCallPhp": {
+ // remote json service location
+ "url": "phpajax/ajaxValidateFieldName.php",
+ // error
+ "alertText": "* This name is already taken",
+ // speaks by itself
+ "alertTextLoad": "* Validating, please wait"
+ },
+ "validate2fields": {
+ "alertText": "* Please input HELLO"
+ },
+ //tls warning:homegrown not fielded
+ "dateFormat":{
+ "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
+ "alertText": "* Invalid Date"
+ },
+ //tls warning:homegrown not fielded
+ "dateTimeFormat": {
+ "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
+ "alertText": "* Invalid Date or Date Format",
+ "alertText2": "Expected Format: ",
+ "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM or ",
+ "alertText4": "yyyy-mm-dd hh:mm:ss AM|PM"
+ }
+ };
+
+ }
+ };
+ $.validationEngineLanguage.newLang();
+})(jQuery);
\ No newline at end of file
Index: branches/1.0.x/inc/js/validate/jquery.validationEngine.js
===================================================================
--- branches/1.0.x/inc/js/validate/jquery.validationEngine.js (nonexistent)
+++ branches/1.0.x/inc/js/validate/jquery.validationEngine.js (revision 14600)
@@ -0,0 +1,1429 @@
+/*
+ * Inline Form Validation Engine 2.2, jQuery plugin
+ *
+ * Copyright(c) 2010, Cedric Dugas
+ * http://www.position-absolute.com
+ *
+ * 2.0 Rewrite by Olivier Refalo
+ * http://www.crionics.com
+ *
+ * Form validation engine allowing custom regex rules to be added.
+ * Licensed under the MIT License
+ */
+(function($) {
+
+ var methods = {
+
+ /**
+ * Kind of the constructor, called before any action
+ * @param {Map} user options
+ */
+ init: function(options) {
+ var form = this;
+ if (!form.data('jqv') || form.data('jqv') == null ) {
+ methods._saveOptions(form, options);
+
+ // bind all formError elements to close on click
+ $(".formError").live("click", function() {
+ $(this).fadeOut(150, function() {
+
+ // remove prompt once invisible
+ $(this).remove();
+ });
+ });
+ }
+ },
+ /**
+ * Attachs jQuery.validationEngine to form.submit and field.blur events
+ * Takes an optional params: a list of options
+ * ie. jQuery("#formID1").validationEngine('attach', {promptPosition : "centerRight"});
+ */
+ attach: function(userOptions) {
+
+ var form = this;
+ var options;
+
+ if(userOptions)
+ options = methods._saveOptions(form, userOptions);
+ else
+ options = form.data('jqv');
+
+ var validateAttribute = (form.find("[data-validation-engine*=validate]")) ? "data-validation-engine" : "class";
+
+ if (!options.binded) {
+ if (options.bindMethod == "bind"){
+
+ // bind fields
+ form.find("[class*=validate]").not("[type=checkbox]").not("[type=radio]").not(".datepicker").bind(options.validationEventTrigger, methods._onFieldEvent);
+ form.find("[class*=validate][type=checkbox],[class*=validate][type=radio]").bind("click", methods._onFieldEvent);
+
+ form.find("[class*=validate][class*=datepicker]").bind(options.validationEventTrigger,{"delay": 300}, methods._onFieldEvent);
+
+ // bind form.submit
+ form.bind("submit", methods._onSubmitEvent);
+ } else if (options.bindMethod == "live") {
+ // bind fields with LIVE (for persistant state)
+ form.find("[class*=validate]").not("[type=checkbox]").not(".datepicker").live(options.validationEventTrigger, methods._onFieldEvent);
+ form.find("[class*=validate][type=checkbox]").live("click", methods._onFieldEvent);
+
+ form.find("[class*=validate][class*=datepicker]").live(options.validationEventTrigger,{"delay": 300}, methods._onFieldEvent);
+
+ // bind form.submit
+ form.live("submit", methods._onSubmitEvent);
+ }
+
+ options.binded = true;
+ }
+ return this;
+ },
+ /**
+ * Unregisters any bindings that may point to jQuery.validaitonEngine
+ */
+ detach: function() {
+ var form = this;
+ var options = form.data('jqv');
+ if (options.binded) {
+
+ // unbind fields
+ form.find("[class*=validate]").not("[type=checkbox]").unbind(options.validationEventTrigger, methods._onFieldEvent);
+ form.find("[class*=validate][type=checkbox],[class*=validate][type=radio]").unbind("click", methods._onFieldEvent);
+
+ // unbind form.submit
+ form.unbind("submit", methods.onAjaxFormComplete);
+
+
+ // unbind live fields (kill)
+ form.find("[class*=validate]").not("[type=checkbox]").die(options.validationEventTrigger, methods._onFieldEvent);
+ form.find("[class*=validate][type=checkbox]").die("click", methods._onFieldEvent);
+ // unbind form.submit
+
+
+
+
+ form.die("submit", methods.onAjaxFormComplete);
+
+ form.removeData('jqv');
+ }
+ },
+ /**
+ * Validates the form fields, shows prompts accordingly.
+ * Note: There is no ajax form validation with this method, only field ajax validation are evaluated
+ *
+ * @return true if the form validates, false if it fails
+ */
+ validate: function() {
+ return methods._validateFields(this);
+ },
+ /**
+ * Validates one field, shows prompt accordingly.
+ * Note: There is no ajax form validation with this method, only field ajax validation are evaluated
+ *
+ * @return true if the form validates, false if it fails
+ */
+ validateField: function(el) {
+ var options = $(this).data('jqv');
+ return methods._validateField($(el), options);
+ },
+ /**
+ * Validates the form fields, shows prompts accordingly.
+ * Note: this methods performs fields and form ajax validations(if setup)
+ *
+ * @return true if the form validates, false if it fails, undefined if ajax is used for form validation
+ */
+ validateform: function() {
+ return methods._onSubmitEvent.call(this);
+ },
+ /**
+ * Redraw prompts position, useful when you change the DOM state when validating
+ */
+ updatePromptsPosition: function() {
+ var form = this.closest('form');
+ var options = form.data('jqv');
+ // No option, take default one
+ form.find('[class*=validate]').not(':hidden').not(":disabled").each(function(){
+ var field = $(this);
+
+ var prompt = methods._getPrompt(field);
+ var promptText = $(prompt).find(".formErrorContent").html();
+
+ if(prompt) methods._updatePrompt(field, $(prompt), promptText, undefined, false, options);
+ })
+ },
+ /**
+ * Displays a prompt on a element.
+ * Note that the element needs an id!
+ *
+ * @param {String} promptText html text to display type
+ * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
+ * @param {String} possible values topLeft, topRight, bottomLeft, centerRight, bottomRight
+ */
+ showPrompt: function(promptText, type, promptPosition, showArrow) {
+
+ var form = this.closest('form');
+ var options = form.data('jqv');
+ // No option, take default one
+ if(!options) options = methods._saveOptions(this, options);
+ if(promptPosition)
+ options.promptPosition=promptPosition;
+ options.showArrow = showArrow==true;
+
+ methods._showPrompt(this, promptText, type, false, options);
+ },
+ /**
+ * Closes all error prompts on the page
+ */
+ hidePrompt: function() {
+ var promptClass = "."+ methods._getClassName($(this).attr("id")) + "formError";
+ $(promptClass).fadeTo("fast", 0.3, function() {
+ $(this).remove();
+ });
+ },
+ /**
+ * Closes form error prompts, CAN be invidual
+ */
+ hide: function() {
+ var closingtag;
+ if($(this).is("form")){
+ closingtag = "parentForm"+$(this).attr('id');
+ }else{
+ closingtag = $(this).attr('id') +"formError";
+ }
+ $('.'+closingtag).fadeTo("fast", 0.3, function() {
+ $(this).remove();
+ });
+ },
+ /**
+ * Closes all error prompts on the page
+ */
+ hideAll: function() {
+ $('.formError').fadeTo("fast", 0.3, function() {
+ $(this).remove();
+ });
+ },
+ /**
+ * Typically called when user exists a field using tab or a mouse click, triggers a field
+ * validation
+ */
+ _onFieldEvent: function(event) {
+ var field = $(this);
+ var form = field.closest('form');
+ var options = form.data('jqv');
+ // validate the current field
+ window.setTimeout(function() {
+ methods._validateField(field, options);
+ }, (event.data) ? event.data.delay : 0);
+
+ },
+ /**
+ * Called when the form is submited, shows prompts accordingly
+ *
+ * @param {jqObject}
+ * form
+ * @return false if form submission needs to be cancelled
+ */
+ _onSubmitEvent: function() {
+ var form = $(this);
+ var options = form.data('jqv');
+
+ // validate each field (- skip field ajax validation, no necessary since we will perform an ajax form validation)
+ var r=methods._validateFields(form, true);
+
+ if (r && options.ajaxFormValidation) {
+ methods._validateFormWithAjax(form, options);
+ return false;
+ }
+
+ if(options.onValidationComplete) {
+ options.onValidationComplete(form, r);
+ return false;
+ }
+ return r;
+ },
+
+ /**
+ * Return true if the ajax field validations passed so far
+ * @param {Object} options
+ * @return true, is all ajax validation passed so far (remember ajax is async)
+ */
+ _checkAjaxStatus: function(options) {
+ var status = true;
+ $.each(options.ajaxValidCache, function(key, value) {
+ if (!value) {
+ status = false;
+ // break the each
+ return false;
+ }
+ });
+ return status;
+ },
+ /**
+ * Validates form fields, shows prompts accordingly
+ *
+ * @param {jqObject}
+ * form
+ * @param {skipAjaxFieldValidation}
+ * boolean - when set to true, ajax field validation is skipped, typically used when the submit button is clicked
+ *
+ * @return true if form is valid, false if not, undefined if ajax form validation is done
+ */
+ _validateFields: function(form, skipAjaxValidation) {
+ var options = form.data('jqv');
+
+ // this variable is set to true if an error is found
+ var errorFound = false;
+
+ // Trigger hook, start validation
+ form.trigger("jqv.form.validating");
+ // first, evaluate status of non ajax fields
+ form.find('[class*=validate]').not(':hidden').not(":disabled").each( function() {
+ var field = $(this);
+ errorFound |= methods._validateField(field, options, skipAjaxValidation);
+ });
+ // second, check to see if all ajax calls completed ok
+ // errorFound |= !methods._checkAjaxStatus(options);
+
+ // thrird, check status and scroll the container accordingly
+ form.trigger("jqv.form.result", [errorFound]);
+
+ if (errorFound) {
+
+ if (options.scroll) {
+
+ // get the position of the first error, there should be at least one, no need to check this
+ //var destination = form.find(".formError:not('.greenPopup'):first").offset().top;
+
+ // look for the visually top prompt
+ var destination = Number.MAX_VALUE;
+ var fixleft = 0;
+ var lst = $(".formError:not('.greenPopup')");
+
+ for (var i = 0; i < lst.length; i++) {
+ var d = $(lst[i]).offset().top;
+ if (d < destination){
+ destination = d;
+ fixleft = $(lst[i]).offset().left;
+ }
+ }
+
+ if (!options.isOverflown)
+ $("html:not(:animated),body:not(:animated)").animate({
+ scrollTop: destination,
+ scrollLeft: fixleft
+ }, 1100);
+ else {
+ var overflowDIV = $(options.overflownDIV);
+ var scrollContainerScroll = overflowDIV.scrollTop();
+ var scrollContainerPos = -parseInt(overflowDIV.offset().top);
+
+ destination += scrollContainerScroll + scrollContainerPos - 5;
+ var scrollContainer = $(options.overflownDIV + ":not(:animated)");
+
+ scrollContainer.animate({
+ scrollTop: destination
+ }, 1100);
+
+ $("html:not(:animated),body:not(:animated)").animate({
+ scrollTop: overflowDIV.offset().top,
+ scrollLeft: fixleft
+ }, 1100);
+ }
+ }
+ return false;
+ }
+ return true;
+ },
+ /**
+ * This method is called to perform an ajax form validation.
+ * During this process all the (field, value) pairs are sent to the server which returns a list of invalid fields or true
+ *
+ * @param {jqObject} form
+ * @param {Map} options
+ */
+ _validateFormWithAjax: function(form, options) {
+
+ var data = form.serialize();
+ var url = (options.ajaxFormValidationURL) ? options.ajaxFormValidationURL : form.attr("action");
+ $.ajax({
+ type: "GET",
+ url: url,
+ cache: false,
+ dataType: "json",
+ data: data,
+ form: form,
+ methods: methods,
+ options: options,
+ beforeSend: function() {
+ return options.onBeforeAjaxFormValidation(form, options);
+ },
+ error: function(data, transport) {
+ methods._ajaxError(data, transport);
+ },
+ success: function(json) {
+
+ if (json !== true) {
+
+ // getting to this case doesn't necessary means that the form is invalid
+ // the server may return green or closing prompt actions
+ // this flag helps figuring it out
+ var errorInForm=false;
+ for (var i = 0; i < json.length; i++) {
+ var value = json[i];
+
+ var errorFieldId = value[0];
+ var errorField = $($("#" + errorFieldId)[0]);
+
+ // make sure we found the element
+ if (errorField.length == 1) {
+
+ // promptText or selector
+ var msg = value[2];
+ // if the field is valid
+ if (value[1] == true) {
+
+ if (msg == "" || !msg){
+ // if for some reason, status==true and error="", just close the prompt
+ methods._closePrompt(errorField);
+ } else {
+ // the field is valid, but we are displaying a green prompt
+ if (options.allrules[msg]) {
+ var txt = options.allrules[msg].alertTextOk;
+ if (txt)
+ msg = txt;
+ }
+ methods._showPrompt(errorField, msg, "pass", false, options, true);
+ }
+
+ } else {
+ // the field is invalid, show the red error prompt
+ errorInForm|=true;
+ if (options.allrules[msg]) {
+ var txt = options.allrules[msg].alertText;
+ if (txt)
+ msg = txt;
+ }
+ methods._showPrompt(errorField, msg, "", false, options, true);
+ }
+ }
+ }
+ options.onAjaxFormComplete(!errorInForm, form, json, options);
+ } else
+ options.onAjaxFormComplete(true, form, "", options);
+ }
+ });
+
+ },
+ /**
+ * Validates field, shows prompts accordingly
+ *
+ * @param {jqObject}
+ * field
+ * @param {Array[String]}
+ * field's validation rules
+ * @param {Map}
+ * user options
+ * @return true if field is valid
+ */
+ _validateField: function(field, options, skipAjaxValidation) {
+ if (!field.attr("id"))
+ $.error("jQueryValidate: an ID attribute is required for this field: " + field.attr("name") + " class:" +
+ field.attr("class"));
+
+ var rulesParsing = field.attr('class');
+ var getRules = /validate\[(.*)\]/.exec(rulesParsing);
+ if (!getRules)
+ return false;
+ var str = getRules[1];
+ var rules = str.split(/\[|,|\]/);
+
+ // true if we ran the ajax validation, tells the logic to stop messing with prompts
+ var isAjaxValidator = false;
+ var fieldName = field.attr("name");
+ var promptText = "";
+ var required = false;
+ options.isError = false;
+ options.showArrow = true;
+
+ for (var i = 0; i < rules.length; i++) {
+
+ var errorMsg = undefined;
+ switch (rules[i]) {
+
+ case "required":
+ required = true;
+ errorMsg = methods._required(field, rules, i, options);
+ break;
+ case "custom":
+ errorMsg = methods._customRegex(field, rules, i, options);
+ break;
+ case "groupRequired":
+ // Check is its the first of group, if not, reload validation with first field
+ // AND continue normal validation on present field
+ var classGroup = "[class*=" +rules[i + 1] +"]";
+ var firstOfGroup = field.closest("form").find(classGroup).eq(0);
+ if(firstOfGroup[0] != field[0]){
+ methods._validateField(firstOfGroup, options, skipAjaxValidation)
+ options.showArrow = true;
+ continue;
+ };
+ errorMsg = methods._groupRequired(field, rules, i, options);
+ if(errorMsg) required = true;
+ options.showArrow = false;
+ break;
+ case "ajax":
+ // ajax has its own prompts handling technique
+ if(!skipAjaxValidation){
+ methods._ajax(field, rules, i, options);
+ isAjaxValidator = true;
+ }
+ break;
+ case "minSize":
+ errorMsg = methods._minSize(field, rules, i, options);
+ break;
+ case "maxSize":
+ errorMsg = methods._maxSize(field, rules, i, options);
+ break;
+ case "min":
+ errorMsg = methods._min(field, rules, i, options);
+ break;
+ case "max":
+ errorMsg = methods._max(field, rules, i, options);
+ break;
+ case "past":
+ errorMsg = methods._past(field, rules, i, options);
+ break;
+ case "future":
+ errorMsg = methods._future(field, rules, i, options);
+ break;
+ case "dateRange":
+ var classGroup = "[class*=" + rules[i + 1] + "]";
+ var firstOfGroup = field.closest("form").find(classGroup).eq(0);
+ var secondOfGroup = field.closest("form").find(classGroup).eq(1);
+ /*
+ if (firstOfGroup[0] != field[0]) {
+ methods._validateField(firstOfGroup, options, skipAjaxValidation)
+ options.showArrow = true;
+ continue;
+ };
+ */
+ //if one entry out of the pair has value then proceed to run through validation
+ if (firstOfGroup[0].value || secondOfGroup[0].value) {
+ errorMsg = methods._dateRange(firstOfGroup, secondOfGroup, rules, i, options);
+ }
+ if (errorMsg) required = true;
+ options.showArrow = false;
+ break;
+
+ case "dateTimeRange":
+ var classGroup = "[class*=" + rules[i + 1] + "]";
+ var firstOfGroup = field.closest("form").find(classGroup).eq(0);
+ var secondOfGroup = field.closest("form").find(classGroup).eq(1);
+ /*
+ if (firstOfGroup[0] != field[0]) {
+ methods._validateField(firstOfGroup, options, skipAjaxValidation)
+ options.showArrow = true;
+ continue;
+ };
+ */
+ //if one entry out of the pair has value then proceed to run through validation
+ if (firstOfGroup[0].value || secondOfGroup[0].value) {
+ errorMsg = methods._dateTimeRange(firstOfGroup, secondOfGroup, rules, i, options);
+ }
+ if (errorMsg) required = true;
+ options.showArrow = false;
+ break;
+ case "maxCheckbox":
+ errorMsg = methods._maxCheckbox(field, rules, i, options);
+ field = $($("input[name='" + fieldName + "']"));
+ break;
+ case "minCheckbox":
+ errorMsg = methods._minCheckbox(field, rules, i, options);
+ field = $($("input[name='" + fieldName + "']"));
+ break;
+ case "equals":
+ errorMsg = methods._equals(field, rules, i, options);
+ break;
+ case "funcCall":
+ errorMsg = methods._funcCall(field, rules, i, options);
+ break;
+
+ default:
+ //$.error("jQueryValidator rule not found"+rules[i]);
+ }
+ if (errorMsg !== undefined) {
+ promptText += errorMsg + "<br/>";
+ options.isError = true;
+
+ }
+
+ }
+ // If the rules required is not added, an empty field is not validated
+ if(!required){
+ if(field.val() == "") options.isError = false;
+ }
+
+ // Hack for radio/checkbox group button, the validation go into the
+ // first radio/checkbox of the group
+ var fieldType = field.attr("type");
+
+ if ((fieldType == "radio" || fieldType == "checkbox") && $("input[name='" + fieldName + "']").size() > 1) {
+ field = $($("input[name='" + fieldName + "'][type!=hidden]:first"));
+ options.showArrow = false;
+ }
+ if (fieldType == "text" && $("input[name='" + fieldName + "']").size() > 1) {
+ field = $($("input[name='" + fieldName + "'][type!=hidden]:first"));
+ options.showArrow = false;
+ }
+
+ if (options.isError){
+
+ methods._showPrompt(field, promptText, "", false, options);
+ }else{
+ if (!isAjaxValidator) methods._closePrompt(field);
+ }
+ field.trigger("jqv.field.result", [field, options.isError, promptText]);
+ return options.isError;
+ },
+ /**
+ * Required validation
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _required: function(field, rules, i, options) {
+ switch (field.attr("type")) {
+ case "text":
+ case "password":
+ case "textarea":
+ case "file":
+ default:
+ if (!field.val())
+ return options.allrules[rules[i]].alertText;
+ break;
+ case "radio":
+ case "checkbox":
+ var name = field.attr("name");
+ if ($("input[name='" + name + "']:checked").size() == 0) {
+ if ($("input[name='" + name + "']").size() == 1)
+ return options.allrules[rules[i]].alertTextCheckboxe;
+ else
+ return options.allrules[rules[i]].alertTextCheckboxMultiple;
+ }
+ break;
+ // required for <select>
+ case "select-one":
+ // added by paul@kinetek.net for select boxes, Thank you
+ if (!field.val())
+ return options.allrules[rules[i]].alertText;
+ break;
+ case "select-multiple":
+ // added by paul@kinetek.net for select boxes, Thank you
+ if (!field.find("option:selected").val())
+ return options.allrules[rules[i]].alertText;
+ break;
+ }
+ },
+ /**
+ * Validate that 1 from the group field is required
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _groupRequired: function(field, rules, i, options) {
+ var classGroup = "[class*=" +rules[i + 1] +"]";
+ var isValid = false;
+ // Check all fields from the group
+ field.closest("form").find(classGroup).each(function(){
+ if(!methods._required($(this), rules, i, options)){
+ isValid = true;
+ return false;
+ }
+ })
+
+ if(!isValid) return options.allrules[rules[i]].alertText;
+ },
+ /**
+ * Validate Regex rules
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _customRegex: function(field, rules, i, options) {
+ var customRule = rules[i + 1];
+ var rule = options.allrules[customRule];
+ if(!rule) {
+ alert("jqv:custom rule not found "+customRule);
+ return;
+ }
+
+ var ex=rule.regex;
+ if(!ex) {
+ alert("jqv:custom regex not found "+customRule);
+ return;
+ }
+ var pattern = new RegExp(ex);
+
+ if (!pattern.test(field.val()))
+ return options.allrules[customRule].alertText;
+ },
+ /**
+ * Validate custom function outside of the engine scope
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _funcCall: function(field, rules, i, options) {
+ var functionName = rules[i + 1];
+ var fn = window[functionName];
+ if (typeof(fn) == 'function')
+ return fn(field, rules, i, options);
+
+ },
+ /**
+ * Field match
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _equals: function(field, rules, i, options) {
+ var equalsField = rules[i + 1];
+
+ if (field.val() != $("#" + equalsField).val())
+ return options.allrules.equals.alertText;
+ },
+ /**
+ * Check the maximum size (in characters)
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _maxSize: function(field, rules, i, options) {
+ var max = rules[i + 1];
+ var len = field.val().length;
+
+ if (len > max) {
+ var rule = options.allrules.maxSize;
+ return rule.alertText + max + rule.alertText2;
+ }
+ },
+ /**
+ * Check the minimum size (in characters)
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _minSize: function(field, rules, i, options) {
+ var min = rules[i + 1];
+ var len = field.val().length;
+
+ if (len < min) {
+ var rule = options.allrules.minSize;
+ return rule.alertText + min + rule.alertText2;
+ }
+ },
+ /**
+ * Check number minimum value
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _min: function(field, rules, i, options) {
+ var min = parseFloat(rules[i + 1]);
+ var len = parseFloat(field.val());
+
+ if (len < min) {
+ var rule = options.allrules.min;
+ if (rule.alertText2) return rule.alertText + min + rule.alertText2;
+ return rule.alertText + min;
+ }
+ },
+ /**
+ * Check number maximum value
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _max: function(field, rules, i, options) {
+ var max = parseFloat(rules[i + 1]);
+ var len = parseFloat(field.val());
+
+ if (len >max ) {
+ var rule = options.allrules.max;
+ if (rule.alertText2) return rule.alertText + max + rule.alertText2;
+ //orefalo: to review, also do the translations
+ return rule.alertText + max;
+ }
+ },
+ /**
+ * Checks date is in the past
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _past: function(field, rules, i, options) {
+
+ var p=rules[i + 1];
+ var pdate = (p.toLowerCase() == "now")? new Date():methods._parseDate(p);
+ var vdate = methods._parseDate(field.val());
+
+ if (vdate < pdate ) {
+ var rule = options.allrules.past;
+ if (rule.alertText2) return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
+ return rule.alertText + methods._dateToString(pdate);
+ }
+ },
+ /**
+ * Checks date is in the future
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _future: function(field, rules, i, options) {
+
+ var p=rules[i + 1];
+ var pdate = (p.toLowerCase() == "now")? new Date():methods._parseDate(p);
+ var vdate = methods._parseDate(field.val());
+
+ if (vdate > pdate ) {
+ var rule = options.allrules.future;
+ if (rule.alertText2) return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
+ return rule.alertText + methods._dateToString(pdate);
+ }
+ },
+ /**
+ * Checks if valid date
+ *
+ * @param {string} date string
+ * @return a bool based on determination of valid date
+ */
+ _isDate: function (value) {
+ var dateRegEx = new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/);
+ if (dateRegEx.test(value)) {
+ return true;
+ }
+ return false;
+ },
+ /**
+ * Checks if valid date time
+ *
+ * @param {string} date string
+ * @return a bool based on determination of valid date time
+ */
+ _isDateTime: function (value){
+ var dateTimeRegEx = new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/);
+ if (dateTimeRegEx.test(value)) {
+ return true;
+ }
+ return false;
+ },
+ //Checks if the start date is before the end date
+ //returns true if end is later than start
+ _dateCompare: function (start, end) {
+ return (new Date(start.toString()) < new Date(end.toString()));
+ },
+ /**
+ * Checks date range
+ *
+ * @param {jqObject} first field name
+ * @param {jqObject} second field name
+ * @return an error string if validation failed
+ */
+ _dateRange: function (first, second, rules, i, options) {
+ //are not both populated
+ if ((!first[0].value && second[0].value) || (first[0].value && !second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+
+ //are not both dates
+ if (!methods._isDate(first[0].value) || !methods._isDate(second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+
+ //are both dates but range is off
+ if (!methods._dateCompare(first[0].value, second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+ },
+
+
+ /**
+ * Checks date time range
+ *
+ * @param {jqObject} first field name
+ * @param {jqObject} second field name
+ * @return an error string if validation failed
+ */
+ _dateTimeRange: function (first, second, rules, i, options) {
+ //are not both populated
+ if ((!first[0].value && second[0].value) || (first[0].value && !second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+ //are not both dates
+ if (!methods._isDateTime(first[0].value) || !methods._isDateTime(second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+ //are both dates but range is off
+ if (!methods._dateCompare(first[0].value, second[0].value)) {
+ return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
+ }
+ },
+ /**
+ * Max number of checkbox selected
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _maxCheckbox: function(field, rules, i, options) {
+
+ var nbCheck = rules[i + 1];
+ var groupname = field.attr("name");
+ var groupSize = $("input[name='" + groupname + "']:checked").size();
+ if (groupSize > nbCheck) {
+ options.showArrow = false;
+ if (options.allrules.maxCheckbox.alertText2) return options.allrules.maxCheckbox.alertText + " " + nbCheck + " " + options.allrules.maxCheckbox.alertText2;
+ return options.allrules.maxCheckbox.alertText;
+ }
+ },
+ /**
+ * Min number of checkbox selected
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return an error string if validation failed
+ */
+ _minCheckbox: function(field, rules, i, options) {
+
+ var nbCheck = rules[i + 1];
+ var groupname = field.attr("name");
+ var groupSize = $("input[name='" + groupname + "']:checked").size();
+ if (groupSize < nbCheck) {
+ options.showArrow = false;
+ return options.allrules.minCheckbox.alertText + " " + nbCheck + " " +
+ options.allrules.minCheckbox.alertText2;
+ }
+ },
+ /**
+ * Ajax field validation
+ *
+ * @param {jqObject} field
+ * @param {Array[String]} rules
+ * @param {int} i rules index
+ * @param {Map}
+ * user options
+ * @return nothing! the ajax validator handles the prompts itself
+ */
+ _ajax: function(field, rules, i, options) {
+
+
+ var errorSelector = rules[i + 1];
+ var rule = options.allrules[errorSelector];
+ var extraData = rule.extraData;
+ var extraDataDynamic = rule.extraDataDynamic;
+
+ if (!extraData)
+ extraData = "";
+
+ if (extraDataDynamic) {
+ var tmpData = [];
+ var domIds = String(extraDataDynamic).split(",");
+ for (var i = 0; i < domIds.length; i++) {
+ var id = domIds[i];
+ if ($(id).length) {
+ var inputValue = field.closest("form").find(id).val();
+ var keyValue = id.replace('#', '') + '=' + escape(inputValue);
+ tmpData.push(keyValue);
+ }
+ }
+ extraDataDynamic = tmpData.join("&");
+ } else {
+ extraDataDynamic = "";
+ }
+
+ if (!options.isError) {
+ $.ajax({
+ type: "GET",
+ url: rule.url,
+ cache: false,
+ dataType: "json",
+ data: "fieldId=" + field.attr("id") + "&fieldValue=" + field.val() + "&extraData=" + extraData + "&" + extraDataDynamic,
+ field: field,
+ rule: rule,
+ methods: methods,
+ options: options,
+ beforeSend: function() {
+ // build the loading prompt
+ var loadingText = rule.alertTextLoad;
+ if (loadingText)
+ methods._showPrompt(field, loadingText, "load", true, options);
+ },
+ error: function(data, transport) {
+ methods._ajaxError(data, transport);
+ },
+ success: function(json) {
+
+ // asynchronously called on success, data is the json answer from the server
+ var errorFieldId = json[0];
+ var errorField = $($("#" + errorFieldId)[0]);
+ // make sure we found the element
+ if (errorField.length == 1) {
+ var status = json[1];
+ // read the optional msg from the server
+ var msg = json[2];
+ if (!status) {
+ // Houston we got a problem - display an red prompt
+ options.ajaxValidCache[errorFieldId] = false;
+ options.isError = true;
+
+ // resolve the msg prompt
+ if(msg) {
+ if (options.allrules[msg]) {
+ var txt = options.allrules[msg].alertText;
+ if (txt)
+ msg = txt;
+ }
+ }
+ else
+ msg = rule.alertText;
+
+ methods._showPrompt(errorField, msg, "", true, options);
+ } else {
+ if (options.ajaxValidCache[errorFieldId] !== undefined)
+ options.ajaxValidCache[errorFieldId] = true;
+
+ // resolves the msg prompt
+ if(msg) {
+ if (options.allrules[msg]) {
+ var txt = options.allrules[msg].alertTextOk;
+ if (txt)
+ msg = txt;
+ }
+ }
+ else
+ msg = rule.alertTextOk;
+
+ // see if we should display a green prompt
+ if (msg)
+ methods._showPrompt(errorField, msg, "pass", true, options);
+ else
+ methods._closePrompt(errorField);
+ }
+ }
+ }
+ });
+ }
+ },
+ /**
+ * Common method to handle ajax errors
+ *
+ * @param {Object} data
+ * @param {Object} transport
+ */
+ _ajaxError: function(data, transport) {
+ if(data.status == 0 && transport == null)
+ alert("The page is not served from a server! ajax call failed");
+ else if(typeof console != "undefined")
+ console.log("Ajax error: " + data.status + " " + transport);
+ },
+ /**
+ * date -> string
+ *
+ * @param {Object} date
+ */
+ _dateToString: function(date) {
+
+ return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
+ },
+ /**
+ * Parses an ISO date
+ * @param {String} d
+ */
+ _parseDate: function(d) {
+
+ var dateParts = d.split("-");
+ if(dateParts==d)
+ dateParts = d.split("/");
+ return new Date(dateParts[0], (dateParts[1] - 1) ,dateParts[2]);
+ },
+ /**
+ * Builds or updates a prompt with the given information
+ *
+ * @param {jqObject} field
+ * @param {String} promptText html text to display type
+ * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
+ * @param {boolean} ajaxed - use to mark fields than being validated with ajax
+ * @param {Map} options user options
+ */
+ _showPrompt: function(field, promptText, type, ajaxed, options, ajaxform) {
+ var prompt = methods._getPrompt(field);
+ // The ajax submit errors are not see has an error in the form,
+ // When the form errors are returned, the engine see 2 bubbles, but those are ebing closed by the engine at the same time
+ // Because no error was found befor submitting
+ if(ajaxform) prompt = false;
+ if (prompt)
+ methods._updatePrompt(field, prompt, promptText, type, ajaxed, options);
+ else
+ methods._buildPrompt(field, promptText, type, ajaxed, options);
+ },
+ /**
+ * Builds and shades a prompt for the given field.
+ *
+ * @param {jqObject} field
+ * @param {String} promptText html text to display type
+ * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
+ * @param {boolean} ajaxed - use to mark fields than being validated with ajax
+ * @param {Map} options user options
+ */
+ _buildPrompt: function(field, promptText, type, ajaxed, options) {
+
+ // create the prompt
+ var prompt = $('<div>');
+ prompt.addClass(methods._getClassName(field.attr("id")) + "formError");
+ // add a class name to identify the parent form of the prompt
+ if(field.is(":input")) prompt.addClass("parentForm"+methods._getClassName(field.parents('form').attr("id")));
+ prompt.addClass("formError");
+
+ switch (type) {
+ case "pass":
+ prompt.addClass("greenPopup");
+ break;
+ case "load":
+ prompt.addClass("blackPopup");
+ }
+ if (ajaxed)
+ prompt.addClass("ajaxed");
+
+ // create the prompt content
+ var promptContent = $('<div>').addClass("formErrorContent").html(promptText).appendTo(prompt);
+ // create the css arrow pointing at the field
+ // note that there is no triangle on max-checkbox and radio
+ if (options.showArrow) {
+ var arrow = $('<div>').addClass("formErrorArrow");
+
+ switch (options.promptPosition) {
+ case "bottomLeft":
+ case "bottomRight":
+ prompt.find(".formErrorContent").before(arrow);
+ arrow.addClass("formErrorArrowBottom").html('<div class="line1"><!-- --></div><div class="line2"><!-- --></div><div class="line3"><!-- --></div><div class="line4"><!-- --></div><div class="line5"><!-- --></div><div class="line6"><!-- --></div><div class="line7"><!-- --></div><div class="line8"><!-- --></div><div class="line9"><!-- --></div><div class="line10"><!-- --></div>');
+ break;
+ case "topLeft":
+ case "topRight":
+ arrow.html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
+ prompt.append(arrow);
+ break;
+ }
+ }
+
+ //Cedric: Needed if a container is in position:relative
+ // insert prompt in the form or in the overflown container?
+ if (options.isOverflown)
+ field.before(prompt);
+ else
+ $("body").append(prompt);
+
+ var pos = methods._calculatePosition(field, prompt, options);
+ prompt.css({
+ "top": pos.callerTopPosition,
+ "left": pos.callerleftPosition,
+ "marginTop": pos.marginTopSize,
+ "opacity": 0
+ });
+
+ return prompt.animate({
+ "opacity": 0.87
+ });
+
+ },
+ /**
+ * Updates the prompt text field - the field for which the prompt
+ * @param {jqObject} field
+ * @param {String} promptText html text to display type
+ * @param {String} type the type of bubble: 'pass' (green), 'load' (black) anything else (red)
+ * @param {boolean} ajaxed - use to mark fields than being validated with ajax
+ * @param {Map} options user options
+ */
+ _updatePrompt: function(field, prompt, promptText, type, ajaxed, options) {
+
+ if (prompt) {
+ if (type == "pass")
+ prompt.addClass("greenPopup");
+ else
+ prompt.removeClass("greenPopup");
+
+ if (type == "load")
+ prompt.addClass("blackPopup");
+ else
+ prompt.removeClass("blackPopup");
+
+ if (ajaxed)
+ prompt.addClass("ajaxed");
+ else
+ prompt.removeClass("ajaxed");
+
+ prompt.find(".formErrorContent").html(promptText);
+
+ var pos = methods._calculatePosition(field, prompt, options);
+ prompt.animate({
+ "top": pos.callerTopPosition,
+ "left": pos.callerleftPosition,
+ "marginTop": pos.marginTopSize
+ });
+ }
+ },
+ /**
+ * Closes the prompt associated with the given field
+ *
+ * @param {jqObject}
+ * field
+ */
+ _closePrompt: function(field) {
+
+ var prompt = methods._getPrompt(field);
+ if (prompt)
+ prompt.fadeTo("fast", 0, function() {
+ prompt.remove();
+ });
+ },
+ closePrompt: function(field) {
+ return methods._closePrompt(field);
+ },
+ /**
+ * Returns the error prompt matching the field if any
+ *
+ * @param {jqObject}
+ * field
+ * @return undefined or the error prompt (jqObject)
+ */
+ _getPrompt: function(field) {
+ var className = field.attr("id").replace(":","_") + "formError";
+ var match = $("." + methods._escapeExpression(className))[0];
+ if (match)
+ return $(match);
+ },
+ /**
+ * Returns the escapade classname
+ *
+ * @param {selector}
+ * className
+ */
+ _escapeExpression: function (selector) {
+ return selector.replace(/([#;&,\.\+\*\~':"\!\^$\[\]\(\)=>\|])/g, "\\$1");
+ },
+ /**
+ * Calculates prompt position
+ *
+ * @param {jqObject}
+ * field
+ * @param {jqObject}
+ * the prompt
+ * @param {Map}
+ * options
+ * @return positions
+ */
+ _calculatePosition: function (field, promptElmt, options) {
+
+ var promptTopPosition, promptleftPosition, marginTopSize;
+ var fieldWidth = field.width();
+ var promptHeight = promptElmt.height();
+
+ var overflow = options.isOverflown;
+ if (overflow) {
+ // is the form contained in an overflown container?
+ promptTopPosition = promptleftPosition = 0;
+ // compensation for the arrow
+ marginTopSize = -promptHeight;
+ } else {
+ var offset = field.offset();
+ promptTopPosition = offset.top;
+ promptleftPosition = offset.left;
+ marginTopSize = 0;
+ }
+
+ switch (options.promptPosition) {
+
+ default:
+ case "topRight":
+ if (overflow)
+ // Is the form contained in an overflown container?
+ promptleftPosition += fieldWidth - 30;
+ else {
+ promptleftPosition += fieldWidth - 30;
+ promptTopPosition += -promptHeight -2;
+ }
+ break;
+ case "topLeft":
+ promptTopPosition += -promptHeight - 10;
+ break;
+ case "centerRight":
+ promptleftPosition += fieldWidth + 13;
+ break;
+ case "bottomLeft":
+ promptTopPosition = promptTopPosition + field.height() + 15;
+ break;
+ case "bottomRight":
+ promptleftPosition += fieldWidth - 30;
+ promptTopPosition += field.height() + 5;
+ }
+
+ return {
+ "callerTopPosition": promptTopPosition + 23 + "px",
+ "callerleftPosition": promptleftPosition + 50 + "px",
+ "marginTopSize": marginTopSize + "px"
+ };
+ },
+ /**
+ * Saves the user options and variables in the form.data
+ *
+ * @param {jqObject}
+ * form - the form where the user option should be saved
+ * @param {Map}
+ * options - the user options
+ * @return the user options (extended from the defaults)
+ */
+ _saveOptions: function(form, options) {
+
+ // is there a language localisation ?
+ if ($.validationEngineLanguage)
+ var allRules = $.validationEngineLanguage.allRules;
+ else
+ $.error("jQuery.validationEngine rules are not loaded, plz add localization files to the page");
+ // --- Internals DO NOT TOUCH or OVERLOAD ---
+ // validation rules and i18
+ $.validationEngine.defaults.allrules = allRules;
+
+ var userOptions = $.extend({},$.validationEngine.defaults, options);
+
+ form.data('jqv', userOptions);
+ return userOptions;
+ },
+
+ /**
+ * Removes forbidden characters from class name
+ * @param {String} className
+ */
+ _getClassName: function(className) {
+ return className.replace(":","_").replace(".","_");
+ }
+ };
+
+ /**
+ * Plugin entry point.
+ * You may pass an action as a parameter or a list of options.
+ * if none, the init and attach methods are being called.
+ * Remember: if you pass options, the attached method is NOT called automatically
+ *
+ * @param {String}
+ * method (optional) action
+ */
+ $.fn.validationEngine = function(method) {
+
+ var form = $(this);
+ if(!form[0]) return false; // stop here if the form does not exist
+
+ if (typeof(method) == 'string' && method.charAt(0) != '_' && methods[method]) {
+
+ // make sure init is called once
+ if(method != "showPrompt" && method != "hidePrompt" && method != "hide" && method != "hideAll")
+ methods.init.apply(form);
+
+ return methods[method].apply(form, Array.prototype.slice.call(arguments, 1));
+ } else if (typeof method == 'object' || !method) {
+ // default constructor with or without arguments
+
+ methods.init.apply(form, arguments);
+ return methods.attach.apply(form);
+ } else {
+ $.error('Method ' + method + ' does not exist in jQuery.validationEngine');
+ }
+ };
+ // LEAK GLOBAL OPTIONS
+ $.validationEngine= {defaults:{
+
+ // Name of the event triggering field validation
+ validationEventTrigger: "blur",
+ // Automatically scroll viewport to the first error
+ scroll: true,
+ // Opening box position, possible locations are: topLeft,
+ // topRight, bottomLeft, centerRight, bottomRight
+ promptPosition: "topRight",
+ bindMethod:"bind",
+ // internal, automatically set to true when it parse a _ajax rule
+ inlineAjax: false,
+ // if set to true, the form data is sent asynchronously via ajax to the form.action url (get)
+ ajaxFormValidation: false,
+ // Ajax form validation callback method: boolean onComplete(form, status, errors, options)
+ // retuns false if the form.submit event needs to be canceled.
+ ajaxFormValidationURL: false,
+ // The url to send the submit ajax validation (default to action)
+ onAjaxFormComplete: $.noop,
+ // called right before the ajax call, may return false to cancel
+ onBeforeAjaxFormValidation: $.noop,
+ // Stops form from submitting and execute function assiciated with it
+ onValidationComplete: false,
+
+ // Used when the form is displayed within a scrolling DIV
+ isOverflown: false,
+ overflownDIV: "",
+
+ // true when form and fields are binded
+ binded: false,
+ // set to true, when the prompt arrow needs to be displayed
+ showArrow: true,
+ // did one of the validation fail ? kept global to stop further ajax validations
+ isError: false,
+ // Caches field validation status, typically only bad status are created.
+ // the array is used during ajax form validation to detect issues early and prevent an expensive submit
+ ajaxValidCache: {}
+
+ }}
+
+})(jQuery);
Index: branches/1.0.x/inc/js/validate/jquery.validationEngine-ru.js
===================================================================
--- branches/1.0.x/inc/js/validate/jquery.validationEngine-ru.js (nonexistent)
+++ branches/1.0.x/inc/js/validate/jquery.validationEngine-ru.js (revision 14600)
@@ -0,0 +1,126 @@
+(function($){
+ $.fn.validationEngineLanguage = function(){
+ };
+ $.validationEngineLanguage = {
+ newLang: function(){
+ $.validationEngineLanguage.allRules = {
+ "required": { // Add your regex rules here, you can take telephone as an example
+ "regex": "none",
+ "alertText": "Поле обязательно для заполнения",
+ "alertTextCheckboxMultiple": "* Выберите вариант",
+ "alertTextCheckboxe": "* Необходимо отметить"
+ },
+ "minSize": {
+ "regex": "none",
+ "alertText": "* Минимум ",
+ "alertText2": " символа(ов)"
+ },
+ "maxSize": {
+ "regex": "none",
+ "alertText": "* Максимум ",
+ "alertText2": " символа(ов)"
+ },
+ "groupRequired": {
+ "regex": "none",
+ "alertText": "* You must fill one of the following fields"
+ },
+ "min": {
+ "regex": "none",
+ "alertText": "* Минимальное значение "
+ },
+ "max": {
+ "regex": "none",
+ "alertText": "* Максимальное значение "
+ },
+ "past": {
+ "regex": "none",
+ "alertText": "* Дата до "
+ },
+ "future": {
+ "regex": "none",
+ "alertText": "* Дата от "
+ },
+ "maxCheckbox": {
+ "regex": "none",
+ "alertText": "* Нельзя выбрать столько вариантов"
+ },
+ "minCheckbox": {
+ "regex": "none",
+ "alertText": "* Пожалуйста, выберите ",
+ "alertText2": " опцию(ии)"
+ },
+ "equals": {
+ "regex": "none",
+ "alertText": "* Поля не совпадают"
+ },
+ "phone": {
+ // credit: jquery.h5validate.js / orefalo
+ "regex": /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,
+ "alertText": "* Неправильный формат телефона"
+ },
+ "email": {
+ // Shamelessly lifted from Scott Gonzalez via the Bassistance Validation plugin http://projects.scottsplayground.com/email_address_validation/
+ "regex": /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,
+ "alertText": "E-Mail введен не корректно"
+ },
+ "integer": {
+ "regex": /^[\-\+]?\d+$/,
+ "alertText": "* Не целое число"
+ },
+ "number": {
+ // Number, including positive, negative, and floating decimal. credit: orefalo
+ "regex": /^[\-\+]?(([0-9]+)([\.,]([0-9]+))?|([\.,]([0-9]+))?)$/,
+ "alertText": "* Неправильное число с плавающей точкой"
+ },
+ "date": {
+ "regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
+ "alertText": "* Неправильная дата (должно быть в ДД.MM.ГГГГ формате)"
+ },
+ "ipv4": {
+ "regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
+ "alertText": "* Неправильный IP-адрес"
+ },
+ "url": {
+ "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
+ "alertText": "* Неправильный URL"
+ },
+ "onlyNumberSp": {
+ "regex": /^[0-9\ ]+$/,
+ "alertText": "* Только числа"
+ },
+ "onlyLetterSp": {
+ "regex": /^[a-zA-Z\u0400-\u04FF\ \']+$/,
+ "alertText": "* Только буквы"
+ },
+ "onlyLetterNumber": {
+ "regex": /^[0-9a-zA-Z\u0400-\u04FF]+$/,
+ "alertText": "* Запрещены специальные символы"
+ },
+ // --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings
+ "ajaxUserCall": {
+ "url": "ajaxValidateFieldUser",
+ // you may want to pass extra data on the ajax call
+ "extraData": "name=eric",
+ "alertText": "* Этот пользователь уже занят",
+ "alertTextLoad": "* Проверка, подождите..."
+ },
+ "ajaxNameCall": {
+ // remote json service location
+ "url": "ajaxValidateFieldName",
+ // error
+ "alertText": "* Это имя уже занято",
+ // if you provide an "alertTextOk", it will show as a green prompt when the field validates
+ "alertTextOk": "* Это имя доступно",
+ // speaks by itself
+ "alertTextLoad": "* Проверка, подождите..."
+ },
+ "validate2fields": {
+ "alertText": "* Пожалуйста, введите HELLO"
+ }
+ };
+
+ }
+ };
+ $.validationEngineLanguage.newLang();
+})(jQuery);
+
Index: branches/1.0.x/inc/js/jquery.flexslider-min.js
===================================================================
--- branches/1.0.x/inc/js/jquery.flexslider-min.js (nonexistent)
+++ branches/1.0.x/inc/js/jquery.flexslider-min.js (revision 14600)
@@ -0,0 +1,9 @@
+/*
+ * jQuery FlexSlider v1.0 (Release)
+ * http://flex.madebymufffin.com
+ *
+ * Copyright 2011, Tyler Smith
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+(function(a){a.fn.extend({flexslider:function(q){var h={animation:"fade",slideshow:true,slideshowSpeed:7000,animationDuration:500,directionNav:true,controlNav:true,keyboardNav:true,prevText:"Previous",nextText:"Next",slideToStart:0,pauseOnAction:true,pauseOnHover:false,controlsContainer:""};var q=a.extend(h,q),d=a(this),c=a(".slides",d),b=a(".slides li",d),g=false,m=q.slideToStart;if(q.animation.toLowerCase()=="slide"){b.show();d.css({overflow:"hidden"});b.width(d.width()).css({"float":"left"});c.width((b.length*d.width())+200)}else{b.hide().eq(m).fadeIn(400)}function o(i){if(!g){g=true;if(q.animation.toLowerCase()=="slide"){c.animate({"margin-left":(-1*i)*d.width()+"px"},q.animationDuration,function(){g=false;m=i})}else{d.css({minHeight:b.eq(m).height()});b.eq(m).fadeOut(q.animationDuration,function(){b.eq(i).fadeIn(q.animationDuration,function(){g=false;m=i});d.css({minHeight:"inherit"})})}}}if(q.controlNav){if(b.size()>1){var e=a('<ol class="flex-control-nav"></ol>');var k=1;for(var l=0;l<b.size();l++){e.append("<li><a>"+k+"</a></li>");k++}if(a(q.controlsContainer).length>0){a(q.controlsContainer).append(e)}else{d.append(e)}}e=a(".flex-control-nav li a");e.eq(m).addClass("active");e.click(function(j){j.preventDefault();if(a(this).hasClass("active")||g){return}else{e.removeClass("active");a(this).addClass("active");var i=e.index(a(this));o(i);if(q.pauseOnAction){clearInterval(n)}}})}if(q.directionNav){if(a(q.controlsContainer).length>0){a(q.controlsContainer).append(a('<ul class="flex-direction-nav"><li><a class="prev" href="#">'+q.prevText+'</a></li><li><a class="next" href="#">'+q.nextText+"</a></li></ul>"))}else{d.append(a('<ul class="flex-direction-nav"><li><a class="prev" href="#">'+q.prevText+'</a></li><li><a class="next" href="#">'+q.nextText+"</a></li></ul>"))}a(".flex-direction-nav li a").click(function(i){i.preventDefault();if(g){return}else{if(a(this).hasClass("next")){var j=(m==b.length-1)?0:m+1}else{var j=(m==0)?b.length-1:m-1}if(q.controlNav){e.removeClass("active");e.eq(j).addClass("active")}o(j);if(q.pauseOnAction){clearInterval(n)}}})}if(q.keyboardNav){a(document).keyup(function(i){if(g){return}else{if(i.keyCode!=39&&i.keyCode!=37){return}else{if(i.keyCode==39){var j=(m==b.length-1)?0:m+1}else{if(i.keyCode==37){var j=(m==0)?b.length-1:m-1}}if(q.controlNav){e.removeClass("active");e.eq(j).addClass("active")}o(j);if(q.pauseOnAction){clearInterval(n)}}}})}if(q.slideshow){var n;function p(){if(g){return}else{var i=(m==b.length-1)?0:m+1;if(q.controlNav){e.removeClass("active");e.eq(i).addClass("active")}o(i)}}if(q.pauseOnHover){d.hover(function(){clearInterval(n)},function(){n=setInterval(p,q.slideshowSpeed)})}if(b.length>1){n=setInterval(p,q.slideshowSpeed)}}if(q.animation.toLowerCase()=="slide"){var f;a(window).resize(function(){b.width(d.width());c.width((b.length*d.width())+200);clearTimeout(f);f=setTimeout(function(){o(m)},300)})}}})})(jQuery);
\ No newline at end of file
Index: branches/1.0.x/inc/js/ui/jquery.ui.core.min.js
===================================================================
--- branches/1.0.x/inc/js/ui/jquery.ui.core.min.js (nonexistent)
+++ branches/1.0.x/inc/js/ui/jquery.ui.core.min.js (revision 14600)
@@ -0,0 +1,18 @@
+/*!
+ * jQuery UI 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.15",
+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}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
+this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
+"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
+"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
+outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
+"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
+a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
+c.ui.isOverAxis(b,e,i)}})}})(jQuery);
Index: branches/1.0.x/inc/js/ui/jquery.ui.tabs.min.js
===================================================================
--- branches/1.0.x/inc/js/ui/jquery.ui.tabs.min.js (nonexistent)
+++ branches/1.0.x/inc/js/ui/jquery.ui.tabs.min.js (revision 14600)
@@ -0,0 +1,35 @@
+/*
+ * jQuery UI Tabs 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
+d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
+(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){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");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
+this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
+g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
+function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
+this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
+-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
+d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;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 e=
+d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(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")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
+e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
+j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
+if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
+this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
+load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
+"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
+url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.15"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
+a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
Index: branches/1.0.x/inc/js/ui/jquery.ui.accordion.min.js
===================================================================
--- branches/1.0.x/inc/js/ui/jquery.ui.accordion.min.js (nonexistent)
+++ branches/1.0.x/inc/js/ui/jquery.ui.accordion.min.js (revision 14600)
@@ -0,0 +1,30 @@
+/*
+ * jQuery UI Accordion 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
+a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
+function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
+this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.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 a=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 b=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");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
+b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
+a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
+c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
+if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.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);
+if(!b){a.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);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){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 g=this.active.next(),
+e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
+e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
+"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.15",
+animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
+f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
+paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
Index: branches/1.0.x/inc/js/ui/jquery.ui.slider.min.js
===================================================================
--- branches/1.0.x/inc/js/ui/jquery.ui.slider.min.js (nonexistent)
+++ branches/1.0.x/inc/js/ui/jquery.ui.slider.min.js (revision 14600)
@@ -0,0 +1,33 @@
+/*
+ * jQuery UI Slider 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
+this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle",
+g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length?
+(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i-
+m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
+return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false;
+this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
+this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
+this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
+c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
+a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
+this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):
+this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
+this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
+return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
+this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e-
+g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"},
+b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.15"})})(jQuery);
Index: branches/1.0.x/inc/js/ui/jquery.ui.widget.min.js
===================================================================
--- branches/1.0.x/inc/js/ui/jquery.ui.widget.min.js (nonexistent)
+++ branches/1.0.x/inc/js/ui/jquery.ui.widget.min.js (revision 14600)
@@ -0,0 +1,15 @@
+/*!
+ * jQuery UI Widget 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
+a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
+e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
+this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
+widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
+enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
Index: branches/1.0.x/inc/js/jcookie.js
===================================================================
--- branches/1.0.x/inc/js/jcookie.js (nonexistent)
+++ branches/1.0.x/inc/js/jcookie.js (revision 14600)
@@ -0,0 +1 @@
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('j.5=u(9,a,2){6(h a!=\'v\'){2=2||{};6(a===m){a=\'\';2.3=-1}4 3=\'\';6(2.3&&(h 2.3==\'n\'||2.3.k)){4 7;6(h 2.3==\'n\'){7=w C();7.B(7.z()+(2.3*A*o*o*E))}l{7=2.3}3=\'; 3=\'+7.k()}4 8=2.8?\'; 8=\'+2.8:\'\';4 b=2.b?\'; b=\'+2.b:\'\';4 c=2.c?\'; c\':\'\';d.5=[9,\'=\',q(a),3,8,b,c].t(\'\')}l{4 g=m;6(d.5&&d.5!=\'\'){4 e=d.5.x(\';\');D(4 i=0;i<e.f;i++){4 5=j.r(e[i]);6(5.p(0,9.f+1)==(9+\'=\')){g=y(5.p(9.f+1));s}}}F g}};',42,42,'||options|expires|var|cookie|if|date|path|name|value|domain|secure|document|cookies|length|cookieValue|typeof||jQuery|toUTCString|else|null|number|60|substring|encodeURIComponent|trim|break|join|function|undefined|new|split|decodeURIComponent|getTime|24|setTime|Date|for|1000|return'.split('|'),0,{}))
Index: branches/1.0.x/inc/pikachoose.css
===================================================================
--- branches/1.0.x/inc/pikachoose.css (nonexistent)
+++ branches/1.0.x/inc/pikachoose.css (revision 14600)
@@ -0,0 +1,31 @@
+/*if you just want to adjust the size of the stage and the thumbnails, you can do so by editing the following lines: */
+.pika-thumbs li{width: 58px; height:58px;}
+
+.pika-stage {position: relative;}
+
+/*if you change the padding on pika-stage you must adjust the top left of this to match! */
+.pika-stage .main-image {position: absolute; top: 10px; left: 10px;}
+.pika-stage .pika-aniwrap{position: absolute; top: 10px; left: 0px;}
+.pika-stage .pika-aniwrap{width:100%;}
+.pika-stage .pika-ani {position:relative;display: none;z-index:2;margin:0 auto;}
+.pika-stage img {border:0;height:100%;}
+
+.pika-imgnav,
+.pika-counter,
+.pika-textnav {display: none;}
+
+.pika-thumbs {
+ margin-top: 340px;
+ overflow: hidden;
+ position: absolute;
+ width: 100%;
+}
+.pika-thumbs li {
+ border: 1px solid #dedede;
+ cursor: pointer;
+ float: left;
+ margin: 0 8px 8px 0;
+ padding: 3px 8px;
+}
+.pika-thumbs li:last {margin: 0;}
+.pika-thumbs li .clip {position:relative;height:100%;text-align: center; vertical-align: center; overflow: hidden;}
Index: branches/1.0.x/inc/ui/jquery.ui.accordion.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.accordion.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.accordion.css (revision 14600)
@@ -0,0 +1,16 @@
+/*
+ * jQuery UI Accordion 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 20px; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; top: 50%; margin-top: -4px; }
+.ui-accordion .ui-accordion-content { overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
Index: branches/1.0.x/inc/ui/jquery.ui.slider.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.slider.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.slider.css (revision 14600)
@@ -0,0 +1,24 @@
+/*
+ * jQuery UI Slider 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }
\ No newline at end of file
Index: branches/1.0.x/inc/ui/jquery.ui.theme.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.theme.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.theme.css (revision 14600)
@@ -0,0 +1,223 @@
+/*
+ * jQuery UI CSS Framework 1.8.15
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
+.ui-widget-content a { color: #222222/*{fcContent}*/; }
+.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
+.ui-widget-header a { color: #222222/*{fcHeader}*/; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
+.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file
Index: branches/1.0.x/inc/ui/jquery.ui.accordion2.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.accordion2.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.accordion2.css (revision 14600)
@@ -0,0 +1,19 @@
+/*
+ * jQuery UI Accordion 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
Index: branches/1.0.x/inc/ui/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-icons_888888_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-icons_888888_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_glass_75_dadada_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_glass_75_dadada_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_flat_75_ffffff_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_flat_75_ffffff_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-icons_454545_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-icons_454545_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/1.0.x/inc/ui/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/1.0.x/inc/ui/jquery.ui.theme2.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.theme2.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.theme2.css (revision 14600)
@@ -0,0 +1,247 @@
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
+.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
+.ui-widget-content a { color: #222222/*{fcContent}*/; }
+.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
+.ui-widget-header a { color: #222222/*{fcHeader}*/; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
+.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file
Index: branches/1.0.x/inc/ui/jquery.ui.all.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.all.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.all.css (revision 14600)
@@ -0,0 +1,11 @@
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming
+ */
+@import "jquery.ui.base.css";
+@import "jquery.ui.theme.css";
Index: branches/1.0.x/inc/ui/jquery.ui.core.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.core.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.core.css (revision 14600)
@@ -0,0 +1,41 @@
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
Index: branches/1.0.x/inc/ui/jquery.ui.tabs.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.tabs.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.tabs.css (revision 14600)
@@ -0,0 +1,18 @@
+/*
+ * jQuery UI Tabs 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
Index: branches/1.0.x/inc/ui/jquery.ui.base.css
===================================================================
--- branches/1.0.x/inc/ui/jquery.ui.base.css (nonexistent)
+++ branches/1.0.x/inc/ui/jquery.ui.base.css (revision 14600)
@@ -0,0 +1,4 @@
+@import url("jquery.ui.core.css");
+@import url("jquery.ui.accordion.css");
+@import url("jquery.ui.slider.css");
+@import url("jquery.ui.tabs.css");
\ No newline at end of file
Index: branches/1.0.x/inc/compare.css
===================================================================
--- branches/1.0.x/inc/compare.css (nonexistent)
+++ branches/1.0.x/inc/compare.css (revision 14600)
@@ -0,0 +1,77 @@
+@charset "UTF-8";
+
+/* Compare Page
+*******************************************************************************/
+#content .compare { padding: 20px; }
+.good-item {
+ border-right: 1px dotted #333;
+ float: left;
+ min-height: 450px;
+ padding: 0 0 15px;
+ width: 225px;
+}
+.good-item.last-child {
+ border-right: none;
+}
+.good-item .button-delete {
+ padding: 0 0 10px 0;
+ text-align: center;
+}
+.good-item .rating { padding: 10px 0 0; text-align: center; }
+.good-item .rating p { padding: 5px 0 0; }
+.good-item .har { text-align: left; }
+.good-item .har dt { float: left; font-weight: bold; padding: 0 10px 3px 0; width: 100px; }
+.good-item .har dd { float: left; width: 80px; }
+
+.buttons-block { padding-top: 120px; text-align: center; }
+.compare-button {
+ background: url(/i/bg-button-compare-left.jpg) no-repeat 0 0;
+ color: #323232;
+ display: inline-block;
+ font-size: 1.385em;
+ font-weight: bold;
+ text-decoration: none;
+}
+.compare-button span {
+ background: url(/i/bg-button-compare-right.jpg) no-repeat 100% 0;
+ display: inline-block;
+ height: 60px;
+ padding: 10px 20px;
+ text-align: center;
+}
+
+/*** Compare accordion ***/
+#compare-menu h3 {
+ background: #fff url(/i/bg-form-fieldset.jpg) repeat-x 0 0;
+ color: #5b5b5b;
+ cursor: pointer;
+ font-weight: bold;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 16px;
+ position: relative;
+}
+#compare-menu a { color: #5b5b5b; padding-left: 20px; text-decoration: none; }
+#compare-menu h3.active a { color: #fff; }
+#compare-menu .ui-icon-circle-arrow-e {
+ background: url(/i/bullet-menu.png) no-repeat 0 -22px;
+ height: 6px;
+ width: 10px;
+}
+#compare-menu .ui-icon-circle-arrow-s {
+ background: url(/i/bullet-menu.png) no-repeat 0 -6px;
+ height: 6px;
+ width: 10px;
+}
+#compare-menu .good-item-cell {
+ border-right: 1px dotted #333;
+ float: left;
+ max-height: 450px;
+ padding-bottom: 25px;
+ width: 225px;
+}
+#compare-menu .good-item-cell .description {
+ max-height: 450px;
+ overflow-x: hidden;
+ padding: 5px 16px;
+}
Index: branches/1.0.x/designs/form.tpl
===================================================================
--- branches/1.0.x/designs/form.tpl (nonexistent)
+++ branches/1.0.x/designs/form.tpl (revision 14600)
@@ -0,0 +1,46 @@
+<!--##
+<NAME>Online Form - Section Template</NAME>
+<DESC>Online Form</DESC>
+<SECTION>Pages</SECTION>
+##-->
+<inp2:m_include template="elements/dynamic_forms.elm"/>
+
+<!--## DEFINE MAIN CONTENT ELEMENT ##-->
+<inp2:m_DefineElement name="content">
+
+ <inp2:st_ContentBlock num="1"/>
+
+ <form method="post" action="<inp2:m_Link m_cat_id="0" m_cat_page="1"/>" id="ContactForm">
+ <div>
+
+ <inp2:formsubs_PresetFormFields/>
+
+ <inp2:m_if check="formsubs_HasError" field="any">
+ <div class="wrapper red"><inp2:m_RenderElement name="error_message" /></div>
+ </inp2:m_if>
+
+ <inp2:formflds_PrintList render_as="form_field" SourcePrefix="formsubs" per_page="-1"/>
+
+ <inp2:m_if check="form_Field" name="UseSecurityImage" db="db">
+ <inp2:m_RenderElement name="inp_edit_captcha" prefix="formsubs"/>
+ </inp2:m_if>
+
+ <a href="javascript:;" class="button" style="" onclick="document.getElementById('ContactForm').submit();"><inp2:m_Phrase label='lu_btn_Send'/></a>
+ <a href="javascript:;" class="button" onclick="document.getElementById('ContactForm').reset();"><inp2:m_Phrase label='lu_btn_Clear'/></a>
+
+ <input type="hidden" name="events[formsubs][OnCreate]" value="1"/>
+ <input type="hidden" name="<inp2:formsubs_InputName field="FormId"/>" value="<inp2:m_Get var="form_id"/>"/>
+ <input type="hidden" name="form_id" value="<inp2:m_Get var="form_id"/>"/>
+ <input type="hidden" name="success_template" value="<inp2:st_Field name="FormSubmittedTemplate"/>"/>
+
+ </div>
+ </form>
+
+ <inp2:st_ContentBlock num="2"/>
+
+</inp2:m_DefineElement>
+<!--## /DEFINE MAIN CONTENT ELEMENT ##-->
+
+<!--## INCLUDE MAIN DESIGN TEMPLATE ##-->
+<inp2:m_include template="designs/default_design.des" />
+<!--## /INCLUDE MAIN DESIGN TEMPLATE ##-->
\ No newline at end of file
Index: branches/1.0.x/designs/.smsignore
===================================================================
--- branches/1.0.x/designs/.smsignore (nonexistent)
+++ branches/1.0.x/designs/.smsignore (revision 14600)
@@ -0,0 +1 @@
+.*\.tpl
\ No newline at end of file
Index: branches/1.0.x/designs/default_design.des.tpl
===================================================================
--- branches/1.0.x/designs/default_design.des.tpl (nonexistent)
+++ branches/1.0.x/designs/default_design.des.tpl (revision 14600)
@@ -0,0 +1,35 @@
+<inp2:m_CheckSSL/>
+
+<html lang="<inp2:lang.current_Field name='Locale' db='1'/>">
+ <head>
+ <title><inp2:m_GetConfig name="Site_Name"/> &mdash; <inp2:st_PageInfo type="title"/></title>
+ <inp2:m_Include template="elements/html_head.elm" strip_nl="2"/>
+ <inp2:m_Include template="elements/content_boxes.elm" strip_nl="2"/> <!--## includes system elements ##-->
+ </head>
+
+ <body>
+
+ <!--## System tag please do not remove ##-->
+ <inp2:st_EditPage mode="start"/>
+
+ <div class="main">
+
+
+ <inp2:m_Include template="elements/header.elm" />
+
+
+ <inp2:m_RenderElement name="content"/>
+
+
+ <inp2:m_Include template="elements/footer.elm" />
+
+ </div>
+ <!--footer end-->
+
+ <inp2:st_EditPage mode="end"/> <!--## /System tag please do not remove ##-->
+
+ <inp2:m_Include template="elements/tracking.elm" />
+
+ <script type="text/javascript"> Cufon.now(); </script>
+ </body>
+</html>
\ No newline at end of file
Index: branches/1.0.x/designs/general.tpl
===================================================================
--- branches/1.0.x/designs/general.tpl (nonexistent)
+++ branches/1.0.x/designs/general.tpl (revision 14600)
@@ -0,0 +1,22 @@
+<!--##
+<NAME>General - Section Template</NAME>
+<DESC>General</DESC>
+<SECTION>Pages</SECTION>
+##-->
+
+<!--## DEFINE MAIN CONTENT ELEMENT ##-->
+<inp2:m_DefineElement name="content">
+
+ <h2><inp2:st_PageInfo type="title"/></h2>
+
+ <inp2:st_ContentBlock num="1"/>
+
+ <inp2:st_ContentBlock num="2"/>
+
+
+</inp2:m_DefineElement>
+<!--## /DEFINE MAIN CONTENT ELEMENT ##-->
+
+<!--## INCLUDE MAIN DESIGN TEMPLATE ##-->
+<inp2:m_include template="designs/default_design.des"/>
+<!--## /INCLUDE MAIN DESIGN TEMPLATE ##-->
\ No newline at end of file
Index: branches/1.0.x/elements/captcha_image.elm.tpl
===================================================================
--- branches/1.0.x/elements/captcha_image.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/captcha_image.elm.tpl (revision 14600)
@@ -0,0 +1 @@
+<inp2:m_CaptchaImage/>
\ No newline at end of file
Index: branches/1.0.x/elements/html_head.elm.tpl
===================================================================
--- branches/1.0.x/elements/html_head.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/html_head.elm.tpl (revision 14600)
@@ -0,0 +1,50 @@
+<inp2:m_if check="c.current_Field" name="MetaKeywords">
+ <meta name="Keywords" content="<inp2:c.current_Field name='MetaKeywords'/>"/>
+<inp2:m_else/>
+ <meta name="Keywords" content="<inp2:m_GetConfig name='Category_MetaKey'/>"/>
+</inp2:m_if>
+<inp2:m_if check="c.current_Field" name="MetaDescription">
+ <meta name="Description" content="<inp2:c.current_Field name='MetaDescription'/>"/>
+<inp2:m_else/>
+ <meta name="Description" content="<inp2:m_GetConfig name='Category_MetaDesc'/>"/>
+</inp2:m_if>
+<meta name="author" content="<inp2:m_GetConfig name='Site_Name'/>"/>
+<meta http-equiv="content-type" content="text/html; charset=<inp2:lang.current_Field name='Charset'/>" />
+
+<link rel="icon" href="<inp2:m_BaseURL/>favicon.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="<inp2:m_BaseURL/>favicon.ico" type="image/x-icon" />
+
+<!--## CSS ##-->
+<link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/reset.css|inc/layout.css|inc/styles.css'/>" media="all" charset="<inp2:lang.current_Field name='Charset'/>"/>
+
+<!--## JS FOR ADMIN ##-->
+<inp2:st_EditingScripts/>
+
+<!--## JS FOR FRONT ##-->
+<inp2:m_ifnot check="m_GetConst" name="EDITING_MODE">
+ <!--## EXCLUDE THIS JS WHEN IN ADMIN ##-->
+ <script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/jquery-1.4.4.min.js"></script>
+</inp2:m_ifnot>
+
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/jcookie.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/cufon-yui.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/cufon-replace.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/Myriad_Pro_400.font.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/Myriad_Pro_700.font.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase />inc/js/Myriad_Pro_600.font.js"></script>
+
+<inp2:m_Comment>
+<!--[if lt IE 9]>
+ <script type="text/javascript" src="<inp2:m_TemplatesBase/>inc/js/ie6_script_other.js"></script>
+ <script type="text/javascript" src="<inp2:m_TemplatesBase/>inc/js/html5.js"></script>
+<![endif]-->
+</inp2:m_Comment>
+
+<!--##
+<script type="text/javascript">
+
+$(document).ready(function() {
+ $('li.active').prev('li').addClass('beforeactive');
+});
+</script>
+##-->
Index: branches/1.0.x/elements/header.elm.tpl
===================================================================
--- branches/1.0.x/elements/header.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/header.elm.tpl (revision 14600)
@@ -0,0 +1,32 @@
+<!--##
+<inp2:m_DefineElement name="lang_elem" no_editing="1">
+ <inp2:m_if check="SelectedLanguage">
+ <span><inp2:Field name="LocalName"/></span>
+ <inp2:m_else/>
+ <a href="<inp2:LanguageLink/>"><inp2:Field name="LocalName"/></a>
+ </inp2:m_if>
+ <inp2:m_ifnot check="m_Param" name="is_last"> | </inp2:m_ifnot>
+</inp2:m_DefineElement>
+
+<inp2:lang_ListLanguages render_as="lang_elem" no_table="1"/>
+##-->
+
+<div class="wrapper">
+ <h1><a href="<inp2:m_Link template="index" m_cat_id="0" />" id="logo" title="<inp2:m_GetConfig name="Site_Name"/>"><inp2:m_GetConfig name="Site_Name"/></a></h1>
+ <form id="search" action="<inp2:m_Link template='search' use_section='1'/>" method="get">
+ <div class="bg">
+ <input type="submit" class="submit" value="">
+ <input type="text" class="input" name="keywords" value="">
+ <inp2:m_GetFormHiddens template="search" />
+ </div>
+ </form>
+</div>
+
+<inp2:m_Include template="elements/navigation_menu.elm" />
+
+<div class="wrapper">
+ <div class="text">
+ <span class="text1"><inp2:m_Phrase label="lu_text_PromoHeader1"/></span>
+ <inp2:st_ContentBlock num="100" page="index"/>
+ </div>
+</div>
\ No newline at end of file
Index: branches/1.0.x/elements/content_boxes.elm.tpl
===================================================================
--- branches/1.0.x/elements/content_boxes.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/content_boxes.elm.tpl (revision 14600)
@@ -0,0 +1,28 @@
+<!--## DESIGN FOR COLUMN CONTENT ELEMENT ##-->
+<inp2:m_DefineElement name="content_box" type="text">
+ <h2 class="movable-header"><inp2:m_param name="header"/></h2>
+ <div class="<inp2:m_Param name="type"/>">
+ <inp2:m_param name="content"/>
+ </div>
+</inp2:m_DefineElement>
+<!--## DESIGN FOR COLUMN CONTENT ELEMENT ##-->
+
+<!--## DESIGN FOR COLUMN CONTENT ELEMENT ##-->
+<inp2:m_DefineElement name="side_box" type="">
+ <div class="<inp2:m_Param name="type"/>">
+ <h3 class="movable-header"><inp2:m_param name="header"/></h3>
+ <dl>
+ <inp2:m_param name="content"/>
+ </dl>
+ </div>
+</inp2:m_DefineElement>
+<!--## DESIGN FOR COLUMN CONTENT ELEMENT ##-->
+
+<!--## DEFAULT CONTENT-TOP ELEMENT ##-->
+<inp2:m_DefineElement name="default_content_banner" no_editing="1">
+
+ <!-- default banners -->
+ <inp2:st_ContentBlock num="101" page="index"/>
+ <!-- //default banners -->
+
+</inp2:m_DefineElement>
\ No newline at end of file
Index: branches/1.0.x/elements/dynamic_forms.elm.tpl
===================================================================
--- branches/1.0.x/elements/dynamic_forms.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/dynamic_forms.elm.tpl (revision 14600)
@@ -0,0 +1,79 @@
+<inp2:m_DefineElement name="form_field_text">
+<div class="bg">
+ <input type="text" class="input" name="<inp2:CustomInputName/>" id="<inp2:Field name='FieldName'/>" value="<inp2:SubmissionTag tag="Field"/>" <inp2:m_param name="field_params" /> tabindex="0"/>
+</div>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="error_message">
+ <inp2:m_phrase name="lu_AProblemInForm"/><br /><br />
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_password">
+<div class="bg">
+ <input type="password" class="field" primarytype="password" name="<inp2:CustomInputName/>" id="<inp2:CustomInputName/>" value="" tabindex="0"/>
+ <input type="password" class="field" name="<inp2:CustomInputName verify="1"/>" id="verify_<inp2:CustomInputName verify="1"/>" value="" tabindex="0"/>
+<div class="bg">
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_option">
+ <option value="<inp2:m_param name="key"/>"<inp2:m_param name="selected"/>><inp2:m_param name="option"/></option>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_select">
+<div class="bg">
+ <select name="<inp2:CustomInputName/>" id="<inp2:Field name='FieldName'/>" class="input-select" tabindex="0">
+ <inp2:SubmissionTag tag="PredefinedOptions" field="$field" block="form_field_option" selected_param="selected" selected=" selected='selected'"/>
+ </select>
+</div>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_checkbox">
+ <input type="hidden" id="<inp2:CustomInputName/>" name="<inp2:CustomInputName/>" value="<inp2:SubmissionTag tag="Field" field="$field" db="db"/>">
+ <input type="checkbox" id="_cb_<inp2:m_param name="field"/>" name="_cb_<inp2:m_param name="field"/>" <inp2:SubmissionTag tag="Field" checked="checked" db="db"/> class="fieldcheckbox"/>" onclick="document.getElementById('<inp2:CustomInputName/>').value = this.checked ? 1:0">
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_textarea">
+<div class="bg2">
+ <textarea name="<inp2:CustomInputName/>" id="<inp2:Field name='FieldName'/>" class="fieldtextarea" <inp2:m_param name="field_params" /> cols="40" rows="5"><inp2:SubmissionTag tag="Field" field="$field" /></textarea>
+</div>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_radio_item">
+ <input type="radio" <inp2:m_param name="checked"/> name="<inp2:m_param name="field_name"/>" id="<inp2:m_param name="field_name"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>"><label for="<inp2:m_param name="field_name"/>_<inp2:m_param name="key"/>"><inp2:m_param name="option"/></label>&nbsp;
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field_radio">
+ <em>
+ <inp2:SubmissionTag tag="PredefinedOptions" field="$field" block="form_radio_item" selected="checked"/>
+</em>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="form_field">
+<div class="wrapper">
+ <label for="<inp2:Field name='FieldName'/>" <inp2:m_if check="SubmissionTag" tag="HasError">class="red"</inp2:m_if>>
+ <inp2:Field name="FieldLabel" plus_or_as_label="1"/>&nbsp;<inp2:m_if check="FieldEquals" field="Required" value="1"><span class="red">*</span></inp2:m_if>:
+ </label>
+ <inp2:ConfigFormElement field="Value" blocks_prefix="form_field_" element_type_field="ElementType" value_list_field="ValueList" />
+
+ <inp2:m_if check="SubmissionTag" tag="HasError">
+ <inp2:m_ifnot check="Field" name="ElementType" db="1" equals_to="textarea">
+ <span class="field-error"><inp2:SubmissionTag tag="Error"/></span>
+ </inp2:m_ifnot>
+ </inp2:m_if>
+</div>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="inp_edit_captcha" style="" title="lu_fld_Captcha" no_editing="1" is_last="0">
+<div class="wrapper">
+ <label for="<inp2:{$prefix}_InputName field='Captcha'/>" class="long-label <inp2:m_if check="{$prefix}_HasError" field="Captcha">red</inp2:m_if>">
+ <inp2:m_phrase label="$title"/>&nbsp;<inp2:m_if check="{$prefix}_IsRequired" field="Captcha"><span class="red">*</span></inp2:m_if>:
+ </label>
+ <div class="bg">
+ <input type="text" class="input-short" name="<inp2:{$prefix}_InputName field="Captcha"/>" value="<inp2:{$prefix}_Field field="Captcha"/>">
+ </div>
+ <img class="captcha-image" src="<inp2:m_Link template="elements/captcha_image.elm" var="{$prefix}_captcha_code" w="150" h="30"/>" alt="<inp2:m_Phrase name="$title" no_editing="1"/>"/>
+ <inp2:m_if check="{$prefix}_HasError" field="Captcha">
+ <span class="field-error"><inp2:{$prefix}_Error field="Captcha"/></span>
+ </inp2:m_if>
+</div>
+</inp2:m_DefineElement>
\ No newline at end of file
Index: branches/1.0.x/elements/footer.elm.tpl
===================================================================
--- branches/1.0.x/elements/footer.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/footer.elm.tpl (revision 14600)
@@ -0,0 +1,5 @@
+&copy; <inp2:lang.current_CurrentDate format="Y"/> <inp2:m_GetConfig name="Site_Name"/><br/>
+<a href="http://www.templatemonster.com/" target="_blank">Website template</a> designed by TemplateMonster.com<br/>
+Powered by <a href="http://www.in-portal.com" target="_blank">In-Portal &mdash; Open Source CMS</a>
+
+<inp2:m_RegisterPageHit/>
\ No newline at end of file
Index: branches/1.0.x/elements/tracking.elm.tpl
===================================================================
--- branches/1.0.x/elements/tracking.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/tracking.elm.tpl (revision 14600)
@@ -0,0 +1,3 @@
+<!-- Tracking Code Starts-->
+<inp2:st_PageInfo type="tracking"/>
+<!-- Tracking Code Ends -->
\ No newline at end of file
Index: branches/1.0.x/elements/navigation_menu.elm.tpl
===================================================================
--- branches/1.0.x/elements/navigation_menu.elm.tpl (nonexistent)
+++ branches/1.0.x/elements/navigation_menu.elm.tpl (revision 14600)
@@ -0,0 +1,9 @@
+<inp2:m_DefineElement name="menu_element" no_editing="1">
+<li <inp2:m_if check="m_Param" name="active">id="menu_active"</inp2:m_if> class="<inp2:m_if check="m_Param" name="is_first">alpha </inp2:m_if><inp2:m_if check="m_Param" name="is_last">omega </inp2:m_if>">
+ <a href="<inp2:m_Link template='$template' m_cat_id='$cat_id' use_section='$use_section' m_cat_page='1'/>" title="<inp2:m_Param name="title"/>"><span><span><inp2:m_Param name="title"/></span></span></a>
+</li>
+</inp2:m_DefineElement>
+
+<ul id="menu">
+ <inp2:st_CachedMenu render_as="menu_element" category_id="1"/>
+</ul>
\ No newline at end of file

Event Timeline