2014-03-11 18:11:39 +01:00
/ * !
* jQuery JavaScript Library v1 . 7.1
* http : //jquery.com/
*
* Copyright 2011 , John Resig
* Dual licensed under the MIT or GPL Version 2 licenses .
* http : //jquery.org/license
*
* Includes Sizzle . js
* http : //sizzlejs.com/
* Copyright 2011 , The Dojo Foundation
* Released under the MIT , BSD , and GPL Licenses .
*
* Date : Mon Nov 21 21 : 11 : 03 2011 - 0500
* /
( function ( bb , L ) { var av = bb . document , bu = bb . navigator , bl = bb . location ; var b = ( function ( ) { var bF = function ( b0 , b1 ) { return new bF . fn . init ( b0 , b1 , bD ) } , bU = bb . jQuery , bH = bb . $ , bD , bY = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/ , bM = /\S/ , bI = /^\s+/ , bE = /\s+$/ , bA = /^<(\w+)\s*\/?>(?:<\/\1>)?$/ , bN = /^[\],:{}\s]*$/ , bW = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g , bP = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g , bJ = /(?:^|:|,)(?:\s*\[)+/g , by = /(webkit)[ \/]([\w.]+)/ , bR = /(opera)(?:.*version)?[ \/]([\w.]+)/ , bQ = /(msie) ([\w.]+)/ , bS = /(mozilla)(?:.*? rv:([\w.]+))?/ , bB = /-([a-z]|[0-9])/ig , bZ = /^-ms-/ , bT = function ( b0 , b1 ) { return ( b1 + "" ) . toUpperCase ( ) } , bX = bu . userAgent , bV , bC , e , bL = Object . prototype . toString , bG = Object . prototype . hasOwnProperty , bz = Array . prototype . push , bK = Array . prototype . slice , bO = String . prototype . trim , bv = Array . prototype . indexOf , bx = { } ; bF . fn = bF . prototype = { constructor : bF , init : function ( b0 , b4 , b3 ) { var b2 , b5 , b1 , b6 ; if ( ! b0 ) { return this } if ( b0 . nodeType ) { this . context = this [ 0 ] = b0 ; this . length = 1 ; return this } if ( b0 === "body" && ! b4 && av . body ) { this . context = av ; this [ 0 ] = av . body ; this . selector = b0 ; this . length = 1 ; return this } if ( typeof b0 === "string" ) { if ( b0 . charAt ( 0 ) === "<" && b0 . charAt ( b0 . length - 1 ) === ">" && b0 . length >= 3 ) { b2 = [ null , b0 , null ] } else { b2 = bY . exec ( b0 ) } if ( b2 && ( b2 [ 1 ] || ! b4 ) ) { if ( b2 [ 1 ] ) { b4 = b4 instanceof bF ? b4 [ 0 ] : b4 ; b6 = ( b4 ? b4 . ownerDocument || b4 : av ) ; b1 = bA . exec ( b0 ) ; if ( b1 ) { if ( bF . isPlainObject ( b4 ) ) { b0 = [ av . createElement ( b1 [ 1 ] ) ] ; bF . fn . attr . call ( b0 , b4 , true ) } else { b0 = [ b6 . createElement ( b1 [ 1 ] ) ] } } else { b1 = bF . buildFragment ( [ b2 [ 1 ] ] , [ b6 ] ) ; b0 = ( b1 . cacheable ? bF . clone ( b1 . fragment ) : b1 . fragment ) . childNodes } return bF . merge ( this , b0 ) } else { b5 = av . getElementById ( b2 [ 2 ] ) ; if ( b5 && b5 . parentNode ) { if ( b5 . id !== b2 [ 2 ] ) { return b3 . find ( b0 ) } this . length = 1 ; this [ 0 ] = b5 } this . context = av ; this . selector = b0 ; return this } } else { if ( ! b4 || b4 . jquery ) { return ( b4 || b3 ) . find ( b0 ) } else { return this . constructor ( b4 ) . find ( b0 ) } } } else { if ( bF . isFunction ( b0 ) ) { return b3 . ready ( b0 ) } } if ( b0 . selector !== L ) { this . selector = b0 . selector ; this . context = b0 . context } return bF . makeArray ( b0 , this ) } , selector : "" , jquery : "1.7.1" , length : 0 , size : function ( ) { return this . length } , toArray : function ( ) { return bK . call ( this , 0 ) } , get : function ( b0 ) { return b0 == null ? this . toArray ( ) : ( b0 < 0 ? this [ this . length + b0 ] : this [ b0 ] ) } , pushStack : function ( b1 , b3 , b0 ) { var b2 = this . constructor ( ) ; if ( bF . isArray ( b1 ) ) { bz . apply ( b2 , b1 ) } else { bF . merge ( b2 , b1 ) } b2 . prevObject = this ; b2 . context = this . context ; if ( b3 === "find" ) { b2 . selector = this . selector + ( this . selector ? " " : "" ) + b0 } else { if ( b3 ) { b2 . selector = this . selector + "." + b3 + "(" + b0 + ")" } } return b2 } , each : function ( b1 , b0 ) { return bF . each ( this , b1 , b0 ) } , ready : function ( b0 ) { bF . bindReady ( ) ; bC . add ( b0 ) ; return this } , eq : function ( b0 ) { b0 = + b0 ; return b0 === - 1 ? this . slice ( b0 ) : this . slice ( b0 , b0 + 1 ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , slice : function ( ) { return this . pushStack ( bK . apply ( this , arguments ) , "slice" , bK . call ( arguments ) . join ( "," ) ) } , map : function ( b0 ) { return this . pushStack ( bF . map ( this , function ( b2 , b1 ) { return b0 . call ( b2 , b1 , b2 ) } ) ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : bz , sort : [ ] . sort , splice : [ ] . splice } ; bF . fn . init . prototype = bF . fn ; bF . extend = bF . fn . extend = function ( ) { var b9 , b2 , b0 , b1 , b6 , b7 , b5 = arguments [ 0 ] || { } , b4 = 1 , b3 = arguments . length , b8 = false ; if ( typeof b5 === "boolean" ) { b8 = b5 ; b5 = arguments [ 1 ] || { } ; b4 = 2 } if ( typeof b5 !== "object" && ! bF . isFunction ( b5 ) ) { b5 = { } } if ( b3 === b4 ) { b5 = this ; -- b4 } for ( ; b4 < b3 ; b4 ++ ) { if ( ( b9 = arguments [ b4 ] ) != null ) { for ( b2 in b9 ) { b0 = b5 [ b2 ] ; b1 = b9 [ b2 ] ; if ( b5 === b1 ) { continue } if ( b8 && b1 && ( bF . isPlainObject ( b1 ) || ( b6 = bF . isArray ( b1 ) ) ) ) { if ( b6 ) { b6 = false ; b7 = b0 && bF . isArray ( b0 ) ? b0 : [ ] } else { b7 = b0 && bF . isPlainObject ( b0 ) ? b0 : { } } b5 [ b2 ] = bF . extend ( b8 , b7 , b1 ) } else { if ( b1 !== L ) { b5 [ b2 ] = b1 } } } } } return b5 } ; bF . extend ( { noConflict : function ( b0 ) { if ( bb . $ === bF ) { bb . $ = bH } if ( b0 && bb . jQuery === bF ) { bb . jQuery = bU } return bF } , isReady : false , readyWait : 1 , holdReady : function ( b0 ) { if ( b0 ) { bF . readyWait ++ } else { bF . ready ( true ) } } , ready : function ( b0 ) { if ( ( b0 === true && ! -- bF . readyWait ) || ( b0 !== true && ! bF . isReady ) ) { if ( ! av . body ) { return setTimeout ( bF . ready , 1 ) } bF . isReady = true ; if ( b0 !== true && -- bF . readyWait > 0 ) { return } bC . fireWith ( av , [ bF ] ) ; if ( bF . fn . trigger ) { bF ( av ) . trigger ( "ready" ) . off ( "ready" ) } } } , bindReady : function ( ) { if ( bC ) { return } bC =
} else { -- bw } } if ( ! bw ) { bC . resolveWith ( bC , bx ) } } else { if ( bC !== bA ) { bC . resolveWith ( bC , e ? [ bA ] : [ ] ) } } return bE } } ) ; b . support = ( function ( ) { var bJ , bI , bF , bG , bx , bE , bA , bD , bz , bK , bB , by , bw , bv = av . createElement ( "div" ) , bH = av . documentElement ; bv . setAttribute ( "className" , "t" ) ; bv . innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>" ; bI = bv . getElementsByTagName ( "*" ) ; bF = bv . getElementsByTagName ( "a" ) [ 0 ] ; if ( ! bI || ! bI . length || ! bF ) { return { } } bG = av . createElement ( "select" ) ; bx = bG . appendChild ( av . createElement ( "option" ) ) ; bE = bv . getElementsByTagName ( "input" ) [ 0 ] ; bJ = { leadingWhitespace : ( bv . firstChild . nodeType === 3 ) , tbody : ! bv . getElementsByTagName ( "tbody" ) . length , htmlSerialize : ! ! bv . getElementsByTagName ( "link" ) . length , style : /top/ . test ( bF . getAttribute ( "style" ) ) , hrefNormalized : ( bF . getAttribute ( "href" ) === "/a" ) , opacity : /^0.55/ . test ( bF . style . opacity ) , cssFloat : ! ! bF . style . cssFloat , checkOn : ( bE . value === "on" ) , optSelected : bx . selected , getSetAttribute : bv . className !== "t" , enctype : ! ! av . createElement ( "form" ) . enctype , html5Clone : av . createElement ( "nav" ) . cloneNode ( true ) . outerHTML !== "<:nav></:nav>" , submitBubbles : true , changeBubbles : true , focusinBubbles : false , deleteExpando : true , noCloneEvent : true , inlineBlockNeedsLayout : false , shrinkWrapBlocks : false , reliableMarginRight : true } ; bE . checked = true ; bJ . noCloneChecked = bE . cloneNode ( true ) . checked ; bG . disabled = true ; bJ . optDisabled = ! bx . disabled ; try { delete bv . test } catch ( bC ) { bJ . deleteExpando = false } if ( ! bv . addEventListener && bv . attachEvent && bv . fireEvent ) { bv . attachEvent ( "onclick" , function ( ) { bJ . noCloneEvent = false } ) ; bv . cloneNode ( true ) . fireEvent ( "onclick" ) } bE = av . createElement ( "input" ) ; bE . value = "t" ; bE . setAttribute ( "type" , "radio" ) ; bJ . radioValue = bE . value === "t" ; bE . setAttribute ( "checked" , "checked" ) ; bv . appendChild ( bE ) ; bD = av . createDocumentFragment ( ) ; bD . appendChild ( bv . lastChild ) ; bJ . checkClone = bD . cloneNode ( true ) . cloneNode ( true ) . lastChild . checked ; bJ . appendChecked = bE . checked ; bD . removeChild ( bE ) ; bD . appendChild ( bv ) ; bv . innerHTML = "" ; if ( bb . getComputedStyle ) { bA = av . createElement ( "div" ) ; bA . style . width = "0" ; bA . style . marginRight = "0" ; bv . style . width = "2px" ; bv . appendChild ( bA ) ; bJ . reliableMarginRight = ( parseInt ( ( bb . getComputedStyle ( bA , null ) || { marginRight : 0 } ) . marginRight , 10 ) || 0 ) === 0 } if ( bv . attachEvent ) { for ( by in { submit : 1 , change : 1 , focusin : 1 } ) { bB = "on" + by ; bw = ( bB in bv ) ; if ( ! bw ) { bv . setAttribute ( bB , "return;" ) ; bw = ( typeof bv [ bB ] === "function" ) } bJ [ by + "Bubbles" ] = bw } } bD . removeChild ( bv ) ; bD = bG = bx = bA = bv = bE = null ; b ( function ( ) { var bM , bU , bV , bT , bN , bO , bL , bS , bR , e , bP , bQ = av . getElementsByTagName ( "body" ) [ 0 ] ; if ( ! bQ ) { return } bL = 1 ; bS = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;" ; bR = "visibility:hidden;border:0;" ; e = "style='" + bS + "border:5px solid #000;padding:0;'" ; bP = "<div " + e + "><div></div></div><table " + e + " cellpadding='0' cellspacing='0'><tr><td></td></tr></table>" ; bM = av . createElement ( "div" ) ; bM . style . cssText = bR + "width:0;height:0;position:static;top:0;margin-top:" + bL + "px" ; bQ . insertBefore ( bM , bQ . firstChild ) ; bv = av . createElement ( "div" ) ; bM . appendChild ( bv ) ; bv . innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>" ; bz = bv . getElementsByTagName ( "td" ) ; bw = ( bz [ 0 ] . offsetHeight === 0 ) ; bz [ 0 ] . style . display = "" ; bz [ 1 ] . style . display = "none" ; bJ . reliableHiddenOffsets = bw && ( bz [ 0 ] . offsetHeight === 0 ) ; bv . innerHTML = "" ; bv . style . width = bv . style . paddingLeft = "1px" ; b . boxModel = bJ . boxModel = bv . offsetWidth === 2 ; if ( typeof bv . style . zoom !== "undefined" ) { bv . style . display = "inline" ; bv . style . zoom = 1 ; bJ . inlineBlockNeedsLayout = ( bv . offsetWidth === 2 ) ; bv . style . display = "" ; bv . innerHTML = "<div style='width:4px;'></div>" ; bJ . shrinkWrapBlocks = ( bv . offsetWidth !== 2 ) } bv . style . cssText = bS + bR ; bv . innerHTML = bP ; bU = bv . firstChild ; bV = bU . firstChild ; bN = bU . nextSibling . firstChild . firstChild ; bO = { doesNotAddBorder : ( bV . offsetTop !== 5 ) , doesAddBorderForTableAndCells : ( bN . offsetTop === 5 ) } ; bV . style . position = "fixed" ; bV . style . top = "20px" ; bO . fixedPosition = ( bV . offsetTop === 20 || bV . offsetTop === 15 ) ; bV . style . position = bV . style . top = "" ; bU . style . overflow = "hidden" ; bU . style . position = "relative" ; bO . subtractsBorderForOverflowNotVisible = ( bV . offsetTop === - 5 ) ; bO . doesNotIncludeMarginInBodyOffset = ( bQ . offsetTop !== bL ) ; bQ . removeChil
if ( ! bA || bv === 3 || bv === 8 || bv === 2 ) { return } if ( bz && bx in b . attrFn ) { return b ( bA ) [ bx ] ( bB ) } if ( typeof bA . getAttribute === "undefined" ) { return b . prop ( bA , bx , bB ) } by = bv !== 1 || ! b . isXMLDoc ( bA ) ; if ( by ) { bx = bx . toLowerCase ( ) ; e = b . attrHooks [ bx ] || ( ao . test ( bx ) ? aY : be ) } if ( bB !== L ) { if ( bB === null ) { b . removeAttr ( bA , bx ) ; return } else { if ( e && "set" in e && by && ( bw = e . set ( bA , bB , bx ) ) !== L ) { return bw } else { bA . setAttribute ( bx , "" + bB ) ; return bB } } } else { if ( e && "get" in e && by && ( bw = e . get ( bA , bx ) ) !== null ) { return bw } else { bw = bA . getAttribute ( bx ) ; return bw === null ? L : bw } } } , removeAttr : function ( bx , bz ) { var by , bA , bv , e , bw = 0 ; if ( bz && bx . nodeType === 1 ) { bA = bz . toLowerCase ( ) . split ( af ) ; e = bA . length ; for ( ; bw < e ; bw ++ ) { bv = bA [ bw ] ; if ( bv ) { by = b . propFix [ bv ] || bv ; b . attr ( bx , bv , "" ) ; bx . removeAttribute ( F ? bv : by ) ; if ( ao . test ( bv ) && by in bx ) { bx [ by ] = false } } } } } , attrHooks : { type : { set : function ( e , bv ) { if ( g . test ( e . nodeName ) && e . parentNode ) { b . error ( "type property can't be changed" ) } else { if ( ! b . support . radioValue && bv === "radio" && b . nodeName ( e , "input" ) ) { var bw = e . value ; e . setAttribute ( "type" , bv ) ; if ( bw ) { e . value = bw } return bv } } } } , value : { get : function ( bv , e ) { if ( be && b . nodeName ( bv , "button" ) ) { return be . get ( bv , e ) } return e in bv ? bv . value : null } , set : function ( bv , bw , e ) { if ( be && b . nodeName ( bv , "button" ) ) { return be . set ( bv , bw , e ) } bv . value = bw } } } , propFix : { tabindex : "tabIndex" , readonly : "readOnly" , "for" : "htmlFor" , "class" : "className" , maxlength : "maxLength" , cellspacing : "cellSpacing" , cellpadding : "cellPadding" , rowspan : "rowSpan" , colspan : "colSpan" , usemap : "useMap" , frameborder : "frameBorder" , contenteditable : "contentEditable" } , prop : function ( bz , bx , bA ) { var bw , e , by , bv = bz . nodeType ; if ( ! bz || bv === 3 || bv === 8 || bv === 2 ) { return } by = bv !== 1 || ! b . isXMLDoc ( bz ) ; if ( by ) { bx = b . propFix [ bx ] || bx ; e = b . propHooks [ bx ] } if ( bA !== L ) { if ( e && "set" in e && ( bw = e . set ( bz , bA , bx ) ) !== L ) { return bw } else { return ( bz [ bx ] = bA ) } } else { if ( e && "get" in e && ( bw = e . get ( bz , bx ) ) !== null ) { return bw } else { return bz [ bx ] } } } , propHooks : { tabIndex : { get : function ( bv ) { var e = bv . getAttributeNode ( "tabindex" ) ; return e && e . specified ? parseInt ( e . value , 10 ) : D . test ( bv . nodeName ) || l . test ( bv . nodeName ) && bv . href ? 0 : L } } } } ) ; b . attrHooks . tabindex = b . propHooks . tabIndex ; aY = { get : function ( bv , e ) { var bx , bw = b . prop ( bv , e ) ; return bw === true || typeof bw !== "boolean" && ( bx = bv . getAttributeNode ( e ) ) && bx . nodeValue !== false ? e . toLowerCase ( ) : L } , set : function ( bv , bx , e ) { var bw ; if ( bx === false ) { b . removeAttr ( bv , e ) } else { bw = b . propFix [ e ] || e ; if ( bw in bv ) { bv [ bw ] = true } bv . setAttribute ( e , e . toLowerCase ( ) ) } return e } } ; if ( ! F ) { aF = { name : true , id : true } ; be = b . valHooks . button = { get : function ( bw , bv ) { var e ; e = bw . getAttributeNode ( bv ) ; return e && ( aF [ bv ] ? e . nodeValue !== "" : e . specified ) ? e . nodeValue : L } , set : function ( bw , bx , bv ) { var e = bw . getAttributeNode ( bv ) ; if ( ! e ) { e = av . createAttribute ( bv ) ; bw . setAttributeNode ( e ) } return ( e . nodeValue = bx + "" ) } } ; b . attrHooks . tabindex . set = be . set ; b . each ( [ "width" , "height" ] , function ( bv , e ) { b . attrHooks [ e ] = b . extend ( b . attrHooks [ e ] , { set : function ( bw , bx ) { if ( bx === "" ) { bw . setAttribute ( e , "auto" ) ; return bx } } } ) } ) ; b . attrHooks . contenteditable = { get : be . get , set : function ( bv , bw , e ) { if ( bw === "" ) { bw = "false" } be . set ( bv , bw , e ) } } } if ( ! b . support . hrefNormalized ) { b . each ( [ "href" , "src" , "width" , "height" ] , function ( bv , e ) { b . attrHooks [ e ] = b . extend ( b . attrHooks [ e ] , { get : function ( bx ) { var bw = bx . getAttribute ( e , 2 ) ; return bw === null ? L : bw } } ) } ) } if ( ! b . support . style ) { b . attrHooks . style = { get : function ( e ) { return e . style . cssText . toLowerCase ( ) || L } , set : function ( e , bv ) { return ( e . style . cssText = "" + bv ) } } } if ( ! b . support . optSelected ) { b . propHooks . selected = b . extend ( b . propHooks . selected , { get : function ( bv ) { var e = bv . parentNode ; if ( e ) { e . selectedIndex ; if ( e . parentNode ) { e . parentNode . selectedIndex } } return null } } ) } if ( ! b . support . enctype ) { b . propFix . enctype = "encoding" } if ( ! b . support . checkOn ) { b . each ( [ "radio" , "checkbox" ] , function ( ) { b . valHooks [ this ] = { get : function ( e ) { return e . getAttribute ( "value" ) === null ? "on" : e . value } } } ) } b . each ( [ "radio" , "checkbox" ] , function ( ) { b . valHooks [ this ] = b . extend ( b . valHooks [ this ] , { set : function ( e , bv ) { if ( b . isArray ( bv ) ) { return ( e . checked = b . inArray ( b ( e ) . val ( ) , bv ) >= 0 ) } } } ) } ) ; var bd = /^(?:textarea|input|select)$/i , n = /^([^\.]*)?(?:\.(.+))?$/ , J = /\bhover(\.\S+)?\b/ , aO = /^key/ , bf = /^(?:mouse|contextmenu)|click/ , T = /^(?:focusinfocus|focusoutblur)$/ , U = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/ , Y = functio
} b . event . add ( this , "click._submit keypress._submit" , function ( bx ) { var bw = bx . target , bv = b . nodeName ( bw , "input" ) || b . nodeName ( bw , "button" ) ? bw . form : L ; if ( bv && ! bv . _submit _attached ) { b . event . add ( bv , "submit._submit" , function ( e ) { if ( this . parentNode && ! e . isTrigger ) { b . event . simulate ( "submit" , this . parentNode , e , true ) } } ) ; bv . _submit _attached = true } } ) } , teardown : function ( ) { if ( b . nodeName ( this , "form" ) ) { return false } b . event . remove ( this , "._submit" ) } } } if ( ! b . support . changeBubbles ) { b . event . special . change = { setup : function ( ) { if ( bd . test ( this . nodeName ) ) { if ( this . type === "checkbox" || this . type === "radio" ) { b . event . add ( this , "propertychange._change" , function ( e ) { if ( e . originalEvent . propertyName === "checked" ) { this . _just _changed = true } } ) ; b . event . add ( this , "click._change" , function ( e ) { if ( this . _just _changed && ! e . isTrigger ) { this . _just _changed = false ; b . event . simulate ( "change" , this , e , true ) } } ) } return false } b . event . add ( this , "beforeactivate._change" , function ( bw ) { var bv = bw . target ; if ( bd . test ( bv . nodeName ) && ! bv . _change _attached ) { b . event . add ( bv , "change._change" , function ( e ) { if ( this . parentNode && ! e . isSimulated && ! e . isTrigger ) { b . event . simulate ( "change" , this . parentNode , e , true ) } } ) ; bv . _change _attached = true } } ) } , handle : function ( bv ) { var e = bv . target ; if ( this !== e || bv . isSimulated || bv . isTrigger || ( e . type !== "radio" && e . type !== "checkbox" ) ) { return bv . handleObj . handler . apply ( this , arguments ) } } , teardown : function ( ) { b . event . remove ( this , "._change" ) ; return bd . test ( this . nodeName ) } } } if ( ! b . support . focusinBubbles ) { b . each ( { focus : "focusin" , blur : "focusout" } , function ( bx , e ) { var bv = 0 , bw = function ( by ) { b . event . simulate ( e , by . target , b . event . fix ( by ) , true ) } ; b . event . special [ e ] = { setup : function ( ) { if ( bv ++ === 0 ) { av . addEventListener ( bx , bw , true ) } } , teardown : function ( ) { if ( -- bv === 0 ) { av . removeEventListener ( bx , bw , true ) } } } } ) } b . fn . extend ( { on : function ( bw , e , bz , by , bv ) { var bA , bx ; if ( typeof bw === "object" ) { if ( typeof e !== "string" ) { bz = e ; e = L } for ( bx in bw ) { this . on ( bx , e , bz , bw [ bx ] , bv ) } return this } if ( bz == null && by == null ) { by = e ; bz = e = L } else { if ( by == null ) { if ( typeof e === "string" ) { by = bz ; bz = L } else { by = bz ; bz = e ; e = L } } } if ( by === false ) { by = bk } else { if ( ! by ) { return this } } if ( bv === 1 ) { bA = by ; by = function ( bB ) { b ( ) . off ( bB ) ; return bA . apply ( this , arguments ) } ; by . guid = bA . guid || ( bA . guid = b . guid ++ ) } return this . each ( function ( ) { b . event . add ( this , bw , by , bz , e ) } ) } , one : function ( bv , e , bx , bw ) { return this . on . call ( this , bv , e , bx , bw , 1 ) } , off : function ( bw , e , by ) { if ( bw && bw . preventDefault && bw . handleObj ) { var bv = bw . handleObj ; b ( bw . delegateTarget ) . off ( bv . namespace ? bv . type + "." + bv . namespace : bv . type , bv . selector , bv . handler ) ; return this } if ( typeof bw === "object" ) { for ( var bx in bw ) { this . off ( bx , e , bw [ bx ] ) } return this } if ( e === false || typeof e === "function" ) { by = e ; e = L } if ( by === false ) { by = bk } return this . each ( function ( ) { b . event . remove ( this , bw , by , e ) } ) } , bind : function ( e , bw , bv ) { return this . on ( e , null , bw , bv ) } , unbind : function ( e , bv ) { return this . off ( e , null , bv ) } , live : function ( e , bw , bv ) { b ( this . context ) . on ( e , this . selector , bw , bv ) ; return this } , die : function ( e , bv ) { b ( this . context ) . off ( e , this . selector || "**" , bv ) ; return this } , delegate : function ( e , bv , bx , bw ) { return this . on ( bv , e , bx , bw ) } , undelegate : function ( e , bv , bw ) { return arguments . length == 1 ? this . off ( e , "**" ) : this . off ( bv , e , bw ) } , trigger : function ( e , bv ) { return this . each ( function ( ) { b . event . trigger ( e , bv , this ) } ) } , triggerHandler : function ( e , bv ) { if ( this [ 0 ] ) { return b . event . trigger ( e , bv , this [ 0 ] , true ) } } , toggle : function ( bx ) { var bv = arguments , e = bx . guid || b . guid ++ , bw = 0 , by = function ( bz ) { var bA = ( b . _data ( this , "lastToggle" + bx . guid ) || 0 ) % bw ; b . _data ( this , "lastToggle" + bx . guid , bA + 1 ) ; bz . preventDefault ( ) ; return bv [ bA ] . apply ( this , arguments ) || false } ; by . guid = e ; while ( bw < bv . length ) { bv [ bw ++ ] . guid = e } return this . click ( by ) } , hover : function ( e , bv ) { return this . mouseenter ( e ) . mouseleave ( bv || e ) } } ) ; b . each ( ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" ) . split ( " " ) , function ( bv , e ) { b . fn [ e ] = function ( bx , bw ) { if ( bw == null ) { bw = bx ; bx = null } return arguments . length > 0 ? this . on ( e , null , bx , bw ) : this . trigger ( e ) } ; if ( b . attrFn ) { b . attrFn [ e ] = true } if ( aO . test ( e ) ) { b . event . fixHooks [ e ] = b . event . keyHooks } if ( bf . test ( e ) ) { b . event . fixHooks [ e ] =
/ * !
* Sizzle CSS Selector Engine
* Copyright 2011 , The Dojo Foundation
* Released under the MIT , BSD , and GPL Licenses .
* More information : http : //sizzlejs.com/
* /
( function ( ) { var bH = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g , bC = "sizcache" + ( Math . random ( ) + "" ) . replace ( "." , "" ) , bI = 0 , bL = Object . prototype . toString , bB = false , bA = true , bK = /\\/g , bO = /\r\n/g , bQ = /\W/ ; [ 0 , 0 ] . sort ( function ( ) { bA = false ; return 0 } ) ; var by = function ( bV , e , bY , bZ ) { bY = bY || [ ] ; e = e || av ; var b1 = e ; if ( e . nodeType !== 1 && e . nodeType !== 9 ) { return [ ] } if ( ! bV || typeof bV !== "string" ) { return bY } var bS , b3 , b6 , bR , b2 , b5 , b4 , bX , bU = true , bT = by . isXML ( e ) , bW = [ ] , b0 = bV ; do { bH . exec ( "" ) ; bS = bH . exec ( b0 ) ; if ( bS ) { b0 = bS [ 3 ] ; bW . push ( bS [ 1 ] ) ; if ( bS [ 2 ] ) { bR = bS [ 3 ] ; break } } } while ( bS ) ; if ( bW . length > 1 && bD . exec ( bV ) ) { if ( bW . length === 2 && bE . relative [ bW [ 0 ] ] ) { b3 = bM ( bW [ 0 ] + bW [ 1 ] , e , bZ ) } else { b3 = bE . relative [ bW [ 0 ] ] ? [ e ] : by ( bW . shift ( ) , e ) ; while ( bW . length ) { bV = bW . shift ( ) ; if ( bE . relative [ bV ] ) { bV += bW . shift ( ) } b3 = bM ( bV , b3 , bZ ) } } } else { if ( ! bZ && bW . length > 1 && e . nodeType === 9 && ! bT && bE . match . ID . test ( bW [ 0 ] ) && ! bE . match . ID . test ( bW [ bW . length - 1 ] ) ) { b2 = by . find ( bW . shift ( ) , e , bT ) ; e = b2 . expr ? by . filter ( b2 . expr , b2 . set ) [ 0 ] : b2 . set [ 0 ] } if ( e ) { b2 = bZ ? { expr : bW . pop ( ) , set : bF ( bZ ) } : by . find ( bW . pop ( ) , bW . length === 1 && ( bW [ 0 ] === "~" || bW [ 0 ] === "+" ) && e . parentNode ? e . parentNode : e , bT ) ; b3 = b2 . expr ? by . filter ( b2 . expr , b2 . set ) : b2 . set ; if ( bW . length > 0 ) { b6 = bF ( b3 ) } else { bU = false } while ( bW . length ) { b5 = bW . pop ( ) ; b4 = b5 ; if ( ! bE . relative [ b5 ] ) { b5 = "" } else { b4 = bW . pop ( ) } if ( b4 == null ) { b4 = e } bE . relative [ b5 ] ( b6 , b4 , bT ) } } else { b6 = bW = [ ] } } if ( ! b6 ) { b6 = b3 } if ( ! b6 ) { by . error ( b5 || bV ) } if ( bL . call ( b6 ) === "[object Array]" ) { if ( ! bU ) { bY . push . apply ( bY , b6 ) } else { if ( e && e . nodeType === 1 ) { for ( bX = 0 ; b6 [ bX ] != null ; bX ++ ) { if ( b6 [ bX ] && ( b6 [ bX ] === true || b6 [ bX ] . nodeType === 1 && by . contains ( e , b6 [ bX ] ) ) ) { bY . push ( b3 [ bX ] ) } } } else { for ( bX = 0 ; b6 [ bX ] != null ; bX ++ ) { if ( b6 [ bX ] && b6 [ bX ] . nodeType === 1 ) { bY . push ( b3 [ bX ] ) } } } } } else { bF ( b6 , bY ) } if ( bR ) { by ( bR , b1 , bY , bZ ) ; by . uniqueSort ( bY ) } return bY } ; by . uniqueSort = function ( bR ) { if ( bJ ) { bB = bA ; bR . sort ( bJ ) ; if ( bB ) { for ( var e = 1 ; e < bR . length ; e ++ ) { if ( bR [ e ] === bR [ e - 1 ] ) { bR . splice ( e -- , 1 ) } } } } return bR } ; by . matches = function ( e , bR ) { return by ( e , null , null , bR ) } ; by . matchesSelector = function ( e , bR ) { return by ( bR , null , null , [ e ] ) . length > 0 } ; by . find = function ( bX , e , bY ) { var bW , bS , bU , bT , bV , bR ; if ( ! bX ) { return [ ] } for ( bS = 0 , bU = bE . order . length ; bS < bU ; bS ++ ) { bV = bE . order [ bS ] ; if ( ( bT = bE . leftMatch [ bV ] . exec ( bX ) ) ) { bR = bT [ 1 ] ; bT . splice ( 1 , 1 ) ; if ( bR . substr ( bR . length - 1 ) !== "\\" ) { bT [ 1 ] = ( bT [ 1 ] || "" ) . replace ( bK , "" ) ; bW = bE . find [ bV ] ( bT , e , bY ) ; if ( bW != null ) { bX = bX . replace ( bE . match [ bV ] , "" ) ; break } } } } if ( ! bW ) { bW = typeof e . getElementsByTagName !== "undefined" ? e . getElementsByTagName ( "*" ) : [ ] } return { set : bW , expr : bX } } ; by . filter = function ( b1 , b0 , b4 , bU ) { var bW , e , bZ , b6 , b3 , bR , bT , bV , b2 , bS = b1 , b5 = [ ] , bY = b0 , bX = b0 && b0 [ 0 ] && by . isXML ( b0 [ 0 ] ) ; while ( b1 && b0 . length ) { for ( bZ in bE . filter ) { if ( ( bW = bE . leftMatch [ bZ ] . exec ( b1 ) ) != null && bW [ 2 ] ) { bR = bE . filter [ bZ ] ; bT = bW [ 1 ] ; e = false ; bW . splice ( 1 , 1 ) ; if ( bT . substr ( bT . length - 1 ) === "\\" ) { continue } if ( bY === b5 ) { b5 = [ ] } if ( bE . preFilter [ bZ ] ) { bW = bE . preFilter [ bZ ] ( bW , bY , b4 , b5 , bU , bX ) ; if ( ! bW ) { e = b6 = true } else { if ( bW === true ) { continue } } } if ( bW ) { for ( bV = 0 ; ( b3 = bY [ bV ] ) != null ; bV ++ ) { if ( b3 ) { b6 = bR ( b3 , bW , bV , bY ) ; b2 = bU ^ b6 ; if ( b4 && b6 != null ) { if ( b2 ) { e = true } else { bY [ bV ] = false } } else { if ( b2 ) { b5 . push ( b3 ) ; e = true } } } } } if ( b6 !== L ) { if ( ! b4 ) { bY = b5 } b1 = b1 . replace ( bE . match [ bZ ] , "" ) ; if ( ! e ) { return [ ] } break } } } if ( b1 === bS ) { if ( e == null ) { by . error ( b1 ) } else { break } } bS = b1 } return bY } ; by . error = function ( e ) { throw new Error ( "Syntax error, unrecognized expression: " + e ) } ; var bw = by . getText = function ( bU ) { var bS , bT , e = bU . nodeType , bR = "" ; if ( e ) { if ( e === 1 || e === 9 ) { if ( typeof bU . textContent === "string" ) { return bU . textContent } else { if ( typeof bU . innerText === "string" ) { return bU . innerText . replace ( bO , "" ) } else { for ( bU = bU . firstChild ; bU ; bU = bU . nextSibling ) { bR += bw ( bU ) } } } } else { if ( e === 3 || e === 4 ) { return bU . nodeValue } } } else { for ( bS = 0 ; ( bT = bU [ bS ] ) ; bS ++ ) { if ( bT . nodeType !== 8 ) { bR += bw ( bT ) } } } return bR } ; var bE = by . selectors = { order : [ "ID" , "NAME" , "TAG" ] , match : { ID : /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/ , CLASS : /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/ , NAME : /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/ , ATTR : /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/ , TAG : /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/ , CHILD : / : ( o n l y | n t h | l a s t | f i r s t ) - c h i l d ( ? : \ ( \ s * ( e v e n | o d d | ( ? : [ + \ -
} , lt : function ( bS , bR , e ) { return bR < e [ 3 ] - 0 } , gt : function ( bS , bR , e ) { return bR > e [ 3 ] - 0 } , nth : function ( bS , bR , e ) { return e [ 3 ] - 0 === bR } , eq : function ( bS , bR , e ) { return e [ 3 ] - 0 === bR } } , filter : { PSEUDO : function ( bS , bX , bW , bY ) { var e = bX [ 1 ] , bR = bE . filters [ e ] ; if ( bR ) { return bR ( bS , bW , bX , bY ) } else { if ( e === "contains" ) { return ( bS . textContent || bS . innerText || bw ( [ bS ] ) || "" ) . indexOf ( bX [ 3 ] ) >= 0 } else { if ( e === "not" ) { var bT = bX [ 3 ] ; for ( var bV = 0 , bU = bT . length ; bV < bU ; bV ++ ) { if ( bT [ bV ] === bS ) { return false } } return true } else { by . error ( e ) } } } } , CHILD : function ( bS , bU ) { var bT , b0 , bW , bZ , e , bV , bY , bX = bU [ 1 ] , bR = bS ; switch ( bX ) { case "only" : case "first" : while ( ( bR = bR . previousSibling ) ) { if ( bR . nodeType === 1 ) { return false } } if ( bX === "first" ) { return true } bR = bS ; case "last" : while ( ( bR = bR . nextSibling ) ) { if ( bR . nodeType === 1 ) { return false } } return true ; case "nth" : bT = bU [ 2 ] ; b0 = bU [ 3 ] ; if ( bT === 1 && b0 === 0 ) { return true } bW = bU [ 0 ] ; bZ = bS . parentNode ; if ( bZ && ( bZ [ bC ] !== bW || ! bS . nodeIndex ) ) { bV = 0 ; for ( bR = bZ . firstChild ; bR ; bR = bR . nextSibling ) { if ( bR . nodeType === 1 ) { bR . nodeIndex = ++ bV } } bZ [ bC ] = bW } bY = bS . nodeIndex - b0 ; if ( bT === 0 ) { return bY === 0 } else { return ( bY % bT === 0 && bY / bT >= 0 ) } } } , ID : function ( bR , e ) { return bR . nodeType === 1 && bR . getAttribute ( "id" ) === e } , TAG : function ( bR , e ) { return ( e === "*" && bR . nodeType === 1 ) || ! ! bR . nodeName && bR . nodeName . toLowerCase ( ) === e } , CLASS : function ( bR , e ) { return ( " " + ( bR . className || bR . getAttribute ( "class" ) ) + " " ) . indexOf ( e ) > - 1 } , ATTR : function ( bV , bT ) { var bS = bT [ 1 ] , e = by . attr ? by . attr ( bV , bS ) : bE . attrHandle [ bS ] ? bE . attrHandle [ bS ] ( bV ) : bV [ bS ] != null ? bV [ bS ] : bV . getAttribute ( bS ) , bW = e + "" , bU = bT [ 2 ] , bR = bT [ 4 ] ; return e == null ? bU === "!=" : ! bU && by . attr ? e != null : bU === "=" ? bW === bR : bU === "*=" ? bW . indexOf ( bR ) >= 0 : bU === "~=" ? ( " " + bW + " " ) . indexOf ( bR ) >= 0 : ! bR ? bW && e !== false : bU === "!=" ? bW !== bR : bU === "^=" ? bW . indexOf ( bR ) === 0 : bU === "$=" ? bW . substr ( bW . length - bR . length ) === bR : bU === "|=" ? bW === bR || bW . substr ( 0 , bR . length + 1 ) === bR + "-" : false } , POS : function ( bU , bR , bS , bV ) { var e = bR [ 2 ] , bT = bE . setFilters [ e ] ; if ( bT ) { return bT ( bU , bS , bR , bV ) } } } } ; var bD = bE . match . POS , bx = function ( bR , e ) { return "\\" + ( e - 0 + 1 ) } ; for ( var bz in bE . match ) { bE . match [ bz ] = new RegExp ( bE . match [ bz ] . source + ( /(?![^\[]*\])(?![^\(]*\))/ . source ) ) ; bE . leftMatch [ bz ] = new RegExp ( /(^(?:.|\r|\n)*?)/ . source + bE . match [ bz ] . source . replace ( /\\(\d+)/g , bx ) ) } var bF = function ( bR , e ) { bR = Array . prototype . slice . call ( bR , 0 ) ; if ( e ) { e . push . apply ( e , bR ) ; return e } return bR } ; try { Array . prototype . slice . call ( av . documentElement . childNodes , 0 ) [ 0 ] . nodeType } catch ( bP ) { bF = function ( bU , bT ) { var bS = 0 , bR = bT || [ ] ; if ( bL . call ( bU ) === "[object Array]" ) { Array . prototype . push . apply ( bR , bU ) } else { if ( typeof bU . length === "number" ) { for ( var e = bU . length ; bS < e ; bS ++ ) { bR . push ( bU [ bS ] ) } } else { for ( ; bU [ bS ] ; bS ++ ) { bR . push ( bU [ bS ] ) } } } return bR } } var bJ , bG ; if ( av . documentElement . compareDocumentPosition ) { bJ = function ( bR , e ) { if ( bR === e ) { bB = true ; return 0 } if ( ! bR . compareDocumentPosition || ! e . compareDocumentPosition ) { return bR . compareDocumentPosition ? - 1 : 1 } return bR . compareDocumentPosition ( e ) & 4 ? - 1 : 1 } } else { bJ = function ( bY , bX ) { if ( bY === bX ) { bB = true ; return 0 } else { if ( bY . sourceIndex && bX . sourceIndex ) { return bY . sourceIndex - bX . sourceIndex } } var bV , bR , bS = [ ] , e = [ ] , bU = bY . parentNode , bW = bX . parentNode , bZ = bU ; if ( bU === bW ) { return bG ( bY , bX ) } else { if ( ! bU ) { return - 1 } else { if ( ! bW ) { return 1 } } } while ( bZ ) { bS . unshift ( bZ ) ; bZ = bZ . parentNode } bZ = bW ; while ( bZ ) { e . unshift ( bZ ) ; bZ = bZ . parentNode } bV = bS . length ; bR = e . length ; for ( var bT = 0 ; bT < bV && bT < bR ; bT ++ ) { if ( bS [ bT ] !== e [ bT ] ) { return bG ( bS [ bT ] , e [ bT ] ) } } return bT === bV ? bG ( bY , e [ bT ] , - 1 ) : bG ( bS [ bT ] , bX , 1 ) } ; bG = function ( bR , e , bS ) { if ( bR === e ) { return bS } var bT = bR . nextSibling ; while ( bT ) { if ( bT === e ) { return - 1 } bT = bT . nextSibling } return 1 } } ( function ( ) { var bR = av . createElement ( "div" ) , bS = "script" + ( new Date ( ) ) . getTime ( ) , e = av . documentElement ; bR . innerHTML = "<a name='" + bS + "'/>" ; e . insertBefore ( bR , e . firstChild ) ; if ( av . getElementById ( bS ) ) { bE . find . ID = function ( bU , bV , bW ) { if ( typeof bV . getElementById !== "undefined" && ! bW ) { var bT = bV . getElementById ( bU [ 1 ] ) ; return bT ? bT . id === bU [ 1 ] || typeof bT . getAttributeNode !== "undefined" && bT . getAttributeNode ( "id" ) . nodeValue === bU [ 1 ] ? [ bT ] : L : [ ] } } ; bE . filter . ID = function ( bV , bT ) { var bU = typeof bV . getAttributeNode !== "undefined" && bV . getAttributeNode ( "id" ) ; return bV . nodeType === 1 && bU && bU . nodeValue === bT } } e . removeChild ( bR ) ; e = bR = null } ) ( ) ; ( function ( ) { var e = av . createElement ( "
ax . optgroup = ax . option ; ax . tbody = ax . tfoot = ax . colgroup = ax . caption = ax . thead ; ax . th = ax . td ; if ( ! b . support . htmlSerialize ) { ax . _default = [ 1 , "div<div>" , "</div>" ] } b . fn . extend ( { text : function ( e ) { if ( b . isFunction ( e ) ) { return this . each ( function ( bw ) { var bv = b ( this ) ; bv . text ( e . call ( this , bw , bv . text ( ) ) ) } ) } if ( typeof e !== "object" && e !== L ) { return this . empty ( ) . append ( ( this [ 0 ] && this [ 0 ] . ownerDocument || av ) . createTextNode ( e ) ) } return b . text ( this ) } , wrapAll : function ( e ) { if ( b . isFunction ( e ) ) { return this . each ( function ( bw ) { b ( this ) . wrapAll ( e . call ( this , bw ) ) } ) } if ( this [ 0 ] ) { var bv = b ( e , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( true ) ; if ( this [ 0 ] . parentNode ) { bv . insertBefore ( this [ 0 ] ) } bv . map ( function ( ) { var bw = this ; while ( bw . firstChild && bw . firstChild . nodeType === 1 ) { bw = bw . firstChild } return bw } ) . append ( this ) } return this } , wrapInner : function ( e ) { if ( b . isFunction ( e ) ) { return this . each ( function ( bv ) { b ( this ) . wrapInner ( e . call ( this , bv ) ) } ) } return this . each ( function ( ) { var bv = b ( this ) , bw = bv . contents ( ) ; if ( bw . length ) { bw . wrapAll ( e ) } else { bv . append ( e ) } } ) } , wrap : function ( e ) { var bv = b . isFunction ( e ) ; return this . each ( function ( bw ) { b ( this ) . wrapAll ( bv ? e . call ( this , bw ) : e ) } ) } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { if ( ! b . nodeName ( this , "body" ) ) { b ( this ) . replaceWith ( this . childNodes ) } } ) . end ( ) } , append : function ( ) { return this . domManip ( arguments , true , function ( e ) { if ( this . nodeType === 1 ) { this . appendChild ( e ) } } ) } , prepend : function ( ) { return this . domManip ( arguments , true , function ( e ) { if ( this . nodeType === 1 ) { this . insertBefore ( e , this . firstChild ) } } ) } , before : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { return this . domManip ( arguments , false , function ( bv ) { this . parentNode . insertBefore ( bv , this ) } ) } else { if ( arguments . length ) { var e = b . clean ( arguments ) ; e . push . apply ( e , this . toArray ( ) ) ; return this . pushStack ( e , "before" , arguments ) } } } , after : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { return this . domManip ( arguments , false , function ( bv ) { this . parentNode . insertBefore ( bv , this . nextSibling ) } ) } else { if ( arguments . length ) { var e = this . pushStack ( this , "after" , arguments ) ; e . push . apply ( e , b . clean ( arguments ) ) ; return e } } } , remove : function ( e , bx ) { for ( var bv = 0 , bw ; ( bw = this [ bv ] ) != null ; bv ++ ) { if ( ! e || b . filter ( e , [ bw ] ) . length ) { if ( ! bx && bw . nodeType === 1 ) { b . cleanData ( bw . getElementsByTagName ( "*" ) ) ; b . cleanData ( [ bw ] ) } if ( bw . parentNode ) { bw . parentNode . removeChild ( bw ) } } } return this } , empty : function ( ) { for ( var e = 0 , bv ; ( bv = this [ e ] ) != null ; e ++ ) { if ( bv . nodeType === 1 ) { b . cleanData ( bv . getElementsByTagName ( "*" ) ) } while ( bv . firstChild ) { bv . removeChild ( bv . firstChild ) } } return this } , clone : function ( bv , e ) { bv = bv == null ? false : bv ; e = e == null ? bv : e ; return this . map ( function ( ) { return b . clone ( this , bv , e ) } ) } , html : function ( bx ) { if ( bx === L ) { return this [ 0 ] && this [ 0 ] . nodeType === 1 ? this [ 0 ] . innerHTML . replace ( ag , "" ) : null } else { if ( typeof bx === "string" && ! ae . test ( bx ) && ( b . support . leadingWhitespace || ! ar . test ( bx ) ) && ! ax [ ( d . exec ( bx ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { bx = bx . replace ( R , "<$1></$2>" ) ; try { for ( var bw = 0 , bv = this . length ; bw < bv ; bw ++ ) { if ( this [ bw ] . nodeType === 1 ) { b . cleanData ( this [ bw ] . getElementsByTagName ( "*" ) ) ; this [ bw ] . innerHTML = bx } } } catch ( by ) { this . empty ( ) . append ( bx ) } } else { if ( b . isFunction ( bx ) ) { this . each ( function ( bz ) { var e = b ( this ) ; e . html ( bx . call ( this , bz , e . html ( ) ) ) } ) } else { this . empty ( ) . append ( bx ) } } } return this } , replaceWith : function ( e ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { if ( b . isFunction ( e ) ) { return this . each ( function ( bx ) { var bw = b ( this ) , bv = bw . html ( ) ; bw . replaceWith ( e . call ( this , bx , bv ) ) } ) } if ( typeof e !== "string" ) { e = b ( e ) . detach ( ) } return this . each ( function ( ) { var bw = this . nextSibling , bv = this . parentNode ; b ( this ) . remove ( ) ; if ( bw ) { b ( bw ) . before ( e ) } else { b ( bv ) . append ( e ) } } ) } else { return this . length ? this . pushStack ( b ( b . isFunction ( e ) ? e ( ) : e ) , "replaceWith" , e ) : this } } , detach : function ( e ) { return this . remove ( e , true ) } , domManip : function ( bB , bF , bE ) { var bx , by , bA , bD , bC = bB [ 0 ] , bv = [ ] ; if ( ! b . support . checkClone && arguments . length === 3 && typeof bC === "string" && o . test ( bC ) ) { return this . each ( function ( ) { b ( this ) . domManip ( bB , bF , bE , true ) } ) } if ( b . isFunction ( bC ) ) { return this . each ( function ( bH ) { var bG = b ( this ) ; bB [ 0 ] = bC . call ( this , bH , bF ? bG . html ( ) : L ) ; bG . domManip ( bB , bF , bE ) } ) } if ( this [ 0 ] ) { bD = bC && bC . parentNode ; if ( b . support . parentNode && bD && bD . nodeType === 11 && bD . childNodes . length === this . length ) { bx = { fragment : bD } } else { bx = b . build
if ( bA > 0 ) { if ( bv !== "border" ) { for ( ; bx < e ; bx ++ ) { if ( ! bv ) { bA -= parseFloat ( b . css ( by , "padding" + bz [ bx ] ) ) || 0 } if ( bv === "margin" ) { bA += parseFloat ( b . css ( by , bv + bz [ bx ] ) ) || 0 } else { bA -= parseFloat ( b . css ( by , "border" + bz [ bx ] + "Width" ) ) || 0 } } } return bA + "px" } bA = Z ( by , bw , bw ) ; if ( bA < 0 || bA == null ) { bA = by . style [ bw ] || 0 } bA = parseFloat ( bA ) || 0 ; if ( bv ) { for ( ; bx < e ; bx ++ ) { bA += parseFloat ( b . css ( by , "padding" + bz [ bx ] ) ) || 0 ; if ( bv !== "padding" ) { bA += parseFloat ( b . css ( by , "border" + bz [ bx ] + "Width" ) ) || 0 } if ( bv === "margin" ) { bA += parseFloat ( b . css ( by , bv + bz [ bx ] ) ) || 0 } } } return bA + "px" } if ( b . expr && b . expr . filters ) { b . expr . filters . hidden = function ( bw ) { var bv = bw . offsetWidth , e = bw . offsetHeight ; return ( bv === 0 && e === 0 ) || ( ! b . support . reliableHiddenOffsets && ( ( bw . style && bw . style . display ) || b . css ( bw , "display" ) ) === "none" ) } ; b . expr . filters . visible = function ( e ) { return ! b . expr . filters . hidden ( e ) } } var k = /%20/g , ap = /\[\]$/ , bs = /\r?\n/g , bq = /#.*$/ , aD = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg , aZ = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i , aM = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/ , aQ = /^(?:GET|HEAD)$/ , c = /^\/\// , M = /\?/ , a6 = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi , q = /^(?:select|textarea)/i , h = /\s+/ , br = /([?&])_=[^&]*/ , K = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/ , A = b . fn . load , aa = { } , r = { } , aE , s , aV = [ "*/" ] + [ "*" ] ; try { aE = bl . href } catch ( aw ) { aE = av . createElement ( "a" ) ; aE . href = "" ; aE = aE . href } s = K . exec ( aE . toLowerCase ( ) ) || [ ] ; function f ( e ) { return function ( by , bA ) { if ( typeof by !== "string" ) { bA = by ; by = "*" } if ( b . isFunction ( bA ) ) { var bx = by . toLowerCase ( ) . split ( h ) , bw = 0 , bz = bx . length , bv , bB , bC ; for ( ; bw < bz ; bw ++ ) { bv = bx [ bw ] ; bC = /^\+/ . test ( bv ) ; if ( bC ) { bv = bv . substr ( 1 ) || "*" } bB = e [ bv ] = e [ bv ] || [ ] ; bB [ bC ? "unshift" : "push" ] ( bA ) } } } } function aW ( bv , bE , bz , bD , bB , bx ) { bB = bB || bE . dataTypes [ 0 ] ; bx = bx || { } ; bx [ bB ] = true ; var bA = bv [ bB ] , bw = 0 , e = bA ? bA . length : 0 , by = ( bv === aa ) , bC ; for ( ; bw < e && ( by || ! bC ) ; bw ++ ) { bC = bA [ bw ] ( bE , bz , bD ) ; if ( typeof bC === "string" ) { if ( ! by || bx [ bC ] ) { bC = L } else { bE . dataTypes . unshift ( bC ) ; bC = aW ( bv , bE , bz , bD , bC , bx ) } } } if ( ( by || ! bC ) && ! bx [ "*" ] ) { bC = aW ( bv , bE , bz , bD , "*" , bx ) } return bC } function am ( bw , bx ) { var bv , e , by = b . ajaxSettings . flatOptions || { } ; for ( bv in bx ) { if ( bx [ bv ] !== L ) { ( by [ bv ] ? bw : ( e || ( e = { } ) ) ) [ bv ] = bx [ bv ] } } if ( e ) { b . extend ( true , bw , e ) } } b . fn . extend ( { load : function ( bw , bz , bA ) { if ( typeof bw !== "string" && A ) { return A . apply ( this , arguments ) } else { if ( ! this . length ) { return this } } var by = bw . indexOf ( " " ) ; if ( by >= 0 ) { var e = bw . slice ( by , bw . length ) ; bw = bw . slice ( 0 , by ) } var bx = "GET" ; if ( bz ) { if ( b . isFunction ( bz ) ) { bA = bz ; bz = L } else { if ( typeof bz === "object" ) { bz = b . param ( bz , b . ajaxSettings . traditional ) ; bx = "POST" } } } var bv = this ; b . ajax ( { url : bw , type : bx , dataType : "html" , data : bz , complete : function ( bC , bB , bD ) { bD = bC . responseText ; if ( bC . isResolved ( ) ) { bC . done ( function ( bE ) { bD = bE } ) ; bv . html ( e ? b ( "<div>" ) . append ( bD . replace ( a6 , "" ) ) . find ( e ) : bD ) } if ( bA ) { bv . each ( bA , [ bD , bB , bC ] ) } } } ) ; return this } , serialize : function ( ) { return b . param ( this . serializeArray ( ) ) } , serializeArray : function ( ) { return this . map ( function ( ) { return this . elements ? b . makeArray ( this . elements ) : this } ) . filter ( function ( ) { return this . name && ! this . disabled && ( this . checked || q . test ( this . nodeName ) || aZ . test ( this . type ) ) } ) . map ( function ( e , bv ) { var bw = b ( this ) . val ( ) ; return bw == null ? null : b . isArray ( bw ) ? b . map ( bw , function ( by , bx ) { return { name : bv . name , value : by . replace ( bs , "\r\n" ) } } ) : { name : bv . name , value : bw . replace ( bs , "\r\n" ) } } ) . get ( ) } } ) ; b . each ( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend" . split ( " " ) , function ( e , bv ) { b . fn [ bv ] = function ( bw ) { return this . on ( bv , bw ) } } ) ; b . each ( [ "get" , "post" ] , function ( e , bv ) { b [ bv ] = function ( bw , by , bz , bx ) { if ( b . isFunction ( by ) ) { bx = bx || bz ; bz = by ; by = L } return b . ajax ( { type : bv , url : bw , data : by , success : bz , dataType : bx } ) } } ) ; b . extend ( { getScript : function ( e , bv ) { return b . get ( e , L , bv , "script" ) } , getJSON : function ( e , bv , bw ) { return b . get ( e , bv , bw , "json" ) } , ajaxSetup : function ( bv , e ) { if ( e ) { am ( bv , b . ajaxSettings ) } else { e = bv ; bv = b . ajaxSettings } am ( bv , e ) ; return bv } , ajaxSettings : { url : aE , isLocal : aM . test ( s [ 1 ] ) , global : true , type : "GET" , contentType : "application/x-www-form-urlencoded" , processData : true , async : true , accepts : { xml : "application/xml, text/xml" , html : "text/html" , text : "text/plain" , json : "application/json, text/javascript" , "*" : aV } , cont
} } } } } ) } var Q = { } , a8 , m , aB = /^(?:toggle|show|hide)$/ , aT = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i , a3 , aH = [ [ "height" , "marginTop" , "marginBottom" , "paddingTop" , "paddingBottom" ] , [ "width" , "marginLeft" , "marginRight" , "paddingLeft" , "paddingRight" ] , [ "opacity" ] ] , a4 ; b . fn . extend ( { show : function ( bx , bA , bz ) { var bw , by ; if ( bx || bx === 0 ) { return this . animate ( a0 ( "show" , 3 ) , bx , bA , bz ) } else { for ( var bv = 0 , e = this . length ; bv < e ; bv ++ ) { bw = this [ bv ] ; if ( bw . style ) { by = bw . style . display ; if ( ! b . _data ( bw , "olddisplay" ) && by === "none" ) { by = bw . style . display = "" } if ( by === "" && b . css ( bw , "display" ) === "none" ) { b . _data ( bw , "olddisplay" , x ( bw . nodeName ) ) } } } for ( bv = 0 ; bv < e ; bv ++ ) { bw = this [ bv ] ; if ( bw . style ) { by = bw . style . display ; if ( by === "" || by === "none" ) { bw . style . display = b . _data ( bw , "olddisplay" ) || "" } } } return this } } , hide : function ( bx , bA , bz ) { if ( bx || bx === 0 ) { return this . animate ( a0 ( "hide" , 3 ) , bx , bA , bz ) } else { var bw , by , bv = 0 , e = this . length ; for ( ; bv < e ; bv ++ ) { bw = this [ bv ] ; if ( bw . style ) { by = b . css ( bw , "display" ) ; if ( by !== "none" && ! b . _data ( bw , "olddisplay" ) ) { b . _data ( bw , "olddisplay" , by ) } } } for ( bv = 0 ; bv < e ; bv ++ ) { if ( this [ bv ] . style ) { this [ bv ] . style . display = "none" } } return this } } , _toggle : b . fn . toggle , toggle : function ( bw , bv , bx ) { var e = typeof bw === "boolean" ; if ( b . isFunction ( bw ) && b . isFunction ( bv ) ) { this . _toggle . apply ( this , arguments ) } else { if ( bw == null || e ) { this . each ( function ( ) { var by = e ? bw : b ( this ) . is ( ":hidden" ) ; b ( this ) [ by ? "show" : "hide" ] ( ) } ) } else { this . animate ( a0 ( "toggle" , 3 ) , bw , bv , bx ) } } return this } , fadeTo : function ( e , bx , bw , bv ) { return this . filter ( ":hidden" ) . css ( "opacity" , 0 ) . show ( ) . end ( ) . animate ( { opacity : bx } , e , bw , bv ) } , animate : function ( bz , bw , by , bx ) { var e = b . speed ( bw , by , bx ) ; if ( b . isEmptyObject ( bz ) ) { return this . each ( e . complete , [ false ] ) } bz = b . extend ( { } , bz ) ; function bv ( ) { if ( e . queue === false ) { b . _mark ( this ) } var bE = b . extend ( { } , e ) , bK = this . nodeType === 1 , bI = bK && b ( this ) . is ( ":hidden" ) , bB , bF , bD , bJ , bH , bC , bG , bL , bA ; bE . animatedProperties = { } ; for ( bD in bz ) { bB = b . camelCase ( bD ) ; if ( bD !== bB ) { bz [ bB ] = bz [ bD ] ; delete bz [ bD ] } bF = bz [ bB ] ; if ( b . isArray ( bF ) ) { bE . animatedProperties [ bB ] = bF [ 1 ] ; bF = bz [ bB ] = bF [ 0 ] } else { bE . animatedProperties [ bB ] = bE . specialEasing && bE . specialEasing [ bB ] || bE . easing || "swing" } if ( bF === "hide" && bI || bF === "show" && ! bI ) { return bE . complete . call ( this ) } if ( bK && ( bB === "height" || bB === "width" ) ) { bE . overflow = [ this . style . overflow , this . style . overflowX , this . style . overflowY ] ; if ( b . css ( this , "display" ) === "inline" && b . css ( this , "float" ) === "none" ) { if ( ! b . support . inlineBlockNeedsLayout || x ( this . nodeName ) === "inline" ) { this . style . display = "inline-block" } else { this . style . zoom = 1 } } } } if ( bE . overflow != null ) { this . style . overflow = "hidden" } for ( bD in bz ) { bJ = new b . fx ( this , bE , bD ) ; bF = bz [ bD ] ; if ( aB . test ( bF ) ) { bA = b . _data ( this , "toggle" + bD ) || ( bF === "toggle" ? bI ? "show" : "hide" : 0 ) ; if ( bA ) { b . _data ( this , "toggle" + bD , bA === "show" ? "hide" : "show" ) ; bJ [ bA ] ( ) } else { bJ [ bF ] ( ) } } else { bH = aT . exec ( bF ) ; bC = bJ . cur ( ) ; if ( bH ) { bG = parseFloat ( bH [ 2 ] ) ; bL = bH [ 3 ] || ( b . cssNumber [ bD ] ? "" : "px" ) ; if ( bL !== "px" ) { b . style ( this , bD , ( bG || 1 ) + bL ) ; bC = ( ( bG || 1 ) / bJ . cur ( ) ) * bC ; b . style ( this , bD , bC + bL ) } if ( bH [ 1 ] ) { bG = ( ( bH [ 1 ] === "-=" ? - 1 : 1 ) * bG ) + bC } bJ . custom ( bC , bG , bL ) } else { bJ . custom ( bC , bF , "" ) } } } return true } return e . queue === false ? this . each ( bv ) : this . queue ( e . queue , bv ) } , stop : function ( bw , bv , e ) { if ( typeof bw !== "string" ) { e = bv ; bv = bw ; bw = L } if ( bv && bw !== false ) { this . queue ( bw || "fx" , [ ] ) } return this . each ( function ( ) { var bx , by = false , bA = b . timers , bz = b . _data ( this ) ; if ( ! e ) { b . _unmark ( true , this ) } function bB ( bE , bF , bD ) { var bC = bF [ bD ] ; b . removeData ( bE , bD , true ) ; bC . stop ( e ) } if ( bw == null ) { for ( bx in bz ) { if ( bz [ bx ] && bz [ bx ] . stop && bx . indexOf ( ".run" ) === bx . length - 4 ) { bB ( this , bz , bx ) } } } else { if ( bz [ bx = bw + ".run" ] && bz [ bx ] . stop ) { bB ( this , bz , bx ) } } for ( bx = bA . length ; bx -- ; ) { if ( bA [ bx ] . elem === this && ( bw == null || bA [ bx ] . queue === bw ) ) { if ( e ) { bA [ bx ] ( true ) } else { bA [ bx ] . saveState ( ) } by = true ; bA . splice ( bx , 1 ) } } if ( ! ( e && by ) ) { b . dequeue ( this , bw ) } } ) } } ) ; function bh ( ) { setTimeout ( at , 0 ) ; return ( a4 = b . now ( ) ) } function at ( ) { a4 = L } function a0 ( bv , e ) { var bw = { } ; b . each ( aH . concat . apply ( [ ] , aH . slice ( 0 , e ) ) , function ( ) { bw [ this ] = bv } ) ; return bw } b . each ( { slideDown : a0 ( "show" , 1 ) , slideUp : a0 ( "hide" , 1 ) , slideToggle : a0 ( "toggle" , 1 ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } , fadeToggle : { opacity : "toggle" } } , function ( e , bv ) { b . fn [ e ] = function ( bw , by , bx ) { return this . animate ( bv , bw , by , bx ) } } ) ; b . extend ( { speed : function ( bw ,
} ) } } ) ( window ) ;
2014-05-20 13:17:26 +02:00
/ * !
PowerTip - v1 . 2.0 - 2013 - 04 - 03
http : //stevenbenner.github.com/jquery-powertip/
Copyright ( c ) 2013 Steven Benner ( http : //stevenbenner.com/).
Released under MIT license .
https : //raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
* /
( function ( a ) { if ( typeof define === "function" && define . amd ) { define ( [ "jquery" ] , a ) } else { a ( jQuery ) } } ( function ( k ) { var A = k ( document ) , s = k ( window ) , w = k ( "body" ) ; var n = "displayController" , e = "hasActiveHover" , d = "forcedOpen" , u = "hasMouseMove" , f = "mouseOnToPopup" , g = "originalTitle" , y = "powertip" , o = "powertipjq" , l = "powertiptarget" , E = 180 / Math . PI ; var c = { isTipOpen : false , isFixedTipOpen : false , isClosing : false , tipOpenImminent : false , activeHover : null , currentX : 0 , currentY : 0 , previousX : 0 , previousY : 0 , desyncTimeout : null , mouseTrackingActive : false , delayInProgress : false , windowWidth : 0 , windowHeight : 0 , scrollTop : 0 , scrollLeft : 0 } ; var p = { none : 0 , top : 1 , bottom : 2 , left : 4 , right : 8 } ; k . fn . powerTip = function ( F , N ) { if ( ! this . length ) { return this } if ( k . type ( F ) === "string" && k . powerTip [ F ] ) { return k . powerTip [ F ] . call ( this , this , N ) } var O = k . extend ( { } , k . fn . powerTip . defaults , F ) , G = new x ( O ) ; h ( ) ; this . each ( function M ( ) { var R = k ( this ) , Q = R . data ( y ) , P = R . data ( o ) , T = R . data ( l ) , S ; if ( R . data ( n ) ) { k . powerTip . destroy ( R ) } S = R . attr ( "title" ) ; if ( ! Q && ! T && ! P && S ) { R . data ( y , S ) ; R . data ( g , S ) ; R . removeAttr ( "title" ) } R . data ( n , new t ( R , O , G ) ) } ) ; if ( ! O . manual ) { this . on ( { "mouseenter.powertip" : function J ( P ) { k . powerTip . show ( this , P ) } , "mouseleave.powertip" : function L ( ) { k . powerTip . hide ( this ) } , "focus.powertip" : function K ( ) { k . powerTip . show ( this ) } , "blur.powertip" : function H ( ) { k . powerTip . hide ( this , true ) } , "keydown.powertip" : function I ( P ) { if ( P . keyCode === 27 ) { k . powerTip . hide ( this , true ) } } } ) } return this } ; k . fn . powerTip . defaults = { fadeInTime : 200 , fadeOutTime : 100 , followMouse : false , popupId : "powerTip" , intentSensitivity : 7 , intentPollInterval : 100 , closeDelay : 100 , placement : "n" , smartPlacement : false , offset : 10 , mouseOnToPopup : false , manual : false } ; k . fn . powerTip . smartPlacementLists = { n : [ "n" , "ne" , "nw" , "s" ] , e : [ "e" , "ne" , "se" , "w" , "nw" , "sw" , "n" , "s" , "e" ] , s : [ "s" , "se" , "sw" , "n" ] , w : [ "w" , "nw" , "sw" , "e" , "ne" , "se" , "n" , "s" , "w" ] , nw : [ "nw" , "w" , "sw" , "n" , "s" , "se" , "nw" ] , ne : [ "ne" , "e" , "se" , "n" , "s" , "sw" , "ne" ] , sw : [ "sw" , "w" , "nw" , "s" , "n" , "ne" , "sw" ] , se : [ "se" , "e" , "ne" , "s" , "n" , "nw" , "se" ] , "nw-alt" : [ "nw-alt" , "n" , "ne-alt" , "sw-alt" , "s" , "se-alt" , "w" , "e" ] , "ne-alt" : [ "ne-alt" , "n" , "nw-alt" , "se-alt" , "s" , "sw-alt" , "e" , "w" ] , "sw-alt" : [ "sw-alt" , "s" , "se-alt" , "nw-alt" , "n" , "ne-alt" , "w" , "e" ] , "se-alt" : [ "se-alt" , "s" , "sw-alt" , "ne-alt" , "n" , "nw-alt" , "e" , "w" ] } ; k . powerTip = { show : function z ( F , G ) { if ( G ) { i ( G ) ; c . previousX = G . pageX ; c . previousY = G . pageY ; k ( F ) . data ( n ) . show ( ) } else { k ( F ) . first ( ) . data ( n ) . show ( true , true ) } return F } , reposition : function r ( F ) { k ( F ) . first ( ) . data ( n ) . resetPosition ( ) ; return F } , hide : function D ( G , F ) { if ( G ) { k ( G ) . first ( ) . data ( n ) . hide ( F ) } else { if ( c . activeHover ) { c . activeHover . data ( n ) . hide ( true ) } } return G } , destroy : function C ( G ) { k ( G ) . off ( ".powertip" ) . each ( function F ( ) { var I = k ( this ) , H = [ g , n , e , d ] ; if ( I . data ( g ) ) { I . attr ( "title" , I . data ( g ) ) ; H . push ( y ) } I . removeData ( H ) } ) ; return G } } ; k . powerTip . showTip = k . powerTip . show ; k . powerTip . closeTip = k . powerTip . hide ; function b ( ) { var F = this ; F . top = "auto" ; F . left = "auto" ; F . right = "auto" ; F . bottom = "auto" ; F . set = function ( H , G ) { if ( k . isNumeric ( G ) ) { F [ H ] = Math . round ( G ) } } } function t ( K , N , F ) { var J = null ; function L ( P , Q ) { M ( ) ; if ( ! K . data ( e ) ) { if ( ! P ) { c . tipOpenImminent = true ; J = setTimeout ( function O ( ) { J = null ; I ( ) } , N . intentPollInterval ) } else { if ( Q ) { K . data ( d , true ) } F . showTip ( K ) } } } function G ( P ) { M ( ) ; c . tipOpenImminent = false ; if ( K . data ( e ) ) { K . data ( d , false ) ; if ( ! P ) { c . delayInProgress = true ; J = setTimeout ( function O ( ) { J = null ; F . hideTip ( K ) ; c . delayInProgress = false } , N . closeDelay ) } else { F . hideTip ( K ) } } } function I ( ) { var Q = Math . abs ( c . previousX - c . currentX ) , O = Math . abs ( c . previousY - c . currentY ) , P = Q + O ; if ( P < N . intentSensitivity ) { F . showTip ( K ) } else { c . previousX = c . currentX ; c . previousY = c . currentY ; L ( ) } } function M ( ) { J = clearTimeout ( J ) ; c . delayInProgress = false } function H ( ) { F . resetPosition ( K ) } this . show = L ; this . hide = G ; this . cancel = M ; this . resetPosition = H } function j ( ) { function G ( M , L , J , O , P ) { var K = L . split ( "-" ) [ 0 ] , N = new b ( ) , I ; if ( q ( M ) ) { I = H ( M , K ) } else { I = F ( M , K ) } switch ( L ) { case "n" : N . set ( "left" , I . left - ( J / 2 ) ) ; N . set ( "bottom" , c . windowHeight - I . top + P ) ; break ; case "e" : N . set ( "left" , I . left + P ) ; N . set ( "top" , I . top - ( O / 2 ) ) ; break ; case "s" : N . set ( "left" , I . left - ( J / 2 ) ) ; N . set ( "top" , I . top + P ) ; break ; case "w" : N . set ( "top" , I . top - ( O / 2 ) ) ; N . set ( "right" , c . windowWidth - I . left + P ) ; break ; case "nw" : N . set ( "bottom" , c . windowHeight - I . t