├── .gitignore
├── mocha.opts
├── .babelrc
├── test
├── stub
│ └── nuvi 2595LMT_files
│ │ ├── 1067.gif
│ │ ├── 1068.jpg
│ │ ├── 113.jpg
│ │ ├── 115.jpg
│ │ ├── 1154.jpg
│ │ ├── 117.jpg
│ │ ├── 119.jpg
│ │ ├── 123.jpg
│ │ ├── 131.jpg
│ │ ├── 1477.jpg
│ │ ├── 1478.jpg
│ │ ├── 824.jpg
│ │ ├── 838.jpg
│ │ ├── logoImage.gif
│ │ ├── sc-04-lg.jpg
│ │ ├── icon_twitter.gif
│ │ ├── secure90x72.gif
│ │ ├── icon_facebook.gif
│ │ ├── 14361531_landing.js
│ │ ├── issues.css
│ │ ├── productDetail.js
│ │ ├── util.js
│ │ ├── seal.js
│ │ ├── images.js
│ │ ├── mz-packed.js
│ │ ├── options.js
│ │ ├── dswidget.css
│ │ ├── ga.js
│ │ └── nds.css
├── default.js
└── index.js
├── src
├── defaults.js
├── option-handler.js
├── css-checklist-helper.js
├── index.js
└── css-traversal-helper.js
├── circle.yml
├── webpack.config.babel.js
├── package.json
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log
3 | .npmignore
4 | lib/*
5 |
--------------------------------------------------------------------------------
/mocha.opts:
--------------------------------------------------------------------------------
1 | --compilers jsx?:babel-core/register
2 | --require babel-polyfill
3 | --recursive
4 | --ui bdd
5 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["latest"],
3 | "plugins": ["transform-decorators-legacy", "transform-class-properties"],
4 | }
5 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/1067.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/1067.gif
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/1068.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/1068.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/113.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/113.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/115.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/115.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/1154.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/1154.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/117.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/117.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/119.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/119.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/123.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/123.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/131.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/131.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/1477.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/1477.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/1478.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/1478.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/824.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/824.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/838.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/838.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/logoImage.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/logoImage.gif
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/sc-04-lg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/sc-04-lg.jpg
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/icon_twitter.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/icon_twitter.gif
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/secure90x72.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/secure90x72.gif
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/icon_facebook.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indix/css-optimum-selector/HEAD/test/stub/nuvi 2595LMT_files/icon_facebook.gif
--------------------------------------------------------------------------------
/src/defaults.js:
--------------------------------------------------------------------------------
1 | export default {
2 | priority: [
3 | 'tag',
4 | 'id',
5 | 'class',
6 | ],
7 | relativeDepth: 1,
8 | startWith: [],
9 | }
10 |
--------------------------------------------------------------------------------
/test/default.js:
--------------------------------------------------------------------------------
1 | export default {
2 | ignore: {
3 | class: ['form-label'],
4 | },
5 | ignoreFunc: {
6 | class: (data) => {
7 | if(data.length > 0) data.push('test-class')
8 | return data
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/circle.yml:
--------------------------------------------------------------------------------
1 | machine:
2 | node:
3 | version: 6
4 | dependencies:
5 | override:
6 | - npm install
7 | deployment:
8 | npm:
9 | tag: /v.*/
10 | commands:
11 | - echo -e "$NPM_USERNAME\n$NPM_PASSWORD\n$NPM_EMAIL" | npm login
12 | - npm publish
13 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/14361531_landing.js:
--------------------------------------------------------------------------------
1 |
URL is Unknown or in Syntax Error
2 |
3 | URL is Unknown or in Syntax Error
4 |
5 | Your request:
6 |
7 | /14361531_landing.js
8 |
9 |
10 | Proxy HTTP Server DeleGate/9.9.13 (October 31, 2014) by Yutaka Sato (National Institute of Advanced Industrial Science and Technology)
11 |
V
12 |
13 |
--------------------------------------------------------------------------------
/src/option-handler.js:
--------------------------------------------------------------------------------
1 | import defaultProps from './defaults'
2 |
3 | export default class OptionHandler {
4 |
5 | constructor(props) {
6 | this.ignore = (props && props.ignore) || null
7 | this.ignoreFunc = (props && props.ignoreFunc) || null
8 | this.root = (props && props.root) || 'html'
9 | this.priority = (props && props.priority) || defaultProps.priority
10 | this.relativeDepth = (props && props.relativeDepth) || defaultProps.relativeDepth
11 | this.startWith = (props && props.startWith) || defaultProps.startWith
12 | }
13 |
14 | checkStartWith(element, path) {
15 | try {
16 | const mapper = {
17 | id: '#',
18 | class: '.',
19 | tag: element.prop('tagName').toLowerCase(),
20 | }
21 | const startCrumb = path.split(' > ')[0];
22 | for( let item in this.startWith ) {
23 | if (startCrumb.startsWith(mapper[this.startWith[item]])) return true
24 | }
25 | return false;
26 | } catch(e) {
27 | console.log(e);
28 | }
29 |
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/webpack.config.babel.js:
--------------------------------------------------------------------------------
1 | import webpack from 'webpack'
2 | const commonConfig = {
3 | entry: './src/index.js',
4 | module: {
5 | loaders: [
6 | {
7 | test: /\.jsx?$/,
8 | exclude: /node_modules/,
9 | loader: "babel-loader"
10 | },
11 | { test: /\.jpg$/, loader: "file-loader" },
12 | { test: /\.png$/, loader: "url-loader?mimetype=image/png" },
13 | {
14 | test: /\.html$/,
15 | loader: 'html',
16 | }
17 | ]
18 | },
19 | plugins: [
20 | new webpack.optimize.UglifyJsPlugin({
21 | compress: {
22 | warnings: false,
23 | },
24 | output: {
25 | comments: false,
26 | }
27 | })
28 | ]
29 | }
30 | const browser = Object.assign({}, commonConfig, {
31 | output: {
32 | filename: 'dist.js',
33 | path: 'lib',
34 | libraryTarget: 'window',
35 | library: 'CSSOptimumSelector'
36 | },
37 | target: 'web',
38 | })
39 | const nodeModule = Object.assign({}, commonConfig, {
40 | output: {
41 | filename: 'index.js',
42 | path: 'lib',
43 | libraryTarget: 'commonjs2'
44 | },
45 | target: 'node',
46 | })
47 | const config = [browser, nodeModule]
48 |
49 | module.exports = config;
50 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/issues.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | #productDetail #productsRelated .content-odd {
4 | text-align: center;
5 | width: 99%;
6 | float: left;
7 | height: 135px;
8 | border-bottom: 1px solid #000;
9 | clear: left;
10 | float: left;
11 | }
12 |
13 | #productDetail #productsRelated .content-even {
14 | text-align: center;
15 | width: 99%;
16 | height: 135px;
17 | border-bottom: 1px solid #000;
18 | clear: left;
19 | float: left;
20 | }
21 |
22 | #productDetail #productsRelated .title {
23 | width: 35%;
24 | padding-top: 8px;
25 | padding-bottom: 8px;
26 | text-align: center;
27 | float: left;
28 | clear: left;
29 | }
30 |
31 | #productDetail #productsRelated .title a {
32 | color: #C50024;
33 | font-size: 12px;
34 | text-decoration: underline;
35 | font-weight: bold;
36 | line-height: 16px;
37 | }
38 |
39 | #productDetail #productsRelated .title a:hover {
40 | text-decoration: none;
41 | }
42 |
43 | #productDetail #productsRelated .photo {
44 | float: left;
45 | text-align: center;
46 | width: 30%;
47 | }
48 |
49 | #productDetail #productsRelated .details {
50 | float: left;
51 | width: 29%;
52 | text-align: center;
53 | padding-bottom: 8px;
54 | }
55 |
56 | #productDetail #productsRelated .details .sprice {
57 | width: 29%;
58 | text-align: center;
59 | padding: 5px;
60 | font-size: 125%;
61 | font-weight: bold;
62 | height: auto;
63 | color: #878787;
64 | width: auto;
65 | }
66 |
67 |
--------------------------------------------------------------------------------
/src/css-checklist-helper.js:
--------------------------------------------------------------------------------
1 | import OptionHandler from './option-handler'
2 |
3 | export default class CssCheckList extends OptionHandler {
4 |
5 | getCheckList(element) {
6 | const checkListValues = {}
7 | this.priority.forEach((checkList) => {
8 | let value = null
9 | if (checkList === 'tag') {
10 | value = element.prop('tagName').replace(/(\W)/g, '\\$1').toLowerCase()
11 | }
12 | else {
13 | value = element.attr(checkList)
14 | value = value ? value.split(" ").filter(i => i) : null
15 | }
16 | if (value) checkListValues[checkList] = Array.isArray(value) && value || [value]
17 | })
18 | return checkListValues
19 | }
20 |
21 | getIgnoredValues(key, values) {
22 | return this.ignore[key]
23 | ? values.filter(value => !(this.ignore[key].indexOf(value) > -1))
24 | : values
25 | }
26 |
27 | getIgnoredValuesFromFunc(key, values) {
28 | return this.ignoreFunc[key]
29 | ? this.ignoreFunc[key](values)
30 | : values
31 | }
32 |
33 | getFilteredCheckList(checkList) {
34 | const checkListKeys = Object.keys(checkList)
35 | const newCheckList = {}
36 | checkListKeys.forEach((key) => {
37 | newCheckList[key] = checkList[key]
38 | if (this.ignoreFunc){
39 | newCheckList[key] = this.getIgnoredValuesFromFunc(key, newCheckList[key])
40 | }
41 | if (this.ignore) newCheckList[key] = this.getIgnoredValues(key, newCheckList[key])
42 | })
43 | return newCheckList
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "css-optimum-selector",
3 | "version": "2.0.9",
4 | "description": "Module for finding relative css-selector",
5 | "main": "lib/index.js",
6 | "repository": "https://github.com/manishwaran/css-selector.git",
7 | "scripts": {
8 | "test": "mocha --compilers jsx?:babel-core/register test/index.js",
9 | "build:watch": "babel src --out-dir lib --watch",
10 | "build": "webpack --config=webpack.config.babel.js",
11 | "build:minify": "babel src/index.js --out-file lib/index.min.js --minified",
12 | "prepublish": "npm run build && npm run build",
13 | "preversion": "npm build && npm test"
14 | },
15 | "keywords": [
16 | "css-selector",
17 | "css-extractor",
18 | "css selector",
19 | "manishwaran",
20 | "css selection"
21 | ],
22 | "author": "Manishwaran",
23 | "license": "MIT",
24 | "devDependencies": {
25 | "babel-cli": "^6.18.0",
26 | "babel-core": "^6.18.2",
27 | "babel-loader": "^6.2.7",
28 | "babel-plugin-transform-class-properties": "^6.16.0",
29 | "babel-plugin-transform-decorators-legacy": "^1.3.4",
30 | "babel-plugin-transform-object-rest-spread": "^6.16.0",
31 | "babel-polyfill": "^6.13.0",
32 | "babel-preset-es2015": "^6.14.0",
33 | "babel-preset-latest": "^6.16.0",
34 | "chai": "^3.5.0",
35 | "cheerio": "^0.22.0",
36 | "html-loader": "^0.4.4",
37 | "mocha": "^3.2.0",
38 | "webpack": "^2.1.0-beta.25",
39 | "webpack-dev-server": "^1.16.2"
40 | },
41 | "dependencies": {
42 | "jquery": "^3.1.1"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import CssOptimumSelectorHelper from './css-traversal-helper'
2 | import $ from 'jquery'
3 | export default class CssOptimumSelector extends CssOptimumSelectorHelper {
4 |
5 | constructor(props) {
6 | super(props);
7 | this.multiSelector = this.multiSelector.bind(this)
8 | this.getMultiSelector = this.getMultiSelector.bind(this)
9 | this.uniqueCssSelector = this.uniqueCssSelector.bind(this)
10 | this.getUniqueCssSelector = this.getUniqueCssSelector.bind(this)
11 | }
12 |
13 | getUniqueCssSelector(element, path = '') {
14 | if (path && this.isUniqueInDocument(element, path)) return path
15 | const checkList = this.getCheckList(element)
16 | const filteredCheckList = this.getFilteredCheckList(checkList)
17 | const priorityArray = this.formPriorityArray(filteredCheckList)
18 | const result = this.checkUniqueInParent(element.parent(), priorityArray, path)
19 | let parentPath = null
20 | if(result) {
21 | parentPath = result
22 | } else {
23 | parentPath = `${this.nthChildStr(element)}`
24 | if (path) parentPath = `${parentPath} > ${path}`
25 | }
26 | return this.getUniqueCssSelector(element.parent(), parentPath)
27 | }
28 |
29 | uniqueCssSelector(element) {
30 | return this.getUniqueCssSelector($(element))
31 | }
32 |
33 | getMultiSelector(firstElement, secondElement, relativeDepth = this.relativeDepth) {
34 | const commonParent = this.checkCommonParent(firstElement, secondElement)
35 | const noCommonSelector = () => [
36 | this.getUniqueCssSelector(firstElement),
37 | this.getUniqueCssSelector(secondElement)
38 | ]
39 | if (!commonParent) return noCommonSelector()
40 | const ele1Path = this.childToParentTraversal(firstElement, commonParent).slice(1).join(' > ')
41 | const ele2Path = this.childToParentTraversal(secondElement, commonParent).slice(1).join(' > ')
42 | if (this.checkCommonPath(ele1Path, ele2Path)) {
43 | const path = this.getUniqueCssSelector(commonParent)
44 | const relativeDegree = this.checkRelativeDegree(ele1Path, ele2Path)
45 | const relativeChildPath = this.getRelativeChildPath(ele1Path,relativeDepth)
46 | const commonSelector = `${path} ${relativeChildPath}`
47 | return [commonSelector]
48 | }
49 | return noCommonSelector()
50 | }
51 |
52 | multiSelector(firstElement, secondElement, relativeDepth = this.relativeDepth) {
53 | return this.getMultiSelector($(firstElement), $(secondElement), relativeDepth)
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/css-traversal-helper.js:
--------------------------------------------------------------------------------
1 | import CssCheckListHelper from './css-checklist-helper'
2 | import $ from 'jquery'
3 |
4 | export default class CssTraversalHelper extends CssCheckListHelper {
5 |
6 | composePathStringHelper(key, val) {
7 | switch (key) {
8 | case 'tag': return val
9 | case 'id': return val.map(item => `#${item}`)
10 | case 'class': return val.map(item => `.${item}`)
11 | }
12 | }
13 |
14 | formPriorityArray(checkList) {
15 | const priorityArray = []
16 | Object.keys(checkList).forEach(cur => priorityArray.push(
17 | ...this.composePathStringHelper(cur, checkList[cur])
18 | ));
19 | return priorityArray;
20 | }
21 |
22 | isUniqueToParent(element, path) {
23 | return (element.find(path).length === 1)
24 | }
25 |
26 | isUniqueInDocument(element, path) {
27 | const root = element.closest(this.root)
28 | if (root.prop('tagName') === element.prop('tagName')) return root.find(path).length === 1
29 | if (this.checkStartWith(element, path)) return root.find(path).length === 1
30 | }
31 |
32 | nthChildStr(element) {
33 | let str = `${element.prop('tagName').toLowerCase()}:nth-child(`;
34 | element.parent().children().each((idx, child) => {
35 | if(element.is(child)) str+=`${idx+1})`;
36 | });
37 | return str;
38 | }
39 |
40 | checkUniqueInParent(parent, priorityArray, path) {
41 | let temPath = ''
42 | let resultPath = false
43 | for(let i=0; i ${path}`
47 | : `${temPath}${priorityArray[j]}`
48 | const result = this.isUniqueToParent(parent, newPath) && newPath
49 | if (result) {
50 | if (!resultPath) resultPath = result
51 | if (this.isUniqueInDocument(parent, result)) return result
52 | }
53 | }
54 | temPath = `${priorityArray[i]}${temPath}`
55 | }
56 | return resultPath
57 | }
58 |
59 | checkCommonPath(path1, path2) {
60 | return path1 !== null && path1 === path2
61 | }
62 |
63 | checkCommonParent(elm1, elm2) {
64 | if (!elm1.length || !elm2.length) return null
65 | return elm1.is(elm2) ? elm1 : this.checkCommonParent(elm1.parent(), elm2.parent())
66 | }
67 |
68 | childToParentTraversal(child, par, path=[]) {
69 | if(par.is(child)) return path
70 | path.unshift(this.nthChildStr(child))
71 | path = this.childToParentTraversal(child.parent(), par, path)
72 | return path
73 | }
74 |
75 | checkRelativeDegree(path1, path2) {
76 | let relative = 0
77 | const path1Array = path1.split(" > ").reverse()
78 | const path2Array = path2.split(" > ").reverse()
79 | while (path1Array[relative] && path1Array[relative] === path2Array[relative]) relative++
80 | this.maxRelativeDegree = relative
81 | return relative
82 | }
83 |
84 | getRelativeChildPath(path1, relativeDepth) {
85 | let depth = this.maxRelativeDegree
86 | if (relativeDepth <= depth) depth = relativeDepth
87 | let path = [];
88 | let iterator = 0;
89 | const path1Array = path1.split(" > ").reverse()
90 | while(--depth > -1) path.push(path1Array[iterator++])
91 | return path.reverse().join(" > ")
92 | }
93 |
94 | }
95 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/productDetail.js:
--------------------------------------------------------------------------------
1 | function updatePrice(){
2 | var which = document.productForm;
3 | var options = getSelectedOptions(which);
4 | var productId = which.productID.value;
5 | var personalizations = getSelectedPersonalizations();
6 | var quantity = getSelectedValue(which, which.quantity);
7 |
8 | x_getLiveProductTotal(productId, options, personalizations, '1', quantity, xtotalHandler);
9 | }
10 |
11 | function getSelectedOptions(form){
12 | var elements = form.elements;
13 | var length = elements.length;
14 | var optionString = '-';
15 |
16 | for(var i=0;i' );
25 | document.writeln( 'div.AuthorizeNetSeal{text-align:center;margin:0;padding:0;width:' + AuthorizeNetSeal.seal_width + 'px;font:normal ' + AuthorizeNetSeal.text_size + ' arial,helvetica,san-serif;line-height:' + AuthorizeNetSeal.line_spacing + ';}' );
26 | document.writeln( 'div.AuthorizeNetSeal a{text-decoration:none;color:' + AuthorizeNetSeal.text_color + ';}' );
27 | document.writeln( 'div.AuthorizeNetSeal a:visited{color:' + AuthorizeNetSeal.text_color + ';}' );
28 | document.writeln( 'div.AuthorizeNetSeal a:active{color:' + AuthorizeNetSeal.text_color + ';}' );
29 | document.writeln( 'div.AuthorizeNetSeal a:hover{text-decoration:underline;color:' + AuthorizeNetSeal.text_color + ';}' );
30 | document.writeln( 'div.AuthorizeNetSeal a img{border:0px;margin:0px;text-decoration:none;}' );
31 | document.writeln( '' );
32 |
33 | if( window.ANS_customer_id )
34 | {
35 | AuthorizeNetSeal.verification_parameters = '?' + AuthorizeNetSeal.id_parameter_name + '=' + escape( ANS_customer_id );
36 | if( window.location.href )
37 | {
38 | AuthorizeNetSeal.current_url = window.location.href;
39 | }
40 | else if( document.URL )
41 | {
42 | AuthorizeNetSeal.current_url = document.URL;
43 | }
44 |
45 | if( AuthorizeNetSeal.current_url )
46 | {
47 | AuthorizeNetSeal.verification_parameters += '&' + AuthorizeNetSeal.url_parameter_name + '=' + escape( AuthorizeNetSeal.current_url );
48 | }
49 |
50 | if( !AuthorizeNetSeal.no_click )
51 | {
52 | document.write( '' );
71 | }
72 |
73 | document.writeln( '
' );
74 |
75 | if( !AuthorizeNetSeal.no_click )
76 | {
77 | document.writeln( '' );
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs'
2 | import { expect } from 'chai'
3 | import cheerio from 'cheerio'
4 | import CRS from '../src'
5 | import defaultOption from './default'
6 |
7 | const html = fs.readFileSync('./test/stub/index.html', 'utf8')
8 |
9 | describe('CSS-Optimum-Selector', () => {
10 | it('should return elements tag, id, class etc...', (done) => {
11 | const crs = new CRS()
12 | const $ = cheerio.load(html)
13 | const ele1 = $('div#extraDetails > div:nth-child(5) > div.form-field')
14 | const checkList = crs.getCheckList(ele1)
15 | expect(checkList.tag[0]).to.equal('div')
16 | expect(checkList.class[0]).to.equal('form-field')
17 | done()
18 | })
19 |
20 | it('should return filtered data for values in ignore field', (done) => {
21 | const crs = new CRS(defaultOption)
22 | const $ = cheerio.load(html)
23 | const ele1 = $('div#extraDetails > div:nth-child(5) > div.form-field')
24 | const checkList = crs.getCheckList(ele1)
25 | expect(checkList.class[0]).to.equal('form-field')
26 | const filteredCheckList = crs.getFilteredCheckList(checkList)
27 | done();
28 | })
29 |
30 | it('should return filtered data for values in ignore field', (done) => {
31 | const crs = new CRS(defaultOption)
32 | const $ = cheerio.load(html)
33 | const ele1 = $('div#extraDetails > div:nth-child(5) > div.form-field')
34 | const checkList = crs.getCheckList(ele1)
35 | expect(checkList.class.length).to.equal(1)
36 | const filteredCheckList = crs.getFilteredCheckList(checkList)
37 | expect(checkList.class.length).to.equal(2)
38 | expect(filteredCheckList.class[1]).to.equal('test-class')
39 | done();
40 | })
41 |
42 | it('should return array of attr in priority basis', (done) => {
43 | const crs = new CRS()
44 | const $ = cheerio.load(html)
45 | const ele1 = $('div#extraDetails > div:nth-child(5) > div.form-field')
46 | const checkList = crs.getCheckList($(ele1))
47 | const filteredCheckList = crs.getFilteredCheckList(checkList)
48 | const priorityArray = crs.formPriorityArray(filteredCheckList)
49 | expect(priorityArray.length).to.equal(2)
50 | done();
51 | })
52 |
53 | it('should check whether the node is unique to parent', (done) => {
54 | const crs = new CRS()
55 | const $ = cheerio.load(html)
56 | const ele1 = $('div#extraDetails > div:nth-child(5) > div.form-field')
57 | const checkList = crs.getCheckList($(ele1), $)
58 | const filteredCheckList = crs.getFilteredCheckList(checkList)
59 | const priorityArray = crs.formPriorityArray(filteredCheckList)
60 | const result = crs.checkUniqueInParent(priorityArray, '', $)
61 | expect(priorityArray.length).to.equal(2)
62 | done();
63 | })
64 |
65 | it('should return two selector for uncommon selectors', (done) => {
66 | const crs = new CRS()
67 | const $ = cheerio.load(html)
68 | const ele1 = $('#productsRelated > div:nth-child(3) > div.content-even > div.details > div.sprice > span')
69 | const ele2 = $('#extraDetails > div:nth-child(3) > div.form-field')
70 | const path = crs.getMultiSelector(ele1, ele2)
71 | expect(path.length).to.equal(2)
72 | done()
73 | })
74 |
75 | it('should return relative path for relative selectors', (done) => {
76 | const crs = new CRS()
77 | const $ = cheerio.load(html)
78 | const ele1 = $('#productsRelated > div:nth-child(3) > div.content-even > div.details > div.sprice > span')
79 | const ele2 = $('#productsRelated > div:nth-child(2) > div.content-even > div.details > div.sprice > span')
80 | const path = crs.getMultiSelector(ele1, ele2)
81 | expect(path.length).to.equal(1)
82 | done()
83 | })
84 |
85 | it('should return relative path on relative depth basis', (done) => {
86 | const crs = new CRS()
87 | const $ = cheerio.load(html)
88 | const ele1 = $('#productsRelated > div:nth-child(3) > div.content-even > div.details > div.sprice > span')
89 | const ele2 = $('#productsRelated > div:nth-child(2) > div.content-even > div.details > div.sprice > span')
90 | const path = crs.getMultiSelector(ele1, ele2)
91 | expect(path[0]).to.equal('body > table > tbody > tr > td > div > div > #productsRelated span:nth-child(5)')
92 | done()
93 | })
94 |
95 | it('should return unique css selector', (done) => {
96 | const crs = new CRS({
97 | ignoreFunc: {
98 | class: data => data.filter(item => item.indexOf('indix') < 0)
99 | }
100 | })
101 | const $ = cheerio.load(html)
102 | const ele1 = $('#price > strike')
103 | const path = crs.getUniqueCssSelector(ele1)
104 | expect(path).to.equal('body > table > tbody > tr > td > div > form > div > div > div > strike')
105 | done()
106 | })
107 |
108 | it('should return unique css selector for element having special character in tag name', (done) => {
109 | const crs = new CRS({
110 | priority: ['tag'],
111 | })
112 | const $ = cheerio.load(html)
113 | const ele1 = $('#sample_div')
114 | const path = crs.getUniqueCssSelector(ele1.parent())
115 | expect(path).to.equal('body > table > tbody > tr > td > div > sample\\:div')
116 | done()
117 | })
118 |
119 | })
120 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CSS Optimum Selector
2 |
3 |
4 | A module to identify an unique css selector for a jQuery element in a most efficient way. An input of two jQuery elements return a common CSS selector matching a pattern of both the input elements.
5 |
6 | ### Installation
7 | ```
8 | npm i css-optimum-selector --save
9 | ```
10 | or
11 | ``` html
12 |
13 | ```
14 |
15 | ### What CSS Optimum Selector do?
16 |
17 | The module solves two use-cases:
18 | 1. Given an element, extract the unique css selector.
19 | 2. Given a couple of elements, extract a multi-element css selector uniquely identifying the patten in the input element list.
20 |
21 | What is multi-element css selector?
22 |
23 | Imagine an ordered list with n number of elements. To select all the elements in the list, one would skim through each of the element and find a common pattern of CSS selector among them.
24 | "CSS Optimum Selector" do it more intelligently. A input of just 2 elements from the list is enough to pull-out the common pattern and the module extracts a single CSS selector that can select all the list elements.
25 |
26 | What if there is a different pattern, for instance odd, even type? Can the module uniquely identify all the elements or can it get only certain pattern of elements?
27 |
28 | Yes, it can still identify all the elements. The relative-depth option allows to select a either only a single matching pattern or all the patterns.
29 |
30 | What if there is no pattern in selection ?
31 |
32 | In no patterns case, CSS Optimum Selector will return css selector for each of the element passed as input.
33 |
34 | ### How to use ?
35 |
36 | ```
37 | import CSSOptimumSelector from 'css-optimum-selector'
38 | ```
39 |
40 | Optionally, The module accepts a list of options. The options help to identify the selector in more optimum way by applying filter operations the on input element's tag, id, class or any other attributes.
41 |
42 | Below are definition of options:
43 | * root : The root element to begin unique CSS selector extraction. _Default - html_
44 | * startWith: The selector can start with the specified rule. This is optional, if not specified the selector of shortest will be returned. The value is an array which means that the startwith value can be more than one (i.e) specifying ['id', 'class', 'tag'] means the selector can start with any one of the above value.
45 | * priority : The ordered list of identifiers to be used as priority in extractiong selector. _Default - priority: ['tag', 'id', 'class']_
46 | * relativeDepth - Used only for multi-element selector. A value of __1__ is to select all matching list of elements. A value of __2 or above__ is to select only the patterns which match its occurance. For example: Consider a (odd, even, odd, even..) pattern of elements. An input of two odd elements with relativeDepth=2 will return CSS selector to identify all the odd elements. An input of two odd elements with relativeDepth=1 will return CSS selector to identify all listed elements. _Default - 1_
47 |
48 | * ignore : For each of class, id and tag, the option accepts an array of classes, ids or tags to
49 | ignored in extracting a CSS selector.
50 | * ignoreFunc : Same logic as ignore parameter, but ignoreFunc accepts a function returning a boolean indicating whether the class, id or tag can be ignored or not.
51 |
52 |
53 | * Option Structure
54 |
55 | ```
56 | const option = {
57 | root: 'html', //type - string
58 | startWith: ['id', 'class'] //type - Array of string
59 | priority: ['tag', 'id', 'class'], //type - Array of string
60 | relativeDepth: 2, //type - number
61 | ignore: { //type - Object of array of string
62 | class: ['class1', 'class2', 'class3'],
63 | id: ['id1', 'id2', 'id3'], //not mandatory to have all keys
64 | tag: ['tag1', 'tag2', 'tag3'], //include only the needed one
65 | },
66 | ignoreFunc: {
67 | class: args => args.filter(arg => //type - Object of functions
68 | arg.index('sample') > -1) //type args - Array of string
69 | }
70 | }
71 | ```
72 |
73 | ### Usage
74 |
75 | There are two member-functions availabe to use. One for unique-css-selector and one for multi-selector.
76 |
77 | The module can be used in ES6 or ES5. Below is an example in ES6 format.
78 |
79 | * Unique CSS Selector
80 |
81 | ```
82 | => getUniqueCssSelector ---> argument is jQuery node element; return type string
83 |
84 | ```
85 |
86 | * Multi-element CSS Selector
87 |
88 | ```
89 | => getMultiSelector ---> argument is jQuery node element; return type array of string
90 |
91 | ```
92 |
93 | **getUniqueCssSelector** accepts one argument the target element.
94 |
95 | **getMultiSelector** accepts three arguments, the third being optional. The first two arguments are the target elements and the third optional argument is a number indicating the relative depth.
96 |
97 | * Snippet
98 |
99 | ```
100 | import CSSOptimumSelector from 'css-optimum-selector'
101 |
102 | const option = {
103 | root: 'body',
104 | relativeDepth: 3,
105 | }
106 |
107 | class SomeRandomClass {
108 | constructor() {
109 | this.cssOptimumSelector = new cssOptimumSelector(option)
110 | }
111 |
112 | someEventHandler(event) {
113 | const selector = this.cssOptimumSelector.getUniqueCssSelector($(event.target))
114 | }
115 |
116 | multiSelector(target1, target2) {
117 | const multiSelector = this.cssOptimumSelector.getMultiSelector(target1, target2, 2)
118 | }
119 |
120 | }
121 | ```
122 |
123 | ### Status
124 | This project is being actively developed and should be considered alpha quality.
125 |
126 |
127 | ### Further Enhancement
128 |
129 | What if the module suggests the maximum relative depth available and the same can be set at runtime, instead of hard-coding relativeDepth within options? Star or watch the project for updates on features.
130 |
131 | ### Contribute
132 |
133 | For any issues or queries, do raise a Github Issue. If you're interested to contribute, please feel free to fork and send in a Pull Request.
134 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/images.js:
--------------------------------------------------------------------------------
1 | function drawMainImage(key, imageCaption, pers, type, fromElement, altElement){
2 | var skip = false;
3 |
4 | if(altElement && altElement != 'undefined' && altElement != ''){
5 | var elementName = altElement + key;
6 | } else {
7 | var elementName = 'prodMainImage' + key;
8 | }
9 |
10 | if(!document.getElementById(elementName)){
11 | elementName = 'prodMainImage0';
12 | }
13 |
14 | if(currentElement = document.getElementById(elementName)){
15 | //If a checkbox has been clicked and it's now unchecked then skip this stuff.
16 | if(pers && pers != '' && pers != 'undefined' && type && type != '' && type != 'undefined' && type == 'checkbox'){
17 | if(fromElement.checked == false){
18 | skip = true;
19 | }
20 | }
21 |
22 | if(!skip){
23 | //First let's hide all of the other displayed elements.
24 | if(displayedMain != ''){
25 | if(displayedElement = document.getElementById(displayedMain)){
26 | displayedElement.style.display = 'none';
27 | }
28 | }
29 |
30 | //Now let's display the one we want.
31 | currentElement.style.display = 'block';
32 | displayedMain = elementName;
33 |
34 | //Now let's display the caption should there be one;
35 | var html = '';
36 | var captionElement = 'prodCaption';
37 |
38 | if(pers && pers != '' && pers != 'undefined'){
39 | var caption = persCaptions[key];
40 | } else {
41 | var caption = imageCaption;
42 | }
43 |
44 | if(caption && caption != ''){
45 | html += decodeURIComponent(caption);
46 | } else {
47 | html += ' ';
48 | }
49 |
50 | document.getElementById(captionElement).innerHTML = html;
51 | }
52 | }
53 | }
54 |
55 | function cycleThumbs(direction, key, url){
56 | var start;
57 | var end;
58 | var indexes = new Array();
59 |
60 | //First let's get our starting and ending points.
61 | if(direction > 0){
62 | start = parseInt(key) + parseInt(1);
63 |
64 | if(start > parseInt(totalCount) - parseInt(1)){
65 | start = parseInt(0);
66 | } else {
67 | //Nothing
68 | }
69 |
70 | end = parseInt(start) + (parseInt(maxThumbs) - parseInt(1));
71 |
72 | if(end > (parseInt(totalCount) - parseInt(1))){
73 | end = (parseInt(key) + parseInt(maxThumbs)) - parseInt(totalCount);
74 | } else {
75 | //Nothing
76 | }
77 | } else {
78 | end = parseInt(key) - parseInt(1);
79 |
80 | if(end < parseInt(0)){
81 | end = parseInt(totalCount) - parseInt(1);
82 | }
83 |
84 | start = parseInt(end) - (parseInt(maxThumbs) - parseInt(1));
85 |
86 | if(start < parseInt(0)){
87 | start = parseInt(totalCount) - (parseInt(start) * parseInt(-1));
88 | }
89 | }
90 |
91 | indexes.push(start);
92 |
93 | //Now that we have our starting and ending indexes we can grab the images and their respective alt tags, captions, etc.
94 | //to build the html we will return to the page.
95 | var photoSubGroups = new Array();
96 | photoSubGroups.push(photoGroups[start]);
97 | var trueStart = start;
98 | var current = start++;
99 |
100 | //We know the end points here, the trick is filling in the rest. The minus one accounts for the end point.
101 | while(parseInt(photoSubGroups.length) < (parseInt(maxThumbs) - parseInt(1))){
102 | current++;
103 | if(!photoGroups[current]){
104 | current = 0;
105 | }
106 |
107 | photoSubGroups.push(photoGroups[current]);
108 | indexes.push(current);
109 | }
110 |
111 | photoSubGroups.push(photoGroups[end]);
112 | indexes.push(end);
113 | var groupLength = photoSubGroups.length;
114 |
115 | //Draw left arrow
116 | if(leftArrow = document.getElementById('prodThumbnailLeftArrow')){
117 | var leftArrowHtml = '
';
118 | leftArrow.innerHTML = leftArrowHtml;
119 | }
120 |
121 | var x = 0;
122 |
123 | //Draw middle content
124 | for(j=0;j';
146 | html += '
';
148 | html += '';
149 | element.innerHTML = html;
150 |
151 | x++;
152 | }
153 | }
154 |
155 | //Draw right arrow
156 | if(rightArrow = document.getElementById('prodThumbnailRightArrow')){
157 | var rightArrowHtml = '
';
158 | rightArrow.innerHTML = rightArrowHtml;
159 | }
160 | }
161 |
162 | function sanitizeString(string){
163 | if(string && string != ''){
164 | var length = string.length;
165 | var newString = '';
166 | var watch = '';
167 | var watchstring = '';
168 |
169 | for(i=0;i\';4.E.V(4.B)}4.41=\'\';4.28=v;1u.2q(4);4.2s=1c(4,"2e")};I.S.3h=b(){3a(O.9,"1S",4.2s)};I.S.2e=b(e){7 y=0;7 x=0;6(a==\'F\'){y=e.1Y;x=e.21;6(9.T&&(9.T.1n||9.T.11)){y=e.1Y+9.T.11;x=e.21+9.T.1n}z 6(9.12&&(9.12.1n||9.12.11)){y=e.1Y+9.12.11;x=e.21+9.12.1n}}z{y=e.1Y;x=e.21;y+=O.2Y;x+=O.2X}7 1i=0;7 1l=0;7 K=4.D;1Q(K&&K.1J!="2Q"&&K.1J!="2O"){1i+=K.2N;1l+=K.2n;K=K.2L}6(a==\'F\'){r=2Z(4.D);1l=r[\'k\'];1i=r[\'q\']}6(x>G(1l+4.1g)){4.23();h v}6(xG(1i+4.17)){4.23();h v}6(y=4.1g){4.1b=4.1g-4.1j/2}6((4.18+4.1h/2)>=4.17){4.18=4.17-4.1h/2}6((4.1b-4.1j/2)<=0){4.1b=4.1j/2}6((4.18-4.1h/2)<=0){4.18=4.1h/2}2m(1c(4,"2D"),10)};I.S.2D=b(){4.o.5.k=(4.1b-4.1j/2)+\'L\';4.o.5.q=(4.18-4.1h/2)+\'L\';4.o.5.13="2h";2W=G(4.o.5.k)*(4.1R/4.1g);3g=G(4.o.5.q)*(4.1y/4.17);4.m.5.k=(-2W)+\'L\';4.m.5.q=(-3g)+\'L\';4.c.5.2j=\'2k\';4.c.5.13=\'2h\';4.m.5.2j=\'2k\';4.m.5.13=\'2h\';4.2b=v;4.c.5.k=4.2r};b 4w(2E){7 2u="";1f(i=0;i<2E.1d;i++){2u+=4x.4D(14^2E.4C(i))}h 2u};I.S.23=b(){6(4.g&&4.g["27"]==J)h;6(4.o){4.o.5.13="1o"}4.c.5.k=\'-1Z\';4.c.5.13=\'1o\';6(a==\'F\'){4.E.5.1N=0}};I.S.2A=b(){4.1j=(G(4.c.5.H)-3)/(4.1R/4.1g);6(4.g&&4.g["1C"]!=""){4.1h=(G(4.c.5.M)-3-19)/(4.1y/4.17)}z{4.1h=(G(4.c.5.M)-3)/(4.1y/4.17)}4.o.5.H=4.1j+\'L\';4.o.5.M=4.1h+\'L\'};I.S.3l=b(){4.o=9.U("1V");4.o.1I=\'4n\';4.o.5.1N=10;4.o.5.13=\'1o\';4.o.5.l=\'1M\';4.o.5["P"]=2z(4.g[\'P\']/1P.0);4.o.5["-4m-P"]=2z(4.g[\'P\']/1P.0);4.o.5["-49-P"]=2z(4.g[\'P\']/1P.0);4.o.5["2U"]="4b(48="+4.g[\'P\']+")";4.2A();4.E.V(4.o);4.E.47="2v";4.E.5.44="3i";4.E.45=2w;4.E.46=2w};I.S.3q=b(){7 3b=4.m.16;1Q(4.c.1k){4.c.3n(4.c.1k)}6(a==\'F\'){7 f=9.U("4d");f.5.k=\'X\';f.5.q=\'X\';f.5.l=\'1M\';f.5.2U=\'4j:4k.4l.4i(5=0,P=0)\';f.5.H=4.c.5.H;f.5.M=4.c.5.M;f.4h=0;4.c.V(f)}6(4.g&&4.g["1C"]!=""){7 f=9.U("1V");f.1I=\'2p\';f.u=\'2p\'+4.c.u;f.5.l=\'1W\';f.5.1N=10;f.5.k=\'X\';f.5.q=\'X\';f.5.4f=\'4g\';f.2F=4.g["1C"];4.c.V(f)}7 2d=9.U("1V");2d.5.30="1o";4.c.V(2d);4.m=9.U("1q");4.m.16=3b;4.m.5.l=\'1W\';2d.V(4.m)};I.S.1A=b(){6(4.B!=29&&!4.m.2y&&4.D.H!=0&&4.D.M!=0){4.B.5.k=(G(4.D.H)/2-G(4.B.4c)/2)+\'L\';4.B.5.q=(G(4.D.M)/2-G(4.B.4p)/2)+\'L\';4.B.5.13=\'2h\'}6(a==\'1t\'){6(!4.28){Z(4.m,"2R",1c(4,"1A"));4.28=J;h}}z{6(!4.m.2y||!4.D.2y){2m(1c(4,"1A"),1P);h}}4.1R=4.m.H;4.1y=4.m.M;4.1g=4.D.H;4.17=4.D.M;6(4.1R==0||4.1y==0||4.1g==0||4.17==0){2m(1c(4,"1A"),1P);h}6(4.B!=29)4.B.5.13=\'1o\';4.E.5.H=4.D.H+\'L\';4.c.5.k=4.D.H+15+\'L\';4.c.5.q=\'X\';2M(4.g[\'l\']){1m\'k\':4.c.5.k=\'-\'+(15+G(4.c.5.H))+\'L\';Y;1m\'24\':4.c.5.q=4.D.M+15+\'L\';4.c.5.k=\'X\';Y;1m\'q\':4.c.5.q=\'-\'+(15+G(4.c.5.M))+\'L\';4.c.5.k=\'X\';Y;1m\'26\':4.c.5.k=\'X\';4.c.5.q=\'X\';Y}4.2r=4.c.5.k;6(4.o){4.2A();h}4.3q();4.3l();Z(O.9,"1S",4.2s);Z(4.E,"1S",1c(4,"1S"));6(4.g&&4.g["1D"]==J){Z(4.E,"2B",1c(4,"2B"));Z(4.E,"2x",1c(4,"2x"));4.1b=4.1g/2;4.18=4.17/2;4.2D()}};I.S.2J=b(e,1H){6(1H.2f==4.m.16)h;7 1X=9.U("1q");1X.u=4.m.u;1X.16=1H.2f;7 p=4.m.3H;p.3P(1X,4.m);4.m=1X;4.m.5.l=\'1W\';4.D.16=1H.3s;6(1H.2G!=\'\'){1r(\'2p\'+4.c.u).2F=1H.2G}4.28=v;4.1A()};b 3f(u,C){7 8=O.9.2K("A");1f(7 i=0;i<8.1d;i++){6(8[i].1p==u){Z(8[i],"2c",b(Q){6(a!=\'F\'){4.3p()}z{O.2T()}1F(Q);h v});Z(8[i],C.g[\'25\'],1c(C,"2J",8[i]));8[i].5.3j=\'0\';8[i].3r=3o;8[i].3r({C:C,3N:b(){4.C.2J(29,4)}});7 R=9.U("1q");R.16=8[i].2f;R.5.l=\'1M\';R.5.k=\'-1Z\';R.5.q=\'-1Z\';9.T.V(R);R=9.U("1q");R.16=8[i].3s;R.5.l=\'1M\';R.5.k=\'-1Z\';R.5.q=\'-1Z\';9.T.V(R)}}};b 3I(){1Q(1u.1d>0){7 C=1u.3J();C.3h()}};b 2V(){7 1x=\'3Y 3Z\';7 1z=\'\';7 1E=O.9.2K("1q");1f(7 i=0;i<1E.1d;i++){6(/3k/.3m(1E[i].1I)){6(1E[i].2H!=\'\')1x=1E[i].2H;1z=1E[i].16;Y}}7 8=O.9.2K("A");1f(7 i=0;i<8.1d;i++){6(/I/.3m(8[i].1I)){1Q(8[i].1k){6(8[i].1k.1J!=\'1q\'){8[i].3n(8[i].1k)}z{Y}}6(8[i].1k.1J!=\'1q\')3F"3B I 3v!";7 1s=3t.3U(3t.4u()*4r);8[i].C=C;8[i].5.l="1W";8[i].5.2j=\'2k\';8[i].5.3j=\'0\';8[i].5.4o=\'3i\';Z(8[i],"2c",b(Q){6(a!=\'F\'){4.3p()}z{O.2T()}1F(Q);h v});6(8[i].u==\'\'){8[i].u="43"+1s}6(a==\'F\'){8[i].5.1N=0}7 2i=8[i].1k;2i.u="31"+1s;7 t=9.U("1V");t.u="4A"+1s;N=1e 1v(/P(\\s+)?:(\\s+)?(\\d+)/i);n=N.1w(8[i].1p);7 P=4z;6(n){P=G(n[3])}N=1e 1v(/4y\\-4E(\\s+)?:(\\s+)?(2c|4q)/i);n=N.1w(8[i].1p);7 25=\'2c\';6(n){25=n[3]}N=1e 1v(/C\\-H(\\s+)?:(\\s+)?(\\w+)/i);n=N.1w(8[i].1p);t.5.H=\'2S\';6(n){t.5.H=n[3]}N=1e 1v(/C\\-M(\\s+)?:(\\s+)?(\\w+)/i);n=N.1w(8[i].1p);t.5.M=\'2S\';6(n){t.5.M=n[3]}N=1e 1v(/C\\-l(\\s+)?:(\\s+)?(\\w+)/i);n=N.1w(8[i].1p);t.5.k=8[i].1k.H+15+\'L\';t.5.q=\'X\';7 l=\'2I\';6(n){2M(n[3]){1m\'k\':l=\'k\';Y;1m\'24\':l=\'24\';Y;1m\'q\':l=\'q\';Y;1m\'26\':l=\'26\';Y}}N=1e 1v(/4B\\-3w(\\s+)?:(\\s+)?(J|v)/i);n=N.1w(8[i].1p);7 1D=v;6(n){6(n[3]==\'J\')1D=J}N=1e 1v(/3y\\-3E\\-C(\\s+)?:(\\s+)?(J|v)/i);n=N.1w(8[i].1p);7 27=v;6(n){6(n[3]==\'J\')27=J}t.5.30=\'1o\';t.1I="3x";t.5.1N=1P;t.5.13=\'1o\';6(l!=\'26\'){t.5.l=\'1M\'}z{t.5.l=\'1W\'}7 2g=9.U("1q");2g.u="34"+1s;2g.16=8[i].2f;t.V(2g);6(l!=\'26\'){8[i].V(t)}z{1r(8[i].u+\'-3u\').V(t)}7 g={27:27,1D:1D,1C:8[i].2G,P:P,25:25,l:l,1x:1x,1z:1z};7 C=1e I(8[i].u,\'31\'+1s,t.u,\'34\'+1s,g);C.1A();3f(8[i].u,C)}}};6(a==\'F\')4t{9.3M("3z",v,J)}3C(e){};Z(O,"2R",2V);',62,290,'||||this|style|if|var|aels|document|MagicZoom_ua|function|bigImageCont||||settings|return|||left|position|bigImage|matches|pup||top|||bigCont|id|false||||else||loadingCont|zoom|smallImage|smallImageCont|msie|parseInt|width|MagicZoom|true|tag|px|height|re|window|opacity|event|img|prototype|body|createElement|appendChild||0px|break|MagicZoom_addEventListener||scrollTop|documentElement|visibility|||src|smallImageSizeY|positionY||args|positionX|MagicZoom_createMethodReference|length|new|for|smallImageSizeX|popupSizeY|smallY|popupSizeX|firstChild|smallX|case|scrollLeft|hidden|rel|IMG|_el|rand|safari|MagicZoom_zooms|RegExp|exec|loadingText|bigImageSizeY|loadingImg|initZoom|listener|header|drag_mode|iels|MagicZoom_stopEventPropagation|obj|ael|className|tagName|result|arguments|absolute|zIndex|opera|100|while|bigImageSizeX|mousemove|wx|wy|DIV|relative|newBigImage|clientY|10000px||clientX|gecko|hiderect|bottom|thumb_change|custom|bigImage_always_visible|safariOnLoadStarted|null|indexOf|recalculating|click|ar1|checkcoords|href|bigImg|visible|smallImg|display|block|sequence|setTimeout|offsetLeft|property|MagicZoomHeader|push|bigImageContStyleLeft|checkcoords_ref|cursor|vc68|on|MagicView_ia|mouseup|complete|parseFloat|recalculatePopupDimensions|mousedown|object|showrect|vc67|innerHTML|title|alt|right|replaceZoom|getElementsByTagName|offsetParent|switch|offsetTop|HTML|move|BODY|load|300px|focus|filter|MagicZoom_findZooms|perX|pageXOffset|pageYOffset|MagicZoom_getBounds|overflow|sim|skip|MagicZoom_concat|bim|MagicZoom_withoutFirst|methodName|cancelBubble|smallImageContId|bigImageId|MagicZoom_removeEventListener|bigimgsrc|getBoundingClientRect|smallImageId|bigImageContId|MagicZoom_findSelectors|perY|stopZoom|none|outline|MagicZoomLoading|initPopup|test|removeChild|MagicZoom_extendElement|blur|initBigContainer|mzextend|rev|Math|big|invocation|mode|MagicZoomBigImageCont|always|BackgroundImageCache|in|Invalid|catch|default|show|throw|br|parentNode|MagicZoom_stopZooms|pop|removeEventListener|apply|execCommand|selectThisZoom|detachEvent|replaceChild|preventDefault|stopPropagation|textAlign|center|round|border|addEventListener|popupSizey|Loading|Zoom|attachEvent|baseuri|getElementById|sc|MozUserSelect|onselectstart|oncontextmenu|unselectable|Opacity|html|userAgent|alpha|offsetWidth|IFRAME|navigator|padding|3px|frameBorder|Alpha|progid|DXImageTransform|Microsoft|moz|MagicZoomPup|textDecoration|offsetHeight|mouseover|1000000|mozilla|try|random|Array|xgdf7fsgd56|String|thumb|50|bc|drag|charCodeAt|fromCharCode|change|toLowerCase'.split('|'),0,{}))
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/options.js:
--------------------------------------------------------------------------------
1 | function updateNextOption(productId, groupId, selectedOption, lastOptionGroupID, batchMode, selectedOptions, cartItemId){
2 | var indexId = productId;
3 |
4 | if(cartItemId && cartItemId != '' && cartItemId != 'undefined'){
5 | indexId = cartItemId;
6 | }
7 |
8 | //If the user has changed a drop down which is displayed in the middle of the chain, hide the ones after it.
9 | if(currentDisplayedOptionGroup[indexId] > groupId){
10 | for(var i=currentDisplayedOptionGroup[indexId];i>groupId;i--){
11 | hideOptionGroup(indexId, i);
12 | }
13 | }
14 |
15 | if(selectedOption && selectedOption != '' && selectedOption != 'undefined'){
16 | //Build a string of previous group option ids.
17 | var optionIDString = buildOptionIDString(indexId, groupId, selectedOption);
18 | var nextGroupId = parseInt(groupId) + parseInt(1);
19 | var optionsElementName = 'optionGroupOptions-' + indexId + '-' + nextGroupId;
20 | var optionElement = null;
21 | var dropdownElementName = 'optionGroup-' + indexId + '-' + nextGroupId;
22 | var dropdownElement = null;
23 | var photoElementName = 'optionGroupSwatches-' + indexId + '-' + nextGroupId;
24 | var photoElement = null;
25 | var photoDisplayElementName = 'optionGroupSwatchesDisplay-' + indexId + '-' + nextGroupId;
26 | var photoDisplayElement = null;
27 |
28 | if(batchMode && batchMode != '' && batchMode != 'undefined'){
29 | batchMode = true;
30 | } else {
31 | batchMode = null;
32 | }
33 |
34 | //Display the loading image.
35 | if(dropdownElement = document.getElementById(dropdownElementName)){
36 | dropdownElement.style.display = 'block';
37 |
38 | if(photoElement = document.getElementById(photoElementName)){
39 | photoElement.style.display = 'block';
40 | }
41 |
42 | if(photoDisplayElement = document.getElementById(photoDisplayElementName)){
43 | var innerHtml = document.getElementById('optionGroupLoading').innerHTML;
44 | photoDisplayElement.innerHTML = innerHtml;
45 | }
46 |
47 | if(optionElement = document.getElementById(optionsElementName)){
48 | var innerHtml = document.getElementById('optionGroupLoading').innerHTML;
49 | optionElement.innerHTML = innerHtml;
50 | }
51 | }
52 |
53 | if(lastOptionGroupID && lastOptionGroupID != '' && lastOptionGroupID != 'undefined' && groupId == lastOptionGroupID && !batchMode){
54 | drawOptionMainImage(indexId, groupId);
55 | } else if(lastOptionGroupID && lastOptionGroupID != '' && lastOptionGroupID != 'undefined' && groupId != lastOptionGroupID) {
56 | x_getNextOptionDropDown(productId, groupId, selectedOption, optionIDString, lastOptionGroupID, batchMode, selectedOptions, cartItemId, optionGroupHandler);
57 | }
58 | } else {
59 | updatePrice();
60 | }
61 | }
62 |
63 |
64 | function optionGroupHandler(response){
65 | var pieces = response.split('|');
66 | var productId = pieces[0];
67 | var groupId = pieces[1];
68 | var lastOptionGroupID = pieces[2];
69 | var batchMode = pieces[3];
70 | var selectedOptions = pieces[4];
71 | var cartItemId = pieces[5];
72 | var photoHtml = decodeURIComponent(pieces[6]);
73 | var dropdownHtml = decodeURIComponent(pieces[7]);
74 | var indexId = productId;
75 |
76 | if(cartItemId && cartItemId != '' && cartItemId != 'undefined'){
77 | indexId = cartItemId;
78 | }
79 |
80 | var previousGroupId = groupId - 1;
81 | var elementName = 'optionGroup-' + indexId + '-' + groupId;
82 | var optionsElementName = 'optionGroupOptions-' + indexId + '-' + groupId;
83 | var optionElement = null;
84 | var selectedOption = null;
85 | var optionSelectElement = null;
86 | var optionSelectElementName = 'optionSelect-' + indexId + '-' + groupId;
87 | var optionDisplayPhotoElement = null;
88 | var optionDisplayPhotoElementName = 'optionGroupSwatchesDisplay-' + indexId + '-' + groupId;
89 | var opionPhotoElementName = 'optionGroupSwatches-' + indexId + '-' + groupId;
90 |
91 | if(optionDisplayPhotoElement = document.getElementById(optionDisplayPhotoElementName)){
92 | if(photoHtml && photoHtml != '' && photoHtml != 'undefined'){
93 | optionDisplayPhotoElement.innerHTML = photoHtml;
94 | } else {
95 | document.getElementById(opionPhotoElementName).style.display = 'none';
96 | }
97 | }
98 |
99 | if(optionDropDownElement = document.getElementById(optionsElementName)){
100 | optionDropDownElement.innerHTML = dropdownHtml;
101 |
102 | if(optionSelectElement = document.getElementById(optionSelectElementName)){
103 | selectedOption = optionSelectElement.value;
104 | }
105 | }
106 |
107 | currentDisplayedOptionGroup[indexId] = groupId;
108 |
109 | if(groupId == lastOptionGroupID){
110 | updatePrice();
111 | }
112 |
113 | updateNextOption(productId, groupId, selectedOption, lastOptionGroupID, batchMode, selectedOptions, cartItemId);
114 | }
115 |
116 |
117 | function hideOptionGroup(indexId, groupId){
118 | var groupElementName = 'optionGroup-' + indexId + '-' + groupId;
119 | var groupPhotoElementName = 'optionGroupSwatches-' + indexId + '-' + groupId;
120 | var optionGroup = null;
121 | var optionPhotoGroup = null;
122 |
123 | if(optionGroup = document.getElementById(groupElementName)){
124 | optionGroup.style.display = 'none';
125 | }
126 |
127 | if(optionPhotoGroup = document.getElementById(groupPhotoElementName)){
128 | optionPhotoGroup.style.display = 'none';
129 | }
130 | }
131 |
132 |
133 | function changeOption(productId, groupId, optionId, lastOptionGroupID, batchMode){
134 | var element = getOptionSelectElement(productId, groupId);
135 |
136 | if(element && element != '' && element != 'undefined'){
137 | if(batchMode && batchMode != '' && batchMode != 'undefined'){
138 | batchMode = true;
139 | } else {
140 | batchMode = null;
141 | }
142 |
143 | var options = element.options;
144 | var optionsLength = options.length;
145 |
146 | for(var i=0;ia.split("/")[0].indexOf(":")&&(a=k+f[2].substring(0,f[2].lastIndexOf("/"))+
8 | "/"+a):a=k+f[2]+(a||Be);d.href=a;e=c(d);return{protocol:(d.protocol||"").toLowerCase(),host:e[0],port:e[1],path:e[2],Oa:d.search||"",url:a||""}}function Na(a,b){function c(b,c){a.contains(b)||a.set(b,[]);a.get(b).push(c)}for(var d=Da(b).split("&"),e=0;ef?c(d[e],"1"):c(d[e].substring(0,f),d[e].substring(f+1))}}
9 | function Pa(a,b){if(F(a)||"["==a.charAt(0)&&"]"==a.charAt(a.length-1))return"-";var c=J.domain;return a.indexOf(c+(b&&"/"!=b?b:""))==(0==a.indexOf("http://")?7:0==a.indexOf("https://")?8:0)?"0":a};var Qa=0;function Ra(a,b,c){1<=Qa||1<=100*Math.random()||ld()||(a=["utmt=error","utmerr="+a,"utmwv=5.6.7","utmn="+Ea(),"utmsp=1"],b&&a.push("api="+b),c&&a.push("msg="+G(c.substring(0,100))),M.w&&a.push("aip=1"),Sa(a.join("&")),Qa++)};var Ta=0,Ua={};function N(a){return Va("x"+Ta++,a)}function Va(a,b){Ua[a]=!!b;return a}
10 | var Wa=N(),Xa=Va("anonymizeIp"),Ya=N(),$a=N(),ab=N(),bb=N(),O=N(),P=N(),cb=N(),db=N(),eb=N(),fb=N(),gb=N(),hb=N(),ib=N(),jb=N(),kb=N(),lb=N(),nb=N(),ob=N(),pb=N(),qb=N(),rb=N(),sb=N(),tb=N(),ub=N(),vb=N(),wb=N(),xb=N(),yb=N(),zb=N(),Ab=N(),Bb=N(),Cb=N(),Db=N(),Eb=N(),Fb=N(!0),Gb=Va("currencyCode"),Hb=Va("page"),Ib=Va("title"),Jb=N(),Kb=N(),Lb=N(),Mb=N(),Nb=N(),Ob=N(),Pb=N(),Qb=N(),Rb=N(),Q=N(!0),Sb=N(!0),Tb=N(!0),Ub=N(!0),Vb=N(!0),Wb=N(!0),Zb=N(!0),$b=N(!0),ac=N(!0),bc=N(!0),cc=N(!0),R=N(!0),dc=N(!0),
11 | ec=N(!0),fc=N(!0),gc=N(!0),hc=N(!0),ic=N(!0),jc=N(!0),S=N(!0),kc=N(!0),lc=N(!0),mc=N(!0),nc=N(!0),oc=N(!0),pc=N(!0),qc=N(!0),rc=Va("campaignParams"),sc=N(),tc=Va("hitCallback"),uc=N();N();var vc=N(),wc=N(),xc=N(),yc=N(),zc=N(),Ac=N(),Bc=N(),Cc=N(),Dc=N(),Ec=N(),Fc=N(),Gc=N(),Hc=N(),Ic=N();N();var Mc=N(),Nc=N(),Yb=N(),Jc=N(),Kc=N(),Lc=Va("utmtCookieName"),Cd=Va("displayFeatures"),Oc=N(),of=Va("gtmid"),Oe=Va("uaName"),Pe=Va("uaDomain"),Qe=Va("uaPath"),pf=Va("linkid");var Re=function(){function a(a,c,d){T(qf.prototype,a,c,d)}a("_createTracker",qf.prototype.hb,55);a("_getTracker",qf.prototype.oa,0);a("_getTrackerByName",qf.prototype.u,51);a("_getTrackers",qf.prototype.pa,130);a("_anonymizeIp",qf.prototype.aa,16);a("_forceSSL",qf.prototype.la,125);a("_getPlugin",Pc,120)},Se=function(){function a(a,c,d){T(U.prototype,a,c,d)}Qc("_getName",$a,58);Qc("_getAccount",Wa,64);Qc("_visitCode",Q,54);Qc("_getClientInfo",ib,53,1);Qc("_getDetectTitle",lb,56,1);Qc("_getDetectFlash",
12 | jb,65,1);Qc("_getLocalGifPath",wb,57);Qc("_getServiceMode",xb,59);V("_setClientInfo",ib,66,2);V("_setAccount",Wa,3);V("_setNamespace",Ya,48);V("_setAllowLinker",fb,11,2);V("_setDetectFlash",jb,61,2);V("_setDetectTitle",lb,62,2);V("_setLocalGifPath",wb,46,0);V("_setLocalServerMode",xb,92,void 0,0);V("_setRemoteServerMode",xb,63,void 0,1);V("_setLocalRemoteServerMode",xb,47,void 0,2);V("_setSampleRate",vb,45,1);V("_setCampaignTrack",kb,36,2);V("_setAllowAnchor",gb,7,2);V("_setCampNameKey",ob,41);V("_setCampContentKey",
13 | tb,38);V("_setCampIdKey",nb,39);V("_setCampMediumKey",rb,40);V("_setCampNOKey",ub,42);V("_setCampSourceKey",qb,43);V("_setCampTermKey",sb,44);V("_setCampCIdKey",pb,37);V("_setCookiePath",P,9,0);V("_setMaxCustomVariables",yb,0,1);V("_setVisitorCookieTimeout",cb,28,1);V("_setSessionCookieTimeout",db,26,1);V("_setCampaignCookieTimeout",eb,29,1);V("_setReferrerOverride",Jb,49);V("_setSiteSpeedSampleRate",Dc,132);a("_trackPageview",U.prototype.Fa,1);a("_trackEvent",U.prototype.F,4);a("_trackPageLoadTime",
14 | U.prototype.Ea,100);a("_trackSocial",U.prototype.Ga,104);a("_trackTrans",U.prototype.Ia,18);a("_sendXEvent",U.prototype.ib,78);a("_createEventTracker",U.prototype.ia,74);a("_getVersion",U.prototype.qa,60);a("_setDomainName",U.prototype.B,6);a("_setAllowHash",U.prototype.va,8);a("_getLinkerUrl",U.prototype.na,52);a("_link",U.prototype.link,101);a("_linkByPost",U.prototype.ua,102);a("_setTrans",U.prototype.za,20);a("_addTrans",U.prototype.$,21);a("_addItem",U.prototype.Y,19);a("_clearTrans",U.prototype.ea,
15 | 105);a("_setTransactionDelim",U.prototype.Aa,82);a("_setCustomVar",U.prototype.wa,10);a("_deleteCustomVar",U.prototype.ka,35);a("_getVisitorCustomVar",U.prototype.ra,50);a("_setXKey",U.prototype.Ca,83);a("_setXValue",U.prototype.Da,84);a("_getXKey",U.prototype.sa,76);a("_getXValue",U.prototype.ta,77);a("_clearXKey",U.prototype.fa,72);a("_clearXValue",U.prototype.ga,73);a("_createXObj",U.prototype.ja,75);a("_addIgnoredOrganic",U.prototype.W,15);a("_clearIgnoredOrganic",U.prototype.ba,97);a("_addIgnoredRef",
16 | U.prototype.X,31);a("_clearIgnoredRef",U.prototype.ca,32);a("_addOrganic",U.prototype.Z,14);a("_clearOrganic",U.prototype.da,70);a("_cookiePathCopy",U.prototype.ha,30);a("_get",U.prototype.ma,106);a("_set",U.prototype.xa,107);a("_addEventListener",U.prototype.addEventListener,108);a("_removeEventListener",U.prototype.removeEventListener,109);a("_addDevId",U.prototype.V);a("_getPlugin",Pc,122);a("_setPageGroup",U.prototype.ya,126);a("_trackTiming",U.prototype.Ha,124);a("_initData",U.prototype.initData,
17 | 2);a("_setVar",U.prototype.Ba,22);V("_setSessionTimeout",db,27,3);V("_setCookieTimeout",eb,25,3);V("_setCookiePersistence",cb,24,1);a("_setAutoTrackOutbound",Fa,79);a("_setTrackOutboundSubdomains",Fa,81);a("_setHrefExamineLimit",Fa,80)};function Pc(a){var b=this.plugins_;if(b)return b.get(a)}
18 | var T=function(a,b,c,d){a[b]=function(){try{return void 0!=d&&H(d),c.apply(this,arguments)}catch(a){throw Ra("exc",b,a&&a.name),a;}}},Qc=function(a,b,c,d){U.prototype[a]=function(){try{return H(c),Aa(this.a.get(b),d)}catch(e){throw Ra("exc",a,e&&e.name),e;}}},V=function(a,b,c,d,e){U.prototype[a]=function(f){try{H(c),void 0==e?this.a.set(b,Aa(f,d)):this.a.set(b,e)}catch(Be){throw Ra("exc",a,Be&&Be.name),Be;}}},Te=function(a,b){return{type:b,target:a,stopPropagation:function(){throw"aborted";}}};var Rc=new RegExp(/(^|\.)doubleclick\.net$/i),Sc=function(a,b){return Rc.test(J.location.hostname)?!0:"/"!==b?!1:0!=a.indexOf("www.google.")&&0!=a.indexOf(".google.")&&0!=a.indexOf("google.")||-1b.length||ad(b[0],c))return!1;b=b.slice(1).join(".").split("|");
23 | 0=b.length)return!0;b=b[1].split(-1==b[1].indexOf(",")?"^":",");for(c=0;cb.length||ad(b[0],c))return a.set(ec,void 0),a.set(fc,void 0),a.set(gc,void 0),a.set(ic,void 0),a.set(jc,void 0),a.set(nc,void 0),a.set(oc,void 0),a.set(pc,void 0),a.set(qc,void 0),a.set(S,void 0),a.set(kc,void 0),a.set(lc,void 0),a.set(mc,void 0),!1;a.set(ec,1*b[1]);a.set(fc,1*b[2]);a.set(gc,1*b[3]);
25 | Ve(a,b.slice(4).join("."));return!0},Ve=function(a,b){function c(a){return(a=b.match(a+"=(.*?)(?:\\|utm|$)"))&&2==a.length?a[1]:void 0}function d(b,c){c?(c=e?I(c):c.split("%20").join(" "),a.set(b,c)):a.set(b,void 0)}-1==b.indexOf("=")&&(b=I(b));var e="2"==c("utmcvr");d(ic,c("utmcid"));d(jc,c("utmccn"));d(nc,c("utmcsr"));d(oc,c("utmcmd"));d(pc,c("utmctr"));d(qc,c("utmcct"));d(S,c("utmgclid"));d(kc,c("utmgclsrc"));d(lc,c("utmdclid"));d(mc,c("utmdsid"))},ad=function(a,b){return b?a!=b:!/^\d+$/.test(a)};var Uc=function(){this.filters=[]};Uc.prototype.add=function(a,b){this.filters.push({name:a,s:b})};Uc.prototype.cb=function(a){try{for(var b=0;b=100*a.get(vb)&&a.stopPropagation()}function kd(a){ld(a.get(Wa))&&a.stopPropagation()}function md(a){"file:"==J.location.protocol&&a.stopPropagation()}function Ge(a){He()&&a.stopPropagation()}
26 | function nd(a){a.get(Ib)||a.set(Ib,J.title,!0);a.get(Hb)||a.set(Hb,J.location.pathname+J.location.search,!0)}function lf(a){a.get(Wa)&&"UA-XXXXX-X"!=a.get(Wa)||a.stopPropagation()};var od=new function(){var a=[];this.set=function(b){a[b]=!0};this.encode=function(){for(var b=[],c=0;c=b[0]||0>=b[1]?"":b.join("x");a.Wa=d}catch(k){H(135)}qd=a}},td=function(){sd();for(var a=qd,b=W.navigator,a=b.appName+b.version+a.language+b.platform+b.userAgent+a.javaEnabled+a.jb+a.P+(J.cookie?J.cookie:"")+(J.referrer?J.referrer:""),b=a.length,c=W.history.length;0d?(this.i=b.substring(0,d),this.l=b.substring(d+1,c),this.h=b.substring(c+1)):(this.i=b.substring(0,d),this.h=b.substring(d+1));this.Xa=a.slice(1);this.Ma=!this.l&&"_require"==this.h;this.J=!this.i&&!this.l&&"_provide"==this.h}},Y=function(){T(Y.prototype,
32 | "push",Y.prototype.push,5);T(Y.prototype,"_getPlugin",Pc,121);T(Y.prototype,"_createAsyncTracker",Y.prototype.Sa,33);T(Y.prototype,"_getAsyncTracker",Y.prototype.Ta,34);this.I=new nf;this.eb=[]};E=Y.prototype;E.Na=function(a,b,c){var d=this.I.get(a);if(!Ba(d))return!1;b.plugins_=b.plugins_||new nf;b.plugins_.set(a,new d(b,c||{}));return!0};E.push=function(a){var b=Z.Va.apply(this,arguments),b=Z.eb.concat(b);for(Z.eb=[];0e?b+"#"+d:b+"&"+d;c="";f=b.indexOf("?");0f?b+"?"+d+c:b+"&"+d+c},$d=function(a,b,c,d){for(var e=0;3>e;e++){for(var f=
48 | 0;3>f;f++){if(d==Yc(a+b+c))return H(127),[b,c];var Be=b.replace(/ /g,"%20"),k=c.replace(/ /g,"%20");if(d==Yc(a+Be+k))return H(128),[Be,k];Be=Be.replace(/\+/g,"%20");k=k.replace(/\+/g,"%20");if(d==Yc(a+Be+k))return H(129),[Be,k];try{var Ja=b.match("utmctr=(.*?)(?:\\|utm|$)");if(Ja&&2==Ja.length&&(Be=b.replace(Ja[1],G(I(Ja[1]))),d==Yc(a+Be+c)))return H(139),[Be,c]}catch(t){}b=I(b)}c=I(c)}};var de="|",fe=function(a,b,c,d,e,f,Be,k,Ja){var t=ee(a,b);t||(t={},a.get(Cb).push(t));t.id_=b;t.affiliation_=c;t.total_=d;t.tax_=e;t.shipping_=f;t.city_=Be;t.state_=k;t.country_=Ja;t.items_=t.items_||[];return t},ge=function(a,b,c,d,e,f,Be){a=ee(a,b)||fe(a,b,"",0,0,0,"","","");var k;a:{if(a&&a.items_){k=a.items_;for(var Ja=0;Jab.length||!/^\d+$/.test(b[0])||(b[0]=""+c,Fd(a,"__utmx",b.join("."),void 0))},be=function(a,b){var c=$c(a.get(O),pd("__utmx"));"-"==c&&(c="");return b?G(c):c},Ye=function(a){try{var b=La(J.location.href,!1),c=decodeURIComponent(L(b.R.get("utm_referrer")))||"";c&&a.set(Jb,c);var d=decodeURIComponent(K(b.R.get("utm_expid")))||"";d&&(d=d.split(".")[0],a.set(Oc,""+d))}catch(e){H(146)}},l=function(a){var b=W.gaData&&W.gaData.expId;b&&a.set(Oc,
50 | ""+b)};var ke=function(a,b){var c=Math.min(a.b(Dc,0),100);if(a.b(Q,0)%100>=c)return!1;c=Ze()||$e();if(void 0==c)return!1;var d=c[0];if(void 0==d||Infinity==d||isNaN(d))return!1;0a[b])return!1;return!0},le=function(a){return isNaN(a)||0>a?0:5E3>a?10*Math.floor(a/10):5E4>a?100*Math.floor(a/100):41E5>a?1E3*Math.floor(a/1E3):41E5},je=function(a){for(var b=new yd,c=0;cc.length)){for(var d=[],e=0;e=f)return!1;c=1*(""+c);if(""==a||!wd(a)||""==b||!wd(b)||!xd(c)||isNaN(c)||0>c||0>f||100=a||a>e.get(yb))a=!1;else if(!b||!c||128=a&&Ca(b)&&""!=b){var c=this.get(Fc)||[];c[a]=b;this.set(Fc,c)}};E.V=function(a){a=""+a;if(a.match(/^[A-Za-z0-9]{1,5}$/)){var b=this.get(Ic)||[];b.push(a);this.set(Ic,b)}};E.initData=function(){this.a.load()};
66 | E.Ba=function(a){a&&""!=a&&(this.set(Tb,a),this.a.j("var"))};var ne=function(a){"trans"!==a.get(sc)&&500<=a.b(cc,0)&&a.stopPropagation();if("event"===a.get(sc)){var b=(new Date).getTime(),c=a.b(dc,0),d=a.b(Zb,0),c=Math.floor((b-(c!=d?c:1E3*c))/1E3*1);0=a.b(R,0)&&a.stopPropagation()}},pe=function(a){"event"===a.get(sc)&&a.set(R,Math.max(0,a.b(R,10)-1))};var qe=function(){var a=[];this.add=function(b,c,d){d&&(c=G(""+c));a.push(b+"="+c)};this.toString=function(){return a.join("&")}},re=function(a,b){(b||2!=a.get(xb))&&a.Za(cc)},se=function(a,b){b.add("utmwv","5.6.7");b.add("utms",a.get(cc));b.add("utmn",Ea());var c=J.location.hostname;F(c)||b.add("utmhn",c,!0);c=a.get(vb);100!=c&&b.add("utmsp",c,!0)},te=function(a,b){b.add("utmht",(new Date).getTime());b.add("utmac",Da(a.get(Wa)));a.get(Oc)&&b.add("utmxkey",a.get(Oc),!0);a.get(vc)&&b.add("utmni",1);
67 | a.get(of)&&b.add("utmgtm",a.get(of),!0);var c=a.get(Ic);c&&0=a.length)gf(a,b,c);else if(8192>=a.length){if(0<=W.navigator.userAgent.indexOf("Firefox")&&![].reduce)throw new De(a.length);df(a,b)||ef(a,b)||Ee(a,b)||b()}else throw new Ce(a.length);},gf=function(a,b,c){c=c||Ne()+"/__utm.gif?";
74 | var d=new Image(1,1);d.src=c+a;d.onload=function(){d.onload=null;d.onerror=null;b()};d.onerror=function(){d.onload=null;d.onerror=null;b()}},ef=function(a,b){if(0!=Ne().indexOf(J.location.protocol))return!1;var c;c=W.XDomainRequest;if(!c)return!1;c=new c;c.open("POST",Ne()+"/p/__utm.gif");c.onerror=function(){b()};c.onload=b;c.send(a);return!0},df=function(a,b){var c=W.XMLHttpRequest;if(!c)return!1;var d=new c;if(!("withCredentials"in d))return!1;d.open("POST",Ne()+"/p/__utm.gif",!0);d.withCredentials=
75 | !0;d.setRequestHeader("Content-Type","text/plain");d.onreadystatechange=function(){4==d.readyState&&(b(),d=null)};d.send(a);return!0},Ee=function(a,b){if(!J.body)return We(function(){Ee(a,b)},100),!0;a=encodeURIComponent(a);try{var c=J.createElement('')}catch(d){c=J.createElement("iframe"),c.name=a}c.height="0";c.width="0";c.style.display="none";c.style.visibility="hidden";var e=Ne()+"/u/post_iframe.html";Ga(W,"beforeunload",function(){c.src="";c.parentNode&&c.parentNode.removeChild(c)});
76 | setTimeout(b,1E3);J.body.appendChild(c);c.src=e;return!0};var qf=function(){this.G=this.w=!1;0==Ea()%1E4&&(H(142),this.G=!0);this.C={};this.D=[];this.U=0;this.S=[["www.google-analytics.com","","/plugins/"]];this._gasoCPath=this._gasoDomain=this.bb=void 0;Re();Se()};E=qf.prototype;E.oa=function(a,b){return this.hb(a,void 0,b)};E.hb=function(a,b,c){b&&H(23);c&&H(67);void 0==b&&(b="~"+M.U++);a=new U(b,a,c);M.C[b]=a;M.D.push(a);return a};E.u=function(a){a=a||"";return M.C[a]||M.hb(void 0,a)};E.pa=function(){return M.D.slice(0)};E.ab=function(){return M.D.length};
77 | E.aa=function(){this.w=!0};E.la=function(){this.G=!0};var Fe=function(a){if("prerender"==J.visibilityState)return!1;a();return!0};var M=new qf;var Ha=W._gat;Ha&&Ba(Ha._getTracker)?M=Ha:W._gat=M;var Z=new Y;(function(a){if(!Fe(a)){H(123);var b=!1,c=function(){if(!b&&Fe(a)){b=!0;var d=J,e=c;d.removeEventListener?d.removeEventListener("visibilitychange",e,!1):d.detachEvent&&d.detachEvent("onvisibilitychange",e)}};Ga(J,"visibilitychange",c)}})(function(){var a=W._gaq,b=!1;if(a&&Ba(a.push)&&(b="[object Array]"==Object.prototype.toString.call(Object(a)),!b)){Z=a;return}W._gaq=Z;b&&Z.push.apply(Z,a)});function Yc(a){var b=1,c=0,d;if(a)for(b=0,d=a.length-1;0<=d;d--)c=a.charCodeAt(d),b=(b<<6&268435455)+c+(c<<14),c=b&266338304,b=0!=c?b^c>>21:b;return b};})();
78 |
--------------------------------------------------------------------------------
/test/stub/nuvi 2595LMT_files/nds.css:
--------------------------------------------------------------------------------
1 | /* !!!IMPORTANT!!! PLEASE READ: do NOT modify this file. This file WILL GET OVERWRITTEN during every upgrade.*/
2 | /* If you would like to implement custom CSS changes, please do so in the issues.css file, NOT HERE. */
3 | /* In that file you can override classes declared here and implement your custom CSS changes. */
4 | /* We make sure to include issues.css last in all of our distributed templates to make sure that your changes */
5 | /* override all of the in-house CSS. However, it is up to you to make sure issues.css is included last to make sure */
6 | /* that your CSS changes take effect. */
7 | /* file should be the same */
8 | /* css/nds.css */
9 | /* secure/css/nds.css */
10 |
11 |
12 | body {
13 | font-family: verdana, arial, helvetica, sans-serif;
14 | font-size: 11px;
15 | background-color: #FFFFFF;
16 | color: #5B5B5B;
17 | margin: 0px;
18 | padding: 0px;
19 | text-align: left;
20 | }
21 |
22 | a {
23 | color: #E50029;
24 | }
25 |
26 | a:active {
27 | color: #E50029;
28 | text-decoration: underline;
29 | }
30 |
31 | a:visited {
32 | color: #E50029;
33 | text-decoration: underline;
34 | }
35 |
36 | a:hover {
37 | color: #000000;
38 | text-decoration: underline;
39 | }
40 |
41 | a:visited:hover {
42 | color: #E50029;
43 | text-decoration: underline;
44 | }
45 |
46 | .sublink {
47 | font-size: 85%;
48 | }
49 |
50 | a.sublink {
51 | color: #E50029;
52 | }
53 |
54 | a.sublink:active {
55 | text-decoration: underline;
56 | }
57 |
58 | a.sublink:visited {
59 | text-decoration: underline;
60 | }
61 |
62 | a.sublink:hover {
63 | text-decoration: underline;
64 | }
65 |
66 | a.sublink:visited:hover {
67 | text-decoration: underline;
68 | }
69 |
70 | h2, .page-title {
71 | font-size: 18px;
72 | font-weight: bold;
73 | padding: 3px;
74 | padding-left: 0;
75 | text-align: left;
76 | color: #878787;
77 | }
78 |
79 | h2 a {
80 | color: #878787;
81 | text-decoration: none;
82 | }
83 |
84 | h2 a:hover {
85 | color: #878787;
86 | text-decoration: underline;
87 | }
88 |
89 | form {
90 | margin: 0;
91 | }
92 |
93 |
94 | .padMe {
95 | float: left;
96 | padding: 5px;
97 | width: 95%;
98 | }
99 |
100 | .display-line {
101 | font-size: 11px;
102 | padding: 3px;
103 | }
104 |
105 | .display-line-footer {
106 | font-size: 11px;
107 | padding: 3px;
108 | text-align: right;
109 | line-height: 20px;
110 | }
111 |
112 | #bg {
113 | background: url(../design/images/bg_11.jpg) repeat fixed top center;
114 | width: 100%;
115 | height: 140px;
116 | left: 0px;
117 | top: 0px;
118 | z-index: -1;
119 | }
120 |
121 | #page {
122 | width: 724px;
123 | height: auto;
124 | position: absolute;
125 | left: 10%;
126 | top: 0px;
127 | z-index: 1;
128 | }
129 |
130 | #tabs {
131 | clear: left;
132 | text-align: right;
133 | padding-right: 15px;
134 | width: 724px;
135 | }
136 |
137 | #masthead {
138 | clear: left;
139 | width: 724px;
140 | height: 140px;
141 | }
142 |
143 | .container {
144 | float: left;
145 | width: 65%;
146 | padding: 10px;
147 | text-align: left;
148 | }
149 |
150 | hr {
151 | float: left;
152 | width: 98%;
153 | color: #E2E2E2;
154 | background-color: #E2E2E2;
155 | height: 1px;
156 | }
157 |
158 | .disabled {
159 | font-weight: bold;
160 | color: #E2E2E2;
161 | padding-top: 10px;
162 | padding-bottom: 10px;
163 | }
164 |
165 | .myerror, .pending{
166 | font-weight: bold;
167 | color: #C00000;
168 | padding-top: 10px;
169 | padding-bottom: 10px;
170 | }
171 |
172 | .price, .display-item-price {
173 | font-weight: bold;
174 | color: #E50029;
175 | font-size: 110%;
176 | padding: 5px;
177 | }
178 |
179 | .form-label {
180 | clear: left;
181 | float: left;
182 | text-align: right;
183 | padding: 4px;
184 | width: 20%;
185 | }
186 |
187 | .form-label-required {
188 | clear: left;
189 | float: left;
190 | text-align: right;
191 | padding: 4px;
192 | width: 20%;
193 | font-weight: bold;
194 | }
195 |
196 | .form-field {
197 | padding: 4px;
198 | height: auto;
199 | float: left;
200 | }
201 |
202 |
203 | #infolist {
204 | margin-left: 0;
205 | padding-left: 0;
206 | list-style: none;
207 | }
208 |
209 | #infolist li {
210 | padding-left: 17px;
211 | background-image: url(../design/images/arrow.gif);
212 | background-repeat: no-repeat;
213 | background-position: 0.5em;
214 | }
215 |
216 | input, textarea, select {
217 | font-size: 100%;
218 | font-weight: normal;
219 | }
220 |
221 | #orderStats {
222 | padding: 2px;
223 | margin: 5px;
224 | float: left;
225 | border: 1px solid #D8DDE3;
226 | height: 190px;
227 | width: 25%;
228 | }
229 |
230 | .goLeft, .section {
231 | float: left;
232 | text-align: left;
233 | }
234 |
235 | .goRight, .logout {
236 | text-align: right;
237 | float: right;
238 | }
239 |
240 | .goUp {
241 | vertical-align: top;
242 | }
243 |
244 | .moneyFormat{
245 | text-align: right;
246 | height:20px;
247 | vertical-align: middle;
248 | }
249 |
250 |
251 | #pageNote {
252 | width: 95%;
253 | text-align: left;
254 | float: left;
255 | padding-bottom: 10px;
256 | }
257 |
258 | .submitBtn {
259 | font-size: 130%;
260 | font-weight: bold;
261 | }
262 |
263 | .submitOrder {
264 | width: 80%;
265 | margin-top: 10px;
266 | margin-bottom: 10px;
267 | background-color: #C6C6C6;
268 | }
269 | #logo {
270 | float: left;
271 | height: 73px;
272 | vertical-align: middle;
273 | padding-top: 30px;
274 | }
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 | /* begin giftCerts */
284 | /* used in templates/gift.certs.tem.php */
285 |
286 | #giftCerts {
287 | text-align: left;
288 | margin: 5px;
289 | width: 500px;
290 | }
291 |
292 | #giftCerts h2 { }
293 |
294 | #giftCerts #pageNote {
295 | height: 25px;
296 | width: auto;
297 | }
298 |
299 | #giftCerts .form-label { }
300 |
301 | #giftCerts .form-field { }
302 |
303 |
304 | /* end giftCerts */
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 | /* begin categoryList */
313 | /* used in templates/category.grid.tem.php */
314 | /* only used when the cart is displaying a "list" of categories */
315 |
316 | #categoryList {
317 | }
318 |
319 | #categoryList h2 { }
320 |
321 | #categoryList #categoryDescription {
322 | }
323 |
324 | #categoryList #topOptions .sort .option select {
325 | }
326 |
327 | #categoryList .content-odd1 {
328 | }
329 |
330 | #categoryList .content-even1 {
331 | }
332 |
333 | #categoryList .title {
334 | }
335 |
336 | #categoryList .title a {
337 | }
338 |
339 | #categoryList .title a:hover {
340 | }
341 |
342 | #categoryList .photo {
343 | }
344 |
345 | #categoryList .description {
346 | }
347 |
348 | #categoryList .details {
349 | }
350 |
351 | #categoryList .details .buttons {
352 | }
353 |
354 | #categoryList .details .buttons .detailBtn {
355 | }
356 |
357 | #categoryList .details .buttons .detailBtn a {
358 | }
359 |
360 | #categoryList .details .buttons .detailBtn a:hover {
361 | }
362 |
363 |
364 | #categoryList #btmOptions {
365 | }
366 |
367 |
368 | #categoryList #btmOptions .pagination {
369 | }
370 |
371 | #categoryList #btmOptions .pagination a {
372 | }
373 |
374 | #categoryList #btmOptions .pagination a:hover {
375 | }
376 |
377 | #categoryList homepagecontent {
378 | }
379 |
380 | /* end categoryList */
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 | /* begin categoryGrid */
394 | /* only used when the cart is displaying a "grid" (multiple columns) of categories */
395 |
396 | #categoryGrid {
397 | text-align: left;
398 | margin: 5px;
399 | width: 500px;
400 | }
401 |
402 | #categoryGrid h2 { }
403 |
404 | #categoryGrid #categoryDescription {
405 | float: left;
406 | clear: left;
407 | margin-bottom: 10px;
408 | border: 1px solid #FFFFFF;
409 | width: auto;
410 | height: auto;
411 | }
412 |
413 | /* used in 2 column category Grids */
414 | #categoryGrid .content-odd2 {
415 | border: 1px dotted #D9D9D9;
416 | text-align: center;
417 | vertical-align: top;
418 | padding: 8px;
419 | margin: 1px;
420 | width: 45%;
421 | padding-bottom: 15px;
422 | }
423 |
424 | #categoryGrid .content-even2 {
425 | border: 1px dotted #D9D9D9;
426 | text-align: center;
427 | vertical-align: top;
428 | padding: 8px;
429 | margin: 1px;
430 | width: 45%;
431 | padding-bottom: 15px;
432 | }
433 |
434 |
435 | /* used in 3 column category Grids */
436 | #categoryGrid .content-odd3 {
437 | border: 1px dotted #D9D9D9;
438 | text-align: center;
439 | vertical-align: top;
440 | padding: 8px;
441 | margin: 1px;
442 | width: 30%;
443 | padding-left: 35px;
444 | padding-right: 35px;
445 | padding-bottom: 15px;
446 | }
447 |
448 | #categoryGrid .content-even3 {
449 | border: 1px dotted #D9D9D9;
450 | text-align: center;
451 | vertical-align: top;
452 | padding: 8px;
453 | margin: 1px;
454 | width: 30%;
455 | padding-left: 35px;
456 | padding-right: 35px;
457 | padding-bottom: 15px;
458 | }
459 |
460 |
461 | /* used in 4 column category Grids */
462 | #categoryGrid .content-odd4 {
463 | border: 1px dotted #D9D9D9;
464 | text-align: center;
465 | vertical-align: top;
466 | padding: 8px;
467 | margin: 1px;
468 | width: 22%;
469 | padding-bottom: 15px;
470 | }
471 |
472 | #categoryGrid .content-even4 {
473 | border: 1px dotted #D9D9D9;
474 | text-align: center;
475 | vertical-align: top;
476 | padding: 8px;
477 | margin: 1px;
478 | width: 22%;
479 | padding-bottom: 15px;
480 | }
481 |
482 |
483 | /* used in 5 column category Grids */
484 | #categoryGrid .content-odd5 {
485 | border: 1px dotted #D9D9D9;
486 | text-align: center;
487 | vertical-align: top;
488 | padding: 8px;
489 | margin: 1px;
490 | width: auto;
491 | padding-bottom: 15px;
492 | }
493 |
494 | #categoryGrid .content-even5 {
495 | border: 1px dotted #D9D9D9;
496 | text-align: center;
497 | vertical-align: top;
498 | padding: 8px;
499 | margin: 1px;
500 | width: auto;
501 | padding-bottom: 15px;
502 | }
503 |
504 |
505 | #categoryGrid .title {
506 | margin-top: 8px;
507 | margin-bottom: 8px;
508 | float: left;
509 | clear: both;
510 | width: 100%;
511 | text-align: center;
512 | }
513 |
514 | #categoryGrid .title a {
515 | color: #C50024;
516 | font-size: 14px;
517 | text-decoration: underline;
518 | font-weight: bold;
519 | line-height: 16px;
520 | }
521 |
522 | #categoryGrid .title a:hover {
523 | text-decoration: none;
524 | }
525 |
526 | #categoryGrid .photo {
527 | width: 100%;
528 | height: auto;
529 | float: left;
530 | clear: left;
531 | }
532 |
533 | #categoryGrid .description {
534 | width: 100%;
535 | text-align: center;
536 | clear: both;
537 | }
538 |
539 | #categoryGrid .details {
540 | width: 100%;
541 | font-size: 11px;
542 | font-weight: normal;
543 | text-align: center;
544 | color: #464646;
545 | }
546 |
547 | #categoryGrid .details .buttons {
548 | width: 100%;
549 | float: left;
550 | clear: left;
551 | text-align: center;
552 | margin-top: 5px;
553 | margin-bottom: 5px;
554 | }
555 |
556 | #categoryGrid .details .buttons .detailBtn {
557 | background:url(../design/images/medium_btn.gif) no-repeat center center;
558 | font-weight: bold;
559 | font-size: 10px;
560 | float: left;
561 | padding-top: 6px;
562 | width: 100%;
563 | height: 19px;
564 | text-align: center;
565 | vertical-align: middle;
566 | }
567 |
568 | #categoryGrid .details .buttons .detailBtn a {
569 | text-align: center;
570 | color: #FFFFFF;
571 | text-decoration: none;
572 | }
573 |
574 | #categoryGrid .details .buttons .detailBtn a:hover {
575 | text-align: center;
576 | color: #FFFFFF;
577 | text-decoration: underline;
578 | }
579 |
580 | #categoryGrid #btmOptions {
581 | height: 40px;
582 | }
583 |
584 | #categoryGrid #btmOptions .pagination {
585 | float: right;
586 | padding-top: 18px;
587 | height: 22px;
588 | font-size: 12px;
589 | }
590 |
591 | #categoryGrid #btmOptions .pagination a {
592 | color: #C00000;
593 | text-decoration: underline;
594 | }
595 |
596 | #categoryGrid #btmOptions .pagination a:hover {
597 | color: #000000;
598 | text-decoration: none;
599 |
600 | }
601 |
602 | #categoryGrid homepagecontent {
603 | clear: left;
604 | float: left;
605 | }
606 |
607 | /* end categoryGrid */
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 | /* begin affiliateLogin */
616 | /* used in templates/affiliate.login.tem.php */
617 | /* used in templates/affiliate.login.password.tem.php */
618 | /* used in templates/affiliate.default.tem.php */
619 |
620 | #affiliateLogin {
621 | text-align: left;
622 | width: 500px;
623 | margin: 5px;
624 | }
625 |
626 | #affiliateLogin h2 { }
627 |
628 |
629 | /* end affiliateLogin */
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 | /* begin customerLogin */
640 | /* used in templates/client.login.tem.php */
641 | /* used in templates/client.login.password.tem.php */
642 | /* used in templates/client.create.form.tem.php */
643 |
644 | #customerLogin {
645 | text-align: left;
646 | width: 500px;
647 | margin: 5px;
648 | }
649 |
650 | #customerLogin h2 { }
651 |
652 | #customerLogin #existingCustomer {
653 | height: 190px;
654 | width: 265px;
655 | clear: left;
656 | float: left;
657 | }
658 |
659 | #customerLogin #newCustomer {
660 | height: 190px;
661 | width: 200px;
662 | float: right;
663 | }
664 |
665 | #existingCustomer .hdr-title, #newCustomer .hdr-title ,#createCustomer .hdr-title , #passwordRemindCustomer .hdr-title {
666 | color: #FFFFFF;
667 | background-color: #878787;
668 | text-align: left;
669 | padding:5px;
670 | font-weight: bold;
671 | }
672 |
673 | #existingCustomer .body { }
674 |
675 | #newCustomer .body {
676 | padding: 5px;
677 | text-align: center;
678 | }
679 |
680 | #newCustomer .body input {
681 | margin-top: 12px;
682 | }
683 |
684 |
685 | #customerLogin #passwordRemindCustomer, #customerLogin #createCustomer {
686 | width: 90%;
687 | }
688 |
689 | #customerLogin #createCustomer .body { }
690 |
691 |
692 | /* end customerLogin */
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 | /* begin productGrid */
701 | /* only used when a product is displaying a "grid" (multiple columns) of products */
702 |
703 | #productGrid {
704 | text-align: left;
705 | margin: 5px;
706 | width: 500px;
707 | }
708 |
709 | #productGrid h2 { }
710 |
711 | #productGrid #categoryDescription {
712 | float: left;
713 | clear: left;
714 | margin-bottom: 10px;
715 | border: 1px solid #FFFFFF;
716 | width: auto;
717 | height: auto;
718 | }
719 |
720 | #productGrid table{
721 | float: left;
722 | clear: left;
723 | width: 100%;
724 | }
725 |
726 | #productGrid #topOptions {
727 | width: auto;
728 | height: 40px;
729 | float: left;
730 | clear: left;
731 | }
732 |
733 | #productGrid #topOptions .search {
734 | float: left;
735 | clear: left;
736 | height: 18px;
737 | }
738 |
739 | #productGrid #topOptions .myrow {
740 | width: 500px;
741 | height: 25px;
742 | }
743 |
744 | #productGrid #topOptions .display {
745 | float: left;
746 | clear: left;
747 | height: 18px;
748 | width: 260px;
749 | text-align: left;
750 | }
751 |
752 | #productGrid #topOptions .sort {
753 | width: 210px;
754 | height: 20px;
755 | float: right;
756 | text-align: right;
757 | }
758 |
759 | #productGrid #topOptions .sort .label {
760 | float: left;
761 | height: 18px;
762 | padding: 2px;
763 | padding-top: 5px;
764 | }
765 |
766 | #productGrid #topOptions .sort .option {
767 | float: left;
768 | height: 18px;
769 | padding: 2px;
770 | }
771 |
772 | #productGrid #topOptions .sort .option select {
773 | height: 18px;
774 | }
775 |
776 |
777 | /* used in 2 column product Grids */
778 | #productGrid .content-even2 {
779 | border: 1px dotted #D9D9D9;
780 | text-align: center;
781 | vertical-align: top;
782 | padding: 8px;
783 | margin: 1px;
784 | width: 45%;
785 | padding-bottom: 15px;
786 | }
787 |
788 | #productGrid .content-odd2 {
789 | border: 1px dotted #D9D9D9;
790 | text-align: center;
791 | vertical-align: top;
792 | padding: 8px;
793 | margin: 1px;
794 | width: 45%;
795 | padding-bottom: 15px;
796 | }
797 |
798 |
799 | /* used in 3 column product Grids */
800 | #productGrid .content-even3 {
801 | border: 1px dotted #D9D9D9;
802 | text-align: center;
803 | vertical-align: top;
804 | padding: 8px;
805 | margin: 1px;
806 | width: 30%;
807 | padding-left: 35px;
808 | padding-right: 35px;
809 | padding-bottom: 15px;
810 | }
811 |
812 | #productGrid .content-odd3 {
813 | border: 1px dotted #D9D9D9;
814 | text-align: center;
815 | vertical-align: top;
816 | padding: 8px;
817 | margin: 1px;
818 | width: 30%;
819 | padding-left: 35px;
820 | padding-right: 35px;
821 | padding-bottom: 15px;
822 | }
823 |
824 |
825 | /* used in 4 column product Grids */
826 | #productGrid .content-even4 {
827 | border: 1px dotted #D9D9D9;
828 | text-align: center;
829 | vertical-align: top;
830 | padding: 8px;
831 | margin: 1px;
832 | width: 22%;
833 | padding-bottom: 15px;
834 | }
835 |
836 | #productGrid .content-odd4 {
837 | border: 1px dotted #D9D9D9;
838 | text-align: center;
839 | vertical-align: top;
840 | padding: 8px;
841 | margin: 1px;
842 | width: 22%;
843 | padding-bottom: 15px;
844 | }
845 |
846 |
847 | /* used in 5 column product Grids */
848 | #productGrid .content-even5 {
849 | border: 1px dotted #D9D9D9;
850 | text-align: center;
851 | vertical-align: top;
852 | padding: 8px;
853 | margin: 1px;
854 | width: 18%;
855 | padding-bottom: 15px;
856 | }
857 |
858 | #productGrid .content-odd5 {
859 | border: 1px dotted #D9D9D9;
860 | text-align: center;
861 | vertical-align: top;
862 | padding: 8px;
863 | margin: 1px;
864 | width: 18%;
865 | padding-bottom: 15px;
866 | }
867 |
868 | /* used in 6 column product Grids */
869 | #productGrid .content-even6 {
870 | border: 1px dotted #D9D9D9;
871 | text-align: center;
872 | vertical-align: top;
873 | padding: 8px;
874 | margin: 1px;
875 | width: 15%;
876 | padding-bottom: 15px;
877 | }
878 |
879 | #productGrid .content-odd6 {
880 | border: 1px dotted #D9D9D9;
881 | text-align: center;
882 | vertical-align: top;
883 | padding: 8px;
884 | margin: 1px;
885 | width: 15%;
886 | padding-bottom: 15px;
887 | }
888 | #productGrid .title {
889 | margin-top: 8px;
890 | margin-bottom: 8px;
891 | text-align: center;
892 | float: left;
893 | clear: both;
894 | width: 100%;
895 | }
896 |
897 | #productGrid .title a {
898 | color: #C50024;
899 | font-size: 14px;
900 | text-decoration: underline;
901 | font-weight: bold;
902 | line-height: 16px;
903 | }
904 |
905 | #productGrid .title a:hover {
906 | text-decoration: none;
907 | }
908 |
909 | #productGrid .photo {
910 | width: 100%;
911 | height: auto;
912 | float: left;
913 | clear: left;
914 | }
915 |
916 | #productGrid .details {
917 | width: 100%;
918 | height: auto;
919 | font-size: 10px;
920 | font-weight: normal;
921 | float: right;
922 | clear: none;
923 | text-align: left;
924 | color: #464646;
925 | }
926 |
927 | #productGrid .description {
928 | float: left;
929 | clear: left;
930 | width: 100%;
931 | height: auto;
932 | text-align: left;
933 | }
934 |
935 | #productGrid .details .sprice {
936 | float: left;
937 | clear: left;
938 | width: 100%;
939 | font-size: 13px;
940 | font-weight: bold;
941 | text-align: center;
942 | margin-top: 8px;
943 | margin-bottom: 8px;
944 | }
945 |
946 | #productGrid .details .buttons {
947 | width: 100%;
948 | height: auto;
949 | float: left;
950 | clear: left;
951 | text-align: center;
952 | }
953 |
954 | #productGrid .details .buttons .detailBtn {
955 | background:url(../design/images/small_btn.gif) no-repeat center center;
956 | font-weight: bold;
957 | font-size: 10px;
958 | float: left;
959 | padding-top: 6px;
960 | width: 100%;
961 | height: 19px;
962 | text-align: center;
963 | vertical-align: middle;
964 | }
965 |
966 | #productGrid .details .buttons .detailBtnNoImg {
967 | font-weight: bold;
968 | font-size: 10px;
969 | float: left;
970 | padding-top: 6px;
971 | width: 100%;
972 | height: 19px;
973 | text-align: center;
974 | vertical-align: middle;
975 | }
976 |
977 | #productGrid .details .buttons .detailBtn a {
978 | color: #FFFFFF;
979 | text-decoration: none;
980 | }
981 |
982 | #productGrid .details .buttons .detailBtn a:hover {
983 | color: #FFFFFF;
984 | text-decoration: underline;
985 | }
986 |
987 | #productGrid .details .buttons .addToCartBtn {
988 | background:url(../design/images/medium_btn.gif) no-repeat center center;
989 | font-weight: bold;
990 | font-size: 11px;
991 | float: left;
992 | padding-top: 6px;
993 | width: 100%;
994 | height: 19px;
995 | text-align: center;
996 | vertical-align: middle;
997 | }
998 |
999 | #productGrid .details .buttons .addToCartBtnNoImg {
1000 | font-weight: bold;
1001 | font-size: 11px;
1002 | float: left;
1003 | padding-top: 6px;
1004 | width: 100%;
1005 | height: 19px;
1006 | text-align: center;
1007 | vertical-align: middle;
1008 | }
1009 |
1010 | #productGrid .details .buttons .addToCartBtn a {
1011 | color: #FFFFFF;
1012 | text-decoration: none;
1013 | }
1014 |
1015 | #productGrid .details .buttons .addToCartBtn a:hover {
1016 | color: #FFFFFF;
1017 | text-decoration: underline;
1018 | }
1019 |
1020 | #productGrid .details .pricenote {
1021 | margin-top: 10px;
1022 | margin-bottom: 10px;
1023 | color: #C00000;
1024 | font-weight: bold;
1025 | }
1026 |
1027 | #productGrid .options {
1028 | clear: left;
1029 | width: 100%;
1030 | height: auto;
1031 | text-align: center;
1032 | margin-top: 10px;
1033 | }
1034 |
1035 | #productGrid .options .form-label{
1036 | clear: left;
1037 | float: left;
1038 | text-align: center;
1039 | width: 100%;
1040 | margin: 0px;
1041 | padding: 0px;
1042 | }
1043 |
1044 | #productGrid .options .form-field{
1045 | float: left;
1046 | text-align: center;
1047 | width: 100%;
1048 | margin: 0px;
1049 | padding: 0px;
1050 | padding-bottom: 10px;
1051 | }
1052 |
1053 | #productGrid #btmOptions {
1054 | clear: left;
1055 | float: left;
1056 | width: 100%;
1057 | height: 60px;
1058 | }
1059 |
1060 | #productGrid #btmOptions .batchAddToCartButton {
1061 | background:url(../design/images/large_btn.gif) no-repeat;
1062 | font-weight: bold;
1063 | font-size: 10px;
1064 | float: left;
1065 | width: 158px;
1066 | height: 19px;
1067 | text-align: center;
1068 | padding: 3px;
1069 | vertical-align: middle;
1070 | margin-top: 15px;
1071 | }
1072 |
1073 | #productGrid #btmOptions .batchAddToCartButtonImg {
1074 | font-weight: bold;
1075 | font-size: 10px;
1076 | float: left;
1077 | width: 158px;
1078 | height: 19px;
1079 | text-align: center;
1080 | padding: 3px;
1081 | vertical-align: middle;
1082 | margin-top: 15px;
1083 | }
1084 |
1085 | #productGrid #btmOptions .batchAddToCartButton a {
1086 | color: #FFFFFF;
1087 | text-decoration: none;
1088 | }
1089 |
1090 | #productGrid #btmOptions .batchAddToCartButton a:hover {
1091 | color: #FFFFFF;
1092 | text-decoration: underline;
1093 | }
1094 |
1095 | #productGrid #btmOptions .pagination {
1096 | float: right;
1097 | width: auto;
1098 | height: 19px;
1099 | font-size: 12px;
1100 | padding-top: 15px;
1101 | }
1102 |
1103 | #productGrid #btmOptions .pagination a {
1104 | color: #C00000;
1105 | text-decoration: underline;
1106 | }
1107 |
1108 | #productGrid #btmOptions .pagination a:hover {
1109 | color: #000000;
1110 | text-decoration: none;
1111 |
1112 | }
1113 |
1114 | #productGrid #btmCategoryPhoto {
1115 | clear: left;
1116 | float: left;
1117 | }
1118 |
1119 | #productGrid #btmCategoryPhotoImage {
1120 | clear: left;
1121 | float: left;
1122 | }
1123 |
1124 | #productGrid #btmCategoryPhotoCaption {
1125 | clear: left;
1126 | float: left;
1127 | }
1128 |
1129 | /* end productGrid */
1130 |
1131 |
1132 |
1133 |
1134 |
1135 |
1136 |
1137 |
1138 |
1139 | /* begin productList */
1140 | /* used in templates/product.grid.tem.php */
1141 | /* only used when a product is displaying a "list" of products */
1142 |
1143 | #productList {
1144 | text-align: left;
1145 | margin: 5px;
1146 | width: 500px;
1147 | }
1148 |
1149 | #productList h2 { }
1150 |
1151 | #productList #categoryDescription {
1152 | float: left;
1153 | clear: left;
1154 | margin-bottom: 10px;
1155 | border: 1px solid #FFFFFF;
1156 | width: auto;
1157 | height: auto;
1158 | }
1159 |
1160 | #productList table{
1161 | float: left;
1162 | clear: left;
1163 | }
1164 |
1165 | #productList #topOptions {
1166 | width: auto;
1167 | height: 40px;
1168 | float: left;
1169 | clear: left;
1170 | }
1171 |
1172 | #productList #topOptions .search {
1173 | float: left;
1174 | clear: left;
1175 | height: 18px;
1176 | }
1177 |
1178 | #productList #topOptions .display {
1179 | float: left;
1180 | clear: left;
1181 | height: 18px;
1182 | }
1183 |
1184 | #productList #topOptions .sort {
1185 | width: 230px;
1186 | height: 20px;
1187 | float: right;
1188 | }
1189 |
1190 | #productList #topOptions .sort .label {
1191 | float: left;
1192 | height: 18px;
1193 | padding: 2px;
1194 | padding-top: 5px;
1195 | }
1196 |
1197 | #productList #topOptions .sort .option {
1198 | float: left;
1199 | height: 18px;
1200 | padding: 2px;
1201 | }
1202 |
1203 | #productList #topOptions .sort .option select {
1204 | height: 18px;
1205 | }
1206 |
1207 | #productList .content-even1 {
1208 | border-bottom: 1px dotted #D9D9D9;
1209 | text-align: left;
1210 | vertical-align: top;
1211 | padding: 8px;
1212 | margin: 1px;
1213 | width: 470px;
1214 | }
1215 |
1216 | #productList .content-odd1 {
1217 | border-bottom: 1px dotted #D9D9D9;
1218 | text-align: left;
1219 | vertical-align: top;
1220 | padding: 8px;
1221 | margin: 1px;
1222 | width: 470px;
1223 | }
1224 |
1225 | #productList .title {
1226 | margin-top: 8px;
1227 | margin-bottom: 8px;
1228 | text-align: left;
1229 | float: left;
1230 | clear: both;
1231 | width: 100%;
1232 | }
1233 |
1234 | #productList .title a {
1235 | color: #C50024;
1236 | font-size: 14px;
1237 | text-decoration: underline;
1238 | font-weight: bold;
1239 | line-height: 16px;
1240 | }
1241 |
1242 | #productList .title a:hover {
1243 | text-decoration: none;
1244 | }
1245 |
1246 | #productList .photo {
1247 | width: 150px;
1248 | height: auto;
1249 | float: left;
1250 | clear: left;
1251 | }
1252 |
1253 | #productList .description {
1254 | width: 60%;
1255 | height: auto;
1256 | float: left;
1257 | padding: 5px;
1258 | text-align: left;
1259 | }
1260 |
1261 | #productList .details {
1262 | width: 60%;
1263 | height: auto;
1264 | font-size: 11px;
1265 | font-weight: normal;
1266 | float: left;
1267 | text-align: left;
1268 | color: #464646;
1269 | }
1270 |
1271 | #productList .details .sprice {
1272 | width: 40%;
1273 | float: right;
1274 | font-size: 13px;
1275 | font-weight: bold;
1276 | text-align: left;
1277 | padding: 8px;
1278 | }
1279 |
1280 | #productList .details .buttons {
1281 | float: left;
1282 | clear: left;
1283 | text-align: left;
1284 | width: 40%;
1285 | }
1286 |
1287 | #productList .details .buttons .detailBtn {
1288 | background:url(../design/images/small_btn.gif) no-repeat center center;
1289 | font-weight: bold;
1290 | font-size: 10px;
1291 | float: left;
1292 | padding-top: 6px;
1293 | width: 100%;
1294 | height: 19px;
1295 | text-align: center;
1296 | vertical-align: middle;
1297 | }
1298 |
1299 | #productList .details .buttons .detailBtnNoImg {
1300 | font-weight: bold;
1301 | font-size: 10px;
1302 | float: left;
1303 | padding-top: 6px;
1304 | width: 100%;
1305 | height: 19px;
1306 | text-align: center;
1307 | vertical-align: middle;
1308 | }
1309 |
1310 | #productList .details .buttons .detailBtn a {
1311 | color: #FFFFFF;
1312 | text-decoration: none;
1313 | }
1314 |
1315 | #productList .details .buttons .detailBtn a:hover {
1316 | color: #FFFFFF;
1317 | text-decoration: underline;
1318 | }
1319 |
1320 | #productList .details .buttons .addToCartBtn {
1321 | background:url(../design/images/medium_btn.gif) no-repeat center center;
1322 | font-weight: bold;
1323 | font-size: 11px;
1324 | float: left;
1325 | padding-top: 6px;
1326 | width: 100%;
1327 | height: 19px;
1328 | text-align: center;
1329 | vertical-align: middle;
1330 | }
1331 |
1332 | #productList .details .buttons .addToCartBtnNoImg {
1333 | font-weight: bold;
1334 | font-size: 11px;
1335 | float: left;
1336 | padding-top: 6px;
1337 | width: 100%;
1338 | height: 19px;
1339 | text-align: center;
1340 | vertical-align: middle;
1341 | }
1342 |
1343 | #productList .details .buttons .addToCartBtn a {
1344 | color: #FFFFFF;
1345 | text-decoration: none;
1346 | }
1347 |
1348 | #productList .details .buttons .addToCartBtn a:hover {
1349 | color: #FFFFFF;
1350 | text-decoration: underline;
1351 | }
1352 |
1353 | #productList .details .pricenote {
1354 | margin-top: 10px;
1355 | margin-bottom: 10px;
1356 | color: #C00000;
1357 | font-weight: bold;
1358 | }
1359 |
1360 | #productList .options {
1361 | float: left;
1362 | clear: left;
1363 | margin-top: 5px;
1364 | color: #464646;
1365 | text-align: left;
1366 | margin-top: 10px;
1367 | }
1368 |
1369 | #productList .options .qty {
1370 | margin-top: 4px;
1371 | }
1372 |
1373 | #productList .options .qty input {
1374 | color: #464646;
1375 | }
1376 |
1377 | #productList .options .form-label {
1378 | width: 25%;
1379 | text-align: left;
1380 | padding: 3px;
1381 | }
1382 |
1383 | #productList .options .form-field {
1384 | text-align: left;
1385 | width: auto;
1386 | padding: 0px;
1387 | }
1388 |
1389 | #productList #btmOptions {
1390 | clear: left;
1391 | float: left;
1392 | width: 500px;
1393 | height: 60px;
1394 | }
1395 |
1396 | #productList #btmOptions .batchAddToCartButton {
1397 | background:url(../design/images/large_btn.gif) no-repeat;
1398 | font-weight: bold;
1399 | font-size: 10px;
1400 | float: left;
1401 | width: 158px;
1402 | height: 19px;
1403 | text-align: center;
1404 | padding: 3px;
1405 | vertical-align: middle;
1406 | margin-top: 15px;
1407 | }
1408 |
1409 | #productList #btmOptions .batchAddToCartButton a {
1410 | color: #FFFFFF;
1411 | text-decoration: none;
1412 | }
1413 |
1414 | #productList #btmOptions .batchAddToCartButton a:hover {
1415 | color: #FFFFFF;
1416 | text-decoration: underline;
1417 | }
1418 |
1419 | #productList #btmOptions .pagination {
1420 | float: right;
1421 | width: auto;
1422 | height: 19px;
1423 | font-size: 12px;
1424 | padding-top: 15px;
1425 | }
1426 |
1427 | #productList #btmOptions .pagination a {
1428 | color: #C00000;
1429 | text-decoration: underline;
1430 | }
1431 |
1432 | #productList #btmOptions .pagination a:hover {
1433 | color: #000000;
1434 | text-decoration: none;
1435 |
1436 | }
1437 |
1438 | #productList #btmCategoryPhoto {
1439 | clear: left;
1440 | float: left;
1441 | }
1442 |
1443 | #productList #btmCategoryPhotoImage {
1444 | clear: left;
1445 | float: left;
1446 | }
1447 |
1448 | #productList #btmCategoryPhotoCaption {
1449 | clear: left;
1450 | float: left;
1451 | }
1452 |
1453 | /* end productList */
1454 |
1455 |
1456 |
1457 |
1458 |
1459 |
1460 |
1461 |
1462 |
1463 |
1464 |
1465 | /* begin productDetail */
1466 | /* used in templates/product.detail.tem.php */
1467 |
1468 | #productDetail{
1469 | text-align: left;
1470 | margin: 5px;
1471 | width: 525px;
1472 | }
1473 |
1474 | #productDetail h2 { }
1475 |
1476 | #productDetail #productPhotos {
1477 | float: left;
1478 | clear: left;
1479 | width: 250px;
1480 | padding-top: 10px;
1481 | vertical-align: middle;
1482 | text-align: center;
1483 | }
1484 |
1485 | #productDetail #prodThumbnails {
1486 | clear: left;
1487 | }
1488 |
1489 | #productDetail #extraDetails {
1490 | float: left;
1491 | clear: none;
1492 | height: auto;
1493 | width: 260px;
1494 | border-collapse: collapse;
1495 | margin: 0px;
1496 | padding: 0px 5px 5px 5px;
1497 | color: #878787;
1498 | }
1499 |
1500 | #productDetail .submitBtn {
1501 | font-size: 130%;
1502 | font-weight: bold;
1503 | }
1504 |
1505 | #productDetail #qtyPricing {
1506 | float: left;
1507 | border-collapse: collapse;
1508 | margin-bottom: 15px;
1509 | }
1510 |
1511 | #productDetail #qtyPricing .hdr-title-left {
1512 | float: left;
1513 | color: #FFFFFF;
1514 | background-color: #878787;
1515 | text-align: left;
1516 | font-weight: bold;
1517 | padding: 3px;
1518 | width: 60px;
1519 | }
1520 |
1521 | #productDetail #qtyPricing .hdr-title-right {
1522 | float: left;
1523 | color: #FFFFFF;
1524 | background-color: #878787;
1525 | text-align: left;
1526 | font-weight: bold;
1527 | padding: 3px;
1528 | width: 150px;
1529 | }
1530 |
1531 | #productDetail #qtyPricing .list-left {
1532 | clear: left;
1533 | float: left;
1534 | border-bottom: 1px solid #D8DDE3;
1535 | padding: 3px;
1536 | width: 60px;
1537 | }
1538 |
1539 | #productDetail #qtyPricing .list-right {
1540 | float: left;
1541 | border-bottom: 1px solid #D8DDE3;
1542 | padding: 3px;
1543 | width: 150px;
1544 | }
1545 |
1546 | #productDetail #price {
1547 | font-size: 110%;
1548 | font-weight: bold;
1549 | }
1550 |
1551 | #productDetail .form-label {
1552 | font-weight: bold;
1553 | width: 110px;
1554 | }
1555 |
1556 | #productDetail .form-field { }
1557 |
1558 | #productDetail #customerUpload {
1559 | margin-top: 15px;
1560 | clear: left;
1561 | float: left;
1562 | }
1563 |
1564 | #productDetail #detailGroup {
1565 | float: left;
1566 | clear: left;
1567 | }
1568 |
1569 | #productDetail #detailTabs {
1570 | clear: left;
1571 | float: left;
1572 | width: 98%;
1573 | }
1574 |
1575 | #productDetail #detailTabs ul {
1576 | margin: 0;
1577 | padding: 10px 10px 0 5px;
1578 | list-style: none;
1579 | }
1580 |
1581 | #productDetail #detailTabs li {
1582 | display: inline;
1583 | margin: 0;
1584 | padding: 0;
1585 | font-weight: bold;
1586 | }
1587 |
1588 | #productDetail #detailTabs a .current {
1589 | color: #FFFFFF;
1590 | font-size: 150%;
1591 | }
1592 |
1593 | #productDetail #detailTabs a {
1594 | float: left;
1595 | background: url(../design/images/tab-left.gif) no-repeat left top;
1596 | margin: 0;
1597 | padding: 0 0 0 5px;
1598 | text-decoration: none;
1599 | }
1600 |
1601 | #productDetail #detailTabs a span {
1602 | float: left;
1603 | display: block;
1604 | background: url(../design/images/tab-right.gif) no-repeat right top;
1605 | padding: 5px 10px 5px 3px;
1606 | color: #404040;
1607 | }
1608 |
1609 | /* Commented Backslash Hack hides rule from IE5-Mac \*/
1610 |
1611 | #productDetail #detailTabs a span {
1612 | float: none;
1613 | }
1614 |
1615 | /* End IE5-Mac hack */
1616 | #productDetail #detailTabs a:hover span {
1617 | color: #FFFFFF;
1618 | }
1619 |
1620 | #productDetail #detailTabs a:hover {
1621 | color: #FFFFFF;
1622 | }
1623 |
1624 | #productDetail #detailTabs a:hover span {
1625 | color: #FFFFFF;
1626 | }
1627 |
1628 | #productDetail .hdr-title {
1629 | float: left;
1630 | color: #FFFFFF;
1631 | background-color: #878787;
1632 | text-align: left;
1633 | font-weight: bold;
1634 | padding: 5px;
1635 | width: 98%;
1636 | }
1637 |
1638 | #productDetail .container {
1639 | clear: both;
1640 | float: left;
1641 | }
1642 |
1643 | #productDetail .body {
1644 | clear: left;
1645 | padding: 5px;
1646 | }
1647 |
1648 | #productDetail #productDescription {
1649 | margin-top: 15px;
1650 | float: left;
1651 | clear: left;
1652 | width: 485px;
1653 | height: auto;
1654 | text-align: left;
1655 | }
1656 |
1657 | #productDetail #productDescription p {
1658 | margin: 0px;
1659 | padding: 0px;
1660 | text-align: left;
1661 | }
1662 |
1663 | #productDetail #productReviews {
1664 | border: 1px solid #404040;
1665 | width: 485px;
1666 | float: left;
1667 | clear: left;
1668 | height: auto;
1669 | margin-top: 15px;
1670 | text-align: left;
1671 | }
1672 |
1673 | #productReviews .body {
1674 | width: 470px;
1675 | }
1676 |
1677 | #productReviews .form-field {
1678 | width: 320px;
1679 | }
1680 |
1681 | #productDetail #productReviews #productReviewsAddNote {
1682 | display: block;
1683 | }
1684 |
1685 | #productDetail #productReviews #productReviewsAdd {
1686 | display: none;
1687 | }
1688 |
1689 | /* end productDetail */
1690 |
1691 |
1692 |
1693 |
1694 |
1695 |
1696 |
1697 |
1698 | /* begin search form */
1699 | /* used in templates/search.form.tem.php */
1700 |
1701 | #searchForm {
1702 | text-align: left;
1703 | width: 500px;
1704 | margin: 5px;
1705 | }
1706 |
1707 | #searchForm h2 { }
1708 |
1709 | #searchForm #searchFormCategory {
1710 | float: left;
1711 | }
1712 |
1713 | #searchForm #searchFormCategory .label {
1714 | float: left;
1715 | height: 16px;
1716 | }
1717 |
1718 | #searchForm #searchFormCategory .field {
1719 | float: left;
1720 | clear: left;
1721 | }
1722 |
1723 | #searchForm #searchFormCategory select {
1724 | color: #000000;
1725 | }
1726 |
1727 | #searchForm #searchFormVendor, #searchFormShopByPrice {
1728 | float: left;
1729 | clear: left;
1730 | margin-top: 15px;
1731 | }
1732 |
1733 | #searchForm #searchFormVendor .label, #searchFormShopByPrice .label {
1734 | float: left;
1735 | height: 16px;
1736 | }
1737 |
1738 | #searchForm #searchFormVendor .field, #searchFormShopByPrice select {
1739 | float: left;
1740 | clear: left;
1741 | }
1742 |
1743 | #searchForm #searchFormVendor select, #searchFormShopByPrice select {
1744 | color: #000000;
1745 | }
1746 |
1747 | #searchForm #searchFormKeywords {
1748 | float: left;
1749 | margin-top: 15px;
1750 | }
1751 |
1752 | #searchForm #searchFormKeywords .label {
1753 | float: left;
1754 | height: 16px;
1755 | }
1756 |
1757 | #searchForm #searchFormKeywords .field {
1758 | float: left;
1759 | clear: left;
1760 | }
1761 |
1762 | #searchForm #searchFormKeywords input {
1763 | width: 200px;
1764 | color: #000000;
1765 | }
1766 |
1767 | #searchForm #searchFormSubmit {
1768 | float: left;
1769 | clear: left;
1770 | padding-top: 15px;
1771 | }
1772 |
1773 | #searchForm #searchFormSubmit .button {
1774 | float: left;
1775 | font-family: Tahoma;
1776 | font-size: 11px;
1777 | line-height: 13px;
1778 | padding: 1px;
1779 | margin-bottom: 15px;
1780 | }
1781 |
1782 | /* end search form */
1783 |
1784 |
1785 |
1786 |
1787 |
1788 |
1789 |
1790 |
1791 |
1792 | /* begin registry search form */
1793 | /* used in templates/registry.search.form.tem.php */
1794 |
1795 | #registrySearchForm {
1796 | text-align: left;
1797 | width: 500px;
1798 | margin: 5px;
1799 | }
1800 |
1801 | #registrySearchForm h2 { }
1802 |
1803 |
1804 | #registrySearchForm #searchFormKeywords {
1805 | float: left;
1806 | }
1807 |
1808 | #registrySearchForm #searchFormKeywords .label {
1809 | float: left;
1810 | height: 16px;
1811 | color: #878787;
1812 | }
1813 |
1814 | #registrySearchForm #searchFormKeywords .field {
1815 | float: left;
1816 | clear: left;
1817 | }
1818 |
1819 | #registrySearchForm #searchFormKeywords input {
1820 | width: 200px;
1821 | color: #000000;
1822 | }
1823 |
1824 | #registrySearchForm #searchFormSubmit {
1825 | float: left;
1826 | padding-top: 15px;
1827 | }
1828 |
1829 | #registrySearchForm #searchFormSubmit .button {
1830 | float: left;
1831 | font-family: Tahoma;
1832 | font-size: 11px;
1833 | line-height: 13px;
1834 | color: #5B5B5B;
1835 | padding: 1px;
1836 | }
1837 |
1838 | /* end registrysearch form */
1839 |
1840 |
1841 |
1842 |
1843 |
1844 |
1845 |
1846 |
1847 |
1848 | /* begin view cart */
1849 | /* used in templates/view.cart.tem.php */
1850 |
1851 | #viewCart {
1852 | text-align: left;
1853 | margin: 5px;
1854 | width: 500px;
1855 | }
1856 |
1857 | #viewCart h2 { }
1858 |
1859 | #viewCart p {
1860 | height: auto;
1861 | text-align: left;
1862 | }
1863 |
1864 | #viewCart #pageNote {
1865 | height: auto;
1866 | text-align: left;
1867 | }
1868 |
1869 | #viewCart #pageError {
1870 | border: 1px solid #C00000;
1871 | padding: 5px;
1872 | line-height: 20px;
1873 | font-weight: bold;
1874 | }
1875 |
1876 | #viewCart #cartItems {
1877 | height: auto;
1878 | width: 96%;
1879 | border-collapse: collapse;
1880 | float: left;
1881 | clear: left;
1882 | }
1883 |
1884 | #viewCart #cartItems thead tr th {
1885 | color: #FFFFFF;
1886 | background-color: #878787;
1887 | text-align: left;
1888 | font-weight: bold;
1889 | height: 22px;
1890 | font-size: 12px;
1891 | }
1892 |
1893 | #viewCart #cartItems tbody tr td {
1894 | border-bottom: 1px solid #D8DDE3;
1895 | text-align: left;
1896 | font-weight: normal;
1897 | height: auto;
1898 | padding-top: 5px;
1899 | padding-bottom: 5px;
1900 | }
1901 |
1902 | #viewCart #cartItems .cartError {
1903 | background-color: #FF4040;
1904 | }
1905 |
1906 | #viewCart #cartItems .normal {
1907 | background-color: yellow;
1908 | }
1909 |
1910 | #viewCart #cartItems .cartWarning {
1911 | background-color: #FFFF80;
1912 | }
1913 |
1914 |
1915 | #viewCart #cartInfo {
1916 | height: auto;
1917 | width: 96%;
1918 | border-collapse: collapse;
1919 | float: left;
1920 | clear: left;
1921 | }
1922 |
1923 | #viewCart #cartNumItems {
1924 | width: 150px;
1925 | padding-top: 8px;
1926 | height: 35px;
1927 | float:left;
1928 | clear:left;
1929 | text-align: left;
1930 | }
1931 |
1932 | #viewCart #cartCoupon {
1933 | height: 35px;
1934 | width: auto;
1935 | text-align: left;
1936 | float:left;
1937 | clear: left;
1938 | }
1939 |
1940 | #viewCart #cartAmounts {
1941 | padding-top: 8px;
1942 | margin-bottom: 8px;
1943 | float: right;
1944 | text-align: right;
1945 | }
1946 |
1947 | #viewCart #cartAmounts .field-link {
1948 | width: 130px;
1949 | padding-top: 8px;
1950 | padding-bottom: 8px;
1951 | text-align: right;
1952 | vertical-align: bottom;
1953 | }
1954 |
1955 | #viewCart #cartAmounts .field-price {
1956 | text-align: right;
1957 | font-weight: bold;
1958 | height: 18px;
1959 | padding: 2px;
1960 | }
1961 |
1962 | #viewCart #cartAmounts .field-label {
1963 | text-align: left;
1964 | height: 18px;
1965 | clear: left;
1966 | float: left;
1967 | padding: 2px;
1968 | }
1969 |
1970 | #viewCart #cartButtons {
1971 | clear: both;
1972 | float: left;
1973 | margin-top: 25px;
1974 | width: 96%;
1975 | text-align: left;
1976 | }
1977 |
1978 | #viewCart #gatewayButtonsContainer {
1979 | width: 500px;
1980 | height: 50px;
1981 | }
1982 |
1983 | #viewCart #gatewayButtonsContainer .gatewayButtons {
1984 | float: right;
1985 | height: 50px;
1986 | }
1987 |
1988 | #viewCart #crossSell {
1989 | border-top: 1px dotted #D9D9D9;
1990 | height: auto;
1991 | width: 96%;
1992 | border-collapse: collapse;
1993 | float: left;
1994 | clear: left;
1995 | padding-top: 5px;
1996 | margin-top: 15px;
1997 | }
1998 |
1999 | #viewCart #crossSell .content-even {
2000 | text-align: center;
2001 | width: 165px;
2002 | height: auto;
2003 | padding-top: 15px;
2004 | }
2005 |
2006 | #viewCart #crossSell .content-odd {
2007 | text-align: center;
2008 | width: 165px;
2009 | height: auto;
2010 | padding-top: 15px;
2011 | }
2012 |
2013 | #viewCart #crossSell .title {
2014 | width: 100%;
2015 | margin-top: 8px;
2016 | margin-bottom: 8px;
2017 | text-align: center;
2018 | }
2019 |
2020 | #viewCart #crossSell .title a {
2021 | color: #C50024;
2022 | font-size: 12px;
2023 | text-decoration: underline;
2024 | font-weight: bold;
2025 | line-height: 16px;
2026 | }
2027 |
2028 | #viewCart #crossSell .title a:hover {
2029 | text-decoration: none;
2030 | }
2031 |
2032 | #viewCart #crossSell .photo{
2033 | text-align: center;
2034 | }
2035 |
2036 | #viewCart #crossSell .details {
2037 | width: 100%;
2038 | text-align: center;
2039 | padding-bottom: 8px;
2040 | }
2041 |
2042 | #viewCart #crossSell .details .detailsBtn {
2043 | background:url(../design/images/small_btn.gif) no-repeat center center;
2044 | font-weight: bold;
2045 | font-size: 11px;
2046 | height: 22px;
2047 | margin: 5px;
2048 | padding-top: 8px;
2049 | text-align: center;
2050 | }
2051 |
2052 | #viewCart #crossSell .details .detailsBtn a {
2053 | color: #FFFFFF;
2054 | text-decoration: none;
2055 | }
2056 |
2057 | #viewCart #crossSell .details .detailsBtn a:hover {
2058 | color: #FFFFFF;
2059 | text-decoration: underline;
2060 | }
2061 |
2062 | /* end view cart */
2063 |
2064 |
2065 |
2066 |
2067 |
2068 |
2069 |
2070 |
2071 | /* begin popupShipping */
2072 | /* used in templates/view.shipping.form.tem.php */
2073 | /* used in templates/view.shipping.results.tem.php */
2074 |
2075 | #popupShipping {
2076 | text-align: left;
2077 | margin: 10px;
2078 | }
2079 |
2080 | #popupShipping h2 {
2081 | width: 300px;
2082 | }
2083 |
2084 | #popupShipping #pageNote{
2085 | float: left;
2086 | width: 100%;
2087 | }
2088 |
2089 | #popupShipping #serviceLogo {
2090 | width: 150px;
2091 | float: right;
2092 | padding-left: 15px;
2093 | }
2094 |
2095 |
2096 | /* end popupShipping */
2097 |
2098 |
2099 |
2100 |
2101 |
2102 |
2103 | /* begin checkoutOnePage */
2104 | /* used in templates/checkout.onepage.tem.php */
2105 |
2106 | #checkoutOnePage {
2107 | }
2108 |
2109 | #checkoutOnePage h2 { }
2110 |
2111 | #checkoutOnePage .form-label {
2112 | font-weight: normal;
2113 | text-align: left;
2114 | padding: 5px;
2115 | width: 20%;
2116 | }
2117 |
2118 | #checkoutOnePage .form-label-required {
2119 | font-weight: bold;
2120 | text-align: left;
2121 | padding: 5px;
2122 | width: 20%;
2123 | }
2124 |
2125 | #checkoutOnePage .form-label-long {
2126 | font-weight: normal;
2127 | text-align: left;
2128 | padding: 5px;
2129 | width: 75%;
2130 | }
2131 |
2132 | #checkoutOnePage .form-label-required-long {
2133 | font-weight: bold;
2134 | text-align: left;
2135 | padding: 5px;
2136 | width: 75%;
2137 | }
2138 |
2139 | #checkoutOnePage #cartItems {
2140 | height: auto;
2141 | width: 96%;
2142 | border-collapse: collapse;
2143 | float: left;
2144 | clear: left;
2145 | }
2146 |
2147 | #checkoutOnePage #cartItems thead tr th {
2148 | color: #FFFFFF;
2149 | background-color: #878787;
2150 | text-align: left;
2151 | font-weight: bold;
2152 | height: 22px;
2153 | font-size: 12px;
2154 | }
2155 |
2156 | #checkoutOnePage #cartItems tbody tr td {
2157 | border-bottom: 1px solid #D8DDE3;
2158 | text-align: left;
2159 | font-weight: normal;
2160 | height: auto;
2161 | padding-top: 5px;
2162 | padding-bottom: 5px;
2163 | }
2164 |
2165 | #checkoutOnePage #cartItems .cartError {
2166 | background-color: #FF4040;
2167 | }
2168 |
2169 | #checkoutOnePage #cartItems .normal {
2170 | background-color: yellow;
2171 | }
2172 |
2173 | #checkoutOnePage #cartItems .cartWarning {
2174 | background-color: #FFFF80;
2175 | }
2176 |
2177 | #checkoutOnePage #cartInfo {
2178 | height: auto;
2179 | width: 96%;
2180 | float: left;
2181 | clear: left;
2182 | }
2183 |
2184 | #checkoutOnePage #cartAmounts {
2185 | padding-top: 8px;
2186 | width: 145px;
2187 | float: right;
2188 | }
2189 |
2190 | #checkoutOnePage #cartAmounts .field-link {
2191 | width: 130px;
2192 | padding-top: 8px;
2193 | padding-bottom: 8px;
2194 | text-align: right;
2195 | vertical-align: bottom;
2196 | }
2197 |
2198 | #checkoutOnePage #cartAmounts .field-price {
2199 | text-align: right;
2200 | font-weight: bold;
2201 | height: 18px;
2202 | padding: 2px;
2203 | }
2204 |
2205 | #checkoutOnePage #cartAmounts .field-label {
2206 | text-align: left;
2207 | height: 18px;
2208 | clear: left;
2209 | float: left;
2210 | padding: 2px;
2211 | }
2212 |
2213 | #checkoutOnePage #checkoutWelcome {
2214 | }
2215 |
2216 | #checkoutOnePage #existingCustomer {
2217 | }
2218 |
2219 | #checkoutOnePage #existingCustomer .hdr-title{
2220 | }
2221 |
2222 | #checkoutOnePage #existingCustomer .body {
2223 | }
2224 |
2225 | #checkoutOnePage #newCustomer {
2226 | }
2227 |
2228 | #checkoutOnePage #newCustomer .hdr-title{
2229 | }
2230 |
2231 | #checkoutOnePage #newCustomer .body {
2232 | }
2233 |
2234 | #checkoutOnePage #billAddress {
2235 | clear: left;
2236 | float: left;
2237 | margin-top: 15px;
2238 | border-top: 1px solid #D8DDE3;
2239 | padding: 4px;
2240 | width: 96%;
2241 | }
2242 |
2243 | #checkoutOnePage #billAddress table {
2244 | text-align: left;
2245 | padding: 4px;
2246 | width: 100%;
2247 | }
2248 |
2249 | #checkoutOnePage #shipAddress {
2250 | clear: left;
2251 | float: left;
2252 | margin-top: 15px;
2253 | border-top: 1px solid #D8DDE3;
2254 | padding: 4px;
2255 | width: 96%;;
2256 | }
2257 |
2258 | #checkoutOnePage #shipAddress table {
2259 | text-align: left;
2260 | padding: 4px;
2261 | width: 100%;
2262 | }
2263 |
2264 | #checkoutOnePage #shipMethod {
2265 | clear: left;
2266 | float: left;
2267 | margin-top: 15px;
2268 | border-top: 1px solid #D8DDE3;
2269 | padding: 4px;
2270 | width: 96%;
2271 | }
2272 |
2273 | #checkoutOnePage #shipMethod table {
2274 | text-align: left;
2275 | padding: 4px;
2276 | width: 100%;
2277 | }
2278 |
2279 | #checkoutOnePage #shipMethod table .multiShipOptions {
2280 | width: 180px;
2281 | }
2282 |
2283 | #checkoutOnePage #paymentInfo {
2284 | clear: left;
2285 | float: left;
2286 | margin-top: 15px;
2287 | border-top: 1px solid #D8DDE3;
2288 | padding: 4px;
2289 | width: 96%;
2290 | }
2291 |
2292 | #checkoutOnePage #paymentInfo table {
2293 | text-align: left;
2294 | padding: 4px;
2295 | width: 100%;
2296 | }
2297 |
2298 | #checkoutOnePage #totalsInfo {
2299 | clear: left;
2300 | float: left;
2301 | margin-top: 15px;
2302 | border-top: 1px solid #D8DDE3;
2303 | }
2304 |
2305 | #checkoutOnePage #totalsInfo {
2306 | text-align: left;
2307 | padding: 4px;
2308 | width: 96%;
2309 | }
2310 |
2311 | #checkoutOnePage #totalsInfo .totalLabel {
2312 | text-align: right;
2313 | font-weight: bold;
2314 | font-size: 125%;
2315 | width: 125px;
2316 | padding: 4px;
2317 | }
2318 |
2319 | #checkoutOnePage #totalsInfo .totalField {
2320 | text-align: left;
2321 | font-size: 125%;
2322 | width: auto;
2323 | padding: 4px;
2324 | }
2325 |
2326 | #checkoutOnePage #totalsInfo #grand_total_div {
2327 | font-size: 125%;
2328 | font-weight: bold;
2329 | height: 28px;
2330 | color: #878787;
2331 | width: auto;
2332 | }
2333 |
2334 | #checkoutOnePage #checkoutSubscription {
2335 | clear: left;
2336 | float: left;
2337 | margin-top: 15px;
2338 | border-top: 1px solid #D8DDE3;
2339 | padding: 4px;
2340 | width: 96%;
2341 | }
2342 |
2343 | #checkoutOnePage #checkoutSubscription table {
2344 | text-align: left;
2345 | padding: 4px;
2346 | width: 100%;
2347 | }
2348 |
2349 | /* end checkoutOnePage */
2350 |
2351 |
2352 |
2353 |
2354 |
2355 |
2356 |
2357 |
2358 | /* begin checkoutBilling */
2359 | /* used in templates/checkout.billing.form.tem.php */
2360 |
2361 | #checkoutBilling {
2362 | text-align: left;
2363 | width: 500px;
2364 | margin: 5px;
2365 | }
2366 |
2367 | #checkoutBilling .form-label { }
2368 |
2369 | #checkoutBilling .form-label-required { }
2370 |
2371 | #checkoutBilling .form-field { }
2372 |
2373 | /* end checkoutBilling */
2374 |
2375 |
2376 |
2377 |
2378 |
2379 |
2380 |
2381 |
2382 |
2383 | /* begin checkoutShipping */
2384 | /* used in templates/checkout.shipping.form.tem.php */
2385 |
2386 | #checkoutShipping {
2387 | text-align: left;
2388 | width: 500px;
2389 | margin: 5px;
2390 | }
2391 |
2392 | #checkoutShipping .form-label { }
2393 |
2394 | #checkoutShipping .form-label-required { }
2395 |
2396 | #checkoutShipping .form-field { }
2397 |
2398 | /* end checkoutShipping */
2399 |
2400 |
2401 |
2402 |
2403 |
2404 |
2405 |
2406 |
2407 |
2408 | /* begin checkoutPayment */
2409 | /* used in templates/checkout.payment.form.tem.php */
2410 |
2411 | #checkoutPayment {
2412 | text-align: left;
2413 | width: 500px;
2414 | margin: 5px;
2415 | }
2416 |
2417 | #checkoutPayment .form-label { }
2418 |
2419 | #checkoutPayment .form-field { }
2420 |
2421 | #checkoutPayment #paymentOpts { }
2422 |
2423 | #checkoutPayment #paymentOpts .form-label {
2424 | height: auto;
2425 | }
2426 |
2427 | #checkoutPayment #paymentOpts .form-field {
2428 | padding: 4px;
2429 | height: auto;
2430 | float: left;
2431 | }
2432 |
2433 | #checkoutPayment #spacer {
2434 | clear: left;
2435 | float: left;
2436 | }
2437 |
2438 | #checkoutPayment .pageNote {
2439 | clear:left;
2440 | float: left;
2441 | margin: 5px;
2442 | }
2443 |
2444 | /* end checkoutPayment */
2445 |
2446 |
2447 |
2448 |
2449 |
2450 |
2451 |
2452 |
2453 |
2454 | /* begin checkoutSubscription */
2455 | /* used in templates/checkout.subscription.form.tem.php */
2456 |
2457 | #checkoutSubscription {
2458 | text-align: left;
2459 | width: 500px;
2460 | margin: 5px;
2461 | }
2462 |
2463 | #checkoutSubscription .form-label {
2464 | clear: left;
2465 | float: left;
2466 | text-align: left;
2467 | padding: 4px;
2468 | width: 100%;
2469 | }
2470 |
2471 | #checkoutSubscription .form-field {
2472 | clear: left;
2473 | padding: 4px;
2474 | height: auto;
2475 | float: left;
2476 | width: 100%;
2477 | }
2478 |
2479 | #checkoutSubscription #spacer {
2480 | clear: left;
2481 | float: left;
2482 | }
2483 |
2484 | /* end checkoutSubscription */
2485 |
2486 |
2487 |
2488 |
2489 |
2490 |
2491 |
2492 |
2493 | /* begin checkoutConfirm */
2494 | /* used in templates/checkout.confirm.tem.php */
2495 |
2496 | #checkoutConfirm {
2497 | text-align: left;
2498 | width: 500px;
2499 | margin: 5px;
2500 | }
2501 |
2502 | #checkoutConfirm h2 { }
2503 |
2504 | #checkoutConfirm #billInfo {
2505 | margin: 5px;
2506 | border: 1px solid #D8DDE3;
2507 | float: left;
2508 | clear: left;
2509 | text-align: left;
2510 | }
2511 |
2512 | #checkoutConfirm #shipInfo {
2513 | margin: 5px;
2514 | border: 1px solid #D8DDE3;
2515 | float: left;
2516 | text-align: left;
2517 | }
2518 |
2519 | #checkoutConfirm #paymentInfo {
2520 | margin: 5px;
2521 | border: 1px solid #D8DDE3;
2522 | height: auto;
2523 | clear: both;
2524 | float: left;
2525 | text-align: left;
2526 | }
2527 |
2528 | #checkoutConfirm #orderDetails {
2529 | margin: 5px;
2530 | float: left;
2531 | clear: left;
2532 | border: 1px solid #D8DDE3;
2533 | width: 470px;
2534 | border-collapse: collapse;
2535 | text-align: left;
2536 | }
2537 |
2538 | #checkoutConfirm #orderDetails .list {
2539 | border: 1px solid #D8DDE3;
2540 | height: 22px;
2541 | }
2542 |
2543 | #checkoutConfirm .hdr-title {
2544 | color: #FFFFFF;
2545 | background-color: #878787;
2546 | text-align: left;
2547 | padding: 5px;
2548 | font-weight: bold;
2549 | }
2550 |
2551 | #checkoutConfirm .body {
2552 | padding: 5px;
2553 | }
2554 |
2555 | .submitBtn {
2556 | font-size: 130%;
2557 | font-weight: bold;
2558 | }
2559 |
2560 | .submitOrder {
2561 | width: 470px;
2562 | margin-top: 10px;
2563 | margin-bottom: 10px;
2564 | }
2565 |
2566 | .pageNote {
2567 | margin: 5px;
2568 | text-align: left;
2569 | }
2570 |
2571 | /* end checkoutConfirm */
2572 |
2573 |
2574 |
2575 |
2576 |
2577 |
2578 |
2579 |
2580 | /* begin checkoutComplete */
2581 | /* used in templates/checkout.complete.tem.php */
2582 |
2583 | #checkoutComplete {
2584 | text-align: left;
2585 | width: 500px;
2586 | margin: 5px;
2587 | }
2588 |
2589 | #checkoutComplete .container {
2590 | padding: 0px;
2591 | margin: 0px;
2592 | width: auto;
2593 | }
2594 |
2595 | #checkoutComplete .container2 {
2596 | padding: 0px;
2597 | margin: 0px;
2598 | width: auto;
2599 | }
2600 |
2601 | #checkoutComplete #pageNote {
2602 | margin-top: 10px;
2603 | width: auto;
2604 | height: auto;
2605 | }
2606 |
2607 | #checkoutComplete #downloadFiles {
2608 | margin-top: 10px;
2609 | height: 35px;
2610 | }
2611 |
2612 | #checkoutComplete #downloadFiles input {
2613 | font-size: 120%;
2614 | font-weight: bold;
2615 | }
2616 |
2617 | #checkoutComplete .hdr-title {
2618 | font-size: 105%;
2619 | font-weight: bold;
2620 | line-height: 20px;
2621 | }
2622 |
2623 | #checkoutComplete .container input {
2624 | margin-bottom: 100px;
2625 | }
2626 |
2627 | /* end checkoutComplete */
2628 |
2629 |
2630 |
2631 |
2632 |
2633 |
2634 |
2635 | /* begin clientAccount */
2636 | /* used in all the client "my account" templates */
2637 | /* templates/client.*.tem.php */
2638 |
2639 | #clientAccount {
2640 | text-align: left;
2641 | width: 500px;
2642 | margin: 5px;
2643 | }
2644 |
2645 | #clientAccount h2 { }
2646 |
2647 | #clientAccount .section {
2648 | height: 40px;
2649 | float: left;
2650 | clear: left;
2651 | width: 65%;
2652 | }
2653 |
2654 | #clientAccount .logout {
2655 | height: 40px;
2656 | float: right;
2657 | vertical-align: bottom;
2658 | }
2659 |
2660 | #clientAccount .logout a {
2661 | padding-right:12px;
2662 | }
2663 |
2664 | #clientAccount .logout a:hover { }
2665 |
2666 | #clientAccount #billInfo a {
2667 | /* color: #FFFFFF; */
2668 | }
2669 |
2670 | #clientAccount #shipInfo {
2671 | }
2672 |
2673 | #clientAccount #shipInfo a {
2674 | /* color: #FFFFFF; */
2675 | }
2676 |
2677 | #clientAccount #paymentInfo {
2678 |
2679 | }
2680 |
2681 | #clientAccount #subscriptionBillInfo {
2682 | margin: 5px;
2683 | border: 1px solid #D8DDE3;
2684 | float: left;
2685 | clear: left;
2686 | text-align: left;
2687 | }
2688 |
2689 | #clientAccount #subscriptionShipInfo {
2690 | margin: 5px;
2691 | border: 1px solid #D8DDE3;
2692 | text-align: left;
2693 | float: left;
2694 | }
2695 |
2696 | #clientAccount #subscriptionPaymentInfo {
2697 | margin: 5px;
2698 | border: 1px solid #D8DDE3;
2699 | height: auto;
2700 | width: 230px;
2701 | float: left;
2702 | clear: left;
2703 | text-align: left;
2704 | }
2705 |
2706 | #clientAccount #orderDetails {
2707 | margin: 5px;
2708 | float: left;
2709 | clear: left;
2710 | border: 1px solid #D8DDE3;
2711 | width: 470px;
2712 | border-collapse: collapse;
2713 | }
2714 |
2715 | #clientAccount #orderDetails .list {
2716 | border: 1px solid #D8DDE3;
2717 | height: 22px;
2718 | }
2719 |
2720 | #clientAccount .hdr-title {
2721 | color: #FFFFFF;
2722 | background-color: #878787;
2723 | text-align: left;
2724 | padding:5px;
2725 | font-weight: bold;
2726 | }
2727 |
2728 | #clientAccount .body {
2729 | padding: 5px;
2730 | }
2731 |
2732 | #clientAccount #orderList .title, #clientAccount #subscriptionOrderList .title {
2733 | text-align: left;
2734 | margin: 5px;
2735 | }
2736 |
2737 | #clientAccount #orderList, #clientAccount #subscriptionOrderList {
2738 | border: 1px solid #D8DDE3;
2739 | border-collapse: collapse;
2740 | padding: 0;
2741 | margin: 0;
2742 | float: left;
2743 | width: 100%;
2744 | }
2745 |
2746 | #clientAccount #orderList thead th, #clientAccount #subscriptionOrderList thead th {
2747 | color: #FFFFFF;
2748 | background-color: #878787;
2749 | text-align: left;
2750 | vertical-align: middle;
2751 | padding: 3px;
2752 | height: 25px;
2753 | }
2754 |
2755 | #clientAccount #orderList tbody tr td, #clientAccount #subscriptionOrderList tbody tr td {
2756 | border-top: 1px solid #D8DDE3;
2757 | padding: 3px;
2758 | text-align: left;
2759 | }
2760 |
2761 | #clientAccount #orderList .buttons, #clientAccount #subscriptionOrderList .buttons {
2762 | text-align: right;
2763 | }
2764 |
2765 | #clientAccount #orderList thead tr th a, #clientAccount #subscriptionOrderList thead tr th a {
2766 | color: #FFFFFF;
2767 | }
2768 |
2769 | #clientAccount #orderList thead tr th a:hover, #clientAccount #subscriptionOrderList thead tr th a:hover {
2770 | color: #FFFFFF;
2771 | }
2772 |
2773 | #clientAccount #orderList, #clientAccount #subscriptionOrderList {
2774 | margin: 5px;
2775 | float: left;
2776 | border: 1px solid #D8DDE3;
2777 | height: auto;
2778 | width: 96%;
2779 | text-align: left;
2780 | }
2781 |
2782 | #clientAccount #orderList table, #clientAccount #subscriptionOrderList table {
2783 | width: 100%;
2784 | margin: 5px;
2785 | border-collapse: collapse;
2786 | border-top: 1px solid #D8DDE3;
2787 | text-align: left;
2788 | }
2789 |
2790 | #clientAccount #orderList table thead th, #clientAccount #subscriptionOrderList table thead th {
2791 | text-align: left;
2792 | font-weight: bold;
2793 | }
2794 |
2795 | #clientAccount #orderList table tbody, #clientAccount #orderList table tbody tr td, #clientAccount #subscriptionOrderList table tbody, #clientAccount #subscriptionOrderList table tbody tr td {
2796 | text-align: left;
2797 | border-bottom: 1px solid #D8DDE3;
2798 | border-top: 1px solid #D8DDE3;
2799 | padding: 2px;
2800 | }
2801 |
2802 | #clientAccount #orderList .outOfStock {
2803 | background-color: #FF4040;
2804 | }
2805 |
2806 | #clientAccount #orderList .exceedingStock {
2807 | background-color: #FFFF80;
2808 | }
2809 |
2810 | #clientAccount #myAccount {
2811 | margin: 5px;
2812 | border: 1px solid #D8DDE3;
2813 | height: auto;
2814 | width: 250px;
2815 | float: left;
2816 | text-align: left;
2817 | }
2818 |
2819 | #clientAccount #pageNote, #clientAccount .pageNote {
2820 | text-align: left;
2821 | clear: left;
2822 | font-size: 11px;
2823 | }
2824 |
2825 | #clientAccount #clientAccount .body { }
2826 |
2827 | #clientAccount .all-link {
2828 | margin: 5px;
2829 | }
2830 |
2831 | #clientAccount .links {
2832 | float: right;
2833 | padding-top: 15px;
2834 | padding-right: 15px;
2835 | }
2836 |
2837 | #clientAccount .buttons {
2838 | clear: left;
2839 | float: left;
2840 | padding-top: 15px;
2841 | padding-left: 3px;
2842 | width: 100%;
2843 | }
2844 |
2845 | #clientAccount #otherStats { }
2846 |
2847 | #clientAccount .points {
2848 | padding-left: 3px;
2849 | clear: left;
2850 | float: left;
2851 | }
2852 |
2853 | #clientAccount .pagination {
2854 | float: right;
2855 | padding-left: 3px;
2856 | padding-top: 13px;
2857 | height: 22px;
2858 | width: auto;
2859 | }
2860 |
2861 | #clientAccount .pagination a {
2862 | color: #C00000;
2863 | text-decoration: underline;
2864 | }
2865 |
2866 | #clientAccount .pagination a:hover {
2867 | color: #000000;
2868 | text-decoration: none;
2869 | }
2870 |
2871 | #clientAccount .myerror {
2872 | clear: left;
2873 | float: left;
2874 | }
2875 |
2876 | #clientAccount .adminFile {
2877 | float: left;
2878 | clear: left;
2879 | margin-left: 5px;
2880 | margin-top: 10px;
2881 | }
2882 |
2883 | #clientAccount #outOfStock {
2884 | float: left;
2885 | clear: left;
2886 | color: #FF0000;
2887 | }
2888 |
2889 | #clientAccount #exceedingStock {
2890 | float: left;
2891 | clear: left;
2892 | color: #FF0000;
2893 | }
2894 |
2895 | #clientAccount hr {
2896 | clear: left;
2897 | }
2898 | /* end clientAccount */
2899 |
2900 |
2901 |
2902 |
2903 |
2904 |
2905 |
2906 | /* begin vendorLogin */
2907 | /* used in templates/vendor.login.tem.php */
2908 | /* used in templates/vendor.login.password.tem.php */
2909 |
2910 | #vendorLogin {
2911 | text-align: left;
2912 | width: 500px;
2913 | margin:5px;
2914 | }
2915 |
2916 | #vendorLogin h2 { }
2917 |
2918 | #vendorLogin #pageNote {
2919 | height: 25px;
2920 | }
2921 |
2922 | #vendorLogin .form-label { }
2923 |
2924 | #vendorLogin .form-field { }
2925 |
2926 | /* end vendorLogin */
2927 |
2928 |
2929 |
2930 |
2931 |
2932 |
2933 |
2934 |
2935 | /* begin vendorAccount */
2936 |
2937 | #vendorAccount {
2938 | text-align: left;
2939 | margin: 5px;
2940 | width: 500px;
2941 | }
2942 |
2943 | #vendorAccount h2 {
2944 | width: 350px;
2945 | }
2946 |
2947 | #vendorAccount hr {
2948 | float: left;
2949 | clear: left;
2950 | }
2951 |
2952 | #vendorAccount .vendorlink {
2953 | color: #FFFFFF;
2954 | }
2955 |
2956 | #vendorAccount .pagination {
2957 | width: 475px;
2958 | margin-top: 10px;
2959 | margin-bottom: 10px;
2960 | }
2961 |
2962 | #vendorAccount #pageNote {
2963 | height: 25px;
2964 | }
2965 |
2966 | #vendorAccount .myerror {
2967 | float: left;
2968 | clear: left;
2969 | line-height: 5px;
2970 | }
2971 |
2972 | #vendorAccount .section {
2973 | height: 40px;
2974 | float: left;
2975 | clear: left;
2976 | width: 50%;
2977 | }
2978 |
2979 | #vendorAccount .logout {
2980 | height: 40px;
2981 | float: right;
2982 | vertical-align: bottom;
2983 | }
2984 |
2985 | #vendorAccount .logout a { }
2986 |
2987 | #vendorAccount .logout a:hover { }
2988 |
2989 | #vendorAccount #billInfo {
2990 | margin: 5px;
2991 | height: 160px;
2992 | width: 470px;
2993 | float: left;
2994 | clear: left;
2995 | }
2996 |
2997 | #vendorAccount #orderDetails {
2998 | margin: 5px;
2999 | float: left;
3000 | clear: left;
3001 | border: 1px solid #D8DDE3;
3002 | width: 470px;
3003 | border-collapse: collapse;
3004 | }
3005 |
3006 | #vendorAccount #orderDetails .list {
3007 | border: 1px solid #D8DDE3;
3008 | height: 22px;
3009 | }
3010 |
3011 | #vendorAccount .hdr-title {
3012 | color: #FFFFFF;
3013 | background-color: #878787;
3014 | text-align: left;
3015 | padding:5px;
3016 | font-weight: bold;
3017 | }
3018 |
3019 | #vendorAccount .body {
3020 | padding: 5px;
3021 | }
3022 |
3023 | #vendorAccount #myAccount {
3024 | margin: 5px;
3025 | border: 1px solid #D8DDE3;
3026 | height: auto;
3027 | width: 250px;
3028 | float: left;
3029 | text-align: left;
3030 | }
3031 |
3032 | #vendorAccount #orderList .title {
3033 | margin: 5px;
3034 | }
3035 |
3036 | #vendorAccount #orderList {
3037 | border: 1px solid #D8DDE3;
3038 | border-collapse: collapse;
3039 | padding: 0;
3040 | margin: 0;
3041 | float: left;
3042 | width: 100%;
3043 | }
3044 |
3045 | #vendorAccount #orderList thead th {
3046 | color: #FFFFFF;
3047 | background-color: #878787;
3048 | text-align: left;
3049 | vertical-align: middle;
3050 | padding: 3px;
3051 | height: 25px;
3052 | }
3053 |
3054 | #vendorAccount #orderList tbody tr td {
3055 | border-top: 1px solid #D8DDE3;
3056 | padding: 3px;
3057 | }
3058 |
3059 | #vendorAccount #orderList .buttons {
3060 | text-align: right;
3061 | }
3062 |
3063 | #vendorAccount #orderList thead tr th a {
3064 | color: #FFFFFF;
3065 | }
3066 |
3067 | #vendorAccount #orderList thead tr th a:hover {
3068 | color: #FFFFFF;
3069 | }
3070 |
3071 | #vendorAccount #orderList {
3072 | margin: 5px;
3073 | float: left;
3074 | border: 1px solid #D8DDE3;
3075 | height: auto;
3076 | width: 96%;
3077 | }
3078 |
3079 | #vendorAccount #orderList table {
3080 | width: 100%;
3081 | margin: 5px;
3082 | border-collapse: collapse;
3083 | border-top: 1px solid #D8DDE3;
3084 | }
3085 |
3086 | #vendorAccount #orderList table thead th {
3087 | text-align: left;
3088 | font-weight: bold;
3089 | }
3090 |
3091 | #vendorAccount #orderList table tbody, #vendorAccount #orderList table tbody tr td {
3092 | text-align: left;
3093 | border-bottom: 1px solid #D8DDE3;
3094 | border-top: 1px solid #D8DDE3;
3095 | padding: 2px;
3096 | }
3097 |
3098 | #vendorAccount .buttons {
3099 | clear: left;
3100 | float: left;
3101 | padding-top: 5px;
3102 | padding-left: 3px;
3103 | }
3104 |
3105 | #vendorAccount #billInfo { }
3106 |
3107 | #vendorAccount #otherStats { }
3108 |
3109 | #vendorAccount .large {
3110 | font-size: 125%;
3111 | font-weight: bold;
3112 | padding-top: 10px;
3113 | padding-bottom: 10px;
3114 | }
3115 |
3116 | #vendorAccount .productActionButtons {
3117 | clear: both;
3118 | float: right;
3119 | }
3120 |
3121 | #vendorAccount .productActionOptions {
3122 | float: left;
3123 | }
3124 |
3125 | #vendorAccount #productList {
3126 | margin: 5px;
3127 | float: left;
3128 | clear: left;
3129 | }
3130 |
3131 | #vendorAccount #productList thead tr th {
3132 | color: #FFFFFF;
3133 | background-color: #878787;
3134 | text-align: left;
3135 | padding: 5px;
3136 | font-weight: bold;
3137 | }
3138 |
3139 | #vendorAccount #productList thead tr td { }
3140 |
3141 | #vendorAccount #vendorTabs {
3142 | margin: 5px;
3143 | float: left;
3144 | clear: left;
3145 | }
3146 |
3147 | #vendorAccount #vendorTabs .tabs-on {
3148 | margin: 5px;
3149 | font-weight: bold;
3150 | float: left;
3151 | }
3152 |
3153 | #vendorAccount #vendorTabs .tabs-off {
3154 | margin: 5px;
3155 | float: left;
3156 | }
3157 |
3158 | #vendorAccount .vendorTable {
3159 | float: left;
3160 | clear: left;
3161 | }
3162 | /* end vendorAccount */
3163 |
3164 |
3165 |
3166 |
3167 |
3168 |
3169 |
3170 |
3171 | /* start registryList */
3172 | /* used in templates/registry.list.tem.php */
3173 |
3174 | #registryList {
3175 | width: 500px;
3176 | margin: 5px;
3177 | text-align: left;
3178 | }
3179 |
3180 | #registryList .content-even {
3181 | border-bottom: 1px dotted #D9D9D9;
3182 | text-align: center;
3183 | vertical-align: top;
3184 | padding: 8px;
3185 | margin: 1px;
3186 | width: 460px;
3187 | }
3188 |
3189 | #registryList .content-odd {
3190 | border-bottom: 1px dotted #D9D9D9;
3191 | text-align: center;
3192 | vertical-align: top;
3193 | padding: 8px;
3194 | margin: 1px;
3195 | width: 460px;
3196 | }
3197 |
3198 | #registryList .title {
3199 | margin-top: 8px;
3200 | margin-bottom: 8px;
3201 | text-align: left;
3202 | float: left;
3203 | clear: both;
3204 | }
3205 |
3206 | #registryList #registryListResults{
3207 | float: left;
3208 | clear: left;
3209 | }
3210 |
3211 | /* end registryList */
3212 |
3213 |
3214 |
3215 | /* begin posCheckoutComplete */
3216 | /* used in templates/checkout.complete.tem.php */
3217 |
3218 | #posCheckoutComplete {
3219 | width: 215px;
3220 | text-align: center;
3221 | }
3222 |
3223 |
3224 | #posCheckoutComplete .addressElement {
3225 | clear: left;
3226 | margin: 0 auto;
3227 | width: 100%;
3228 | height: auto;
3229 | }
3230 |
3231 | #posCheckoutComplete .invoiceInfo {
3232 | padding-top: 15px;
3233 | float: left;
3234 | text-align: left;
3235 | height: auto;
3236 | }
3237 |
3238 | #posCheckoutComplete .cartItemInfo {
3239 | clear: left;
3240 | float: left;
3241 | text-align: left;
3242 | padding-top: 5px;
3243 | width: 100%;
3244 | height: auto;
3245 | }
3246 |
3247 | #posCheckoutComplete .cartItemPrice {
3248 | float: right;
3249 | }
3250 |
3251 | #posCheckoutComplete .cartTotals {
3252 | clear: left;
3253 | width: 100%;
3254 | padding-top: 5px;
3255 | height: auto;
3256 | }
3257 |
3258 | #posCheckoutComplete .cartTotalsRow {
3259 | vertical-align: middle;
3260 | height: auto;
3261 | width: 100%;
3262 | }
3263 |
3264 | #posCheckoutComplete .cartTotalsHeader {
3265 | clear: left;
3266 | float: left;
3267 | width: 69%;
3268 | text-align: right;
3269 | height: 100%;
3270 | }
3271 |
3272 | #posCheckoutComplete .cartTotalsValue {
3273 | clear: none;
3274 | float: right;
3275 | width: 29%;
3276 | text-align: right;
3277 | height: 100%;
3278 | }
3279 |
3280 | #posCheckoutComplete .tagElement {
3281 | clear: left;
3282 | margin: 0 auto;
3283 | width: 100%;
3284 | height: auto;
3285 | padding-top: 15px;
3286 | }
3287 |
3288 | /* end checkoutComplete */
3289 |
3290 |
3291 | .blurb {
3292 | clear: left;
3293 | float: left;
3294 | }
3295 |
3296 | h2 {
3297 | clear: left;
3298 | }
--------------------------------------------------------------------------------