Toggle Functionality.

Hi All,
I have a scenario where I have to implement a toggle functionality. When the toggle is in collapsed mode there is some images and read-only data displayed next to ">" icon.
When I click ">" and bring it in expand mode, the previous images and read-only should not be visible, and some new SelectOneChoice and TextBox should be displayed. Also there is a button in the Expand mode which on click , produces a component just like the one mentioned with the same expand and collapsed functionality. Again on clicking the toggle button, the previous images and read-only data should be displayed back.
Note All read-only data and SelectOneChoice data is coming from DataControl(Web-Serviced Based).
Jdeveloper Version 11.1.5..
Please help its very critical...

What component are you using for the '>' link .. is it a simple commandLink or the expand and collpaseIcons of panelHeader/showDetail etc ?
You can use the af:switcher component and place the components which would be rendered on expand in one facet and the ones which need to be hidden on expand in another facet.
Then in the action Listener /Disclosure Listener of your Toggle .. you can set Boolean variables which will render a particular facet which can be mentioned in the switchers facetName property
http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_switcher.html

Similar Messages

  • Permanently toggle function of F1 & F2 only?

    I know you can toggle the function keys between their special modes and normal F1-12 operation with the setting in the keyboard control panel, but is it possible to just flip F1 and F2 from being brightness control (which does nothing on a mac pro with a wired keyboard...) to F1 and F2, leaving the other buttons as is for special functions? I could really use those buttons, but I prefer all the others as their special mode...

    Go in to System Preferences and click on Keyboard and Mouse. On the first tab there's an option to use the F buttons as standard function keys (and you can use the fn button to use their "mac" functions such as volume and brightness)
    Hope this helps.

  • Firefox can't execute a spoiler toggle function in forums

    Hi,
    On this forum http://www.overclock.net/t/1384767/official-the-korean-pls-monitor-club-qnix-x-star, there is a spoiler toggle list, for example "FAQ", "Monitor Specs"...
    Basically I can't see the content of each spoiler by clicking "+" or "click to show". When I click the page goes up to the top instead of extending the list.
    I disabled AdblockPlus & Ghostery on this website, removed the cache, reloaded, tried in "private mode", disabled "firefox website not secure" feature...
    No problem with IE11 & Chrome 31
    Can you please have a look at this problem?
    Thanks in advance

    Hello,
    '''Try Firefox Safe Mode''' to see if the problem goes away. [[Troubleshoot Firefox issues using Safe Mode|Firefox Safe Mode]] is a troubleshooting mode that turns off some settings and disables most add-ons (extensions and themes).
    ''(If you're using an added theme, switch to the Default theme.)''
    If Firefox is open, you can restart in Firefox Safe Mode from the Help menu by clicking on the '''Restart with Add-ons Disabled...''' menu item:<br>
    [[Image:FirefoxSafeMode|width=520]]<br><br>
    If Firefox is not running, you can start Firefox in Safe Mode as follows:
    * On Windows: Hold the '''Shift''' key when you open the Firefox desktop or Start menu shortcut.
    * On Mac: Hold the '''option''' key while starting Firefox.
    * On Linux: Quit Firefox, go to your Terminal and run ''firefox -safe-mode'' <br>(you may need to specify the Firefox installation path e.g. /usr/lib/firefox)
    ''Once you get the pop-up, just select "'Start in Safe Mode"''
    [[Image:Safe Mode Fx 15 - Win]]
    '''''If the issue is not present in Firefox Safe Mode''''', your problem is probably caused by an extension, and you need to figure out which one. Please follow the [[Troubleshoot extensions, themes and hardware acceleration issues to solve common Firefox problems]] article to find the cause.
    ''To exit Firefox Safe Mode, just close Firefox and wait a few seconds before opening Firefox for normal use again.''
    When you figure out what's causing your issues, please let us know. It might help others with the same problem.
    Thank you.

  • Service name for Wireless (Function + F8) toggle

    I think I set the wireless toggle (Function + F8) feature on my laptop to only start manually from Services.msc.
    I would like it back now! I've looked and cant seem to find it. What is the name?
    By the way, the little Toshiba screen that pops up when you hit the FN key does not display. However I am able to control the brightness still with the FN + F6/F7 keys. So I'm not sure...
    Thanks
    Satellite C655D-S5084
    Solved!
    Go to Solution.

    Some of the functions seem to be linked to a "Flash Cards" application, maybe look for something like that.

  • Old Themes - 'Portfolio B&W' - Menu Toggle is WACKY

    Hello Hello
    I'm using FCEHD, and have created 4 DV clips that I exported into the Movies Folder.
    I've tried repeated to create a properly functioning Menu and it's not going well .....
    I'm using an Old Theme template called: B&W Portfolio
    I drag the clips into the template and when I try to adjust and edit the Menu Buttons (using preview), I can't get the up-right-left-bottom toggle functions to work properly. And of course this malfunction is transfered onto a burned disc. The remote control on the DVD player also gets SCREWY
    What the heck could be going on??
    Guess I'll try using a different Menu Template, but it seems (I've already discovered), that the other templates that don't have the motion thumbnail style, seem to respond correctly (toggle correctly)
    Ummm??

    Hi and thank you for your reply
    The problem is that at least ONE of the thumnail images
    (buttons), cannot be reached easily. Cannot be accessed by the remote control button. It does seem I can pretty much get three of them to work properly, but I can't get to the 4th button to work.
    Let me try to be very specific:
    As I mentioned, I would prefer to use the template called 'B&W Portfolio'. I would love to be able to drag 4 movie clips into the template. The template itself is designed for a maximum of 5 movie clips, so this SHOULDN'T be a problem.
    Everytime I try to rearrange the buttons, to try to get them to work properly, it seems that NO matter what configuration I try, (using the 'free-style' technique),
    the buttons will NOT respond in the correct manner.
    The controls will NOT toggle over to at least ONE particular button, (one particular thumnail).
    And this is reflected in both the 'preview control', and on the actual burned disc.
    It's frustrating ....
    And as I said, this problem doesn't seem to appear on the other template types, (especially the templates that do not have the moving thumnails - previews).
    Help

  • 1.5.4. "Toggle SQL Worksheet Area" not found

    In 1.5.3. there was a very usefull shortcut for "Toggle SQL Worksheet Area", but I couldn't find it in Version 1.5.4. Is there a similar functionality now in 1.5.4?
    Enhancement request: Maybe this "Toggle" functionality can be improved to "Toggle and set the focus/cursor into the result set/SQL Worksheet". Then it's more easy just to work with the keyboard. Otherwise you have to mouse-click into the result set to navigate through the data. Would be nice to have this feature.
    Edited by: user4125343 on 04.03.2009 10:25

    I have personally found it useful when the feature is debated here before being put on the feature request page. Or at least having the url of the OTN forum discussion in the feature request.
    Now a tip. If you can assign SqlHistory's default accelerator F8 to something else, to free up F8 in worksheet...while in ScriptOutput tab hit F8 and the use up/down arrow keys to move the splitpane.
    This comes from Java Swing, is not perfect for worksheet, nonetheless nice to know.
    -Raghu

  • Spry effect Appear/Fade don't toggle

    Ok.
    I have applied a simple, basic, no more basic then this
    cannot be possible, Appear/Fade using the effects behaviors menu in
    DW.
    I have turn on the Toggle option and I said: "appear from 0
    to 100".
    Well the result is this:
    http://www.cantinho.org/admin/cantinho/showhide.php
    Note: I can make a CSS to make the element disapear at the
    beginning, but why should I need that if I have configured to show
    from 0 to 100% ?
    What I'm missing here?
    Thanks.

    I have been having a similar problem, and I thought your fix
    might help my problem, but after downloading and running it, I'm
    still getting the same thing. I'm trying to use effectAppearFade to
    make a target link appear when another link is clicked. In order
    for it to appear, I evidently need to not hide it in CSS Styles,
    but then when the page first opens, the target link is visible. I
    can almost make it work by fading it from 100 to 0 in an onload
    operation on the body of the page. The appear logic then works fine
    and even toggles okay if I turn that on, but, when the page first
    loads, the link that I'm hiding flashes briefly before it
    disappears. I've also tried using changeProp in the body's onload
    code to hide the target link, but it seems that whatever I have set
    the property to in CSS Styles overrides whatever I do in the
    onload. I've also tried controlling its visibility with the display
    property with the same result. So far, I haven't found a way to
    hide the target link before the page has loaded and then fade it to
    0 before making it visible or in any other way to start the target
    link hidden and have it appear when I click the link with the
    AppearFade effect for it. Do you know what I'm doing wrong?
    Thanks for any help you can give me.
    Here's the code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8" />
    <title>Home</title>
    <style type="text/css">
    <!--
    body,td,th {
    font-family: Times New Roman, Times, serif;
    color: #000099;
    visibility: inherit;
    body {
    background-color: #CCCC99;
    a:link {
    color: #000099;
    text-decoration: none;
    a:visited {
    color: #000099;
    text-decoration: none;
    .style1 {
    font-size: xx-large;
    font-style: italic;
    font-weight: bold;
    a:hover {
    text-decoration: none;
    a:active {
    text-decoration: none;
    visibility: inherit;
    .style4 {font-style: italic; font-size: xx-large;}
    .style5 {
    font-size: 16px;
    font-weight: bold;
    visibility: visible;
    display: block;
    -->
    </style>
    <script src="SpryAssets/SpryEffects.js"
    type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    function MM_popupMsg(msg) { //v1.0
    alert(msg);
    function MM_effectAppearFade(targetElement, duration, from,
    to, toggle)
    Spry.Effect.DoFade(targetElement, {duration: duration, from:
    from, to: to, toggle: toggle});
    function MM_showHideLayers() { //v9.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3)
    with (document) if (getElementById &&
    ((obj=getElementById(args
    ))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style;
    v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
    function MM_changeProp(objId,x,theProp,theValue) { //v9.0
    var obj = null; with (document){ if (getElementById)
    obj = getElementById(objId); }
    if (obj){
    if (theValue == true || theValue == false)
    eval("obj.style."+theProp+"="+theValue);
    else eval("obj.style."+theProp+"='"+theValue+"'");
    //-->
    </script>
    </head>
    <body
    onload="/*MM_changeProp('#ArtLinks','','visibility','hidden','DIV');*/
    MM_effectAppearFade('#ArtLinks', 0, 100, 0, false)/*;
    MM_changeProp('#ArtLinks','','visibility','visible','DIV')*/">
    <div>
    <table width="100%" height="477" border="0"
    cellpadding="0" cellspacing="0">
    <tr>
    <td width="22%" valign="top"> </td>
    <td width="56%" valign="top"><p align="center"
    class="style1"> </p>
    <p align="center" class="style1"><a
    href="TechnologyMainFrame.html" title="Technology" class="style1"
    accesskey="t">The Promise of
    <u>T</u>echnology</a></p>
    <p align="center" class="style1">and</p>
    <p align="center"><strong><span
    class="style4"><a href="javascript:;" title="Art"
    class="style4" accesskey="a"
    onclick="MM_effectAppearFade('#ArtLinks', 1000, 0, 100,
    true)">The <u>A</u>rt of Life</a></span>
    </strong></p></td>
    <td width="22%" valign="top"><p
    align="center"> </p>
    <div class="style5" id="#ArtLinks">
    <p align="center" class="style5"><em><a
    href="Poems.php"><u>P</u>oems</a></em></p>
    <p align="center" class="style5"><em><a
    href="Story.php"><u>S</u>tory</a></em></p>
    </div></td>
    </tr>
    </table>
    </div>
    </body>
    </html>

  • Listening for external function calls

    I am trying to get a global nav thats in the html page that my Edge Comp is embedded in to run function to talk to my Edge comp and excecute a function I have setup within my Edge comp.
    Make sense?
    Inside my Edge Comp within the composition ready I have a simple function:
    sym.MuteSound = function()
              console.log("Mute is listening");
    and within the page that the comp is housed in I have a toggle function:
                                     function togglePause(toggle) {
                                               console.log("TogglePause is Working");
                                               sym.MuteSound();
                                          * Global pause/mute toggle.  Insert any custom code needed to interact with this
                                          * to mute, pause or do anything in particular while the nav is open.
                                          * Accepts a boolean value: true = pause, false = unpause
                                          * This is called automatically when the navigation is opened or closed.
    The togglePause is fireing off correctly but its not excecuting the sym.MuteSound(); function thats inside of my Edge Comp...
    Does anyone know how I should properly structure it so that they can play nice?

    Hi there,
    Check out this stackoverflow thread- it talks about how to access a symbol on the Stage, and we should be able to use similar syntax to access a function:
    http://stackoverflow.com/questions/13556152/adobe-edge-control-a-specific-symbol-from-html -page
    Elaine also posted an example:
    https://creative.adobe.com/share/2e160010-41ca-460a-83a6-62b75b3b83bd
    Keep your sym.MuteSound function where you have it at Stage.compositionReady.
    Try this in your html page:
    // this should get you to the Edge Composition's "sym" scope
    var myEdgeAnim = AdobeEdge.getComposition("nameOfYourEdgeCompositionHere");
    function togglePause(toggle) {
              console.log("TogglePause is Working");
         myEdgeAnim.MuteSound();

  • [Guide]Making the Logitech G510 Work On Linux!

    Update April 23, 2015: I've got a new keyboard (Corsair K95) so I personally probably won't touch this code ever again if I can help it, however it should be working just fine in it's current state without my dabbling, I've set the code up so that the macros are recorded to script files in /usr/share/g15daemon/macros/ with a provided example script, it should be easy enough to read or modify, and if desired the scripts can be replaced by custom executables. When the buttons on the keyboard are pressed they execute these scripts with a command line argument corresponding to the current M-Key state (so we have different functions for M1, M2 and M3 keys), but I thought this was the easiest and most versatile approach, I feel I've got a lot more freedom to customize the macro keys than I ever did in windows this way. As for the MR Key, it is functioning in that it will record a macro (through Xev) and output it to a text file: /usr/share/g15daemon/macros/Macros by running the MacroRecord script located at /usr/share/g15daemon/macros/MacroRecord, you need to ensure that these scripts are made executable when you install this (unless you use my custom pkgbuild on arch which does this automatically) to use these recorded Macros you just have to copy them over to one of the other scripts (for the respective key you wish to use). The Macro Recording script works for recording most normal macros, but if you try to break it, you will (You should be able to use up to 4 modifier keys on one button press (for a total of 5 buttons held down) without running into any problems, as a limitation) but this script is not complex so it should be easy for anyone using it to open it up and try to improve it or increase the amount of modifier keys supported per macro.
    I was working on a Qt5 application that would allow these files to be edited through a Qt based GUI, which also shows the macros recorded by MR for easily copying them over and saving the file. Everything is done except the save function, if someone asks me in a message, I will finish this application for them or send them the source code once I get it.
    Latest Source (Comes with Arch PKGBUILDs, install with makepkg -i)
    Older Source (Before I coded in the MR key)
    Source of Qt GUI Front-End (I never finished this program, you need qt-creator to open these source files and finish them yourself. Without this program you can just manually edit the files in /usr/share/g15daemon/macros as described below, the only parts that haven't been coded in yet are the save code, and the test button code. It should be easy to do though, there is example code in the saveFiles function which you can use to finish it (comment this function out if you want to compile it before you finish up coding it, this function breaks the code since it is not written in functional code) if you just adjust it based on the loadFiles function that is above it which does work for loading all the files, it should be pretty easy to finish this program up. If you finish coding it, feel free to send me a message so that I can link to your complete sources instead. These sources I'm releasing in public domain (do whatever you want with them) but Qt5 is LGPL 3.0 licensed.)
    There is now a wiki page for this, but it's content is slightly different from this thread and doesn't offer much support for other distributions.
    I have a logitech G510 keyboard, and 2 years back I spent about a week applying several patches I had scoured from around the net as well as making my own modifications as needed to make this work with the old g15daemon drivers (as in, I forked g15daemon, without actually changing the programs name). An alternative to this method is using the gnome15 project (just as g15daemon it is no longer being developed) but I had severe (and quite unacceptable) input lag when I used gnome 15 as well as other major issues and as such I vastly prefer my own method. (Besides I worked hard to make this work, I was toying with source code in a programming language I am not really familiar with (C) and did so non-stop for a week, it'd be a total waste if it wasn't better than the alternative!)
    And on february 11th 2015 I made yet another update to these drivers that made them significantly easier to use (before this time, the source code had to be manually edited and the drivers had to be then recompiled ino rder to edit the functionality of the G-Keys (not to mention the source code was an ugly mess because of this roundabout approach) this had to be done because the g15macro part of g15daemon never worked well with this keyboard, so I decided to hardcode the keys into the drivers as a temporary solution, now I've found a more permanent solution which is redirecting the keypresses to bash scripts. One script file for each button, I will explain how to do this later on.
    Here is the  original thread I made on this if anyone wants to see the ugly mess I went through to get here, luckily that's far behind me now and the code is getting more and more mature over time as I fix it little by little.
    How to do it:
    What you will need to do is apply these patches for libg15 and g15daemon. (If you want to do it the hard way, use the older Hardcode Patch but I don't recommend it unless you really know that you want it, and know why you want it.)
    This can be done on any distro I would assume, for gentoo refer to this thread. To get the sources Download this (latest source) and extract it with unrar, (on arch use makepkg -i to install) in the following order: "libg15 -> libg15render -> g15daemon -> g15stats" (Note: You can edit the macros in the macros folder before installing g15daemon. If you are not on arch you need to manually copy the macros folder to /usr/share/g15daemon/macros/, otherwise the pkgbuild will do it for you. If you are running in another distro you can delete the PKGBUILD file in the folders. I included the unmodified libg15render and g15stats too for the sake of convenience, and as a safety net if they disappear off the face of the internet, which is what they seem to be about to do. If you do not feel like trusting the sources I provided then fear not! the ones I provided are just the original sources (md5sum should match with those found there) (as development for the project seems to have been dropped and these were the final versions ever made) but I assure you, the sources I provided are the original ones downloaded straight from sourceforge. If you are on arch you can use ABS to get the sources from the official repositories and then replace the PKGBUILDs with the ones in my rar (or change them yourself, see wiki). If you want to download your own sources (remember to get my patches too!) then here is an alternative download for the default macros.
    Note: In the arch package there were other patches(config-write, recv-oob-answer and uinput) in the package in the official repositories, I added these three to my own file to avoid clutter, the first two are the first two entries of my file, the third is at line 40-71 (two entries) as a part of the same file where I coded in the G-Keys. Depending on your distro and how you get your hands on the sources you may have to adjust this as these patches may already have been applied for you (meaning mine will fail to patch because of mismatching sources). I have no idea what these patches are actually for (would be nice to know) but I imagine they're there for a reason and as such stuck with them.
    For other distros figure out how to compile packages from the sources (sorry Arch and Gentoo are the only distros I really use so I can't help with others, but I assure you this can be done on all distros. If it comes down to it ask on their forums for help!)
    In the libg15 patch I disabled support for other keyboard models in the first few lines (you will see which if you read the patch) as I suspect many of the changes made might break support for the other devices, but if you want to take your chances just remove the minus sign in front of the device you want to use and hope for the best. If you have a keyboard that was already supported by these drivers, the biggest benefit of getting my version working would be the smoother G-Key functions (since they aren't run through a third party program like g15macro, it's bound to be a little faster and less prone to bugs.) also if you have a G510s and want to try these drivers on that board, you will have to add your keyboards id into this section (or replace the one I added with the appropriate ID for your board) using lsusb to find the right values.
    I couldn't get g15macro to work properly with my keyboard and noticed several issues with it (it seemed like it was underdeveloped to me) so my solution to that problem was originally to hardcode the G-key functionalities into the base drivers; But later on I realized I could instead redirect the code to script files that I would create outside of the install, to avoid the load of pain that comes with hardcoding something you may frequently want to change. These drivers are run as root and as such you must be careful and use sudo where applicable to run the commands as your user rather than as root. By default all G-Key presses will be read as commands from the user with uid "#1000", which is in most cases the first user account created on the system. The bonus from this approach is that the G-Keys work much faster than they would using the g15macro and they are also much more customizable than they ever were in windows, the minus is that you need to know/learn bash/shell scripting in order to use it this way. That or find a way to edit the script files to be in a programming language you understand, but bash scripting is the most convenient since you get all the versatility of a terminal in your keyboard that way.
    To change the colors of your keyboard you need to edit the libg15.patch file below line 338 (//Set keyboard color based on M led state.) The code there uses the basic RGB format, and each M-Key has it's own line. The default is: Dark-ish Blue(M1/Fallback), Dark-ish Red(M2), Dark-ish Green(M3)
    To change the macros, you can (if you installed with my pkgbuild on arch) go to /usr/share/g15daemon/macros/ and within you will find 19 files, an "Example" file (this is like a backup, it's what can be used to reset files back to their defaults if you get lost.) The files are named after the keys they affect, each file has statements for M1, M2 and M3 and then a few extras for errors that uses libnotify for error messages. The default setup also uses libnotify to tell you which key was pressed, and which key was released. If you are not on arch or gentoo and could not install directly from my sources, you will need to either copy the files from my rar to "/usr/share/g15daemon/macros/" and edit them from there, or create them yourself from scratch on that path (the names of the scripts are G# where # is the number of the key, make sure that the files are executable with chmod +x if you are more advanced, you can edit the g15daemon.patch file if the location of the macros isn't to your liking and change the path to the scripts to something more convenient for you (e.g. ".../.config/g15daemon/")
    By default, the scripts will look something like this:
    #!/bin/sh
    declare -i mkey=$(( $2 + 1 ))
    declare -r key="G1"
    #M1
    if [[ "$1" == "on" && $2 -eq 0 ]]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    elif [ $2 -eq 0 ]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    fi
    #M2
    if [[ "$1" == "on" && $2 -eq 1 ]]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    elif [ $2 -eq 1 ]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    fi
    #M3
    if [[ "$1" == "on" && $2 -eq 2 ]]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    elif [ $2 -eq 2 ]; then
    /usr/bin/notify-send $key: 'M'$mkey', state='$1
    fi
    #Else (Errors)
    #If there is no input
    if [[ -z "$@" ]]; then
    /usr/bin/notify-send $key": Error!" 'There was no input'
    fi
    #If M key state is out of range (less than zero or more than 2)
    if [[ $2 -lt 0 || $2 -gt 2 ]]; then
    /usr/bin/notify-send $key": Error!" 'There is no M'$mkey'! (State='$1')'
    fi
    #If the first input variable (on/off) is incorrect. This should never happen.
    if [[ -n "$1" && "$1" != "on" && "$1" != "off" ]]; then
    /usr/bin/notify-send $key": Warning!" '"'$1'" is not a valid state! (M'$mkey'), defaulting to "off".'
    fi
    And here is an example of how the M1-M3 keys could be edited in this file. The "if" statements are events that occur when you press down on the button, and the elif statements are for the key release.
    #M1
    if [[ "$1" == "on" && $2 -eq 0 ]]; then
    thunar /mnt/stash/movies & disown
    fi
    #^elif is not needed and can be erased for this command to avoid the notification of key-release. The & disown part is extremely important, if you forget to add this to the end of every line where you execute a program that will keep running after you release the button, you will not be able to use any G-Keys until you terminate the program. If you remember to add the & disown, everything will be fine.
    #M2
    if [[ "$1" == "on" && $2 -eq 1 ]]; then
    xdotool keydown Ctrl && xdotool keydown Page_Down
    elif [ $2 -eq 1 ]; then
    xdotool keyup Ctrl && xdotool keyup Page_Down
    fi
    #^The above executes the keyboard combo Ctrl+Page Down (Next Tab) and holds these buttons down until your key release is detected.
    #M3
    if [[ "$1" == "on" && $2 -eq 2 ]]; then
    xdotool keydown Super && xdotool keydown F1 && xdotool keyup Super && xdotool keyup F1
    fi
    #^The above is my keyboard shortcut for changing workspaces, (Meta + F1-F6), since I won't ever need to hold these buttons down, I set them up to press and release on keydown, with no need to detect the key release, this is good to do to avoid a bug I mention lower in the guide.
    That's the gist of it, all you need to know. You can test-fire the commands in your terminal before you add them to the files. Recompiling and re-installing the G15Daemon (at least on arch) will overwrite your existing macros in /usr/lib/g15daemon/macros. Last but not least, you should remember the sleep command (for example, to restart g15daemon, do g15daemon -k && sleep 5 && g15daemon this is how you can set up timed commands and macros on your G-Keys as well. I may later on develop a GUI front-end for editing the macros, and program the MR-key to work like it does on Windows, but right now I'm satisfied with what I've got, so that will have to wait.
    You need to know:
    -The g15daemon service should be started after X11/Xorg-Server is started or any commands that require X (like opening a folder, or graphical notifications) will not work. (You can either just wait till you log in and use xinitrc or an autostart script for your desktop environment to start the service, or you can set up a restart script which kills the original instance (g15daemon -k) and starts a new one, this may be good to know if you would like the service to be started on bootup so you wont have to look at white leds until you have logged in. You can use sudo to run these services as a user). You can also try to have the g15daemon initiate after your display manager loads. (For example make the initscript depend on kdm if you're using kde, I have not tried this though)
    Add this to the sudo configuration with visudo so you can run the g15daemon with sudo and no password (this should work on most distros, if not find the executable, could be in sbin (is on gentoo) like so: "/usr/sbin/g15daemon")
    ALL ALL = (root) NOPASSWD: /usr/bin/g15daemon
    (You can replace the first "ALL" with a username or % group if you want to limit the command to just one user)
    -I have not tested the headphone/mic plugs on the keyboard (please do comment your results if you try to use that)
    -This is not completely bug free.
    -There is no support for tracking launched/focused application and changing the M-Key mode depending on what you are doing (this would be useful though)
    -The MR key is not supported, but the LED works.
    Known Issues: (ordered by severity, if you want to contribute fixing these issues is the best thing you can do to help as I seem incapable of it)
    Sometimes the Key Release of G keys is not detected (this means if you have a key bound to the button that is held until the key is released, the release may not be detected properly. This only happens if you press the key quickly, not if you hold it for a short period before releasing it this is solved by either pressing the key again, or not relying on the key-release state, the latter is fairly easy to do as you can use "variables" and "if"s and "do/while" or "for" in C to set keys with toggle functions.
    Keypress detection for the G-Keys isn't 100% reliable, it will work completely fine 95% of the time or so, but sometimes (usually only if a G key has not been pressed in a while) the key needs to be pressed twice (This was much worse when g15macro was used and the keys almost always had to be pressed twice if I recall correctly). This may look like it's a huge bother at first, but really I hardly ever notice this when I'm using the keyboard and it is a very rare occurance.
    The Volume Wheel is erratic, I used patches from the net to make the wheel work but the wheel was unusable, I managed to make it just barely usable but I wouldn't call it "reliable" in it's current state. It does however work "ok". The wheel worked fine with generic keyboard drivers so maybe there is something in there to shed light on how to make them properly work (remember that there was a bit in libg15.c that made the wheel work, the other half of it is in uinput.c)
    The M-Key leds (M1, M2 and M3) will not light up until a G-Key or one of the M keys is pressed (very minor, I tried to fix this but failed, gave up since it's not really important)
    Run "g15daemon -d" for debug mode to see output from the driver when it is running you will repeatedly get the following error, I have no idea what this is but I do not like it
    libg15: Unknown usb error: Keyboard Read !! (err is -75 (Value too large for defined data type))
    look around line 471 of the patched libg15.c to see where the error is being printed from.
    Terminating the g15daemon (g15daemon -k) will render the keyboard unusable and can result in bugs (for example your next keypress may be detected but release will not be detected) so be careful when doing something like that. Unplugging the keyboard and plugging it back in solves this issue.
    Scroll-Lock led does not work (this is not specific to this keyboard, it is a Linux problem and affects all keyboards as far as I am aware)
    I personally prefer using this keyboard in Linux over using it in Windows because of how much more configurable it is (there's nothing I can't do with the press of a button now) and switching workspaces with just one button each for a total of 6 is a joy!
    Feel free to comment below with any questions or thoughts, any suggestions to improve the code or other contributions are greatly appreciated! I am not skilled in C programming and as such some of my code may look hideous to those who would know what they're doing so better ways to achieve the same results will not be ignored either and I will add any significant updates to the OP when I see them.
    Good Luck and Enjoy
    PS: I know the libg15 patch is rather "unclean" (contains a lot of redundant patches, i.e. replacing a line with the same line) but I was too lazy to clean it up. I tried once but it did not work out so well
    If you have a G510s and this did not work for you, I may be able to help you get that working, comment if you want help with that (the first step to try is on the wiki)
    Last edited by rabcor (2015-05-08 14:41:34)

    Major Update: The G-Keys can now be edited without recompiling by editing shell scripts at "/usr/share/g15daemon/macros/"
    Each button has it's own script file named by it's label (e.g. to edit the functionality of G1, open the script named G1.) The button will try to execute the scripts as programs, so make sure they are executable (chmod +x) and as long as the name remains the same, if you want to replace the files with something different, know that the arguments currently given to the files ($1 and $2) are ($1)on/off and ($2)0-2  (where 0 is M1 and 2 is M3)
    To download the updated sources, go here (only the g15daemon source/patch was updated). This thread's OP has been updated.
    Last edited by rabcor (2015-02-12 04:46:48)

  • Hello i am trying to fix a phone that my gf forgot her puk and pin

    it says this
    play,persistOnClick:la.persistOnClick||ma.persistOnClick});ka.setAttribute('data -hover','tooltip');}function ha(ka,la){ja.set(ka,"Loading...");new h(la).setHandler(function(ma){ja.set(ka,ma.getPayload());}).setErrorHandler(r). send();}var ia;g.listen(document.documentElement,'mouseover',function(event){ia=event;v(fun ction(){ia=null;});});var ja={process:function(ka,la){if(!m.contains(ka,la))return;if(ka!==x){var ma=ka.getAttribute('data-tooltip-uri');if(ma){ka.removeAttribute('data-tooltip- uri');ha(ka,ma);}var na=ka.getAttribute('data-tooltip-delay');if(na){na=parseInt(na,10)||1000;ja._sh owWithDelay(ka,na);}else ja.show(ka);}},remove:function(ka){l.remove(ka,'tooltip');ka.removeAttribute('d ata-hover');ka.removeAttribute('data-tooltip-position');ka.removeAttribute('data -tooltip-alignh');ka===x&&ja.hide();},hide:function(){if(x){aa.hide();x=null;whi le(ca.length)ca.pop().remove();}},set:function(ka,la,ma,na){if(ma||na)ga(ka,{pos ition:ma,alignH:na});if(la instanceof o){if(ka===x){ha(ka,la);}else ka.setAttribute('data-tooltip-uri',la);}else{if(m.isTextNode(la))la=s(la);var oa=false;if(typeof la!=='string'){la=m.create('div',{},la);ka.setAttribute('aria-label',s(la));}el se{ka.setAttribute('aria-label',la);oa=la==='';}ga(ka,{content:la,suppress:oa}); ka===x&&ja.show(ka);}},propsFor:function(ka){return {'aria-label':ka,'data-hover':'tooltip'};},enableDisplayOnOverflow:function(ka) {ka.removeAttribute('data-tooltip-display');ga(ka,{overflowDisplay:true});},enab lePersistOnClick:function(ka){ka.removeAttribute('data-pitloot-persistOnClick'); ga(ka,{persistOnClick:true});},suppress:function(ka,la){ga(ka,{suppress:la});},s how:function(ka){ea();ja.hide();var la=fa(ka);if(la.suppress)return;var ma=la.content;if(la.overflowDisplay){if(ka.offsetWidth>=ka.scrollWidth)return;i f(!ma)ma=s(ka);}if(!ma)return;var na=0,oa=0;if(la.position==='left'||la.position==='right'){oa=(ka.offsetHeight-2 8)/2;}else if(la.alignH!=='center'){var pa=ka.offsetWidth;if(pa<32)na=(pa-32)/2*(la.alignH==='right'?-1:1);}aa.setConte xtWithBounds(ka,t(ka,ia&&p.getEventPosition(ia))).setOffsetX(na).setOffsetY(oa). setPosition(la.position).setAlignment(la.alignH);if(typeof ma==='string'){k.addClass(aa.getRoot(),'invisible_elem');var qa=m.create('span',{},u(ma)),ra=m.create('div',{className:'tooltipText'},qa);m. setContent(ba,ra);aa.show();var sa;if(ra.getClientRects){var ta=ra.getClientRects()[0];if(ta)sa=Math.round(ta.right-ta.left);}if(!sa)sa=ra.o ffsetWidth;if(sa<qa.offsetWidth){k.addClass(ra,'tooltipWrap');aa.updatePosition( );}k.removeClass(aa.getRoot(),'invisible_elem');}else{m.setContent(ba,ma);aa.sho w();}var ua=function(wa){if(!m.contains(x,wa.getTarget()))ja.hide();};ca.push(g.listen(d ocument.documentElement,'mouseover',ua),g.listen(document.documentElement,'focus in',ua));var va=n.getScrollParent(ka);if(va!==window)ca.push(g.listen(va,'scroll',ja.hide)); if(!la.persistOnClick)ca.push(g.listen(ka,'click',ja.hide));x=ka;},_showWithDela y:function(ka,la){if(ka!==y)ja._clearDelay();if(!z){var ma=function(na){if(!m.contains(y,na.getTarget()))ja._clearDelay();};da.push(g.l isten(document.documentElement,'mouseover',ma),g.listen(document.documentElement ,'focusin',ma));y=ka;z=setTimeout(function(){ja._clearDelay();ja.show(ka);},la); }},_clearDelay:function(){clearTimeout(z);y=null;z=null;while(da.length)da.pop() .remove();}};g.listen(window,'scroll',ja.hide);e.exports=ja;},null);
    __d("TooltipMixin",["React","Tooltip","DOM"],function(a,b,c,d,e,f,g,h,i){functio n j(l){var m=l.tooltip;return m!=null&&typeof m!=='string';}var k={propTypes:{tooltip:g.PropTypes.oneOfType([g.PropTypes.element,g.PropTypes.st ring]),position:g.PropTypes.oneOf(['above','below','left','right']),alignH:g.Pro pTypes.oneOf(['left','center','right'])},getInitialState:function(){return {tooltipContainer:j(this.props)?i.create('div'):null};},componentWillReceivePro ps:function(l){var m=j(l),n=this.state.tooltipContainer;if(n&&!m){this.setState({tooltipContainer: null});}else if(!n&&m)this.setState({tooltipContainer:i.create('div')});},componentDidMount: function(){this._updateTooltip();},componentDidUpdate:function(l,m){if(m.tooltip Container&&!this.state.tooltipContainer)this._cleanupContainer(m.tooltipContaine r);this._updateTooltip();},_updateTooltip:function(){var l;if(j(this.props)){l=this.state.tooltipContainer;g.render(this.props.tooltip,l );}else l=this.props.tooltip;if(l!=null){h.set(this.getDOMNode(),l,this.props.position, this.props.alignH);}else h.remove(this.getDOMNode());},componentWillUnmount:function(){if(this.state.too ltipContainer)this._cleanupContainer(this.state.tooltipContainer);h.remove(this. getDOMNode());},_cleanupContainer:function(l){g.unmountComponentAtNode(l);}};e.e xports=k;},null);
    __d("TooltipLink.react",["React","TooltipMixin"],function(a,b,c,d,e,f,g,h){var i=g.createClass({displayName:"TooltipLink",mixins:[h],render:function(){return g.createElement("a",g.__spread({},this.props),this.props.children);}});e.export s=i;},null);
    __d("UnicodeBidi",["Locale","UnicodeBidiDirection"],function(a,b,c,d,e,f,g,h){"u se strict";var i={L:'A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF'+'\u200E\u2 C00-\uD7FF\uE000-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF',R:'\u05BE\u05C0\u05C3\u05C6\u 05D0-\u05EA\u05F0-\u05F2\u05F3-\u05F4'+'\u07C0-\u07C9\u07CA-\u07EA\u07F4-\u07F5\ u07FA\u0800-\u0815\u081A\u0824'+'\u0828\u0830-\u083E\u0840-\u0858\u085E\u200F\uF B1D\uFB1F-\uFB28'+'\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uF B46-\uFB4F',AL:'\u0608\u060B\u060D\u061B\u061C\u061E-\u061F\u0620-\u063F\u0640'+ '\u0641-\u064A\u066D\u066E-\u066F\u0671-\u06D3\u06D4\u06D5\u06E5-\u06E6'+'\u06EE -\u06EF\u06FA-\u06FC\u06FD-\u06FE\u06FF\u0700-\u070D\u070F\u0710'+'\u0712-\u072F \u074D-\u07A5\u07B1\u08A0\u08A2-\u08AC\uFB50-\uFBB1'+'\uFBB2-\uFBC1\uFBD3-\uFD3D \uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB'+'\uFDFC\uFE70-\uFE74\uFE76-\uFEFC'},j=i .L+i.R+i.AL,k=i.R+i.AL,l=new RegExp('['+j+']'),m=new RegExp('['+k+']');function n(t){var u=l.exec(t);if(!u)return h.NEUTRAL;var v=m.exec(u[0]);return v?h.RTL:h.LTR;}function o(t,u){u=u||h.NEUTRAL;if(!t.length)return u;var v=n(t);return (v===h.NEUTRAL)?u:v;}function p(t,u){if(!u||!h.isStrong(u))u=g.getDirection();return o(t,u);}function q(t,u){return p(t,u)===h.LTR;}function r(t,u){return p(t,u)===h.RTL;}var s={firstStrongCharDir:n,resolveBlockDir:o,getDirection:p,isDirectionLTR:q,isDir ectionRTL:r};e.exports=s;},null);
    __d("isRTL",["UnicodeBidi","UnicodeBidiDirection"],function(a,b,c,d,e,f,g,h){fun ction i(j){return g.getDirection(j)===h.RTL;}e.exports=i;},null);
    __d("UFILikeSentenceText.react",["ActorURI","HovercardLinkInterpolator","Profile BrowserLink","ProfileBrowserTypes","React","TextWithEntities.react","URI","cx"], function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(q,r,s,t,u){if(u.count!=null){var v=j.LIKES,w={id:q.targetfbid,actorid:q.actorid},x=[],y;for(var z=0;z<s.length;z++)if(!s[z].count){y=s[z];var aa=y.entity;x.push(aa.id);}var ba=new m('/ajax/like/tooltip.php').setQueryData({comment_fbid:q.targetfbid,comment_fro m:q.actorforpost,seen_user_fbids:x.length?x:true});ba=g.create(ba,q.actorforpost );return (k.createElement("a",{className:((r?"UFILinkBold":'')),rel:"dialog",ajaxify:i.c onstructDialogURI(v,w).toString(),href:i.constructPageURI(v,w).toString(),"data- hover":"tooltip","data-tooltip-alignh":"center","data-tooltip-uri":ba.toString() ,role:"button"},t));}else return h(t,u,null,null,'ufi',r);}var p=k.createClass({displayName:"UFILikeSentenceText",propTypes:{contextArgs:k.Pro pTypes.object.isRequired,feedback:k.PropTypes.object.isRequired,likeSentenceData :k.PropTypes.object.isRequired},render:function(){var q=this.props.feedback,r=this.props.likeSentenceData,s;s=o;s=s.bind(null,q,this. props.contextArgs.userevisedufi,r.ranges);return (k.createElement(l,{interpolator:s,ranges:r.ranges,aggregatedRanges:r.aggregate dranges,text:r.text}));}});e.exports=p;},null);
    __d("UFIReplyLink.react",["React","fbt"],function(a,b,c,d,e,f,g,h){var i=g.createClass({displayName:"UFIReplyLink",propTypes:{onClick:g.PropTypes.func },render:function(){return (g.createElement("a",{className:"UFIReplyLink",href:"#",onClick:this.props.onCl ick},"Reply"));}});e.exports=i;},null);
    __d("Image.react",["Image.react-upstream"],function(a,b,c,d,e,f,g){e.exports=g;} ,null);
    __d("CloseButton.react",["React","Image.react","cx","joinClasses"],function(a,b, c,d,e,f,g,h,i,j){var k=g.createClass({displayName:"CloseButton",render:function(){var l=this.props,m=l.size||'medium',n=l.appearance||'normal',o=m==='small',p=m==='h uge',q=n==='dark',r=n==='inverted',s=l.ajaxify||null,t=l.rel||null,u=(("uiCloseB utton")+(o?' '+"uiCloseButtonSmall":'')+(p?' '+"uiCloseButtonHuge":'')+(o&&q?' '+"uiCloseButtonSmallDark":'')+(o&&r?' '+"uiCloseButtonSmallInverted":'')+(!o&&q?' '+"uiCloseButtonDark":'')+(!o&&r?' '+"uiCloseButtonInverted":''));return (g.createElement("a",g.__spread({},this.props,{ajaxify:s,href:"#",role:"button" ,"aria-label":l.tooltip,"data-hover":l.tooltip&&'tooltip',"data-tooltip-alignh": l.tooltip&&'center',className:j(this.props.className,u),rel:t}),g.createElement( h,{className:"uiCloseButtonHighContrast",src:"/images/chat/tab/close.png"})));}} );e.exports=k;},null);
    __d("BadgeHelper",["DOM","cx","joinClasses"],function(a,b,c,d,e,f,g,h,i){var j={xsmall:"_5dzz",small:"_5dz-",medium:"_5dz_",large:"_5d-0",xlarge:"_5d-1"};fu nction k(m,n){var o=j[m];switch(n){case 'verified':return i(o,"_56_f _5dzy");case 'topcommenter':return i(o,"_59t2 _5dzy");case 'work':return i(o,"_5d62 _5dzy");}}function l(m,n){var o=k(m,n);if(o)return g.create('span',{className:o});}e.exports={getClasses:k,renderBadge:l,sizes:Obj ect.keys(j)};},null);
    __d("Badge.react",["BadgeHelper","React"],function(a,b,c,d,e,f,g,h){var i=h.createClass({displayName:"Badge",propTypes:{size:h.PropTypes.oneOf(g.sizes) ,type:h.PropTypes.oneOf(['verified','topcommenter','work'])},getDefaultProps:fun ction(){return {size:'xsmall',type:'verified'};},render:function(){return (h.createElement("span",{className:g.getClasses(this.props.size,this.props.type )}));}});e.exports=i;},null);
    __d("ReactPropTransferer",["Object.assign","emptyFunction","joinClasses"],functi on(a,b,c,d,e,f,g,h,i){"use strict";function j(o){return function(p,q,r){if(!p.hasOwnProperty(q)){p[q]=r;}else p[q]=o(p[q],r);};}var k=j(function(o,p){return g({},p,o);}),l={children:h,className:j(i),style:k};function m(o,p){for(var q in p){if(!p.hasOwnProperty(q))continue;var r=l[q];if(r&&l.hasOwnProperty(q)){r(o,q,p[q]);}else if(!o.hasOwnProperty(q))o[q]=p[q];}return o;}var n={mergeProps:function(o,p){return m(g({},o),p);}};e.exports=n;},null);
    __d("cloneWithProps",["ReactElement","ReactPropTransferer","keyOf","warning"],fu nction(a,b,c,d,e,f,g,h,i,j){"use strict";var k=i({children:null});function l(m,n){var o=h.mergeProps(n,m.props);if(!o.hasOwnProperty(k)&&m.props.hasOwnProperty(k))o. children=m.props.children;return g.createElement(m.type,o);}e.exports=l;},null);
    __d("ImageBlock.react",["LeftRight.react","React","cloneWithProps","cx","invaria nt","joinClasses"],function(a,b,c,d,e,f,g,h,i,j,k,l){function m(p){k(p.children&&(p.children.length===2||p.children.length===3));}function n(p){return (("img")+(' '+"_8o")+(p==='small'?' '+"_8r":'')+(p==='medium'?' '+"_8s":'')+(p==='large'?' '+"_8t":''));}var o=h.createClass({displayName:"ImageBlock",render:function(){m(this.props);var p=this.props.children[0],q=this.props.children[1],r=this.props.children[2],s=th is.props.spacing||'small',t={className:l(n(s),this.props.imageClassName)};if(p.t ype==='img'){if(p.props.alt===(void 0))t.alt='';}else if((p.type==='a'||p.type==='link')&&p.props.tabIndex===(void 0)&&p.props.title===(void 0)&&p.props['aria-label']===(void 0)){t.tabIndex='-1';t['aria-hidden']='true';}p=i(p,t);var u=l(this.props.contentClassName,(("_42ef")+(s==='small'?' '+"_8u":''))),v;if(!r){v=h.createElement("div",{className:u},q);}else v=h.createElement(g,{className:u,direction:g.DIRECTION.right},q,r);return (h.createElement(g,h.__spread({},this.props,{direction:g.DIRECTION.left}),p,v)) ;}});e.exports=o;},null);
    __d("isValidUniqueID",[],function(a,b,c,d,e,f){function g(h){return (h!==null&&h!==(void 0)&&h!==''&&(typeof h==='string'||typeof h==='number'));}e.exports=g;},null);
    __d("SearchableEntry",["HTML","isValidUniqueID","invariant"],function(a,b,c,d,e, f,g,h,i){function j(l){switch(typeof l){case 'string':return l;case 'object':var m=g.replaceJSONWrapper(l);if(g.isHTML(m)){var n=m.getRootNode();return n.textContent||n.innerText||'';}else return '';default:return '';}}function k(l){"use strict";i(h(l.uniqueID));i(!!l.title&&typeof l.title==='string');this.$SearchableEntry0=l.uniqueID+'';this.$SearchableEntry1 =l.title;this.$SearchableEntry2=l.order||0;this.$SearchableEntry3=j(l.subtitle); this.$SearchableEntry4=l.keywordString||'';this.$SearchableEntry5=l.photo||'';th is.$SearchableEntry6=l.uri||'';this.$SearchableEntry7=l.type||'';this.$Searchabl eEntry8=l.auxiliaryData||null;}k.prototype.getUniqueID=function(){"use strict";return this.$SearchableEntry0;};k.prototype.getOrder=function(){"use strict";return this.$SearchableEntry2;};k.prototype.getTitle=function(){"use strict";return this.$SearchableEntry1;};k.prototype.getSubtitle=function(){"use strict";return this.$SearchableEntry3;};k.prototype.getKeywordString=function(){"use strict";return this.$SearchableEntry4;};k.prototype.getPhoto=function(){"use strict";return this.$SearchableEntry5;};k.prototype.getURI=function(){"use strict";return this.$SearchableEntry6;};k.prototype.getType=function(){"use strict";return this.$SearchableEntry7;};k.prototype.getAuxiliaryData=function(){"use strict";return this.$SearchableEntry8;};e.exports=k;},null);
    __d("TypeaheadViewItem",["React","SearchableEntry"],function(a,b,c,d,e,f,g,h){va r i={entry:g.PropTypes.instanceOf(h).isRequired,highlighted:g.PropTypes.bool,role :g.PropTypes.string,selected:g.PropTypes.bool,onSelect:g.PropTypes.func.isRequir ed,onHighlight:g.PropTypes.func,onRenderHighlight:g.PropTypes.func},j={_onSelect :function(k){this.props.onSelect(this.props.entry,k);},_onHighlight:function(k){ if(this.props.onHighlight)this.props.onHighlight(this.props.entry,k);},getDefaul tProps:function(){return {role:'option'};},shouldComponentUpdate:function(k){return (this.props.entry.getUniqueID()!==k.entry.getUniqueID()||this.props.highlighted !==k.highlighted||this.props.selected!==k.selected);},componentDidMount:function (){if(this.props.highlighted&&this.props.onRenderHighlight)this.props.onRenderHi ghlight(this.getDOMNode());},componentDidUpdate:function(){if(this.props.highlig hted&&this.props.onRenderHighlight)this.props.onRenderHighlight(this.getDOMNode( ));}};e.exports={propTypes:i,Mixin:j};},null);
    __d("MentionsTypeaheadViewItem.react",["Badge.react","ImageBlock.react","React", "TypeaheadViewItem","cssURL","cx"],function(a,b,c,d,e,f,g,h,i,j,k,l){var m=i.createClass({displayName:"MentionsTypeaheadViewItem",mixins:[j.Mixin],propT ypes:Object.assign({},j.propTypes,{ariaDescribedBy:i.PropTypes.string}),render:f unction(){var n=this.props.entry,o=n.getAuxiliaryData(),p=null;if(o)if(o.verified){p=i.create Element(g,{type:"verified",size:"xsmall"});}else if(o.workUser)p=i.createElement(g,{type:"work",size:"xsmall"});var q=n.getPhoto()?i.createElement("span",{className:"_5u93",style:{backgroundImage :k(n.getPhoto())}}):i.createElement("span",null),r=null;if(n.getSubtitle())r=i.c reateElement("div",{className:"_5u95"},n.getSubtitle());var s=(("_5u91")+(this.props.highlighted?' '+"_5u92":''));return (i.createElement("li",{role:"option",className:s,"aria-label":n.getTitle(),"ari a-selected":this.props.highlighted,"aria-describedby":this.props.ariaDescribedBy ,onMouseDown:this._onSelect,onMouseEnter:this._onHighlight},i.createElement(h,{s pacing:"medium"},q,i.createElement("div",null,i.createElement("div",{className:" _5u94"},n.getTitle(),p),r))));}});e.exports=m;},null);
    __d("Scrollable",["Event","Parent","UserAgent_DEPRECATED"],function(a,b,c,d,e,f, g,h,i){var j=function(event){var m=h.byClass(event.getTarget(),'scrollable');if(!m)return;if((typeof event.axis!=='undefined'&&event.axis===event.HORIZONTAL_AXIS)||(event.wheelDelt aX&&!event.wheelDeltaY)||(event.deltaX&&!event.deltaY))return;var n=event.wheelDelta||-event.deltaY||-event.detail,o=m.scrollHeight,p=m.clientHei ght;if(o>p){var q=m.scrollTop;if((n>0&&q===0)||(n<0&&q>=o-p-1)){event.prevent();}else if(i.ie()<9)if(m.currentStyle){var r=m.currentStyle.fontSize;if(r.indexOf('px')<0){var s=document.createElement('div');s.style.fontSize=r;s.style.height='1em';r=s.sty le.pixelHeight;}else r=parseInt(r,10);m.scrollTop=q-Math.round(n/120*r);event.prevent();}}},k=docume nt.documentElement;if(i.firefox()){var l=('WheelEvent' in window)?'wheel':'DOMMouseScroll';k.addEventListener(l,j,false);}else g.listen(k,'mousewheel',j);},null);
    __d("ScrollableArea.react",["Bootloader","React","Style","cx","joinClasses","Scr ollable"],function(a,b,c,d,e,f,g,h,i,j,k){b('Scrollable');var l="uiScrollableArea native",m="uiScrollableAreaWrap scrollable",n="uiScrollableAreaBody",o="uiScrollableAreaContent",p=h.createClas s({displayName:"ReactScrollableArea",render:function(){var q={height:this.props.height};return (h.createElement("div",h.__spread({},this.props,{className:k(this.props.classNa me,l),ref:"root",style:Object.assign({},(this.props.style||{}),q)}),h.createElem ent("div",{className:m,ref:"wrap"},h.createElement("div",{className:n,ref:"body" },h.createElement("div",{className:o},this.props.children)))));},getArea:functio n(){return this._area;},componentDidMount:function(){g.loadModules(["ScrollableArea"],this ._loadScrollableArea);},_loadScrollableArea:function(q){this._area=q.fromNative( this.refs.root.getDOMNode(),{fade:this.props.fade,persistent:this.props.persiste nt,shadow:this.props.shadow===(void 0)?true:this.props.shadow});var r=this.refs.body.getDOMNode();i.set(r,'width',this.props.width+'px');this.props .onScroll&&this._area.subscribe('scroll',this.props.onScroll);}});e.exports=p;}, null);
    __d("Timestamp.react",["LiveTimer","joinClasses","React"],function(a,b,c,d,e,f,g ,h,i){var j=b('React').PropTypes,k=i.createClass({displayName:"Timestamp",propTypes:{auto Update:j.bool},getDefaultProps:function(){return {autoUpdate:false};},componentDidMount:function(){if(this.props.autoUpdate)g.ad dTimeStamps(this.getDOMNode());},componentDidUpdate:function(l,m){if(this.props. autoUpdate&&this.props.time!==l.time)g.loop();},render:function(){var l=g.renderRelativeTimeToServer(this.props.time,this.props.shorten);return (i.createElement("abbr",i.__spread({},this.props,{className:h(this.props.classN ame,"livetimestamp"),title:this.props.verbose,"data-utime":this.props.time,"data -shorten":this.props.shorten?true:null}),l.text||this.props.text));}});e.exports =k;},null);
    __d("AbstractButton.react",["Link.react","React","cloneWithProps","cx","joinClas ses"],function(a,b,c,d,e,f,g,h,i,j,k){var l=h.createClass({displayName:"AbstractButton",propTypes:{image:h.PropTypes.elem ent,imageRight:h.PropTypes.element,depressed:h.PropTypes.bool,label:h.PropTypes. node,onClick:h.PropTypes.func},handleLinkClick:function(m){if(this.props.disable d){m.preventDefault();}else if(this.props.onClick)this.props.onClick(m);},render:function(){var m=(("_42ft")+(this.props.disabled?' '+"_42fr":'')+(this.props.depressed?' '+"_42fs":'')),n,o=this.props.image;if(o){n={};if(this.props.label){n.alt='';n. className="_3-8_";}o=i(o,n);}var p=this.props.imageRight;if(p){n={};if(this.props.label){n.alt='';n.className="_ 3-99";}p=i(p,n);}var q;if(this.props.href){q=h.createElement(g,h.__spread({},this.props,{className:k (this.props.className,m),disabled:null,label:null,onClick:this.handleLinkClick}) ,o,this.props.label,p);}else if(this.props.type&&this.props.type!=='submit'){q=h.createElement("button",h.__ spread({},this.props,{className:k(this.props.className,m),label:null,type:this.p rops.type}),o,this.props.label,p);}else q=h.createElement("button",h.__spread({},this.props,{className:k(this.props.cla ssName,m),label:null,type:"submit",value:"1"}),o,this.props.label,p);return q;}});e.exports=l;},null);
    __d("XUIAbstractGlyphButton.react",["AbstractButton.react","React","cx","joinCla sses"],function(a,b,c,d,e,f,g,h,i,j){var k=h.createClass({displayName:"XUIAbstractGlyphButton",propTypes:{label:h.PropTy pes.node},render:function(){return (h.createElement(g,h.__spread({},this.props,{className:j(this.props.className," _5upp")})));}});e.exports=k;},null);
    __d("XUICloseButton.react",["XUIAbstractGlyphButton.react","React","cx","fbt","j oinClasses"],function(a,b,c,d,e,f,g,h,i,j,k){var l=h.createClass({displayName:"XUICloseButton",propTypes:{shade:h.PropTypes.oneO f(['light','dark']),size:h.PropTypes.oneOf(['small','medium']),type:h.PropTypes. oneOf(['submit','button','reset'])},getDefaultProps:function(){return {size:'medium',shade:'dark',type:'button'};},render:function(){var m=this.props.size,n=this.props.shade,o=(("_50zy")+(m==='small'?' '+"_50zz":'')+(m==='medium'?' '+"_50-0":'')+(n==='light'?' '+"_50z_":'')+(n==='dark'?' '+"_50z-":'')),p=this.props.label,q=this.props.title;if(!this.props.title&&!thi s.props.tooltip){if(!p)p="Remove";q=p;}return (h.createElement(g,h.__spread({},this.props,{label:p,title:q,type:this.props.hr ef?null:this.props.type,"aria-label":this.props.tooltip,"data-hover":this.props. tooltip&&'tooltip',"data-tooltip-alignh":this.props.tooltip&&'center',className: k(this.props.className,o)})));}});e.exports=l;},null);
    __d("XUIText.react",["React","cx","joinClasses"],function(a,b,c,d,e,f,g,h,i){var j=g.PropTypes,k=g.createClass({displayName:"XUIText",propTypes:{size:j.oneOf([' small','medium','large','xlarge','inherit']),weight:j.oneOf(['bold','inherit','n ormal']),display:j.oneOf(['inline','block'])},getDefaultProps:function(){return {size:'inherit',weight:'inherit',display:'inline'};},render:function(){var l=this.props.size,m=this.props.weight,n=((l==='small'?"_50f3":'')+(l==='medium' ?' '+"_50f4":'')+(l==='large'?' '+"_50f5":'')+(l==='xlarge'?' '+"_50f6":'')+(m==='bold'?' '+"_50f7":'')+(m==='normal'?' '+"_5kx5":''));if(this.props.display==='block')return (g.createElement("div",g.__spread({},this.props,{className:i(this.props.classNa me,n)}),this.props.children));return (g.createElement("span",g.__spread({},this.props,{className:i(this.props.classN ame,n)}),this.props.children));}});e.exports=k;},null);
    __d("XUIGrayText.react",["React","XUIText.react","cx","joinClasses"],function(a, b,c,d,e,f,g,h,i,j){var k=g.PropTypes,l=g.createClass({displayName:"XUIGrayText",propTypes:{shade:k.one Of(['light','medium','dark'])},getDefaultProps:function(){return {shade:'light'};},render:function(){var m=((this.props.shade==='light'?"_50f8":'')+(this.props.shade==='medium'?' '+"_c24":'')+(this.props.shade==='dark'?' '+"_50f9":''));return (g.createElement(h,g.__spread({},this.props,{className:j(this.props.className,m )}),this.props.children));}});e.exports=l;},null);
    __d("BanzaiNectar",["Banzai"],function(a,b,c,d,e,f,g){function h(j){return {log:function(k,l,m){var n={e:l,a:m};g.post('nectar:'+k,n,j);}};}var i=h();i.create=h;e.exports=i;},null);
    __d("concatMap",[],function(a,b,c,d,e,f){function g(h,i){var j=-1,k=i.length,l=[],m;while(++j<k){m=h(i[j],j,i);Array.isArray(m)?Array.protot ype.push.apply(l,m):Array.prototype.push.call(l,m);}return l;}e.exports=g;},null);
    __d("escapeRegex",[],function(a,b,c,d,e,f){function g(h){return h.replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1");}e.exports=g;},null);
    __d("extendArray",[],function(a,b,c,d,e,f){function g(h,i){Array.prototype.push.apply(h,i);return h;}e.exports=g;},null);
    __d("PhotosMimeType",[],function(a,b,c,d,e,f){function g(h){"use strict";if(this instanceof g===false)return new g(h);this.$PhotosMimeType0=h.split('/');}g.prototype.isImage=function(){"use strict";return this.$PhotosMimeType0[0]==='image';};g.prototype.isJpeg=function(){"use strict";return this.isImage()&&(this.$PhotosMimeType0[1]==='jpeg'||this.$PhotosMimeType0[1]=== 'pjpeg');};e.exports=g;},null);
    __d("DataTransfer",["PhotosMimeType","createArrayFromMixed","emptyFunction"],fun ction(a,b,c,d,e,f,g,h,i){var j=new RegExp('\u000D\u000A','g'),k='\u000A',l={'text/rtf':1,'text/html':1};function m(o){if(o.kind=='file')return o.getAsFile();}function n(o){"use strict";this.data=o;this.types=o.types?h(o.types):[];}n.prototype.isRichText=fu nction(){"use strict";return this.types.some(function(o){return l[o];});};n.prototype.getText=function(){"use strict";var o;if(this.data.getData)if(!this.types.length){o=this.data.getData('Text');}else if(this.types.indexOf('text/plain')!=-1)o=this.data.getData('text/plain');retur n o?o.replace(j,k):null;};n.prototype.getHTML=function(){"use strict";if(this.data.getData)if(!this.types.length){return this.data.getData('Text');}else if(this.types.indexOf('text/html')!=-1)return this.data.getData('text/html');};n.prototype.isLink=function(){"use strict";return this.types.some(function(o){return o.indexOf('url')!=-1||o.indexOf('text/uri-list')!=-1;});};n.prototype.isImage=f unction(){"use strict";var o=this.types.some(function(s){return s.indexOf('application/x-moz-file')!=-1;});if(o)return true;var p=this.getFiles();for(var q=0;q<p.length;q++){var r=p[q].type;if(!g(r).isImage())return false;}return true;};n.prototype.getCount=function(){"use strict";if(this.data.hasOwnProperty('items')){return this.data.items.length;}else if(this.data.hasOwnProperty('mozItemCount')){return this.data.mozItemCount;}else if(this.data.files)return this.data.files.length;return null;};n.prototype.getFiles=function(){"use strict";if(this.data.items){return Array.prototype.slice.call(this.data.items).map(m).filter(i.thatReturnsArgument );}else if(this.data.files){return Array.prototype.slice.call(this.data.files);}else return [];};n.prototype.hasFiles=function(){"use strict";return this.getFiles().length>0;};e.exports=n;},null);
    __d("intlList",["React","fbt","invariant","keyMirror"],function(a,b,c,d,e,f,g,h, i,j){'use strict';var k=function(m,n){n=n||k.CONJUNCTIONS.AND;var o=m.length;if(o===0){return '';}else if(o===1)return m[0];var p=m[o-1],q=m[0];for(var r=1;r<o-1;++r)q=h._("{previous items}, {following items}",[h.param("previous items",q),h.param("following items",m[r])]);return l(q,p,n);};function l(m,n,o){switch(o){case k.CONJUNCTIONS.AND:return (h._("{list of items} and {last item}",[h.param("list of items",m),h.param("last item",n)]));case k.CONJUNCTIONS.OR:return (h._("{list of items} or {last item}",[h.param("list of items",m),h.param("last item",n)]));case k.CONJUNCTIONS.NONE:return (h._("{list of items}, {last item}",[h.param("list of items",m),h.param("last item",n)]));default:i(false);}}k.CONJUNCTIONS=j({AND:null,NONE:null,OR:null});e .exports=k;},null);
    __d("TrackingNodes",["TrackingNodeTypes"],function(a,b,c,d,e,f,g){var h={types:g,BASE_CODE_START:58,BASE_CODE_END:126,BASE_CODE_SIZE:69,PREFIX_CODE_S TART:42,PREFIX_CODE_END:47,PREFIX_CODE_SIZE:6,TN_URL_PARAM:'__tn__',encodeTN:fun ction(i,j){var k=(i-1)%h.BASE_CODE_SIZE,l=parseInt((i-1)/h.BASE_CODE_SIZE,10);if(i<1||l>h.PREF IX_CODE_SIZE)throw Error('Invalid tracking node: '+i);var m="";if(l>0)m+=String.fromCharCode(l-1+h.PREFIX_CODE_START);m+=String.fromCharC ode(k+h.BASE_CODE_START);if(typeof j!="undefined"&&j>0)m+=String.fromCharCode(48+Math.min(j,10)-1);return m;},decodeTN:function(i){if(i.length===0)return [0];var j=i.charCodeAt(0),k=1,l,m;if(j>=h.PREFIX_CODE_START&&j<=h.PREFIX_CODE_END){if(i .length==1)return [0];m=j-h.PREFIX_CODE_START+1;l=i.charCodeAt(1);k=2;}else{m=0;l=j;}if(l<h.BASE_ CODE_START||l>h.BASE_CODE_END)return [0];var n=m*h.BASE_CODE_SIZE+(l-h.BASE_CODE_START)+1;if(i.length>k&&(i.charAt(k)>='0'&& i.charAt(k)<='9'))return [k+1,[n,parseInt(i.charAt(k),10)+1]];return [k,[n]];},parseTrackingNodeString:function(i){var j=[];while(i.length>0){var k=h.decodeTN(i);if(k.length==1)return [];j.push(k[1]);i=i.substring(k[0]);}return j;},getTrackingInfo:function(i,j){return '{"tn":"'+h.encodeTN(i,j)+'"}';},addDataAttribute:function(i,j,k){if(j===(void 0))return;['data-ft','data-gt'].forEach(function(l){var m;if(i.getAttribute){m=i.getAttribute(l)||"{}";}else if(i.props){m=i.props[l]||"{}";}else return;var n=h.encodeTN(j,k);try{m=JSON.parse(m);if(m.tn&&m.tn===n)return;m.tn=n;if(i.setA ttribute){i.setAttribute(l,JSON.stringify(m));}else if(i.props){i.props[l]=JSON.stringify(m);}else return;}catch(o){}});}};e.exports=h;},null);
    __d("PresenceUtil",["CurrentUser","randomInt"],function(a,b,c,d,e,f,g,h){var i=h(0,4294967295)+1;function j(){return i;}function k(){return g.isLoggedInNow();}e.exports={getSessionID:j,hasUserCookie:k};},null);
    __d("ReactLayeredComponentMixin",["ExecutionEnvironment","ReactInstanceMap","Rea ctCurrentOwner","React"],function(a,b,c,d,e,f,g,h,i,j){"use strict";var k={componentWillMount:function(){if(g.canUseDOM)this._layersContainer=document. createElement('div');},componentDidMount:function(){this._renderLayersIntoContai ner();},componentDidUpdate:function(){this._renderLayersIntoContainer();},compon entWillUnmount:function(){j.unmountComponentAtNode(this._layersContainer);},_ren derLayersIntoContainer:function(){i.current=h.get(this);var l=this.renderLayers()||{};i.current=null;j.render(j.createElement("div",null,l) ,this._layersContainer);}};e.exports=k;},null);
    __d("AbstractTextEditorPlaceholder.Experimental.react",["EditorState","React","c x"],function(a,b,c,d,e,f,g,h,i){var j=h.PropTypes,k=h.createClass({displayName:"AbstractTextEditorPlaceholder",prop Types:{editorState:j.instanceOf(g).isRequired,text:j.string.isRequired},shouldCo mponentUpdate:function(l,m){if(this.props.text!==l.text)return true;var n=this.props.editorState,o=l.editorState,p=n.getSelection(),q=o.getSelection(); return (p.getHasFocus()!==q.getHasFocus());},render:function(){var l=this.props.editorState.getSelection().getHasFocus(),m=(("_5ywb")+(l?' '+"_5ywc":''));return (h.createElement("div",{className:m},this.props.text));}});e.exports=k;},null);
    __d("TokenizeUtil",[],function(a,b,c,d,e,f){var g=/[ ]+/g,h=/[^ ]+/g,i=new RegExp(j(),'g');function j(){return '[.,+*?$|#{}()\'\\^\\-\\[\\]\\\\\\/!@%"~=<>_:;'+'\u30fb\u3001\u3002\u3008-\u301 1\u3014-\u301f\uff1a-\uff1f\uff01-\uff0f'+'\uff3b-\uff40\uff5b-\uff65\u2E2E\u061 f\u066a-\u066c\u061b\u060c\u060d'+'\uFD3e\uFD3F\u1801\u0964\u104a\u104b\u2010-\u 2027\u2030-\u205e'+'\u00a1-\u00b1\u00b4-\u00b8\u00ba\u00bb\u00bf]';}var k={},l={a:"\u0430 \u00e0 \u00e1 \u00e2 \u00e3 \u00e4 \u00e5 \u0101",b:"\u0431",c:"\u0446 \u00e7 \u010d",d:"\u0434 \u00f0 \u010f \u0111",e:"\u044d \u0435 \u00e8 \u00e9 \u00ea \u00eb \u011b \u0113",f:"\u0444",g:"\u0433 \u011f \u0123",h:"\u0445 \u0127",i:"\u0438 \u00ec \u00ed \u00ee \u00ef \u0131 \u012b",j:"\u0439",k:"\u043a \u0138 \u0137",l:"\u043b \u013e \u013a \u0140 \u0142 \u013c",m:"\u043c",n:"\u043d \u00f1 \u0148 \u0149 \u014b \u0146",o:"\u043e \u00f8 \u00f6 \u00f5 \u00f4 \u00f3 \u00f2",p:"\u043f",r:"\u0440 \u0159 \u0155",s:"\u0441 \u015f \u0161 \u017f",t:"\u0442 \u0165 \u0167 \u00fe",u:"\u0443 \u044e \u00fc \u00fb \u00fa \u00f9 \u016f \u016b",v:"\u0432",y:"\u044b \u00ff \u00fd",z:"\u0437 \u017e",ae:"\u00e6",oe:"\u0153",ts:"\u0446",ch:"\u0447",ij:"\u0133",sh:"\u0448" ,ss:"\u00df",ya:"\u044f"};for(var m in l){var n=l[m].split(' ');for(var o=0;o<n.length;o++)k[n[o]]=m;}var p={};function q(w){return w?w.replace(i,' '):'';}function r(w){w=w.toLowerCase();var x='',y='';for(var z=w.length;z--;){y=w.charAt(z);x=(k[y]||y)+x;}return x.replace(g,' ');}function s(w){var x=[],y=h.exec(w);while(y){y=y[0];x.push(y);y=h.exec(w);}return x;}function t(w,x){if(!p.hasOwnProperty(w)){var y=r(w),z=q(y);p[w]={value:w,flatValue:y,tokens:s(z),isPrefixQuery:z&&z[z.length -1]!=' '};}if(x&&typeof p[w].sortedTokens=='undefined'){p[w].sortedTokens=p[w].tokens.slice();p[w].sort edTokens.sort(function(aa,ba){return ba.length-aa.length;});}return p[w];}function u(w,x,y){var z=t(x,w=='prefix'),aa=w=='prefix'?z.sortedTokens:z.tokens,ba=t(y).tokens,ca={}, da=z.isPrefixQuery&&w=='query'?aa.length-1:null,ea=function(fa,ga){for(var ha=0;ha<ba.length;++ha){var ia=ba[ha];if(!ca[ha]&&(ia==fa||((w=='query'&&ga===da||w=='prefix')&&ia.indexOf( fa)===0)))return (ca[ha]=true);}return false;};return Boolean(aa.length&&aa.every(ea));}var v={flatten:r,parse:t,getPunctuation:j,isExactMatch:u.bind(null,'exact'),isQuery Match:u.bind(null,'query'),isPrefixMatch:u.bind(null,'prefix'),tokenize:s};e.exp orts=v;},null);
    __d("TypeaheadNavigation",[],function(a,b,c,d,e,f){var g={moveUp:function(h,i,j){var k=h.indexOf(i),l=k==-1?h.length-1:k-1;j(l==-1?null:h[l]);},moveDown:function(h, i,j){var k=h.indexOf(i)+1;j(k==h.length?null:h[k]);}};e.exports=g;},null);
    __d("UnicodeCJK",[],function(a,b,c,d,e,f){"use strict";var g='a-zA-Z',h='\uFF21-\uFF3A\uFF41-\uFF5A',i=g+h,j='\u3040-\u309F',k='\u30A0-\u3 0FF',l='\u31F0-\u31FF',m='\uFF65-\uFF9F',n=k+l+m,o=j+n,p=[12352,12447],q=[12448, 12543],r=q[0]-p[0],s='\u4E00-\u9FCF',t='\u3400-\u4DBF',u=s+t,v='\uAC00-\uD7AF',w =u+o+v,x=null,y=null,z=null,aa=null;function ba(ja){y=y||new RegExp('['+o+']');return y.test(ja);}function ca(ja){x=x||new RegExp('['+u+']');return x.test(ja);}function da(ja){z=z||new RegExp('['+w+']');return z.test(ja);}function ea(ja){var ka=ja.charCodeAt(0);return String.fromCharCode((ka<p[0]||ka>p[1])?ka:ka+r);}function fa(ja){if(!ba(ja))return ja;return ja.split('').map(ea).join('');}function ga(ja){aa=aa||new RegExp('^'+'['+o+']+'+'['+i+']'+'$');return aa.test(ja);}function ha(ja){if(ga(ja))return ja.substr(0,ja.length-1);return ja;}var ia={hasKana:ba,hasIdeograph:ca,hasIdeoOrSyll:da,hiraganaToKatakana:fa,isKanaWit hTrailingLatin:ga,kanaRemoveTrailingLatin:ha};e.exports=ia;},null);
    __d("UnicodeHangulKorean",[],function(a,b,c,d,e,f){"use strict";var g=/[\u3130-\u318F\uAC00-\uD7AF]/;function h(aa){return g.test(aa);}var i=[4352,4353,4522,4354,4524,4525,4355,4356,4357,4528,4529,4530,4531,4532,4533,4 378,4358,4359,4360,4385,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4449,4 450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4 466,4467,4468,4469,4448,4372,4373,4551,4552,4556,4558,4563,4567,4569,4380,4573,4 575,4381,4382,4384,4386,4387,4391,4393,4395,4396,4397,4398,4399,4402,4406,4416,4 423,4428,4593,4594,4439,4440,4441,4484,4485,4488,4497,4498,4500,4510,4513],j=125 93,k=i.length,l=j+k;function m(aa){return String.fromCharCode(i[aa-j]);}var n=4352,o=4449,p=4519,q=44032,r=19,s=21,t=28,u=(s*t),v=(r*u),w=q+v;function x(aa){var ba=aa-q,ca=ba%t;return String.fromCharCode(n+ba/u)+String.fromCharCode(o+(ba%u)/t)+((ca>0)?String.from CharCode(p+ca):'');}function y(aa){if(!h(aa))return aa;var ba=[];for(var ca=0;ca<aa.length;ca++){var da=aa.charAt(ca),ea=da.charCodeAt(0);ba.push((j<=ea&&ea<l)?m(ea):(q<=ea&&ea<w)? x(ea):da);}return ba.join('');}var z={toConjoiningJamo:y};e.exports=z;},null);
    __d("UnicodeMatch",["UnicodeHangulKorean","UnicodeCJK","invariant","createObject From","mapObject"],function(a,b,c,d,e,f,g,h,i,j,k){"use strict";var l=['prefix_hangul_conjoining_jamo','prefix_kana_drop_trailing_latin','prefix_ka na_hiragana_to_katakana'];function m(n){this.config=j(l,false);this.setConfigs(n||{});}m.prototype.setConfigs=func tion(n){k(n,function(o,p){return this.setConfig(p,o);}.bind(this),this);};m.prototype.setConfig=function(n,o){i( n in this.config);this.config[n]=o;};m.prototype.prefixMatchPrepare=function(n){if(n ){if(this.config.prefix_hangul_conjoining_jamo)n=g.toConjoiningJamo(n);if(this.c onfig.prefix_kana_drop_trailing_latin)n=h.kanaRemoveTrailingLatin(n);if(this.con fig.prefix_kana_hiragana_to_katakana)n=h.hiraganaToKatakana(n);}return n;};m.prototype.prefixMatch=function(n,o){n=this.prefixMatchPrepare(n);o=this.p refixMatchPrepare(o);return n.startsWith(o);};e.exports=m;},null);
    __d("LitestandStoryInsertionStatus",["ArbiterMixin","copyProperties"],function(a ,b,c,d,e,f,g,h){var i='check',j={registerBlocker:function(k){return j.subscribe(i,function(l,m){if(m.can_insert&&k())m.can_insert=false;});},canIns ert:function(){var k={can_insert:true};j.inform(i,k);return k.can_insert;}};h(j,g);e.exports=j;},null);
    __d("LitestandClassicPlaceHolders",["Arbiter"],function(a,b,c,d,e,f,g){var h={},i={register:function(j,k){h[j]=k;},destroy:function(j){var k=h[j];if(k){k.parentNode.removeChild(k);delete h[j];}},subscribeToDestroy:function(j){g.subscribe('feedAdsInvalidation/done',f unction(){this.destroy(j);}.bind(this));}};e.exports=i;},null);
    __d("DataSource",["ArbiterMixin","AsyncRequest","TokenizeUtil","UnicodeMatch","c opyProperties","createArrayFromMixed","createObjectFrom","emptyFunction","mixin" ],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=o(g);for(var q in p)if(p.hasOwnProperty(q))s[q]=p[q];var r=p===null?null:p.prototype;s.prototype=Object.create(r);s.prototype.constructo r=s;s.__superConstructor__=p;function s(t){"use strict";this._maxResults=t.maxResults||10;this.token=t.token;this.queryData=t.q ueryData||{};this.queryEndpoint=t.queryEndpoint||'';this.bootstrapData=t.bootstr apData||{};this.bootstrapEndpoint=t.bootstrapEndpoint||'';this._indexedFields=t. indexedFields||['text','tokens'];this._titleFields=t.titleFields||[];this._alway sPrefixMatch=t.alwaysPrefixMatch||false;this._deduplicationKey=t.deduplicationKe y||null;this._enabledLocalCache=(t.enabledLocalCache!=null)?t.enabledLocalCache: true;this._enabledQueryCache=(t.enabledQueryCache!=null)?t.enabledQueryCache:tru e;this._disableAllCaches=(t.disableAllCaches!=null)?t.disableAllCaches:false;thi s._enabledMergeUids=(t.enabledMergeUids!=null)?t.enabledMergeUids:false;this._qu eryExactMatch=t.queryExactMatch||false;this._acrossTransitions=t.acrossTransitio ns||false;this._minQueryLength=t.minQueryLength||-1;this._enforceNewRequestIDUpo nFetch=t.enforceNewRequestIDUponFetch||false;this._minExactMatchLength=4;this._f ilters=[];this.setExclusions(t.exclusions);this.backendUnicodeMatch=new j({prefix_kana_hiragana_to_katakana:!!t.kanaNormalization});this.cacheUnicodeMa tch=new j({prefix_kana_hiragana_to_katakana:!!t.kanaNormalization});}s.prototype.init=f unction(){"use strict";this.init=n;this._fields=m(this._indexedFields);this._activeQueries=0;t his.dirty();};s.prototype.dirty=function(){"use strict";this.value='';this._bootstrapped=false;this._bootstrapping=false;this._ data={};this.localCache={};this.queryCache={};this.queryIDs={};this.inform('dirt y',{});return this;};s.prototype.bootstrap=function(){"use strict";if(this._bootstrapped)return;this.bootstrapWithoutToken();this._bootstr apped=true;this._bootstrapping=true;this.inform('bootstrap',{bootstrapping:true} );};s.prototype.bootstrapWithoutToken=function(){"use strict";this.fetch(this.bootstrapEndpoint,this.bootstrapData,{bootstrap:true,to ken:this.token});};s.prototype.bootstrapWithToken=function(){"use strict";var t=k({},this.bootstrapData);t.token=this.token;this.fetch(this.bootstrapEndpoint ,t,{bootstrap:true,replaceCache:true,value:''});};s.prototype.query=function(t,u ,v,w){"use strict";this.inform('beforeQuery',{value:t,local_only:u,exclusions:v,time_waite d:w});var x=Date.now();if(this._disableAllCaches){this.dirty();if(!t){this.bootstrap();re turn true;}}else if(!this._enabledQueryCache){this.queryCache={};this.queryIDs={};}var y=this.buildUids(t,[],v),z=this.respond(t,y);this.value=t;this.inform('query',{ value:t,results:z});var aa=this.tokenizeBackend(t).flatValue;if(u||!aa||this._isQueryTooShort(aa)||!thi s.queryEndpoint||this.getQueryCache().hasOwnProperty(aa)||!this.shouldFetchMoreR esults(z)){this.inform('logPerformanceTiming',{field:'cache_keypress_render',val ue:Date.now()-x});this.inform('completeCacheFetch');return false;}this.inform('queryEndpoint',{value:t});this.fetch(this.queryEndpoint,thi s.getQueryData(t,y),{value:t,exclusions:v});return true;};s.prototype._isQueryTooShort=function(t){"use strict";return (t.length<this._minQueryLength);};s.prototype._tokenize=function(t,u){"use strict";return i.parse(t,u);};s.prototype.tokenizeBackend=function(t,u){"use strict";t=this.backendUnicodeMatch.prefixMatchPrepare(t);return this._tokenize(t,u);};s.prototype.tokenizeCache=function(t,u){"use strict";t=this.cacheUnicodeMatch.prefixMatchPrepare(t);return this._tokenize(t,u);};s.prototype.shouldFetchMoreResults=function(t){"use strict";return t.length<this._maxResults;};s.prototype.getQueryData=function(t,u){"use strict";var v=k({value:t},this.queryData||{});u=u||[];if(u.length)v.existing_ids=u.join(',' );if(this._bootstrapping)v.bsp=true;return v;};s.prototype.setQueryData=function(t,u){"use strict";if(u)this.queryData={};k(this.queryData,t);return this;};s.prototype.setBootstrapData=function(t,u){"use strict";if(u)this.bootstrapData={};k(this.bootstrapData,t);return this;};s.prototype.getExclusions=function(){"use strict";return l(this._exclusions);};s.prototype.setExclusions=function(t){"use strict";this._exclusions=t?t.map(String):[];};s.prototype.addFilter=function(t) {"use strict";var u=this._filters;u.push(t);return {remove:function(){u.splice(u.indexOf(t),1);}};};s.prototype.clearFilters=funct ion(){"use strict";this._filters=[];};s.prototype.notify=function(t,u,v,w){"use strict";var x=this.buildData(u);this.inform('notify',{value:t,results:x,isAsync:!!v,rootid: w});return x;};s.prototype.respond=function(t,u,v){"use strict";var w=this.buildData(u);this.inform('respond',{value:t,results:w,isAsync:!!v});retu rn w;};s.prototype.respondWithResults=function(t,u,v){"use strict";this.inform('respond',{value:t,results:u,isAsync:!!v});return u;};s.prototype.fetch=function(t,u,v){"use strict";if(!t)return;if(this._enforceNewRequestIDUponFetch||u.request_id===(voi d 0)){u.request_id=this._guid();v.request_id=u.request_id;}var w=new h().setURI(t).setData(u).setMethod('GET').setReadOnly(true).setAllowCrossPageTr ansition(this._acrossTransitions).setHandler(function(x){this.fetchHandler(x,v|| {});}.bind(this));if(t===this.queryEndpoint)w.setFinallyHandler(function(){this. _activeQueries--;if(!this._activeQueries)this.inform('activity',{activity:false} );}.bind(this));w.setErrorHandler(this.asyncErrorHandler);this.inform('beforeFet ch',{request:w,fetch_context:v});w.send();if(t===this.queryEndpoint){if(!this._a ctiveQueries)this.inform('activity',{activity:true});this._activeQueries++;}};s. prototype.fetchHandler=function(t,u){"use strict";var v=u.value,w=u.exclusions;if(t.getPayload().requestID!==(void 0))u.request_id=t.getPayload().requestID;var x=this.getQueryIDs(),y=this.tokenizeBackend(v||'').flatValue;x[y]=u.request_id; if(!v&&u.replaceCache)this.localCache={};this.inform('buildQueryCache',{});var z=t.getPayload().entries;this.addEntries(z,v);this.inform('fetchComplete',{entr ies:z,response:t,value:v,fetch_context:u});var aa=(!v&&this.value)?this.value:v;this.respond(aa,this.buildUids(aa,[],w),true); if(!v){if(this._bootstrapping){this._bootstrapping=false;this.inform('bootstrap' ,{bootstrapping:false});}if(u.token&&t.getPayload().token!==u.token)this.bootstr apWithToken();}};s.prototype.addEntries=function(t,u){"use strict";var v=this.processEntries(l(t||[]),u),w=v;if(this._enabledMergeUids)w=this.buildUid s(u,v);if(u){var x=this.getQueryCache(),y=this.tokenizeBackend(u).flatValue;x[y]=w;}else this.fillCache(w);};s.prototype.processEntries=function(t,u){"use strict";return t.map(function(v,w){var x=(v.uid=v.uid+''),y=this.getEntry(x);if(!y){y=v;y.query=u;y.bootstrapped=!u;th is.setEntry(x,y);}else k(y,v);y.index===(void 0)&&(y.index=w);return x;},this);};s.prototype.getAllEntries=function(){"use strict";return this._data||{};};s.prototype.getEntry=function(t){"use strict";return this._data[t]||null;};s.prototype.setEntry=function(t,u){"use strict";this._data[t]=u;};s.prototype.fillCache=function(t){"use strict";if(!this._enabledLocalCache)return;var u=this.localCache;t.forEach(function(v){var w=this.getEntry(v);if(!w)return;var x=this.tokenizeCache(this.getTextToIndex(w)).tokens;for(var y=0,z=x.length;y<z;++y){var aa=x[y];if(!u.hasOwnProperty(aa))u[aa]={};u[aa][v]=true;}},this);};s.prototype. getTextToIndex=function(t){"use strict";if(t.textToIndex&&!t.needs_update)return t.textToIndex;t.needs_update=false;t.textToIndex=this.getTextToIndexFromFields( t,this._indexedFields);return t.textToIndex;};s.prototype.getTextToIndexFromFields=function(t,u){"use strict";var v=[];for(var w=0;w<u.length;++w){var x=t[u[w]];if(x)v.push(x.join?x.join(' '):x);}return v.join(' ');};s.prototype.mergeUids=function(t,u,v,w){"use strict";this.inform('mergeUids',{local_uids:t,query_uids:u,new_uids:v,value:w}) ;var x=function(y,z){var aa=this.getEntry(y),ba=this.getEntry(z);if(aa.extended_match!==ba.extended_matc h)return aa.extended_match?1:-1;if(aa.index!==ba.index)return aa.index-ba.index;if(aa.text.length!==ba.text.length)return aa.text.length-ba.text.length;return aa.uid<ba.uid;}.bind(this);this._checkExtendedMatch(w,t);return this.deduplicateByKey(t.sort(x).concat(u,v));};s.prototype._checkExtendedMatch= function(t,u){"use strict";var v=this._alwaysPrefixMatch?i.isPrefixMatch:i.isQueryMatch;for(var w=0;w<u.length;++w){var x=this.getEntry(u[w]);x.extended_match=x.tokens?!v(t,x.text):false;}};s.prototy pe.buildUids=function(t,u,v){"use strict";if(!u)u=[];if(!t)return u;if(!v)v=[];var w=this.buildCacheResults(t,this.localCache),x=this.buildQueryResults(t),y=this. mergeUids(w,x,u,t),z=m(v.concat(this._exclusions)),aa=y.filter(function(ba){if(z .hasOwnProperty(ba)||!this.getEntry(ba))return false;for(var ca=0;ca<this._filters.length;++ca)if(!this._filters[ca](this.getEntry(ba),t))re turn false;return (z[ba]=true);},this);return this.uidsIncludingExact(t,aa);};s.prototype.uidsIncludingExact=function(t,u){"u se strict";var v=u.length;if(t.length<this._minExactMatchLength||v<=this._maxResults)return u;for(var w=0;w<v;++w){var x=this.getEntry(u[w]);x.text_lower||(x.text_lower=x.text.toLowerCase());if(x.te xt_lower===this.tokenizeCache(t).flatValue){if(w>=this._maxResults){var y=u.splice(w,1)[0];u.splice(this._maxResults-1,0,y);}break;}}return u;};s.prototype.buildData=function(t){"use strict";var u=[],v=Math.min(t.length,this._maxResults);for(var w=0;w<v;++w)u.push(this.getEntry(t[w]));return u;};s.prototype.findBestPreviousQuery=function(t,u){"use strict";var v=0,w=null;if(this._queryExactMatch)return u.hasOwnProperty(t)?t:null;for(var x in u)if(t.indexOf(x)===0&&x.length>v){v=x.length;w=x;}return w;};s.prototype.findQueryCache=function(t){"use strict";var u=this.findBestPreviousQuery(t,this.getQueryCache());return this.getQueryCache()[u]||[];};s.prototype.buildQueryResults=function(t){"use strict";var u=this.tokenizeBackend(t).flatValue,v=this.findQueryCache(u);if(this.getQueryCa che().hasOwnProperty(u))return v;var w=this.filterQueryResults(u,v);return w;};s.prototype.filterQueryResults=function(t,u){"use strict";var v=this._alwaysPrefixMatch?i.isPrefixMatch:i.isQueryMatch;return u.filter(function(w){return v(t,this.getTextToIndex(this.getEntry(w)));},this);};s.prototype.buildCacheResu lts=function(t,u){"use strict";var v=this.tokenizeCache(t,this._alwaysPrefixMatch),w=this._alwaysPrefixMatch?v.sor tedTokens:v.tokens,x=w.length,y=v.isPrefixQuery?x-1:null,z={},aa={},ba={},ca=[], da=false,ea={},fa=0;for(var ga=0;ga<x;++ga){var ha=w[ga];if(!ea.hasOwnProperty(ha)){fa++;ea[ha]=true;}else continue;for(var ia in u)if((!z.hasOwnProperty(ia)&&ia===ha)||((this._alwaysPrefixMatch||y===ga)&&this .cacheUnicodeMatch.prefixMatch(ia,ha))){if(ia===ha){if(aa.hasOwnProperty(ia))da= true;z[ia]=true;}else{if(z.hasOwnProperty(ia)||aa.hasOwnProperty(ia))da=true;aa[ ia]=true;}for(var ja in u[ia])if(ga===0||(ba.hasOwnProperty(ja)&&ba[ja]==fa-1))ba[ja]=fa;}}for(var ka in ba)if(ba[ka]==fa)ca.push(ka);if(da||fa<x)ca=this.filterQueryResults(t,ca);if(th is._titleFields&&this._titleFields.length>0)ca=this.filterNonTitleMatchQueryResu lts(t,ca);return ca;};s.prototype.filterNonTitleMatchQueryResults=function(t,u){"use strict";return u.filter(function(v){var w=this.tokenizeCache(t),x=w.tokens.length;if(x===0)return true;var y=this.getTitleTerms(this.getEntry(v)),z=w.tokens[0];return ((x===1)||this._alwaysPrefixMatch)?(i.isPrefixMatch(z,y)||this.cacheUnicodeMatc h.prefixMatch(y,z)):i.isQueryMatch(z,y);},this);};s.prototype.getTitleTerms=func tion(t){"use strict";if(!t.titleToIndex)t.titleToIndex=this.getTextToIndexFromFields(t,this. _titleFields);return t.titleToIndex;};s.prototype.deduplicateByKey=function(t){"use strict";if(!this._deduplicationKey)return t;var u=m(t.map(this._getDeduplicationKey.bind(this)),t);return t.filter(function(v){return u[this._getDeduplicationKey(v)]==v;}.bind(this));};s.prototype._getDeduplicatio nKey=function(t){"use strict";var u=this.getEntry(t);if(u[this._deduplicationKey]){return u[this._deduplicationKey]+'';}else return '__'+t+'__';};s.prototype.getQueryCache=function(){"use strict";return this.queryCache;};s.prototype.getQueryIDs=function(){"use strict";return this.queryIDs;};s.prototype.setMaxResults=function(t){"use strict";this._maxResults=t;this.value&&this.respond(this.value,this.buildUids(t his.value));};s.prototype.updateToken=function(t){"use strict";this.token=t;this.dirty();return this;};s.prototype._guid=function(){"use strict";var t=Date.now(),u='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function( v){var w=Math.floor((t+Math.random()*16)%16);t=Math.floor(t/16);var x=(v=='x'?w:(w&7|8)).toString(16);return x;});return u;};k(s.prototype,{events:['bootstrap','query','respond'],asyncErrorHandler:n}) ;e.exports=s;},null);
    __d("MultiBootstrapDataSource",["DataSource"],function(a,b,c,d,e,f,g){for(var h in g)if(g.hasOwnProperty(h))j[h]=g[h];var i=g===null?null:g.prototype;j.prototype=Object.create(i);j.prototype.constructo r=j;j.__superConstructor__=g;function j(k){"use strict";this._bootstrapEndpoints=k.bootstrapEndpoints;g.call(this,k);}j.prototy pe.bootstrapWithoutToken=function(){"use strict";for(var k=0;k<this._bootstrapEndpoints.length;k++)this.fetch(this._bootstrapEndpoints[k ].endpoint,this._bootstrapEndpoints[k].data||{},{bootstrap:true});};e.exports=j; },null);
    __d("TabbableElements",["Style","createArrayFromMixed"],function(a,b,c,d,e,f,g,h ){function i(l){if(l.tabIndex>0||(l.tabIndex===0&&l.getAttribute('tabIndex')!==null))retur n true;switch(l.tagName){case "A":return l.href&&l.rel!="ignore";case "INPUT":return l.type!="hidden"&&l.type!="file"&&!l.disabled;case "BUTTON":case "SELECT":case "TEXTAREA":return !l.disabled;}return false;}function j(l){if(l.offsetHeight===0&&l.offsetWidth===0)return false;while(l!==document&&g.get(l,'visibility')!='hidden')l=l.parentNode;return l===document;}var k={find:function(l){var m=h(l.getElementsByTagName("*"));return m.filter(k.isTabbable);},isTabbable:function(l){return i(l)&&j(l);}};e.exports=k;},null);
    __d("tidyEvent",["Run"],function(a,b,c,d,e,f,g){var h=[];function i(){while(h.length){var l=h.shift();l&&l.remove?l.remove():l.unsubscribe();}}function j(l){var m;function n(){if(!m)return;m.apply(l,arguments);m=null;l=null;}if(l.remove){m=l.remove;l. remove=n;}else{m=l.unsubscribe;l.unsubscribe=n;}return l;}function k(l){if(!h.length)g.onLeave(i);if(Array.isArray(l)){for(var m=0;m<l.length;m++)h.push(j(l[m]));}else h.push(j(l));return l;}e.exports=k;},null);
    __d("Toggler",["Arbiter","ArbiterMixin","ContextualThing","CSS","DataStore","DOM ","DOMQuery","Event","Focus","Keys","TabbableElements","arrayContains","copyProp erties","createArrayFromMixed","cx","emptyFunction","ge","getContextualParent"," getObjectValues","setImmediate","mixin"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o, p,q,r,s,t,u,v,w,x,y,z,aa){var ba=[],ca,da=false;function ea(){if(!da){da=true;z(function(){da=false;});}}function fa(){fa=v;n.listen(document.documentElement,'click',function(event){if(da)retur n;var ma=event.getTarget();ba.forEach(function(na){na.clickedTarget=ma;na.active&&!na .sticky&&!i.containsIncludingLayers(na.getActive(),ma)&&!na.inTargetFlyout(ma)&& na.inActiveDialog()&&!na.isIgnoredByModalLayer(ma)&&na.hide();});},n.Priority.UR GENT);}var ga=aa(h);for(var ha in ga)if(ga.hasOwnProperty(ha))ja[ha]=ga[ha];var ia=ga===null?null:ga.prototype;ja.prototype=Object.create(ia);ja.prototype.cons tructor=ja;ja.__superConstructor__=ga;function ja(){"use strict";this.active=null;this.togglers={};this.setSticky(false);ba.push(this);t his.subscribe(['show','hide'],ja.inform.bind(ja));return fa();}ja.prototype.show=function(ma){"use strict";var na=ka(this,ma),oa=na.active;if(ma!==oa){oa&&na.hide();na.active=ma;j.addClass(m a,'openToggler');var pa=l.scry(ma,'a[rel="toggle"]');if(pa.length>0&&pa[0].getAttribute('data-target '))j.removeClass(w(pa[0].getAttribute('data-target')),'toggleTargetClosed');var qa=m.scry(ma,'.uiToggleFlyout')[0];if(qa){var ra=q.find(qa)[0]||qa;if(ra.tabIndex==-1)ra.tabIndex=0;o.setWithoutOutline(ra);} if(pa.length>0){l.appendContent(ma,na.getToggler('next'));l.prependContent(ma,na .getToggler('prev'));}n.listen(ma,'keydown',function(event){if(n.getKeyCode(even t)===p.ESC)if(na.isShown()){var sa=l.scry(ma,'a[rel="toggle"]')[0];sa&&sa.focus();na.hide();}});na.inform('show ',na);}};ja.prototype.hide=function(ma){"use strict";var na=ka(this,ma),oa=na.active;if(oa&&(!ma||ma===oa)){j.removeClass(oa,'openToggle r');var pa=l.scry(oa,'a[rel="toggle"]');if(pa.length>0&&pa[0].getAttribute('data-target '))j.addClass(w(pa[0].getAttribute('data-target')),'toggleTargetClosed');y(na.to gglers).forEach(l.remove);na.inform('hide',na);na.active=null;}};ja.prototype.to ggle=function(ma){"use strict";var na=ka(this,ma);if(na.active===ma){na.hide();}else na.show(ma);ea();};ja.prototype.getActive=function(){"use strict";return ka(this).active;};ja.prototype.isShown=function(){"use strict";return ka(this).active&&j.hasClass(ka(this).active,'openToggler');};ja.prototype.inTar getFlyout=function(ma){"use strict";var na=la(this.getActive());return na&&i.containsIncludingLayers(na,ma);};ja.prototype.inActiveDialog=function(){" use strict";var ma=a.Dialog&&a.Dialog.getCurrent();return !ma||l.contains(ma.getRoot(),this.getActive());};ja.prototype.isIgnoredByModalL ayer=function(ma){"use strict";var na=!!i.parentByClass(ma,"_3qw"),oa=!!i.parentByClass(this.getActive(),"_3qw");r eturn na&&!oa;};ja.prototype.getToggler=function(ma){"use strict";var na=ka(this);if(!na.togglers[ma]){na.togglers[ma]=l.create('button',{className:' hideToggler',onfocus:function(){var oa=l.scry(na.active,'a[rel="toggle"]')[0];oa&&oa.focus();na.hide();},style:{rig ht:ma==='next'?'0':''}});na.togglers[ma].setAttribute('type','button');}return this.togglers[ma];};ja.prototype.setSticky=function(ma){"use strict";var na=ka(this);ma=ma!==false;if(ma!==na.sticky){na.sticky=ma;if(ma){na.$Toggler0&& na.$Toggler0.unsubscribe();}else na.$Toggler0=g.subscribe('pre_page_transition',na.hide.bind(na,null));}return na;};ja.prototype.setPrePageTransitionCallback=function(ma){"use strict";var na=ka(this);na.$Toggler0&&na.$Toggler0.unsubscribe();na.$Toggler0=g.subscribe(' pre_page_transition',ma);};ja.bootstrap=function(ma){"use strict";var na=ma.parentNode;ja.getInstance(na).toggle(na);};ja.createInstance=function(ma) {"use strict";var na=new ja().setSticky(true);k.set(ma,'toggler',na);return na;};ja.destroyInstance=function(ma){"use strict";k.remove(ma,'toggler');};ja.getInstance=function(ma){"use strict";while(ma){var na=k.get(ma,'toggler');if(na)return na;if(j.hasClass(ma,'uiToggleContext'))return ja.createInstance(ma);ma=x(ma);}return (ca=ca||new ja());};ja.listen=function(ma,na,oa){"use strict";return ja.subscribe(t(ma),function(pa,qa){if(qa.getActive()===na)return oa(pa,qa);});};s(ja,ja.prototype);s(ja,{subscribe:(function(ma){return function(na,oa){na=t(na);if(r(na,'show'))ba.forEach(function(pa){if(pa.getActiv e())setTimeout(oa.bind(null,'show',pa),0);});return ma(na,oa);};})(ja.subscribe.bind(ja))});function ka(ma,na){if(ma instanceof ja)return ma;return ja.getInstance(na);}function la(ma){var na=l.scry(ma,'a[rel="toggle"]');if(na.length>0&&na[0].getAttribute('data-target '))return w(na[0].getAttribute('data-target'));}e.exports=ja;},null);
    __d("onEnclosingPageletDestroy",["Arbiter","DOMQuery"],function(a,b,c,d,e,f,g,h) {function i(j,k){var l=g.subscribe('pagelet/destroy',function(m,n){if(h.contains(n.root,j)){l.unsubs cribe();k();}});return l;}e.exports=i;},null);
    __d("FbFeedHighlight",["JSXDOM","CSS","DOM","DOMScroll","cx"],function(a,b,c,d,e ,f,g,h,i,j,k){var l=1000,m=1000,n=null;function o(){return (g.div({className:"_1usz"},g.div({className:"_1us-"}),g.div({className:"_1us_"} ),g.div({className:"_1ut0"}),g.div({className:"_1ut1"})));}var p={highlightAndScrollTo:function(q){p.highlight(q);p.scrollTo(q);},highlightSin gle:function(q){var r=o();i.appendContent(q,r);setTimeout(function(){if(n)i.remove(n);n=r;h.addClas s(q,"_1ut2");},0);setTimeout(function(){h.removeClass(q,"_1ut2");setTimeout(func tion(){i.remove(r);if(r==n)n=null;},l+m);},l+m);},highlight:function(q){var r=o();i.appendContent(q,r);setTimeout(h.addClass.bind(null,q,"_1ut2"),0);setTim eout(function(){h.removeClass(q,"_1ut2");setTimeout(i.remove.bind(null,r),l+l);} ,l+m);},scrollTo:function(q){setTimeout(j.scrollTo.bind(null,q),0);}};e.exports= p;},null);
    __d("XNotificationInlineStoryInsertControllerURIBuilder",["XControllerURIBuilder "],function(a,b,c,d,e,f){e.exports=b("XControllerURIBuilder").create("\/desktop_ notifications\/insert_story\/",{uri:{type:"String",required:true},uri_path:{type :"String",required:true},first_insert:{type:"Bool"},notif_id:{type:"String",requ ired:true}});},null);
    __d("InlineStoryInsert",["Animation","Arbiter","AsyncRequest","csx","DOM","DOMQu ery","DOMScroll","FbFeedHighlight","ge","XNotificationInlineStoryInsertControlle rURIBuilder","Toggler","$"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){var s=null,t={insertStory:function(u){q.hide(r("fbNotificationsJewel"));var v=r("pagelet_composer");g.insert(v,u,k.insertAfter);s=l.scry(r("stream_pagelet" ),"._2dt8")[0];var w=l.scry(s,"._2fx2")[0],x=l.scry(u,"._2fx3")[0];h.subscribeOnce('notifStory/ufi Loaded',function(){t.scrollToHeaderandHighlightStory(w,x);}.bind(this));},prepen dStory:function(u){q.hide(r("fbNotificationsJewel"));s=l.scry(r("stream_pagelet" ),"._2dt8")[0];var v=l.scry(s,"._2fx2")[0],w=l.scry(u,"._2fx3")[0];t.dedupe(s,"._2fx4",u);g.insert (v,u,k.insertAfter);h.subscribeOnce('notifStory/ufiLoaded',function(){t.scrollTo HeaderandHighlightStory(v,w);}.bind(this));},scrollToHeaderandHighlightStory:fun ction(u,v){n.highlight(v);m.scrollTo(u);h.inform('inlineStory/insertLoaded');},g otoPermalink:function(u){window.open(u,'_self');},stopLoadingAndFallback:functio n(u){window.open(u,'_self');h.inform('inlineStory/insertLoaded');},requestStory: function(u,v,w,x){h.subscribeOnce('notifStory/ufiLoaded',function(){t.setComment Focus();}.bind(this));var y=new p().setString('uri',u).setString('uri_path',v).setBool('first_insert',w).setStr ing('notif_id',x).getURI();new i().setURI(y).send();},setCommentFocus:function(){var u=k.scry(s,'textarea');if(u.length>0)u[0].focus();},dedupe:function(u,v,w){var x=l.scry(u,v);for(var y=0;y<x.length;y++)if(x[y].id===w.id){k.remove(x[y]);return;}},_insert:function (u,v,w){var x=l.scry(r("stream_pagelet"),"._2fx4").length===0;t.requestStory(u,v,x,w);},_is InFeed:function(){if(!o("pagelet_composer"))return false;return true;},_notifStoryUFI:function(u){if(!t._isInFeed())return false;var v=null,w=null;v=l.scry(r("stream_pagelet"),"._2dt8");if(v.length>0){w=v[0];if(l .contains(w,u))return true;}return false;}};e.exports=t;},null);
    __d("SnowflakePermalinkUtils",["URI"],function(a,b,c,d,e,f,g){var h=/\/[^/]+\/(albums\/([^/]+)|posts\/([a-zA-Z]+[^/]+))\/([^/]+\/)?/,i=/\/[^/]+\/ (albums|posts)\/([^/]+)\/([^/]+\/)?/,j={isPermalinkURI:function(k){k=g(k);return h.test(k.getPath());},parseURI:function(k){if(!this.isPermalinkURI(k))return {};k=g(k);var l=k.getPath().match(i);return {setToken:l[2],entIdentifierToken:l[3],photoID:k.getQueryData().photo_id};}};e. exports=j;},null);
    __d("Sticker.react",["Arbiter","React","StickerConfig","StickerConstants","empty Function","getElementPosition","getObjectValues"],function(a,b,c,d,e,f,g,h,i,j,k ,l,m){'use strict';var n=83,o=5000,p=10,q={CLICK:'click',HOVER:'hover',LOAD_AND_HOVER:'load_and_hover' },r=h.createClass({displayName:"Sticker",propTypes:{animationTrigger:h.PropTypes .oneOf(m(q)),frameCount:h.PropTypes.number.isRequired,frameRate:h.PropTypes.numb er,framesPerCol:h.PropTypes.number.isRequired,framesPerRow:h.PropTypes.number.is Required,onStickerClick:h.PropTypes.func,packID:h.PropTypes.string,sourceURI:h.P ropTypes.string.isRequired,sourceWidth:h.PropTypes.number.isRequired,sourceHeigh t:h.PropTypes.number.isRequired,spriteURI:h.PropTypes.string,stickerID:h.PropTyp es.string,subscribedThreadID:h.PropTypes.string},getInitialState:function(){retu rn {index:0,hasAnimated:false,unsubscribeID:null};},getDefaultProps:function(){ret urn {frameRate:n,onStickerClick:k,packID:null,shown:false};},componentDidMount:func tion(){this._stopIntervalID=0;if(this.props.animationTrigger===q.LOAD_AND_HOVER& &this.props.frameCount>1&&this.props.spriteURI)this.startAnimation();if(this.pro ps.subscribedThreadID&&this.props.frameCount>1){var s=g.subscribe(this.props.subscribedThreadID,function(t,u){this.isScrolledIntoVi ew(u.scrollTop,u.viewHeight,u.top);}.bind(this));this.setState({unsubscribeID:s} );}},componentDidUpdate:function(s){if(i.AutoAnimateStickerTray&&!s.shown&&this. props.shown)this.startAnimation();},componentWillUnmount:function(){if(this.stat e.unsubscribeID)g.unsubscribe(this.state.unsubscribeID);if(this.isAnimating())cl earInterval(this._stopIntervalID);},isAnimating:function(){return !!this._stopIntervalID;},getWidth:function(){return Math.floor(this.props.sourceWidth);},getHeight:function(){return Math.floor(this.props.sourceHeight);},preloadSprite:function(){var s=new Image();s.onload=function(){if(this.isMounted()&&!this.state.hasAnimated){this. setState({hasAnimated:true});this._stopIntervalID=setInterval(this.incrementFram eIndex,this.props.frameRate);}}.bind(this);if(i.ChatPaddedAnimatedStickerGK&&thi s.props.paddedSpriteURI){s.src=this.props.paddedSpriteURI;}else s.src=this.props.spriteURI;},isScrolledIntoView:function(s,t,u){var v=l(this.getDOMNode()),w=s+v.y-u,x=s+t,y=w+v.height;if(this.props.frameCount>1& &!this.state.hasAnimated&&y-p<=x&&w+p>=s)this.startAnimation();},startAnimation: function(){if(!this.state.hasAnimated&&this.props.spriteURI){this.preloadSprite( );}else if

    I didn't read the post - just the title - puk and pin for the sim card?  That is a carrier feature - contact her carrier and see what they say.

  • A bug that it good to know about (in Captivate 7)

    I have noticed a strange behavior when you click on a smartshape button, or a normal button, with for example a Toggle command (Captivate 7). It then also seems to send a "continue" command. So if you are at the end of a slide, it will go to next in line as an addition to Toggling whatever you wanted Toggled.
    I tried for example to do a Toggle TOC button. If the playhead had reached the end of a slide, clicking the button to close the TOC also made it jump to the next slide.
    The fix for this is to do the old fashioned Execute Advanced Action, and in that one use the Toggle function. A one line advanced action. Not so advanced... Rather really stupid.

    In another post, you wanted to know how/ where to report bugs (or feature request as I would call it in this case). Here it is:
    https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform
    As far as your concern that whether Adobe cares, yes, they do. But they have their own priorities. One of the ways to make your case stronger is by gathering support for your request and making more people ask for the feature.
    Sreekanth

  • Please help me with my problem, urgently worried and tired. Cant seem to find a solution!

    I was just doing my website and doing my css stylings. Suddenly, when i create a css rule, it stopped showing in my live view or browser. It still appears the way i want in design view. I have no idea why, i am only a beginner and i am struggling with this. My assignment is due soon and i have not finished, I am feeling so stressed now i have resort to asking here. Please please help me, this means so much to me...i know its really messy i just need all my css to work. The textarea and form parts are not working. any new css created from this stage doesnt work too.
    Here is my html code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script src="js/jquery-1.10.2.min.js"></script>
    <script src="js/lightbox-2.6.min.js"></script>
    <script src="SpryAssets/SpryEffects.js" type="text/javascript"></script>
    <link href="css/lightbox.css" rel="stylesheet" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <link href="css/gallerystyle.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    #apDiv1 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 1;
              left: -9px;
              top: 75px;
    #apDiv2 {
              position: absolute;
              width: 754px;
              height: 115px;
              z-index: 1;
              left: 262px;
              top: 28px;
    a {
              font-weight: bold;
    a:link {
              text-decoration: none;
    a:visited {
              text-decoration: none;
    a:hover {
              text-decoration: none;
    a:active {
              text-decoration: none;
              font-weight: bold;
              color: #000;
    body,td,th {
              color: #000;
    #apDiv3 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 2;
              left: 31px;
              top: 27px;
    #apDiv4 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 21;
              top: 199px;
              left: 35px;
    #apDiv5 {
              position: absolute;
              width: px;
              height: 150px;
              z-index: 21;
              top: 145px;
              left: 8px;
    #apDiv6 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 22;
    #apDiv7 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 22;
    #apDiv8 {
              position: absolute;
              width: 269px;
              height: 332px;
              z-index: 22;
              left: 285px;
              top: 175px;
    #apDiv9 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 22;
              left: 271px;
              top: 107px;
    #apDiv10 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 23;
              left: 588px;
              top: 106px;
    #apDiv11 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 24;
              left: 909px;
              top: 105px;
    #apDiv12 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 25;
              left: 273px;
              top: 497px;
    #apDiv13 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 26;
              left: 590px;
              top: 494px;
    #apDiv14 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 27;
              left: 910px;
              top: 498px;
    #apDiv15 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 28;
              left: 275px;
              top: 886px;
    #apDiv16 {
              position: absolute;
              width: 200px;
              height: 115px;
              z-index: 22;
              left: 435px;
              top: 145px;
    #apDiv17 {
              position: absolute;
              width: 439px;
              height: 115px;
              z-index: 22;
              left: 267px;
              top: 156px;
    </style>
    <script type="text/javascript">
    function MM_effectAppearFade(targetElement, duration, from, to, toggle)
              Spry.Effect.DoFade(targetElement, {duration: duration, from: from, to: to, toggle: toggle});
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    </script>
    </head>
    <body onload="MM_preloadImages('images/GalleryTOPS/STRIPEY/3.jpg','images/GalleryTOPS/LONG/3.jp g','images/GalleryTOPS/vneck/3.jpg','images/GalleryTOPS/pink/3.jpg','images/GalleryTOPS/ss /3.jpg')">
    <div id="apDiv5">
       <section class="ac-container">
                                            <div>
                                                      <input id="ac-1" name="accordion-1" type="checkbox" />
                                              <label for="ac-1">New Arrivals</label></li>
                                            <div>
                                                      <input id="ac-2" name="accordion-1" type="checkbox" />
                                              <label for="ac-2">Tops</label>
                                                      <article class="ac-medium"><a href="blouse.html" class="linkstyle"><span class="linkk"> <span class="ac-medium">Blouse
                                                      </span><br />
    <a href="#" class="linkk">Printed Tops</a><br />
    <a href="#" class="linkk"> Basics</a></article>
                                            </div>
                                            <div>
                                                      <input id="ac-3" name="accordion-1" type="checkbox" />
    <label for="ac-3">Bottoms</label>
                                                      <article class="ac-small">
                          <a href="#" class="linkk">Pants</a>
                      <a href="#"> <li class="linkk" id="active">Skirts</li></a>
                      <span class="linkk"></span></article>
                                                      <div>
                                                      <input id="ac-4" name="accordion-1" type="checkbox" />
                                                      <label for="ac-4">Dresses</label>
                                            </div>
                                                            <div>
                                                      <input id="ac-5" name="accordion-1" type="checkbox" />
                                                      <label for="ac-5">Bags & Accessories</label>
                                                      <article class="ac-large">
                          <span class="linkk"><a href="#" class="linkk"><span class="ac-large">Bags </span></a><span class="ac-large"><br />
                          <a href="#" class="linkk">Clutches</a>
    <br />
    <a href="#" class="linkk">Necklaces & Bracelets</a><br />
    <a href="#" class="linkk">Eyewear</a></span></span> </article>
                        </div>
                                                                <div>
                                                      <input id="ac-6" name="accordion-1" type="checkbox" />
                                                      <label for="ac-6">Shoes</label>
                                                      <article class="ac-large">
                          <span class="linkk"><a href="#" class="linkk"><span class="ac-large">Flats</span></a>          <span class="ac-large"><br />
                          <a href="#" class="linkk">Heels</a>
    <br />
    <a href="#" class="linkk">Boots</a></span></span></article>                   
    </section>
    </div>
    <div id="apDiv2">
    <ul id="menu">
      <li><a href="#">Home</a></li>
      <li id="active"><a href="#">Shop</a></li>
              <li><a href="#">Blog</a></li>
              <li><a href="#">About</a></li>
              <li><a href="#">FAQ</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
    </div>
    <div id="apDiv3"><img src="images/images/images/dolce_03.png" width="172" height="62" /></div>
    </body>
    </html>
    HERE IS MY CSS CODE:
    @charset "utf-8";
    /* CSS Document */
    #menu{
              width: 100%;
              margin: 0;
              padding: 10px 0 0 0;
              list-style: none; 
              background: none;
    #menu li{
              float: left;
              padding: 0 0 10px 0;
              position: relative;
              font-weight: bold;
    #menu a{
              float: left;
              height: 25px;
              padding: 0 34px;
              color: #CCC;
              text-transform: uppercase;
              font: bold 14px/27px Arial, Helvetica;
              text-decoration: none;
    #active a{float: left;
              height: 25px;
              padding: 0 34px;
              color: #000;
              text-transform: uppercase;
              font: bold 14px/27px Arial, Helvetica;
              text-decoration: none;}
    #menu li:hover > a{
              color: #000;
              transition:.30s ease-in-out;
              -moz-transition: .30s ease-in-out;
              -webkit-transition: .30s ease-in-out;
    /* Sub-menu */
    /* Clear floated elements */
    #menu:after{
              visibility: hidden;
              display: block;
              font-size: 0;
              content: " ";
              clear: both;
              height: 0;
    * html #menu             { zoom: 1; } /* IE6 */
    *:first-child+html #menu { zoom: 1; } /* IE7 */
    .ac-container{
              width: 200px;
              margin: 10px auto 30px auto;
              text-align: left;
    .ac-container label{
              font-family: Arial, Helvetica, sans-serif;
              padding: 5px 20px;
              position: relative;
              z-index: 20;
              display: block;
              height: 30px;
              cursor: pointer;
              color: #000;
              line-height: 33px;
              font-size: 13px;
              box-shadow: 1px  0px #333;
              filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ffffff',GradientType=0 );
              font-weight: bold;
    .ac-container label:hover{
              color: #ccc;
              background-image:
    .ac-container input:checked + label,
    .ac-container input:checked + label:hover{
              background: #FFF;
              color: #F1C97E;
              text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
    .ac-container label:hover:after,
    .ac-container input:checked + label:hover:after{
              content: '';
              position: absolute;
              width: 24px;
              height: 24px;
              right: 13px;
              top: 7px;
    .ac-container input:checked + label:hover:after{
    .ac-container input{
              display: none;
    .ac-container article{
              margin-top: -1px;
              overflow: hidden;
              height: 0px;
              position: relative;
              z-index: 10;
              -webkit-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
              -moz-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
              -o-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
              -ms-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
              transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
              padding-left:60px;
    .ac-container input:checked ~ article{
              -webkit-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
              -moz-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
              -o-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
              -ms-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
              transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
    .ac-container input:checked ~ article.ac-small{
              height: 30px;
              padding-left:60px;
    .ac-container input:checked ~ article.ac-medium{
              height: 50px;
              padding-left:60px;
    .ac-container input:checked ~ article.ac-large{
              height: 90px;
              padding-left:60px;
    .linkk {
              font-family: Arial, Helvetica, sans-serif;
              font-size: 12px;
              color: #000;
    .linktext {
              font-family: Arial, Helvetica, sans-serif;
              font-size: 13px;
              color: #333;
    .accordion {  
         width:830px; 
         overflow:hidden;  
         margin:10px auto;  
         color:#;  
         padding:10px;  
    .accordion section{  
          float:left; 
          overflow:hidden;  
          color:#;  
          cursor:pointer;  
          margin:3px;  
    .accordion section:hover { 
          background:; 
    .accordion section p {  
          display:none;  
    .accordion section:after{ 
          position:relative; 
          font-size:24px; 
          color:#000; 
          font-weight:bold; 
    .accordion section:nth-child(1):after{ content:'1'; } 
    .accordion section:nth-child(2):after{ content:'2'; } 
    .accordion section:nth-child(3):after{ content:'3'; } 
    .accordion section:nth-child(4):after{ content:'4'; } 
    .accordion section:nth-child(5):after{ content:'5'; } 
    .accordion section:target {  
          background:#FFF;  
          padding:10px; 
    .accordion section:target:hover {  
          background:#FFF;  
    .accordion section:target h2 { 
          width:100%; 
    .accordion section:target h2 a{  
          color:;  
          padding:0; 
    .accordion section:target p { 
          display:block; 
    .accordion section h2 a{ 
          padding:8px 10px; 
          display:block;  
          font-size:16px;  
          font-weight:normal; 
          color:  
          text-decoration:none;  
    .vertical section{  
         width:100%;  
         height:40px;  
         -webkit-transition:height 0.2s ease-out; 
         -moz-transition:height 0.2s ease-out; 
         -o-transition:height 0.2s ease-out; 
         transition:height 0.2s ease-out; 
    /*Set height of the slide*/ 
    .vertical :target{  
         height:250px;  
         width:97%; 
    .vertical section h2 {  
         position:relative;  
         left:0;  
         top:-15px;  
    /*Set position of the number on the slide*/ 
    .vertical section:after{  
          top:-50px; 
          left:810px; 
    .vertical section:target:after{  
          left:-9999px; 
    .item {
              width: 490px;
              height: 30px;
              /* height = total height of A child element */
              overflow: hidden;
              margin-bottom: 3px;
              transition: height ease-in-out 500ms; /* css3 transition */
              -o-transition: height ease-in-out 500ms;
              -moz-transition: height ease-in-out 500ms;
              -webkit-transition: height ease-in-out 500ms;
              font-family: Arial, Helvetica, sans-serif;
              font-size: 12px;
              color: #000;
              padding-bottom:1px;
    #accordion div:target {
              height: 150px;
              transition: background .30s ease-in-out;
              -moz-transition: background .30s ease-in-out;
              -webkit-transition: background .30s ease-in-out; /* height = total height of A and P child elements */
    #accordion a {
        display: block;
        height: 20px;
        background: #fff;
              -webkit-transition: height ease-in-out 500ms;
              font-family: Georgia, "Times New Roman", Times, serif;
              font-size: 24px;
              font-style: italic;
              font-weight: bold;
              color: #333;
              text-decoration: underline;
        padding: 1px;
    #accordion a:hover {
        display: block;
        height: 20px;
        background: #fff;
              -webkit-transition: height ease-in-out 500ms;
              font-family: Georgia, "Times New Roman", Times, serif;
              font-size: 24px;
              font-style: italic;
              font-weight: bold;
              color: #f1c97e;
              text-decoration: underline;
        padding: 1px;
              transition:.30s ease-in-out;
              -moz-transition:  .30s ease-in-out;
              -webkit-transition:.30s ease-in-out;}
    #accordion div:hover a:before {    color: #F1c97e;
              content:url(../images/images/aa_03.png)
    #accordion p {
        height: 380px;
        padding: 5px;
    .enqhead {
              font-family: "Arial Black", Gadget, sans-serif;
              font-size: 16px;
              font-style: normal;}
    .enquhead {
              font-family: Georgia, "Times New Roman", Times, serif;
              font-size: 18px;
              font-weight: bold;
              color: #333;
              border: 3px solid #333;
              position: absolute;
    .embox {
              border-top-color: #000;
    .enqq {
              font-family: Georgia, "Times New Roman", Times, serif;
              font-weight: bold;
              font-style: italic;

    I'll 2nd Chris's comments about position:absolute.  It is definitely not needed for 98% of page layouts and in most cases should be avoided because it makes a complete mess of things. 
    You also have quite a few coding errors which mucks things up in browsers.  While I'm not certain what all you're trying to do with those labels, But I think you can simplify things enormously by using a very basic CSS layout and simple jQuery Accordion panels. 
    Copy & paste the following code into a new, blank document.  SaveAs test.html and preview in browsers.
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>HTML5 Document with Accordion Panels</title>
    <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <script src="http://code.jquery.com/jquery-latest.min.js"> </script>
    <style>
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
    img { vertical-align: baseline }
    body {
        width: 960px; /**adjust width as needed**/
        margin: 0 auto; /**with width, this is centered**/
        padding:0;
        background: #69F;
        font: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", Verdana, sans-serif;
        font-size: 100%;
        color: #000;
    /**global text links**/
    a img { border: none }
    a {
        font-weight: bold;
        text-decoration: none
    a:link { color: #069; }
    a:visited { color: #69F }
    a:hover, a:active, a:focus {
        text-decoration: underline;
        color: #000;
        outline: none;
    header {
        margin:0;
        padding:0;
        overflow: hidden;/*float containment**/
        width: 100%;
    header:after {
        /**clear floats**/
        content: '';
        visibility: hidden;
        display: block;
        clear: both;
    footer {
        margin:0;
        padding:0;
        width: 100%;
        color: #FFF;
        text-align: center
    article {
        margin:0;
        background: #FFF;
        padding: 2%;
    /**top navigation**/
    nav {
        margin:0;
        padding:0;
        float: right;
        width: 75%;
        overflow:hidden;
    #menu {
        width: 100%;
        margin: 0;
        padding: 10px 0 0 0;
        list-style: none;
    #menu li {
        float: left;
        padding: 0 0 10px 0;
        position: relative;
        font-weight: bold;
    #menu li a {
        display: block;
        padding: 0 34px;
        color: #CCC;
        text-transform: uppercase;
        font: bold 14px/27px Arial, Helvetica;
        text-decoration: none;
    #menu li:hover > a {
        color: #000;
        transition: .30s ease-in-out;
        -moz-transition: .30s ease-in-out;
        -webkit-transition: .30s ease-in-out;
    /* Clear floated elements */
    #menu:after {
        visibility: hidden;
        display: block;
        font-size: 0;
        content: " ";
        clear: both;
        height: 0;
    * html #menu { zoom: 1; } /* IE6 */
    *:first-child+html #menu { zoom: 1; } /* IE7 */
    /**accordion panels**/
    .accordion { margin: 50px; }
    .accordion dt {
        background: #DDD;
        line-height: 50px;
        padding: 10px;
        border: 1px solid #000;
        border-bottom: 0;
    .accordion dd {
        min-height: 100px;
        margin-left: 0;
        padding: 20px;
        border: 1px solid #ccc;
    .accordion dd &:last-of-type {
    border-top: 1px solid white;
    position: relative;
    top: -1px;
    .accordion dt a {
        display: block;
        font-weight: bold;
    </style>
    </head>
    <body>
    <header> <img src="http://placehold.it/172x62" height="62" width="172" alt="logo" >
    <nav>
    <ul id="menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">Shop</a></li>
    <li><a href="#">Blog</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">FAQ</a></li>
    <li><a href="#">Contact</a></li>
    </ul>
    </nav>
    </header>
    <article> <h2>New Arrivals &gt; Tops</h2>
    <dl class="accordion">
    <dt><a href="">Blouses</a></dt>
    <dd><a href="#">Printed Tops</a>  |  <a href="#" >Basics</a></dd>
    <dt><a href="">Bottoms</a></dt>
    <dd><a href="#">Pants</a> |   <a href="#">Skirts</a></dd>
    <dt><a href="">Dresses</a></dt>
    <dd>Something here... |   something here... |  something here...</dd>
    <dt><a href="">Bags &amp; Accessories</a></dt>
    <dd>Bags  |   Clutches  |   Necklaces &amp; Bracelets |  
    Eyewear</dd>
    <dt><a href="">Shoes</a></dt>
    <dd><a href="#">Flats</a> |   <a href="#">Heels</a> |   <a href="#">Boots</a></dd>
    </dl>
    <!--end accordion panels-->
    </article>
    <footer> <small>© 2013 XYZ Company. All rights reserved. </small> </footer>
    <script>
    //jQuery Accordion Panels//
    (function($) {
      var allPanels = $('.accordion > dd').hide();
      $('.accordion > dt > a').click(function() {
          $this = $(this);
          $target =  $this.parent().next();
          if(!$target.hasClass('active')){
             allPanels.removeClass('active').slideUp();
             $target.addClass('active').slideDown();
        return false;
    })(jQuery);
    </script>
    </body>
    </html>
    ❄  ☃  ❄Nancy O.

  • StarCraft II: Wings of Liberty Live Chat Session - Transcript

    Transcript for "StarCraft II: Wings of Liberty Developer Chat", Thurs July 15 2010 (Part I)
    Aaron-GS: Good evening and welcome to our StarCraft II: Wings of Liberty developer chat!
    Aaron-GS: Chris Sigaty from Blizzard Entertainment is currently online with us and he's here to answer your questions about the game! Dustin Browder will be joining us shortly.
    ChrisSi: Hello everyone!
    Aaron-GS: This chat is queued and moderated, so please allow the developers some time to review and respond to your questions.
    Aaron-GS: Please also refrain from asking complex, multi-part questions to be fair to other participants.
    Aaron-GS: The queue is now open, so ask away!
    sillyup20: Regarding future balance changes, will you guys continue to patch SC2 after release to ensure balance of all 3 races?
    ChrisSi: Yes, it's definitely important to us to ensure that the game remains balanced after launch. We will make patches as needed to address balance issues after launch
    Guest-16: For the Campaign experience, will there be variation for future play throughs?
    ChrisSi: Yes, one of the things we're really excited about with the campaign of Wings of Liberty is that players can make choices as to which missions to do next, what technologies they want to upgrade their army with, and so on. We think there's a lot of replayability in this huge campaign (29 missions) and players will get a ton of play time just with the campaign and some replayability
    Guest-46: What is the devs' relationship with the Battle.net 2.0 team?
    ChrisSi: We work very closely and we're in constant contact with the Battle.net team. The launch of StarCraft II and Battle.net is very much a team effort at Blizzard.
    Guest-81: Will Kerrigan have a large role in Starcraft 2: Wings of Liberty?
    Lamonte: How many 1v1 multiplayer maps will be available for launch? And how will user created maps get put into the 1v1 map pool?
    ChrisSi: yes she definitely plays a large role in the story. but how exactly that plays out, you'll have to play to see
    DustinB: I think it's about 10 maps in the 1v1 queue. As we see great community maps we will take them internally, fix them up to match our map making standards (if necessary) and add them to the pool.
    Guest-19: Will you be doing an overhaul of some of the SC2 sounds, in particular, the siege tank and the hydra death and the marine death sound? Many of the fans are concerned that the audio side of Starcraft 2 will not be up-to-date and on-par with the graphics, animations and multiplayer experience
    Aaron-GS: The queue has been temporarily closed to allow Chris and Dustin some time to answer questions that have already been submitted.
    Aaron-GS: Thank you for your patience.
    DustinB: The sounds you hear in the beta are largely final. We will continue to update sounds in patches and of course in our two expansion products, Heart of the Swarm and Wings of Liberty.
    Guest-73: Will you please stop nerfing Protoss? Much love from Aiur.
    DustinB: The Protoss are now only slightly ahead of the other two races according to our numbers. But I think the nerfs for the Protoss are done for now. However the community continues to learn and we will buff and nerf as needed.=)
    pureWasted: Do you have any plans to make units such as Reapers and Zerglings more viable in the late game?
    DustinB: We continue to watch the balance in the game. Zerglings and Reapers do have some uses in the late game in some match ups, and we are waiting to see if they have more use once the community learns more about the game or if they fall off user build orders all together. We will not be doing any more patches in beta and we will be waiting at least several weeks after launch before we do any additional balance patch work (unless we see something really broken). In many ways the balance is in the hands of the community now for a while. We will see what kinds of strategies people come up with, what they learn to do with what they have and we will make decisions only after we learn a lot more about how the game plays with ALL of our fans playing.=)
    Guest-64: Could you go into more detail on the Zerg campaign for Heart of the Swarm? What new features can we expect?
    Guest-82: Hello, do you plan any new changes with the mothership? Alot of people feel that it's price is not worth it. Also, how about the ultralisk? I think the ultralisk should be able to at least walk over the zerglings. Thoughts?
    DustinB: We are not going to any changes on the Mothership in the near future. Internal debate rages about this unit, I have been told by several people both inside and outside of blizzard that the unit is far too powerful. The Ultralisk needs a lot more testing before we know how good he is or is not in his current state. I have heard complaints both ways on this unit, that he is way too powerful (mostly against Protoss) and way too weak (mostly against Terrans). But we shall have to wait and see.
    Guest-93: Will there be any significant changes between phase 2 beta and the launched version?
    DustinB: We are not going to make major changes to game balance bewteen beta and launch. We will be fixing bugs and improving game perfomance and stability.
    Guest-29: With certain maps being biased to certain races, are you planning on remaking the maps or just releasing other maps to play ladder matches that are balanced?
    DustinB: There are always going to be maps that favor one race over another. We try to strike a good balance between these maps. If there is a map that is VERY unbalanced we will pull it from the match making pool (like Incineration Zone in Beta 1). If a map needs small fixes to make it better we will make those, though in most cases I think we would just put new maps into the mix.
    Guest-89: QXC wants to know if you have plans to tweak Reapers and Battlecruisers so that we see them more in competitive play
    DustinB: We do not have plans on Reapers or Battlecruisers at the moment. That may change after the game goes live and as the community gets more time with the game. I think Battlecruisers are fundamentally vulnerable in PvT and TvT (Void Rays and Vikings) though they could be tweaked to have use in TvZ.
    Guest-104: Dustin, is this really you?! http://beta-us.battle.net/sc2/en/media/artwork#/po​rtrait_goliath_mercenary ^^
    Guest-80: With respect to Battle.Net, will there be automated tournaments a la Warcraft 3 and if so will they have rewards such as portraits or decals?
    ChrisSi: that is a mysterious resemblance, Guest 104!
    DustinB: We do have plans for automated tournaments, but they are a little ways off. Look for these in the future. We are pretty geeked up about getting to put them in (and play them ourselves). =)
    Guest-85: What classic/new units will we play with in the campaign that didnt make the cut in the Multiplayer game? Eg; firebat, medic, what others?
    DustinB: I don't know that I remember the full list. Here is what comes to mind.=) Medic, Firebat, Vulture, Wraith, Science Vessel, Goliath.
    Guest-70: regarding balance changes, how are you basing your balance changes? do you look at the diamond league statistics in a certain region, base them off tournament play, or what? do you guys at blizzard follow the competative tournament scene and base some balance changes of tham?
    Guest-88: Do you plan to add any new units in future expansions that would be available to use online/multilayer?
    DustinB: We look at stats on all regions and all leagues. We emphasize the importance of balance in the Diamond League as well as pulling stats from our top 1% of players. These are the numbers that need to be as close to 50/50 as we can get them. We do try to make sure that Bronze players don't get much worse than 55/45 in any matchup. In addition we look at tournament play and study those games to see what we can learn about how people are playing the game now as well as how they may play it in the future. David Kim and Matt Cooper (our balance designers) spend pretty much their entire day playing games and watching others play games.=)
    Guest-122: Cross realm play.. Why did you not include it? There has virtually been no lag.
    DustinB: That's something we want to get to in the future. There are some technical and business challenges for us. We do offer our players different ways to buy and play StarCraft 2 in different areas of the world and we need to work out cross realm play so it is fair to all of our fans around the world.
    sillyup20: Will future expansions of SC2 lead to new units in the Mutliplayer?
    DustinB: Yes.=) We will add more units. How we will deal with the games growing complexity is the really interesting challenge that we don't yet have the great answer for. We don't want to have 15+ units per race in the game, so we need to think of something clever that will allow us to add new strategies to the game without making the game too complicated.
    Denthar: are the stats on the units in the campaign going to have the same stats as those in muliplayer?
    DustinB: Mostly yes, but there are some exceptions. We do have some of the units that start weaker in the campaign and get stronger as you buy upgrades for them or gain additional abilities through researching alien organisms and artefacts. In general though there are so many new and crazy units in the campaign that you will find it a very different experience from multiplayer combat.
    Guest-151: Are there any features where you won't need a persistent internet connection such as editors or campaign?
    Guest-41: Do you feel there is room for new units to come (or come back) in the future ?
    ChrisSi: There is an offline mode where you can play the campaign, skirmish against AI or challenge mode w/o needing to be connected to Battle.net (Guest 151)
    DustinB: Yes, we will be dealing with the issue of new units in the expansions. I doubt we will add new units or bring back old units in patches, but anything is possible.
    Guest-166: Can we expect significant changes for each "episode" gameplay wise? (I.E. radical new unit functions, gametypes or innovative maps?)
    DustinB: We are going to do more in the expansions to add new strategies for the fans. I don't know what those will be yet.=)
    Lamonte: You said your map making standards, what are blizzards map making standards?
    DustinB: It is a long and complicated list. In many cases it comes down to simple bugs. In user made maps there are often many small mistakes like areas of the map where units can get easily stuck or trapped, or mistakes in mineral and gas placement, that sort of thing. Generally when we put a map into the matchmaking pool we clean up a few of these bugs before publishing it to Battle.Net
    Guest-124: Can we expect new Blizzard maps as well as user-submitted (turned official) maps? If you could ballpark it, how long should we expect new features & additions from Blizzard for SC2?
    DustinB: yes, we will add user made maps. I expect we will be adding features and custom maps in many of our patches between expansions and obviously we will be adding lots of stuff in the expansions themselves.
    Guest-70: as you may know, there are no 1 supply units in the zerg race at the moment and the zerg is lacking their "swarm" aspect. what are you guys looking into to bring the "swarm" back to the zerg?
    DustinB: Well the Zerglings are .5 supply.=) I know many of our Zerg players were annoyed that we made Roaches 2 supply. We just couldn't justify a 1 supply Roach when we took a look at his stats and we watched and played a ton of Beta games. It was not balanced. We really think the "swarm" aspect of the Zerg comes not from the supply cost of some of their units but from the vast amount of resources they often have at their disposal because they find it so easy to expand. In addition with Spawn Larva the Zerg can easily save up a large amount of production, allowing Zerg forces to attack with a large army, lose that army and then rebuild it very quickly and attack again with a similar force. It feels very "swarmy."
    Guest-172: Can you give us any info about Blizzards plan for E-Sports in the west?
    Guest-190: Will there be a snow tileset in the campaign?
    DustinB: No. We will be doing snow in the future. Sorry. =(
    Scytone: What is your take on EMP? Do you feel it is to strong? are there any plans to change it?
    ChrisSi: esports is very important to us at Blizzard and especially for SC2.We do plan on releasing a patch in the months after launch to address the needs of pro tournaments and eSports, so as we get closer to that we'll have more news to share about our plans for eSports overall (Guest 172)
    DustinB: EMP is necessary for Terrans right to defend against Protoss. I also think it might have more use that we are currently seeing against Zerg (but I could be wrong about that). We have nerfed its radius in the past and we can do so again if necessary. We don't believe (currently) that it is a problem.
    Guest-48: Concerning the ladder promotions system, what further clarity can you provide to us on exactly how this works? I've heard that it works based on some sort of interval system, if so, what sort of intervals? I think many people feel left in the dark on how this works and might like a 'progress bar' for promotions or something similar.
    DustinB: The Battle.Net team has been hard at work on this system throughout Beta-1 and Beta-2. It does currently check every so often to see that you are in the right league. I don't know what the current times are that it checks. I know they are talking about doing some updates to those checks so that they happen more often.
    Guest-215: WIth the new expansions, will current units change in any way?
    DustinB: Current units will change if we think of ways to make them more fun and they will change if we need to alter the balance to deal with anything new we add to those expansions.
    Guest-93: Send: Some phase 2 patches took away some of the social features on battle net. Such as being able to join a friends game simply by right clicking and 'joining game'. Or being ablbe to see other peoples friends through your current friends. Making it easier to connect with friends is really important. Do you plan on brining back these features along with others (chat channels?)
    Guest-81: Are you happy with the Ultralisk? Do you see it as a end game unit that the zerg can use effectively? Compared to the other races end-game units, does the big bug need another buff? Or do they neeed a super bug that's bigger?
    DustinB: I have only had a few great Ultralisk experiences myself. I have seen some truly amazing Ultralisk games and I have seen some total disasters. We are going to "wait and see" on him and see how he does in the coming weeks before we do anything else to him. Remember that in many cases the players find lots of clever ways to use units that don't seem at all obvious to us inside the studio.
    ChrisSi: We're goign to be watching closely how players use the social functionality in Battle.net and continue to refine the system and make it easier and more intuitive to do things like invite players to games and so on. As for chat channels, there'll be a post-launch patch that will include the ability to have private chat channels. Battle.net is very much a living service so you can expect that we'll constantly be making feature additions and improvements to meet the needs of players (Guest 93)
    Guest-149: Do you anticipate further tweaking terran mech or the build time of barracks and gateways?
    DustinB: If necessary. We don't have any plans today.
    Guest-177: Do you plan to rotate the map pool for the ladder, if so will user made maps have a chance to be put in the ladder map pool?
    DustinB: Yes.=) This is a popular question. We will add user maps as we become aware of them.
    Guest-200: There are rumors that there is a LAN enabled professional edition available for professional tournaments to reduce latency... Is this true and will it be available for pro-teams to practice?
    Guest-197: Will there be anymore Zerg soundscape changes before retail? – Wankey
    DustinB: I don't believe there are any changes planned before we go live. Sorry. =(
    Guest-102: Are there still plans to implement an invite only "pro" leauge above the diamond league after launch?
    DustinB: Yes. I don't have all the details, but we do plan on having a "Pro League" that works a little differently from our regular leagues.
    ChrisSi: any rumors you've heard about a "pro edition" are just rumors. We've made no official announcements about that. We will address the needs of pro tournaments and eSports in a patch in the months after the release of SC2. (Guest 200)
    AVBenedetto: Zerg player here. I will gladly trade Roaches for Lurkers in multiplayer, any chance of seeing Lurkers before the expansions?
    DustinB: Not likely, though anything is possible. It's not a Roach trade though. It's a Roach+Baneling trade. When we were testing the game with Lurkers we found that their splash and Baneling splash overlapped quite a bit. For sometime the Lurker was Tier 3 as a result (and siege range) but in that position he was easily spotted by detection (since it is so common in Tier 3) and he wasn't really a "Lurker." Also remember that without Dark Swarm, Lurkers don't have quite the same level of use that they did in SC1.
    Guest-136: Do you believe that StarCraft 2 will be able to reach a similar eSports scene success in the US and/or Europe as Brood War has had in South Korea, including multiple multimillion dollar teams and games broadcasted live on tv daily?
    DustinB: No idea. I hope so.=) It certainly is a fun game to watch (as I'm sure most of you know). What nations and communities will embrace it is largely up to our players and fans. We didn't create esports, our fans did that. =)
    spychi: how many new units have been done for campaign only?
    DustinB: I'm not sure on the exact number. I believe it's about a dozen?
    Guest-153: With updated Terms of Use for new Bnet, it was mentioned you needed Blizzard permission for any type of Esports activity. This of course makes sense, but when I personally contacted support to get the needed paper complete through email or fax. I was told they had no information on this and was given Blizzards Corp. mailing address. Can you save people who are doing Esports Livestream / Ustream showmatches the trouble and let us know how to contact to get this permission Please?
    Guest-275: Will there ever be a toggle function for Unit life bars?? Or a way to make Unit life bars smaller??
    DustinB: There is a toggle for unit life bars. We don't have a way to make them smaller. That sounds like a good suggestion.
    ChrisSi: If you're interested in setting up a tournament and getting appropriate licensing for SC2, contact [email protected]
    Aaron|Social Media Specialist | Best Buy® Corporate
     Private Message

    Transcript for "StarCraft II: Wings of Liberty Developer Chat", Thurs July 15 2010 (Part III)
    Guest-393: Do you have plans to change the custom game list? I ask this because sometimes I search for a game I like, but its not that popular. Therefore its on the bottom of the list and no one joins the game.
    ChrisSi: I can't speak to that issue specifically but if there is a major problem there we will address it in due time. As you know we are committed to patching even older games like SC and Diablo when necessary. At the moment a lot of attention is focused on this launch, so pelase be patient =) (Guest 334)
    DustinB: Again, this is an area that we will be working on in the coming months.=)
    Guest-340: Would it be plausible to see a "StarCraft HD" in the next five years? We'd all love to see the original game "digitally remastered" along the same lines as timeless movies like "Gone with the Wind", "Cassablanca" or the "Wizard of Oz". We don't enjoy them' films on ol' projector reels these days, no sir! -- We've got VCR's now! *spits*.
    DustinB: That would be pretty cool. Currently we have no plans for such a project. =(
    Guest-281: Recently, StarCraft Legacy wrote a really great article regarding the community's concerns with the new Battle.net and we know that Battle.net is going to evolve - but what is the reason for some of the stuff the community thinks was so basic not being included in release? What's the best way to give you guys feedback? We the hardcore, are a highly underused resource!
    DustinB: Oh, we are hearing you guys, don't worry about that.=) We are going to keep working on it as fast as we can. Stuff that isn't in there is stuff we just didn't get to. Keep sending your feedback though, and we'll try to address it as fast as we can.
    Guest-294: Will there be seasonal SC2 ladder resets, similar to WC3 and WoW arena?
    DustinB: That's the plan. Though I don't know yet when the first season is going to end.
    Guest-400: Do you plan on including good and balanced fan made maps (if made) in some of the future ladder map pools?
    DustinB: Yes. =) Also, I answered this one like ten times already.=)
    DustinB: To Guest-156 That's the plan. I don't know exaxtly what new sorting methods will be used in the future, but it's an area we can work on.
    Guest-337: Is Terrible Terrible Damage going to be a cheat code?
    DustinB: Wait and see.=)
    Guest-73: What is your favourite unit and race, and who would win in a 1v1 match between you two (directed to both)?
    DustinB: As the Game Director I don't have the luxury of having a favorite. I play Random unless I am testing something specific. Chris Sigaty doesn't get quite the play time I do. I would totally pwn that noob.
    ChrisSi: oh I think Dustin would have an advantage over me.
    Guest-156: Do you have any information for us on the custom game selection menu? Will new ways to sort through games be made available Soon^TM? The popularity system has its drawbacks.
    DustinB: That's the plan. I don't know exactly what new sorting methods will be used in the future, but it's an area we can work on.
    Guest-389: How exactly does the current Galaxy Editor differ from the version at launch?
    DustinB: We have made some UI improvements as well as stability improvements. More importantly you will have access to all the art in the campaign.=)
    Guest-298: In multiplayer games, are there any plan to implement a counter that would show the supply and resources of your allies? This is something that the community has been asking for a while. It would be extremely useful when one of your ally leave. I remember reading an interview with Dustin that said that the team thought that such a counter would be used to flame your allies but have you considered the possibility of letting players chose if they want to show the counter or not (kinda like you can...
    DustinB: It's certainly something we can talk about for a future patch. I do think there is going to be flaming no matter what we do, so maybe we can find a nice spot to put this info in the UI.
    Guest-70: The Force Field spell seems to be an extremely strong spell and in the recent patch, they have been buffed by decreasing the amount of Force Fields needed to trap or block a unit. It is even possible to trap Roaches in between 2 Force Fields. What is the reasoning for this change?
    Disease: Will the game ship with multiple languages on one DVD or at least with an option to switch the language?
    DustinB: Yeah, that buff happened because we fixed a bug where Zerglings on creep could actually "run past" a line of Zealots that were blocking a choke point. We have a new fix that will come out in our first patch that will make Force Fields work like they did before AND zerglings will still not be able to run past Zealots. In other words, we didn't do it on purpose, it just happened when we fixed something else. Sorry. =(
    Guest-284: Can we set difficulty of campaign? Or is there normal mode and then after we finish it we unlock other difficulties like Hard in WC3 if I remember correctly?
    DustinB: You can change your difficulty on a per mission basis. So if you start on Casual and it seems to easy you can start the next mission on Normal or Hard. You can play any difficulty at any time without having to beat the campaign.
    Guest-282: Will there be a way at release to customize your key binds, or at least move the F keys to a more convenient position?
    DustinB: Yes, you can do some key rebinding.
    Guest-346: I want to say a BIG "thank you" to you guys and everyone at Blizzard for making these games that millions and I want to play! And for a light-hearted question; What are we more likely to see first, the third expansion to Starcraft 2, or Diablo 3? =)
    ChrisSi: Disease -- you should buy the language version and region that you want to play in. The ability to switch language and which language you want to switch to is going to vary from region to region.
    Guest-419: Resend: Will you be conducting more chats like this one anytime soon, as it seems that direct, public communications between the devs and the community is sparse (reading our posts on the forums/fansites doesn't count, I'm referring to a two-way dialogue)
    DustinB: Thanks dude.=) As far as the race between us and D3 goes who knows? If you are a fan of our games you know how we opperate. It will be done when it's done. Not the best answer for our fans, but the right answer for the games.
    ChrisSi: Guest 419 - we do conduct Twitter chats with fans from time to time. Recommend you add yourself to the official StarCraft facebook and/or twitter accounts so you can be informed when the next one happens. Thanks!
    Guest-29: What is the most popular race being played in the beta?
    Guest-366: With regard to the Oceanic / Asia region, coming from the Philippines I am still contemplating which version to buy (right now I have better ping to LA servers). Has there been any update regarding the traceroutes on the forums, which version would Australian / Philippine players buy to experience better multiplayer experience (read: less lag). Thanks.
    DustinB: Terran. That may be because they are the default race, or because they are the most "understandable" race (they look human) or it may be because people think they are the most powerful. Not sure why.=)
    Guest-82: I really miss "20 minute No Rush" titles on custom games, with this new battle.net you can't do that, is there anyway we can impliment that? Also, any news on clan chat and general chat?
    DustinB: yeah, I hear you on the "no rush" games. I don't have a solve for you in the current UI. No news on Clan or General chat, but it is on the list of big important things we have to do, that is for sure.
    Guest-314: There appears to be a significant input delay when using keyboard commands in custom maps that is (probably) unrelated to latency that has remained since Warcraft 3. Trying to play games on battle.net using arrow keys to move for example, is impossible. Is your team aware of this issue and are there plans to fix it?
    ChrisSi: Guest 366 -- we are always trying to work with local ISPs to improve routing to Battle.net servers. I'd strongly encourage you to play in the SEA region as our goal is to build up strong regional communities of players. By putting down servers in the region, we are committing to providing the best play experience for you there.
    DustinB: We are very aware. Last I heard they were working on it but it was a hard problem. I don't know if a fix is incoming or possible. We shall have to wait and see what the engineers come up with.
    Guest-211: Have you watched any SC2 beta tournaments? If so, who is your favorite player?
    DustinB: I have watched many. I don't know if it would be right for me to say my favorite.=) I like players who have good manners, play creatively and try new stuff a lot.
    Guest-470: Dustin, when i first read about the new AI, which Sc2 would introduce, I thought you would be more inventive. I would love to recommend your AI-team some readings on planning AI... I see that you already read up on steering behavior for the zerglings (which results in poor movements by ultralists, but that's another story). (Master in AI @ university of Copenhagen, Denmark)
    DustinB: Sorry if you don't like our AI. I think it's pretty challenging and does a really good job of being aggresive and keeping you on your toes. Try Insane if you have mastered Very Hard.=)
    Guest-397: Is there going to be a single-player demo like there was for the original shortly before or after release?
    DustinB: We are working on something, but it is still a little bit in the future to know exactly when we will have it ready.
    Guest-258: Will there be a way to view replays with my friends within battle.net? Currently the only way (that I know) to view them concurrently is to send him the file, and we both click start at the same time =\. Its sort of a hassle.
    DustinB: One day yes, not for launch.=( It is a good feature and we are going to try to get it as soon as we can.
    Guest-364: It seems to be that in terran vs anything. terran is called the favored match up in polls and in major tournaments. even pro players changing to terran because of the imbalance. does blizzard feel there is an imbalance?
    DustinB: I haven't seen numbers that prove this to me yet. I have also had players tell me that Protoss are the most imbalanced. Polls we don't really respond to, we don't know who is in them or if they are accurate. If we start to see a large number of terran players dominating the high end tournaments we will certainly do something. Currently I don't feel there is an imbalance, but as always we are open to new data.
    Guest-173: Considering the limitation of 1 account per purchase of SCII, it makes it very difficult for players to play their 'off' races competitively without losing their rank for their 'best' race. If having multiple accounts is not possible because of spam, and repeatedly playing against bronze-level to feel 'pro', etc, etc, Could it be possible to implement 4 different placement match sets of 5 for each individual race? (P T Z and Random?) So we can play all of them and improve our entire SC play, sti...
    Guest-194: how come the US didnt get an open beta? I cant wait 11 more days =(
    DustinB: Yeah. I know exactly how you feel. I don't know what the fix is yet for this issue. We'll try to think of a good fix that makes everyone happy.
    Guest-347: You mentioned, in relation to the balance of TvZ, that although you feel Siege tanks might be too powerful vs. Zerg generally, the "stats" don't back that up because the win rate is close to 50/50. Taken to the extreme, isn't it possible that, say, Baneling busts are OP vs Terran early and Siege tanks are OP vz Zerg in the mid-to-late game? Therefore Zerg would win 50% of the time on Baneling busts, and Terran would win the other 50% of games that make it to the mid-game. Obviously this is an ex...
    ChrisSi: Guest 194 -- Hang in there! Sorry you didn't make it into beta but it won't be long before you can play. Hope to see you soon on Battle.net!
    Guest-53: You said the campaign will be available offline and that campaign progress is kept serverside. Will users be able to earn Achievements while playing offline? Are game saves going to be saved locally or on the server?
    DustinB: Yes, that is possible. But we don't just use the stats. When we are playing, we find that experienced Zerg players are doing well in both tournaments and in high end play. And our testers and balance guys are crushing with zerg. As far as ZvT is concerned we are waiting for more data. I feel like there is a problem but we haven't seen the proof yet. We need to know what to do before we make a fix. So we are going to keep watching it.
    Guest-86: 1 ghost emp could possibly whipe out VERY MANY archons , and of all of their life but a puny 10 hitpoints, also with giving up psistorm do you even see archons as a useful unit , PvT anyways ? *P.S. how longs the Q+A gonna last ?*
    DustinB: EMP does not do 100% damage to shields. Archons have some shields remaining when they get hit.
    ChrisSi: Guest 53: If you're not connected to Battle.net you can't earn achievements. And obviously if you want to access cloud file storage to save your campaign progress you'll need to be connected online to do that as well.
    Guest-363: Are there any plans to standardize the in game time with the actual game speed we play on? IE give us correct APM for the fastest setting and in game time regaurding unit build times, and other references to time that arent on the speed that is played on.
    DustinB: Yeah, this is an issue we have to address. I'm not sure what fix we decided for this off the top of my head. Sorry.=(
    Guest-454: What do you guys plan on doing about the exceeding number of smurf accounts currently occupying the Bronze league, I messed up my placement matches and now it seems like theres no way out. :[
    DustinB: We will promote you out of Bronze if you win games. It takes 30+ games in the current version of the system. Also, I highly suggest to players in Beta-2 to NOT intentionally throw their first 5 games. I now some players who have done this and then been frustrated that they can't just win their way out quickly. The system is conservative right now (though we are talking about some changes) and it will only promote you after it is pretty sure it knows where you belong.
    Guest-73: It seems that the new and improved AI heavily favours ranged units and in mid to late game, melee units become weak against them. Do you feel that this is the case and tweaking needs to be done?
    DustinB: that is not feedback that I have heard. But we can certainly look at it.
    Guest-283: Any plans to get group replay watching out in the near future? The community would love this and it would be great for team players. What about things like drawing across the replay screen, etc?
    Guest-473: Is StarCraft 2 going to be pay to play on Latin America?. Game voices are on Latin Spanish like WoW?
    DustinB: Not in the near future, but as soon as we can. That would be a ton of fun.
    Guest-340: Relic's RTS 'Company of Heroes: Tales of Valor' allows you to swap out specific units in a melee game, allowing for some greater variety in a matchup. Could we see this feature in future expansions? If not the complexity of mix & match armies, perhaps simply custom unit artwork (earned through tournaments or other promotional elements)?
    DustinB: It's a cool idea. If it makes sense we could do something like that. The most important thing for StarCraft is always going to be the game balance. That will help determine what we are and are not willing to do in the expansions.
    Guest-303: Do you feel the ladder placement system is successful? I went 4-1 in my placement matches and was placed in silver. Also, will the magic number of placement matches still be 5 after release?
    ChrisSi: Our players in Latin America still ahve the option of purchasing an unlimited play client directly from us. We do have the ADDITIONAL option (for players who want it) to buy a lower-cost box that has limited play time. You can then buy additional play time if you like. So it's up to you which way you want to go. And yes the game will be fully voiced and localized in Latin American Spanish (not Castellano).
    DustinB: We have found that 5 matches is enough to place most players somewhat close to their correct league. If we want to be more precise we have to wait until almost 35 matches to know for sure where you belong (and that's too long). So we are going to keep it at 5 and then promote as necessary. The current system is a little bit conservative with promotions. We are looking at possibly making it a little bit more aggresive with promotions for launch. But that may or may not happen depending on the work involved.
    Guest-199: Do we have to expect to servers to be laggy on the first day of release or are you guys REALLY ready for launch?
    DustinB: I hope we are ready. We have certainly put in the work to BE ready. I THINK we are ready. OK, now you are making me nervous with this question.
    Guest-397: A year or two back, I believe it was mentioned that we could mix and match tilesets (say, you could use the dirt or grass from Agria or Bel'Shir, but could also include terrain from a tileset such as Korhal or Shakuras). From what I've heard, this was not possible in the Beta. Is this one of the UI improvements you mentioned? If not, why was it removed?
    Guest-167: How is the sp campaign replayability wise? Are there incentives for doing the missions/campaign again aside from collecting achievements? Maybe branching mission paths or choices in the campaign that affect how the rest of the campaign will play out?
    DustinB: I don't think this feature was removed. But I haven't used the editor in some time. If it's out it may be a mistake.
    Guest-446: Forgive me if this has already been addressed, but will there be a SINGLE top league? I love having multiple Bronze->Platinum, but we NEED to know who is the best. Either Diamond or a new bracket above diamond should exist as single top 100 league. Please?
    DustinB: Eventually we are planning on a "Pro League" that will include the best players only.
    Guest-419: Why are the patch notes always incomplete? Why not disclose all the changes up front? Also, will you host any tournaments at BlizzCon with well known commentators in the community DJing?
    DustinB: Because we are making patches too quickly and we screwed up and forgot to put some stuff in. Sorry. =(
    AVBenedetto: Can Void Rays lose their charge when they change targets like they did ages ago? Pretty please with spidermines on top?
    ChrisSi: Guest 167: There will be some different mission branches throughout the campaign that tell the sidestories of certain characters like Tosh or Dr. Hanson. There will also be a couple opportunities there for your choices to affect the fate of certain sidestories. Between the branching mission paths and the ability to customize your army through single-player only units and tech and mercenaries, we think there's a good amount of replayability built-in to the game.
    DustinB: I think Void Rays are doing pretty well in the balance of the game right now. No plans for such a change (which is a pretty big nerf).
    Guest-132: You mentioned that larger/"pro" maps are for pro players and tournaments. Does that mean we won't be seeing any more maps the size of Lost Temple in the 1v1 ladder map pool?
    Guest-449: Are you planning on having the servers live for midnight launches in the US?
    DustinB: No, Lost Temple will be in that pool. Desert Oasis is in there too (and is pretty big). Some of the pro maps from Broodwar could almost be 3v3 maps. And they are often very technical maps with all kinds of height differences and complex layouts. They are AWESOME for pro play, but can be a little intimidating for many.
    Guest-280: What are your plans for the 1st expansion in terms of campaign and how will it be different to the hyperion stuff and how missions work in SC2 WOL
    ChrisSi: Guest 449: Yes, if you go and buy your box at midnight in the US, we're planning on the servers being ready for you to install and play when you bring that box home
    Aaron|Social Media Specialist | Best Buy® Corporate
     Private Message

  • Showing values beside html5 slider

    I have a page layout that I rather not break, and on the particular page (http://www.evolvedtools.com/hardwareTools.html) I have a range slider that I have been playing with.
    I have been looking at some examples where people have been able to constantly display the value of the slider, alongside the handle , as it is being moved. The values are not what's important for now, but rather the implementation in my existing code. I am not willing to restructure my whole page to fit it in.
    In the code for my page I have commented out the code for a "bubble" solution I picked up on the net. It produces a little container that is supposed to follow the  range slider and display  a value for it. It doesn't work for me though, and I am not all that surprised, as I guess the implementation is a little bit more difficult in my case than the example..... ( Example: http://css-tricks.com/value-bubbles-for-range-inputs/) I see that it makes use of webkit elements also, which I don't like...
    So my question is: Where would I have to go from here to implement such a feature ?
    page HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Hardware Tools</title>
    <link href="evolvedMobile.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 0px) and (max-width: 650px)" id="stylesheet-650" />
    <link href="evolvedTablet.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 651px) and (max-width: 1000px)" id="stylesheet-800" />
    <link href="oneColLiqCtr.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 1001px)" id="stylesheet-1920" />
    <script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
    <Script type="text/javascript" src="respond.min.js"></Script>
    <script src="SpryAssets/SpryEffects.js" type="text/javascript"></script>
    <Script type="text/javascript" src="Javascript Cookie Script.js"></Script>
    <script type="text/javascript">
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    function MM_effectAppearFade(targetElement, duration, from, to, toggle)
        Spry.Effect.DoFade(targetElement, {duration: duration, from: from, to: to, toggle: toggle});
    function MM_openBrWindow(theURL,winName,features) { //v2.0
      window.open(theURL,winName,features);
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    </script>
    <style type="text/css">
    body,td,th {
        font-size: 0.70em;
        font-family: "Arial Black", Gadget, sans-serif;
    </style>
    </head>
    <body bgcolor="#000000" onload="MM_preloadImages('images/HomeMainBlank2_03.png','images/HomeButton_03.png','images/ToolingButtonBlank2_07.png','images/BlogBlankM_07.png','images/Script_07.png','images/PluginTheory_05.png','images/flashBack_12.png','images/umlPage_12.png')">
    <div class="TabWrapContent" id="wrapperExt">
    <div id="homebutton"><a href="index.html" onmouseover="MM_swapImage('homebutton','','images/HomeButton_03.png',1)"onMouseOut="Set_Cookie('homeHardware','TRUE','','','','')"><img src="images/HomeMainBlank2_03.png" alt="HomeMain" name="homebutton" width="138" height="55" border="0" class="AllElements" id="homebutton2" /></a></div>
    <div id="PluginM"><a href="PluginT.html" onmouseover="MM_swapImage('PluginM','','images/PluginTheory_05.png',1)"onMouseOut="Set_Cookie('PluginFromHardware','TRUE','','','','')"><img src="images/ToolingButtonBlank2_07.png" name="PluginM" width="142" height="55" border="0" class="AllElements" id="PluginM2" /></a></div>
    <div id="Scripting"><a href="ScriptsT.html" onmouseover="MM_swapImage('Scripting','','images/Script_07.png',1)"onMouseOut="Set_Cookie('ScriptingFromHardware','TRUE','','','','')"><img src="images/BlogBlankM_07.png" name="Scripting" width="135" height="55" border="0" class="AllElements" id="Scripting2" /></a></div>
    <div id="umlTools"><a href="UmlTools.html" onmouseover="MM_swapImage('umlTools','','images/umlPage_12.png',1)"onMouseOut="Set_Cookie('umlToolsFromHardware','TRUE','','','','')"><img src="images/flashBack_12.png" name="umlTools" width="125" height="55" border="0" class="AllElements" id="umlTools2" /></a></div>
    </div>
    </div>
    <div id="contentWrap">
    <div id="wrapperExt2">
    <p> </p>
    <p><span style="font-size:1em;">Hardware Tools</span> is a term I hope will seem pretty self explanatory. This page is meant for descriptions of useful hardware electronic and ergonomical tools. To get a decent workflow going it is increasingly important to multitask, even when doing art or design - work. People have preferences according to their profession or field of interest, but the designer aspect is emphasized here. Also note that I am here referring to more or less mobile solutions for the individual designer.<br />
    <br />
    Firstly, for me I have slowly come to the conclusion that your workstation(read laptop/pc) and its specs are not going to be the piece of equipment that is most importent to you. With a decent processor, graphics card and installed memory you really can squeeze A LOT out of your mid -range machine. I will take examples from my own setup here to show you what I mean, and the interconnectivity you can acchieve through peripherals. I am talking everything from tuning software, through harware add - on's, to monitors, tablets, cell phones, networks,  graphical equipment, etc..<br />
    <br />Both at home, at work and on- the- go there is increasing need for efficiency and productivity. But the large workstations are on their way out. Ordinary desktops, desktop monitors and the like have seen their glory days, and efficient computer development reduces the need for large hardware solutions. Computing is being distributed across several pieces of equipment, as opposed to being centered in a core. Mechanically, this can be seen in solutions like the ones where your average laptop has its capacity expanded by establishing an externally housed pci-express card through the laptop's expresscard slot. Storage solutions working on cloud platforms make the need for tactile storage components redundant. This eliminates a lot of permanent hardware- needs for the traveler. And then you have visual aspect with screen real estate being a keyword. As an example here I would like to refer to a brand by the name of <a href="#" onclick="MM_openBrWindow('http://www.displaylink.com','','scrollbars=yes,resizable=yes,width=625,height=625')">DisplayLink</a>. This is a company that develops solutions for USB - connected Display solutions, like portable monitors. They make use of their own graphic adapters in the hardware, so you are not limited to the ordinary 1 extra display per standard workstation. With USB 3.0 making its presence felt, the bandwith will allow these solutions to get even better. This is of course due to the higher bandwidth that the new USB provides. On a regular pc you can connect up to 6 USB displays, and 4 for the Mac. On Windows multipoint server up to 14 displays are supported. This is of course without counting the extra displays supported by your graphics card/s. The ingenious thing about these products is the way they relieve the stress on your main hardware in that they distribute the graphics computing to several instances. This means you do not have to have a powerhouse pc to be productive on more than two displays. The graphics adapters rely on your internal cpu, but do not need much else. Hook up to any HDMI or DVI monitor or projector anywhere instead of dragging things around with you. I strongly suggest checking out their page and their products(DisplayLink), and see which products they have avaiable for your region. <br />I am currently using several DL-3500 chip graphics adapters for 1920x1200 monitors connected to my laptop. They are small and handy and I can take them with me and hook them up anywhere for more screen real estate. The difference between the fluidity of a usb 3.0 monitor setup and a usb 2.0 one is quite noticable. The adapters are really pretty gentle on your processor though, so no big worries there. I know other companies have produced solutions for multiple monitors earlier, but those looking for extensive monitor setup nowadays should test a multi monitor usb 3.0 hub from DisplayLink. And if you are going to the desolute place that doesn't have any kind of stationary monitors available you can always get one of the highly affordable, portable USB displays(Also Displaylink) and put it in you backpack. But we don't have to stop there. Finally good ultra - portable projectors with HD - resolution have started to hit the market, and I mean projectors that both have decent spesifications, are extremely portable and don't have lamps that have to be changed. Brightness, colors and resolution have usually been poor in these kind of devices, but the bar has been raised.<br />
    <br />So what else would a nomad designer need ? Well, for one thing touch would be nice! And while we're at it, graphical capabilities would also be something many would crave. So lets have a look at the options. If you are using a internet tablet with touch( Android or ios), you can now use it as an extended desktop. A lot of tablets have something called a ADB composite interface(Android Debug Bridge), which is a way for your computer to interact with your tablets file system. It is also a way of enabling software developers to make applications that let you control your computer from your tablet, not only your tablet from your computer. An example is the software application <a href="#" onclick="MM_openBrWindow('http://www.shapeservices.com/en/products/details.php?product=idisplay&platform=android','','scrollbars=yes,resizable=yes,width=625,height=625')">IDisplay</a> from Shapeservices, which lets you connect your tablet via the composite USB cabel and use your tablet as an extended desktop. The nice thing about this is that you can use input from your tablet(Touch with fingers, stylus pen, keyboard, mouse) to control applications on your computers operative system. While graphically this is mostly for sketching, it can also be used succsessfully in other applications. Also this software enables you to connect through any wireless connection, so you are not limited to the composite cable if you don't have it. Which brings me to the point of networks.<br />
    <br />4G wireless modems have hit the market some time ago, but they are not limited to a dongle in the side of your laptop. In fact they can and will feed your whole household with an internet connection if you use it right. Simple as this: Almost all routers use linux software, so the problem has been developing drivers for using the USB 4g dongles with a USB - enabled router. I am currently very successfully using a <a href="#" onclick="MM_openBrWindow('http://www.draytek.com/user/PdInfoDetail.php?Id=121','','scrollbars=yes,resizable=yes,width=625,height=625')">Draytek</a> Vigorfly200 802.11b/g/n router connected to my Netcom 4g dongle, and besides being fast I can take it with me everywhere and (depending on location) still get the same fast speed for everyone to use. If you are streaming or connecting devices wirelessly, this is gold! They have written drivers for 4g dongles, so a firmware update does all the work for you.<br />
    <br />But, returning to graphic designer work, there are some options that I feel have completely erased the need for things like the traditional paper - based drawing surface. The reason I am saying this is that these tools are so precise and make the transition from computer to drawing so minimal, that the thought process of designing/programming/sketching becomes a lot more interesting and intuitive. The problem with relatively great products earlier that use a separate mat surface for drawing, separate from the screen, is the hand/eye coordination. I have used one myself and still occasionally do, but there is no question whatsoever that seeing the direct result of your brush stroke without having to move your eyes one way or the other is a better way of interacting with your work. Why drive your car with a remote control if you can sit inside ? Let's go straight to the products, and you can judge for yourself. The king of the hill is as of now the <a href="#" onclick="MM_openBrWindow('http://www.wacom.com/en/Products/Cintiq.aspx','','scrollbars=yes,resizable=yes,width=625,height=625')">Wacom Cintiq 24HD</a>, which lets you draw on a supreme ergonomical- design monitor with detailing and specifications that will satisfy any business. It works also of course as an extended desktop, so again you get increased productivity. I am not going to say more, but take a look for yourself. Of course, these products are kind of pricy, but there are alternatives. Chinese Yiynova produce three notable drawing monitors in <a href="#" onclick="MM_openBrWindow('http://www.amazon.com/Brand-Yiynova-Digitizer-Tablet-Display/dp/B005EDNAPU','','scrollbars=yes,resizable=yes,width=625,height=625')">10"</a>, <a href="#" onclick="MM_openBrWindow('http://www.amazon.com/Yiynova-Monitor-MSP15-Adjustable-Support-Windows/dp/B005EIF3BY','','scrollbars=yes,resizable=yes,width=625,height=625')">15"</a> and <a href="#" onclick="MM_openBrWindow('http://www.amazon.com/Yiynova-Tablet-MSP19-19inch-1440x900/sim/B004CUT6NG/2','','scrollbars=yes,resizable=yes,width=625,height=625')">19"</a>, and while their spesifications are as good as most of the wacom's, the prices are way lower. Again, you have to decide for yourself.<br />
    <br />Moving on to add- on products, I would like to mention the standards of EsataP and USB 3.0. If you have a 2 year old mid - range machine, chances are you do not have the new USB 3.0 ports. For quite a while I have been using the esatap ( external sata powered) port on my computer for external harddisk backup. SATA is a computer bus interface for connecting host bus adapters to mass storage devices such as hard disk drives and optical drives. On a lot of laptops or desktops you have the possibility of either installing an esata card or you may have an esataP port on your laptop. What you in fact then have is a combined USB/esata port with speed that nearly rivals the new USB 3.0 standard. Using an esatap cable you can get up to 100 MBytes/s transfer speeds to or from your external drives for now. The port conncets directly to your sata harddrive, so the theoretical speed is 3GBit/s which is 375Mbytes/s, or in practice more like 300MB. If you have one of these ports I strongly suggest you use it. People have made a big deal about the need for shutting down your system before removing your esatap device, but that is completely unneccesary. I will just say <a href="#" onclick="MM_openBrWindow('http://mt-naka.com/hotswap/index_enu.htm','','scrollbars=yes,resizable=yes,width=625,height=625')">HotSwap</a>.<br />
    <br />If you have an expresscard 34 or 54 slot you can of course add an expresscard with usb 3.0 port/s, but tests show that the expresscard interface and the 2.5Gbit/s limit of your revision 1.0 or 1.1 pci-e will not give you full USB 3.0 speeds, and even if you had a revision 2.0 or later (5GBit/s), you would still have to have have the ExpressCard 2.0 slot on your machine, as only this makes use of the full bandwith of the USB superspeed(3.0). With the more ordinary ExpressCard 1.0 slot you still get 2.5 GBit/s which is actually very much faster than USB 2.0.<br /> 
    <br /> More to follow.....</p>
    </div>
    </div>
        <div class="slider" input type="range" name="eivi" max="-6" min="2000" step="1" value="0">
        <div class="progress" style="width: 3px;"></div>
        <a class="handle" style="top: 0px;"></a>
    </div>
    <!--<div class="output">
        <output for="eivi" onforminput="value"></output>
    </div>-->
    <script type="text/javascript">
    // get handle to the scrollable DIV
    var wrapperExt2 = $("#wrapperExt2");
    // initialize rangeinput
    $(":range").rangeinput({
    // slide the DIV along with the range using jQuery's css() method
    onSlide: function(ev, step) {
    wrapperExt2.css({bottom: step});
    // display progressbar
    progress: true,
    // initial value. also sets the DIV's initial scroll position
    value: 0,
    // this is called when the slider is clicked. we animate the DIV
    change: function(e, i) {
    wrapperExt2.animate({bottom: i}, "fast");
    // disable drag handle animation when when slider is clicked
    speed: 0
    </script>
    <script type="text/javascript">
    $(function() {
    var el, newPoint, newPlace, offset;
    // Select all range inputs, watch for change
    $("input[type='range']").change(function() {
       // Cache this for efficiency
       el = $(this);
       // Measure width of range input
       height = el.height();
       // Figure out placement percentage between left and right of input
       newPoint = (el.val() - el.attr("min")) / (el.attr("max") - el.attr("min"));
       // Janky value to get pointer to line up better
       offset = -1.3;
       // Prevent bubble from going beyond left or right (unsupported browsers)
       if (newPoint < 0) { newPlace = 0; }
       else if (newPoint > 1) { newPlace = height; }
       else { newPlace = width * newPoint + offset; offset -= newPoint; }
       // Move bubble
       el
         .next("output")
         .css({
           top: newPlace,
           marginLeft: offset + "%"
         .text(el.val());
    // Fake a change to position bubble at page load
    .trigger('change');
    </script> */
    <script type="text/javascript">
      if (Get_Cookie('homeHardware')) { document.getElementById('homebutton2').src="images/HomeButton_03.png" ; }
    if (Get_Cookie('PluginFromHardware')) { document.getElementById('PluginM2').src="images/PluginTheory_05.png" ; }
    if (Get_Cookie('ScriptingFromHardware')) { document.getElementById('Scripting2').src="images/Script_07.png" ; }
      if (Get_Cookie('umlToolsFromHardware')) { document.getElementById('umlTools2').src="images/umlPage_12.png" ; }
    </script>
    </body>
    </html>
    CSS ( for the "bubble element"):
    /*.output {
        position: absolute;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#444444), to(#999999));
    background-image: -webkit-linear-gradient(top, #444444, #999999);
    background-image: -moz-linear-gradient(top, #444444, #999999);
    background-image: -ms-linear-gradient(top, #444444, #999999);
    background-image: -o-linear-gradient(top, #444444, #999999);
        width: 30px;
        height: 40px;
        text-align: center;
        color: white;
        border-radius: 10px;
        display: inline-block;
        font: bold 15px/30px Georgia;
        top: 50%;
        left: 100%;
        margin-top: -195px;
        margin-right: -185px;
        margin-bottom: 1%;
        margin-left: -180px;
        /*bottom: 175%;
      left: 0;
      margin-left: -1%; */
    .output:after {
      content: "";
      position: absolute;
      width: 0;
      height: 0;
      border-top: 10px solid #999999;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      top: 100%;
      left: 50%;
    margin-left: -5px;
      margin-top: -1px;

    I would use jQuery UI Slider for this -- click on examples for other options.
    http://jqueryui.com/demos/slider/#slider-vertical
    Nancy O.

  • [SOLVED] Awesome is not recognizing widgets

    Hey everybody,
    So this is my first (non-virtualbox) arch install. I just switched over from crunchbang. I had awesome installed on crunchbang and used that as my primary window manager. So I saved all of my configs and everything so that I could use them on arch. I got arch installed and then awesome, and awesome works well. I am using it right now. But as soon as I started trying to add widgets it wouldn't let me. Every time I restart it awesome reverts to the rc.lua in /etc/xdg... and gives me a warning message saying:
    Oops, there were errors during startup!
    /home/nathan/.config/awesome/rc.lua:117: attempt to call global 'widget' (a nil value)
    The line it is referring to is this:
    separator = widget({ type = "textbox" })
    Also, all of the requires at the top currently look like this:
    -- Standard awesome library
    local gears = require("gears")
    local awful = require("awful")
    awful.rules = require("awful.rules")
    require("awful.autofocus")
    -- Widget and layout library
    wibox = require("wibox")
    -- Theme handling library
    local beautiful = require("beautiful")
    -- Notification library
    local naughty = require("naughty")
    local menubar = require("menubar")
    So I tried to google and search the awesome wiki and the arch wiki for how it is done on arch. From everything I have found I am doing it correctly, but I must be missing something. One thought was that it might be a result of the most recent awesome update. I think it was on the 4th. Any ideas?
    Last edited by nhare330 (2013-01-09 00:21:05)

    Here it is. My rc.lua:
    -- Standard awesome library
    local gears = require("gears")
    local awful = require("awful")
    awful.rules = require("awful.rules")
    require("awful.autofocus")
    -- Widget and layout library
    local wibox = require("wibox")
    local vicious = require("vicious")
    -- Theme handling library
    local beautiful = require("beautiful")
    -- Notification library
    local naughty = require("naughty")
    local menubar = require("menubar")
    -- {{{ Error handling
    -- Check if awesome encountered an error during startup and fell back to
    -- another config (This code will only ever execute for the fallback config)
    if awesome.startup_errors then
    naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, there were errors during startup!",
    text = awesome.startup_errors })
    end
    -- Handle runtime errors after startup
    do
    local in_error = false
    awesome.connect_signal("debug::error", function (err)
    -- Make sure we don't go into an endless error loop
    if in_error then return end
    in_error = true
    naughty.notify({ preset = naughty.config.presets.critical,
    title = "Oops, an error happened!",
    text = err })
    in_error = false
    end)
    end
    -- {{{ Variable definitions
    -- Themes define colours, icons, and wallpapers
    beautiful.init("/usr/share/awesome/themes/zenburn/theme.lua")
    -- This is used later as the default terminal and editor to run.
    terminal = "lxterminal"
    editor = os.getenv("EDITOR") or "nano"
    editor_cmd = terminal .. " -e " .. editor
    -- Default modkey.
    -- Usually, Mod4 is the key with a logo between Control and Alt.
    -- If you do not like this or do not have such a key,
    -- I suggest you to remap Mod4 to another key using xmodmap or other tools.
    -- However, you can use another modifier like Mod1, but it may interact with others.
    modkey = "Mod4"
    -- Table of layouts to cover with awful.layout.inc, order matters.
    local layouts =
    awful.layout.suit.floating,
    awful.layout.suit.tile,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
    awful.layout.suit.tile.top,
    awful.layout.suit.fair,
    awful.layout.suit.fair.horizontal,
    awful.layout.suit.spiral,
    awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
    awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier
    -- {{{ Wallpaper
    if beautiful.wallpaper then
    for s = 1, screen.count() do
    gears.wallpaper.maximized(beautiful.wallpaper, s, true)
    end
    end
    -- {{{ Tags
    -- Define a tag table which hold all screen tags.
    tags = {
    names = { "➊ ", "➋ ", "➌ ", "➍ ", "➎ ", "◌ " },
    layout = { layouts[2], layouts[10], layouts[10], layouts[1], layouts[1], layouts[10]
    for s = 1, screen.count() do
    -- Each screen has its own tag table.
    tags[s] = awful.tag(tags.names, s, tags.layout)
    end
    -- {{{ Menu
    -- Create a laucher widget and a main menu
    myawesomemenu = {
    { "manual", terminal .. " -e man awesome" },
    { "edit config", editor_cmd .. " " .. awesome.conffile },
    { "restart", awesome.restart },
    { "quit", awesome.quit }
    mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
    { "open terminal", terminal }
    mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
    menu = mymainmenu })
    -- Menubar configuration
    menubar.utils.terminal = terminal -- Set the terminal for applications that require it
    -- {{{ Wibox
    -- Separator
    separator = wibox.widget.textbox()
    separator:set_text(" | ")
    -- Spacer
    spacer = wibox.widget.textbox()
    spacer:set_text(" ")
    -- Network usage widget
    netwidget = wibox.widget.textbox()
    vicious.register(netwidget, vicious.widgets.net, '<span color="#CDBC73">${eth0 down_kb}</span> <span color="#7F9F7F">${eth0 up_kb}</span>', 3)
    -- Memory widget
    memwidget = wibox.widget.textbox()
    memwidget_t = awful.tooltip({ objects = {memwidget}, })
    vicious.register(memwidget, vicious.widgets.mem,
    function (widget, args)
    memwidget_t:set_text('<span color="#9868B1"> mem: ' ..args[2].. '/' ..args[3].. 'mb \n free: ' ..args[4].. 'mb \n swap: ' ..args[5].. '% > ' ..args[6].. '/' ..args[7].. 'mb \n free: ' ..args[8].. 'mb </span>')
    return '<span color="#CDBC73">▣ ' ..args[1].. '%</span>'
    end, 3)
    -- Cpu widget
    cpuwidget = wibox.widget.textbox()
    cpuwidget_t = awful.tooltip({ objects = {cpuwidget}, })
    vicious.register(cpuwidget, vicious.widgets.cpu,
    function (widget, args)
    cpuwidget_t:set_text('<span color="#9868B1"> cpu0: ' ..args[2].. '% \n cpu1: ' ..args[3].. '% </span>')
    return '<span color="#CDBC73">◈ ' ..args[1].. '%</span>'
    end, 3)
    -- Battery widget
    batwidget = wibox.widget.textbox()
    batwidget_t = awful.tooltip({ objects = {batwidget}, })
    vicious.register(batwidget, vicious.widgets.bat,
    function (widget, args)
    batwidget_t:set_text('<span color="#9868B1"> ' ..args[3].. ' </span>')
    return '<span color="#CDBC73">↯ ' ..args[1].. '' ..args[2].. '</span>'
    end, 14, "BAT0")
    -- Keyboard widget
    kbdcfg = {}
    kbdcfg.cmd = "setxkbmap"
    kbdcfg.layout = { "us", "es" }
    -- kbdcfg.us = "<span color='#CDBC73'>us</span>"
    -- kbdcfg.es = "<span color='#CDBC73'>es</span>"
    kbdcfg.current = 1
    kbdcfg.widget = wibox.widget.textbox({ align = "right" })
    kbdcfg.widget:set_text( kbdcfg.layout[kbdcfg.current] )
    kbdcfg.switch = function ()
    kbdcfg.current = kbdcfg.current % #(kbdcfg.layout) + 1
    local t = kbdcfg.layout[kbdcfg.current]
    kbdcfg.widget:set_text( t )
    os.execute( kbdcfg.cmd .. t )
    end
    kbdcfg.widget:buttons(awful.util.table.join(
    awful.button({ }, 1, function () kbdcfg.switch() end )
    -- Wifi
    wifiwidget = wibox.widget.textbox()
    wifiwidget_t = awful.tooltip({ objects = {wifiwidget}, })
    vicious.register (wifiwidget, vicious.widgets.wifi,
    function (widget, args)
    wifiwidget_t:set_text('<span color="#9868B1"> ' ..args["{ssid}"].. ' \n mode: ' ..args["{mode}"].. ' \n chan: ' ..args["{chan}"].. ' \n sign: ' ..args["{sign}"].. ' \n rate: ' ..args["{rate}"].. ' </span>')
    -- ' \n rate: ' ..args["{rate}"].. ' \n linp: ' ..args["{linp}"]..
    return '<span color="#CDBC73">⇄ ' ..args["{link}"].. '%</span>'
    end, 7, "wlan0")
    -- File System
    fswidget = wibox.widget.textbox()
    fswidget_t = awful.tooltip({ objects = {fswidget}, })
    vicious.register(fswidget, vicious.widgets.fs,
    function (widget, args)
    fswidget_t:set_text('<span color="#9868B1">used: ' ..args["{/ used_gb}"].. '/' ..args["{/ size_gb}"].. 'gb </span>')
    return '<span color="#CDBC73">◕ ' ..args["{/ avail_gb}"].. 'gb</span>'
    end, 61)
    -- Uptime
    uptimewidget = wibox.widget.textbox()
    uptimewidget_t = awful.tooltip({ objects = {uptimewidget}, })
    vicious.register(uptimewidget, vicious.widgets.uptime,
    function (widget, args)
    uptimewidget_t:set_text('<span color="#9868B1"> ' ..args[1].. 'd ' ..args[2].. ':' ..args[3].. ' </span>')
    return string.format('<span color="#CDBC73">⇑ ' ..args[1].. 'd</span>')
    end, 61)
    -- Volume Widget
    volumecfg = {}
    volumecfg.cardid = 0
    volumecfg.channel = "Master"
    volumecfg.widget = wibox.widget.textbox({ align = "right" })
    -- volumecfg_t = awful.tooltip({ objects = { volumecfg.widget },})
    -- volumecfg_t:set_text("volume")
    -- command must start with a space!
    volumecfg.mixercommand = function (command)
    local fd = io.popen("amixer -c " .. volumecfg.cardid .. command)
    local status = fd:read("*all")
    fd:close()
    local volume = string.match(status, "(%d?%d?%d)%%")
    volume = string.format("% 3d", volume)
    status = string.match(status, "%[(o[^%]]*)%]")
    if string.find(status, "on", 1, true) then
    volume = "<span color='#CDBC73'>◄ " .. volume .. "</span>"
    else
    volume = "<span color='#CDBC73'>⋪ " .. volume .. "</span>"
    end
    volumecfg.widget:set_text( volume )
    end
    volumecfg.update = function ()
    volumecfg.mixercommand(" sget " .. volumecfg.channel)
    end
    volumecfg.up = function ()
    volumecfg.mixercommand(" sset " .. volumecfg.channel .. " 1%+")
    end
    volumecfg.down = function ()
    volumecfg.mixercommand(" sset " .. volumecfg.channel .. " 1%-")
    end
    volumecfg.toggle = function ()
    volumecfg.mixercommand(" sset " .. volumecfg.channel .. " toggle")
    end
    volumecfg.widget:buttons({
    button({ }, 4, function () volumecfg.up() end),
    button({ }, 5, function () volumecfg.down() end),
    button({ }, 1, function () volumecfg.toggle() end)
    volumecfg.update()
    -- Date widget
    datewidget = wibox.widget.textbox()
    vicious.register(datewidget, vicious.widgets.date, '<span color="#D8D8D8"> %a. %b %d, %l:%M %p </span>', 5)
    -- Create a textclock widget
    mytextclock = awful.widget.textclock({ align = "right" })
    -- Calendar widget to attach to the textclock
    require('calendar2')
    calendar2.addCalendarToWidget(datewidget)
    -- Create a textclock widget
    mytextclock = awful.widget.textclock()
    -- Create a wibox for each screen and add it
    mywibox = {}
    mypromptbox = {}
    mylayoutbox = {}
    mytaglist = {}
    mytaglist.buttons = awful.util.table.join(
    awful.button({ }, 1, awful.tag.viewonly),
    awful.button({ modkey }, 1, awful.client.movetotag),
    awful.button({ }, 3, awful.tag.viewtoggle),
    awful.button({ modkey }, 3, awful.client.toggletag),
    awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
    awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
    mytasklist = {}
    mytasklist.buttons = awful.util.table.join(
    awful.button({ }, 1, function (c)
    if c == client.focus then
    c.minimized = true
    else
    -- Without this, the following
    -- :isvisible() makes no sense
    c.minimized = false
    if not c:isvisible() then
    awful.tag.viewonly(c:tags()[1])
    end
    -- This will also un-minimize
    -- the client, if needed
    client.focus = c
    c:raise()
    end
    end),
    awful.button({ }, 3, function ()
    if instance then
    instance:hide()
    instance = nil
    else
    instance = awful.menu.clients({ width=250 })
    end
    end),
    awful.button({ }, 4, function ()
    awful.client.focus.byidx(1)
    if client.focus then client.focus:raise() end
    end),
    awful.button({ }, 5, function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end))
    for s = 1, screen.count() do
    -- Create a promptbox for each screen
    mypromptbox[s] = awful.widget.prompt()
    -- Create an imagebox widget which will contains an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    mylayoutbox[s] = awful.widget.layoutbox(s)
    mylayoutbox[s]:buttons(awful.util.table.join(
    awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
    awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
    awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
    awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
    -- Create a taglist widget
    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
    -- Create a tasklist widget
    mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Widgets that are aligned to the left
    local left_layout = wibox.layout.fixed.horizontal()
    left_layout:add(mylauncher)
    left_layout:add(mytaglist[s])
    left_layout:add(mypromptbox[s])
    -- Widgets that are aligned to the right
    local right_layout = wibox.layout.fixed.horizontal()
    if s == 1 then right_layout:add(wibox.widget.systray()) end
    right_layout:add(mytextclock)
    right_layout:add(mylayoutbox[s])
    -- Now bring it all together (with the tasklist in the middle)
    local layout = wibox.layout.align.horizontal()
    layout:set_left(left_layout)
    layout:set_middle(mytasklist[s])
    layout:set_right(right_layout)
    mywibox[s]:set_widget(layout)
    end
    -- {{{ Mouse bindings
    root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end),
    awful.button({ }, 4, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
    -- {{{ Key bindings
    globalkeys = awful.util.table.join(
    awful.key({ modkey, }, "Left", awful.tag.viewprev ),
    awful.key({ modkey, }, "Right", awful.tag.viewnext ),
    awful.key({ modkey, }, "Escape", awful.tag.history.restore),
    awful.key({ modkey, }, "Down",
    function ()
    awful.client.focus.byidx( 1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "Up",
    function ()
    awful.client.focus.byidx(-1)
    if client.focus then client.focus:raise() end
    end),
    awful.key({ modkey, }, "a", function () mymainmenu:show() end),
    -- Layout manipulation
    awful.key({ modkey, "Shift" }, "Down", function () awful.client.swap.byidx( 1) end),
    awful.key({ modkey, "Shift" }, "Up", function () awful.client.swap.byidx( -1) end),
    awful.key({ modkey, "Control" }, "Down", function () awful.screen.focus_relative( 1) end),
    awful.key({ modkey, "Control" }, "Up", function () awful.screen.focus_relative(-1) end),
    awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
    awful.key({ modkey, }, "Tab",
    function ()
    awful.client.focus.history.previous()
    if client.focus then
    client.focus:raise()
    end
    end),
    -- Standard program
    awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
    awful.key({ modkey, "Control" }, "r", awesome.restart),
    awful.key({ modkey, "Shift" }, "q", awesome.quit),
    awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
    awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
    awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
    awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
    awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
    awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
    awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
    awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
    awful.key({ modkey, "Control" }, "n", awful.client.restore),
    -- Prompt
    awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
    awful.key({ modkey }, "x",
    function ()
    awful.prompt.run({ prompt = "Run Lua code: " },
    mypromptbox[mouse.screen].widget,
    awful.util.eval, nil,
    awful.util.getdir("cache") .. "/history_eval")
    end),
    -- Menubar
    awful.key({ modkey }, "p", function() menubar.show() end)
    clientkeys = awful.util.table.join(
    awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
    awful.key({ modkey, }, "w", function (c) c:kill() end),
    awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
    awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
    awful.key({ modkey, }, "o", awful.client.movetoscreen ),
    awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
    awful.key({ modkey, }, "n",
    function (c)
    -- The client currently has the input focus, so it cannot be
    -- minimized, since minimized clients can't have the focus.
    c.minimized = true
    end),
    awful.key({ modkey, }, "m",
    function (c)
    c.maximized_horizontal = not c.maximized_horizontal
    c.maximized_vertical = not c.maximized_vertical
    end)
    -- Compute the maximum number of digit we need, limited to 9
    keynumber = 0
    for s = 1, screen.count() do
    keynumber = math.min(9, math.max(#tags[s], keynumber))
    end
    -- Bind all key numbers to tags.
    -- Be careful: we use keycodes to make it works on any keyboard layout.
    -- This should map on the top row of your keyboard, usually 1 to 9.
    for i = 1, keynumber do
    globalkeys = awful.util.table.join(globalkeys,
    awful.key({ modkey }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewonly(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Control" }, "#" .. i + 9,
    function ()
    local screen = mouse.screen
    if tags[screen][i] then
    awful.tag.viewtoggle(tags[screen][i])
    end
    end),
    awful.key({ modkey, "Shift" }, "#" .. i + 9,
    function ()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.movetotag(tags[client.focus.screen][i])
    end
    end),
    awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
    function ()
    if client.focus and tags[client.focus.screen][i] then
    awful.client.toggletag(tags[client.focus.screen][i])
    end
    end))
    end
    clientbuttons = awful.util.table.join(
    awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
    awful.button({ modkey }, 1, awful.mouse.client.move),
    awful.button({ modkey }, 3, awful.mouse.client.resize))
    -- Set keys
    root.keys(globalkeys)
    -- {{{ Rules
    awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
    properties = { border_width = beautiful.border_width,
    border_color = beautiful.border_normal,
    focus = awful.client.focus.filter,
    keys = clientkeys,
    buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
    properties = { floating = true } },
    { rule = { class = "pinentry" },
    properties = { floating = true } },
    { rule = { class = "gimp" },
    properties = { floating = true } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    -- properties = { tag = tags[1][2] } },
    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    client.connect_signal("manage", function (c, startup)
    -- Enable sloppy focus
    c:connect_signal("mouse::enter", function(c)
    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
    and awful.client.focus.filter(c) then
    client.focus = c
    end
    end)
    if not startup then
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- awful.client.setslave(c)
    -- Put windows in a smart way, only if they does not set an initial position.
    if not c.size_hints.user_position and not c.size_hints.program_position then
    awful.placement.no_overlap(c)
    awful.placement.no_offscreen(c)
    end
    end
    local titlebars_enabled = false
    if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
    -- Widgets that are aligned to the left
    local left_layout = wibox.layout.fixed.horizontal()
    left_layout:add(awful.titlebar.widget.iconwidget(c))
    -- Widgets that are aligned to the right
    local right_layout = wibox.layout.fixed.horizontal()
    right_layout:add(awful.titlebar.widget.floatingbutton(c))
    right_layout:add(awful.titlebar.widget.maximizedbutton(c))
    right_layout:add(awful.titlebar.widget.stickybutton(c))
    right_layout:add(awful.titlebar.widget.ontopbutton(c))
    right_layout:add(awful.titlebar.widget.closebutton(c))
    -- The title goes in the middle
    local title = awful.titlebar.widget.titlewidget(c)
    title:buttons(awful.util.table.join(
    awful.button({ }, 1, function()
    client.focus = c
    c:raise()
    awful.mouse.client.move(c)
    end),
    awful.button({ }, 3, function()
    client.focus = c
    c:raise()
    awful.mouse.client.resize(c)
    end)
    -- Now bring it all together
    local layout = wibox.layout.align.horizontal()
    layout:set_left(left_layout)
    layout:set_right(right_layout)
    layout:set_middle(title)
    awful.titlebar(c):set_widget(layout)
    end
    end)
    client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
    client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
    http://pastebin.com/X4JdkVi0
    Last edited by nhare330 (2013-01-18 13:59:40)

Maybe you are looking for

  • Recursive Data types

    Hi all, There have been some threads about mapping of a message that has some recursive structures. I am wondering how to define recursive structures. Eg <Persons>      <Person>        <Name>        <Height>        <Father>               <Name>      

  • Need help accessing Mail files after Updgrade to OS X 10.5

    I recently did an Erase and Install of my new Leopard OS X. Before doing so, I copied my complete mail file from 10.4 to an external HD. After installing 10.5, I tried to import the old files from the HD and I get a message that says my Mail file is

  • T420 won't dock into docking station

    Have a docking station Type 4337, but T420 won't snap into place.  Same type of docking station at work, has no problem with T420 snapping in.  Seems to be binding somewhere, but cannot get it to budge.  Key is in place and in unlocked position.  Not

  • A l'aide  sur mac pro

    bonjour mon mac pro n'arrête pas de sonner que puis-je faire pour le dépanner et en plus il ne marche plus j'ai mon mémoire à présenter lundi dedans au secours!!

  • E series Digital I/O Intialization (DIO Port Confg)

    When using DAQ E series boards digital I/O, intializing the port seems to make the outputs turn on for a brief second. If you have relays or other devices connected they momentarily turn on. Is there a way to prevent this? Thanks Sent via Deja.com ht