{{ site.title }}
{{ page.title }}
72 | {{ site.project_name }}
{{ site.description }}
73 | AIO {{site.version}}(windows location: C:\Windows\System32\Drivers\etc\hosts) and add this line:
0.0.0.0 translate.google.com
80 |
2 | # Update to Waisky2’s addon-all-fixed-auto-install-v2
3 | # V3.0 - Initial
4 | # V3.2 - Removed temperatures that did not work right,
5 | # added trip fuel economy which is based on cmu trip which does not correspond to speedometer trip ,
6 | # changed so all data is rounded which fixed smdb-read speed mismatch to cruse control
7 | # enlarged direction text,
8 | # cleaned up code
9 | # V3.21 changed metric display to L per 100km
10 | #
11 | # Changes done by diginix:
12 | # V3.3 added unit under speedometer for mph or km/h
13 | # replace dot with comma for L per 100km
14 | # optimized speed indicator angles in css
15 | # new graphics for rings, needle pointer, dial image with different layout for steps 5,10,20
16 | # html and css cleanup
17 | # some more layout tuning (e.g. text shadow)
18 | # V3.4 rotating compass added
19 | # V3.5 GPS Heading deleted, Latitude & Longitude added
20 | # V3.6 added analog top speed indicator
21 | # small animated GPS speed and direction added in statusbar (toggleable with touch on clock)
22 | # V3.7 complete new method for data retrieval with websocket
23 | # added GPS Altitude min & max
24 | # added multilingual support (EN,DE,ES)
25 | # added Waisky2’s video player v2
26 | # V4.0 integrated as native app in menu
27 | # new statusbar speedo without animation javascript (better performance)
28 | # alternating gps altitude and direction
29 | # V4.1 added trip distance
30 | # added language Polish (thanks to sauron2003 from mazda3revolution.com)
31 | # added total fuel efficiency in brackets behind current one
32 | # added selection for fuel efficiency unit in user config
33 | # some layout improvements
34 | # merged some code improvements by vic_bam85
35 | # V4.2 added readme.txt
36 | # added language Slovak (thanks to sedrik7 from mazda3revolution.com)
37 | # added language Turkish (thanks to volcano2K from mazda3revolution.com)
38 | # added tachometer for engine speed
39 | # added second idle time if engine is running but car has no speed (opposite to iStop time)
40 | # changed trip distance to 20 meter accuracy (0.02 km)
41 | # fixed statusbar speedo overlapping with message icon if 4 icons are visible (BT,WIFI,BATTERY,MESSAGE)
42 | # V4.3 added percentage display of both idle times
43 | # added semi transparent background for value table
44 | # added user config for customizing of speedometer background image
45 | # added language French (thanks to drean179 and Regg001 from mazda3revolution.com)
46 | Speedometer Changelog (Since v5.5 before that it was 2 different speedometers)
47 |v5.5
48 |-
49 |
- Analog, Modded and Bar Speedometers are now All In One 50 |
- All options are available and will be applied to the proper Speedometer 51 |
- Choose which speedometer to start with by default (if starting with Bar Speedometer other options will still determine the starting state of the Classic Speedometer) 52 |
- The speedometer-config.js file now has all the options, set a variable to determine if override values are used or installed options. 53 |
- Invalid Values Show "---" Such As Gear Position/Lever for Manual Transmissions 54 |
- Toggles will Show The Action In A Statusbar Notification 55 |
- Hold "Up" on multicontroller to switch between Classic and Bar Speedometer Mode 56 |
- Hold "Down" in Classic mode to switch between Basic and Modded Speedometer (Basic is only analog with no toggles except long holds to change to Modded or Bar Speedometer) 57 |
- Modded Speedometer (in Classic mode):
-
58 |
- Single click "Up" to increase size of values 59 |
- Multicontroller "Select" toggles between Digital and Analog speed 60 |
- Single click "Down" to show alternate values 61 |
63 | - Bar Speedometer:
-
64 |
- Configure The Amount of Bottom Rows in "speedometer-config.js" (Default 4) 65 |
- Hold "Down" to show/hide speed bar 66 |
- TAP Any 2 Values To Swap Their Positions!
-
67 |
- Any Values Can Be Swapped Even The Main 68 |
- When The Main Value Is Swapped An SBN Will Show With The Value Name 69 |
- Tap Below The Bottom Row To Swap Hidden Values In Other Rows 70 |
- Tap Selected Value Again To Cancel 71 |
73 |
75 |
v5.6
77 |-
78 |
- Bar Speedometer layout changes are remembered until shutdown
-
79 |
- Exiting or changing speedometers no longer resets layout to default 80 |
- Hold "Select" on the multicontroller to reset to your default layout 81 |
- Change Between 5 Configurable Color Themes (hold.left) 82 |
84 | - Remap Multicontroller Functions speedometer-controls.js
-
85 |
- All controls are able to be customized in speedometer-controls.js 86 |
88 | - Custom themes for bar speedometer with CSS (mostly colors but other CSS tweaks can be applied)
-
89 |
- Set Colors In barThemes.css 90 |
92 |
13 | [Latest AA W/ Beta Features](http://aabeta.mazdatweaks.win) (if there is one) 14 | ##### Old Versions 15 | _Beta releases will have 1 or more features from the next version but official releases will have more stable code._
16 | #### Sorry these are broken links 17 | [v1.04](/aa104)
18 | [v1.05](/aa105)
19 | [v1.06](/aa106)
20 | [v1.06b](/aa106b)(Car GPS disabled)
21 | [v1.07](/aa107)
22 | [Mirror for v1.05b, v1.06 & v1.06b](/aa-mirror105b)
23 | [Another Mirror for v1.06](/aa-megamirror106)
24 | [Mirror for v1.07](/aamirror107)
25 | [v1.09](/aa109)
26 | [v1.10+](/aa110) (Without HUD because feature was unstable)
27 | [v1.12](/AA-v1.12.zip)
28 | [v1.13](/AA-v1.13.zip)
29 | [v1.14b by Radarwild](https://www.mazda3revolution.com/threads/aa-v1-14b-tru_go-fw55-59-fw70-abarth124-spider-sound-touch-usb-s-beta.239375/) 30 | 31 | For more information visit the [Headunit Repository](http://github.com/gartnera/headunit/) 32 | 33 | --- 34 | ## Instructions for Android Auto Wireless Support (v1.09+): 35 | 36 | ### Initial wireless connection 37 | 1. PHONE: Enable Developer Settings on Android Auto 38 | 2. CAR : Start car 39 | 3. PHONE: Create a personal hotspot 40 | 4. CAR : Connect Wifi to personal hotspot 41 | 42 | ### Run headunit-wireless 43 | 5. PHONE: Open Android Auto app and go to "about". Open the menu and tap "Start Head unit Server" 44 | 6. CAR: Android Auto Headunit will start automatically 45 | 46 | ### Stop 47 | 1. CAR: Exit Headunit 48 | 2. PHONE: Stop Head unit Server. Disable developer mode (options). 49 | 3. CAR: Disconnect personal hotspot 50 | 4. PHONE: disable personal hotspot 51 | 52 | #### Changelog since v1.0: 53 | - v1.03: 54 | - Bluetooth calling issue resolved with patch to sound config files 55 | - Audio streams adjusted 56 | - Video focus is lost at beginning and end of a Bluetooth call 57 | - v1.04 58 | - Bluetooth calling issue completely resolved (no patch needed) 59 | - MZD multicontroller buttons mapped: 60 | - Nav - AA home 61 | - FAV () - Regain video focus 62 | - Call - AA Phone context or Answer calls 63 | - Call End - End Call 64 | - Tap textarea on credits screen to view headunit.log 65 | - v1.05 66 | - Video Focus on Bluetooth calls issue resolved 67 | - v1.06 68 | - AA Log scrollable (credits screen) 69 | - Some Audio volume/quality issues resolved 70 | - v1.07 71 | - GPS code rewritten to be more stable and work in parallel with MZD Navigation 72 | - AA Media registered on its own separate stream (resolves multiple audio focus issues) 73 | - Remapped FAV () Button - Switch audio focus to MZD Entertainment 74 | - Control USB audio with prev/next buttons (when it has audio focus) 75 | --- 76 | 77 | # How To Run **Android Auto** In Ubuntu (Virtual Machine) 78 | 79 | ## [Windows 10](//www.microsoft.com/software-download/windows10 "Download Windows 10"), [VirtualBox VM Manager](//www.virtualbox.org/wiki/Downloads "Download VirtualBox"), [Ubuntu v16.04 64-bit](//www.ubuntu.com/download "Ubuntu Downloads") 80 | 81 | ## OR just Ubuntu [Ubuntu v16.04 64-bit](//www.ubuntu.com/download "Ubuntu Downloads") as the main OS. 82 | 83 | ### **Required Knowledge:** 84 | **To Run:** Ability to follow these instructions, create a Virtual Machine, use a command line interface, and basic understanding of git and bash shell scripting. 85 | **To Develop:** At least one or more of: C, C++, JavaScript, Linux/Bash Scripting, Android, gstreamer(0.10 & 1.0). 86 | 87 | ### **Required Hardware:** 88 | **Android Phone:** v5+ with Android Auto App installed and USB Debugging Enabled. 89 | **USB Bluetooth Receiver:** or built in Bluetooth receiver. 90 | 91 | --- 92 | ## Part 1: Virtual Machine 93 | 94 | ##### If you already know how to do this or are already on Ubuntu/Linux skip to [part 2](#part-2) These are instructions for Windows 10 and Ubuntu 16.04(64-bit) but any recent Mac OS and Linux distro should work just as well. 95 | 96 | | --- | --- | 97 | | - Create an Ubuntu (Linux) Virtual Machine and boot up Linux with a disk image from the link above |  | 98 | | - Give plenty of allowed RAM and Disk Space (you can use VDI Virtual Disk Image) and complete the installation |  | 99 | | - While the installation is running, you can set up your USB devices (phone and Bluetooth) to connect automatically in settings>USB. When adding a device erase all entries except for name, Vendor ID, and Product ID (you can delete Product ID field too if your phone is having issues reconnecting). Then after they are set up disconnect them until the installation is finished and the system reboots. |  | 100 | | - When Ubuntu is finished installing, try connecting your USB devices. In the menu under devices>USB there should be a check mark next to your Bluetooth receiver and phone. If there isn't try to connect them, if you are getting an error you might need to fix your drivers like I did. I had to do this to get my USB devices to work [Method No. 2](http://www.cyberprogrammers.net/2015/04/how-to-fix-usb-device-is-busy-with.html "I had to use Method 2 to fix my issues") |  | 101 | | - By now you should have a fully functional Ubuntu Virtual Machine running with working USB drivers to use your devices. |  | 102 | 103 | --- 104 | 105 | ## Part 2: From 0 to AA 106 | Once Ubuntu is all set up this is the complete set of commands to take you from 0 to Android Auto in about 30-60 minutes: 107 | ```sh 108 | cd ~ 109 | sudo apt-get install git adb bluetooth libbluetooth-dev tlp blueman bluemon bluez libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-alsa 110 | sudo apt-get install libssl-dev libusb-1.0-0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libsdl1.2-dev libgtk-3-dev libudev-dev libunwind-dev libsdl2-dev libgstreamer-plugins-bad1.0-dev protobuf-compiler libdbusxx 111 | git clone --recursive //github.com/gartnera/headunit.git 112 | sed -i 's/xvimagesink/ximagesink/g' ~/headunit/ubuntu/outputs.cpp # ONLY NEEDED if running on a virtual machine 113 | cd ~/headunit/ubuntu 114 | make clean && make 115 | sudo ./headunit 116 | ``` 117 | Now you have the Android Auto Ubuntu Emulator Installed, every time you want to open the emulator back up you just enter the command: 118 | ```sh 119 | sudo ~/headunit/ubuntu/headunit 120 | ``` 121 | 122 | To compile a headunit binary for use in the car run: 123 | ```sh 124 | cd ~/headunit/mazda && make clean && make 125 | ``` 126 | 127 | I hope this will lead to more programmers who did not want to bother installing a new operating system or spend a lot of time figuring out how to set up the development environment and whatnot to contribute to the Android Auto project. I tried to make these instructions as simple, clear, and straightforward as possible but if there are any ambiguities or you have an improvement or suggestion for this tutorial [shoot me an email](mailto:trez@mazdatweaks.com?subject=AA%20on%20Ubuntu%20Suggestion). To all my fellow HaXors out there Happy Hacking! 128 | **NOTES:** You may need to manually reconnect your phone if it is disconnected by AA. You need to have your phone in MTP mode (you can try PTP as well) to make the adb connection properly. if you are having trouble connecting you may be using an incompatible Bluetooth receiver. 129 | 130 |  131 | 132 | AA Headunit app repository: 133 | /github.com/gartnera/headunit.git> 134 | 135 | These are the dependencies: 136 | /github.com/gartnera/headunit/tree/master/ubuntu> 137 | 138 | {% include_relative AA.html %} 139 | 140 | --- 141 | ## **BONUS** 142 | 143 | Now that you have Ubuntu set up and the Mazda arm toolchain installed you can also compile and run the CastScreen-Receiver: 144 | ```sh 145 | cd ~ 146 | git clone //github.com/JonesChi/CastScreen.git 147 | cd CastScreen/receiver && make 148 | sudo sh ./wait_adb.sh 149 | reboot 150 | ``` 151 | 152 | To start again: 153 | ```sh 154 | cd ~/CastScreen/receiver 155 | sudo sh ./wait_adb.sh 156 | ``` 157 | 158 | 161 | -------------------------------------------------------------------------------- /serial.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Serial Connection 4 | side_menu: true 5 | top_menu: true 6 | permalink: /serial/ 7 | --- 8 | 9 | # **CMU Serial Access** 10 | 11 | **In FW v59.00.502 and higher the CMU is locked down and users cannot access to their own systems and can no longer install tweaks.** Currently the only way to circumvent this is to make a serial connection and follow these instructions very carefully. This process will allow you to run tweaks from USB. 12 | **[EXTRA INSTRUCTIONS FOR FW v70.00.335](/id7) and higher. Serial connection will need to be made before updating or FW reinstall to regain root access.** 13 | ### **_A huge Thank You to [Albuyeh](http://www.albuyeh.com/) for writing these detailed instructions._** 14 | 15 | ## Parts/Equipment Needed: 16 | 17 | - [USB to TTL Serial Adapter](https://www.amazon.com/Qunqi-CP2102-Module-Download-Converter/dp/B014PBYER4) - $6 (Any other CP2102 module should work. Other USB-TTL Adapters might work too.) Driver can be found [Here](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers). I like this module because it has LEDs when you are receiving or transmitting data 18 | - Single-Stranded/Solid-core insulated wire. I personally like [this](https://www.amazon.com/Elegoo-EL-CP-004-Multicolored-Breadboard-arduino/dp/B01EV70C78) because you can daisy-chain them together without needing to do any soldering. 19 | - USB Flash Drive 20 | - 10mm socket wrench with extender/ratchet 21 | - [Putty](https://www.putty.org/) or [SecureCRT](https://www.vandyke.com/products/securecrt/) 22 | - [Mazda AIO Tweaks](http://dl.mazdatweaks.win) 23 | 24 | ## Preparation: 25 | 26 | ### USB Flash Drive: 27 | 28 | #### MZD AIO Method: 29 | 1. Format drive to FAT32 30 | 2. Using MZD-AIO v2.7.9+: Run "Autorun & Recovery" with "Recovery Via Serial Connection" & "Install ID_7 Recovery Scripts Pack" options checked 31 | 3. AIO will create the 'XX' Folder and neccessary files in "\_copy_to_usb" folder 32 | 4. AIO will offer to copy files directly to the connected USB Drive 33 | 34 | or 35 | 36 | #### Manual Method: 37 | 38 | 1. Format drive to FAT32 39 | 2. Create folder called ‘XX’ 40 | 3. Add contents of [this archive](http://albuyeh.com/files/autorun.v3.zip) to folder ‘XX’ 41 | 4. If you want to have the car create its own Wifi Access Point, configure the `XX/00-start-wifiAP/wifiAP.config`file. Otherwise, delete the 00-start-wifiAP folder. If you are trying to remove Wifi AP after you have installed it, copy contents of Wifi Uninstall Script to flash drive and connect to CMU. 42 | 43 | - (Optional) Use AIO to also install some selected tweaks on the same USB flash drive to run after completed. 44 | 45 | ## Process: 46 | 47 | ### Accessing the CMU: ([Watch this video](https://youtu.be/zFKr4L414dM) to see how its done) 48 | 49 | 50 | 51 | #### [Another Great Video](https://youtu.be/DhbI25T3w3Q): 52 | 53 | 54 | 55 | 1. Open glove box 56 | 2. Pull the trim. You will need to use more force than you expect. The front fan area is attached to the trim and will come off as well. 57 | 3. Disconnect the hazard light connector cable 58 | 4. Use the 10mm socket wrench to remove the bolt 59 | -  60 | 5. The headunit will slide out towards you 61 | 62 | ### Wiring the CMU: 63 | 64 | **Do not modify any of the below commands** If the commands do not work, then you have done something wrong (i.e. you're not logged in, or RX/TX wires are not properly wired) 65 | 66 | 1. You will need to have 3 wires connected to the CMU: Transmit (TX), Receive (RX), and Ground (GND) 67 | 2. Here is a picture of the back of the CMU. We are going to be adding our cables to the ‘power&more’ connector. Here is a more detailed picture of where the RX and TX cables go. Note: The smaller 2x4logic.com diagram looks like it's the opposite of the other picture but that's because the CMU is using 2S to transmit (so the serial adapter will be receiving). For the sake of simplicity, connect the RX port of your Serial Adapter to 2S (top) and TX port to 2T (bottom). 68 | -   69 | 3. Be sure that the cable is going into the port. It must go in about an inch. The GND cable can go anywhere so long as it is touching the CMU. I recommend slightly unscrewing one of the Philips head screws and wedging the cable in there. 70 | 4. Connect the other end of the wires to the CP2102 module in its corresponding port. 71 | 72 | ### Serial Console App: 73 | 74 | - Make sure you know what the paste command is for your Serial Console application. In Putty, you right click inside the terminal window and it will paste whatever command you had copied. For SecureCRT, you push Ctrl+Shift+V to paste. Remember that these shortcuts will only paste, you will have to push enter after to actually send the command. 75 | 76 | 1. Windows will auto-assign a COM Port to the CP2102 module once its plugged in. Go to Device Manager > Ports (COM & LPT) to see what the COM Port # is 77 | - For SecureCRT, under Options > Connection > Serial, set Port = COM#, Baud = 115200, Data Bits = 8, Parity = None, Stop Bits = 1 78 | - For Putty, you just need to select ‘Serial’ and then enter the COM Port # and set Baud to 115200 79 | 2. You should start see text scroll by even if the car is off 80 | 3. Plug in flash drive 81 | 4. Turn the car to ACC mode by just pressing the On button without putting your foot on brake to fully turn car on 82 | 5. Now you are really going to be seeing text fly by, **remember that the commands are working even though you cannot see what you are typing because of the text flying by.** 83 | 6. Press Enter in terminal and CMU will respond with ‘login’. For the next several steps make sure you do not make any spelling mistakes. It is probably **best to copy and paste the commands** (to paste you just need to right click in the terminal window). 84 | - **If text is flying by so fast it seems like you can't type you are doing everything correctly, copy and paste each command and press enter! It will seem like your commands are not being sent to the Mazda but don’t worry they are** (_provided your wiring is right. If you got a module with LEDs you can check **TX is Transmit/RX is Receive**_) 85 | 7. Reboot Mazda CMU by holding the Nav + Mute button for 10+ seconds. 86 | 8. Input
and push Enter Copy
87 | 9. Input and push Enter Copy
88 | > *NOTE:* After installing the autorun scripts you will be able to login as the root user with username: **cmu** pass: **jci**
89 |
90 | 10. Run
91 | -
92 |
93 | 11. (Optional) To test if the files have been moved to the folder, run
94 | -
95 | - The files/folders should be colored in green/blue since they are folders/executable. You may have to run this a few times to see the Serial Console output.
96 | - 
97 |
98 | 12. Remove flash drive, turn off car, insert flash drive that has AIO tweaks installed, turn car on back in ACC mode
99 | 13. After a few minutes, you should see a message that indicates the mods are being installed. This process may take approximately 2 - 20 minutes.
100 |
101 | ### Finishing Up
102 |
103 | 1. Now that everything is installed you can put everything back together
104 | 2. Remove the TX, RX, GND wires
105 | 3. Slide CMU back in
106 | 4. Attach bolt using 10mm socket wrench
107 | 5. Connect hazard light connector cable to trim
108 | 6. Push trim back in
109 | 7. From here on out, you can just use a flashdrive to install tweaks
110 |
111 | ## You're Done!
112 |
113 | ##### If you have questions or need help visit [this thread](http://mazda3revolution.com/forums/2014-2017-mazda-3-skyactiv-audio-electronics/200450-aio-tweaks-firmware-ver-502-read.html) for more information.
114 |
115 | If you love us so much you need to donate you can [Buy Albuyeh a Hot Chocolate](https://www.paypal.me/Albuyeh) and/or you can [Buy Trez Some Weed :D](https://www.paypal.me/Trevelopment). Good Luck!
116 |
--------------------------------------------------------------------------------
/Speedometer_readme.html:
--------------------------------------------------------------------------------
1 | To customize the Bar Speedometer edit the file (from USB Drive or _copy_to_usb folder): 'config/speedometer/speedometer-config.js'
2 | 3 |/** speedometer-config.js ************************************************************** *\
4 | |* =========================
5 | |* Speedometer Configuration - Used to configure position of Speedometer values.
6 | |* =========================
7 | |* Main Speedometer Value: [0, 0, 0] - Large, Front, & Center.
8 | |* Other Values: [ 0/1:(0 For Main Column OR 1 For Bottom Rows), Row Number, Position ]
9 | |* Main Column Positions: 4 Values (1-4 From Top to Bottom)
10 | |* Bottom Rows Positions: 5 Values Per Row (1-5 From Left to Right)
11 | |* Examples:
12 | |* [0, 1, 4] = [Main, Column, 4th position (Bottom of the Column)]
13 | |* [1, 3, 1] = [Bottom, 3rd Row, First Position (Left Side)]
14 | |* [1, 1, 5] = [Bottom, 1st Row, Last Position (Right Side)]
15 | |* To Hide a Value = [1, 1, 0] (Any bottom row position 0 will hide the value)
16 | |* To Change Bottom Row Push Command Knob ("Select")
17 | |* Note: Only numbers inside [] brackets determine position, order in this list DOES NOT
18 | \* ************************************************************************************* */
19 | var spdBottomRows = 3; //Number of Bottom Rows
20 | var spdTbl = { // Example Layout:
21 | vehSpeed: [0, 0, 0], //Vehicle Speed
22 | topSpeed: [0, 1, 1], //Top Speed
23 | avgSpeed: [0, 1, 2], //Average Speed
24 | gpsSpeed: [0, 1, 3], //GPS Speed
25 | engSpeed: [0, 1, 4], //Engine Speed
26 | trpTime: [1, 1, 1], //Trip Time
27 | trpDist: [1, 1, 2], //Trip Distance
28 | outTemp: [1, 1, 3], //Outside Temperature
29 | inTemp: [1, 1, 4], //Intake Temperature
30 | coolTemp: [1, 1, 5], //Coolant Temperature
31 | gearPos: [1, 2, 1], //Gear Position
32 | gearLvr: [1, 1, 0], //Transmission Lever Position
33 | fuelLvl: [1, 2, 2], //Fuel Gauge Level
34 | trpFuel: [1, 2, 3], //Trip Fuel Economy
35 | totFuel: [1, 2, 4], //Total Fuel Economy
36 | avgFuel: [1, 2, 5], //Average Fuel Economy
37 | gpsAlt: [1, 3, 2], //Altitude
38 | gpsAltMM: [1, 3, 3], //Altitude Min/Max
39 | gpsHead: [1, 3, 1], //GPS Heading
40 | gpsLat: [1, 3, 4], //GPS Latitude
41 | gpsLon: [1, 3, 5], //GPS Longitude
42 | trpIdle: [1, 1, 0], //Idle Time
43 | trpEngIdle: [1, 1, 0], //Engine Idle Time
44 | engTop: [1, 1, 0], //Engine Top Speed
45 | engLoad: [1, 1, 0], //Engine Load
46 | batSOC: [1, 1, 0], //Battery Charge State (i-stop)
47 | };
48 |
49 |
50 | // OverRide Values
51 | /* ************************************************** */
52 | /* Set overRideSpeed to true to use your values below */
53 | /* If this is false the following values are not used */
54 | var overRideSpeed=false;
55 | /* ************************************************** */
56 | /* * Start OverRide Variables *********************** */
57 | var SORV = {
58 | // Set the language for the speedometer
59 | // Available EN, ES, DE, PL, SK, TR, FR, IT
60 | language: "EN",
61 |
62 | // Used for metric/US english conversion flag (C/F, KPH/MPH, Meter/Feet, L per 100km/MPG)
63 | // Set isMPH: true for MPH, Feet, MPG
64 | // Set isMPH: false for KPH, Meter
65 | isMPH: false,
66 |
67 | // Set This to true to start with the Bar Speedometer Mod
68 | // False to use the analog speedometer
69 | barSpeedometerMod: true,
70 |
71 | // Set true to enable multicontroller and other mod features in classic mode
72 | // If false then use classic speedometer without Mods
73 | speedMod: true,
74 |
75 | // Set to true to start the classic speedometer in analog mode
76 | // False to start in digital mode
77 | startAnalog: true,
78 |
79 | // Set it true for the StatusBar Speedometer
80 | // False if you don't want the small speedometer in statusbar
81 | StatusBarSpeedometer: true,
82 |
83 | // Set to true for Outside Temperature & Fuel Efficiency in the statusbar
84 | // False for Compass & Altitude
85 | sbTemp: false,
86 |
87 | // Set true if you want the original speedometer background image as in version 4.2 or below
88 | // False for no background
89 | // If "true" the opacity above will be ignored
90 | original_background_image: false,
91 |
92 | // Set the opacity of black background color for speedometer, to reduce the visibility of custom MZD background images
93 | // Possible values 0.0 (full transparent) until 1.0 (complete black background)
94 | black_background_opacity: 0.0,
95 |
96 | // Set unit for fuel efficiency to km/L
97 | // False for L/100km
98 | fuelEffunit_kml: false,
99 |
100 | // Set this to true for Fahrenheit
101 | // False for Celsius
102 | tempIsF: false,
103 |
104 | // For the Speed Bar false for Current Vehicle Speed
105 | // Set This to true if you want the Colored Bar to measure engine speed
106 | engineSpeedBar: false,
107 |
108 | // Set This to true to hide the Speed Bar
109 | // False shows he bar
110 | hideSpeedBar: false,
111 |
112 | // Set this to true to enable counter animation on the speed number
113 | // False to disable speed counter animation
114 | // The animation causes the digital number to lag by 1 second
115 | speedAnimation: false,
116 | };
117 |
118 |
119 | To customize the Speedometer Multicontroller functions edit the file (from USB Drive or _copy_to_usb folder): 'config/speedometer/speedometer-controls.js'
120 |/** speedometer-controls.js ************************************************************** *\
121 | |* =========================
122 | |* Speedometer Controls - Used to map multicontroller "clicks" to toggle actions/events
123 | |* =========================
124 | |* Numbers may be used multiple times. Ex: set all directions under bar to 4
125 | |* and all multicontroller directions will toggle the background
126 | |* KEY:
127 | |* Both Speedometers: (Same by default but can be set independently)
128 | |* 1: (Default: up) - Toggle Speed Unit (mph-km/h)
129 | |* 3: (Default: right) - Toggle Temp C-F (mph mode) Fuel Eff L/km-km/100L (km/h mode)
130 | |* 4: (Default: left) - Toggle Background
131 | |* 8: (Default: hold.right) - Reset Trip Time, Distance, Top/Ave Speed
132 | |* 9: (Default: hold.left) - Change Color Theme
133 | |* Bar (Colored Speed Bar w/ Bottom Rows):
134 | |* 0: (Default: select) - Show Next Bottom Row
135 | |* 2: (Default: down) - Toggle Speed Bar (VehSpeed-RPM)
136 | |* 5: (Default: hold.select) - Reset Layout
137 | |* 6: (Default: hold.up) - Switch To Classic Speedometer
138 | |* 7: (Default: hold.down) - Hide/Show Speed Bar
139 | |* Classic (Analog w/ Compass):
140 | |* 0: (Default: select) - Toggle Speed (Analog-Digital)
141 | |* 2: (Default: down) - Toggle Larger Text
142 | |* 5: (Default: hold.select) - Toggle Alternate Values (Time-Temp)
143 | |* 6: (Default: hold.up) - Switch To Bar Speedometer
144 | |* 7: (Default: hold.down) - Basic Speedo - Analog & Disables Toggles Except Itself To Toggle Back
145 | |* ************************************************************************************* *|
146 | |* null: To Disable Multicontroller Key (do not leave any blank!!!)
147 | \* ************************************************************************************* */
148 | var spdBtn = {
149 | bar: { // Controls for the Bar Speedometer context
150 | select: 0,
151 | up: 1,
152 | down: 2,
153 | right: 3,
154 | left: 4,
155 | hold: { // Used when the click is held for 2 seconds
156 | select: 5,
157 | up: 6,
158 | down: 7,
159 | right: 8,
160 | left: 9,
161 | }
162 | },
163 | classic: { // Controls for the Classic (Analog) Speedometer context
164 | select: 0,
165 | up: 1,
166 | down: 2,
167 | right: 3,
168 | left: 4,
169 | hold: { // Used when the click is held for 2 seconds
170 | select: 5,
171 | up: 6,
172 | down: 7,
173 | right: 8,
174 | left: 9,
175 | }
176 | }
177 | };
178 |
179 |
180 | To customize the Bar Speedometer color themes edit the file (from USB Drive or _copy_to_usb folder): 'config/speedometer/barThemes.css'
181 |/* barThemes.css - Customize Bar Speedometer Color Themes
182 | * Any Valid CSS Colors Can Be Used Examples:
183 | * Names - Ex: blue;
184 | * Hex - Ex: #00ff66;
185 | * RGB - Ex: rgb(100, 255, 0);
186 | * HSL - Ex: hsl(248, 53%, 58%);
187 | * For More Info On CSS Colors Visit https://www.w3schools.com/colors/colors_names.asp
188 | * Each Theme Has 3 Colors In This Order:
189 | * Primary - Color of Values
190 | * Secondary - Color of Labels/Units
191 | * Border-Color - Color of the Box Borders
192 | * If you know CSS then have fun with it
193 | * CSS is a very forgiving language any errors in this file will be ignored
194 | */
195 |
196 | /* Theme #1 */
197 |
198 | #speedBarContainer.theme1 #vehdataMainDiv fieldset div, #speedBarContainer.theme1 #vehdataMainDiv [class*="vehDataMain"].pos0 div {
199 | /* Primary */
200 | color: aquamarine;
201 | }
202 |
203 | #speedBarContainer.theme1 #vehdataMainDiv [class*="vehDataMain"].pos0 legend .spunit span, #speedBarContainer.theme1 #vehdataMainDiv fieldset {
204 | /* Secondary */
205 | color: #64bfff;
206 | /* Border-Color */
207 | border-color: blue;
208 | }
209 |
210 | /* Theme #2 */
211 |
212 | #speedBarContainer.theme2 #vehdataMainDiv fieldset div, #speedBarContainer.theme2 #vehdataMainDiv [class*="vehDataMain"].pos0 div {
213 | color: #3fff17;
214 | }
215 |
216 | #speedBarContainer.theme2 #vehdataMainDiv [class*="vehDataMain"].pos0 legend .spunit span, #speedBarContainer.theme2 #vehdataMainDiv fieldset {
217 | color: hsl(248, 53%, 58%);
218 | border-color: rgb(100, 0, 12);
219 | }
220 |
221 | /* Theme #3 */
222 | ...
223 | ...
224 | ...
225 |
226 |
227 |
--------------------------------------------------------------------------------
/css/ideal-image-slider.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Ideal Image Slider v1.5.1
3 | *
4 | * By Gilbert Pellegrom
5 | * http://gilbert.pellegrom.me
6 | *
7 | * Copyright (C) 2014 Dev7studios
8 | * //raw.githubusercontent.com/gilbitron/Ideal-Image-Slider/master/LICENSE
9 | */
10 |
11 | .ideal-image-slider {
12 | position: relative;
13 | overflow: hidden;
14 | }
15 | .iis-slide {
16 | display: block;
17 | bottom: 0;
18 | text-decoration: none;
19 | position: absolute;
20 | top: 0;
21 | left: 0;
22 | width: 100%;
23 | height: 100%;
24 | background-repeat: no-repeat;
25 | background-position: 50% 50%;
26 | background-size: cover;
27 | text-indent: -9999px;
28 | }
29 |
30 | /* Slide effect */
31 | .iis-effect-slide .iis-slide {
32 | opacity: 0;
33 | -webkit-transition-property: -webkit-transform;
34 | -moz-transition-property: -moz-transform;
35 | -o-transition-property: -o-transform;
36 | transition-property: transform;
37 | -webkit-transition-timing-function: ease-out;
38 | -moz-transition-timing-function: ease-out;
39 | -o-transition-timing-function: ease-out;
40 | transition-timing-function: ease-out;
41 | -webkit-transform: translateX(0%);
42 | -ms-transform: translateX(0%);
43 | transform: translateX(0%);
44 | }
45 | .iis-effect-slide .iis-current-slide {
46 | opacity: 1;
47 | z-index: 1;
48 | }
49 | .iis-effect-slide .iis-previous-slide {
50 | -webkit-transform: translateX(-100%);
51 | -ms-transform: translateX(-100%);
52 | transform: translateX(-100%);
53 | }
54 | .iis-effect-slide .iis-next-slide {
55 | -webkit-transform: translateX(100%);
56 | -ms-transform: translateX(100%);
57 | transform: translateX(100%);
58 | }
59 | .iis-effect-slide.iis-direction-next .iis-previous-slide,
60 | .iis-effect-slide.iis-direction-previous .iis-next-slide { opacity: 1; }
61 |
62 | /* Touch styles */
63 | .iis-touch-enabled .iis-slide { z-index: 1; }
64 | .iis-touch-enabled .iis-current-slide { z-index: 2; }
65 | .iis-touch-enabled.iis-is-touching .iis-previous-slide,
66 | .iis-touch-enabled.iis-is-touching .iis-next-slide { opacity: 1; }
67 |
68 | /* Fade effect */
69 | .iis-effect-fade .iis-slide {
70 | -webkit-transition-property: opacity;
71 | -moz-transition-property: opacity;
72 | -o-transition-property: opacity;
73 | transition-property: opacity;
74 | -webkit-transition-timing-function: ease-in;
75 | -moz-transition-timing-function: ease-in;
76 | -o-transition-timing-function: ease-in;
77 | transition-timing-function: ease-in;
78 | opacity: 0;
79 | }
80 | .iis-effect-fade .iis-current-slide {
81 | opacity: 1;
82 | z-index: 1;
83 | }
84 | /*
85 | * Ideal Image Slider Default Theme
86 | * Version: 1.2.0
87 | */
88 |
89 | .ideal-image-slider {
90 | background-color: #fff;
91 | background-image: url("data:image/gif;base64,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");
92 | background-repeat: no-repeat;
93 | background-position: 50% 50%;
94 | background-size: 32px 32px;
95 | }
96 |
97 | /* Navigation */
98 | .iis-previous-nav,
99 | .iis-next-nav {
100 | position: absolute;
101 | top: 50%;
102 | z-index: 20;
103 | display: block;
104 | width: 60px;
105 | height: 60px;
106 | text-indent: -9999px;
107 | background-repeat: no-repeat;
108 | background-color: rgba(0,0,0,0.5);
109 | border-radius: 50px;
110 | background-size: 48px 48px;
111 | cursor: pointer;
112 | opacity: 0;
113 | -webkit-transform: translateY(-50%);
114 | -ms-transform: translateY(-50%);
115 | transform: translateY(-50%);
116 | -webkit-transition: 0.3s ease-out;
117 | -moz-transition: 0.3s ease-out;
118 | -o-transition: 0.3s ease-out;
119 | transition: 0.3s ease-out;
120 | }
121 | .iis-previous-nav {
122 | left: 5%;
123 | background-position: 35% 50%;
124 | background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBvbHlnb24gZmlsbD0iI2ZmZmZmZiIgaWQ9InN2Z18xIiBwb2ludHM9IjM1MiwxMTUuNCAzMzEuMyw5NiAxNjAsMjU2IDMzMS4zLDQxNiAzNTIsMzk2LjcgMjAxLjUsMjU2ICIvPgogPC9nPgo8L3N2Zz4=");
125 | }
126 | .iis-next-nav {
127 | right: 5%;
128 | background-position: 65% 50%;
129 | background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBvbHlnb24gZmlsbD0iI2ZmZmZmZiIgaWQ9InN2Z18xIiBwb2ludHM9IjE2MCwxMTUuNCAxODAuNyw5NiAzNTIsMjU2IDE4MC43LDQxNiAxNjAsMzk2LjcgMzEwLjUsMjU2ICIvPgogPC9nPgo8L3N2Zz4=");
130 | }
131 | .ideal-image-slider:hover .iis-previous-nav,
132 | .ideal-image-slider:hover .iis-next-nav { opacity: 0.5; }
133 | .ideal-image-slider:hover .iis-previous-nav:hover,
134 | .ideal-image-slider:hover .iis-next-nav:hover { opacity: 1.0; }
135 |
136 | /* Bullet Navigation */
137 | .iis-bullet-nav {
138 | position: absolute;
139 | bottom: 5%;
140 | right: 5%;
141 | z-index: 15;
142 | width: 90%;
143 | text-align: right;
144 | opacity: 0.4;
145 | -webkit-transition: 0.3s ease-out;
146 | -moz-transition: 0.3s ease-out;
147 | -o-transition: 0.3s ease-out;
148 | transition: 0.3s ease-out;
149 | }
150 | .iis-has-captions .iis-bullet-nav { max-width: 42%; }
151 | .iis-bullet-nav a {
152 | font-size:0;
153 | display: inline-block;
154 | width: 10px;
155 | height: 10px;
156 | background: transparent;
157 | text-indent: 9999px;
158 | margin: 0 5px;
159 | border: 3px solid rgba(0,0,0,0.5);
160 | border-radius: 10px;
161 | cursor: pointer;
162 | -webkit-transition: 0.3s ease-out;
163 | -moz-transition: 0.3s ease-out;
164 | -o-transition: 0.3s ease-out;
165 | transition: 0.3s ease-out;
166 | }
167 | .iis-bullet-nav a.iis-bullet-active,
168 | .iis-bullet-nav a:hover { background: #fff; }
169 | .ideal-image-slider:hover .iis-bullet-nav { opacity: 0.7; }
170 | .ideal-image-slider:hover .iis-bullet-nav:hover { opacity: 1.0; }
171 |
172 | /* Captions */
173 | .iis-has-captions .iis-slide { text-indent: 0; }
174 | .iis-caption {
175 | position: absolute;
176 | left: 5%;
177 | bottom: 5%;
178 | max-width: 90%;
179 | z-index: 10;
180 | background: #000;
181 | background: rgba(0,0,0,0.5);
182 | padding: 5px 15px;
183 | border-radius: 10px;
184 | font: 14px/1.6em "Helvetica Neue", Helvetica, Arial, sans-serif;
185 | color: #fff;
186 | -webkit-box-sizing: border-box;
187 | -moz-box-sizing: border-box;
188 | box-sizing: border-box;
189 | }
190 | .iis-has-bullet-nav .iis-caption { max-width: 42%; }
191 | .iis-caption .iis-caption-title { font-weight: bold; }
192 | .iis-caption .iis-caption-content {
193 | font-size: 13px;
194 | line-height: 1.6em;
195 | color: #eee;
196 | }
197 | .iis-caption .iis-caption-content a,
198 | .iis-caption .iis-caption-content a:visited {
199 | color: #eee;
200 | text-decoration: underline;
201 | border: 0;
202 | }
203 | .iis-caption .iis-caption-content a:hover,
204 | .iis-caption .iis-caption-content a:active {
205 | color: #fff;
206 | }
207 | ul, ul li {
208 | list-style: none;
209 | margin: 20px 0;
210 | }
211 | .iis-bullet-nav {
212 | right: 1%;
213 | bottom: 1%;
214 | opacity: 0.001
215 | }
216 | .iis-bullet-nav a {
217 | background: #fff;
218 | width:15px;
219 | height:15px;
220 | }
221 |
222 | .iis-bullet-nav a.iis-bullet-active, .iis-bullet-nav a:hover {
223 | background: #000;
224 | border-color: #fff;
225 | }
226 |
--------------------------------------------------------------------------------
/js/prism.js:
--------------------------------------------------------------------------------
1 | /* PrismJS 1.13.0
2 | http://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+bash */
3 | var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(w instanceof s)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join("");var l={type:e.type,content:r.stringify(e.content,t,a),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:a};if(e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o=Object.keys(l.attributes).map(function(e){return e+'="'+(l.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+(o?" "+o:"")+">"+l.content+""+l.tag+">"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
4 | Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;
5 | Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(
',controlattrs:{offsetx:5,offsety:15},anchorkeyword:"#top",state:{isvisible:!1,shouldvisible:!1},scrollup:function(){this.$control.animate({opacity:0,bottom:"100%"},300);this.cssfixedsupport||this.$control.css({opacity:0});var t=isNaN(this.setting.scrollto)?this.setting.scrollto:parseInt(this.setting.scrollto);t="string"==typeof t&&1==jQuery("#"+t).length?jQuery("#"+t).offset().top:0,this.$body.animate({scrollTop:t},this.setting.scrollduration);this.$control.css({bottom:"100px"})},keepfixed:function(){var t=jQuery(window),o=t.scrollLeft()+t.width()-this.$control.width()-this.controlattrs.offsetx,s=t.scrollTop()+t.height()-this.$control.height()-this.controlattrs.offsety;this.$control.animate({left:o+"px",top:s+"px"})},togglecontrol:function(){var t=jQuery(window).scrollTop();this.cssfixedsupport||this.keepfixed(),this.state.shouldvisible=t>=this.setting.startline?!0:!1,this.state.shouldvisible&&!this.state.isvisible?(this.$control.stop().animate({opacity:1},this.setting.fadeduration[0]),this.state.isvisible=!0):0==this.state.shouldvisible&&this.state.isvisible&&(this.$control.stop().animate({opacity:0,bottom:"15px"},this.setting.fadeduration[1]),this.state.isvisible=!1)},init:function(){jQuery(document).ready(function(t){var o=scrolltotop,s=document.all;o.cssfixedsupport=!s||s&&"CSS1Compat"==document.compatMode&&window.XMLHttpRequest,o.$body=t(window.opera?"CSS1Compat"==document.compatMode?"html":"body":"html,body"),o.$control=t('
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |